@dignite-ng/expand.cms 0.0.39 → 0.0.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/{lib/components/admin → config/components}/domains/domains.component.d.ts +3 -2
- package/config/providers/route.provider.d.ts +1 -1
- package/esm2022/config/cms-config.module.mjs +6 -7
- package/esm2022/config/components/domains/domains.component.mjs +92 -0
- package/esm2022/config/providers/route.provider.mjs +10 -10
- package/esm2022/config/proxy/admin/domains/domain-admin.service.mjs +33 -0
- package/esm2022/config/proxy/admin/domains/index.mjs +3 -0
- package/esm2022/config/proxy/admin/domains/models.mjs +2 -0
- package/esm2022/lib/cms-routing.module.mjs +6 -7
- package/esm2022/lib/cms.module.mjs +12 -19
- package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +45 -33
- package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +20 -20
- package/esm2022/lib/components/admin/entries/create.component.mjs +28 -20
- package/esm2022/lib/components/admin/entries/edit.component.mjs +29 -20
- package/esm2022/lib/components/admin/entries/entries.component.mjs +68 -49
- package/esm2022/lib/components/admin/fields/create-field.component.mjs +21 -12
- package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +17 -7
- package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +13 -13
- package/esm2022/lib/components/admin/fields/edit-field.component.mjs +30 -18
- package/esm2022/lib/components/admin/fields/field-group.component.mjs +28 -19
- package/esm2022/lib/components/admin/fields/fields.component.mjs +29 -24
- package/esm2022/lib/components/admin/index.mjs +1 -2
- package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +15 -15
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +26 -26
- package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +75 -42
- package/esm2022/lib/components/admin/sections/sections.component.mjs +34 -24
- package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +24 -14
- package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +7 -7
- package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +22 -13
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +32 -17
- package/esm2022/lib/components/dynamic-form/matrix/matrix-config.mjs +16 -16
- package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +25 -11
- package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +32 -11
- package/esm2022/lib/components/dynamic-form/table/table-config.mjs +15 -15
- package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +23 -10
- package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +12 -12
- package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +60 -60
- package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +35 -35
- package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +31 -31
- package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +31 -31
- package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +41 -41
- package/esm2022/lib/proxy/admin/settings/site-settings-admin.service.mjs +21 -21
- package/esm2022/lib/services/cms-api.service.mjs +7 -7
- package/esm2022/lib/services/cms.service.mjs +8 -8
- package/esm2022/lib/services/field-abstracts.service.mjs +12 -11
- package/esm2022/lib/services/simple-reuse-strategy.mjs +3 -4
- package/esm2022/lib/services/update-list.service.mjs +8 -10
- package/esm2022/lib/toolbar/toolbar-btn-default-action.mjs +3 -3
- package/esm2022/lib/toolbar/toolbar-config.mjs +6 -2
- package/esm2022/public-api.mjs +2 -3
- package/fesm2022/dignite-ng-expand.cms-config.mjs +132 -15
- package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -1
- package/fesm2022/dignite-ng-expand.cms.mjs +883 -748
- package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -1
- package/lib/cms.module.d.ts +8 -9
- package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +1 -1
- package/lib/components/admin/entries/create.component.d.ts +3 -3
- package/lib/components/admin/entries/edit.component.d.ts +3 -3
- package/lib/components/admin/entries/entries.component.d.ts +7 -7
- package/lib/components/admin/fields/create-field.component.d.ts +3 -3
- package/lib/components/admin/fields/edit-field.component.d.ts +5 -6
- package/lib/components/admin/fields/fields.component.d.ts +5 -5
- package/lib/components/admin/index.d.ts +0 -1
- package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +9 -9
- package/lib/components/admin/sections/sections.component.d.ts +3 -3
- package/lib/components/dynamic-form/entry/entry-config.component.d.ts +1 -1
- package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +2 -2
- package/lib/components/dynamic-form/table/table-config.component.d.ts +2 -2
- package/lib/toolbar/toolbar-btn-default-action.d.ts +1 -1
- package/lib/toolbar/toolbar-config.d.ts +8 -8
- package/package.json +3 -3
- package/public-api.d.ts +0 -2
- package/esm2022/lib/components/admin/domains/domains.component.mjs +0 -90
- package/esm2022/lib/components/admin/domains/index.mjs +0 -2
- package/esm2022/lib/proxy/admin/domains/domain-admin.service.mjs +0 -33
- package/esm2022/lib/proxy/admin/domains/index.mjs +0 -3
- package/esm2022/lib/proxy/admin/domains/models.mjs +0 -2
- package/lib/components/admin/domains/index.d.ts +0 -1
- /package/{lib → config}/proxy/admin/domains/domain-admin.service.d.ts +0 -0
- /package/{lib → config}/proxy/admin/domains/index.d.ts +0 -0
- /package/{lib → config}/proxy/admin/domains/models.d.ts +0 -0
|
@@ -1,9 +1,126 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
3
|
-
import
|
|
2
|
+
import { Injectable, inject, Component, APP_INITIALIZER, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@abp/ng.core';
|
|
4
|
+
import { LocalizationService, CoreModule, RoutesService } from '@abp/ng.core';
|
|
4
5
|
import { SettingTabsService } from '@abp/ng.setting-management/config';
|
|
6
|
+
import * as i2 from '@angular/forms';
|
|
7
|
+
import { FormGroup, FormControl, FormsModule } from '@angular/forms';
|
|
8
|
+
import { ToasterService, ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
9
|
+
import * as i1$1 from '@angular/common';
|
|
10
|
+
import * as i4 from '@ngx-validate/core';
|
|
11
|
+
|
|
12
|
+
class DomainAdminService {
|
|
13
|
+
restService;
|
|
14
|
+
apiName = 'CmsAdmin';
|
|
15
|
+
getBound = (config) => this.restService.request({
|
|
16
|
+
method: 'GET',
|
|
17
|
+
url: '/api/cms-admin/domains/bound',
|
|
18
|
+
}, { apiName: this.apiName, ...config });
|
|
19
|
+
nameExists = (domainName, config) => this.restService.request({
|
|
20
|
+
method: 'GET',
|
|
21
|
+
url: '/api/cms-admin/domains/name-exists',
|
|
22
|
+
params: { domainName },
|
|
23
|
+
}, { apiName: this.apiName, ...config });
|
|
24
|
+
update = (input, config) => this.restService.request({
|
|
25
|
+
method: 'POST',
|
|
26
|
+
url: '/api/cms-admin/domains',
|
|
27
|
+
body: input,
|
|
28
|
+
}, { apiName: this.apiName, ...config });
|
|
29
|
+
constructor(restService) {
|
|
30
|
+
this.restService = restService;
|
|
31
|
+
}
|
|
32
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainAdminService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainAdminService, providedIn: 'root' });
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainAdminService, decorators: [{
|
|
36
|
+
type: Injectable,
|
|
37
|
+
args: [{
|
|
38
|
+
providedIn: 'root',
|
|
39
|
+
}]
|
|
40
|
+
}], ctorParameters: () => [{ type: i1.RestService }] });
|
|
41
|
+
|
|
42
|
+
class DomainsComponent {
|
|
43
|
+
toaster = inject(ToasterService);
|
|
44
|
+
_DomainAdminService = inject(DomainAdminService);
|
|
45
|
+
_LocalizationService = inject(LocalizationService);
|
|
46
|
+
/**表单实体 */
|
|
47
|
+
newEntity;
|
|
48
|
+
/**domain详情 */
|
|
49
|
+
domainInfo = '';
|
|
50
|
+
get domainNameInput() {
|
|
51
|
+
return this.newEntity.get('domainName');
|
|
52
|
+
}
|
|
53
|
+
async ngOnInit() {
|
|
54
|
+
//Called after the constructor, initializing input properties, and the first call to ngOnChanges.
|
|
55
|
+
//Add 'implements OnInit' to the class.
|
|
56
|
+
this.newEntity = new FormGroup({
|
|
57
|
+
domainName: new FormControl('', {
|
|
58
|
+
asyncValidators: this.repetitionAsyncValidator(),
|
|
59
|
+
updateOn: 'blur'
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
await this.getDomainsBound();
|
|
63
|
+
}
|
|
64
|
+
/**用于获取已绑定的域名 */
|
|
65
|
+
getDomainsBound() {
|
|
66
|
+
return new Promise((resolve, rejects) => {
|
|
67
|
+
this._DomainAdminService.getBound().subscribe(res => {
|
|
68
|
+
this.domainNameInput.patchValue(res?.domainName || '');
|
|
69
|
+
this.domainInfo = res;
|
|
70
|
+
resolve(res);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//检验域名是否已经绑定
|
|
75
|
+
repetitionAsyncValidator() {
|
|
76
|
+
return (ctrl) => {
|
|
77
|
+
return new Promise(resolve => {
|
|
78
|
+
let domainNameInput = this.domainNameInput.value;
|
|
79
|
+
if (!domainNameInput) {
|
|
80
|
+
resolve(null);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (this.domainInfo?.domainName === domainNameInput) {
|
|
84
|
+
resolve(null);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\.[A-Za-z]{2,6}$/;
|
|
88
|
+
if (!patt.test(domainNameInput)) {
|
|
89
|
+
resolve({ repetition: this._LocalizationService.instant(`AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`, patt.toString()) });
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {
|
|
93
|
+
if (res) {
|
|
94
|
+
resolve({ repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value) });
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
resolve(null);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**保存 */
|
|
104
|
+
SaveSubmit() {
|
|
105
|
+
let input = this.newEntity.value;
|
|
106
|
+
console.log(input, '保存');
|
|
107
|
+
this._DomainAdminService.update(input).subscribe(async (res) => {
|
|
108
|
+
this.toaster.success(this._LocalizationService.instant(`AbpUi::保存成功`));
|
|
109
|
+
await this.getDomainsBound();
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: DomainsComponent, isStandalone: true, selector: "cms-domains", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\u6B64\u5904\u662F\u586B\u5199\u57DF\u540D\u7684\u63CF\u8FF0\uFF0C\u9700\u8981\u4E00\u4E2A\u5B57\u6BB5\u7EDF\u4E00\u914D\u7F6E\u57DF\u540D\u591A\u8BED\u8A00\uFF0C</div>\n </div>\n <hr class=\"my-3\" />\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i4.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "ngmodule", type: FormsModule }] });
|
|
114
|
+
}
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainsComponent, decorators: [{
|
|
116
|
+
type: Component,
|
|
117
|
+
args: [{ selector: 'cms-domains', standalone: true, imports: [
|
|
118
|
+
CoreModule,
|
|
119
|
+
ThemeSharedModule,
|
|
120
|
+
FormsModule,
|
|
121
|
+
], template: "<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\u6B64\u5904\u662F\u586B\u5199\u57DF\u540D\u7684\u63CF\u8FF0\uFF0C\u9700\u8981\u4E00\u4E2A\u5B57\u6BB5\u7EDF\u4E00\u914D\u7F6E\u57DF\u540D\u591A\u8BED\u8A00\uFF0C</div>\n </div>\n <hr class=\"my-3\" />\n</form>" }]
|
|
122
|
+
}] });
|
|
5
123
|
|
|
6
|
-
// import { DomainsComponent } from '@dignite-ng/expand.cms';
|
|
7
124
|
const CMS_ROUTE_PROVIDERS = [
|
|
8
125
|
{
|
|
9
126
|
provide: APP_INITIALIZER,
|
|
@@ -14,14 +131,14 @@ const CMS_ROUTE_PROVIDERS = [
|
|
|
14
131
|
];
|
|
15
132
|
function configureRoutes(routesService, settingTabs) {
|
|
16
133
|
return () => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
134
|
+
settingTabs.add([
|
|
135
|
+
{
|
|
136
|
+
name: 'Cms::Domain',
|
|
137
|
+
order: 1,
|
|
138
|
+
requiredPolicy: 'CmsAdmin.Domain',
|
|
139
|
+
component: DomainsComponent,
|
|
140
|
+
},
|
|
141
|
+
]);
|
|
25
142
|
routesService.add([
|
|
26
143
|
{
|
|
27
144
|
path: '/cms',
|
|
@@ -75,11 +192,11 @@ class CmsConfigModule {
|
|
|
75
192
|
providers: [CMS_ROUTE_PROVIDERS],
|
|
76
193
|
};
|
|
77
194
|
}
|
|
78
|
-
static
|
|
79
|
-
static
|
|
80
|
-
static
|
|
195
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
196
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: CmsConfigModule });
|
|
197
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsConfigModule });
|
|
81
198
|
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsConfigModule, decorators: [{
|
|
83
200
|
type: NgModule
|
|
84
201
|
}] });
|
|
85
202
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dignite-ng-expand.cms-config.mjs","sources":["../../../projects/cms/config/src/providers/route.provider.ts","../../../projects/cms/config/src/cms-config.module.ts","../../../projects/cms/config/src/dignite-ng-expand.cms-config.ts"],"sourcesContent":["import { eLayoutType, RoutesService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { eCmsRouteNames } from '../enums/route-names';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\n// import { DomainsComponent } from '@dignite-ng/expand.cms';\r\n\r\n\r\nexport const CMS_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 // settingTabs.add([\r\n // {\r\n // name: 'Cms::Domain',\r\n // order: 1,\r\n // requiredPolicy: 'CmsAdmin.Domain',\r\n // component: DomainsComponent,\r\n // },\r\n // ]);\r\n routesService.add([\r\n {\r\n path: '/cms',\r\n name: eCmsRouteNames.Cms,\r\n iconClass: 'bi-archive-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry || CmsAdmin.Field || CmsAdmin.Site || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/entries',\r\n name: eCmsRouteNames.Entries,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry',\r\n },\r\n {\r\n path: '',\r\n name: eCmsRouteNames.Settings,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'fas fa fa-cog',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Field || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/fields',\r\n name: eCmsRouteNames.Fields,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n order: 1,\r\n requiredPolicy: 'CmsAdmin.Field',\r\n },\r\n {\r\n path: '/cms/admin/sections',\r\n name: eCmsRouteNames.Sections,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi bi-menu-button-wide-fill',\r\n layout: eLayoutType.application,\r\n order: 3,\r\n requiredPolicy: 'CmsAdmin.Section',\r\n },\r\n ]);\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CMS_ROUTE_PROVIDERS } from './providers/route.provider';\r\n\r\n@NgModule()\r\nexport class CmsConfigModule {\r\n static forRoot(): ModuleWithProviders<CmsConfigModule> {\r\n return {\r\n ngModule: CmsConfigModule,\r\n providers: [CMS_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":[],"mappings":";;;;;AAIA;AAGa,MAAA,mBAAmB,GAAG;AACjC,IAAA;AACE,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,IAAI,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;AACzC,QAAA,KAAK,EAAE,IAAI;AACZ,KAAA;EACD;AAGc,SAAA,eAAe,CAAC,aAA4B,EAAE,WAA+B,EAAA;AAC3F,IAAA,OAAO,MAAK;;;;;;;;;QASV,aAAa,CAAC,GAAG,CAAC;AAChB,YAAA;AACE,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,IAAI,EAAoB,eAAA;AACxB,gBAAA,SAAS,EAAE,iBAAiB;AAC5B,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAE,uEAAuE;AACxF,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,oBAAoB;AAC1B,gBAAA,IAAI,EAAwB,wBAAA;AAC5B,gBAAA,UAAU,EAAoB,eAAA;AAC9B,gBAAA,SAAS,EAAE,2BAA2B;AACtC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAE,gBAAgB;AACjC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,IAAI,EAAyB,oBAAA;AAC7B,gBAAA,UAAU,EAAoB,eAAA;AAC9B,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,cAAc,EAAE,qCAAqC;AACtD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,IAAI,EAAuB,aAAA;AAC3B,gBAAA,UAAU,EAAyB,oBAAA;AACnC,gBAAA,SAAS,EAAE,2BAA2B;AACtC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAE,gBAAgB;AACjC,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,IAAI,EAAyB,eAAA;AAC7B,gBAAA,UAAU,EAAyB,oBAAA;AACnC,gBAAA,SAAS,EAAE,6BAA6B;AACxC,gBAAA,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAE,kBAAkB;AACnC,aAAA;AACF,SAAA,CAAC,CAAC;AACL,KAAC,CAAC;AACJ;;ACpEA,MACa,eAAe,CAAA;AAC1B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACjC,CAAC;KACH;+GANU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAf,eAAe,EAAA,CAAA,CAAA,EAAA;gHAAf,eAAe,EAAA,CAAA,CAAA,EAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,QAAQ;;;ACHT;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"dignite-ng-expand.cms-config.mjs","sources":["../../../projects/cms/config/src/proxy/admin/domains/domain-admin.service.ts","../../../projects/cms/config/src/components/domains/domains.component.ts","../../../projects/cms/config/src/components/domains/domains.component.html","../../../projects/cms/config/src/providers/route.provider.ts","../../../projects/cms/config/src/cms-config.module.ts","../../../projects/cms/config/src/dignite-ng-expand.cms-config.ts"],"sourcesContent":["import type { DomainDto, UpdateDomainInput } 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 DomainAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getBound = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/bound',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (domainName: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/name-exists',\r\n params: { domainName },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (input: UpdateDomainInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/domains',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { Component, inject, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, FormsModule, ValidationErrors } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { CoreModule, LocalizationService } from '@abp/ng.core';\nimport { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';\nimport { DomainAdminService } from '../../proxy/admin/domains';\n\n@Component({\n selector: 'cms-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss'],\n standalone: true,\n imports: [\n CoreModule,\n ThemeSharedModule,\n FormsModule,\n ]\n})\nexport class DomainsComponent implements OnInit{\n\n private toaster = inject(ToasterService)\n private _DomainAdminService = inject(DomainAdminService);\n private _LocalizationService = inject(LocalizationService);\n\n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**domain详情 */\n domainInfo:any=''\n get domainNameInput() {\n return this.newEntity.get('domainName')\n }\n\n async ngOnInit(): Promise<void> {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n \n this.newEntity = new FormGroup({\n domainName: new FormControl('', {\n asyncValidators: this.repetitionAsyncValidator(),\n updateOn: 'blur'\n })\n })\n await this.getDomainsBound()\n\n }\n\n /**用于获取已绑定的域名 */\n getDomainsBound(){\n return new Promise((resolve,rejects)=>{\n this._DomainAdminService.getBound().subscribe(res=>{\n this.domainNameInput.patchValue(res?.domainName||'')\n this.domainInfo=res\n resolve(res)\n })\n })\n }\n\n //检验域名是否已经绑定\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let domainNameInput = this.domainNameInput.value\n if (!domainNameInput) {\n resolve(null);\n return\n }\n if (this.domainInfo?.domainName===domainNameInput) {\n resolve(null);\n return\n }\n var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.[A-Za-z]{2,6}$/;\n if(!patt.test(domainNameInput)){\n resolve({ repetition: this._LocalizationService.instant(`AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`, patt.toString()) });\n return\n }\n this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n /**保存 */\n SaveSubmit() {\n let input = this.newEntity.value\n console.log(input, '保存');\n this._DomainAdminService.update(input).subscribe(async(res)=>{\n this.toaster.success(this._LocalizationService.instant(`AbpUi::保存成功`));\n await this.getDomainsBound()\n })\n }\n}\n","<form [formGroup]=\"newEntity\" (ngSubmit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">此处是填写域名的描述,需要一个字段统一配置域名多语言,</div>\n </div>\n <hr class=\"my-3\" />\n</form>","import { eLayoutType, RoutesService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { eCmsRouteNames } from '../enums/route-names';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\nimport { DomainsComponent } from '../components/domains/domains.component';\r\n\r\n\r\n\r\n\r\n\r\nexport const CMS_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 settingTabs.add([\r\n {\r\n name: 'Cms::Domain',\r\n order: 1,\r\n requiredPolicy: 'CmsAdmin.Domain',\r\n component: DomainsComponent,\r\n },\r\n ]);\r\n routesService.add([\r\n {\r\n path: '/cms',\r\n name: eCmsRouteNames.Cms,\r\n iconClass: 'bi-archive-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry || CmsAdmin.Field || CmsAdmin.Site || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/entries',\r\n name: eCmsRouteNames.Entries,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry',\r\n },\r\n {\r\n path: '',\r\n name: eCmsRouteNames.Settings,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'fas fa fa-cog',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Field || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/fields',\r\n name: eCmsRouteNames.Fields,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n order: 1,\r\n requiredPolicy: 'CmsAdmin.Field',\r\n },\r\n {\r\n path: '/cms/admin/sections',\r\n name: eCmsRouteNames.Sections,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi bi-menu-button-wide-fill',\r\n layout: eLayoutType.application,\r\n order: 3,\r\n requiredPolicy: 'CmsAdmin.Section',\r\n },\r\n ]);\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CMS_ROUTE_PROVIDERS } from './providers/route.provider';\r\n\r\n@NgModule()\r\nexport class CmsConfigModule {\r\n static forRoot(): ModuleWithProviders<CmsConfigModule> {\r\n return {\r\n ngModule: CmsConfigModule,\r\n providers: [CMS_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"],"mappings":"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"}
|