@dignite-ng/expand.tenant-domain-management 3.0.0-rc.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +128 -0
  2. package/config/components/tenant-domain/tenant-domain-form-config.d.ts +3 -0
  3. package/config/components/tenant-domain/tenant-domain.component.d.ts +51 -0
  4. package/config/enums/index.d.ts +2 -0
  5. package/config/enums/route-names.d.ts +3 -0
  6. package/config/enums/step-name.d.ts +5 -0
  7. package/config/index.d.ts +5 -0
  8. package/config/providers/index.d.ts +2 -0
  9. package/config/providers/route.provider.d.ts +9 -0
  10. package/config/providers/setting-route.provider.d.ts +9 -0
  11. package/config/proxy/dignite/abp/tenant-domain-management/index.d.ts +2 -0
  12. package/config/proxy/dignite/abp/tenant-domain-management/models.d.ts +9 -0
  13. package/config/proxy/dignite/abp/tenant-domain-management/tenant-domain.service.d.ts +13 -0
  14. package/config/public-api.d.ts +3 -0
  15. package/config/tenancy-domains-management-config.module.d.ts +8 -0
  16. package/esm2022/config/components/tenant-domain/tenant-domain-form-config.mjs +7 -0
  17. package/esm2022/config/components/tenant-domain/tenant-domain.component.mjs +143 -0
  18. package/esm2022/config/dignite-ng-expand.tenant-domain-management-config.mjs +5 -0
  19. package/esm2022/config/enums/index.mjs +3 -0
  20. package/esm2022/config/enums/route-names.mjs +11 -0
  21. package/esm2022/config/enums/step-name.mjs +7 -0
  22. package/esm2022/config/providers/index.mjs +3 -0
  23. package/esm2022/config/providers/route.provider.mjs +17 -0
  24. package/esm2022/config/providers/setting-route.provider.mjs +25 -0
  25. package/esm2022/config/proxy/dignite/abp/tenant-domain-management/index.mjs +3 -0
  26. package/esm2022/config/proxy/dignite/abp/tenant-domain-management/models.mjs +2 -0
  27. package/esm2022/config/proxy/dignite/abp/tenant-domain-management/tenant-domain.service.mjs +33 -0
  28. package/esm2022/config/public-api.mjs +4 -0
  29. package/esm2022/config/tenancy-domains-management-config.module.mjs +19 -0
  30. package/esm2022/dignite-ng-expand.tenant-domain-management.mjs +5 -0
  31. package/esm2022/lib/tenant-domain-management.component.mjs +19 -0
  32. package/esm2022/lib/tenant-domain-management.service.mjs +14 -0
  33. package/esm2022/public-api.mjs +6 -0
  34. package/fesm2022/dignite-ng-expand.tenant-domain-management-config.mjs +248 -0
  35. package/fesm2022/dignite-ng-expand.tenant-domain-management-config.mjs.map +1 -0
  36. package/fesm2022/dignite-ng-expand.tenant-domain-management.mjs +42 -0
  37. package/fesm2022/dignite-ng-expand.tenant-domain-management.mjs.map +1 -0
  38. package/index.d.ts +5 -0
  39. package/lib/tenant-domain-management.component.d.ts +5 -0
  40. package/lib/tenant-domain-management.service.d.ts +6 -0
  41. package/package.json +50 -0
  42. package/public-api.d.ts +2 -0
