ngx-rs-ant 0.6.2 → 0.6.10

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.
@@ -6,32 +6,36 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "./form.service";
7
7
  import * as i2 from "@angular/common";
8
8
  import * as i3 from "ng-devui/form";
9
- import * as i4 from "@angular/forms";
10
- import * as i5 from "../box-container/box-container.component";
9
+ import * as i4 from "ng-devui/loading";
10
+ import * as i5 from "@angular/forms";
11
+ import * as i6 from "../box-container/box-container.component";
11
12
  export class FormComponent {
12
13
  constructor(service) {
13
14
  this.service = service;
14
15
  this.layoutDirection = FormLayout.Vertical;
15
16
  this.formGroup = new UntypedFormGroup({});
16
17
  this.submitCallback = new EventEmitter();
18
+ this.loading = false;
17
19
  }
18
20
  ngOnInit() {
19
21
  this.service.getFormTemplateConfig(this.tenant, this.className, this.template).subscribe((response) => {
20
22
  this.config = response.data.template;
21
23
  if (this.copyOid || this.oid) {
24
+ this.loading = true;
22
25
  const attributes = Object.keys(this.formGroup.controls);
23
26
  this.service.getOne(this.tenant, this.className, this.copyOid || this.oid, attributes).subscribe((response) => {
24
27
  if (this.copyOid) {
25
28
  delete response.data.oid;
26
29
  }
27
30
  this.formGroup.patchValue(response.data);
31
+ this.loading = false;
28
32
  });
29
33
  }
30
34
  });
31
35
  }
32
36
  submitForm($event) {
33
37
  if (!$event.valid) {
34
- this.submitCallback.emit();
38
+ this.submitCallback.emit({ success: false });
35
39
  return;
36
40
  }
37
41
  this.service.createOrUpdate(this.tenant, this.className, {
@@ -46,10 +50,10 @@ export class FormComponent {
46
50
  }
47
51
  }
48
52
  FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: i1.FormService }], target: i0.ɵɵFactoryTarget.Component });
