@abp/ng.core 9.3.6 → 10.0.0-rc.2
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 +1049 -1032
- 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, input, 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();
|
|
@@ -1320,15 +1477,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1320
1477
|
}]
|
|
1321
1478
|
}] });
|
|
1322
1479
|
|
|
1323
|
-
const LOADER_DELAY = new InjectionToken('LOADER_DELAY');
|
|
1324
|
-
|
|
1325
1480
|
class HttpWaitService {
|
|
1326
|
-
constructor(
|
|
1481
|
+
constructor() {
|
|
1327
1482
|
this.store = new InternalStore({
|
|
1328
1483
|
requests: [],
|
|
1329
1484
|
filteredRequests: [],
|
|
1330
1485
|
});
|
|
1331
1486
|
this.destroy$ = new Subject();
|
|
1487
|
+
const injector = inject(Injector);
|
|
1332
1488
|
this.delay = injector.get(LOADER_DELAY, 500);
|
|
1333
1489
|
}
|
|
1334
1490
|
getLoading() {
|
|
@@ -1380,7 +1536,7 @@ class HttpWaitService {
|
|
|
1380
1536
|
const { method, endpoint } = filteredRequest;
|
|
1381
1537
|
return endpoint === request.endpoint && method === request.method;
|
|
1382
1538
|
}
|
|
1383
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: HttpWaitService, deps: [
|
|
1539
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: HttpWaitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1384
1540
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: HttpWaitService, providedIn: 'root' }); }
|
|
1385
1541
|
}
|
|
1386
1542
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: HttpWaitService, decorators: [{
|
|
@@ -1388,7 +1544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1388
1544
|
args: [{
|
|
1389
1545
|
providedIn: 'root',
|
|
1390
1546
|
}]
|
|
1391
|
-
}], ctorParameters: () => [
|
|
1547
|
+
}], ctorParameters: () => [] });
|
|
1392
1548
|
|
|
1393
1549
|
class ResourceWaitService {
|
|
1394
1550
|
constructor() {
|
|
@@ -1427,8 +1583,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1427
1583
|
}] });
|
|
1428
1584
|
|
|
1429
1585
|
class LazyLoadService {
|
|
1430
|
-
constructor(
|
|
1431
|
-
this.resourceWaitService =
|
|
1586
|
+
constructor() {
|
|
1587
|
+
this.resourceWaitService = inject(ResourceWaitService);
|
|
1432
1588
|
this.loaded = new Map();
|
|
1433
1589
|
}
|
|
1434
1590
|
load(strategy, retryTimes, retryDelay) {
|
|
@@ -1450,7 +1606,7 @@ class LazyLoadService {
|
|
|
1450
1606
|
this.loaded.delete(path);
|
|
1451
1607
|
return true;
|
|
1452
1608
|
}
|
|
1453
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LazyLoadService, deps: [
|
|
1609
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LazyLoadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1454
1610
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LazyLoadService, providedIn: 'root' }); }
|
|
1455
1611
|
}
|
|
1456
1612
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LazyLoadService, decorators: [{
|
|
@@ -1458,9 +1614,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1458
1614
|
args: [{
|
|
1459
1615
|
providedIn: 'root',
|
|
1460
1616
|
}]
|
|
1461
|
-
}]
|
|
1462
|
-
|
|
1463
|
-
const LIST_QUERY_DEBOUNCE_TIME = new InjectionToken('LIST_QUERY_DEBOUNCE_TIME');
|
|
1617
|
+
}] });
|
|
1464
1618
|
|
|
1465
1619
|
class ListService {
|
|
1466
1620
|
set filter(value) {
|
|
@@ -1523,7 +1677,7 @@ class ListService {
|
|
|
1523
1677
|
get requestStatus$() {
|
|
1524
1678
|
return this._requestStatus.asObservable().pipe(takeUntil(this.destroy$));
|
|
1525
1679
|
}
|
|
1526
|
-
constructor(
|
|
1680
|
+
constructor() {
|
|
1527
1681
|
this._filter = '';
|
|
1528
1682
|
this._maxResultCount = 10;
|
|
1529
1683
|
this._page = 0;
|
|
@@ -1541,6 +1695,7 @@ class ListService {
|
|
|
1541
1695
|
this.getWithoutPageReset = () => {
|
|
1542
1696
|
this.next();
|
|
1543
1697
|
};
|
|
1698
|
+
const injector = inject(Injector);
|
|
1544
1699
|
const delay = injector.get(LIST_QUERY_DEBOUNCE_TIME, 300);
|
|
1545
1700
|
this.delay = delay ? debounceTime(delay) : tap();
|
|
1546
1701
|
this.get();
|
|
@@ -1575,16 +1730,16 @@ class ListService {
|
|
|
1575
1730
|
sorting: this._sortOrder ? `${this._sortKey} ${this._sortOrder}` : undefined,
|
|
1576
1731
|
});
|
|
1577
1732
|
}
|
|
1578
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ListService, deps: [
|
|
1733
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1579
1734
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ListService }); }
|
|
1580
1735
|
}
|
|
1581
1736
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ListService, decorators: [{
|
|
1582
1737
|
type: Injectable
|
|
1583
|
-
}], ctorParameters: () => [
|
|
1738
|
+
}], ctorParameters: () => [] });
|
|
1584
1739
|
|
|
1585
1740
|
class PermissionService {
|
|
1586
|
-
constructor(
|
|
1587
|
-
this.configState =
|
|
1741
|
+
constructor() {
|
|
1742
|
+
this.configState = inject(ConfigStateService);
|
|
1588
1743
|
}
|
|
1589
1744
|
getGrantedPolicy$(key) {
|
|
1590
1745
|
return this.getStream().pipe(map(grantedPolicies => this.isPolicyGranted(key, grantedPolicies)));
|
|
@@ -1632,13 +1787,13 @@ class PermissionService {
|
|
|
1632
1787
|
getPolicy(key, grantedPolicies) {
|
|
1633
1788
|
return grantedPolicies[key] || false;
|
|
1634
1789
|
}
|
|
1635
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionService, deps: [
|
|
1790
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1636
1791
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionService, providedIn: 'root' }); }
|
|
1637
1792
|
}
|
|
1638
1793
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionService, decorators: [{
|
|
1639
1794
|
type: Injectable,
|
|
1640
1795
|
args: [{ providedIn: 'root' }]
|
|
1641
|
-
}]
|
|
1796
|
+
}] });
|
|
1642
1797
|
|
|
1643
1798
|
class ReplaceableComponentsService {
|
|
1644
1799
|
get replaceableComponents$() {
|
|
@@ -1650,9 +1805,9 @@ class ReplaceableComponentsService {
|
|
|
1650
1805
|
get onUpdate$() {
|
|
1651
1806
|
return this.store.sliceUpdate(state => state);
|
|
1652
1807
|
}
|
|
1653
|
-
constructor(
|
|
1654
|
-
this.ngZone =
|
|
1655
|
-
this.router =
|
|
1808
|
+
constructor() {
|
|
1809
|
+
this.ngZone = inject(NgZone);
|
|
1810
|
+
this.router = inject(Router);
|
|
1656
1811
|
this.store = new InternalStore([]);
|
|
1657
1812
|
}
|
|
1658
1813
|
add(replaceableComponent, reload) {
|
|
@@ -1674,23 +1829,109 @@ class ReplaceableComponentsService {
|
|
|
1674
1829
|
get$(replaceableComponentKey) {
|
|
1675
1830
|
return this.replaceableComponents$.pipe(map(components => components.find(component => component.key === replaceableComponentKey)));
|
|
1676
1831
|
}
|
|
1677
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableComponentsService, deps: [
|
|
1832
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1678
1833
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableComponentsService, providedIn: 'root' }); }
|
|
1679
1834
|
}
|
|
1680
1835
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableComponentsService, decorators: [{
|
|
1681
1836
|
type: Injectable,
|
|
1682
1837
|
args: [{ providedIn: 'root' }]
|
|
1683
|
-
}], ctorParameters: () => [
|
|
1838
|
+
}], ctorParameters: () => [] });
|
|
1684
1839
|
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1840
|
+
// source : https://github.com/armanozak/demo-angular-server-specific-interceptors
|
|
1841
|
+
class ExternalHttpClient extends HttpClient {
|
|
1842
|
+
request(first, url, options = {}) {
|
|
1843
|
+
if (typeof first === 'string') {
|
|
1844
|
+
this.#setPlaceholderContext(options);
|
|
1845
|
+
return super.request(first, url || '', options);
|
|
1846
|
+
}
|
|
1847
|
+
this.#setPlaceholderContext(first);
|
|
1848
|
+
return super.request(first);
|
|
1849
|
+
}
|
|
1850
|
+
#setPlaceholderContext(optionsOrRequest) {
|
|
1851
|
+
optionsOrRequest.context ??= new HttpContext();
|
|
1852
|
+
optionsOrRequest.context.set(IS_EXTERNAL_REQUEST, true);
|
|
1853
|
+
}
|
|
1854
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ExternalHttpClient, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1855
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ExternalHttpClient, providedIn: 'root' }); }
|
|
1856
|
+
}
|
|
1857
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ExternalHttpClient, decorators: [{
|
|
1858
|
+
type: Injectable,
|
|
1859
|
+
args: [{
|
|
1860
|
+
providedIn: 'root',
|
|
1861
|
+
}]
|
|
1862
|
+
}] });
|
|
1863
|
+
|
|
1864
|
+
class RestService {
|
|
1865
|
+
constructor() {
|
|
1866
|
+
this.options = inject(CORE_OPTIONS);
|
|
1867
|
+
this.http = inject(HttpClient);
|
|
1868
|
+
this.externalHttp = inject(ExternalHttpClient);
|
|
1869
|
+
this.environment = inject(EnvironmentService);
|
|
1870
|
+
this.httpErrorReporter = inject(HttpErrorReporterService);
|
|
1871
|
+
}
|
|
1872
|
+
getApiFromStore(apiName) {
|
|
1873
|
+
return this.environment.getApiUrl(apiName);
|
|
1874
|
+
}
|
|
1875
|
+
handleError(err) {
|
|
1876
|
+
this.httpErrorReporter.reportError(err);
|
|
1877
|
+
return throwError(() => err);
|
|
1878
|
+
}
|
|
1879
|
+
request(request, config, api) {
|
|
1880
|
+
config = config || {};
|
|
1881
|
+
api = api || this.getApiFromStore(config.apiName);
|
|
1882
|
+
const { method, params, ...options } = request;
|
|
1883
|
+
const { observe = "body" /* Rest.Observe.Body */, skipHandleError, responseType = "json" /* Rest.ResponseType.JSON */ } = config;
|
|
1884
|
+
const url = this.removeDuplicateSlashes(api + request.url);
|
|
1885
|
+
const httpClient = this.getHttpClient(config.skipAddingHeader);
|
|
1886
|
+
return httpClient
|
|
1887
|
+
.request(method, url, {
|
|
1888
|
+
observe,
|
|
1889
|
+
responseType: responseType,
|
|
1890
|
+
...(params && {
|
|
1891
|
+
params: this.getParams(params, config.httpParamEncoder),
|
|
1892
|
+
}),
|
|
1893
|
+
...options,
|
|
1894
|
+
})
|
|
1895
|
+
.pipe(catchError(err => (skipHandleError ? throwError(() => err) : this.handleError(err))));
|
|
1896
|
+
}
|
|
1897
|
+
getHttpClient(isExternal) {
|
|
1898
|
+
return isExternal ? this.externalHttp : this.http;
|
|
1899
|
+
}
|
|
1900
|
+
getParams(params, encoder) {
|
|
1901
|
+
const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {
|
|
1902
|
+
if (isUndefinedOrEmptyString(value))
|
|
1903
|
+
return acc;
|
|
1904
|
+
if (value === null && !this.options.sendNullsAsQueryParam)
|
|
1905
|
+
return acc;
|
|
1906
|
+
acc[key] = value;
|
|
1907
|
+
return acc;
|
|
1908
|
+
}, {});
|
|
1909
|
+
return encoder
|
|
1910
|
+
? new HttpParams({ encoder, fromObject: filteredParams })
|
|
1911
|
+
: new HttpParams({ fromObject: filteredParams });
|
|
1912
|
+
}
|
|
1913
|
+
removeDuplicateSlashes(url) {
|
|
1914
|
+
return url.replace(/([^:]\/)\/+/g, '$1');
|
|
1915
|
+
}
|
|
1916
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1917
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RestService, providedIn: 'root' }); }
|
|
1918
|
+
}
|
|
1919
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RestService, decorators: [{
|
|
1920
|
+
type: Injectable,
|
|
1921
|
+
args: [{
|
|
1922
|
+
providedIn: 'root',
|
|
1923
|
+
}]
|
|
1924
|
+
}] });
|
|
1925
|
+
|
|
1926
|
+
const NavigationEvent = {
|
|
1927
|
+
Cancel: NavigationCancel,
|
|
1928
|
+
End: NavigationEnd,
|
|
1929
|
+
Error: NavigationError,
|
|
1930
|
+
Start: NavigationStart,
|
|
1931
|
+
};
|
|
1932
|
+
class RouterEvents {
|
|
1933
|
+
#previousNavigation;
|
|
1934
|
+
#currentNavigation;
|
|
1694
1935
|
constructor() {
|
|
1695
1936
|
this.router = inject(Router);
|
|
1696
1937
|
this.#previousNavigation = signal(undefined);
|
|
@@ -1730,10 +1971,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1730
1971
|
}], ctorParameters: () => [] });
|
|
1731
1972
|
|
|
1732
1973
|
class RouterWaitService {
|
|
1733
|
-
constructor(
|
|
1734
|
-
this.routerEvents =
|
|
1974
|
+
constructor() {
|
|
1975
|
+
this.routerEvents = inject(RouterEvents);
|
|
1735
1976
|
this.store = new InternalStore({ loading: false });
|
|
1736
1977
|
this.destroy$ = new Subject();
|
|
1978
|
+
const injector = inject(Injector);
|
|
1737
1979
|
this.delay = injector.get(LOADER_DELAY, 500);
|
|
1738
1980
|
this.updateLoadingStatusOnNavigationEvents();
|
|
1739
1981
|
}
|
|
@@ -1761,7 +2003,7 @@ class RouterWaitService {
|
|
|
1761
2003
|
setLoading(loading) {
|
|
1762
2004
|
this.store.patch({ loading });
|
|
1763
2005
|
}
|
|
1764
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterWaitService, deps: [
|
|
2006
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterWaitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1765
2007
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterWaitService, providedIn: 'root' }); }
|
|
1766
2008
|
}
|
|
1767
2009
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterWaitService, decorators: [{
|
|
@@ -1769,59 +2011,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
1769
2011
|
args: [{
|
|
1770
2012
|
providedIn: 'root',
|
|
1771
2013
|
}]
|
|
1772
|
-
}], ctorParameters: () => [
|
|
1773
|
-
|
|
1774
|
-
const COOKIE_LANGUAGE_KEY = new InjectionToken('COOKIE_LANGUAGE_KEY', {
|
|
1775
|
-
factory: () => '.AspNetCore.Culture',
|
|
1776
|
-
});
|
|
1777
|
-
|
|
1778
|
-
const NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken('NAVIGATE_TO_MANAGE_PROFILE');
|
|
1779
|
-
|
|
1780
|
-
const QUEUE_MANAGER = new InjectionToken("QUEUE_MANAGER");
|
|
1781
|
-
|
|
1782
|
-
const INCUDE_LOCALIZATION_RESOURCES_TOKEN = new InjectionToken('INCUDE_LOCALIZATION_RESOURCES_TOKEN');
|
|
1783
|
-
|
|
1784
|
-
const PIPE_TO_LOGIN_FN_KEY = new InjectionToken('PIPE_TO_LOGIN_FN_KEY');
|
|
1785
|
-
|
|
1786
|
-
/**
|
|
1787
|
-
* @deprecated The token should not be used anymore.
|
|
1788
|
-
*/
|
|
1789
|
-
const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken('SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY');
|
|
1790
|
-
|
|
1791
|
-
const OTHERS_GROUP = new InjectionToken('OTHERS_GROUP');
|
|
1792
|
-
|
|
1793
|
-
const SORT_COMPARE_FUNC = new InjectionToken('SORT_COMPARE_FUNC');
|
|
1794
|
-
function compareFuncFactory() {
|
|
1795
|
-
const localizationService = inject(LocalizationService);
|
|
1796
|
-
const fn = (a, b) => {
|
|
1797
|
-
const aNumber = a.order;
|
|
1798
|
-
const bNumber = b.order;
|
|
1799
|
-
if (aNumber > bNumber)
|
|
1800
|
-
return 1;
|
|
1801
|
-
if (aNumber < bNumber)
|
|
1802
|
-
return -1;
|
|
1803
|
-
if (a.id > b.id)
|
|
1804
|
-
return 1;
|
|
1805
|
-
if (a.id < b.id)
|
|
1806
|
-
return -1;
|
|
1807
|
-
if (!Number.isInteger(aNumber))
|
|
1808
|
-
return 1;
|
|
1809
|
-
if (!Number.isInteger(bNumber))
|
|
1810
|
-
return -1;
|
|
1811
|
-
const aName = localizationService.instant(a.name);
|
|
1812
|
-
const bName = localizationService.instant(b.name);
|
|
1813
|
-
if (aName > bName)
|
|
1814
|
-
return 1;
|
|
1815
|
-
if (aName < bName)
|
|
1816
|
-
return -1;
|
|
1817
|
-
return 0;
|
|
1818
|
-
};
|
|
1819
|
-
return fn;
|
|
1820
|
-
}
|
|
1821
|
-
|
|
1822
|
-
const DYNAMIC_LAYOUTS_TOKEN = new InjectionToken('DYNAMIC_LAYOUTS');
|
|
1823
|
-
|
|
1824
|
-
const DISABLE_PROJECT_NAME = new InjectionToken('DISABLE_APP_NAME');
|
|
2014
|
+
}], ctorParameters: () => [] });
|
|
1825
2015
|
|
|
1826
2016
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
1827
2017
|
class AbstractTreeService {
|
|
@@ -1958,15 +2148,16 @@ class AbstractTreeService {
|
|
|
1958
2148
|
}
|
|
1959
2149
|
}
|
|
1960
2150
|
class AbstractNavTreeService extends AbstractTreeService {
|
|
1961
|
-
constructor(
|
|
2151
|
+
constructor() {
|
|
1962
2152
|
super();
|
|
1963
|
-
this.injector =
|
|
2153
|
+
this.injector = inject(Injector);
|
|
1964
2154
|
this.id = 'name';
|
|
1965
2155
|
this.parentId = 'parentName';
|
|
1966
2156
|
this.hide = (item) => item.invisible || !this.isGranted(item);
|
|
1967
2157
|
this.sort = (a, b) => {
|
|
1968
2158
|
return this.compareFunc(a, b);
|
|
1969
2159
|
};
|
|
2160
|
+
const injector = this.injector;
|
|
1970
2161
|
const configState = this.injector.get(ConfigStateService);
|
|
1971
2162
|
this.subscription = configState
|
|
1972
2163
|
.createOnUpdateStream(state => state)
|
|
@@ -1990,12 +2181,12 @@ class AbstractNavTreeService extends AbstractTreeService {
|
|
|
1990
2181
|
ngOnDestroy() {
|
|
1991
2182
|
this.subscription.unsubscribe();
|
|
1992
2183
|
}
|
|
1993
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbstractNavTreeService, deps: [
|
|
2184
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbstractNavTreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1994
2185
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbstractNavTreeService }); }
|
|
1995
2186
|
}
|
|
1996
2187
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbstractNavTreeService, decorators: [{
|
|
1997
2188
|
type: Injectable
|
|
1998
|
-
}], ctorParameters: () => [
|
|
2189
|
+
}], ctorParameters: () => [] });
|
|
1999
2190
|
class RoutesService extends AbstractNavTreeService {
|
|
2000
2191
|
hasPathOrChild(item) {
|
|
2001
2192
|
return Boolean(item.path) || this.hasChildren(item.name);
|
|
@@ -2359,93 +2550,404 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
2359
2550
|
}]
|
|
2360
2551
|
}] });
|
|
2361
2552
|
|
|
2362
|
-
class
|
|
2363
|
-
constructor(
|
|
2364
|
-
this.
|
|
2365
|
-
this.apiName = 'abp';
|
|
2366
|
-
this.get = (options, config) => this.restService.request({
|
|
2367
|
-
method: 'GET',
|
|
2368
|
-
url: '/api/abp/application-configuration',
|
|
2369
|
-
params: { includeLocalizationResources: options.includeLocalizationResources },
|
|
2370
|
-
}, { apiName: this.apiName, ...config });
|
|
2553
|
+
class ContainerStrategy {
|
|
2554
|
+
constructor(containerRef) {
|
|
2555
|
+
this.containerRef = containerRef;
|
|
2371
2556
|
}
|
|
2372
|
-
|
|
2373
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationConfigurationService, providedIn: 'root' }); }
|
|
2557
|
+
prepare() { }
|
|
2374
2558
|
}
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
class AbpApplicationLocalizationService {
|
|
2383
|
-
constructor(restService) {
|
|
2384
|
-
this.restService = restService;
|
|
2385
|
-
this.apiName = 'abp';
|
|
2386
|
-
this.get = (input, config) => this.restService.request({
|
|
2387
|
-
method: 'GET',
|
|
2388
|
-
url: '/api/abp/application-localization',
|
|
2389
|
-
params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics },
|
|
2390
|
-
}, { apiName: this.apiName, ...config });
|
|
2559
|
+
class ClearContainerStrategy extends ContainerStrategy {
|
|
2560
|
+
getIndex() {
|
|
2561
|
+
return 0;
|
|
2562
|
+
}
|
|
2563
|
+
prepare() {
|
|
2564
|
+
this.containerRef.clear();
|
|
2391
2565
|
}
|
|
2392
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, deps: [{ token: RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2393
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, providedIn: 'root' }); }
|
|
2394
2566
|
}
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
}]
|
|
2400
|
-
}], ctorParameters: () => [{ type: RestService }] });
|
|
2401
|
-
|
|
2402
|
-
class ConfigStateService {
|
|
2403
|
-
setState(config) {
|
|
2404
|
-
this.store.set(config);
|
|
2567
|
+
class InsertIntoContainerStrategy extends ContainerStrategy {
|
|
2568
|
+
constructor(containerRef, index) {
|
|
2569
|
+
super(containerRef);
|
|
2570
|
+
this.index = index;
|
|
2405
2571
|
}
|
|
2406
|
-
|
|
2407
|
-
return this.
|
|
2572
|
+
getIndex() {
|
|
2573
|
+
return Math.min(Math.max(0, this.index), this.containerRef.length);
|
|
2408
2574
|
}
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2575
|
+
}
|
|
2576
|
+
const CONTAINER_STRATEGY = {
|
|
2577
|
+
Clear(containerRef) {
|
|
2578
|
+
return new ClearContainerStrategy(containerRef);
|
|
2579
|
+
},
|
|
2580
|
+
Append(containerRef) {
|
|
2581
|
+
return new InsertIntoContainerStrategy(containerRef, containerRef.length);
|
|
2582
|
+
},
|
|
2583
|
+
Prepend(containerRef) {
|
|
2584
|
+
return new InsertIntoContainerStrategy(containerRef, 0);
|
|
2585
|
+
},
|
|
2586
|
+
Insert(containerRef, index) {
|
|
2587
|
+
return new InsertIntoContainerStrategy(containerRef, index);
|
|
2588
|
+
},
|
|
2589
|
+
};
|
|
2590
|
+
|
|
2591
|
+
class ContentSecurityStrategy {
|
|
2592
|
+
constructor(nonce) {
|
|
2593
|
+
this.nonce = nonce;
|
|
2416
2594
|
}
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
})))
|
|
2422
|
-
.pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))
|
|
2423
|
-
.subscribe(res => this.store.set(res));
|
|
2595
|
+
}
|
|
2596
|
+
class LooseContentSecurityStrategy extends ContentSecurityStrategy {
|
|
2597
|
+
constructor(nonce) {
|
|
2598
|
+
super(nonce);
|
|
2424
2599
|
}
|
|
2425
|
-
|
|
2426
|
-
if (
|
|
2427
|
-
|
|
2600
|
+
applyCSP(element) {
|
|
2601
|
+
if (this.nonce) {
|
|
2602
|
+
element.setAttribute('nonce', this.nonce);
|
|
2428
2603
|
}
|
|
2429
|
-
const cultureName = this.uiCultureFromAuthCodeFlow ?? appState.localization.currentCulture.cultureName;
|
|
2430
|
-
return this.getlocalizationResource(cultureName).pipe(map(result => ({ ...appState, localization: { ...appState.localization, ...result } })), tap(() => (this.uiCultureFromAuthCodeFlow = undefined)));
|
|
2431
|
-
}
|
|
2432
|
-
getlocalizationResource(cultureName) {
|
|
2433
|
-
return this.abpApplicationLocalizationService.get({
|
|
2434
|
-
cultureName: cultureName,
|
|
2435
|
-
onlyDynamics: false,
|
|
2436
|
-
});
|
|
2437
2604
|
}
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2605
|
+
}
|
|
2606
|
+
class NoContentSecurityStrategy extends ContentSecurityStrategy {
|
|
2607
|
+
constructor() {
|
|
2608
|
+
super();
|
|
2441
2609
|
}
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
return
|
|
2447
|
-
|
|
2448
|
-
|
|
2610
|
+
applyCSP(_) { }
|
|
2611
|
+
}
|
|
2612
|
+
const CONTENT_SECURITY_STRATEGY = {
|
|
2613
|
+
Loose(nonce) {
|
|
2614
|
+
return new LooseContentSecurityStrategy(nonce);
|
|
2615
|
+
},
|
|
2616
|
+
None() {
|
|
2617
|
+
return new NoContentSecurityStrategy();
|
|
2618
|
+
},
|
|
2619
|
+
};
|
|
2620
|
+
|
|
2621
|
+
class ContentStrategy {
|
|
2622
|
+
constructor(content, domStrategy = DOM_STRATEGY.AppendToHead(), contentSecurityStrategy = CONTENT_SECURITY_STRATEGY.None(), options = {}) {
|
|
2623
|
+
this.content = content;
|
|
2624
|
+
this.domStrategy = domStrategy;
|
|
2625
|
+
this.contentSecurityStrategy = contentSecurityStrategy;
|
|
2626
|
+
this.options = options;
|
|
2627
|
+
}
|
|
2628
|
+
insertElement() {
|
|
2629
|
+
const element = this.createElement();
|
|
2630
|
+
if (this.options && Object.keys(this.options).length > 0) {
|
|
2631
|
+
Object.keys(this.options).forEach(key => {
|
|
2632
|
+
if (this.options[key]) {
|
|
2633
|
+
element[key] = this.options[key];
|
|
2634
|
+
}
|
|
2635
|
+
});
|
|
2636
|
+
}
|
|
2637
|
+
this.contentSecurityStrategy.applyCSP(element);
|
|
2638
|
+
this.domStrategy.insertElement(element);
|
|
2639
|
+
return element;
|
|
2640
|
+
}
|
|
2641
|
+
}
|
|
2642
|
+
class StyleContentStrategy extends ContentStrategy {
|
|
2643
|
+
createElement() {
|
|
2644
|
+
const element = inject(DOCUMENT).createElement('style');
|
|
2645
|
+
element.textContent = this.content;
|
|
2646
|
+
return element;
|
|
2647
|
+
}
|
|
2648
|
+
}
|
|
2649
|
+
class ScriptContentStrategy extends ContentStrategy {
|
|
2650
|
+
createElement() {
|
|
2651
|
+
const element = inject(DOCUMENT).createElement('script');
|
|
2652
|
+
element.textContent = this.content;
|
|
2653
|
+
return element;
|
|
2654
|
+
}
|
|
2655
|
+
}
|
|
2656
|
+
const CONTENT_STRATEGY = {
|
|
2657
|
+
AppendScriptToBody(content, options) {
|
|
2658
|
+
return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToBody(), undefined, options);
|
|
2659
|
+
},
|
|
2660
|
+
AppendScriptToHead(content, options) {
|
|
2661
|
+
return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);
|
|
2662
|
+
},
|
|
2663
|
+
AppendStyleToHead(content, options) {
|
|
2664
|
+
return new StyleContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);
|
|
2665
|
+
},
|
|
2666
|
+
PrependStyleToHead(content, options) {
|
|
2667
|
+
return new StyleContentStrategy(content, DOM_STRATEGY.PrependToHead(), undefined, options);
|
|
2668
|
+
},
|
|
2669
|
+
};
|
|
2670
|
+
|
|
2671
|
+
class ContextStrategy {
|
|
2672
|
+
constructor(context) {
|
|
2673
|
+
this.context = context;
|
|
2674
|
+
}
|
|
2675
|
+
setContext(componentRef) {
|
|
2676
|
+
return this.context;
|
|
2677
|
+
}
|
|
2678
|
+
}
|
|
2679
|
+
class NoContextStrategy extends ContextStrategy {
|
|
2680
|
+
constructor() {
|
|
2681
|
+
super(undefined);
|
|
2682
|
+
}
|
|
2683
|
+
}
|
|
2684
|
+
class ComponentContextStrategy extends ContextStrategy {
|
|
2685
|
+
setContext(componentRef) {
|
|
2686
|
+
Object.keys(this.context).forEach(key => (componentRef.instance[key] = this.context[key]));
|
|
2687
|
+
componentRef.changeDetectorRef.detectChanges();
|
|
2688
|
+
return this.context;
|
|
2689
|
+
}
|
|
2690
|
+
}
|
|
2691
|
+
class TemplateContextStrategy extends ContextStrategy {
|
|
2692
|
+
setContext() {
|
|
2693
|
+
return this.context;
|
|
2694
|
+
}
|
|
2695
|
+
}
|
|
2696
|
+
const CONTEXT_STRATEGY = {
|
|
2697
|
+
None() {
|
|
2698
|
+
return new NoContextStrategy();
|
|
2699
|
+
},
|
|
2700
|
+
Component(context) {
|
|
2701
|
+
return new ComponentContextStrategy(context);
|
|
2702
|
+
},
|
|
2703
|
+
Template(context) {
|
|
2704
|
+
return new TemplateContextStrategy(context);
|
|
2705
|
+
},
|
|
2706
|
+
};
|
|
2707
|
+
|
|
2708
|
+
class LoadingStrategy {
|
|
2709
|
+
constructor(path, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {
|
|
2710
|
+
this.path = path;
|
|
2711
|
+
this.domStrategy = domStrategy;
|
|
2712
|
+
this.crossOriginStrategy = crossOriginStrategy;
|
|
2713
|
+
}
|
|
2714
|
+
createStream() {
|
|
2715
|
+
this.element = this.createElement();
|
|
2716
|
+
return of(null).pipe(switchMap(() => fromLazyLoad(this.element, this.domStrategy, this.crossOriginStrategy)));
|
|
2717
|
+
}
|
|
2718
|
+
}
|
|
2719
|
+
class ScriptLoadingStrategy extends LoadingStrategy {
|
|
2720
|
+
constructor(src, domStrategy, crossOriginStrategy) {
|
|
2721
|
+
super(src, domStrategy, crossOriginStrategy);
|
|
2722
|
+
}
|
|
2723
|
+
createElement() {
|
|
2724
|
+
const element = document.createElement('script');
|
|
2725
|
+
element.src = this.path;
|
|
2726
|
+
return element;
|
|
2727
|
+
}
|
|
2728
|
+
}
|
|
2729
|
+
class StyleLoadingStrategy extends LoadingStrategy {
|
|
2730
|
+
constructor(href, domStrategy, crossOriginStrategy) {
|
|
2731
|
+
super(href, domStrategy, crossOriginStrategy);
|
|
2732
|
+
}
|
|
2733
|
+
createElement() {
|
|
2734
|
+
const element = document.createElement('link');
|
|
2735
|
+
element.rel = 'stylesheet';
|
|
2736
|
+
element.href = this.path;
|
|
2737
|
+
return element;
|
|
2738
|
+
}
|
|
2739
|
+
}
|
|
2740
|
+
const LOADING_STRATEGY = {
|
|
2741
|
+
AppendScriptToBody(src) {
|
|
2742
|
+
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.None());
|
|
2743
|
+
},
|
|
2744
|
+
AppendAnonymousScriptToBody(src, integrity) {
|
|
2745
|
+
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2746
|
+
},
|
|
2747
|
+
AppendAnonymousScriptToHead(src, integrity) {
|
|
2748
|
+
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2749
|
+
},
|
|
2750
|
+
AppendAnonymousStyleToHead(src, integrity) {
|
|
2751
|
+
return new StyleLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2752
|
+
},
|
|
2753
|
+
PrependAnonymousScriptToHead(src, integrity) {
|
|
2754
|
+
return new ScriptLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2755
|
+
},
|
|
2756
|
+
PrependAnonymousStyleToHead(src, integrity) {
|
|
2757
|
+
return new StyleLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
2758
|
+
},
|
|
2759
|
+
};
|
|
2760
|
+
|
|
2761
|
+
class ProjectionStrategy {
|
|
2762
|
+
constructor(content) {
|
|
2763
|
+
this.content = content;
|
|
2764
|
+
}
|
|
2765
|
+
}
|
|
2766
|
+
class ComponentProjectionStrategy extends ProjectionStrategy {
|
|
2767
|
+
constructor(component, containerStrategy, contextStrategy = CONTEXT_STRATEGY.None()) {
|
|
2768
|
+
super(component);
|
|
2769
|
+
this.containerStrategy = containerStrategy;
|
|
2770
|
+
this.contextStrategy = contextStrategy;
|
|
2771
|
+
}
|
|
2772
|
+
injectContent(injector) {
|
|
2773
|
+
this.containerStrategy.prepare();
|
|
2774
|
+
const resolver = injector.get(ComponentFactoryResolver);
|
|
2775
|
+
const factory = resolver.resolveComponentFactory(this.content);
|
|
2776
|
+
const componentRef = this.containerStrategy.containerRef.createComponent(factory, this.containerStrategy.getIndex(), injector);
|
|
2777
|
+
this.contextStrategy.setContext(componentRef);
|
|
2778
|
+
return componentRef;
|
|
2779
|
+
}
|
|
2780
|
+
}
|
|
2781
|
+
class RootComponentProjectionStrategy extends ProjectionStrategy {
|
|
2782
|
+
constructor(component, contextStrategy = CONTEXT_STRATEGY.None(), domStrategy = DOM_STRATEGY.AppendToBody()) {
|
|
2783
|
+
super(component);
|
|
2784
|
+
this.contextStrategy = contextStrategy;
|
|
2785
|
+
this.domStrategy = domStrategy;
|
|
2786
|
+
}
|
|
2787
|
+
injectContent(injector) {
|
|
2788
|
+
const appRef = injector.get(ApplicationRef);
|
|
2789
|
+
const resolver = injector.get(ComponentFactoryResolver);
|
|
2790
|
+
const componentRef = resolver
|
|
2791
|
+
.resolveComponentFactory(this.content)
|
|
2792
|
+
.create(injector);
|
|
2793
|
+
this.contextStrategy.setContext(componentRef);
|
|
2794
|
+
appRef.attachView(componentRef.hostView);
|
|
2795
|
+
const element = componentRef.hostView.rootNodes[0];
|
|
2796
|
+
this.domStrategy.insertElement(element);
|
|
2797
|
+
return componentRef;
|
|
2798
|
+
}
|
|
2799
|
+
}
|
|
2800
|
+
class TemplateProjectionStrategy extends ProjectionStrategy {
|
|
2801
|
+
constructor(templateRef, containerStrategy, contextStrategy = CONTEXT_STRATEGY.None()) {
|
|
2802
|
+
super(templateRef);
|
|
2803
|
+
this.containerStrategy = containerStrategy;
|
|
2804
|
+
this.contextStrategy = contextStrategy;
|
|
2805
|
+
}
|
|
2806
|
+
injectContent() {
|
|
2807
|
+
this.containerStrategy.prepare();
|
|
2808
|
+
const embeddedViewRef = this.containerStrategy.containerRef.createEmbeddedView(this.content, this.contextStrategy.context, this.containerStrategy.getIndex());
|
|
2809
|
+
embeddedViewRef.detectChanges();
|
|
2810
|
+
return embeddedViewRef;
|
|
2811
|
+
}
|
|
2812
|
+
}
|
|
2813
|
+
const PROJECTION_STRATEGY = {
|
|
2814
|
+
AppendComponentToBody(component, context) {
|
|
2815
|
+
return new RootComponentProjectionStrategy(component, context && CONTEXT_STRATEGY.Component(context));
|
|
2816
|
+
},
|
|
2817
|
+
AppendComponentToContainer(component, containerRef, context) {
|
|
2818
|
+
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Append(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
2819
|
+
},
|
|
2820
|
+
AppendTemplateToContainer(templateRef, containerRef, context) {
|
|
2821
|
+
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Append(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
2822
|
+
},
|
|
2823
|
+
PrependComponentToContainer(component, containerRef, context) {
|
|
2824
|
+
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
2825
|
+
},
|
|
2826
|
+
PrependTemplateToContainer(templateRef, containerRef, context) {
|
|
2827
|
+
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
2828
|
+
},
|
|
2829
|
+
ProjectComponentToContainer(component, containerRef, context) {
|
|
2830
|
+
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
2831
|
+
},
|
|
2832
|
+
ProjectTemplateToContainer(templateRef, containerRef, context) {
|
|
2833
|
+
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
2834
|
+
},
|
|
2835
|
+
};
|
|
2836
|
+
|
|
2837
|
+
class DomStrategyService {
|
|
2838
|
+
constructor() {
|
|
2839
|
+
this.document = inject(DOCUMENT);
|
|
2840
|
+
}
|
|
2841
|
+
afterElement(el) {
|
|
2842
|
+
return new DomStrategy(() => el, 'afterend');
|
|
2843
|
+
}
|
|
2844
|
+
beforeElement(el) {
|
|
2845
|
+
return new DomStrategy(() => el, 'beforebegin');
|
|
2846
|
+
}
|
|
2847
|
+
appendToBody() {
|
|
2848
|
+
return new DomStrategy(() => this.document.body, 'beforeend');
|
|
2849
|
+
}
|
|
2850
|
+
appendToHead() {
|
|
2851
|
+
return new DomStrategy(() => this.document.head, 'beforeend');
|
|
2852
|
+
}
|
|
2853
|
+
prependToHead() {
|
|
2854
|
+
return new DomStrategy(() => this.document.head, 'afterbegin');
|
|
2855
|
+
}
|
|
2856
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DomStrategyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2857
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DomStrategyService, providedIn: 'root' }); }
|
|
2858
|
+
}
|
|
2859
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DomStrategyService, decorators: [{
|
|
2860
|
+
type: Injectable,
|
|
2861
|
+
args: [{ providedIn: 'root' }]
|
|
2862
|
+
}] });
|
|
2863
|
+
|
|
2864
|
+
class AbpApplicationConfigurationService {
|
|
2865
|
+
constructor() {
|
|
2866
|
+
this.restService = inject(RestService);
|
|
2867
|
+
this.apiName = 'abp';
|
|
2868
|
+
this.get = (options, config) => this.restService.request({
|
|
2869
|
+
method: 'GET',
|
|
2870
|
+
url: '/api/abp/application-configuration',
|
|
2871
|
+
params: { includeLocalizationResources: options.includeLocalizationResources },
|
|
2872
|
+
}, { apiName: this.apiName, ...config });
|
|
2873
|
+
}
|
|
2874
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2875
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationConfigurationService, providedIn: 'root' }); }
|
|
2876
|
+
}
|
|
2877
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationConfigurationService, decorators: [{
|
|
2878
|
+
type: Injectable,
|
|
2879
|
+
args: [{
|
|
2880
|
+
providedIn: 'root',
|
|
2881
|
+
}]
|
|
2882
|
+
}] });
|
|
2883
|
+
|
|
2884
|
+
class AbpApplicationLocalizationService {
|
|
2885
|
+
constructor() {
|
|
2886
|
+
this.restService = inject(RestService);
|
|
2887
|
+
this.apiName = 'abp';
|
|
2888
|
+
this.get = (input, config) => this.restService.request({
|
|
2889
|
+
method: 'GET',
|
|
2890
|
+
url: '/api/abp/application-localization',
|
|
2891
|
+
params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics },
|
|
2892
|
+
}, { apiName: this.apiName, ...config });
|
|
2893
|
+
}
|
|
2894
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2895
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, providedIn: 'root' }); }
|
|
2896
|
+
}
|
|
2897
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApplicationLocalizationService, decorators: [{
|
|
2898
|
+
type: Injectable,
|
|
2899
|
+
args: [{
|
|
2900
|
+
providedIn: 'root',
|
|
2901
|
+
}]
|
|
2902
|
+
}] });
|
|
2903
|
+
|
|
2904
|
+
class ConfigStateService {
|
|
2905
|
+
setState(config) {
|
|
2906
|
+
this.store.set(config);
|
|
2907
|
+
}
|
|
2908
|
+
get createOnUpdateStream() {
|
|
2909
|
+
return this.store.sliceUpdate;
|
|
2910
|
+
}
|
|
2911
|
+
constructor() {
|
|
2912
|
+
this.abpConfigService = inject(AbpApplicationConfigurationService);
|
|
2913
|
+
this.abpApplicationLocalizationService = inject(AbpApplicationLocalizationService);
|
|
2914
|
+
this.includeLocalizationResources = inject(INCUDE_LOCALIZATION_RESOURCES_TOKEN, { optional: true });
|
|
2915
|
+
this.updateSubject = new Subject();
|
|
2916
|
+
this.store = new InternalStore({});
|
|
2917
|
+
this.initUpdateStream();
|
|
2918
|
+
}
|
|
2919
|
+
initUpdateStream() {
|
|
2920
|
+
this.updateSubject
|
|
2921
|
+
.pipe(switchMap(() => this.abpConfigService.get({
|
|
2922
|
+
includeLocalizationResources: !!this.includeLocalizationResources,
|
|
2923
|
+
})))
|
|
2924
|
+
.pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))
|
|
2925
|
+
.subscribe(res => this.store.set(res));
|
|
2926
|
+
}
|
|
2927
|
+
getLocalizationAndCombineWithAppState(appState) {
|
|
2928
|
+
if (!appState.localization.currentCulture.cultureName) {
|
|
2929
|
+
throw new Error('culture name should defined');
|
|
2930
|
+
}
|
|
2931
|
+
const cultureName = this.uiCultureFromAuthCodeFlow ?? appState.localization.currentCulture.cultureName;
|
|
2932
|
+
return this.getlocalizationResource(cultureName).pipe(map(result => ({ ...appState, localization: { ...appState.localization, ...result } })), tap(() => (this.uiCultureFromAuthCodeFlow = undefined)));
|
|
2933
|
+
}
|
|
2934
|
+
getlocalizationResource(cultureName) {
|
|
2935
|
+
return this.abpApplicationLocalizationService.get({
|
|
2936
|
+
cultureName: cultureName,
|
|
2937
|
+
onlyDynamics: false,
|
|
2938
|
+
});
|
|
2939
|
+
}
|
|
2940
|
+
refreshAppState() {
|
|
2941
|
+
this.updateSubject.next();
|
|
2942
|
+
return this.createOnUpdateStream(state => state).pipe(take(1));
|
|
2943
|
+
}
|
|
2944
|
+
refreshLocalization(lang) {
|
|
2945
|
+
if (this.includeLocalizationResources) {
|
|
2946
|
+
return this.refreshAppState().pipe(map(() => null));
|
|
2947
|
+
}
|
|
2948
|
+
return this.getlocalizationResource(lang)
|
|
2949
|
+
.pipe(tap(result => this.store.patch({ localization: { ...this.store.state.localization, ...result } })))
|
|
2950
|
+
.pipe(map(() => null));
|
|
2449
2951
|
}
|
|
2450
2952
|
getOne$(key) {
|
|
2451
2953
|
return this.store.sliceState(state => state[key]);
|
|
@@ -2554,7 +3056,7 @@ class ConfigStateService {
|
|
|
2554
3056
|
getGlobalFeatureIsEnabled$(key) {
|
|
2555
3057
|
return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));
|
|
2556
3058
|
}
|
|
2557
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ConfigStateService, deps: [
|
|
3059
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ConfigStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2558
3060
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ConfigStateService, providedIn: 'root' }); }
|
|
2559
3061
|
}
|
|
2560
3062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ConfigStateService, decorators: [{
|
|
@@ -2562,12 +3064,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
2562
3064
|
args: [{
|
|
2563
3065
|
providedIn: 'root',
|
|
2564
3066
|
}]
|
|
2565
|
-
}], ctorParameters: () => [
|
|
2566
|
-
type: Optional
|
|
2567
|
-
}, {
|
|
2568
|
-
type: Inject,
|
|
2569
|
-
args: [INCUDE_LOCALIZATION_RESOURCES_TOKEN]
|
|
2570
|
-
}] }] });
|
|
3067
|
+
}], ctorParameters: () => [] });
|
|
2571
3068
|
function splitKeys(keys) {
|
|
2572
3069
|
if (typeof keys === 'string') {
|
|
2573
3070
|
keys = keys.split('.');
|
|
@@ -2594,14 +3091,15 @@ class LocalizationService {
|
|
|
2594
3091
|
get languageChange$() {
|
|
2595
3092
|
return this._languageChange$.asObservable();
|
|
2596
3093
|
}
|
|
2597
|
-
constructor(
|
|
2598
|
-
this.sessionState =
|
|
2599
|
-
this.injector =
|
|
2600
|
-
this.configState =
|
|
3094
|
+
constructor() {
|
|
3095
|
+
this.sessionState = inject(SessionStateService);
|
|
3096
|
+
this.injector = inject(Injector);
|
|
3097
|
+
this.configState = inject(ConfigStateService);
|
|
2601
3098
|
this.latestLang = this.sessionState.getLanguage();
|
|
2602
3099
|
this._languageChange$ = new Subject();
|
|
2603
3100
|
this.uiLocalizations$ = new BehaviorSubject(new Map());
|
|
2604
3101
|
this.localizations$ = new BehaviorSubject(new Map());
|
|
3102
|
+
const otherInstance = inject(LocalizationService, { optional: true, skipSelf: true });
|
|
2605
3103
|
if (otherInstance)
|
|
2606
3104
|
throw new Error('LocalizationService should have only one instance.');
|
|
2607
3105
|
this.listenToSetLanguage();
|
|
@@ -2747,17 +3245,13 @@ class LocalizationService {
|
|
|
2747
3245
|
localization = '';
|
|
2748
3246
|
return localization || defaultValue || key;
|
|
2749
3247
|
}
|
|
2750
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationService, deps: [
|
|
3248
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2751
3249
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationService, providedIn: 'root' }); }
|
|
2752
3250
|
}
|
|
2753
3251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationService, decorators: [{
|
|
2754
3252
|
type: Injectable,
|
|
2755
3253
|
args: [{ providedIn: 'root' }]
|
|
2756
|
-
}], ctorParameters: () => [
|
|
2757
|
-
type: Optional
|
|
2758
|
-
}, {
|
|
2759
|
-
type: SkipSelf
|
|
2760
|
-
}] }, { type: ConfigStateService }] });
|
|
3254
|
+
}], ctorParameters: () => [] });
|
|
2761
3255
|
function recursivelyMergeBaseResources(baseResourceName, source) {
|
|
2762
3256
|
const item = source[baseResourceName];
|
|
2763
3257
|
if (item.baseResources.length === 0) {
|
|
@@ -2784,7 +3278,7 @@ function combineLegacyandNewResources(legacy, resource) {
|
|
|
2784
3278
|
}
|
|
2785
3279
|
|
|
2786
3280
|
class DynamicLayoutComponent {
|
|
2787
|
-
constructor(
|
|
3281
|
+
constructor() {
|
|
2788
3282
|
this.layouts = inject(DYNAMIC_LAYOUTS_TOKEN);
|
|
2789
3283
|
this.isLayoutVisible = true;
|
|
2790
3284
|
this.defaultLayout = input(undefined);
|
|
@@ -2796,6 +3290,7 @@ class DynamicLayoutComponent {
|
|
|
2796
3290
|
this.subscription = inject(SubscriptionService);
|
|
2797
3291
|
this.routerEvents = inject(RouterEvents);
|
|
2798
3292
|
this.environment = inject(EnvironmentService);
|
|
3293
|
+
const dynamicLayoutComponent = inject(DynamicLayoutComponent, { optional: true, skipSelf: true });
|
|
2799
3294
|
if (dynamicLayoutComponent) {
|
|
2800
3295
|
if (isDevMode())
|
|
2801
3296
|
console.warn('DynamicLayoutComponent must be used only in AppComponent.');
|
|
@@ -2803,15 +3298,7 @@ class DynamicLayoutComponent {
|
|
|
2803
3298
|
}
|
|
2804
3299
|
this.checkLayoutOnNavigationEnd();
|
|
2805
3300
|
this.listenToLanguageChange();
|
|
2806
|
-
|
|
2807
|
-
ngOnInit() {
|
|
2808
|
-
if (this.layout) {
|
|
2809
|
-
return;
|
|
2810
|
-
}
|
|
2811
|
-
const { oAuthConfig } = this.environment.getEnvironment();
|
|
2812
|
-
if (oAuthConfig.responseType === 'code') {
|
|
2813
|
-
this.getLayout();
|
|
2814
|
-
}
|
|
3301
|
+
this.listenToEnvironmentChange();
|
|
2815
3302
|
}
|
|
2816
3303
|
checkLayoutOnNavigationEnd() {
|
|
2817
3304
|
const navigationEnd$ = this.routerEvents.getNavigationEvents('End');
|
|
@@ -2863,12 +3350,23 @@ class DynamicLayoutComponent {
|
|
|
2863
3350
|
getComponent(key) {
|
|
2864
3351
|
return this.replaceableComponents.get(key);
|
|
2865
3352
|
}
|
|
2866
|
-
|
|
3353
|
+
listenToEnvironmentChange() {
|
|
3354
|
+
this.environment
|
|
3355
|
+
.createOnUpdateStream(x => x.oAuthConfig)
|
|
3356
|
+
.pipe(take$1(1), filter$1(config => config.responseType === 'code'))
|
|
3357
|
+
.subscribe(() => {
|
|
3358
|
+
if (this.layout) {
|
|
3359
|
+
return;
|
|
3360
|
+
}
|
|
3361
|
+
this.getLayout();
|
|
3362
|
+
});
|
|
3363
|
+
}
|
|
3364
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DynamicLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2867
3365
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.7", type: DynamicLayoutComponent, isStandalone: true, selector: "abp-dynamic-layout", inputs: { defaultLayout: { classPropertyName: "defaultLayout", publicName: "defaultLayout", isSignal: true, isRequired: false, transformFunction: null } }, providers: [SubscriptionService], ngImport: i0, template: `
|
|
2868
3366
|
@if (isLayoutVisible) {
|
|
2869
3367
|
<ng-container [ngComponentOutlet]="layout"></ng-container>
|
|
2870
3368
|
}
|
|
2871
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
3369
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }] }); }
|
|
2872
3370
|
}
|
|
2873
3371
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: DynamicLayoutComponent, decorators: [{
|
|
2874
3372
|
type: Component,
|
|
@@ -2880,19 +3378,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
2880
3378
|
}
|
|
2881
3379
|
`,
|
|
2882
3380
|
providers: [SubscriptionService],
|
|
2883
|
-
imports: [
|
|
3381
|
+
imports: [NgComponentOutlet],
|
|
2884
3382
|
}]
|
|
2885
|
-
}], ctorParameters: () => [
|
|
2886
|
-
type: Optional
|
|
2887
|
-
}, {
|
|
2888
|
-
type: SkipSelf
|
|
2889
|
-
}] }] });
|
|
3383
|
+
}], ctorParameters: () => [] });
|
|
2890
3384
|
|
|
2891
3385
|
class ReplaceableRouteContainerComponent {
|
|
2892
|
-
constructor(
|
|
2893
|
-
this.route =
|
|
2894
|
-
this.replaceableComponents =
|
|
2895
|
-
this.subscription =
|
|
3386
|
+
constructor() {
|
|
3387
|
+
this.route = inject(ActivatedRoute);
|
|
3388
|
+
this.replaceableComponents = inject(ReplaceableComponentsService);
|
|
3389
|
+
this.subscription = inject(SubscriptionService);
|
|
2896
3390
|
}
|
|
2897
3391
|
ngOnInit() {
|
|
2898
3392
|
this.defaultComponent = this.route.snapshot.data.replaceableComponent.defaultComponent;
|
|
@@ -2904,10 +3398,10 @@ class ReplaceableRouteContainerComponent {
|
|
|
2904
3398
|
this.externalComponent = res.component;
|
|
2905
3399
|
});
|
|
2906
3400
|
}
|
|
2907
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableRouteContainerComponent, deps: [
|
|
3401
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableRouteContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2908
3402
|
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: `
|
|
2909
3403
|
<ng-container *ngComponentOutlet="externalComponent || defaultComponent"></ng-container>
|
|
2910
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
3404
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }] }); }
|
|
2911
3405
|
}
|
|
2912
3406
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableRouteContainerComponent, decorators: [{
|
|
2913
3407
|
type: Component,
|
|
@@ -2917,20 +3411,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
2917
3411
|
<ng-container *ngComponentOutlet="externalComponent || defaultComponent"></ng-container>
|
|
2918
3412
|
`,
|
|
2919
3413
|
providers: [SubscriptionService],
|
|
2920
|
-
imports: [
|
|
3414
|
+
imports: [NgComponentOutlet],
|
|
2921
3415
|
}]
|
|
2922
|
-
}]
|
|
3416
|
+
}] });
|
|
2923
3417
|
|
|
2924
3418
|
class RouterOutletComponent {
|
|
2925
3419
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2926
|
-
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: "
|
|
3420
|
+
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"] }] }); }
|
|
2927
3421
|
}
|
|
2928
3422
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RouterOutletComponent, decorators: [{
|
|
2929
3423
|
type: Component,
|
|
2930
3424
|
args: [{
|
|
2931
3425
|
selector: 'abp-router-outlet',
|
|
2932
3426
|
template: ` <router-outlet></router-outlet> `,
|
|
2933
|
-
imports: [
|
|
3427
|
+
imports: [RouterOutlet],
|
|
2934
3428
|
}]
|
|
2935
3429
|
}] });
|
|
2936
3430
|
|
|
@@ -3278,20 +3772,20 @@ const DEFAULT_DYNAMIC_LAYOUTS = new Map([
|
|
|
3278
3772
|
]);
|
|
3279
3773
|
|
|
3280
3774
|
class AutofocusDirective {
|
|
3775
|
+
constructor() {
|
|
3776
|
+
this.elRef = inject(ElementRef);
|
|
3777
|
+
this._delay = 0;
|
|
3778
|
+
}
|
|
3281
3779
|
set delay(val) {
|
|
3282
3780
|
this._delay = Number(val) || 0;
|
|
3283
3781
|
}
|
|
3284
3782
|
get delay() {
|
|
3285
3783
|
return this._delay;
|
|
3286
3784
|
}
|
|
3287
|
-
constructor(elRef) {
|
|
3288
|
-
this.elRef = elRef;
|
|
3289
|
-
this._delay = 0;
|
|
3290
|
-
}
|
|
3291
3785
|
ngAfterViewInit() {
|
|
3292
3786
|
setTimeout(() => this.elRef.nativeElement.focus(), this.delay);
|
|
3293
3787
|
}
|
|
3294
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AutofocusDirective, deps: [
|
|
3788
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3295
3789
|
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 }); }
|
|
3296
3790
|
}
|
|
3297
3791
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AutofocusDirective, decorators: [{
|
|
@@ -3299,15 +3793,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3299
3793
|
args: [{
|
|
3300
3794
|
selector: '[autofocus]',
|
|
3301
3795
|
}]
|
|
3302
|
-
}],
|
|
3796
|
+
}], propDecorators: { delay: [{
|
|
3303
3797
|
type: Input,
|
|
3304
3798
|
args: ['autofocus']
|
|
3305
3799
|
}] } });
|
|
3306
3800
|
|
|
3307
3801
|
class InputEventDebounceDirective {
|
|
3308
|
-
constructor(
|
|
3309
|
-
this.el =
|
|
3310
|
-
this.subscription =
|
|
3802
|
+
constructor() {
|
|
3803
|
+
this.el = inject(ElementRef);
|
|
3804
|
+
this.subscription = inject(SubscriptionService);
|
|
3311
3805
|
this.debounce = 300;
|
|
3312
3806
|
this.debounceEvent = new EventEmitter();
|
|
3313
3807
|
}
|
|
@@ -3317,7 +3811,7 @@ class InputEventDebounceDirective {
|
|
|
3317
3811
|
this.debounceEvent.emit(event);
|
|
3318
3812
|
});
|
|
3319
3813
|
}
|
|
3320
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InputEventDebounceDirective, deps: [
|
|
3814
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InputEventDebounceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3321
3815
|
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 }); }
|
|
3322
3816
|
}
|
|
3323
3817
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InputEventDebounceDirective, decorators: [{
|
|
@@ -3326,7 +3820,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3326
3820
|
selector: '[input.debounce]',
|
|
3327
3821
|
providers: [SubscriptionService],
|
|
3328
3822
|
}]
|
|
3329
|
-
}],
|
|
3823
|
+
}], propDecorators: { debounce: [{
|
|
3330
3824
|
type: Input
|
|
3331
3825
|
}], debounceEvent: [{
|
|
3332
3826
|
type: Output,
|
|
@@ -3348,17 +3842,17 @@ class RecordView {
|
|
|
3348
3842
|
}
|
|
3349
3843
|
}
|
|
3350
3844
|
class ForDirective {
|
|
3845
|
+
constructor() {
|
|
3846
|
+
this.tempRef = inject(TemplateRef);
|
|
3847
|
+
this.vcRef = inject(ViewContainerRef);
|
|
3848
|
+
this.differs = inject(IterableDiffers);
|
|
3849
|
+
}
|
|
3351
3850
|
get compareFn() {
|
|
3352
3851
|
return this.compareBy || compare;
|
|
3353
3852
|
}
|
|
3354
3853
|
get trackByFn() {
|
|
3355
3854
|
return this.trackBy || ((index, item) => item.id || index);
|
|
3356
3855
|
}
|
|
3357
|
-
constructor(tempRef, vcRef, differs) {
|
|
3358
|
-
this.tempRef = tempRef;
|
|
3359
|
-
this.vcRef = vcRef;
|
|
3360
|
-
this.differs = differs;
|
|
3361
|
-
}
|
|
3362
3856
|
iterateOverAppliedOperations(changes) {
|
|
3363
3857
|
const rw = [];
|
|
3364
3858
|
changes.forEachOperation((record, previousIndex, currentIndex) => {
|
|
@@ -3454,7 +3948,7 @@ class ForDirective {
|
|
|
3454
3948
|
this.projectItems(items);
|
|
3455
3949
|
}
|
|
3456
3950
|
}
|
|
3457
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ForDirective, deps: [
|
|
3951
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ForDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3458
3952
|
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 }); }
|
|
3459
3953
|
}
|
|
3460
3954
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ForDirective, decorators: [{
|
|
@@ -3462,7 +3956,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3462
3956
|
args: [{
|
|
3463
3957
|
selector: '[abpFor]',
|
|
3464
3958
|
}]
|
|
3465
|
-
}],
|
|
3959
|
+
}], propDecorators: { items: [{
|
|
3466
3960
|
type: Input,
|
|
3467
3961
|
args: ['abpForOf']
|
|
3468
3962
|
}], orderBy: [{
|
|
@@ -3492,11 +3986,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3492
3986
|
* @deprecated FormSubmitDirective will be removed in V7.0.0. Use `ngSubmit` instead.
|
|
3493
3987
|
*/
|
|
3494
3988
|
class FormSubmitDirective {
|
|
3495
|
-
constructor(
|
|
3496
|
-
this.formGroupDirective =
|
|
3497
|
-
this.host =
|
|
3498
|
-
this.cdRef =
|
|
3499
|
-
this.subscription =
|
|
3989
|
+
constructor() {
|
|
3990
|
+
this.formGroupDirective = inject(FormGroupDirective, { self: true });
|
|
3991
|
+
this.host = inject(ElementRef);
|
|
3992
|
+
this.cdRef = inject(ChangeDetectorRef);
|
|
3993
|
+
this.subscription = inject(SubscriptionService);
|
|
3500
3994
|
this.debounce = 200;
|
|
3501
3995
|
this.markAsDirtyWhenSubmit = true;
|
|
3502
3996
|
this.ngSubmit = new EventEmitter();
|
|
@@ -3523,7 +4017,7 @@ class FormSubmitDirective {
|
|
|
3523
4017
|
form.markAsDirty();
|
|
3524
4018
|
this.cdRef.detectChanges();
|
|
3525
4019
|
}
|
|
3526
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: FormSubmitDirective, deps: [
|
|
4020
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: FormSubmitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3527
4021
|
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 }); }
|
|
3528
4022
|
}
|
|
3529
4023
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: FormSubmitDirective, decorators: [{
|
|
@@ -3532,9 +4026,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3532
4026
|
selector: 'form[ngSubmit][formGroup]',
|
|
3533
4027
|
providers: [SubscriptionService],
|
|
3534
4028
|
}]
|
|
3535
|
-
}],
|
|
3536
|
-
type: Self
|
|
3537
|
-
}] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: SubscriptionService }], propDecorators: { debounce: [{
|
|
4029
|
+
}], propDecorators: { debounce: [{
|
|
3538
4030
|
type: Input
|
|
3539
4031
|
}], notValidateOnSubmit: [{
|
|
3540
4032
|
type: Input
|
|
@@ -3557,14 +4049,14 @@ function setDirty(controls) {
|
|
|
3557
4049
|
}
|
|
3558
4050
|
|
|
3559
4051
|
class InitDirective {
|
|
3560
|
-
constructor(
|
|
3561
|
-
this.elRef =
|
|
4052
|
+
constructor() {
|
|
4053
|
+
this.elRef = inject(ElementRef);
|
|
3562
4054
|
this.init = new EventEmitter();
|
|
3563
4055
|
}
|
|
3564
4056
|
ngAfterViewInit() {
|
|
3565
4057
|
this.init.emit(this.elRef);
|
|
3566
4058
|
}
|
|
3567
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InitDirective, deps: [
|
|
4059
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3568
4060
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: InitDirective, isStandalone: true, selector: "[abpInit]", outputs: { init: "abpInit" }, ngImport: i0 }); }
|
|
3569
4061
|
}
|
|
3570
4062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: InitDirective, decorators: [{
|
|
@@ -3572,18 +4064,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3572
4064
|
args: [{
|
|
3573
4065
|
selector: '[abpInit]',
|
|
3574
4066
|
}]
|
|
3575
|
-
}],
|
|
4067
|
+
}], propDecorators: { init: [{
|
|
3576
4068
|
type: Output,
|
|
3577
4069
|
args: ['abpInit']
|
|
3578
4070
|
}] } });
|
|
3579
4071
|
|
|
3580
4072
|
class PermissionDirective {
|
|
3581
|
-
constructor(
|
|
3582
|
-
this.templateRef =
|
|
3583
|
-
this.vcRef =
|
|
3584
|
-
this.permissionService =
|
|
3585
|
-
this.cdRef =
|
|
3586
|
-
this.queue =
|
|
4073
|
+
constructor() {
|
|
4074
|
+
this.templateRef = inject(TemplateRef, { optional: true });
|
|
4075
|
+
this.vcRef = inject(ViewContainerRef);
|
|
4076
|
+
this.permissionService = inject(PermissionService);
|
|
4077
|
+
this.cdRef = inject(ChangeDetectorRef);
|
|
4078
|
+
this.queue = inject(QUEUE_MANAGER);
|
|
3587
4079
|
this.runChangeDetection = true;
|
|
3588
4080
|
this.cdrSubject = new ReplaySubject();
|
|
3589
4081
|
this.rendered = false;
|
|
@@ -3623,7 +4115,7 @@ class PermissionDirective {
|
|
|
3623
4115
|
this.cdrSubject.pipe(take(1)).subscribe(() => this.queue.add(() => this.cdRef.detectChanges()));
|
|
3624
4116
|
this.rendered = true;
|
|
3625
4117
|
}
|
|
3626
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionDirective, deps: [
|
|
4118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3627
4119
|
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 }); }
|
|
3628
4120
|
}
|
|
3629
4121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: PermissionDirective, decorators: [{
|
|
@@ -3631,12 +4123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3631
4123
|
args: [{
|
|
3632
4124
|
selector: '[abpPermission]',
|
|
3633
4125
|
}]
|
|
3634
|
-
}],
|
|
3635
|
-
type: Optional
|
|
3636
|
-
}] }, { type: i0.ViewContainerRef }, { type: PermissionService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
3637
|
-
type: Inject,
|
|
3638
|
-
args: [QUEUE_MANAGER]
|
|
3639
|
-
}] }], propDecorators: { condition: [{
|
|
4126
|
+
}], propDecorators: { condition: [{
|
|
3640
4127
|
type: Input,
|
|
3641
4128
|
args: ['abpPermission']
|
|
3642
4129
|
}], runChangeDetection: [{
|
|
@@ -3645,12 +4132,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3645
4132
|
}] } });
|
|
3646
4133
|
|
|
3647
4134
|
class ReplaceableTemplateDirective {
|
|
3648
|
-
constructor(
|
|
3649
|
-
this.injector =
|
|
3650
|
-
this.templateRef =
|
|
3651
|
-
this.vcRef =
|
|
3652
|
-
this.replaceableComponents =
|
|
3653
|
-
this.subscription =
|
|
4135
|
+
constructor() {
|
|
4136
|
+
this.injector = inject(Injector);
|
|
4137
|
+
this.templateRef = inject(TemplateRef);
|
|
4138
|
+
this.vcRef = inject(ViewContainerRef);
|
|
4139
|
+
this.replaceableComponents = inject(ReplaceableComponentsService);
|
|
4140
|
+
this.subscription = inject(SubscriptionService);
|
|
3654
4141
|
this.providedData = {
|
|
3655
4142
|
inputs: {},
|
|
3656
4143
|
outputs: {},
|
|
@@ -3754,7 +4241,7 @@ class ReplaceableTemplateDirective {
|
|
|
3754
4241
|
this.defaultComponentSubscriptions = {};
|
|
3755
4242
|
this.defaultComponentRef = null;
|
|
3756
4243
|
}
|
|
3757
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableTemplateDirective, deps: [
|
|
4244
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3758
4245
|
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 }); }
|
|
3759
4246
|
}
|
|
3760
4247
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ReplaceableTemplateDirective, decorators: [{
|
|
@@ -3763,15 +4250,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3763
4250
|
selector: '[abpReplaceableTemplate]',
|
|
3764
4251
|
providers: [SubscriptionService],
|
|
3765
4252
|
}]
|
|
3766
|
-
}], ctorParameters: () => [
|
|
4253
|
+
}], ctorParameters: () => [], propDecorators: { data: [{
|
|
3767
4254
|
type: Input,
|
|
3768
4255
|
args: ['abpReplaceableTemplate']
|
|
3769
4256
|
}] } });
|
|
3770
4257
|
|
|
3771
4258
|
class StopPropagationDirective {
|
|
3772
|
-
constructor(
|
|
3773
|
-
this.el =
|
|
3774
|
-
this.subscription =
|
|
4259
|
+
constructor() {
|
|
4260
|
+
this.el = inject(ElementRef);
|
|
4261
|
+
this.subscription = inject(SubscriptionService);
|
|
3775
4262
|
this.stopPropEvent = new EventEmitter();
|
|
3776
4263
|
}
|
|
3777
4264
|
ngOnInit() {
|
|
@@ -3780,7 +4267,7 @@ class StopPropagationDirective {
|
|
|
3780
4267
|
this.stopPropEvent.emit(event);
|
|
3781
4268
|
});
|
|
3782
4269
|
}
|
|
3783
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: StopPropagationDirective, deps: [
|
|
4270
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: StopPropagationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3784
4271
|
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 }); }
|
|
3785
4272
|
}
|
|
3786
4273
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: StopPropagationDirective, decorators: [{
|
|
@@ -3789,7 +4276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3789
4276
|
selector: '[click.stop]',
|
|
3790
4277
|
providers: [SubscriptionService],
|
|
3791
4278
|
}]
|
|
3792
|
-
}],
|
|
4279
|
+
}], propDecorators: { stopPropEvent: [{
|
|
3793
4280
|
type: Output,
|
|
3794
4281
|
args: ['click.stop']
|
|
3795
4282
|
}] } });
|
|
@@ -3861,6 +4348,9 @@ Date.prototype.toLocalISOString = function () {
|
|
|
3861
4348
|
|
|
3862
4349
|
function setLanguageToCookie() {
|
|
3863
4350
|
const injector = inject(Injector);
|
|
4351
|
+
const platformId = injector.get(PLATFORM_ID);
|
|
4352
|
+
if (!isPlatformBrowser(platformId))
|
|
4353
|
+
return;
|
|
3864
4354
|
const sessionState = injector.get(SessionStateService);
|
|
3865
4355
|
const document = injector.get(DOCUMENT);
|
|
3866
4356
|
const cookieLanguageKey = injector.get(COOKIE_LANGUAGE_KEY);
|
|
@@ -3874,9 +4364,9 @@ const CookieLanguageProvider = provideAppInitializer(() => {
|
|
|
3874
4364
|
});
|
|
3875
4365
|
|
|
3876
4366
|
class LocaleId extends String {
|
|
3877
|
-
constructor(
|
|
4367
|
+
constructor() {
|
|
3878
4368
|
super();
|
|
3879
|
-
this.localizationService =
|
|
4369
|
+
this.localizationService = inject(LocalizationService);
|
|
3880
4370
|
}
|
|
3881
4371
|
toString() {
|
|
3882
4372
|
const { currentLang } = this.localizationService;
|
|
@@ -3892,7 +4382,6 @@ class LocaleId extends String {
|
|
|
3892
4382
|
const LocaleProvider = {
|
|
3893
4383
|
provide: LOCALE_ID,
|
|
3894
4384
|
useClass: LocaleId,
|
|
3895
|
-
deps: [LocalizationService],
|
|
3896
4385
|
};
|
|
3897
4386
|
|
|
3898
4387
|
const IncludeLocalizationResourcesProvider = {
|
|
@@ -3901,9 +4390,9 @@ const IncludeLocalizationResourcesProvider = {
|
|
|
3901
4390
|
};
|
|
3902
4391
|
|
|
3903
4392
|
class RoutesHandler {
|
|
3904
|
-
constructor(
|
|
3905
|
-
this.routes =
|
|
3906
|
-
this.router =
|
|
4393
|
+
constructor() {
|
|
4394
|
+
this.routes = inject(RoutesService);
|
|
4395
|
+
this.router = inject(Router, { optional: true });
|
|
3907
4396
|
this.addRoutes();
|
|
3908
4397
|
}
|
|
3909
4398
|
addRoutes() {
|
|
@@ -3920,7 +4409,7 @@ class RoutesHandler {
|
|
|
3920
4409
|
}
|
|
3921
4410
|
});
|
|
3922
4411
|
}
|
|
3923
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RoutesHandler, deps: [
|
|
4412
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RoutesHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3924
4413
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RoutesHandler, providedIn: 'root' }); }
|
|
3925
4414
|
}
|
|
3926
4415
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: RoutesHandler, decorators: [{
|
|
@@ -3928,9 +4417,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3928
4417
|
args: [{
|
|
3929
4418
|
providedIn: 'root',
|
|
3930
4419
|
}]
|
|
3931
|
-
}], ctorParameters: () => [
|
|
3932
|
-
type: Optional
|
|
3933
|
-
}] }] });
|
|
4420
|
+
}], ctorParameters: () => [] });
|
|
3934
4421
|
function flatRoutes(routes, parent) {
|
|
3935
4422
|
if (!routes)
|
|
3936
4423
|
return [];
|
|
@@ -3946,8 +4433,8 @@ function flatRoutes(routes, parent) {
|
|
|
3946
4433
|
}
|
|
3947
4434
|
|
|
3948
4435
|
class ApiInterceptor {
|
|
3949
|
-
constructor(
|
|
3950
|
-
this.httpWaitService =
|
|
4436
|
+
constructor() {
|
|
4437
|
+
this.httpWaitService = inject(HttpWaitService);
|
|
3951
4438
|
}
|
|
3952
4439
|
getAdditionalHeaders(existingHeaders) {
|
|
3953
4440
|
return existingHeaders || new HttpHeaders();
|
|
@@ -3956,7 +4443,7 @@ class ApiInterceptor {
|
|
|
3956
4443
|
this.httpWaitService.addRequest(request);
|
|
3957
4444
|
return next.handle(request).pipe(finalize(() => this.httpWaitService.deleteRequest(request)));
|
|
3958
4445
|
}
|
|
3959
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ApiInterceptor, deps: [
|
|
4446
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ApiInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3960
4447
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ApiInterceptor, providedIn: 'root' }); }
|
|
3961
4448
|
}
|
|
3962
4449
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ApiInterceptor, decorators: [{
|
|
@@ -3964,35 +4451,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
3964
4451
|
args: [{
|
|
3965
4452
|
providedIn: 'root',
|
|
3966
4453
|
}]
|
|
3967
|
-
}]
|
|
4454
|
+
}] });
|
|
3968
4455
|
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
|
|
4456
|
+
const timezoneInterceptor = (req, next) => {
|
|
4457
|
+
const timezoneService = inject(TimezoneService);
|
|
4458
|
+
if (!timezoneService.isUtcClockEnabled) {
|
|
4459
|
+
return next(req);
|
|
3972
4460
|
}
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
4461
|
+
const timezone = timezoneService.timezone;
|
|
4462
|
+
if (timezone) {
|
|
4463
|
+
req = req.clone({
|
|
4464
|
+
setHeaders: {
|
|
4465
|
+
__timezone: timezone,
|
|
4466
|
+
},
|
|
4467
|
+
});
|
|
4468
|
+
}
|
|
4469
|
+
return next(req);
|
|
4470
|
+
};
|
|
4471
|
+
|
|
4472
|
+
const transferStateInterceptor = (req, next) => {
|
|
4473
|
+
const transferState = inject(TransferState);
|
|
4474
|
+
const platformId = inject(PLATFORM_ID);
|
|
4475
|
+
if (req.method !== 'GET') {
|
|
4476
|
+
return next(req);
|
|
4477
|
+
}
|
|
4478
|
+
const stateKey = makeStateKey(req.urlWithParams);
|
|
4479
|
+
if (isPlatformBrowser(platformId)) {
|
|
4480
|
+
const storedResponse = transferState.get(stateKey, null);
|
|
4481
|
+
if (storedResponse) {
|
|
4482
|
+
transferState.remove(stateKey);
|
|
4483
|
+
return of(new HttpResponse({ body: storedResponse, status: 200 }));
|
|
3984
4484
|
}
|
|
3985
|
-
return next.handle(req);
|
|
3986
4485
|
}
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
}]
|
|
3995
|
-
}] });
|
|
4486
|
+
return next(req).pipe(tap(event => {
|
|
4487
|
+
if (isPlatformServer(platformId) && event instanceof HttpResponse) {
|
|
4488
|
+
transferState.set(stateKey, event.body);
|
|
4489
|
+
console.log(`Interceptor: ${req.urlWithParams} is stored in TransferState.`);
|
|
4490
|
+
}
|
|
4491
|
+
}));
|
|
4492
|
+
};
|
|
3996
4493
|
|
|
3997
4494
|
var CoreFeatureKind;
|
|
3998
4495
|
(function (CoreFeatureKind) {
|
|
@@ -4055,7 +4552,7 @@ function provideAbpCore(...features) {
|
|
|
4055
4552
|
provideHttpClient(withInterceptorsFromDi(), withXsrfConfiguration({
|
|
4056
4553
|
cookieName: 'XSRF-TOKEN',
|
|
4057
4554
|
headerName: 'RequestVerificationToken',
|
|
4058
|
-
})),
|
|
4555
|
+
}), withFetch(), withInterceptors([transferStateInterceptor, timezoneInterceptor])),
|
|
4059
4556
|
provideAppInitializer(async () => {
|
|
4060
4557
|
inject(LocalizationService);
|
|
4061
4558
|
inject(LocalStorageListenerService);
|
|
@@ -4078,11 +4575,6 @@ function provideAbpCore(...features) {
|
|
|
4078
4575
|
provide: TitleStrategy,
|
|
4079
4576
|
useExisting: AbpTitleStrategy,
|
|
4080
4577
|
},
|
|
4081
|
-
{
|
|
4082
|
-
provide: HTTP_INTERCEPTORS,
|
|
4083
|
-
useClass: TimezoneInterceptor,
|
|
4084
|
-
multi: true,
|
|
4085
|
-
},
|
|
4086
4578
|
];
|
|
4087
4579
|
for (const feature of features) {
|
|
4088
4580
|
providers.push(...feature.ɵproviders);
|
|
@@ -4101,8 +4593,8 @@ function provideAbpCoreChild(options = {}) {
|
|
|
4101
4593
|
}
|
|
4102
4594
|
|
|
4103
4595
|
class LocalizationPipe {
|
|
4104
|
-
constructor(
|
|
4105
|
-
this.localization =
|
|
4596
|
+
constructor() {
|
|
4597
|
+
this.localization = inject(LocalizationService);
|
|
4106
4598
|
}
|
|
4107
4599
|
transform(value = '', ...interpolateParams) {
|
|
4108
4600
|
const params = interpolateParams.reduce((acc, val) => {
|
|
@@ -4116,7 +4608,7 @@ class LocalizationPipe {
|
|
|
4116
4608
|
}, []) || [];
|
|
4117
4609
|
return this.localization.instant(value, ...params);
|
|
4118
4610
|
}
|
|
4119
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationPipe, deps: [
|
|
4611
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4120
4612
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: LocalizationPipe, isStandalone: true, name: "abpLocalization" }); }
|
|
4121
4613
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: LocalizationPipe }); }
|
|
4122
4614
|
}
|
|
@@ -4127,7 +4619,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4127
4619
|
args: [{
|
|
4128
4620
|
name: 'abpLocalization',
|
|
4129
4621
|
}]
|
|
4130
|
-
}]
|
|
4622
|
+
}] });
|
|
4131
4623
|
|
|
4132
4624
|
class SafeHtmlPipe {
|
|
4133
4625
|
constructor() {
|
|
@@ -4200,8 +4692,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4200
4692
|
|
|
4201
4693
|
const INJECTOR_PIPE_DATA_TOKEN = new InjectionToken('INJECTOR_PIPE_DATA_TOKEN');
|
|
4202
4694
|
class ToInjectorPipe {
|
|
4203
|
-
constructor(
|
|
4204
|
-
this.injector =
|
|
4695
|
+
constructor() {
|
|
4696
|
+
this.injector = inject(Injector);
|
|
4205
4697
|
}
|
|
4206
4698
|
transform(value, token = INJECTOR_PIPE_DATA_TOKEN, name = 'ToInjectorPipe') {
|
|
4207
4699
|
return Injector.create({
|
|
@@ -4215,7 +4707,7 @@ class ToInjectorPipe {
|
|
|
4215
4707
|
name,
|
|
4216
4708
|
});
|
|
4217
4709
|
}
|
|
4218
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ToInjectorPipe, deps: [
|
|
4710
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ToInjectorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4219
4711
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: ToInjectorPipe, isStandalone: true, name: "toInjector" }); }
|
|
4220
4712
|
}
|
|
4221
4713
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ToInjectorPipe, decorators: [{
|
|
@@ -4223,18 +4715,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4223
4715
|
args: [{
|
|
4224
4716
|
name: 'toInjector',
|
|
4225
4717
|
}]
|
|
4226
|
-
}]
|
|
4718
|
+
}] });
|
|
4227
4719
|
|
|
4228
4720
|
class ShortDatePipe extends DatePipe {
|
|
4229
|
-
constructor(
|
|
4721
|
+
constructor() {
|
|
4722
|
+
const locale = inject(LOCALE_ID);
|
|
4723
|
+
const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });
|
|
4230
4724
|
super(locale, defaultTimezone);
|
|
4231
|
-
this.configStateService =
|
|
4725
|
+
this.configStateService = inject(ConfigStateService);
|
|
4232
4726
|
}
|
|
4233
4727
|
transform(value, timezone, locale) {
|
|
4234
4728
|
const format = getShortDateFormat(this.configStateService);
|
|
4235
4729
|
return super.transform(value, format, timezone, locale);
|
|
4236
4730
|
}
|
|
4237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDatePipe, deps: [
|
|
4731
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4238
4732
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: ShortDatePipe, isStandalone: true, name: "shortDate" }); }
|
|
4239
4733
|
}
|
|
4240
4734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDatePipe, decorators: [{
|
|
@@ -4243,26 +4737,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4243
4737
|
name: 'shortDate',
|
|
4244
4738
|
pure: true,
|
|
4245
4739
|
}]
|
|
4246
|
-
}], ctorParameters: () => [
|
|
4247
|
-
type: Inject,
|
|
4248
|
-
args: [LOCALE_ID]
|
|
4249
|
-
}] }, { type: undefined, decorators: [{
|
|
4250
|
-
type: Inject,
|
|
4251
|
-
args: [DATE_PIPE_DEFAULT_TIMEZONE]
|
|
4252
|
-
}, {
|
|
4253
|
-
type: Optional
|
|
4254
|
-
}] }] });
|
|
4740
|
+
}], ctorParameters: () => [] });
|
|
4255
4741
|
|
|
4256
4742
|
class ShortTimePipe extends DatePipe {
|
|
4257
|
-
constructor(
|
|
4743
|
+
constructor() {
|
|
4744
|
+
const locale = inject(LOCALE_ID);
|
|
4745
|
+
const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });
|
|
4258
4746
|
super(locale, defaultTimezone);
|
|
4259
|
-
this.configStateService =
|
|
4747
|
+
this.configStateService = inject(ConfigStateService);
|
|
4260
4748
|
}
|
|
4261
4749
|
transform(value, timezone, locale) {
|
|
4262
4750
|
const format = getShortTimeFormat(this.configStateService);
|
|
4263
4751
|
return super.transform(value, format, timezone, locale);
|
|
4264
4752
|
}
|
|
4265
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortTimePipe, deps: [
|
|
4753
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4266
4754
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: ShortTimePipe, isStandalone: true, name: "shortTime" }); }
|
|
4267
4755
|
}
|
|
4268
4756
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortTimePipe, decorators: [{
|
|
@@ -4271,26 +4759,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4271
4759
|
name: 'shortTime',
|
|
4272
4760
|
pure: true,
|
|
4273
4761
|
}]
|
|
4274
|
-
}], ctorParameters: () => [
|
|
4275
|
-
type: Inject,
|
|
4276
|
-
args: [LOCALE_ID]
|
|
4277
|
-
}] }, { type: undefined, decorators: [{
|
|
4278
|
-
type: Inject,
|
|
4279
|
-
args: [DATE_PIPE_DEFAULT_TIMEZONE]
|
|
4280
|
-
}, {
|
|
4281
|
-
type: Optional
|
|
4282
|
-
}] }] });
|
|
4762
|
+
}], ctorParameters: () => [] });
|
|
4283
4763
|
|
|
4284
4764
|
class ShortDateTimePipe extends DatePipe {
|
|
4285
|
-
constructor(
|
|
4765
|
+
constructor() {
|
|
4766
|
+
const locale = inject(LOCALE_ID);
|
|
4767
|
+
const defaultTimezone = inject(DATE_PIPE_DEFAULT_TIMEZONE, { optional: true });
|
|
4286
4768
|
super(locale, defaultTimezone);
|
|
4287
|
-
this.configStateService =
|
|
4769
|
+
this.configStateService = inject(ConfigStateService);
|
|
4288
4770
|
}
|
|
4289
4771
|
transform(value, timezone, locale) {
|
|
4290
4772
|
const format = getShortDateShortTimeFormat(this.configStateService);
|
|
4291
4773
|
return super.transform(value, format, timezone, locale);
|
|
4292
4774
|
}
|
|
4293
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDateTimePipe, deps: [
|
|
4775
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4294
4776
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.7", ngImport: i0, type: ShortDateTimePipe, isStandalone: true, name: "shortDateTime" }); }
|
|
4295
4777
|
}
|
|
4296
4778
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: ShortDateTimePipe, decorators: [{
|
|
@@ -4299,15 +4781,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4299
4781
|
name: 'shortDateTime',
|
|
4300
4782
|
pure: true,
|
|
4301
4783
|
}]
|
|
4302
|
-
}], ctorParameters: () => [
|
|
4303
|
-
type: Inject,
|
|
4304
|
-
args: [LOCALE_ID]
|
|
4305
|
-
}] }, { type: undefined, decorators: [{
|
|
4306
|
-
type: Inject,
|
|
4307
|
-
args: [DATE_PIPE_DEFAULT_TIMEZONE]
|
|
4308
|
-
}, {
|
|
4309
|
-
type: Optional
|
|
4310
|
-
}] }] });
|
|
4784
|
+
}], ctorParameters: () => [] });
|
|
4311
4785
|
|
|
4312
4786
|
class UtcToLocalPipe {
|
|
4313
4787
|
constructor() {
|
|
@@ -4488,13 +4962,11 @@ class BaseCoreModule {
|
|
|
4488
4962
|
ReplaceableRouteContainerComponent,
|
|
4489
4963
|
RouterOutletComponent,
|
|
4490
4964
|
AbstractNgModelComponent] }); }
|
|
4491
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BaseCoreModule, providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule,
|
|
4965
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BaseCoreModule, providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi(), withFetch())], imports: [CommonModule,
|
|
4492
4966
|
FormsModule,
|
|
4493
4967
|
ReactiveFormsModule,
|
|
4494
4968
|
RouterModule,
|
|
4495
|
-
NgxValidateCoreModule,
|
|
4496
|
-
ReplaceableRouteContainerComponent,
|
|
4497
|
-
RouterOutletComponent, CommonModule,
|
|
4969
|
+
NgxValidateCoreModule, CommonModule,
|
|
4498
4970
|
FormsModule,
|
|
4499
4971
|
ReactiveFormsModule,
|
|
4500
4972
|
RouterModule,
|
|
@@ -4524,7 +4996,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImpor
|
|
|
4524
4996
|
...CORE_COMPONENTS,
|
|
4525
4997
|
],
|
|
4526
4998
|
declarations: [],
|
|
4527
|
-
providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi())],
|
|
4999
|
+
providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi(), withFetch())],
|
|
4528
5000
|
}]
|
|
4529
5001
|
}] });
|
|
4530
5002
|
/**
|
|
@@ -4629,6 +5101,7 @@ const permissionGuard = (route, state) => {
|
|
|
4629
5101
|
const authService = inject(AuthService);
|
|
4630
5102
|
const permissionService = inject(PermissionService);
|
|
4631
5103
|
const httpErrorReporter = inject(HttpErrorReporterService);
|
|
5104
|
+
const platformId = inject(PLATFORM_ID);
|
|
4632
5105
|
let { requiredPolicy } = route.data || {};
|
|
4633
5106
|
if (!requiredPolicy) {
|
|
4634
5107
|
const routeFound = findRoute(routesService, getRoutePath(router, state.url));
|
|
@@ -4637,6 +5110,10 @@ const permissionGuard = (route, state) => {
|
|
|
4637
5110
|
if (!requiredPolicy) {
|
|
4638
5111
|
return of(true);
|
|
4639
5112
|
}
|
|
5113
|
+
//TODO enable permission check on ssr
|
|
5114
|
+
if (isPlatformServer(platformId)) {
|
|
5115
|
+
return of(true);
|
|
5116
|
+
}
|
|
4640
5117
|
return permissionService.getGrantedPolicy$(requiredPolicy).pipe(filter(Boolean), take(1), tap(access => {
|
|
4641
5118
|
if (!access && authService.isAuthenticated) {
|
|
4642
5119
|
httpErrorReporter.reportError({ status: 403 });
|
|
@@ -4720,419 +5197,135 @@ class PagedAndSortedResultRequestDto extends PagedResultRequestDto {
|
|
|
4720
5197
|
super(initialValues);
|
|
4721
5198
|
}
|
|
4722
5199
|
}
|
|
4723
|
-
class ExtensiblePagedAndSortedResultRequestDto extends ExtensiblePagedResultRequestDto {
|
|
4724
|
-
constructor(initialValues = {}) {
|
|
4725
|
-
super(initialValues);
|
|
4726
|
-
}
|
|
4727
|
-
}
|
|
4728
|
-
class EntityDto {
|
|
4729
|
-
constructor(initialValues = {}) {
|
|
4730
|
-
for (const key in initialValues) {
|
|
4731
|
-
if (checkHasProp(initialValues, key)) {
|
|
4732
|
-
this[key] = initialValues[key];
|
|
4733
|
-
}
|
|
4734
|
-
}
|
|
4735
|
-
}
|
|
4736
|
-
}
|
|
4737
|
-
class CreationAuditedEntityDto extends EntityDto {
|
|
4738
|
-
constructor(initialValues = {}) {
|
|
4739
|
-
super(initialValues);
|
|
4740
|
-
}
|
|
4741
|
-
}
|
|
4742
|
-
class CreationAuditedEntityWithUserDto extends CreationAuditedEntityDto {
|
|
4743
|
-
constructor(initialValues = {}) {
|
|
4744
|
-
super(initialValues);
|
|
4745
|
-
}
|
|
4746
|
-
}
|
|
4747
|
-
class AuditedEntityDto extends CreationAuditedEntityDto {
|
|
4748
|
-
constructor(initialValues = {}) {
|
|
4749
|
-
super(initialValues);
|
|
4750
|
-
}
|
|
4751
|
-
}
|
|
4752
|
-
/** @deprecated the class signature will change in v8.0 */
|
|
4753
|
-
class AuditedEntityWithUserDto extends AuditedEntityDto {
|
|
4754
|
-
constructor(initialValues = {}) {
|
|
4755
|
-
super(initialValues);
|
|
4756
|
-
}
|
|
4757
|
-
}
|
|
4758
|
-
class FullAuditedEntityDto extends AuditedEntityDto {
|
|
4759
|
-
constructor(initialValues = {}) {
|
|
4760
|
-
super(initialValues);
|
|
4761
|
-
}
|
|
4762
|
-
}
|
|
4763
|
-
/** @deprecated the class signature will change in v8.0 */
|
|
4764
|
-
class FullAuditedEntityWithUserDto extends FullAuditedEntityDto {
|
|
4765
|
-
constructor(initialValues = {}) {
|
|
4766
|
-
super(initialValues);
|
|
4767
|
-
}
|
|
4768
|
-
}
|
|
4769
|
-
class ExtensibleCreationAuditedEntityDto extends ExtensibleEntityDto {
|
|
4770
|
-
constructor(initialValues = {}) {
|
|
4771
|
-
super(initialValues);
|
|
4772
|
-
}
|
|
4773
|
-
}
|
|
4774
|
-
class ExtensibleAuditedEntityDto extends ExtensibleCreationAuditedEntityDto {
|
|
4775
|
-
constructor(initialValues = {}) {
|
|
4776
|
-
super(initialValues);
|
|
4777
|
-
}
|
|
4778
|
-
}
|
|
4779
|
-
class ExtensibleAuditedEntityWithUserDto extends ExtensibleAuditedEntityDto {
|
|
4780
|
-
constructor(initialValues = {}) {
|
|
4781
|
-
super(initialValues);
|
|
4782
|
-
}
|
|
4783
|
-
}
|
|
4784
|
-
class ExtensibleCreationAuditedEntityWithUserDto extends ExtensibleCreationAuditedEntityDto {
|
|
4785
|
-
constructor(initialValues = {}) {
|
|
4786
|
-
super(initialValues);
|
|
4787
|
-
}
|
|
4788
|
-
}
|
|
4789
|
-
class ExtensibleFullAuditedEntityDto extends ExtensibleAuditedEntityDto {
|
|
4790
|
-
constructor(initialValues = {}) {
|
|
4791
|
-
super(initialValues);
|
|
4792
|
-
}
|
|
4793
|
-
}
|
|
4794
|
-
class ExtensibleFullAuditedEntityWithUserDto extends ExtensibleFullAuditedEntityDto {
|
|
4795
|
-
constructor(initialValues = {}) {
|
|
4796
|
-
super(initialValues);
|
|
4797
|
-
}
|
|
4798
|
-
}
|
|
4799
|
-
|
|
4800
|
-
class AuthEvent {
|
|
4801
|
-
constructor(type) {
|
|
4802
|
-
this.type = type;
|
|
4803
|
-
this.type = type;
|
|
4804
|
-
}
|
|
4805
|
-
}
|
|
4806
|
-
class AuthSuccessEvent extends AuthEvent {
|
|
4807
|
-
constructor(type, info) {
|
|
4808
|
-
super(type);
|
|
4809
|
-
this.type = type;
|
|
4810
|
-
this.info = info;
|
|
4811
|
-
}
|
|
4812
|
-
}
|
|
4813
|
-
class AuthInfoEvent extends AuthEvent {
|
|
4814
|
-
constructor(type, info) {
|
|
4815
|
-
super(type);
|
|
4816
|
-
this.type = type;
|
|
4817
|
-
this.info = info;
|
|
4818
|
-
}
|
|
4819
|
-
}
|
|
4820
|
-
class AuthErrorEvent extends AuthEvent {
|
|
4821
|
-
constructor(type, reason, params) {
|
|
4822
|
-
super(type);
|
|
4823
|
-
this.type = type;
|
|
4824
|
-
this.reason = reason;
|
|
4825
|
-
this.params = params;
|
|
4826
|
-
}
|
|
4827
|
-
}
|
|
4828
|
-
|
|
4829
|
-
class AbpApiDefinitionService {
|
|
4830
|
-
constructor(restService) {
|
|
4831
|
-
this.restService = restService;
|
|
4832
|
-
this.apiName = 'abp';
|
|
4833
|
-
this.getByModel = (model, config) => this.restService.request({
|
|
4834
|
-
method: 'GET',
|
|
4835
|
-
url: '/api/abp/api-definition',
|
|
4836
|
-
params: { includeTypes: model.includeTypes },
|
|
4837
|
-
}, { apiName: this.apiName, ...config });
|
|
4838
|
-
}
|
|
4839
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, deps: [{ token: RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4840
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, providedIn: 'root' }); }
|
|
4841
|
-
}
|
|
4842
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, decorators: [{
|
|
4843
|
-
type: Injectable,
|
|
4844
|
-
args: [{
|
|
4845
|
-
providedIn: 'root',
|
|
4846
|
-
}]
|
|
4847
|
-
}], ctorParameters: () => [{ type: RestService }] });
|
|
4848
|
-
|
|
4849
|
-
var index = /*#__PURE__*/Object.freeze({
|
|
4850
|
-
__proto__: null
|
|
4851
|
-
});
|
|
4852
|
-
|
|
4853
|
-
class ContainerStrategy {
|
|
4854
|
-
constructor(containerRef) {
|
|
4855
|
-
this.containerRef = containerRef;
|
|
4856
|
-
}
|
|
4857
|
-
prepare() { }
|
|
4858
|
-
}
|
|
4859
|
-
class ClearContainerStrategy extends ContainerStrategy {
|
|
4860
|
-
getIndex() {
|
|
4861
|
-
return 0;
|
|
4862
|
-
}
|
|
4863
|
-
prepare() {
|
|
4864
|
-
this.containerRef.clear();
|
|
4865
|
-
}
|
|
4866
|
-
}
|
|
4867
|
-
class InsertIntoContainerStrategy extends ContainerStrategy {
|
|
4868
|
-
constructor(containerRef, index) {
|
|
4869
|
-
super(containerRef);
|
|
4870
|
-
this.index = index;
|
|
4871
|
-
}
|
|
4872
|
-
getIndex() {
|
|
4873
|
-
return Math.min(Math.max(0, this.index), this.containerRef.length);
|
|
4874
|
-
}
|
|
4875
|
-
}
|
|
4876
|
-
const CONTAINER_STRATEGY = {
|
|
4877
|
-
Clear(containerRef) {
|
|
4878
|
-
return new ClearContainerStrategy(containerRef);
|
|
4879
|
-
},
|
|
4880
|
-
Append(containerRef) {
|
|
4881
|
-
return new InsertIntoContainerStrategy(containerRef, containerRef.length);
|
|
4882
|
-
},
|
|
4883
|
-
Prepend(containerRef) {
|
|
4884
|
-
return new InsertIntoContainerStrategy(containerRef, 0);
|
|
4885
|
-
},
|
|
4886
|
-
Insert(containerRef, index) {
|
|
4887
|
-
return new InsertIntoContainerStrategy(containerRef, index);
|
|
4888
|
-
},
|
|
4889
|
-
};
|
|
4890
|
-
|
|
4891
|
-
class ContentSecurityStrategy {
|
|
4892
|
-
constructor(nonce) {
|
|
4893
|
-
this.nonce = nonce;
|
|
4894
|
-
}
|
|
4895
|
-
}
|
|
4896
|
-
class LooseContentSecurityStrategy extends ContentSecurityStrategy {
|
|
4897
|
-
constructor(nonce) {
|
|
4898
|
-
super(nonce);
|
|
4899
|
-
}
|
|
4900
|
-
applyCSP(element) {
|
|
4901
|
-
if (this.nonce) {
|
|
4902
|
-
element.setAttribute('nonce', this.nonce);
|
|
4903
|
-
}
|
|
4904
|
-
}
|
|
4905
|
-
}
|
|
4906
|
-
class NoContentSecurityStrategy extends ContentSecurityStrategy {
|
|
4907
|
-
constructor() {
|
|
4908
|
-
super();
|
|
4909
|
-
}
|
|
4910
|
-
applyCSP(_) { }
|
|
4911
|
-
}
|
|
4912
|
-
const CONTENT_SECURITY_STRATEGY = {
|
|
4913
|
-
Loose(nonce) {
|
|
4914
|
-
return new LooseContentSecurityStrategy(nonce);
|
|
4915
|
-
},
|
|
4916
|
-
None() {
|
|
4917
|
-
return new NoContentSecurityStrategy();
|
|
4918
|
-
},
|
|
4919
|
-
};
|
|
4920
|
-
|
|
4921
|
-
class ContentStrategy {
|
|
4922
|
-
constructor(content, domStrategy = DOM_STRATEGY.AppendToHead(), contentSecurityStrategy = CONTENT_SECURITY_STRATEGY.None(), options = {}) {
|
|
4923
|
-
this.content = content;
|
|
4924
|
-
this.domStrategy = domStrategy;
|
|
4925
|
-
this.contentSecurityStrategy = contentSecurityStrategy;
|
|
4926
|
-
this.options = options;
|
|
4927
|
-
}
|
|
4928
|
-
insertElement() {
|
|
4929
|
-
const element = this.createElement();
|
|
4930
|
-
if (this.options && Object.keys(this.options).length > 0) {
|
|
4931
|
-
Object.keys(this.options).forEach(key => {
|
|
4932
|
-
if (this.options[key]) {
|
|
4933
|
-
element[key] = this.options[key];
|
|
4934
|
-
}
|
|
4935
|
-
});
|
|
4936
|
-
}
|
|
4937
|
-
this.contentSecurityStrategy.applyCSP(element);
|
|
4938
|
-
this.domStrategy.insertElement(element);
|
|
4939
|
-
return element;
|
|
4940
|
-
}
|
|
4941
|
-
}
|
|
4942
|
-
class StyleContentStrategy extends ContentStrategy {
|
|
4943
|
-
createElement() {
|
|
4944
|
-
const element = document.createElement('style');
|
|
4945
|
-
element.textContent = this.content;
|
|
4946
|
-
return element;
|
|
5200
|
+
class ExtensiblePagedAndSortedResultRequestDto extends ExtensiblePagedResultRequestDto {
|
|
5201
|
+
constructor(initialValues = {}) {
|
|
5202
|
+
super(initialValues);
|
|
4947
5203
|
}
|
|
4948
5204
|
}
|
|
4949
|
-
class
|
|
4950
|
-
|
|
4951
|
-
const
|
|
4952
|
-
|
|
4953
|
-
|
|
5205
|
+
class EntityDto {
|
|
5206
|
+
constructor(initialValues = {}) {
|
|
5207
|
+
for (const key in initialValues) {
|
|
5208
|
+
if (checkHasProp(initialValues, key)) {
|
|
5209
|
+
this[key] = initialValues[key];
|
|
5210
|
+
}
|
|
5211
|
+
}
|
|
4954
5212
|
}
|
|
4955
5213
|
}
|
|
4956
|
-
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
},
|
|
4960
|
-
AppendScriptToHead(content, options) {
|
|
4961
|
-
return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);
|
|
4962
|
-
},
|
|
4963
|
-
AppendStyleToHead(content, options) {
|
|
4964
|
-
return new StyleContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);
|
|
4965
|
-
},
|
|
4966
|
-
PrependStyleToHead(content, options) {
|
|
4967
|
-
return new StyleContentStrategy(content, DOM_STRATEGY.PrependToHead(), undefined, options);
|
|
4968
|
-
},
|
|
4969
|
-
};
|
|
4970
|
-
|
|
4971
|
-
class ContextStrategy {
|
|
4972
|
-
constructor(context) {
|
|
4973
|
-
this.context = context;
|
|
4974
|
-
}
|
|
4975
|
-
setContext(componentRef) {
|
|
4976
|
-
return this.context;
|
|
5214
|
+
class CreationAuditedEntityDto extends EntityDto {
|
|
5215
|
+
constructor(initialValues = {}) {
|
|
5216
|
+
super(initialValues);
|
|
4977
5217
|
}
|
|
4978
5218
|
}
|
|
4979
|
-
class
|
|
4980
|
-
constructor() {
|
|
4981
|
-
super(
|
|
5219
|
+
class CreationAuditedEntityWithUserDto extends CreationAuditedEntityDto {
|
|
5220
|
+
constructor(initialValues = {}) {
|
|
5221
|
+
super(initialValues);
|
|
4982
5222
|
}
|
|
4983
5223
|
}
|
|
4984
|
-
class
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
componentRef.changeDetectorRef.detectChanges();
|
|
4988
|
-
return this.context;
|
|
5224
|
+
class AuditedEntityDto extends CreationAuditedEntityDto {
|
|
5225
|
+
constructor(initialValues = {}) {
|
|
5226
|
+
super(initialValues);
|
|
4989
5227
|
}
|
|
4990
5228
|
}
|
|
4991
|
-
class
|
|
4992
|
-
|
|
4993
|
-
|
|
5229
|
+
/** @deprecated the class signature will change in v8.0 */
|
|
5230
|
+
class AuditedEntityWithUserDto extends AuditedEntityDto {
|
|
5231
|
+
constructor(initialValues = {}) {
|
|
5232
|
+
super(initialValues);
|
|
4994
5233
|
}
|
|
4995
5234
|
}
|
|
4996
|
-
|
|
4997
|
-
|
|
4998
|
-
|
|
4999
|
-
},
|
|
5000
|
-
Component(context) {
|
|
5001
|
-
return new ComponentContextStrategy(context);
|
|
5002
|
-
},
|
|
5003
|
-
Template(context) {
|
|
5004
|
-
return new TemplateContextStrategy(context);
|
|
5005
|
-
},
|
|
5006
|
-
};
|
|
5007
|
-
|
|
5008
|
-
class LoadingStrategy {
|
|
5009
|
-
constructor(path, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {
|
|
5010
|
-
this.path = path;
|
|
5011
|
-
this.domStrategy = domStrategy;
|
|
5012
|
-
this.crossOriginStrategy = crossOriginStrategy;
|
|
5235
|
+
class FullAuditedEntityDto extends AuditedEntityDto {
|
|
5236
|
+
constructor(initialValues = {}) {
|
|
5237
|
+
super(initialValues);
|
|
5013
5238
|
}
|
|
5014
|
-
|
|
5015
|
-
|
|
5016
|
-
|
|
5239
|
+
}
|
|
5240
|
+
/** @deprecated the class signature will change in v8.0 */
|
|
5241
|
+
class FullAuditedEntityWithUserDto extends FullAuditedEntityDto {
|
|
5242
|
+
constructor(initialValues = {}) {
|
|
5243
|
+
super(initialValues);
|
|
5017
5244
|
}
|
|
5018
5245
|
}
|
|
5019
|
-
class
|
|
5020
|
-
constructor(
|
|
5021
|
-
super(
|
|
5246
|
+
class ExtensibleCreationAuditedEntityDto extends ExtensibleEntityDto {
|
|
5247
|
+
constructor(initialValues = {}) {
|
|
5248
|
+
super(initialValues);
|
|
5022
5249
|
}
|
|
5023
|
-
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
|
|
5250
|
+
}
|
|
5251
|
+
class ExtensibleAuditedEntityDto extends ExtensibleCreationAuditedEntityDto {
|
|
5252
|
+
constructor(initialValues = {}) {
|
|
5253
|
+
super(initialValues);
|
|
5027
5254
|
}
|
|
5028
5255
|
}
|
|
5029
|
-
class
|
|
5030
|
-
constructor(
|
|
5031
|
-
super(
|
|
5256
|
+
class ExtensibleAuditedEntityWithUserDto extends ExtensibleAuditedEntityDto {
|
|
5257
|
+
constructor(initialValues = {}) {
|
|
5258
|
+
super(initialValues);
|
|
5032
5259
|
}
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
return element;
|
|
5260
|
+
}
|
|
5261
|
+
class ExtensibleCreationAuditedEntityWithUserDto extends ExtensibleCreationAuditedEntityDto {
|
|
5262
|
+
constructor(initialValues = {}) {
|
|
5263
|
+
super(initialValues);
|
|
5038
5264
|
}
|
|
5039
5265
|
}
|
|
5040
|
-
|
|
5041
|
-
|
|
5042
|
-
|
|
5043
|
-
},
|
|
5044
|
-
AppendAnonymousScriptToBody(src, integrity) {
|
|
5045
|
-
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
5046
|
-
},
|
|
5047
|
-
AppendAnonymousScriptToHead(src, integrity) {
|
|
5048
|
-
return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
5049
|
-
},
|
|
5050
|
-
AppendAnonymousStyleToHead(src, integrity) {
|
|
5051
|
-
return new StyleLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
5052
|
-
},
|
|
5053
|
-
PrependAnonymousScriptToHead(src, integrity) {
|
|
5054
|
-
return new ScriptLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
5055
|
-
},
|
|
5056
|
-
PrependAnonymousStyleToHead(src, integrity) {
|
|
5057
|
-
return new StyleLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));
|
|
5058
|
-
},
|
|
5059
|
-
};
|
|
5060
|
-
|
|
5061
|
-
class ProjectionStrategy {
|
|
5062
|
-
constructor(content) {
|
|
5063
|
-
this.content = content;
|
|
5266
|
+
class ExtensibleFullAuditedEntityDto extends ExtensibleAuditedEntityDto {
|
|
5267
|
+
constructor(initialValues = {}) {
|
|
5268
|
+
super(initialValues);
|
|
5064
5269
|
}
|
|
5065
5270
|
}
|
|
5066
|
-
class
|
|
5067
|
-
constructor(
|
|
5068
|
-
super(
|
|
5069
|
-
this.containerStrategy = containerStrategy;
|
|
5070
|
-
this.contextStrategy = contextStrategy;
|
|
5271
|
+
class ExtensibleFullAuditedEntityWithUserDto extends ExtensibleFullAuditedEntityDto {
|
|
5272
|
+
constructor(initialValues = {}) {
|
|
5273
|
+
super(initialValues);
|
|
5071
5274
|
}
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
this.
|
|
5078
|
-
return componentRef;
|
|
5275
|
+
}
|
|
5276
|
+
|
|
5277
|
+
class AuthEvent {
|
|
5278
|
+
constructor(type) {
|
|
5279
|
+
this.type = type;
|
|
5280
|
+
this.type = type;
|
|
5079
5281
|
}
|
|
5080
5282
|
}
|
|
5081
|
-
class
|
|
5082
|
-
constructor(
|
|
5083
|
-
super(
|
|
5084
|
-
this.
|
|
5085
|
-
this.
|
|
5283
|
+
class AuthSuccessEvent extends AuthEvent {
|
|
5284
|
+
constructor(type, info) {
|
|
5285
|
+
super(type);
|
|
5286
|
+
this.type = type;
|
|
5287
|
+
this.info = info;
|
|
5086
5288
|
}
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5091
|
-
|
|
5092
|
-
|
|
5093
|
-
this.contextStrategy.setContext(componentRef);
|
|
5094
|
-
appRef.attachView(componentRef.hostView);
|
|
5095
|
-
const element = componentRef.hostView.rootNodes[0];
|
|
5096
|
-
this.domStrategy.insertElement(element);
|
|
5097
|
-
return componentRef;
|
|
5289
|
+
}
|
|
5290
|
+
class AuthInfoEvent extends AuthEvent {
|
|
5291
|
+
constructor(type, info) {
|
|
5292
|
+
super(type);
|
|
5293
|
+
this.type = type;
|
|
5294
|
+
this.info = info;
|
|
5098
5295
|
}
|
|
5099
5296
|
}
|
|
5100
|
-
class
|
|
5101
|
-
constructor(
|
|
5102
|
-
super(
|
|
5103
|
-
this.
|
|
5104
|
-
this.
|
|
5297
|
+
class AuthErrorEvent extends AuthEvent {
|
|
5298
|
+
constructor(type, reason, params) {
|
|
5299
|
+
super(type);
|
|
5300
|
+
this.type = type;
|
|
5301
|
+
this.reason = reason;
|
|
5302
|
+
this.params = params;
|
|
5105
5303
|
}
|
|
5106
|
-
|
|
5107
|
-
|
|
5108
|
-
|
|
5109
|
-
|
|
5110
|
-
|
|
5304
|
+
}
|
|
5305
|
+
|
|
5306
|
+
class AbpApiDefinitionService {
|
|
5307
|
+
constructor() {
|
|
5308
|
+
this.restService = inject(RestService);
|
|
5309
|
+
this.apiName = 'abp';
|
|
5310
|
+
this.getByModel = (model, config) => this.restService.request({
|
|
5311
|
+
method: 'GET',
|
|
5312
|
+
url: '/api/abp/api-definition',
|
|
5313
|
+
params: { includeTypes: model.includeTypes },
|
|
5314
|
+
}, { apiName: this.apiName, ...config });
|
|
5111
5315
|
}
|
|
5316
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5317
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, providedIn: 'root' }); }
|
|
5112
5318
|
}
|
|
5113
|
-
|
|
5114
|
-
|
|
5115
|
-
|
|
5116
|
-
|
|
5117
|
-
|
|
5118
|
-
|
|
5119
|
-
|
|
5120
|
-
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
PrependComponentToContainer(component, containerRef, context) {
|
|
5124
|
-
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
5125
|
-
},
|
|
5126
|
-
PrependTemplateToContainer(templateRef, containerRef, context) {
|
|
5127
|
-
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
5128
|
-
},
|
|
5129
|
-
ProjectComponentToContainer(component, containerRef, context) {
|
|
5130
|
-
return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Component(context));
|
|
5131
|
-
},
|
|
5132
|
-
ProjectTemplateToContainer(templateRef, containerRef, context) {
|
|
5133
|
-
return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Template(context));
|
|
5134
|
-
},
|
|
5135
|
-
};
|
|
5319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: AbpApiDefinitionService, decorators: [{
|
|
5320
|
+
type: Injectable,
|
|
5321
|
+
args: [{
|
|
5322
|
+
providedIn: 'root',
|
|
5323
|
+
}]
|
|
5324
|
+
}] });
|
|
5325
|
+
|
|
5326
|
+
var index = /*#__PURE__*/Object.freeze({
|
|
5327
|
+
__proto__: null
|
|
5328
|
+
});
|
|
5136
5329
|
|
|
5137
5330
|
function validateMinAge({ age = 18 } = {}) {
|
|
5138
5331
|
return (control) => {
|
|
@@ -5273,5 +5466,5 @@ const AbpValidators = {
|
|
|
5273
5466
|
* Generated bundle index. Do not edit.
|
|
5274
5467
|
*/
|
|
5275
5468
|
|
|
5276
|
-
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, HtmlEncodePipe, HtmlEncodingService, 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,
|
|
5469
|
+
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, HtmlEncodePipe, HtmlEncodingService, 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 };
|
|
5277
5470
|
//# sourceMappingURL=abp-ng.core.mjs.map
|