package/README.md ADDED
@@ -0,0 +1,128 @@
1
+ ## ℹ️ Description
2
+
3
+ ABP Framework is a complete open-source infrastructure to create modern web applications by following the best practices and conventions of software development. This package is a part of the [ABP Framework](https://abp.io) and contains client-side files.
4
+ For more information, check out the below links:
5
+
6
+ 🔗Official Website: https://abp.io
7
+
8
+ 🔗Commercial Demo: https://abp.io/demo
9
+
10
+ 🔗GitHub Repository: https://github.com/abpframework/abp
11
+
12
+ 🔗Official Theme: https://www.LeptonTheme.com
13
+
14
+ 🔗Documentation: https://abp.io/docs/latest/
15
+
16
+ 🔗Community: https://abp.io/community/
17
+
18
+ 🔗Blog: https://abp.io/blog/
19
+
20
+ 🔗Books: https://abp.io/books
21
+
22
+ 🔗Twitter: https://twitter.com/abpframework
23
+
24
+ 🔗Discord: https://abp.io/community/discord
25
+
26
+ 🔗Stackoverflow: https://stackoverflow.com/questions/tagged/abp
27
+
28
+ 🔗YouTube: https://www.youtube.com/@Volosoft
29
+
30
+
31
+ ## 🤔 Why ABP Platform?
32
+
33
+ Why should you use the ABP.IO Platform instead of creating a new solution from scratch?
34
+
35
+ You can find the answer here 👉🏻 [Why ABP Platform?](https://abp.io/docs/latest/others/why-abp-platform)
36
+
37
+
38
+ ## 🚀 Key Features of the ABP Framework
39
+
40
+ 🟡 Modularity
41
+
42
+ 🟡 Multi-Tenancy
43
+
44
+ 🟡 Bootstrap Tag Helpers
45
+
46
+ 🟡 Dynamic Forms
47
+
48
+ 🟡 Authentication
49
+
50
+ 🟡 Authorization
51
+
52
+ 🟡 Distributed Event Bus
53
+
54
+ 🟡 BLOB Storing
55
+
56
+ 🟡 Text Templating
57
+
58
+ 🟡 Tooling: ABP CLI
59
+
60
+ 🟡 Cross-Cutting Concerns
61
+
62
+ 🟡 Bundling & Minification
63
+
64
+ 🟡 Virtual File System
65
+
66
+ 🟡 Theming
67
+
68
+ 🟡 Background Jobs
69
+
70
+ 🟡 DDD Infrastructure
71
+
72
+ 🟡 Auto REST APIs
73
+
74
+ 🟡 Dynamic Client Proxies
75
+
76
+ 🟡 Multiple Database Providers
77
+
78
+ 🟡 Data filtering
79
+
80
+ 🟡 Test Infrastructure
81
+
82
+ 🟡 Audit Logging
83
+
84
+ 🟡 Object to Object Mapping
85
+
86
+ 🟡 Email & SMS Abstractions
87
+
88
+ 🟡 Localization
89
+
90
+ 🟡 Setting Management
91
+
92
+ 🟡 Extension Methods
93
+
94
+ 🟡 Aspect Oriented Programming
95
+
96
+ 🟡 Dependency Injection
97
+
98
+
99
+ ## 🧐 How It Works?
100
+
101
+ The following page explains how you use the ABP.IO Platform as a .NET developer 👉 [How it works?](https://abp.io/how-it-works)
102
+
103
+
104
+ ### 📘 Supported Database Providers
105
+
106
+ 🔵 Entity Framework Core
107
+
108
+ 🔵 MongoDB
109
+
110
+ 🔵 Dapper
111
+
112
+
113
+ ### 🎴 Supported UI Frameworks
114
+
115
+ 🔵 Angular
116
+
117
+ 🔵 Razor Pages
118
+
119
+ 🔵 Blazor Web Assembly
120
+
121
+ 🔵 Blazor Server
122
+
123
+ 🔵 MAUI with Blazor Hybrid
124
+
125
+
126
+ ## 📫 Bug & Support
127
+
128
+ Support for open-source ABP Framework client-side packages is available at [GitHub Issues](https://github.com/abpframework/abp/issues), and the commercial support is available at [abp.io/support](https://abp.io/support/questions).
@@ -0,0 +1,3 @@
1
+ export declare class TenantDomainFormConfig {
2
+ domainName: any;
3
+ }
@@ -0,0 +1,51 @@
1
+ import { LocalizationService } from '@abp/ng.core';
2
+ import { ToasterService } from '@abp/ng.theme.shared';
3
+ import { OnInit } from '@angular/core';
4
+ import { eTenancyDomainsManagementRouteNames } from '../../enums';
5
+ import { AbstractControl, FormBuilder, FormControl, FormGroup, ValidationErrors } from '@angular/forms';
6
+ import { StepName } from '../../enums/step-name';
7
+ import { TenantDomainService } from '../../proxy/dignite/abp/tenant-domain-management';
8
+ import { Clipboard } from '@angular/cdk/clipboard';
9
+ import * as i0 from "@angular/core";
10
+ export declare class TenantDomainComponent implements OnInit {
11
+ private fb;
12
+ private _LocalizationService;
13
+ private _TenantDomainService;
14
+ private toaster;
15
+ private clipboard;
16
+ constructor(fb: FormBuilder, _LocalizationService: LocalizationService, _TenantDomainService: TenantDomainService, toaster: ToasterService, clipboard: Clipboard);
17
+ eTenancyDomainsManagementRouteNames: typeof eTenancyDomainsManagementRouteNames;
18
+ StepName: typeof StepName;
19
+ /**步骤 */
20
+ stepIndex: number | any;
21
+ /**是否提交 */
22
+ isSubmit: boolean | any;
23
+ /**表单验证 */
24
+ formValidation: any;
25
+ /**表单 */
26
+ formEntity: FormGroup | undefined;
27
+ /**解析的域名 */
28
+ parsedDomain: any;
29
+ /**域名信息 */
30
+ TenantDomainInfo: any;
31
+ get domainNameInput(): FormControl;
32
+ ngOnInit(): Promise<void>;
33
+ /**获取域名 */
34
+ getTenantDomain(): Promise<unknown>;
35
+ /**域名验证 */
36
+ DomainValidator(): (control: AbstractControl) => ValidationErrors | null;
37
+ /**拷贝 */
38
+ copyBtn(txt: string): void;
39
+ /**checkCnameRecord 检查CNAME记录 */
40
+ checkCnameRecord(): Promise<unknown>;
41
+ /**表单提交 */
42
+ save(): void;
43
+ /**返回上一步 */
44
+ backLastStep(index: number): void;
45
+ /**下一步 */
46
+ nextStep(index: number): void;
47
+ /**编辑域名 */
48
+ editbtn(index: any): void;
49
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantDomainComponent, never>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<TenantDomainComponent, "lib-tenant-domain", never, {}, {}, never, never, true, never>;
51
+ }
@@ -0,0 +1,2 @@
1
+ export * from './route-names';
2
+ export * from './step-name';
@@ -0,0 +1,3 @@
1
+ export declare enum eTenancyDomainsManagementRouteNames {
2
+ Domain = "TenantDomainManagement::Domains"
3
+ }
@@ -0,0 +1,5 @@
1
+ export declare enum StepName {
2
+ fillIn = 0,
3
+ check = 1,
4
+ finish = 2
5
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@dignite-ng/expand.tenant-domain-management/config" />
5
+ export * from './public-api';
@@ -0,0 +1,2 @@
1
+ export * from './route.provider';
2
+ export * from './setting-route.provider';
@@ -0,0 +1,9 @@
1
+ import { RoutesService } from '@abp/ng.core';
2
+ import { SettingTabsService } from '@abp/ng.setting-management/config';
3
+ export declare const Tenancy_Domains_Management_ROUTE_PROVIDERS: {
4
+ provide: import("@angular/core").InjectionToken<readonly (() => import("rxjs").Observable<unknown> | Promise<unknown> | void)[]>;
5
+ useFactory: typeof configureRoutes;
6
+ deps: (typeof RoutesService | typeof SettingTabsService)[];
7
+ multi: boolean;
8
+ }[];
9
+ export declare function configureRoutes(routesService: RoutesService, settingTabs: SettingTabsService): () => void;
@@ -0,0 +1,9 @@
1
+ import { RoutesService } from '@abp/ng.core';
2
+ import { SettingTabsService } from '@abp/ng.setting-management/config';
3
+ export declare const Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS: {
4
+ provide: import("@angular/core").InjectionToken<readonly (() => import("rxjs").Observable<unknown> | Promise<unknown> | void)[]>;
5
+ useFactory: typeof configureSettingRoutes;
6
+ deps: (typeof RoutesService | typeof SettingTabsService)[];
7
+ multi: boolean;
8
+ }[];
9
+ export declare function configureSettingRoutes(routesService: RoutesService, settingTabs: SettingTabsService): () => void;
@@ -0,0 +1,2 @@
1
+ export * from './models';
2
+ export * from './tenant-domain.service';
@@ -0,0 +1,9 @@
1
+ export interface ConnectTenantDomainInput {
2
+ domainName: string;
3
+ }
4
+ export interface TenantDomainDto {
5
+ domainName?: string;
6
+ isValid: boolean;
7
+ proxyAddress?: string;
8
+ tenantId?: string;
9
+ }
@@ -0,0 +1,13 @@
1
+ import type { ConnectTenantDomainInput, TenantDomainDto } from './models';
2
+ import { RestService, Rest } from '@abp/ng.core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TenantDomainService {
5
+ private restService;
6
+ apiName: string;
7
+ checkCnameRecord: (domainName: string, config?: Partial<Rest.Config>) => import("rxjs").Observable<boolean>;
8
+ connect: (input: ConnectTenantDomainInput, config?: Partial<Rest.Config>) => import("rxjs").Observable<TenantDomainDto>;
9
+ get: (config?: Partial<Rest.Config>) => import("rxjs").Observable<TenantDomainDto>;
10
+ constructor(restService: RestService);
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantDomainService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<TenantDomainService>;
13
+ }
@@ -0,0 +1,3 @@
1
+ export * from './enums';
2
+ export * from './tenancy-domains-management-config.module';
3
+ export * from './providers';
@@ -0,0 +1,8 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TenancyDomainsManagementConfigModule {
4
+ static forRoot(): ModuleWithProviders<TenancyDomainsManagementConfigModule>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenancyDomainsManagementConfigModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TenancyDomainsManagementConfigModule, never, never, never>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<TenancyDomainsManagementConfigModule>;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { Validators } from '@angular/forms';
2
+ export class TenantDomainFormConfig {
3
+ constructor() {
4
+ this.domainName = ['', [Validators.required]];
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWRvbWFpbi1mb3JtLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RlbmFudC1kb21haW4tbWFuYWdlbWVudC9jb25maWcvc3JjL2NvbXBvbmVudHMvdGVuYW50LWRvbWFpbi90ZW5hbnQtZG9tYWluLWZvcm0tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxNQUFNLE9BQU8sc0JBQXNCO0lBQW5DO1FBRUUsZUFBVSxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnREb21haW5Gb3JtQ29uZmlnIHtcclxuXHJcbiAgZG9tYWluTmFtZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,143 @@
1
+ /* eslint-disable @typescript-eslint/no-this-alias */
2
+ /* eslint-disable @angular-eslint/component-selector */
3
+ import { CoreModule, LocalizationService } from '@abp/ng.core';
4
+ import { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';
5
+ import { Component } from '@angular/core';
6
+ import { eTenancyDomainsManagementRouteNames } from '../../enums';
7
+ import { FormBuilder, } from '@angular/forms';
8
+ import { TenantDomainFormConfig } from './tenant-domain-form-config';
9
+ import { finalize } from 'rxjs';
10
+ import * as psl from 'psl';
11
+ import { StepName } from '../../enums/step-name';
12
+ import { TenantDomainService } from '../../proxy/dignite/abp/tenant-domain-management';
13
+ import { ClipboardModule, Clipboard } from '@angular/cdk/clipboard';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@angular/forms";
16
+ import * as i2 from "@abp/ng.core";
17
+ import * as i3 from "../../proxy/dignite/abp/tenant-domain-management";
18
+ import * as i4 from "@abp/ng.theme.shared";
19
+ import * as i5 from "@angular/cdk/clipboard";
20
+ import * as i6 from "@angular/common";
21
+ import * as i7 from "@ngx-validate/core";
22
+ export class TenantDomainComponent {
23
+ constructor(fb, _LocalizationService, _TenantDomainService, toaster, clipboard) {
24
+ this.fb = fb;
25
+ this._LocalizationService = _LocalizationService;
26
+ this._TenantDomainService = _TenantDomainService;
27
+ this.toaster = toaster;
28
+ this.clipboard = clipboard;
29
+ this.eTenancyDomainsManagementRouteNames = eTenancyDomainsManagementRouteNames;
30
+ this.StepName = StepName;
31
+ /**步骤 */
32
+ this.stepIndex = 0;
33
+ /**是否提交 */
34
+ this.isSubmit = false;
35
+ /**表单验证 */
36
+ this.formValidation = '';
37
+ /**解析的域名 */
38
+ this.parsedDomain = '';
39
+ /**域名信息 */
40
+ this.TenantDomainInfo = '';
41
+ }
42
+ get domainNameInput() {
43
+ return this.formEntity?.get('domainName');
44
+ }
45
+ async ngOnInit() {
46
+ // throw new Error('Method not implemented.');
47
+ this.formEntity = this.fb.group(new TenantDomainFormConfig());
48
+ await this.getTenantDomain();
49
+ this.domainNameInput.addValidators(this.DomainValidator());
50
+ const domainName = this.TenantDomainInfo?.domainName;
51
+ if (domainName) {
52
+ this.domainNameInput.patchValue(domainName);
53
+ this.stepIndex = this.StepName.finish;
54
+ }
55
+ }
56
+ /**获取域名 */
57
+ getTenantDomain() {
58
+ return new Promise((resolve) => {
59
+ this._TenantDomainService.get().subscribe(res => {
60
+ this.TenantDomainInfo = res;
61
+ resolve(res);
62
+ }, (err) => {
63
+ resolve(err);
64
+ });
65
+ });
66
+ }
67
+ /**域名验证 */
68
+ DomainValidator() {
69
+ return (control) => {
70
+ // const parsed:any = psl.parse(control.value);
71
+ if (!control.value)
72
+ return null;
73
+ if (!psl.isValid(control.value)) {
74
+ return {
75
+ repetition: this._LocalizationService.instant('TenantDomainManagement::YourDomainNameMustContainAValidSuffix'),
76
+ };
77
+ }
78
+ return null;
79
+ };
80
+ }
81
+ /**拷贝 */
82
+ copyBtn(txt) {
83
+ this.clipboard.copy(txt);
84
+ this.toaster.success(this._LocalizationService.instant('TenantDomainManagement::ReplicationSuccessful'));
85
+ }
86
+ /**checkCnameRecord 检查CNAME记录 */
87
+ checkCnameRecord() {
88
+ const that = this;
89
+ return new Promise((resolve, reject) => {
90
+ this._TenantDomainService.checkCnameRecord(that.domainNameInput?.value).subscribe(res => {
91
+ if (res) {
92
+ that.stepIndex = that.StepName.finish;
93
+ that.toaster.success(that._LocalizationService.instant('TenantDomainManagement::YourDomainNameHasBeenVerifiedPleaseBind'));
94
+ resolve(res);
95
+ }
96
+ else {
97
+ that.toaster.error(that._LocalizationService.instant('TenantDomainManagement::YourDomainNameIsNotVerifiedPleaseCheckTheDNSConfigurationOfTheDomainName'));
98
+ reject(res);
99
+ }
100
+ });
101
+ });
102
+ }
103
+ /**表单提交 */
104
+ save() {
105
+ if (this.isSubmit)
106
+ return;
107
+ this.isSubmit = true;
108
+ this._TenantDomainService
109
+ .connect({
110
+ domainName: this.domainNameInput.value,
111
+ })
112
+ .pipe(finalize(() => {
113
+ this.isSubmit = false;
114
+ }))
115
+ .subscribe(() => {
116
+ this.toaster.success(this._LocalizationService.instant('TenantDomainManagement::SaveSuccessful'));
117
+ }, () => {
118
+ this.toaster.error(this._LocalizationService.instant('TenantDomainManagement::SaveFailure'));
119
+ });
120
+ }
121
+ /**返回上一步 */
122
+ backLastStep(index) {
123
+ this.stepIndex = index;
124
+ }
125
+ /**下一步 */
126
+ nextStep(index) {
127
+ if (!this.formEntity.valid)
128
+ return;
129
+ this.parsedDomain = psl.parse(this.domainNameInput.value);
130
+ this.stepIndex = index;
131
+ }
132
+ /**编辑域名 */
133
+ editbtn(index) {
134
+ this.stepIndex = index;
135
+ }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainComponent, deps: [{ token: i1.FormBuilder }, { token: i2.LocalizationService }, { token: i3.TenantDomainService }, { token: i4.ToasterService }, { token: i5.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TenantDomainComponent, isStandalone: true, selector: "lib-tenant-domain", ngImport: i0, template: "\r\n<form [formGroup]=\"formEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\r\n (submit)=\"nextStep(StepName.check)\">\r\n <div class=\"tenant-domain\">\r\n <ng-container *ngIf=\"stepIndex===StepName.fillIn\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{'TenantDomainManagement::DomainName'|abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\r\n <div class=\"text-danger \">\r\n {{domainNameInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"submit\">{{'TenantDomainManagement::NextStep'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.check\">\r\n <h5 class=\"card-title mb-3 d-inline-block\" role=\"button\" (click.stop)=\"backLastStep(StepName.fillIn)\"><i\r\n class=\"bi bi-arrow-left me-2\"></i>{{domainNameInput?.value}}</h5>\r\n <h5>{{'TenantDomainManagement::DomainSetup'|abpLocalization}} </h5>\r\n <p>{{'TenantDomainManagement::FollowTheInstructionsBelow'|abpLocalization}}</p>\r\n <ol>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::LogInToYourProvider'|abpLocalization}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::OpenDNSManagementFor{0}'|abpLocalization:domainNameInput?.value}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::AddANewDNSRecordByCopyingAndPastingTheNameAndNewValue'|abpLocalization}}</li>\r\n </ol>\r\n <table class=\"table ms-2\">\r\n <thead>\r\n <tr>\r\n <th>{{'TenantDomainManagement::Type'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::Name'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::NewValue'|abpLocalization}}</th>\r\n <th style=\"width: 1%;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>CNAME</td>\r\n <td>{{ (parsedDomain?.subdomain)?(parsedDomain?.subdomain):'www'}}</td>\r\n <td>{{TenantDomainInfo?.proxyAddress}}</td>\r\n <td style=\"width: 1%;\"><i class=\"bi bi-clipboard\"\r\n (click.stop)=\"copyBtn(TenantDomainInfo?.proxyAddress)\" role=\"button\"></i></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"checkCnameRecord()\">{{'TenantDomainManagement::ValidateDomainName'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.finish\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label d-flex justify-content-between align-items-center\">\r\n {{'TenantDomainManagement::DomainName'|abpLocalization}}\r\n <span class=\"text-primary\" role=\"button\" (click.stop)=\"editbtn(StepName.fillIn)\">{{'TenantDomainManagement::Edit'|abpLocalization}}</span>\r\n </label>\r\n {{domainNameInput?.value}}\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"save()\" [loading]=\"isSubmit\" [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n\r\n <!-- <abp-button iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\r\n [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button> -->\r\n </div>\r\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "ngmodule", type: ClipboardModule }] }); }
138
+ }
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainComponent, decorators: [{
140
+ type: Component,
141
+ args: [{ selector: 'lib-tenant-domain', standalone: true, imports: [CoreModule, ThemeSharedModule, ClipboardModule], template: "\r\n<form [formGroup]=\"formEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\r\n (submit)=\"nextStep(StepName.check)\">\r\n <div class=\"tenant-domain\">\r\n <ng-container *ngIf=\"stepIndex===StepName.fillIn\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{'TenantDomainManagement::DomainName'|abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\r\n <div class=\"text-danger \">\r\n {{domainNameInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"submit\">{{'TenantDomainManagement::NextStep'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.check\">\r\n <h5 class=\"card-title mb-3 d-inline-block\" role=\"button\" (click.stop)=\"backLastStep(StepName.fillIn)\"><i\r\n class=\"bi bi-arrow-left me-2\"></i>{{domainNameInput?.value}}</h5>\r\n <h5>{{'TenantDomainManagement::DomainSetup'|abpLocalization}} </h5>\r\n <p>{{'TenantDomainManagement::FollowTheInstructionsBelow'|abpLocalization}}</p>\r\n <ol>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::LogInToYourProvider'|abpLocalization}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::OpenDNSManagementFor{0}'|abpLocalization:domainNameInput?.value}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::AddANewDNSRecordByCopyingAndPastingTheNameAndNewValue'|abpLocalization}}</li>\r\n </ol>\r\n <table class=\"table ms-2\">\r\n <thead>\r\n <tr>\r\n <th>{{'TenantDomainManagement::Type'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::Name'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::NewValue'|abpLocalization}}</th>\r\n <th style=\"width: 1%;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>CNAME</td>\r\n <td>{{ (parsedDomain?.subdomain)?(parsedDomain?.subdomain):'www'}}</td>\r\n <td>{{TenantDomainInfo?.proxyAddress}}</td>\r\n <td style=\"width: 1%;\"><i class=\"bi bi-clipboard\"\r\n (click.stop)=\"copyBtn(TenantDomainInfo?.proxyAddress)\" role=\"button\"></i></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"checkCnameRecord()\">{{'TenantDomainManagement::ValidateDomainName'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.finish\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label d-flex justify-content-between align-items-center\">\r\n {{'TenantDomainManagement::DomainName'|abpLocalization}}\r\n <span class=\"text-primary\" role=\"button\" (click.stop)=\"editbtn(StepName.fillIn)\">{{'TenantDomainManagement::Edit'|abpLocalization}}</span>\r\n </label>\r\n {{domainNameInput?.value}}\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"save()\" [loading]=\"isSubmit\" [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n\r\n <!-- <abp-button iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\r\n [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button> -->\r\n </div>\r\n</form>" }]
142
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.LocalizationService }, { type: i3.TenantDomainService }, { type: i4.ToasterService }, { type: i5.Clipboard }] });
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWRvbWFpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9jb21wb25lbnRzL3RlbmFudC1kb21haW4vdGVuYW50LWRvbWFpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9jb21wb25lbnRzL3RlbmFudC1kb21haW4vdGVuYW50LWRvbWFpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFDckQsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFFTCxXQUFXLEdBSVosTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQzNCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUFTcEUsTUFBTSxPQUFPLHFCQUFxQjtJQUNo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LEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUNsQixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDLENBQzVFLENBQUM7UUFDSixDQUFDLEVBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ2hCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FDekUsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUNELFdBQVc7SUFDWCxZQUFZLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUztJQUNULFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxVQUFVO0lBQ1YsT0FBTyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDOzhHQTNJVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiw2RUMzQmxDLCsvSEFnRU8seUREekNLLFVBQVUsbXVDQUFFLGlCQUFpQix1aUJBQUUsZUFBZTs7MkZBSTdDLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cclxuaW1wb3J0IHsgQ29yZU1vZHVsZSwgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlLCBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZVRlbmFuY3lEb21haW5zTWFuYWdlbWVudFJvdXRlTmFtZXMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIEZvcm1CdWlsZGVyLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Hcm91cCxcclxuICBWYWxpZGF0aW9uRXJyb3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVGVuYW50RG9tYWluRm9ybUNvbmZpZyB9IGZyb20gJy4vdGVuYW50LWRvbWFpbi1mb3JtLWNvbmZpZyc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIHBzbCBmcm9tICdwc2wnO1xyXG5pbXBvcnQgeyBTdGVwTmFtZSB9IGZyb20gJy4uLy4uL2VudW1zL3N0ZXAtbmFtZSc7XHJcbmltcG9ydCB7IFRlbmFudERvbWFpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm94eS9kaWduaXRlL2FicC90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUsIENsaXBib2FyZCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGVuYW50LWRvbWFpbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGUsIENsaXBib2FyZE1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1kb21haW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90ZW5hbnQtZG9tYWluLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbmFudERvbWFpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9UZW5hbnREb21haW5TZXJ2aWNlOiBUZW5hbnREb21haW5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY2xpcGJvYXJkOiBDbGlwYm9hcmRcclxuICApIHtcclxuICB9XHJcblxyXG4gIGVUZW5hbmN5RG9tYWluc01hbmFnZW1lbnRSb3V0ZU5hbWVzID0gZVRlbmFuY3lEb21haW5zTWFuYWdlbWVudFJvdXRlTmFtZXM7XHJcbiAgU3RlcE5hbWUgPSBTdGVwTmFtZTtcclxuICAvKirmraXpqqQgKi9cclxuICBzdGVwSW5kZXg6IG51bWJlcnxhbnkgPSAwO1xyXG4gIC8qKuaYr+WQpuaPkOS6pCAqL1xyXG4gIGlzU3VibWl0OiBib29sZWFufGFueSA9IGZhbHNlO1xyXG4gIC8qKuihqOWNlemqjOivgSAqL1xyXG4gIGZvcm1WYWxpZGF0aW9uOiBhbnkgPSAnJztcclxuICAvKirooajljZUgKi9cclxuICBmb3JtRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XHJcbiAgLyoq6Kej5p6Q55qE5Z+f5ZCNICovXHJcbiAgcGFyc2VkRG9tYWluOiBhbnkgPSAnJztcclxuICAvKirln5/lkI3kv6Hmga8gKi9cclxuICBUZW5hbnREb21haW5JbmZvOiBhbnkgPSAnJztcclxuXHJcbiAgZ2V0IGRvbWFpbk5hbWVJbnB1dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1FbnRpdHk/LmdldCgnZG9tYWluTmFtZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgICB0aGlzLmZvcm1FbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBUZW5hbnREb21haW5Gb3JtQ29uZmlnKCkpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRUZW5hbnREb21haW4oKTtcclxuICAgIHRoaXMuZG9tYWluTmFtZUlucHV0LmFkZFZhbGlkYXRvcnModGhpcy5Eb21haW5WYWxpZGF0b3IoKSk7XHJcbiAgICBjb25zdCBkb21haW5OYW1lID0gdGhpcy5UZW5hbnREb21haW5JbmZvPy5kb21haW5OYW1lO1xyXG4gICAgaWYgKGRvbWFpbk5hbWUpIHtcclxuICAgICAgdGhpcy5kb21haW5OYW1lSW5wdXQucGF0Y2hWYWx1ZShkb21haW5OYW1lKTtcclxuICAgICAgdGhpcy5zdGVwSW5kZXggPSB0aGlzLlN0ZXBOYW1lLmZpbmlzaDtcclxuICAgIH1cclxuICB9XHJcbiAgLyoq6I635Y+W5Z+f5ZCNICovXHJcbiAgZ2V0VGVuYW50RG9tYWluKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuX1RlbmFudERvbWFpblNlcnZpY2UuZ2V0KCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5UZW5hbnREb21haW5JbmZvID0gcmVzO1xyXG4gICAgICAgIHJlc29sdmUocmVzKTtcclxuICAgICAgfSwoZXJyKT0+e1xyXG4gICAgICAgIHJlc29sdmUoZXJyKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKuWfn+WQjemqjOivgSAqL1xyXG4gIERvbWFpblZhbGlkYXRvcigpIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgICAvLyBjb25zdCBwYXJzZWQ6YW55ID0gcHNsLnBhcnNlKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHJldHVybiBudWxsO1xyXG4gICAgICBpZiAoIXBzbC5pc1ZhbGlkKGNvbnRyb2wudmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcclxuICAgICAgICAgICAgJ1RlbmFudERvbWFpbk1hbmFnZW1lbnQ6OllvdXJEb21haW5OYW1lTXVzdENvbnRhaW5BVmFsaWRTdWZmaXgnXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuICAvKirmi7fotJ0gKi9cclxuICBjb3B5QnRuKHR4dDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNsaXBib2FyZC5jb3B5KHR4dCk7XHJcbiAgICB0aGlzLnRvYXN0ZXIuc3VjY2VzcyhcclxuICAgICAgdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdUZW5hbnREb21haW5NYW5hZ2VtZW50OjpSZXBsaWNhdGlvblN1Y2Nlc3NmdWwnKVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqY2hlY2tDbmFtZVJlY29yZCDmo4Dmn6VDTkFNReiusOW9lSAqL1xyXG4gIGNoZWNrQ25hbWVSZWNvcmQoKSB7XHJcbiAgICBjb25zdCB0aGF0ID0gdGhpcztcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuX1RlbmFudERvbWFpblNlcnZpY2UuY2hlY2tDbmFtZVJlY29yZCh0aGF0LmRvbWFpbk5hbWVJbnB1dD8udmFsdWUpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoYXQuc3RlcEluZGV4ID0gdGhhdC5TdGVwTmFtZS5maW5pc2g7XHJcbiAgICAgICAgICB0aGF0LnRvYXN0ZXIuc3VjY2VzcyhcclxuICAgICAgICAgICAgdGhhdC5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdUZW5hbnREb21haW5NYW5hZ2VtZW50OjpZb3VyRG9tYWluTmFtZUhhc0JlZW5WZXJpZmllZFBsZWFzZUJpbmQnXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXNvbHZlKHJlcyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoYXQudG9hc3Rlci5lcnJvcihcclxuICAgICAgICAgICAgdGhhdC5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdUZW5hbnREb21haW5NYW5hZ2VtZW50OjpZb3VyRG9tYWluTmFtZUlzTm90VmVyaWZpZWRQbGVhc2VDaGVja1RoZUROU0NvbmZpZ3VyYXRpb25PZlRoZURvbWFpbk5hbWUnXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZWplY3QocmVzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKirooajljZXmj5DkuqQgKi9cclxuICBzYXZlKCkge1xyXG4gICAgaWYgKHRoaXMuaXNTdWJtaXQpIHJldHVybjtcclxuICAgIHRoaXMuaXNTdWJtaXQgPSB0cnVlO1xyXG4gICAgdGhpcy5fVGVuYW50RG9tYWluU2VydmljZVxyXG4gICAgICAuY29ubmVjdCh7XHJcbiAgICAgICAgZG9tYWluTmFtZTogdGhpcy5kb21haW5OYW1lSW5wdXQudmFsdWUsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3MoXHJcbiAgICAgICAgICAgIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudCgnVGVuYW50RG9tYWluTWFuYWdlbWVudDo6U2F2ZVN1Y2Nlc3NmdWwnKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3Rlci5lcnJvcihcclxuICAgICAgICAgICAgdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KCdUZW5hbnREb21haW5NYW5hZ2VtZW50OjpTYXZlRmFpbHVyZScpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoq6L+U5Zue5LiK5LiA5q2lICovXHJcbiAgYmFja0xhc3RTdGVwKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3RlcEluZGV4ID0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICAvKirkuIvkuIDmraUgKi9cclxuICBuZXh0U3RlcChpbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUVudGl0eS52YWxpZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5wYXJzZWREb21haW4gPSBwc2wucGFyc2UodGhpcy5kb21haW5OYW1lSW5wdXQudmFsdWUpO1xyXG4gICAgdGhpcy5zdGVwSW5kZXggPSBpbmRleDtcclxuICB9XHJcbiAgLyoq57yW6L6R5Z+f5ZCNICovXHJcbiAgZWRpdGJ0bihpbmRleCkge1xyXG4gICAgdGhpcy5zdGVwSW5kZXggPSBpbmRleDtcclxuICB9XHJcbn1cclxuIiwiXHJcbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUVudGl0eVwiIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCIgW2NsYXNzXT1cInsnd2FzLXZhbGlkYXRlZCc6Zm9ybVZhbGlkYXRpb259XCJcclxuICAgIChzdWJtaXQpPVwibmV4dFN0ZXAoU3RlcE5hbWUuY2hlY2spXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGVuYW50LWRvbWFpblwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGVwSW5kZXg9PT1TdGVwTmFtZS5maWxsSW5cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydUZW5hbnREb21haW5NYW5hZ2VtZW50OjpEb21haW5OYW1lJ3xhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRvbWFpbk5hbWVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2RvbWFpbk5hbWVJbnB1dD8uZXJyb3JzPy5yZXBldGl0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGhyIGNsYXNzPVwibXktM1wiIC8+XHJcbiAgICAgICAgICAgIDxhYnAtYnV0dG9uIGNsYXNzPVwiZmxvYXQtZW5kXCJcclxuICAgICAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJzdWJtaXRcIj57eydUZW5hbnREb21haW5NYW5hZ2VtZW50OjpOZXh0U3RlcCd8YWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0ZXBJbmRleD09PVN0ZXBOYW1lLmNoZWNrXCI+XHJcbiAgICAgICAgICAgIDxoNSBjbGFzcz1cImNhcmQtdGl0bGUgbWItMyBkLWlubGluZS1ibG9ja1wiIHJvbGU9XCJidXR0b25cIiAoY2xpY2suc3RvcCk9XCJiYWNrTGFzdFN0ZXAoU3RlcE5hbWUuZmlsbEluKVwiPjxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1hcnJvdy1sZWZ0IG1lLTJcIj48L2k+e3tkb21haW5OYW1lSW5wdXQ/LnZhbHVlfX08L2g1PlxyXG4gICAgICAgICAgICA8aDU+e3snVGVuYW50RG9tYWluTWFuYWdlbWVudDo6RG9tYWluU2V0dXAnfGFicExvY2FsaXphdGlvbn19IDwvaDU+XHJcbiAgICAgICAgICAgIDxwPnt7J1RlbmFudERvbWFpbk1hbmFnZW1lbnQ6OkZvbGxvd1RoZUluc3RydWN0aW9uc0JlbG93J3xhYnBMb2NhbGl6YXRpb259fTwvcD5cclxuICAgICAgICAgICAgPG9sPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWItMlwiPiB7eydUZW5hbnREb21haW5NYW5hZ2VtZW50OjpMb2dJblRvWW91clByb3ZpZGVyJ3xhYnBMb2NhbGl6YXRpb259fTwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtYi0yXCI+IHt7J1RlbmFudERvbWFpbk1hbmFnZW1lbnQ6Ok9wZW5ETlNNYW5hZ2VtZW50Rm9yezB9J3xhYnBMb2NhbGl6YXRpb246ZG9tYWluTmFtZUlucHV0Py52YWx1ZX19PC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1iLTJcIj4ge3snVGVuYW50RG9tYWluTWFuYWdlbWVudDo6QWRkQU5ld0ROU1JlY29yZEJ5Q29weWluZ0FuZFBhc3RpbmdUaGVOYW1lQW5kTmV3VmFsdWUnfGFicExvY2FsaXphdGlvbn19PC9saT5cclxuICAgICAgICAgICAgPC9vbD5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J1RlbmFudERvbWFpbk1hbmFnZW1lbnQ6OlR5cGUnfGFicExvY2FsaXphdGlvbn19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J1RlbmFudERvbWFpbk1hbmFnZW1lbnQ6Ok5hbWUnfGFicExvY2FsaXphdGlvbn19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J1RlbmFudERvbWFpbk1hbmFnZW1lbnQ6Ok5ld1ZhbHVlJ3xhYnBMb2NhbGl6YXRpb259fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAxJTtcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkNOQU1FPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IChwYXJzZWREb21haW4/LnN1YmRvbWFpbik/KHBhcnNlZERvbWFpbj8uc3ViZG9tYWluKTond3d3J319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7VGVuYW50RG9tYWluSW5mbz8ucHJveHlBZGRyZXNzfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogMSU7XCI+PGkgY2xhc3M9XCJiaSBiaS1jbGlwYm9hcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImNvcHlCdG4oVGVuYW50RG9tYWluSW5mbz8ucHJveHlBZGRyZXNzKVwiIHJvbGU9XCJidXR0b25cIj48L2k+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgPGFicC1idXR0b24gY2xhc3M9XCJmbG9hdC1lbmRcIlxyXG4gICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjaGVja0NuYW1lUmVjb3JkKClcIj57eydUZW5hbnREb21haW5NYW5hZ2VtZW50OjpWYWxpZGF0ZURvbWFpbk5hbWUnfGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGVwSW5kZXg9PT1TdGVwTmFtZS5maW5pc2hcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J1RlbmFudERvbWFpbk1hbmFnZW1lbnQ6OkRvbWFpbk5hbWUnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIiAgcm9sZT1cImJ1dHRvblwiIChjbGljay5zdG9wKT1cImVkaXRidG4oU3RlcE5hbWUuZmlsbEluKVwiPnt7J1RlbmFudERvbWFpbk1hbmFnZW1lbnQ6OkVkaXQnfGFicExvY2FsaXphdGlvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIHt7ZG9tYWluTmFtZUlucHV0Py52YWx1ZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aHIgY2xhc3M9XCJteS0zXCIgLz5cclxuICAgICAgICAgICAgPGFicC1idXR0b24gY2xhc3M9XCJmbG9hdC1lbmRcIlxyXG4gICAgICAgICAgICAgICAgYnV0dG9uVHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBbbG9hZGluZ109XCJpc1N1Ym1pdFwiIFtkaXNhYmxlZF09XCJpc1N1Ym1pdFwiPnt7J1RlbmFudERvbWFpbk1hbmFnZW1lbnQ6OlNhdmUnfGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLXNhdmVcIiBidXR0b25UeXBlPVwic3VibWl0XCIgW2xvYWRpbmddPVwiaXNTdWJtaXRcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNTdWJtaXRcIj57eydUZW5hbnREb21haW5NYW5hZ2VtZW50OjpTYXZlJ3xhYnBMb2NhbGl6YXRpb259fTwvYWJwLWJ1dHRvbj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuPC9mb3JtPiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnbml0ZS1uZy1leHBhbmQudGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RlbmFudC1kb21haW4tbWFuYWdlbWVudC9jb25maWcvc3JjL2RpZ25pdGUtbmctZXhwYW5kLnRlbmFudC1kb21haW4tbWFuYWdlbWVudC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './route-names';
2
+ export * from './step-name';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9lbnVtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcm91dGUtbmFtZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0ZXAtbmFtZSc7XHJcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ export var eTenancyDomainsManagementRouteNames;
2
+ (function (eTenancyDomainsManagementRouteNames) {
3
+ // Cms = 'Cms::Menu:Cms',
4
+ // Entries = 'Cms::FormControl:Entry',
5
+ // Settings = "Cms::Menu:Settings",
6
+ // Fields = "Cms::Fields",
7
+ // Sections = "Cms::Sections",
8
+ // SiteLanguage="Cms::DisplayName:Cms.Site.Languages",
9
+ eTenancyDomainsManagementRouteNames["Domain"] = "TenantDomainManagement::Domains";
10
+ })(eTenancyDomainsManagementRouteNames || (eTenancyDomainsManagementRouteNames = {}));
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9lbnVtcy9yb3V0ZS1uYW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBYSxtQ0FRWjtBQVJELFdBQWEsbUNBQW1DO0lBQzlDLHlCQUF5QjtJQUN6QixzQ0FBc0M7SUFDdEMsbUNBQW1DO0lBQ25DLDBCQUEwQjtJQUMxQiw4QkFBOEI7SUFDOUIsc0RBQXNEO0lBQ3RELGlGQUF3QyxDQUFBO0FBQzFDLENBQUMsRUFSWSxtQ0FBbUMsS0FBbkMsbUNBQW1DLFFBUS9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICBlbnVtIGVUZW5hbmN5RG9tYWluc01hbmFnZW1lbnRSb3V0ZU5hbWVzIHtcclxuICAvLyBDbXMgPSAnQ21zOjpNZW51OkNtcycsXHJcbiAgLy8gRW50cmllcyA9ICdDbXM6OkZvcm1Db250cm9sOkVudHJ5JyxcclxuICAvLyBTZXR0aW5ncyA9IFwiQ21zOjpNZW51OlNldHRpbmdzXCIsXHJcbiAgLy8gRmllbGRzID0gXCJDbXM6OkZpZWxkc1wiLFxyXG4gIC8vIFNlY3Rpb25zID0gXCJDbXM6OlNlY3Rpb25zXCIsXHJcbiAgLy8gU2l0ZUxhbmd1YWdlPVwiQ21zOjpEaXNwbGF5TmFtZTpDbXMuU2l0ZS5MYW5ndWFnZXNcIixcclxuICBEb21haW49XCJUZW5hbnREb21haW5NYW5hZ2VtZW50OjpEb21haW5zXCJcclxufSJdfQ==
@@ -0,0 +1,7 @@
1
+ export var StepName;
2
+ (function (StepName) {
3
+ StepName[StepName["fillIn"] = 0] = "fillIn";
4
+ StepName[StepName["check"] = 1] = "check";
5
+ StepName[StepName["finish"] = 2] = "finish";
6
+ })(StepName || (StepName = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1uYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50L2NvbmZpZy9zcmMvZW51bXMvc3RlcC1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFFBSVg7QUFKRCxXQUFZLFFBQVE7SUFDaEIsMkNBQU0sQ0FBQTtJQUNOLHlDQUFLLENBQUE7SUFDTCwyQ0FBTSxDQUFBO0FBQ1YsQ0FBQyxFQUpXLFFBQVEsS0FBUixRQUFRLFFBSW5CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU3RlcE5hbWUge1xyXG4gICAgZmlsbEluLFxyXG4gICAgY2hlY2ssXHJcbiAgICBmaW5pc2hcclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './route.provider';
2
+ export * from './setting-route.provider';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9wcm92aWRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yb3V0ZS5wcm92aWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2V0dGluZy1yb3V0ZS5wcm92aWRlcic7XHJcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-function */
2
+ /* eslint-disable @typescript-eslint/no-unused-vars */
3
+ import { RoutesService } from '@abp/ng.core';
4
+ import { APP_INITIALIZER } from '@angular/core';
5
+ import { SettingTabsService } from '@abp/ng.setting-management/config';
6
+ export const Tenancy_Domains_Management_ROUTE_PROVIDERS = [
7
+ {
8
+ provide: APP_INITIALIZER,
9
+ useFactory: configureRoutes,
10
+ deps: [RoutesService, SettingTabsService],
11
+ multi: true,
12
+ },
13
+ ];
14
+ export function configureRoutes(routesService, settingTabs) {
15
+ return () => { };
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9wcm92aWRlcnMvcm91dGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELHNEQUFzRDtBQUN0RCxPQUFPLEVBQUcsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFNdkUsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUc7SUFDeEQ7UUFDRSxPQUFPLEVBQUUsZUFBZTtRQUN4QixVQUFVLEVBQUUsZUFBZTtRQUMzQixJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUM7UUFDekMsS0FBSyxFQUFFLElBQUk7S0FDWjtDQUNGLENBQUM7QUFHRixNQUFNLFVBQVUsZUFBZSxDQUFDLGFBQTRCLEVBQUUsV0FBK0I7SUFDM0YsT0FBTyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cclxuaW1wb3J0IHsgIFJvdXRlc1NlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2V0dGluZ1RhYnNTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5zZXR0aW5nLW1hbmFnZW1lbnQvY29uZmlnJztcclxuXHJcblxyXG5cclxuXHJcblxyXG5leHBvcnQgY29uc3QgVGVuYW5jeV9Eb21haW5zX01hbmFnZW1lbnRfUk9VVEVfUFJPVklERVJTID0gW1xyXG4gIHtcclxuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgIHVzZUZhY3Rvcnk6IGNvbmZpZ3VyZVJvdXRlcyxcclxuICAgIGRlcHM6IFtSb3V0ZXNTZXJ2aWNlLCBTZXR0aW5nVGFic1NlcnZpY2VdLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgfSxcclxuXTtcclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlUm91dGVzKHJvdXRlc1NlcnZpY2U6IFJvdXRlc1NlcnZpY2UsIHNldHRpbmdUYWJzOiBTZXR0aW5nVGFic1NlcnZpY2UpIHtcclxuICByZXR1cm4gKCkgPT4ge307XHJcbn1cclxuIl19
@@ -0,0 +1,25 @@
1
+ import { RoutesService } from '@abp/ng.core';
2
+ import { APP_INITIALIZER } from '@angular/core';
3
+ import { eTenancyDomainsManagementRouteNames } from '../enums/route-names';
4
+ import { SettingTabsService } from '@abp/ng.setting-management/config';
5
+ import { TenantDomainComponent } from '../components/tenant-domain/tenant-domain.component';
6
+ export const Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS = [
7
+ {
8
+ provide: APP_INITIALIZER,
9
+ useFactory: configureSettingRoutes,
10
+ deps: [RoutesService, SettingTabsService],
11
+ multi: true,
12
+ },
13
+ ];
14
+ export function configureSettingRoutes(routesService, settingTabs) {
15
+ return () => {
16
+ settingTabs.add([
17
+ {
18
+ name: eTenancyDomainsManagementRouteNames.Domain,
19
+ requiredPolicy: 'TenantDomainManagement.ManageDomain',
20
+ component: TenantDomainComponent,
21
+ },
22
+ ]);
23
+ };
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1yb3V0ZS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RlbmFudC1kb21haW4tbWFuYWdlbWVudC9jb25maWcvc3JjL3Byb3ZpZGVycy9zZXR0aW5nLXJvdXRlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRyxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQU01RixNQUFNLENBQUMsTUFBTSxrREFBa0QsR0FBRztJQUNoRTtRQUNFLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFVBQVUsRUFBRSxzQkFBc0I7UUFDbEMsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDO1FBQ3pDLEtBQUssRUFBRSxJQUFJO0tBQ1o7Q0FDRixDQUFDO0FBR0YsTUFBTSxVQUFVLHNCQUFzQixDQUFDLGFBQTRCLEVBQUUsV0FBK0I7SUFDbEcsT0FBTyxHQUFHLEVBQUU7UUFDVixXQUFXLENBQUMsR0FBRyxDQUFDO1lBQ2Q7Z0JBQ0UsSUFBSSxFQUFFLG1DQUFtQyxDQUFDLE1BQU07Z0JBQ2hELGNBQWMsRUFBRSxxQ0FBcUM7Z0JBQ3JELFNBQVMsRUFBRSxxQkFBcUI7YUFDakM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgIFJvdXRlc1NlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZVRlbmFuY3lEb21haW5zTWFuYWdlbWVudFJvdXRlTmFtZXMgfSBmcm9tICcuLi9lbnVtcy9yb3V0ZS1uYW1lcyc7XHJcbmltcG9ydCB7IFNldHRpbmdUYWJzU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuc2V0dGluZy1tYW5hZ2VtZW50L2NvbmZpZyc7XHJcbmltcG9ydCB7IFRlbmFudERvbWFpbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvdGVuYW50LWRvbWFpbi90ZW5hbnQtZG9tYWluLmNvbXBvbmVudCc7XHJcblxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IFRlbmFuY3lfRG9tYWluc19NYW5hZ2VtZW50X1NldHRpbmdfUk9VVEVfUFJPVklERVJTID0gW1xyXG4gIHtcclxuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgIHVzZUZhY3Rvcnk6IGNvbmZpZ3VyZVNldHRpbmdSb3V0ZXMsXHJcbiAgICBkZXBzOiBbUm91dGVzU2VydmljZSwgU2V0dGluZ1RhYnNTZXJ2aWNlXSxcclxuICAgIG11bHRpOiB0cnVlLFxyXG4gIH0sXHJcbl07XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZVNldHRpbmdSb3V0ZXMocm91dGVzU2VydmljZTogUm91dGVzU2VydmljZSwgc2V0dGluZ1RhYnM6IFNldHRpbmdUYWJzU2VydmljZSkge1xyXG4gIHJldHVybiAoKSA9PiB7XHJcbiAgICBzZXR0aW5nVGFicy5hZGQoW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogZVRlbmFuY3lEb21haW5zTWFuYWdlbWVudFJvdXRlTmFtZXMuRG9tYWluLFxyXG4gICAgICAgIHJlcXVpcmVkUG9saWN5OiAnVGVuYW50RG9tYWluTWFuYWdlbWVudC5NYW5hZ2VEb21haW4nLFxyXG4gICAgICAgIGNvbXBvbmVudDogVGVuYW50RG9tYWluQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgXSk7XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './models';
2
+ export * from './tenant-domain.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvY29uZmlnL3NyYy9wcm94eS9kaWduaXRlL2FicC90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdGVuYW50LWRvbWFpbi5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50L2NvbmZpZy9zcmMvcHJveHkvZGlnbml0ZS9hYnAvdGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50L21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdFRlbmFudERvbWFpbklucHV0IHtcclxuICBkb21haW5OYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGVuYW50RG9tYWluRHRvIHtcclxuICBkb21haW5OYW1lPzogc3RyaW5nO1xyXG4gIGlzVmFsaWQ6IGJvb2xlYW47XHJcbiAgcHJveHlBZGRyZXNzPzogc3RyaW5nO1xyXG4gIHRlbmFudElkPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { RestService } from '@abp/ng.core';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@abp/ng.core";
5
+ export class TenantDomainService {
6
+ constructor(restService) {
7
+ this.restService = restService;
8
+ this.apiName = 'TenantDomainManagement';
9
+ this.checkCnameRecord = (domainName, config) => this.restService.request({
10
+ method: 'GET',
11
+ url: '/api/tenant-domain-management/tenant-domain/check-cname-record',
12
+ params: { domainName },
13
+ }, { apiName: this.apiName, ...config });
14
+ this.connect = (input, config) => this.restService.request({
15
+ method: 'POST',
16
+ url: '/api/tenant-domain-management/tenant-domain/connect',
17
+ body: input,
18
+ }, { apiName: this.apiName, ...config });
19
+ this.get = (config) => this.restService.request({
20
+ method: 'GET',
21
+ url: '/api/tenant-domain-management/tenant-domain',
22
+ }, { apiName: this.apiName, ...config });
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainService, providedIn: 'root' }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root',
31
+ }]
32
+ }], ctorParameters: () => [{ type: i1.RestService }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWRvbWFpbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50L2NvbmZpZy9zcmMvcHJveHkvZGlnbml0ZS9hYnAvdGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50L3RlbmFudC1kb21haW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUszQyxNQUFNLE9BQU8sbUJBQW1CO0lBNkI5QixZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTVCNUMsWUFBTyxHQUFHLHdCQUF3QixDQUFDO1FBR25DLHFCQUFnQixHQUFHLENBQUMsVUFBa0IsRUFBRSxNQUE2QixFQUFFLEVBQUUsQ0FDdkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQWU7WUFDckMsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsZ0VBQWdFO1lBQ3JFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRTtTQUN2QixFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBR3ZDLFlBQU8sR0FBRyxDQUFDLEtBQStCLEVBQUUsTUFBNkIsRUFBRSxFQUFFLENBQzNFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUF1QjtZQUM3QyxNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxxREFBcUQ7WUFDMUQsSUFBSSxFQUFFLEtBQUs7U0FDWixFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBR3ZDLFFBQUcsR0FBRyxDQUFDLE1BQTZCLEVBQUUsRUFBRSxDQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBdUI7WUFDN0MsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsNkNBQTZDO1NBQ25ELEVBQ0QsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFUSxDQUFDOzhHQTdCckMsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29ubmVjdFRlbmFudERvbWFpbklucHV0LCBUZW5hbnREb21haW5EdG8gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlLCBSZXN0IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbmFudERvbWFpblNlcnZpY2Uge1xyXG4gIGFwaU5hbWUgPSAnVGVuYW50RG9tYWluTWFuYWdlbWVudCc7XHJcbiAgXHJcblxyXG4gIGNoZWNrQ25hbWVSZWNvcmQgPSAoZG9tYWluTmFtZTogc3RyaW5nLCBjb25maWc/OiBQYXJ0aWFsPFJlc3QuQ29uZmlnPikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGJvb2xlYW4+KHtcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgdXJsOiAnL2FwaS90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvdGVuYW50LWRvbWFpbi9jaGVjay1jbmFtZS1yZWNvcmQnLFxyXG4gICAgICBwYXJhbXM6IHsgZG9tYWluTmFtZSB9LFxyXG4gICAgfSxcclxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLC4uLmNvbmZpZyB9KTtcclxuICBcclxuXHJcbiAgY29ubmVjdCA9IChpbnB1dDogQ29ubmVjdFRlbmFudERvbWFpbklucHV0LCBjb25maWc/OiBQYXJ0aWFsPFJlc3QuQ29uZmlnPikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIFRlbmFudERvbWFpbkR0bz4oe1xyXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgdXJsOiAnL2FwaS90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvdGVuYW50LWRvbWFpbi9jb25uZWN0JyxcclxuICAgICAgYm9keTogaW5wdXQsXHJcbiAgICB9LFxyXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUsLi4uY29uZmlnIH0pO1xyXG4gIFxyXG5cclxuICBnZXQgPSAoY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBUZW5hbnREb21haW5EdG8+KHtcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgdXJsOiAnL2FwaS90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvdGVuYW50LWRvbWFpbicsXHJcbiAgICB9LFxyXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUsLi4uY29uZmlnIH0pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSkge31cclxufVxyXG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './enums';
2
+ export * from './tenancy-domains-management-config.module';
3
+ export * from './providers';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RlbmFudC1kb21haW4tbWFuYWdlbWVudC9jb25maWcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RlbmFuY3ktZG9tYWlucy1tYW5hZ2VtZW50LWNvbmZpZy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XHJcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { Tenancy_Domains_Management_ROUTE_PROVIDERS } from './providers/route.provider';
3
+ import { Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS } from './providers';
4
+ import * as i0 from "@angular/core";
5
+ export class TenancyDomainsManagementConfigModule {
6
+ static forRoot() {
7
+ return {
8
+ ngModule: TenancyDomainsManagementConfigModule,
9
+ providers: [Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS, Tenancy_Domains_Management_ROUTE_PROVIDERS],
10
+ };
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenancyDomainsManagementConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TenancyDomainsManagementConfigModule }); }
14
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenancyDomainsManagementConfigModule }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenancyDomainsManagementConfigModule, decorators: [{
17
+ type: NgModule
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW5jeS1kb21haW5zLW1hbmFnZW1lbnQtY29uZmlnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RlbmFudC1kb21haW4tbWFuYWdlbWVudC9jb25maWcvc3JjL3RlbmFuY3ktZG9tYWlucy1tYW5hZ2VtZW50LWNvbmZpZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtEQUFrRCxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUdqRixNQUFNLE9BQU8sb0NBQW9DO0lBQy9DLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxvQ0FBb0M7WUFDOUMsU0FBUyxFQUFFLENBQUMsa0RBQWtELEVBQUMsMENBQTBDLENBQUM7U0FDM0csQ0FBQztJQUNKLENBQUM7OEdBTlUsb0NBQW9DOytHQUFwQyxvQ0FBb0M7K0dBQXBDLG9DQUFvQzs7MkZBQXBDLG9DQUFvQztrQkFEaEQsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRlbmFuY3lfRG9tYWluc19NYW5hZ2VtZW50X1JPVVRFX1BST1ZJREVSUyB9IGZyb20gJy4vcHJvdmlkZXJzL3JvdXRlLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgVGVuYW5jeV9Eb21haW5zX01hbmFnZW1lbnRfU2V0dGluZ19ST1VURV9QUk9WSURFUlMgfSBmcm9tICcuL3Byb3ZpZGVycyc7XHJcblxyXG5ATmdNb2R1bGUoKVxyXG5leHBvcnQgY2xhc3MgVGVuYW5jeURvbWFpbnNNYW5hZ2VtZW50Q29uZmlnTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRlbmFuY3lEb21haW5zTWFuYWdlbWVudENvbmZpZ01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IFRlbmFuY3lEb21haW5zTWFuYWdlbWVudENvbmZpZ01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbVGVuYW5jeV9Eb21haW5zX01hbmFnZW1lbnRfU2V0dGluZ19ST1VURV9QUk9WSURFUlMsVGVuYW5jeV9Eb21haW5zX01hbmFnZW1lbnRfUk9VVEVfUFJPVklERVJTXSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnbml0ZS1uZy1leHBhbmQudGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50L3NyYy9kaWduaXRlLW5nLWV4cGFuZC50ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TenantDomainManagementComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TenantDomainManagementComponent, isStandalone: true, selector: "lib-tenant-domain-management", ngImport: i0, template: `
6
+ <p>
7
+ tenant-domain-management works!
8
+ </p>
9
+ `, isInline: true, styles: [""] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'lib-tenant-domain-management', standalone: true, imports: [], template: `
14
+ <p>
15
+ tenant-domain-management works!
16
+ </p>
17
+ ` }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RlbmFudC1kb21haW4tbWFuYWdlbWVudC9zcmMvbGliL3RlbmFudC1kb21haW4tbWFuYWdlbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFhMUMsTUFBTSxPQUFPLCtCQUErQjs4R0FBL0IsK0JBQStCO2tHQUEvQiwrQkFBK0Isd0ZBUGhDOzs7O0dBSVQ7OzJGQUdVLCtCQUErQjtrQkFYM0MsU0FBUzsrQkFDRSw4QkFBOEIsY0FDNUIsSUFBSSxXQUNQLEVBQUUsWUFDRDs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxwPlxyXG4gICAgICB0ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQgd29ya3MhXHJcbiAgICA8L3A+XHJcbiAgYCxcclxuICBzdHlsZXM6IGBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnREb21haW5NYW5hZ2VtZW50Q29tcG9uZW50IHtcclxuXHJcbn1cclxuIl19
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TenantDomainManagementService {
4
+ constructor() { }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementService, providedIn: 'root' }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: () => [] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWRvbWFpbi1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQvc3JjL2xpYi90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sNkJBQTZCO0lBRXhDLGdCQUFnQixDQUFDOzhHQUZOLDZCQUE2QjtrSEFBN0IsNkJBQTZCLGNBRjVCLE1BQU07OzJGQUVQLDZCQUE2QjtrQkFIekMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnREb21haW5NYW5hZ2VtZW50U2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Public API Surface of tenant-domain-management
3
+ */
4
+ export * from './lib/tenant-domain-management.service';
5
+ export * from './lib/tenant-domain-management.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3RlbmFudC1kb21haW4tbWFuYWdlbWVudC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnRcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW5hbnQtZG9tYWluLW1hbmFnZW1lbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbmFudC1kb21haW4tbWFuYWdlbWVudC5jb21wb25lbnQnO1xyXG4iXX0=
@@ -0,0 +1,248 @@
1
+ import * as i0 from '@angular/core';
2
+ import { APP_INITIALIZER, Injectable, Component, NgModule } from '@angular/core';
3
+ import * as i2 from '@abp/ng.core';
4
+ import { RoutesService, CoreModule } from '@abp/ng.core';
5
+ import { SettingTabsService } from '@abp/ng.setting-management/config';
6
+ import * as i4 from '@abp/ng.theme.shared';
7
+ import { ThemeSharedModule } from '@abp/ng.theme.shared';
8
+ import * as i1 from '@angular/forms';
9
+ import { Validators } from '@angular/forms';
10
+ import { finalize } from 'rxjs';
11
+ import * as psl from 'psl';
12
+ import * as i5 from '@angular/cdk/clipboard';
13
+ import { ClipboardModule } from '@angular/cdk/clipboard';
14
+ import * as i6 from '@angular/common';
15
+ import * as i7 from '@ngx-validate/core';
16
+
17
+ var eTenancyDomainsManagementRouteNames;
18
+ (function (eTenancyDomainsManagementRouteNames) {
19
+ // Cms = 'Cms::Menu:Cms',
20
+ // Entries = 'Cms::FormControl:Entry',
21
+ // Settings = "Cms::Menu:Settings",
22
+ // Fields = "Cms::Fields",
23
+ // Sections = "Cms::Sections",
24
+ // SiteLanguage="Cms::DisplayName:Cms.Site.Languages",
25
+ eTenancyDomainsManagementRouteNames["Domain"] = "TenantDomainManagement::Domains";
26
+ })(eTenancyDomainsManagementRouteNames || (eTenancyDomainsManagementRouteNames = {}));
27
+
28
+ var StepName;
29
+ (function (StepName) {
30
+ StepName[StepName["fillIn"] = 0] = "fillIn";
31
+ StepName[StepName["check"] = 1] = "check";
32
+ StepName[StepName["finish"] = 2] = "finish";
33
+ })(StepName || (StepName = {}));
34
+
35
+ /* eslint-disable @typescript-eslint/no-empty-function */
36
+ /* eslint-disable @typescript-eslint/no-unused-vars */
37
+ const Tenancy_Domains_Management_ROUTE_PROVIDERS = [
38
+ {
39
+ provide: APP_INITIALIZER,
40
+ useFactory: configureRoutes,
41
+ deps: [RoutesService, SettingTabsService],
42
+ multi: true,
43
+ },
44
+ ];
45
+ function configureRoutes(routesService, settingTabs) {
46
+ return () => { };
47
+ }
48
+
49
+ class TenantDomainFormConfig {
50
+ constructor() {
51
+ this.domainName = ['', [Validators.required]];
52
+ }
53
+ }
54
+
55
+ class TenantDomainService {
56
+ constructor(restService) {
57
+ this.restService = restService;
58
+ this.apiName = 'TenantDomainManagement';
59
+ this.checkCnameRecord = (domainName, config) => this.restService.request({
60
+ method: 'GET',
61
+ url: '/api/tenant-domain-management/tenant-domain/check-cname-record',
62
+ params: { domainName },
63
+ }, { apiName: this.apiName, ...config });
64
+ this.connect = (input, config) => this.restService.request({
65
+ method: 'POST',
66
+ url: '/api/tenant-domain-management/tenant-domain/connect',
67
+ body: input,
68
+ }, { apiName: this.apiName, ...config });
69
+ this.get = (config) => this.restService.request({
70
+ method: 'GET',
71
+ url: '/api/tenant-domain-management/tenant-domain',
72
+ }, { apiName: this.apiName, ...config });
73
+ }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainService, deps: [{ token: i2.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
75
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainService, providedIn: 'root' }); }
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainService, decorators: [{
78
+ type: Injectable,
79
+ args: [{
80
+ providedIn: 'root',
81
+ }]
82
+ }], ctorParameters: () => [{ type: i2.RestService }] });
83
+
84
+ /* eslint-disable @typescript-eslint/no-this-alias */
85
+ /* eslint-disable @angular-eslint/component-selector */
86
+ class TenantDomainComponent {
87
+ constructor(fb, _LocalizationService, _TenantDomainService, toaster, clipboard) {
88
+ this.fb = fb;
89
+ this._LocalizationService = _LocalizationService;
90
+ this._TenantDomainService = _TenantDomainService;
91
+ this.toaster = toaster;
92
+ this.clipboard = clipboard;
93
+ this.eTenancyDomainsManagementRouteNames = eTenancyDomainsManagementRouteNames;
94
+ this.StepName = StepName;
95
+ /**步骤 */
96
+ this.stepIndex = 0;
97
+ /**是否提交 */
98
+ this.isSubmit = false;
99
+ /**表单验证 */
100
+ this.formValidation = '';
101
+ /**解析的域名 */
102
+ this.parsedDomain = '';
103
+ /**域名信息 */
104
+ this.TenantDomainInfo = '';
105
+ }
106
+ get domainNameInput() {
107
+ return this.formEntity?.get('domainName');
108
+ }
109
+ async ngOnInit() {
110
+ // throw new Error('Method not implemented.');
111
+ this.formEntity = this.fb.group(new TenantDomainFormConfig());
112
+ await this.getTenantDomain();
113
+ this.domainNameInput.addValidators(this.DomainValidator());
114
+ const domainName = this.TenantDomainInfo?.domainName;
115
+ if (domainName) {
116
+ this.domainNameInput.patchValue(domainName);
117
+ this.stepIndex = this.StepName.finish;
118
+ }
119
+ }
120
+ /**获取域名 */
121
+ getTenantDomain() {
122
+ return new Promise((resolve) => {
123
+ this._TenantDomainService.get().subscribe(res => {
124
+ this.TenantDomainInfo = res;
125
+ resolve(res);
126
+ }, (err) => {
127
+ resolve(err);
128
+ });
129
+ });
130
+ }
131
+ /**域名验证 */
132
+ DomainValidator() {
133
+ return (control) => {
134
+ // const parsed:any = psl.parse(control.value);
135
+ if (!control.value)
136
+ return null;
137
+ if (!psl.isValid(control.value)) {
138
+ return {
139
+ repetition: this._LocalizationService.instant('TenantDomainManagement::YourDomainNameMustContainAValidSuffix'),
140
+ };
141
+ }
142
+ return null;
143
+ };
144
+ }
145
+ /**拷贝 */
146
+ copyBtn(txt) {
147
+ this.clipboard.copy(txt);
148
+ this.toaster.success(this._LocalizationService.instant('TenantDomainManagement::ReplicationSuccessful'));
149
+ }
150
+ /**checkCnameRecord 检查CNAME记录 */
151
+ checkCnameRecord() {
152
+ const that = this;
153
+ return new Promise((resolve, reject) => {
154
+ this._TenantDomainService.checkCnameRecord(that.domainNameInput?.value).subscribe(res => {
155
+ if (res) {
156
+ that.stepIndex = that.StepName.finish;
157
+ that.toaster.success(that._LocalizationService.instant('TenantDomainManagement::YourDomainNameHasBeenVerifiedPleaseBind'));
158
+ resolve(res);
159
+ }
160
+ else {
161
+ that.toaster.error(that._LocalizationService.instant('TenantDomainManagement::YourDomainNameIsNotVerifiedPleaseCheckTheDNSConfigurationOfTheDomainName'));
162
+ reject(res);
163
+ }
164
+ });
165
+ });
166
+ }
167
+ /**表单提交 */
168
+ save() {
169
+ if (this.isSubmit)
170
+ return;
171
+ this.isSubmit = true;
172
+ this._TenantDomainService
173
+ .connect({
174
+ domainName: this.domainNameInput.value,
175
+ })
176
+ .pipe(finalize(() => {
177
+ this.isSubmit = false;
178
+ }))
179
+ .subscribe(() => {
180
+ this.toaster.success(this._LocalizationService.instant('TenantDomainManagement::SaveSuccessful'));
181
+ }, () => {
182
+ this.toaster.error(this._LocalizationService.instant('TenantDomainManagement::SaveFailure'));
183
+ });
184
+ }
185
+ /**返回上一步 */
186
+ backLastStep(index) {
187
+ this.stepIndex = index;
188
+ }
189
+ /**下一步 */
190
+ nextStep(index) {
191
+ if (!this.formEntity.valid)
192
+ return;
193
+ this.parsedDomain = psl.parse(this.domainNameInput.value);
194
+ this.stepIndex = index;
195
+ }
196
+ /**编辑域名 */
197
+ editbtn(index) {
198
+ this.stepIndex = index;
199
+ }
200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainComponent, deps: [{ token: i1.FormBuilder }, { token: i2.LocalizationService }, { token: TenantDomainService }, { token: i4.ToasterService }, { token: i5.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
201
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TenantDomainComponent, isStandalone: true, selector: "lib-tenant-domain", ngImport: i0, template: "\r\n<form [formGroup]=\"formEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\r\n (submit)=\"nextStep(StepName.check)\">\r\n <div class=\"tenant-domain\">\r\n <ng-container *ngIf=\"stepIndex===StepName.fillIn\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{'TenantDomainManagement::DomainName'|abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\r\n <div class=\"text-danger \">\r\n {{domainNameInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"submit\">{{'TenantDomainManagement::NextStep'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.check\">\r\n <h5 class=\"card-title mb-3 d-inline-block\" role=\"button\" (click.stop)=\"backLastStep(StepName.fillIn)\"><i\r\n class=\"bi bi-arrow-left me-2\"></i>{{domainNameInput?.value}}</h5>\r\n <h5>{{'TenantDomainManagement::DomainSetup'|abpLocalization}} </h5>\r\n <p>{{'TenantDomainManagement::FollowTheInstructionsBelow'|abpLocalization}}</p>\r\n <ol>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::LogInToYourProvider'|abpLocalization}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::OpenDNSManagementFor{0}'|abpLocalization:domainNameInput?.value}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::AddANewDNSRecordByCopyingAndPastingTheNameAndNewValue'|abpLocalization}}</li>\r\n </ol>\r\n <table class=\"table ms-2\">\r\n <thead>\r\n <tr>\r\n <th>{{'TenantDomainManagement::Type'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::Name'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::NewValue'|abpLocalization}}</th>\r\n <th style=\"width: 1%;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>CNAME</td>\r\n <td>{{ (parsedDomain?.subdomain)?(parsedDomain?.subdomain):'www'}}</td>\r\n <td>{{TenantDomainInfo?.proxyAddress}}</td>\r\n <td style=\"width: 1%;\"><i class=\"bi bi-clipboard\"\r\n (click.stop)=\"copyBtn(TenantDomainInfo?.proxyAddress)\" role=\"button\"></i></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"checkCnameRecord()\">{{'TenantDomainManagement::ValidateDomainName'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.finish\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label d-flex justify-content-between align-items-center\">\r\n {{'TenantDomainManagement::DomainName'|abpLocalization}}\r\n <span class=\"text-primary\" role=\"button\" (click.stop)=\"editbtn(StepName.fillIn)\">{{'TenantDomainManagement::Edit'|abpLocalization}}</span>\r\n </label>\r\n {{domainNameInput?.value}}\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"save()\" [loading]=\"isSubmit\" [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n\r\n <!-- <abp-button iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\r\n [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button> -->\r\n </div>\r\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i2.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i4.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "ngmodule", type: ClipboardModule }] }); }
202
+ }
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainComponent, decorators: [{
204
+ type: Component,
205
+ args: [{ selector: 'lib-tenant-domain', standalone: true, imports: [CoreModule, ThemeSharedModule, ClipboardModule], template: "\r\n<form [formGroup]=\"formEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\r\n (submit)=\"nextStep(StepName.check)\">\r\n <div class=\"tenant-domain\">\r\n <ng-container *ngIf=\"stepIndex===StepName.fillIn\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{'TenantDomainManagement::DomainName'|abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\r\n <div class=\"text-danger \">\r\n {{domainNameInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"submit\">{{'TenantDomainManagement::NextStep'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.check\">\r\n <h5 class=\"card-title mb-3 d-inline-block\" role=\"button\" (click.stop)=\"backLastStep(StepName.fillIn)\"><i\r\n class=\"bi bi-arrow-left me-2\"></i>{{domainNameInput?.value}}</h5>\r\n <h5>{{'TenantDomainManagement::DomainSetup'|abpLocalization}} </h5>\r\n <p>{{'TenantDomainManagement::FollowTheInstructionsBelow'|abpLocalization}}</p>\r\n <ol>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::LogInToYourProvider'|abpLocalization}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::OpenDNSManagementFor{0}'|abpLocalization:domainNameInput?.value}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::AddANewDNSRecordByCopyingAndPastingTheNameAndNewValue'|abpLocalization}}</li>\r\n </ol>\r\n <table class=\"table ms-2\">\r\n <thead>\r\n <tr>\r\n <th>{{'TenantDomainManagement::Type'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::Name'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::NewValue'|abpLocalization}}</th>\r\n <th style=\"width: 1%;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>CNAME</td>\r\n <td>{{ (parsedDomain?.subdomain)?(parsedDomain?.subdomain):'www'}}</td>\r\n <td>{{TenantDomainInfo?.proxyAddress}}</td>\r\n <td style=\"width: 1%;\"><i class=\"bi bi-clipboard\"\r\n (click.stop)=\"copyBtn(TenantDomainInfo?.proxyAddress)\" role=\"button\"></i></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"checkCnameRecord()\">{{'TenantDomainManagement::ValidateDomainName'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.finish\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label d-flex justify-content-between align-items-center\">\r\n {{'TenantDomainManagement::DomainName'|abpLocalization}}\r\n <span class=\"text-primary\" role=\"button\" (click.stop)=\"editbtn(StepName.fillIn)\">{{'TenantDomainManagement::Edit'|abpLocalization}}</span>\r\n </label>\r\n {{domainNameInput?.value}}\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"save()\" [loading]=\"isSubmit\" [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n\r\n <!-- <abp-button iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\r\n [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button> -->\r\n </div>\r\n</form>" }]
206
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.LocalizationService }, { type: TenantDomainService }, { type: i4.ToasterService }, { type: i5.Clipboard }] });
207
+
208
+ const Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS = [
209
+ {
210
+ provide: APP_INITIALIZER,
211
+ useFactory: configureSettingRoutes,
212
+ deps: [RoutesService, SettingTabsService],
213
+ multi: true,
214
+ },
215
+ ];
216
+ function configureSettingRoutes(routesService, settingTabs) {
217
+ return () => {
218
+ settingTabs.add([
219
+ {
220
+ name: eTenancyDomainsManagementRouteNames.Domain,
221
+ requiredPolicy: 'TenantDomainManagement.ManageDomain',
222
+ component: TenantDomainComponent,
223
+ },
224
+ ]);
225
+ };
226
+ }
227
+
228
+ class TenancyDomainsManagementConfigModule {
229
+ static forRoot() {
230
+ return {
231
+ ngModule: TenancyDomainsManagementConfigModule,
232
+ providers: [Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS, Tenancy_Domains_Management_ROUTE_PROVIDERS],
233
+ };
234
+ }
235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenancyDomainsManagementConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
236
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: TenancyDomainsManagementConfigModule }); }
237
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenancyDomainsManagementConfigModule }); }
238
+ }
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenancyDomainsManagementConfigModule, decorators: [{
240
+ type: NgModule
241
+ }] });
242
+
243
+ /**
244
+ * Generated bundle index. Do not edit.
245
+ */
246
+
247
+ export { StepName, TenancyDomainsManagementConfigModule, Tenancy_Domains_Management_ROUTE_PROVIDERS, Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS, configureRoutes, configureSettingRoutes, eTenancyDomainsManagementRouteNames };
248
+ //# sourceMappingURL=dignite-ng-expand.tenant-domain-management-config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dignite-ng-expand.tenant-domain-management-config.mjs","sources":["../../../../packages/tenant-domain-management/config/src/enums/route-names.ts","../../../../packages/tenant-domain-management/config/src/enums/step-name.ts","../../../../packages/tenant-domain-management/config/src/providers/route.provider.ts","../../../../packages/tenant-domain-management/config/src/components/tenant-domain/tenant-domain-form-config.ts","../../../../packages/tenant-domain-management/config/src/proxy/dignite/abp/tenant-domain-management/tenant-domain.service.ts","../../../../packages/tenant-domain-management/config/src/components/tenant-domain/tenant-domain.component.ts","../../../../packages/tenant-domain-management/config/src/components/tenant-domain/tenant-domain.component.html","../../../../packages/tenant-domain-management/config/src/providers/setting-route.provider.ts","../../../../packages/tenant-domain-management/config/src/tenancy-domains-management-config.module.ts","../../../../packages/tenant-domain-management/config/src/dignite-ng-expand.tenant-domain-management-config.ts"],"sourcesContent":["export enum eTenancyDomainsManagementRouteNames {\r\n // Cms = 'Cms::Menu:Cms',\r\n // Entries = 'Cms::FormControl:Entry',\r\n // Settings = \"Cms::Menu:Settings\",\r\n // Fields = \"Cms::Fields\",\r\n // Sections = \"Cms::Sections\",\r\n // SiteLanguage=\"Cms::DisplayName:Cms.Site.Languages\",\r\n Domain=\"TenantDomainManagement::Domains\"\r\n}","export enum StepName {\r\n fillIn,\r\n check,\r\n finish\r\n}\r\n","/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { RoutesService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\n\r\n\r\n\r\n\r\n\r\nexport const Tenancy_Domains_Management_ROUTE_PROVIDERS = [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureRoutes,\r\n deps: [RoutesService, SettingTabsService],\r\n multi: true,\r\n },\r\n];\r\n\r\n\r\nexport function configureRoutes(routesService: RoutesService, settingTabs: SettingTabsService) {\r\n return () => {};\r\n}\r\n","import { Validators } from '@angular/forms';\r\n\r\nexport class TenantDomainFormConfig {\r\n\r\n domainName: any = ['', [Validators.required]];\r\n}\r\n","import type { ConnectTenantDomainInput, TenantDomainDto } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TenantDomainService {\r\n apiName = 'TenantDomainManagement';\r\n \r\n\r\n checkCnameRecord = (domainName: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/tenant-domain-management/tenant-domain/check-cname-record',\r\n params: { domainName },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n connect = (input: ConnectTenantDomainInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, TenantDomainDto>({\r\n method: 'POST',\r\n url: '/api/tenant-domain-management/tenant-domain/connect',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n get = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, TenantDomainDto>({\r\n method: 'GET',\r\n url: '/api/tenant-domain-management/tenant-domain',\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","/* eslint-disable @typescript-eslint/no-this-alias */\r\n/* eslint-disable @angular-eslint/component-selector */\r\nimport { CoreModule, LocalizationService } from '@abp/ng.core';\r\nimport { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { eTenancyDomainsManagementRouteNames } from '../../enums';\r\nimport {\r\n AbstractControl,\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n ValidationErrors,\r\n} from '@angular/forms';\r\nimport { TenantDomainFormConfig } from './tenant-domain-form-config';\r\nimport { finalize } from 'rxjs';\r\nimport * as psl from 'psl';\r\nimport { StepName } from '../../enums/step-name';\r\nimport { TenantDomainService } from '../../proxy/dignite/abp/tenant-domain-management';\r\nimport { ClipboardModule, Clipboard } from '@angular/cdk/clipboard';\r\n\r\n@Component({\r\n selector: 'lib-tenant-domain',\r\n standalone: true,\r\n imports: [CoreModule, ThemeSharedModule, ClipboardModule],\r\n templateUrl: './tenant-domain.component.html',\r\n styleUrl: './tenant-domain.component.scss',\r\n})\r\nexport class TenantDomainComponent implements OnInit {\r\n constructor(\r\n private fb: FormBuilder,\r\n private _LocalizationService: LocalizationService,\r\n private _TenantDomainService: TenantDomainService,\r\n private toaster: ToasterService,\r\n private clipboard: Clipboard\r\n ) {\r\n }\r\n\r\n eTenancyDomainsManagementRouteNames = eTenancyDomainsManagementRouteNames;\r\n StepName = StepName;\r\n /**步骤 */\r\n stepIndex: number|any = 0;\r\n /**是否提交 */\r\n isSubmit: boolean|any = false;\r\n /**表单验证 */\r\n formValidation: any = '';\r\n /**表单 */\r\n formEntity: FormGroup | undefined;\r\n /**解析的域名 */\r\n parsedDomain: any = '';\r\n /**域名信息 */\r\n TenantDomainInfo: any = '';\r\n\r\n get domainNameInput() {\r\n return this.formEntity?.get('domainName') as FormControl;\r\n }\r\n\r\n async ngOnInit(): Promise<void> {\r\n // throw new Error('Method not implemented.');\r\n this.formEntity = this.fb.group(new TenantDomainFormConfig());\r\n await this.getTenantDomain();\r\n this.domainNameInput.addValidators(this.DomainValidator());\r\n const domainName = this.TenantDomainInfo?.domainName;\r\n if (domainName) {\r\n this.domainNameInput.patchValue(domainName);\r\n this.stepIndex = this.StepName.finish;\r\n }\r\n }\r\n /**获取域名 */\r\n getTenantDomain() {\r\n return new Promise((resolve) => {\r\n this._TenantDomainService.get().subscribe(res => {\r\n this.TenantDomainInfo = res;\r\n resolve(res);\r\n },(err)=>{\r\n resolve(err);\r\n });\r\n });\r\n }\r\n\r\n /**域名验证 */\r\n DomainValidator() {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n // const parsed:any = psl.parse(control.value);\r\n if (!control.value) return null;\r\n if (!psl.isValid(control.value)) {\r\n return {\r\n repetition: this._LocalizationService.instant(\r\n 'TenantDomainManagement::YourDomainNameMustContainAValidSuffix'\r\n ),\r\n };\r\n }\r\n return null;\r\n };\r\n }\r\n /**拷贝 */\r\n copyBtn(txt: string) {\r\n this.clipboard.copy(txt);\r\n this.toaster.success(\r\n this._LocalizationService.instant('TenantDomainManagement::ReplicationSuccessful')\r\n );\r\n }\r\n /**checkCnameRecord 检查CNAME记录 */\r\n checkCnameRecord() {\r\n const that = this;\r\n return new Promise((resolve, reject) => {\r\n this._TenantDomainService.checkCnameRecord(that.domainNameInput?.value).subscribe(res => {\r\n if (res) {\r\n that.stepIndex = that.StepName.finish;\r\n that.toaster.success(\r\n that._LocalizationService.instant(\r\n 'TenantDomainManagement::YourDomainNameHasBeenVerifiedPleaseBind'\r\n )\r\n );\r\n resolve(res);\r\n } else {\r\n that.toaster.error(\r\n that._LocalizationService.instant(\r\n 'TenantDomainManagement::YourDomainNameIsNotVerifiedPleaseCheckTheDNSConfigurationOfTheDomainName'\r\n )\r\n );\r\n reject(res);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**表单提交 */\r\n save() {\r\n if (this.isSubmit) return;\r\n this.isSubmit = true;\r\n this._TenantDomainService\r\n .connect({\r\n domainName: this.domainNameInput.value,\r\n })\r\n .pipe(\r\n finalize(() => {\r\n this.isSubmit = false;\r\n })\r\n )\r\n .subscribe(\r\n () => {\r\n this.toaster.success(\r\n this._LocalizationService.instant('TenantDomainManagement::SaveSuccessful')\r\n );\r\n },\r\n () => {\r\n this.toaster.error(\r\n this._LocalizationService.instant('TenantDomainManagement::SaveFailure')\r\n );\r\n }\r\n );\r\n }\r\n /**返回上一步 */\r\n backLastStep(index: number) {\r\n this.stepIndex = index;\r\n }\r\n\r\n /**下一步 */\r\n nextStep(index: number) {\r\n if (!this.formEntity.valid) return;\r\n this.parsedDomain = psl.parse(this.domainNameInput.value);\r\n this.stepIndex = index;\r\n }\r\n /**编辑域名 */\r\n editbtn(index) {\r\n this.stepIndex = index;\r\n }\r\n}\r\n","\r\n<form [formGroup]=\"formEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\"\r\n (submit)=\"nextStep(StepName.check)\">\r\n <div class=\"tenant-domain\">\r\n <ng-container *ngIf=\"stepIndex===StepName.fillIn\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{'TenantDomainManagement::DomainName'|abpLocalization}}</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\r\n <div class=\"text-danger \">\r\n {{domainNameInput?.errors?.repetition}}\r\n </div>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"submit\">{{'TenantDomainManagement::NextStep'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.check\">\r\n <h5 class=\"card-title mb-3 d-inline-block\" role=\"button\" (click.stop)=\"backLastStep(StepName.fillIn)\"><i\r\n class=\"bi bi-arrow-left me-2\"></i>{{domainNameInput?.value}}</h5>\r\n <h5>{{'TenantDomainManagement::DomainSetup'|abpLocalization}} </h5>\r\n <p>{{'TenantDomainManagement::FollowTheInstructionsBelow'|abpLocalization}}</p>\r\n <ol>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::LogInToYourProvider'|abpLocalization}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::OpenDNSManagementFor{0}'|abpLocalization:domainNameInput?.value}}</li>\r\n <li class=\"mb-2\"> {{'TenantDomainManagement::AddANewDNSRecordByCopyingAndPastingTheNameAndNewValue'|abpLocalization}}</li>\r\n </ol>\r\n <table class=\"table ms-2\">\r\n <thead>\r\n <tr>\r\n <th>{{'TenantDomainManagement::Type'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::Name'|abpLocalization}}</th>\r\n <th>{{'TenantDomainManagement::NewValue'|abpLocalization}}</th>\r\n <th style=\"width: 1%;\"></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr>\r\n <td>CNAME</td>\r\n <td>{{ (parsedDomain?.subdomain)?(parsedDomain?.subdomain):'www'}}</td>\r\n <td>{{TenantDomainInfo?.proxyAddress}}</td>\r\n <td style=\"width: 1%;\"><i class=\"bi bi-clipboard\"\r\n (click.stop)=\"copyBtn(TenantDomainInfo?.proxyAddress)\" role=\"button\"></i></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"checkCnameRecord()\">{{'TenantDomainManagement::ValidateDomainName'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepIndex===StepName.finish\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label d-flex justify-content-between align-items-center\">\r\n {{'TenantDomainManagement::DomainName'|abpLocalization}}\r\n <span class=\"text-primary\" role=\"button\" (click.stop)=\"editbtn(StepName.fillIn)\">{{'TenantDomainManagement::Edit'|abpLocalization}}</span>\r\n </label>\r\n {{domainNameInput?.value}}\r\n </div>\r\n <hr class=\"my-3\" />\r\n <abp-button class=\"float-end\"\r\n buttonType=\"button\" (click)=\"save()\" [loading]=\"isSubmit\" [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button>\r\n </ng-container>\r\n\r\n <!-- <abp-button iconClass=\"fa fa-save\" buttonType=\"submit\" [loading]=\"isSubmit\"\r\n [disabled]=\"isSubmit\">{{'TenantDomainManagement::Save'|abpLocalization}}</abp-button> -->\r\n </div>\r\n</form>","import { RoutesService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { eTenancyDomainsManagementRouteNames } from '../enums/route-names';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\nimport { TenantDomainComponent } from '../components/tenant-domain/tenant-domain.component';\r\n\r\n\r\n\r\n\r\n\r\nexport const Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS = [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureSettingRoutes,\r\n deps: [RoutesService, SettingTabsService],\r\n multi: true,\r\n },\r\n];\r\n\r\n\r\nexport function configureSettingRoutes(routesService: RoutesService, settingTabs: SettingTabsService) {\r\n return () => {\r\n settingTabs.add([\r\n {\r\n name: eTenancyDomainsManagementRouteNames.Domain,\r\n requiredPolicy: 'TenantDomainManagement.ManageDomain',\r\n component: TenantDomainComponent,\r\n },\r\n ]);\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { Tenancy_Domains_Management_ROUTE_PROVIDERS } from './providers/route.provider';\r\nimport { Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS } from './providers';\r\n\r\n@NgModule()\r\nexport class TenancyDomainsManagementConfigModule {\r\n static forRoot(): ModuleWithProviders<TenancyDomainsManagementConfigModule> {\r\n return {\r\n ngModule: TenancyDomainsManagementConfigModule,\r\n providers: [Tenancy_Domains_Management_Setting_ROUTE_PROVIDERS,Tenancy_Domains_Management_ROUTE_PROVIDERS],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.TenantDomainService"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component } from '@angular/core';
3
+
4
+ class TenantDomainManagementService {
5
+ constructor() { }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
7
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementService, providedIn: 'root' }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementService, decorators: [{
10
+ type: Injectable,
11
+ args: [{
12
+ providedIn: 'root'
13
+ }]
14
+ }], ctorParameters: () => [] });
15
+
16
+ class TenantDomainManagementComponent {
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: TenantDomainManagementComponent, isStandalone: true, selector: "lib-tenant-domain-management", ngImport: i0, template: `
19
+ <p>
20
+ tenant-domain-management works!
21
+ </p>
22
+ `, isInline: true, styles: [""] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: TenantDomainManagementComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'lib-tenant-domain-management', standalone: true, imports: [], template: `
27
+ <p>
28
+ tenant-domain-management works!
29
+ </p>
30
+ ` }]
31
+ }] });
32
+
33
+ /*
34
+ * Public API Surface of tenant-domain-management
35
+ */
36
+
37
+ /**
38
+ * Generated bundle index. Do not edit.
39
+ */
40
+
41
+ export { TenantDomainManagementComponent, TenantDomainManagementService };
42
+ //# sourceMappingURL=dignite-ng-expand.tenant-domain-management.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dignite-ng-expand.tenant-domain-management.mjs","sources":["../../../../packages/tenant-domain-management/src/lib/tenant-domain-management.service.ts","../../../../packages/tenant-domain-management/src/lib/tenant-domain-management.component.ts","../../../../packages/tenant-domain-management/src/public-api.ts","../../../../packages/tenant-domain-management/src/dignite-ng-expand.tenant-domain-management.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TenantDomainManagementService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-tenant-domain-management',\r\n standalone: true,\r\n imports: [],\r\n template: `\r\n <p>\r\n tenant-domain-management works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class TenantDomainManagementComponent {\r\n\r\n}\r\n","/*\r\n * Public API Surface of tenant-domain-management\r\n */\r\n\r\nexport * from './lib/tenant-domain-management.service';\r\nexport * from './lib/tenant-domain-management.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,6BAA6B,CAAA;AAExC,IAAA,WAAA,GAAA;8GAFW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA;;2FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCSY,+BAA+B,CAAA;8GAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAPhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGU,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAX3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAC5B,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,EACD,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA;;;ACVH;;AAEG;;ACFH;;AAEG;;;;"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@dignite-ng/expand.tenant-domain-management" />
5
+ export * from './public-api';
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TenantDomainManagementComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantDomainManagementComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<TenantDomainManagementComponent, "lib-tenant-domain-management", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TenantDomainManagementService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TenantDomainManagementService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<TenantDomainManagementService>;
6
+ }
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@dignite-ng/expand.tenant-domain-management",
3
+ "version": "3.0.0-rc.19",
4
+ "homepage": "https://abp.io",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/abpframework/abp.git"
8
+ },
9
+ "dependencies": {
10
+ "@dignite-ng/expand.core": "3.0.0-rc-8",
11
+ "tslib": "^2.0.0"
12
+ },
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "license": "LGPL-3.0",
17
+ "keywords": [
18
+ "aspnetcore",
19
+ "boilerplate",
20
+ "framework",
21
+ "web",
22
+ "best-practices",
23
+ "angular",
24
+ "maui",
25
+ "blazor",
26
+ "mvc",
27
+ "csharp",
28
+ "webapp"
29
+ ],
30
+ "module": "fesm2022/dignite-ng-expand.tenant-domain-management.mjs",
31
+ "typings": "index.d.ts",
32
+ "exports": {
33
+ "./package.json": {
34
+ "default": "./package.json"
35
+ },
36
+ ".": {
37
+ "types": "./index.d.ts",
38
+ "esm2022": "./esm2022/dignite-ng-expand.tenant-domain-management.mjs",
39
+ "esm": "./esm2022/dignite-ng-expand.tenant-domain-management.mjs",
40
+ "default": "./fesm2022/dignite-ng-expand.tenant-domain-management.mjs"
41
+ },
42
+ "./config": {
43
+ "types": "./config/index.d.ts",
44
+ "esm2022": "./esm2022/config/dignite-ng-expand.tenant-domain-management-config.mjs",
45
+ "esm": "./esm2022/config/dignite-ng-expand.tenant-domain-management-config.mjs",
46
+ "default": "./fesm2022/dignite-ng-expand.tenant-domain-management-config.mjs"
47
+ }
48
+ },
49
+ "sideEffects": false
50
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/tenant-domain-management.service';
2
+ export * from './lib/tenant-domain-management.component';