49
- FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], ngImport: i0, template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\">\n <ng-container *ngIf=\"config\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.FormDirective, selector: "[dForm]", inputs: ["layout", "labelSize", "labelAlign", "dFeedbackType", "dHasFeedback"], outputs: ["dSubmit"], exportAs: ["dForm"] }, { kind: "directive", type: i3.DFormSubmitDirective, selector: "[dFormSubmit]", inputs: ["dFormSubmit", "dFormSubmitData"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.BoxContainerComponent, selector: "rs-box-container", inputs: ["editMode", "config", "formGroup", "tabViewContainerRef"] }] });
53
+ FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], ngImport: i0, template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\"\n dLoading [loading]=\"loading\">\n <ng-container *ngIf=\"config\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.FormDirective, selector: "[dForm]", inputs: ["layout", "labelSize", "labelAlign", "dFeedbackType", "dHasFeedback"], outputs: ["dSubmit"], exportAs: ["dForm"] }, { kind: "directive", type: i3.DFormSubmitDirective, selector: "[dFormSubmit]", inputs: ["dFormSubmit", "dFormSubmitData"] }, { kind: "directive", type: i4.LoadingDirective, selector: "[dLoading]", inputs: ["backdrop", "message", "positionType", "showLoading", "view", "zIndex", "loading", "loadingStyle", "loadingTemplateRef"], exportAs: ["dLoading"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i6.BoxContainerComponent, selector: "rs-box-container", inputs: ["editMode", "config", "formGroup", "tabViewContainerRef"] }] });
50
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, decorators: [{
51
55
  type: Component,
52
- args: [{ selector: 'rs-form', providers: [FormService], template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\">\n <ng-container *ngIf=\"config\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n" }]
56
+ args: [{ selector: 'rs-form', providers: [FormService], template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\"\n dLoading [loading]=\"loading\">\n <ng-container *ngIf=\"config\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n" }]
53
57
  }], ctorParameters: function () { return [{ type: i1.FormService }]; }, propDecorators: { tenant: [{
54
58
  type: Input
55
59
  }], className: [{
@@ -66,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
66
70
  }], submitCallback: [{
67
71
  type: Output
68
72
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUTNDLE1BQU0sT0FBTyxhQUFhO0lBa0J4QixZQUFvQixPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBUHhDLG9CQUFlLEdBQWUsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUVsRCxjQUFTLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUdwQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFHekMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDekcsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNyQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDNUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO29CQUNqSCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7d0JBQ2hCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7cUJBQzFCO29CQUNELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLFVBQVUsQ0FBQyxNQUFXO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3ZELEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1NBQ3hCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7MEdBbkRVLGFBQWE7OEZBQWIsYUFBYSw2TEFGYixDQUFDLFdBQVcsQ0FBQywwSUNUMUIsMFRBTUE7MkZES2EsYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxTQUFTLGFBR1IsQ0FBQyxXQUFXLENBQUM7a0dBSXhCLE1BQU07c0JBREwsS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBR04sR0FBRztzQkFERixLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBS3NCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFFMUIsY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtTGF5b3V0fSBmcm9tIFwibmctZGV2dWlcIjtcbmltcG9ydCB7VW50eXBlZEZvcm1Hcm91cH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge0Zvcm1TZXJ2aWNlfSBmcm9tIFwiLi9mb3JtLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtGb3JtU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHRlbmFudCE6IGFueTtcbiAgQElucHV0KClcbiAgY2xhc3NOYW1lITogYW55O1xuICBASW5wdXQoKVxuICBvaWQ/OiBhbnk7XG4gIEBJbnB1dCgpXG4gIGNvcHlPaWQ/OiBhbnk7XG4gIEBJbnB1dCgpXG4gIHRlbXBsYXRlPzogYW55O1xuICBsYXlvdXREaXJlY3Rpb246IEZvcm1MYXlvdXQgPSBGb3JtTGF5b3V0LlZlcnRpY2FsO1xuICBjb25maWc6IGFueTtcbiAgZm9ybUdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1TdWJtaXR0ZXInKSBmb3JtU3VibWl0dGVyITogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpXG4gIHN1Ym1pdENhbGxiYWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBGb3JtU2VydmljZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmdldEZvcm1UZW1wbGF0ZUNvbmZpZyh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMudGVtcGxhdGUpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgdGhpcy5jb25maWcgPSByZXNwb25zZS5kYXRhLnRlbXBsYXRlO1xuICAgICAgaWYgKHRoaXMuY29weU9pZCB8fCB0aGlzLm9pZCkge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpO1xuICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0T25lKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5jb3B5T2lkIHx8IHRoaXMub2lkLCBhdHRyaWJ1dGVzKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5jb3B5T2lkKSB7XG4gICAgICAgICAgICBkZWxldGUgcmVzcG9uc2UuZGF0YS5vaWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN1Ym1pdEZvcm0oJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoISRldmVudC52YWxpZCkge1xuICAgICAgdGhpcy5zdWJtaXRDYWxsYmFjay5lbWl0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VydmljZS5jcmVhdGVPclVwZGF0ZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHtcbiAgICAgIG9pZDogdGhpcy5vaWQsXG4gICAgICAuLi50aGlzLmZvcm1Hcm91cC52YWx1ZVxuICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgdGhpcy5zdWJtaXRDYWxsYmFjay5lbWl0KHJlc3BvbnNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLmZvcm1TdWJtaXR0ZXIubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG59XG4iLCI8Zm9ybSBkRm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtsYXlvdXRdPVwibGF5b3V0RGlyZWN0aW9uXCIgKGRTdWJtaXQpPVwic3VibWl0Rm9ybSgkZXZlbnQpXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWdcIj5cbiAgICA8cnMtYm94LWNvbnRhaW5lciBbY29uZmlnXT1cImNvbmZpZ1wiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+PC9ycy1ib3gtY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGJ1dHRvbiAjZm9ybVN1Ym1pdHRlciBkRm9ybVN1Ym1pdD1cImNsaWNrXCI+PC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVEzQyxNQUFNLE9BQU8sYUFBYTtJQW1CeEIsWUFBb0IsT0FBb0I7UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQVJ4QyxvQkFBZSxHQUFlLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFFbEQsY0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUE7UUFHcEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pDLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFHaEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDekcsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNyQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtvQkFDakgsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO3dCQUNoQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO3FCQUMxQjtvQkFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsVUFBVSxDQUFDLE1BQVc7UUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztZQUMzQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdkQsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7U0FDeEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQyxDQUFDOzswR0F0RFUsYUFBYTs4RkFBYixhQUFhLDZMQUZiLENBQUMsV0FBVyxDQUFDLDBJQ1QxQixnV0FPQTsyRkRJYSxhQUFhO2tCQU56QixTQUFTOytCQUNFLFNBQVMsYUFHUixDQUFDLFdBQVcsQ0FBQztrR0FJeEIsTUFBTTtzQkFETCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixHQUFHO3NCQURGLEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFLc0IsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUUxQixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1MYXlvdXR9IGZyb20gXCJuZy1kZXZ1aVwiO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7Rm9ybVNlcnZpY2V9IGZyb20gXCIuL2Zvcm0uc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0Zvcm1TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgdGVuYW50ITogYW55O1xuICBASW5wdXQoKVxuICBjbGFzc05hbWUhOiBhbnk7XG4gIEBJbnB1dCgpXG4gIG9pZD86IGFueTtcbiAgQElucHV0KClcbiAgY29weU9pZD86IGFueTtcbiAgQElucHV0KClcbiAgdGVtcGxhdGU/OiBhbnk7XG4gIGxheW91dERpcmVjdGlvbjogRm9ybUxheW91dCA9IEZvcm1MYXlvdXQuVmVydGljYWw7XG4gIGNvbmZpZzogYW55O1xuICBmb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSlcbiAgQFZpZXdDaGlsZCgnZm9ybVN1Ym1pdHRlcicpIGZvcm1TdWJtaXR0ZXIhOiBFbGVtZW50UmVmO1xuICBAT3V0cHV0KClcbiAgc3VibWl0Q2FsbGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogRm9ybVNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VydmljZS5nZXRGb3JtVGVtcGxhdGVDb25maWcodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLnRlbXBsYXRlKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY29uZmlnID0gcmVzcG9uc2UuZGF0YS50ZW1wbGF0ZTtcbiAgICAgIGlmICh0aGlzLmNvcHlPaWQgfHwgdGhpcy5vaWQpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldE9uZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMuY29weU9pZCB8fCB0aGlzLm9pZCwgYXR0cmlidXRlcykuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY29weU9pZCkge1xuICAgICAgICAgICAgZGVsZXRlIHJlc3BvbnNlLmRhdGEub2lkO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdWJtaXRGb3JtKCRldmVudDogYW55KSB7XG4gICAgaWYgKCEkZXZlbnQudmFsaWQpIHtcbiAgICAgIHRoaXMuc3VibWl0Q2FsbGJhY2suZW1pdCh7c3VjY2VzczogZmFsc2V9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZU9yVXBkYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwge1xuICAgICAgb2lkOiB0aGlzLm9pZCxcbiAgICAgIC4uLnRoaXMuZm9ybUdyb3VwLnZhbHVlXG4gICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICB0aGlzLnN1Ym1pdENhbGxiYWNrLmVtaXQocmVzcG9uc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIHRoaXMuZm9ybVN1Ym1pdHRlci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cbn1cbiIsIjxmb3JtIGRGb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgW2xheW91dF09XCJsYXlvdXREaXJlY3Rpb25cIiAoZFN1Ym1pdCk9XCJzdWJtaXRGb3JtKCRldmVudClcIlxuICAgICAgZExvYWRpbmcgW2xvYWRpbmddPVwibG9hZGluZ1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnXCI+XG4gICAgPHJzLWJveC1jb250YWluZXIgW2NvbmZpZ109XCJjb25maWdcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPjwvcnMtYm94LWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxidXR0b24gI2Zvcm1TdWJtaXR0ZXIgZEZvcm1TdWJtaXQ9XCJjbGlja1wiPjwvYnV0dG9uPlxuPC9mb3JtPlxuIl19
@@ -2,8 +2,9 @@ import { Component, HostListener, Input, ViewChild } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  export class ModalComponent {
5
- constructor(elementRef) {
5
+ constructor(elementRef, changeDetectorRef) {
6
6
  this.elementRef = elementRef;
7
+ this.changeDetectorRef = changeDetectorRef;
7
8
  this.size = 'default';
8
9
  this._width = 480;
9
10
  this.movable = false;
@@ -24,12 +25,17 @@ export class ModalComponent {
24
25
  this._width = 960;
25
26
  }
26
27
  this.modalElementRef.nativeElement.style.width = this._width + 'px';
27
- this.modalElementRef.nativeElement.style.top = '40px';
28
+ this.modalElementRef.nativeElement.style.top = '24px';
28
29
  this.modalElementRef.nativeElement.style.left =
29
30
  (this.elementRef.nativeElement.parentElement.offsetWidth - this.modalElementRef.nativeElement.offsetWidth) / 2 + 'px';
30
31
  this.moveHandleEl = this.elementRef.nativeElement.querySelector('.modal-header');
31
32
  this.moveHandleEl.style.cursor = 'move';
32
33
  }
34
+ setTimeout(() => {
35
+ if (this.modalElementRef.nativeElement.offsetHeight > this.elementRef.nativeElement.parentElement.offsetHeight - 48) {
36
+ this.modalElementRef.nativeElement.style.height = this.elementRef.nativeElement.parentElement.offsetHeight - 48 + 'px';
37
+ }
38
+ });
33
39
  }
34
40
  show() {
35
41
  // 若存在多层模态框,仅保留最上层遮罩颜色,下层遮罩设置为透明
@@ -65,6 +71,12 @@ export class ModalComponent {
65
71
  "left": this.elementRef.nativeElement.parentElement.offsetLeft + 'px',
66
72
  };
67
73
  }
74
+ resolveModalPosition() {
75
+ return {
76
+ "top": '24px',
77
+ "left": (this.elementRef.nativeElement.parentElement.offsetWidth - this.modalElementRef.nativeElement.offsetWidth) / 2 + 'px',
78
+ };
79
+ }
68
80
  onMousedown($event) {
69
81
  if ($event.button === 2 || !this.checkHandleTarget($event.target, this.moveHandleEl)) {
70
82
  return;
@@ -110,13 +122,16 @@ export class ModalComponent {
110
122
  element.style.top = currentTop + 'px';
111
123
  element.style.left = currentLeft + 'px';
112
124
  }
125
+ onWindowResize() {
126
+ this.changeDetectorRef.detectChanges();
127
+ }
113
128
  }
114
- ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
115
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ModalComponent, selector: "rs-modal", inputs: { title: "title", size: "size", contentTemplate: "contentTemplate", contentTemplateContext: "contentTemplateContext" }, host: { listeners: { "document:mouseup": "onMouseup($event)", "document:mousemove": "onMousemove($event)" } }, viewQueries: [{ propertyName: "modalElementRef", first: true, predicate: ["modal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\">\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\n <div class=\"modal-title\">{{title}}</div>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n </div>\n <div class=\"modal-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-length-fullscreen-overlay, 0 10px 24px 0) var(--devui-shadow, rgba(37, 43, 58, .24));display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #e9edfa)}:host .modal-backdrop .modal .modal-content{flex:1;padding:24px;display:flex;flex-flow:column nowrap;font-size:var(--devui-font-size, 12px);color:var(--devui-aide-text, #71757f)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
129
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
130
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ModalComponent, selector: "rs-modal", inputs: { title: "title", size: "size", contentTemplate: "contentTemplate", contentTemplateContext: "contentTemplateContext", footerTemplate: "footerTemplate", footerTemplateContext: "footerTemplateContext" }, host: { listeners: { "document:mouseup": "onMouseup($event)", "document:mousemove": "onMousemove($event)", "window:resize": "onWindowResize($event)" } }, viewQueries: [{ propertyName: "modalElementRef", first: true, predicate: ["modal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\" [ngStyle]=\"resolveModalPosition()\">\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\n <div class=\"modal-title\">{{title}}</div>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n </div>\n <div class=\"modal-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"modal-footer\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: footerTemplateContext}\"></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-length-fullscreen-overlay, 0 10px 24px 0) var(--devui-shadow, rgba(37, 43, 58, .24));display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #e9edfa)}:host .modal-backdrop .modal .modal-content{flex:1;overflow:auto;padding:24px;display:flex;flex-flow:column nowrap;font-size:var(--devui-font-size, 12px);color:var(--devui-aide-text, #71757f)}:host .modal-backdrop .modal .modal-footer{flex:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
116
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, decorators: [{
117
132
  type: Component,
118
- args: [{ selector: 'rs-modal', template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\">\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\n <div class=\"modal-title\">{{title}}</div>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n </div>\n <div class=\"modal-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-length-fullscreen-overlay, 0 10px 24px 0) var(--devui-shadow, rgba(37, 43, 58, .24));display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #e9edfa)}:host .modal-backdrop .modal .modal-content{flex:1;padding:24px;display:flex;flex-flow:column nowrap;font-size:var(--devui-font-size, 12px);color:var(--devui-aide-text, #71757f)}\n"] }]
119
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { title: [{
133
+ args: [{ selector: 'rs-modal', template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\" [ngStyle]=\"resolveModalPosition()\">\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\n <div class=\"modal-title\">{{title}}</div>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n </div>\n <div class=\"modal-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"modal-footer\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: footerTemplateContext}\"></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-length-fullscreen-overlay, 0 10px 24px 0) var(--devui-shadow, rgba(37, 43, 58, .24));display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #e9edfa)}:host .modal-backdrop .modal .modal-content{flex:1;overflow:auto;padding:24px;display:flex;flex-flow:column nowrap;font-size:var(--devui-font-size, 12px);color:var(--devui-aide-text, #71757f)}:host .modal-backdrop .modal .modal-footer{flex:none}\n"] }]
134
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { title: [{
120
135
  type: Input
121
136
  }], size: [{
122
137
  type: Input
@@ -127,11 +142,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
127
142
  type: Input
128
143
  }], contentTemplateContext: [{
129
144
  type: Input
145
+ }], footerTemplate: [{
146
+ type: Input
147
+ }], footerTemplateContext: [{
148
+ type: Input
130
149
  }], onMouseup: [{
131
150
  type: HostListener,
132
151
  args: ['document:mouseup', ['$event']]
133
152
  }], onMousemove: [{
134
153
  type: HostListener,
135
154
  args: ['document:mousemove', ['$event']]
155
+ }], onWindowResize: [{
156
+ type: HostListener,
157
+ args: ['window:resize', ['$event']]
136
158
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFrQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQU9wSCxNQUFNLE9BQU8sY0FBYztJQWN6QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBWmpDLFNBQUksR0FBaUMsU0FBUyxDQUFDO1FBQ3hELFdBQU0sR0FBVyxHQUFHLENBQUM7UUFHckIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsY0FBUyxHQUFHLENBQUMsQ0FBQztJQU9kLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztZQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN4RCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN4RCxJQUFJLENBQUMsZUFBZSxD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T0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQyxDQUFDOzsyR0E1SFUsY0FBYzsrRkFBZCxjQUFjLHVaQ1AzQiwyZ0JBWUE7MkZETGEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxVQUFVO2lHQUtYLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRThCLGVBQWU7c0JBQWxELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFNbEMsZUFBZTtzQkFEZCxLQUFLO2dCQUdOLHNCQUFzQjtzQkFEckIsS0FBSztnQkEyRk4sU0FBUztzQkFEUixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU01QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSBzaXplOiAnZGVmYXVsdCcgfCAnbGFyZ2UnIHwgJ2Z1bGwnID0gJ2RlZmF1bHQnO1xuICBfd2lkdGg6IG51bWJlciA9IDQ4MDtcbiAgQFZpZXdDaGlsZCgnbW9kYWwnLCB7c3RhdGljOiB0cnVlfSkgbW9kYWxFbGVtZW50UmVmITogRWxlbWVudFJlZjtcbiAgbW92ZUhhbmRsZUVsITogSFRNTEVsZW1lbnQ7XG4gIG1vdmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG9wU3RhcnQgPSAwO1xuICBsZWZ0U3RhcnQgPSAwO1xuICBASW5wdXQoKVxuICBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKVxuICBjb250ZW50VGVtcGxhdGVDb250ZXh0OiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5zaXplID09PSAnZnVsbCcpIHtcbiAgICAgIHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gJzBweCc7XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzBweCc7XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmJvdHRvbSA9ICcwcHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gJzBweCc7XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpbiA9ICcycHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5ib3hTaGFkb3cgPSAnbm9uZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnNpemUgPT09ICdsYXJnZScpIHtcbiAgICAgICAgdGhpcy5fd2lkdGggPSA5NjA7XG4gICAgICB9XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gdGhpcy5fd2lkdGggKyAncHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSAnNDBweCc7XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPVxuICAgICAgICAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCAtIHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIC8gMiArICdweCc7XG4gICAgICB0aGlzLm1vdmVIYW5kbGVFbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1oZWFkZXInKTtcbiAgICAgIHRoaXMubW92ZUhhbmRsZUVsLnN0eWxlLmN1cnNvciA9ICdtb3ZlJztcbiAgICB9XG4gIH1cblxuICBzaG93KCkge1xuICAgIC8vIOiLpeWtmOWcqOWkmuWxguaooeaAgeahhu+8jOS7heS/neeVmeacgOS4iuWxgumBrue9qeminOiJsu+8jOS4i+WxgumBrue9qeiuvue9ruS4uumAj+aYjlxuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGNvbnN0IG5vZGVOYW1lID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWU7XG4gICAgY29uc3QgbW9kYWxzID0gcGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKG5vZGVOYW1lKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vZGFscy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgPT09IG1vZGFscy5sZW5ndGggLSAxKSB7XG4gICAgICAgIG1vZGFsc1tpXS5xdWVyeVNlbGVjdG9yKCcubW9kYWwtYmFja2Ryb3AnKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgzNywgNDMsIDU4LCAwLjA1KSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb2RhbHNbaV0ucXVlcnlTZWxlY3RvcignLm1vZGFsLWJhY2tkcm9wJykuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JnYmEoMzcsIDQzLCA1OCwgMCknO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgLy8g5Zyoc2VydmljZeS4remHjeWGmVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8g6Iul5a2Y5Zyo5aSa5bGC5qih5oCB5qGG77yM5LiL5LiA5bGC6YGu572p6K6+572u5Li65LiN6YCP5piOXG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZTtcbiAgICBjb25zdCBuZXh0TW9kYWwgPSBwYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3Iobm9kZU5hbWUgKyAnOm50aC1sYXN0LWNoaWxkKDIpJyk7XG4gICAgaWYgKG5leHRNb2RhbCkge1xuICAgICAgbmV4dE1vZGFsLnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1iYWNrZHJvcCcpLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDM3LCA0MywgNTgsIDAuMDUpJztcbiAgICB9XG4gIH1cblxuICByZXNvbHZlTW9kYWxCYWNrZHJvcFBvc2l0aW9uKCkge1xuICAgIHJldHVybiB7XG4gICAgICBcIndpZHRoXCI6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggKyAncHgnLFxuICAgICAgXCJoZWlnaHRcIjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnLFxuICAgICAgXCJ0b3BcIjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRUb3AgKyAncHgnLFxuICAgICAgXCJsZWZ0XCI6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0TGVmdCArICdweCcsXG4gICAgfTtcbiAgfVxuXG4gIG9uTW91c2Vkb3duKCRldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICgkZXZlbnQuYnV0dG9uID09PSAyIHx8ICF0aGlzLmNoZWNrSGFuZGxlVGFyZ2V0KCRldmVudC50YXJnZXQsIHRoaXMubW92ZUhhbmRsZUVsKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1vdmFibGUgPSB0cnVlO1xuICAgIHRoaXMudG9wU3RhcnQgPSAkZXZlbnQuY2xpZW50WSAtIHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wLnJlcGxhY2UoJ3B4JywgJycpO1xuICAgIHRoaXMubGVmdFN0YXJ0ID0gJGV2ZW50LmNsaWVudFggLSB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQucmVwbGFjZSgncHgnLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSGFuZGxlVGFyZ2V0KHRhcmdldDogYW55LCBlbGVtZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRhcmdldCA9PT0gZWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZvciAobGV0IGNoaWxkIGluIGVsZW1lbnQuY2hpbGRyZW4pIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWxlbWVudC5jaGlsZHJlbiwgY2hpbGQpKSB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrSGFuZGxlVGFyZ2V0KHRhcmdldCwgZWxlbWVudC5jaGlsZHJlbltjaGlsZF0pKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pXG4gIG9uTW91c2V1cCgpIHtcbiAgICB0aGlzLm1vdmFibGUgPSBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIG9uTW91c2Vtb3ZlKCRldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5tb3ZhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBsZXQgY3VycmVudFRvcCA9ICRldmVudC5jbGllbnRZIC0gdGhpcy50b3BTdGFydDtcbiAgICBsZXQgY3VycmVudExlZnQgPSAkZXZlbnQuY2xpZW50WCAtIHRoaXMubGVmdFN0YXJ0O1xuICAgIGN1cnJlbnRUb3AgPSBjdXJyZW50VG9wIDwgMCA/IDAgOiBjdXJyZW50VG9wO1xuICAgIGNvbnN0IG1heFRvcCA9IGVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRIZWlnaHQgLSBlbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICBjdXJyZW50VG9wID0gY3VycmVudFRvcCA+IG1heFRvcCA/IG1heFRvcCA6IGN1cnJlbnRUb3A7XG4gICAgY3VycmVudExlZnQgPSBjdXJyZW50TGVmdCA8IDAgPyAwIDogY3VycmVudExlZnQ7XG4gICAgY29uc3QgbWF4TGVmdCA9IGVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCAtIGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgY3VycmVudExlZnQgPSBjdXJyZW50TGVmdCA+IG1heExlZnQgPyBtYXhMZWZ0IDogY3VycmVudExlZnQ7XG4gICAgZWxlbWVudC5zdHlsZS50b3AgPSBjdXJyZW50VG9wICsgJ3B4JztcbiAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSBjdXJyZW50TGVmdCArICdweCc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1iYWNrZHJvcFwiIFtuZ1N0eWxlXT1cInJlc29sdmVNb2RhbEJhY2tkcm9wUG9zaXRpb24oKVwiPlxuICA8ZGl2ICNtb2RhbCBjbGFzcz1cIm1vZGFsXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiIChtb3VzZWRvd24pPVwib25Nb3VzZWRvd24oJGV2ZW50KVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgICA8aSBjbGFzcz1cImljb24tY2xvc2VcIiAoY2xpY2spPVwiaGlkZSgpXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY29udGVudFRlbXBsYXRlQ29udGV4dH1cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUlMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7O0FBT3ZCLE1BQU0sT0FBTyxjQUFjO0lBa0J6QixZQUFvQixVQUFzQixFQUFVLGlCQUFvQztRQUFwRSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWhCL0UsU0FBSSxHQUFpQyxTQUFTLENBQUM7UUFDeEQsV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUdyQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixjQUFTLEdBQUcsQ0FBQyxDQUFDO0lBV2QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1lBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FB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QUFLO2dCQUdOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkF1R04sU0FBUztzQkFEUixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU01QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBcUI5QyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpemU6ICdkZWZhdWx0JyB8ICdsYXJnZScgfCAnZnVsbCcgPSAnZGVmYXVsdCc7XG4gIF93aWR0aDogbnVtYmVyID0gNDgwO1xuICBAVmlld0NoaWxkKCdtb2RhbCcsIHtzdGF0aWM6IHRydWV9KSBtb2RhbEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmO1xuICBtb3ZlSGFuZGxlRWwhOiBIVE1MRWxlbWVudDtcbiAgbW92YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICB0b3BTdGFydCA9IDA7XG4gIGxlZnRTdGFydCA9IDA7XG4gIEBJbnB1dCgpXG4gIGNvbnRlbnRUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpXG4gIGNvbnRlbnRUZW1wbGF0ZUNvbnRleHQ6IGFueTtcbiAgQElucHV0KClcbiAgZm9vdGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKVxuICBmb290ZXJUZW1wbGF0ZUNvbnRleHQ6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5zaXplID09PSAnZnVsbCcpIHtcbiAgICAgIHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gJzBweCc7XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzBweCc7XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmJvdHRvbSA9ICcwcHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gJzBweCc7XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpbiA9ICcycHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5ib3hTaGFkb3cgPSAnbm9uZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnNpemUgPT09ICdsYXJnZScpIHtcbiAgICAgICAgdGhpcy5fd2lkdGggPSA5NjA7XG4gICAgICB9XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gdGhpcy5fd2lkdGggKyAncHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSAnMjRweCc7XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPVxuICAgICAgICAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCAtIHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIC8gMiArICdweCc7XG4gICAgICB0aGlzLm1vdmVIYW5kbGVFbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1oZWFkZXInKTtcbiAgICAgIHRoaXMubW92ZUhhbmRsZUVsLnN0eWxlLmN1cnNvciA9ICdtb3ZlJztcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgPiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldEhlaWdodCAtIDQ4KSB7XG4gICAgICAgIHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRIZWlnaHQgLSA0OCArICdweCc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzaG93KCkge1xuICAgIC8vIOiLpeWtmOWcqOWkmuWxguaooeaAgeahhu+8jOS7heS/neeVmeacgOS4iuWxgumBrue9qeminOiJsu+8jOS4i+WxgumBrue9qeiuvue9ruS4uumAj+aYjlxuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGNvbnN0IG5vZGVOYW1lID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWU7XG4gICAgY29uc3QgbW9kYWxzID0gcGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKG5vZGVOYW1lKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vZGFscy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgPT09IG1vZGFscy5sZW5ndGggLSAxKSB7XG4gICAgICAgIG1vZGFsc1tpXS5xdWVyeVNlbGVjdG9yKCcubW9kYWwtYmFja2Ryb3AnKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgzNywgNDMsIDU4LCAwLjA1KSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb2RhbHNbaV0ucXVlcnlTZWxlY3RvcignLm1vZGFsLWJhY2tkcm9wJykuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JnYmEoMzcsIDQzLCA1OCwgMCknO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgLy8g5Zyoc2VydmljZeS4remHjeWGmVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8g6Iul5a2Y5Zyo5aSa5bGC5qih5oCB5qGG77yM5LiL5LiA5bGC6YGu572p6K6+572u5Li65LiN6YCP5piOXG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZTtcbiAgICBjb25zdCBuZXh0TW9kYWwgPSBwYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3Iobm9kZU5hbWUgKyAnOm50aC1sYXN0LWNoaWxkKDIpJyk7XG4gICAgaWYgKG5leHRNb2RhbCkge1xuICAgICAgbmV4dE1vZGFsLnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1iYWNrZHJvcCcpLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDM3LCA0MywgNTgsIDAuMDUpJztcbiAgICB9XG4gIH1cblxuICByZXNvbHZlTW9kYWxCYWNrZHJvcFBvc2l0aW9uKCkge1xuICAgIHJldHVybiB7XG4gICAgICBcIndpZHRoXCI6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggKyAncHgnLFxuICAgICAgXCJoZWlnaHRcIjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnLFxuICAgICAgXCJ0b3BcIjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRUb3AgKyAncHgnLFxuICAgICAgXCJsZWZ0XCI6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0TGVmdCArICdweCcsXG4gICAgfTtcbiAgfVxuXG4gIHJlc29sdmVNb2RhbFBvc2l0aW9uKCkge1xuICAgIHJldHVybiB7XG4gICAgICBcInRvcFwiOiAnMjRweCcsXG4gICAgICBcImxlZnRcIjogKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggLSB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSAvIDIgKyAncHgnLFxuICAgIH07XG4gIH1cblxuICBvbk1vdXNlZG93bigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50LmJ1dHRvbiA9PT0gMiB8fCAhdGhpcy5jaGVja0hhbmRsZVRhcmdldCgkZXZlbnQudGFyZ2V0LCB0aGlzLm1vdmVIYW5kbGVFbCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tb3ZhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnRvcFN0YXJ0ID0gJGV2ZW50LmNsaWVudFkgLSB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcC5yZXBsYWNlKCdweCcsICcnKTtcbiAgICB0aGlzLmxlZnRTdGFydCA9ICRldmVudC5jbGllbnRYIC0gdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0LnJlcGxhY2UoJ3B4JywgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0hhbmRsZVRhcmdldCh0YXJnZXQ6IGFueSwgZWxlbWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0YXJnZXQgPT09IGVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmb3IgKGxldCBjaGlsZCBpbiBlbGVtZW50LmNoaWxkcmVuKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVsZW1lbnQuY2hpbGRyZW4sIGNoaWxkKSkge1xuICAgICAgICBpZiAodGhpcy5jaGVja0hhbmRsZVRhcmdldCh0YXJnZXQsIGVsZW1lbnQuY2hpbGRyZW5bY2hpbGRdKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNldXAnLCBbJyRldmVudCddKVxuICBvbk1vdXNldXAoKSB7XG4gICAgdGhpcy5tb3ZhYmxlID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKVxuICBvbk1vdXNlbW92ZSgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMubW92YWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgbGV0IGN1cnJlbnRUb3AgPSAkZXZlbnQuY2xpZW50WSAtIHRoaXMudG9wU3RhcnQ7XG4gICAgbGV0IGN1cnJlbnRMZWZ0ID0gJGV2ZW50LmNsaWVudFggLSB0aGlzLmxlZnRTdGFydDtcbiAgICBjdXJyZW50VG9wID0gY3VycmVudFRvcCA8IDAgPyAwIDogY3VycmVudFRvcDtcbiAgICBjb25zdCBtYXhUb3AgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgY3VycmVudFRvcCA9IGN1cnJlbnRUb3AgPiBtYXhUb3AgPyBtYXhUb3AgOiBjdXJyZW50VG9wO1xuICAgIGN1cnJlbnRMZWZ0ID0gY3VycmVudExlZnQgPCAwID8gMCA6IGN1cnJlbnRMZWZ0O1xuICAgIGNvbnN0IG1heExlZnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggLSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGN1cnJlbnRMZWZ0ID0gY3VycmVudExlZnQgPiBtYXhMZWZ0ID8gbWF4TGVmdCA6IGN1cnJlbnRMZWZ0O1xuICAgIGVsZW1lbnQuc3R5bGUudG9wID0gY3VycmVudFRvcCArICdweCc7XG4gICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gY3VycmVudExlZnQgKyAncHgnO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uV2luZG93UmVzaXplKCkge1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtYmFja2Ryb3BcIiBbbmdTdHlsZV09XCJyZXNvbHZlTW9kYWxCYWNrZHJvcFBvc2l0aW9uKClcIj5cbiAgPGRpdiAjbW9kYWwgY2xhc3M9XCJtb2RhbFwiIFtuZ1N0eWxlXT1cInJlc29sdmVNb2RhbFBvc2l0aW9uKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCIgKG1vdXNlZG93bik9XCJvbk1vdXNlZG93bigkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtdGl0bGVcIj57e3RpdGxlfX08L2Rpdj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbi1jbG9zZVwiIChjbGljayk9XCJoaWRlKClcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBjb250ZW50VGVtcGxhdGVDb250ZXh0fVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImZvb3RlclRlbXBsYXRlXCIgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGZvb3RlclRlbXBsYXRlQ29udGV4dH1cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -4,15 +4,17 @@ import * as i0 from "@angular/core";
4
4
  export class ModalService {
5
5
  constructor() {
6
6
  }
7
- open(viewContainerRef, title, size = 'default', contentTemplate, contentTemplateContext) {
7
+ open(viewContainerRef, title, size = 'default', contentTemplate, contentTemplateContext, footerTemplate, footerTemplateContext) {
8
8
  const modalRef = viewContainerRef.createComponent(ModalComponent);
9
9
  modalRef.instance.hide = () => {
10
10
  modalRef.hostView.destroy();
11
11
  };
12
12
  modalRef.instance.title = title;
13
- modalRef.instance.contentTemplate = contentTemplate;
14
13
  modalRef.instance.size = size;
14
+ modalRef.instance.contentTemplate = contentTemplate;
15
15
  modalRef.instance.contentTemplateContext = contentTemplateContext;
16
+ modalRef.instance.footerTemplate = footerTemplate;
17
+ modalRef.instance.footerTemplateContext = footerTemplateContext;
16
18
  modalRef.instance.show();
17
19
  return modalRef.instance;
18
20
  }
@@ -25,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
25
27
  providedIn: 'root'
26
28
  }]
27
29
  }], ctorParameters: function () { return []; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL21vZGFsL21vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBZ0MsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQUtqRCxNQUFNLE9BQU8sWUFBWTtJQUN2QjtJQUNBLENBQUM7SUFFRCxJQUFJLENBQUMsZ0JBQWtDLEVBQ2xDLEtBQWEsRUFBRSxPQUFxQyxTQUFTLEVBQzdELGVBQWlDLEVBQ2pDLHNCQUEyQjtRQUM5QixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFO1lBQzVCLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFBO1FBQ0QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUNwRCxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDOUIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztRQUNsRSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUMzQixDQUFDOzt5R0FsQlUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9tb2RhbC5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIG9wZW4odmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICB0aXRsZTogc3RyaW5nLCBzaXplOiAnZGVmYXVsdCcgfCAnbGFyZ2UnIHwgJ2Z1bGwnID0gJ2RlZmF1bHQnLFxuICAgICAgIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICBjb250ZW50VGVtcGxhdGVDb250ZXh0OiBhbnkpIHtcbiAgICBjb25zdCBtb2RhbFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KE1vZGFsQ29tcG9uZW50KTtcbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5oaWRlID0gKCkgPT4ge1xuICAgICAgbW9kYWxSZWYuaG9zdFZpZXcuZGVzdHJveSgpO1xuICAgIH1cbiAgICBtb2RhbFJlZi5pbnN0YW5jZS50aXRsZSA9IHRpdGxlO1xuICAgIG1vZGFsUmVmLmluc3RhbmNlLmNvbnRlbnRUZW1wbGF0ZSA9IGNvbnRlbnRUZW1wbGF0ZTtcbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5zaXplID0gc2l6ZTtcbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5jb250ZW50VGVtcGxhdGVDb250ZXh0ID0gY29udGVudFRlbXBsYXRlQ29udGV4dDtcbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5zaG93KCk7XG4gICAgcmV0dXJuIG1vZGFsUmVmLmluc3RhbmNlO1xuICB9XG59XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL21vZGFsL21vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBZ0MsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQUtqRCxNQUFNLE9BQU8sWUFBWTtJQUN2QjtJQUNBLENBQUM7SUFFRCxJQUFJLENBQUMsZ0JBQWtDLEVBQ2xDLEtBQWEsRUFBRSxPQUFxQyxTQUFTLEVBQzdELGVBQWlDLEVBQ2pDLHNCQUEyQixFQUMzQixjQUFpQyxFQUNqQyxxQkFBMkI7UUFDOUIsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xFLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtZQUM1QixRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQTtRQUNELFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNoQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDOUIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3BELFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFDbEUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ2xELFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDaEUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDM0IsQ0FBQzs7eUdBdEJVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBvcGVuKHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgdGl0bGU6IHN0cmluZywgc2l6ZTogJ2RlZmF1bHQnIHwgJ2xhcmdlJyB8ICdmdWxsJyA9ICdkZWZhdWx0JyxcbiAgICAgICBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgY29udGVudFRlbXBsYXRlQ29udGV4dDogYW55LFxuICAgICAgIGZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICBmb290ZXJUZW1wbGF0ZUNvbnRleHQ/OiBhbnkpIHtcbiAgICBjb25zdCBtb2RhbFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KE1vZGFsQ29tcG9uZW50KTtcbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5oaWRlID0gKCkgPT4ge1xuICAgICAgbW9kYWxSZWYuaG9zdFZpZXcuZGVzdHJveSgpO1xuICAgIH1cbiAgICBtb2RhbFJlZi5pbnN0YW5jZS50aXRsZSA9IHRpdGxlO1xuICAgIG1vZGFsUmVmLmluc3RhbmNlLnNpemUgPSBzaXplO1xuICAgIG1vZGFsUmVmLmluc3RhbmNlLmNvbnRlbnRUZW1wbGF0ZSA9IGNvbnRlbnRUZW1wbGF0ZTtcbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5jb250ZW50VGVtcGxhdGVDb250ZXh0ID0gY29udGVudFRlbXBsYXRlQ29udGV4dDtcbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5mb290ZXJUZW1wbGF0ZSA9IGZvb3RlclRlbXBsYXRlO1xuICAgIG1vZGFsUmVmLmluc3RhbmNlLmZvb3RlclRlbXBsYXRlQ29udGV4dCA9IGZvb3RlclRlbXBsYXRlQ29udGV4dDtcbiAgICBtb2RhbFJlZi5pbnN0YW5jZS5zaG93KCk7XG4gICAgcmV0dXJuIG1vZGFsUmVmLmluc3RhbmNlO1xuICB9XG59XG4iXX0=
@@ -18,6 +18,7 @@ import * as i5$1 from 'devextreme-angular/core';
18
18
  import * as i2$1 from 'ng-devui/button';
19
19
  import * as i3$1 from 'ng-devui/form';
20
20
  import * as i4$1 from 'ng-devui/text-input';
21
+ import * as i4$2 from 'ng-devui/loading';
21
22
 
22
23
  class DividerLineComponent {
23
24
  get _style() {
@@ -993,24 +994,27 @@ class FormComponent {
993
994
  this.layoutDirection = FormLayout.Vertical;
994
995
  this.formGroup = new UntypedFormGroup({});
995
996
  this.submitCallback = new EventEmitter();
997
+ this.loading = false;
996
998
  }
997
999
  ngOnInit() {
998
1000
  this.service.getFormTemplateConfig(this.tenant, this.className, this.template).subscribe((response) => {
999
1001
  this.config = response.data.template;
1000
1002
  if (this.copyOid || this.oid) {
1003
+ this.loading = true;
1001
1004
  const attributes = Object.keys(this.formGroup.controls);
1002
1005
  this.service.getOne(this.tenant, this.className, this.copyOid || this.oid, attributes).subscribe((response) => {
1003
1006
  if (this.copyOid) {
1004
1007
  delete response.data.oid;
1005
1008
  }
1006
1009
  this.formGroup.patchValue(response.data);
1010
+ this.loading = false;
1007
1011
  });
1008
1012
  }
1009
1013
  });
1010
1014
  }
1011
1015
  submitForm($event) {
1012
1016
  if (!$event.valid) {
1013
- this.submitCallback.emit();
1017
+ this.submitCallback.emit({ success: false });
1014
1018
  return;
1015
1019
  }
1016
1020
  this.service.createOrUpdate(this.tenant, this.className, Object.assign({ oid: this.oid }, this.formGroup.value)).subscribe((response) => {
@@ -1022,10 +1026,10 @@ class FormComponent {
1022
1026
  }
1023
1027
  }
1024
1028
  FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: FormService }], target: i0.ɵɵFactoryTarget.Component });
1025
- FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], ngImport: i0, template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\">\n <ng-container *ngIf=\"config\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.FormDirective, selector: "[dForm]", inputs: ["layout", "labelSize", "labelAlign", "dFeedbackType", "dHasFeedback"], outputs: ["dSubmit"], exportAs: ["dForm"] }, { kind: "directive", type: i3$1.DFormSubmitDirective, selector: "[dFormSubmit]", inputs: ["dFormSubmit", "dFormSubmitData"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["editMode", "config", "formGroup", "tabViewContainerRef"] }] });
1029
+ FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], ngImport: i0, template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\"\n dLoading [loading]=\"loading\">\n <ng-container *ngIf=\"config\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.FormDirective, selector: "[dForm]", inputs: ["layout", "labelSize", "labelAlign", "dFeedbackType", "dHasFeedback"], outputs: ["dSubmit"], exportAs: ["dForm"] }, { kind: "directive", type: i3$1.DFormSubmitDirective, selector: "[dFormSubmit]", inputs: ["dFormSubmit", "dFormSubmitData"] }, { kind: "directive", type: i4$2.LoadingDirective, selector: "[dLoading]", inputs: ["backdrop", "message", "positionType", "showLoading", "view", "zIndex", "loading", "loadingStyle", "loadingTemplateRef"], exportAs: ["dLoading"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["editMode", "config", "formGroup", "tabViewContainerRef"] }] });
1026
1030
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, decorators: [{
1027
1031
  type: Component,
1028
- args: [{ selector: 'rs-form', providers: [FormService], template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\">\n <ng-container *ngIf=\"config\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n" }]
1032
+ args: [{ selector: 'rs-form', providers: [FormService], template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\"\n dLoading [loading]=\"loading\">\n <ng-container *ngIf=\"config\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n" }]
1029
1033
  }], ctorParameters: function () { return [{ type: FormService }]; }, propDecorators: { tenant: [{
1030
1034
  type: Input
1031
1035
  }], className: [{
@@ -1076,8 +1080,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1076
1080
  }] });
1077
1081
 
1078
1082
  class ModalComponent {
1079
- constructor(elementRef) {
1083
+ constructor(elementRef, changeDetectorRef) {
1080
1084
  this.elementRef = elementRef;
1085
+ this.changeDetectorRef = changeDetectorRef;
1081
1086
  this.size = 'default';
1082
1087
  this._width = 480;
1083
1088
  this.movable = false;
@@ -1098,12 +1103,17 @@ class ModalComponent {
1098
1103
  this._width = 960;
1099
1104
  }
1100
1105
  this.modalElementRef.nativeElement.style.width = this._width + 'px';
1101
- this.modalElementRef.nativeElement.style.top = '40px';
1106
+ this.modalElementRef.nativeElement.style.top = '24px';
1102
1107
  this.modalElementRef.nativeElement.style.left =
1103
1108
  (this.elementRef.nativeElement.parentElement.offsetWidth - this.modalElementRef.nativeElement.offsetWidth) / 2 + 'px';
1104
1109
  this.moveHandleEl = this.elementRef.nativeElement.querySelector('.modal-header');
1105
1110
  this.moveHandleEl.style.cursor = 'move';
1106
1111
  }
1112
+ setTimeout(() => {
1113
+ if (this.modalElementRef.nativeElement.offsetHeight > this.elementRef.nativeElement.parentElement.offsetHeight - 48) {
1114
+ this.modalElementRef.nativeElement.style.height = this.elementRef.nativeElement.parentElement.offsetHeight - 48 + 'px';
1115
+ }
1116
+ });
1107
1117
  }
1108
1118
  show() {
1109
1119
  // 若存在多层模态框,仅保留最上层遮罩颜色,下层遮罩设置为透明
@@ -1139,6 +1149,12 @@ class ModalComponent {
1139
1149
  "left": this.elementRef.nativeElement.parentElement.offsetLeft + 'px',
1140
1150
  };
1141
1151
  }
1152
+ resolveModalPosition() {
1153
+ return {
1154
+ "top": '24px',
1155
+ "left": (this.elementRef.nativeElement.parentElement.offsetWidth - this.modalElementRef.nativeElement.offsetWidth) / 2 + 'px',
1156
+ };
1157
+ }
1142
1158
  onMousedown($event) {
1143
1159
  if ($event.button === 2 || !this.checkHandleTarget($event.target, this.moveHandleEl)) {
1144
1160
  return;
@@ -1184,13 +1200,16 @@ class ModalComponent {
1184
1200
  element.style.top = currentTop + 'px';
1185
1201
  element.style.left = currentLeft + 'px';
1186
1202
  }
1203
+ onWindowResize() {
1204
+ this.changeDetectorRef.detectChanges();
1205
+ }
1187
1206
  }
1188
- ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1189
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ModalComponent, selector: "rs-modal", inputs: { title: "title", size: "size", contentTemplate: "contentTemplate", contentTemplateContext: "contentTemplateContext" }, host: { listeners: { "document:mouseup": "onMouseup($event)", "document:mousemove": "onMousemove($event)" } }, viewQueries: [{ propertyName: "modalElementRef", first: true, predicate: ["modal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\">\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\n <div class=\"modal-title\">{{title}}</div>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n </div>\n <div class=\"modal-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-length-fullscreen-overlay, 0 10px 24px 0) var(--devui-shadow, rgba(37, 43, 58, .24));display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #e9edfa)}:host .modal-backdrop .modal .modal-content{flex:1;padding:24px;display:flex;flex-flow:column nowrap;font-size:var(--devui-font-size, 12px);color:var(--devui-aide-text, #71757f)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1207
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1208
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ModalComponent, selector: "rs-modal", inputs: { title: "title", size: "size", contentTemplate: "contentTemplate", contentTemplateContext: "contentTemplateContext", footerTemplate: "footerTemplate", footerTemplateContext: "footerTemplateContext" }, host: { listeners: { "document:mouseup": "onMouseup($event)", "document:mousemove": "onMousemove($event)", "window:resize": "onWindowResize($event)" } }, viewQueries: [{ propertyName: "modalElementRef", first: true, predicate: ["modal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\" [ngStyle]=\"resolveModalPosition()\">\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\n <div class=\"modal-title\">{{title}}</div>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n </div>\n <div class=\"modal-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"modal-footer\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: footerTemplateContext}\"></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-length-fullscreen-overlay, 0 10px 24px 0) var(--devui-shadow, rgba(37, 43, 58, .24));display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #e9edfa)}:host .modal-backdrop .modal .modal-content{flex:1;overflow:auto;padding:24px;display:flex;flex-flow:column nowrap;font-size:var(--devui-font-size, 12px);color:var(--devui-aide-text, #71757f)}:host .modal-backdrop .modal .modal-footer{flex:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1190
1209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, decorators: [{
1191
1210
  type: Component,
1192
- args: [{ selector: 'rs-modal', template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\">\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\n <div class=\"modal-title\">{{title}}</div>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n </div>\n <div class=\"modal-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-length-fullscreen-overlay, 0 10px 24px 0) var(--devui-shadow, rgba(37, 43, 58, .24));display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #e9edfa)}:host .modal-backdrop .modal .modal-content{flex:1;padding:24px;display:flex;flex-flow:column nowrap;font-size:var(--devui-font-size, 12px);color:var(--devui-aide-text, #71757f)}\n"] }]
1193
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { title: [{
1211
+ args: [{ selector: 'rs-modal', template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\" [ngStyle]=\"resolveModalPosition()\">\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\n <div class=\"modal-title\">{{title}}</div>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n </div>\n <div class=\"modal-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div *ngIf=\"footerTemplate\" class=\"modal-footer\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: footerTemplateContext}\"></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-length-fullscreen-overlay, 0 10px 24px 0) var(--devui-shadow, rgba(37, 43, 58, .24));display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #e9edfa)}:host .modal-backdrop .modal .modal-content{flex:1;overflow:auto;padding:24px;display:flex;flex-flow:column nowrap;font-size:var(--devui-font-size, 12px);color:var(--devui-aide-text, #71757f)}:host .modal-backdrop .modal .modal-footer{flex:none}\n"] }]
1212
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { title: [{
1194
1213
  type: Input
1195
1214
  }], size: [{
1196
1215
  type: Input
@@ -1201,12 +1220,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1201
1220
  type: Input
1202
1221
  }], contentTemplateContext: [{
1203
1222
  type: Input
1223
+ }], footerTemplate: [{
1224
+ type: Input
1225
+ }], footerTemplateContext: [{
1226
+ type: Input
1204
1227
  }], onMouseup: [{
1205
1228
  type: HostListener,
1206
1229
  args: ['document:mouseup', ['$event']]
1207
1230
  }], onMousemove: [{
1208
1231
  type: HostListener,
1209
1232
  args: ['document:mousemove', ['$event']]
1233
+ }], onWindowResize: [{
1234
+ type: HostListener,
1235
+ args: ['window:resize', ['$event']]
1210
1236
  }] } });
1211
1237
 
1212
1238
  class ModalModule {
@@ -1232,15 +1258,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1232
1258
  class ModalService {
1233
1259
  constructor() {
1234
1260
  }
1235
- open(viewContainerRef, title, size = 'default', contentTemplate, contentTemplateContext) {
1261
+ open(viewContainerRef, title, size = 'default', contentTemplate, contentTemplateContext, footerTemplate, footerTemplateContext) {
1236
1262
  const modalRef = viewContainerRef.createComponent(ModalComponent);
1237
1263
  modalRef.instance.hide = () => {
1238
1264
  modalRef.hostView.destroy();
1239
1265
  };
1240
1266
  modalRef.instance.title = title;
1241
- modalRef.instance.contentTemplate = contentTemplate;
1242
1267
  modalRef.instance.size = size;
1268
+ modalRef.instance.contentTemplate = contentTemplate;
1243
1269
  modalRef.instance.contentTemplateContext = contentTemplateContext;
1270
+ modalRef.instance.footerTemplate = footerTemplate;
1271
+ modalRef.instance.footerTemplateContext = footerTemplateContext;
1244
1272
  modalRef.instance.show();
1245
1273
  return modalRef.instance;
1246
1274
  }