ngx-rs-ant 0.0.2 → 0.0.4

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 CHANGED
@@ -1,27 +1,27 @@
1
- # RsAnt
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.3.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project rs-ant` to generate a new component. You can also
8
- use `ng generate directive|pipe|service|class|guard|interface|enum|module --project rs-ant`.
9
- > Note: Don't forget to add `--project rs-ant` or else it will be added to the default project in your `angular.json`
10
- > file.
11
-
12
- ## Build
13
-
14
- Run `ng build rs-ant` to build the project. The build artifacts will be stored in the `dist/` directory.
15
-
16
- ## Publishing
17
-
18
- After building your library with `ng build rs-ant`, go to the dist folder `cd dist/rs-ant` and run `npm publish`.
19
-
20
- ## Running unit tests
21
-
22
- Run `ng test rs-ant` to execute the unit tests via [Karma](https://karma-runner.github.io).
23
-
24
- ## Further help
25
-
26
- To get more help on the Angular CLI use `ng help` or go check out
27
- the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # RsAnt
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.3.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project rs-ant` to generate a new component. You can also
8
+ use `ng generate directive|pipe|service|class|guard|interface|enum|module --project rs-ant`.
9
+ > Note: Don't forget to add `--project rs-ant` or else it will be added to the default project in your `angular.json`
10
+ > file.
11
+
12
+ ## Build
13
+
14
+ Run `ng build rs-ant` to build the project. The build artifacts will be stored in the `dist/` directory.
15
+
16
+ ## Publishing
17
+
18
+ After building your library with `ng build rs-ant`, go to the dist folder `cd dist/rs-ant` and run `npm publish`.
19
+
20
+ ## Running unit tests
21
+
22
+ Run `ng test rs-ant` to execute the unit tests via [Karma](https://karma-runner.github.io).
23
+
24
+ ## Further help
25
+
26
+ To get more help on the Angular CLI use `ng help` or go check out
27
+ the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,138 @@
1
+ import { Component, HostListener, Input, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "ng-devui/card";
4
+ import * as i2 from "@angular/common";
5
+ export class ModalComponent {
6
+ constructor(elementRef) {
7
+ this.elementRef = elementRef;
8
+ this.size = 'default';
9
+ this._width = 480;
10
+ this.movable = false;
11
+ this.topStart = 0;
12
+ this.leftStart = 0;
13
+ }
14
+ ngOnInit() {
15
+ if (this.size === 'full') {
16
+ this.modalElementRef.nativeElement.style.top = '0px';
17
+ this.modalElementRef.nativeElement.style.right = '0px';
18
+ this.modalElementRef.nativeElement.style.bottom = '0px';
19
+ this.modalElementRef.nativeElement.style.left = '0px';
20
+ this.modalElementRef.nativeElement.style.margin = '2px';
21
+ this.modalElementRef.nativeElement.style.boxShadow = 'none';
22
+ }
23
+ else {
24
+ if (this.size === 'large') {
25
+ this._width = 960;
26
+ }
27
+ this.modalElementRef.nativeElement.style.width = this._width + 'px';
28
+ this.modalElementRef.nativeElement.style.top = '40px';
29
+ this.modalElementRef.nativeElement.style.left =
30
+ (this.elementRef.nativeElement.parentElement.offsetWidth - this.modalElementRef.nativeElement.offsetWidth) / 2 + 'px';
31
+ this.moveHandleEl = this.elementRef.nativeElement.querySelector('d-card-header');
32
+ this.moveHandleEl.style.cursor = 'move';
33
+ }
34
+ }
35
+ show() {
36
+ // 若存在多层模态框,仅保留最上层遮罩颜色,下层遮罩设置为透明
37
+ const parentElement = this.elementRef.nativeElement.parentElement;
38
+ const nodeName = this.elementRef.nativeElement.nodeName;
39
+ const modals = parentElement.querySelectorAll(nodeName);
40
+ for (let i = 0; i < modals.length; i++) {
41
+ if (i === modals.length - 1) {
42
+ modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';
43
+ }
44
+ else {
45
+ modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0)';
46
+ }
47
+ }
48
+ }
49
+ hide() {
50
+ // 在service中重写
51
+ }
52
+ ngOnDestroy() {
53
+ // 若存在多层模态框,下一层遮罩设置为不透明
54
+ const parentElement = this.elementRef.nativeElement.parentElement;
55
+ const nodeName = this.elementRef.nativeElement.nodeName;
56
+ const nextModal = parentElement.querySelector(nodeName + ':nth-last-child(2)');
57
+ if (nextModal) {
58
+ nextModal.querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';
59
+ }
60
+ }
61
+ resolveModalBackdropPosition() {
62
+ return {
63
+ "width": this.elementRef.nativeElement.parentElement.offsetWidth + 'px',
64
+ "height": this.elementRef.nativeElement.parentElement.offsetHeight + 'px',
65
+ "top": this.elementRef.nativeElement.parentElement.offsetTop + 'px',
66
+ "left": this.elementRef.nativeElement.parentElement.offsetLeft + 'px',
67
+ };
68
+ }
69
+ onMousedown($event) {
70
+ if ($event.button === 2 || !this.checkHandleTarget($event.target, this.moveHandleEl)) {
71
+ return;
72
+ }
73
+ this.movable = true;
74
+ this.topStart = $event.clientY - this.modalElementRef.nativeElement.style.top.replace('px', '');
75
+ this.leftStart = $event.clientX - this.modalElementRef.nativeElement.style.left.replace('px', '');
76
+ }
77
+ checkHandleTarget(target, element) {
78
+ if (!element) {
79
+ return false;
80
+ }
81
+ if (target === element) {
82
+ return true;
83
+ }
84
+ for (let child in element.children) {
85
+ if (Object.prototype.hasOwnProperty.call(element.children, child)) {
86
+ if (this.checkHandleTarget(target, element.children[child])) {
87
+ return true;
88
+ }
89
+ }
90
+ }
91
+ return false;
92
+ }
93
+ onMouseup() {
94
+ this.movable = false;
95
+ }
96
+ onMousemove($event) {
97
+ if (!this.movable) {
98
+ return;
99
+ }
100
+ $event.stopPropagation();
101
+ $event.preventDefault();
102
+ const element = this.modalElementRef.nativeElement;
103
+ let currentTop = $event.clientY - this.topStart;
104
+ let currentLeft = $event.clientX - this.leftStart;
105
+ currentTop = currentTop < 0 ? 0 : currentTop;
106
+ const maxTop = element.parentElement.offsetHeight - element.offsetHeight;
107
+ currentTop = currentTop > maxTop ? maxTop : currentTop;
108
+ currentLeft = currentLeft < 0 ? 0 : currentLeft;
109
+ const maxLeft = element.parentElement.offsetWidth - element.offsetWidth;
110
+ currentLeft = currentLeft > maxLeft ? maxLeft : currentLeft;
111
+ element.style.top = currentTop + 'px';
112
+ element.style.left = currentLeft + 'px';
113
+ }
114
+ }
115
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
116
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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 <d-card>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n <d-card-header (mousedown)=\"onMousedown($event)\">\n <d-card-title>{{title}}</d-card-title>\n </d-card-header>\n <d-card-content>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"contentTemplateContext\"></ng-template>\n </d-card-content>\n </d-card>\n </div>\n</div>\n", styles: [".modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}.modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);max-width:100%;background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-fullscreen-overlay, 0 8px 40px 0) var(--devui-shadow, rgba(37, 43, 58, .2))}d-card{height:100%;background-color:var(--devui-base-bg, #ffffff);display:flex;flex-flow:column nowrap}d-card i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}d-card i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #f2f5fc)}d-card d-card-header{border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}d-card d-card-content{flex:auto;display:flex;flex-flow:column}\n"], components: [{ type: i1.CardComponent, selector: "d-card", exportAs: ["dCard"] }, { type: i1.CardHeaderComponent, selector: "d-card-header" }], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.CardTitleDirective, selector: "d-card-title, [dCardTitle]" }, { type: i1.CardContentDirective, selector: "d-card-content, [dCardContent]" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalComponent, decorators: [{
118
+ type: Component,
119
+ args: [{ selector: 'rs-modal', template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\">\n <d-card>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n <d-card-header (mousedown)=\"onMousedown($event)\">\n <d-card-title>{{title}}</d-card-title>\n </d-card-header>\n <d-card-content>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"contentTemplateContext\"></ng-template>\n </d-card-content>\n </d-card>\n </div>\n</div>\n", styles: [".modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}.modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);max-width:100%;background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-fullscreen-overlay, 0 8px 40px 0) var(--devui-shadow, rgba(37, 43, 58, .2))}d-card{height:100%;background-color:var(--devui-base-bg, #ffffff);display:flex;flex-flow:column nowrap}d-card i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}d-card i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #f2f5fc)}d-card d-card-header{border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}d-card d-card-content{flex:auto;display:flex;flex-flow:column}\n"] }]
120
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { title: [{
121
+ type: Input
122
+ }], size: [{
123
+ type: Input
124
+ }], modalElementRef: [{
125
+ type: ViewChild,
126
+ args: ['modal', { static: true }]
127
+ }], contentTemplate: [{
128
+ type: Input
129
+ }], contentTemplateContext: [{
130
+ type: Input
131
+ }], onMouseup: [{
132
+ type: HostListener,
133
+ args: ['document:mouseup', ['$event']]
134
+ }], onMousemove: [{
135
+ type: HostListener,
136
+ args: ['document:mousemove', ['$event']]
137
+ }] } });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcnMtYW50L3NyYy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ycy1hbnQvc3JjL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBa0MsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBT3BILE1BQU0sT0FBTyxjQUFjO0lBY3pCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFaaEMsU0FBSSxHQUFpQyxTQUFTLENBQUM7UUFDeEQsV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUdyQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixjQUFTLEdBQUcsQ0FBQyxDQUFDO0lBT2QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1lBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsYUFB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QUMsS0FBSyxDQUFDLElBQUksR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFDLENBQUM7OzRHQTVIVSxjQUFjO2dHQUFkLGNBQWMsdVpDUDNCLGdpQkFjQTs0RkRQYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVU7aUdBS1gsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFOEIsZUFBZTtzQkFBbEQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQU1sQyxlQUFlO3NCQURkLEtBQUs7Z0JBR04sc0JBQXNCO3NCQURyQixLQUFLO2dCQTJGTixTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTTVDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpemU6ICdkZWZhdWx0JyB8ICdsYXJnZScgfCAnZnVsbCcgPSAnZGVmYXVsdCc7XG4gIF93aWR0aDogbnVtYmVyID0gNDgwO1xuICBAVmlld0NoaWxkKCdtb2RhbCcsIHtzdGF0aWM6IHRydWV9KSBtb2RhbEVsZW1lbnRSZWYhOiBFbGVtZW50UmVmO1xuICBtb3ZlSGFuZGxlRWwhOiBIVE1MRWxlbWVudDtcbiAgbW92YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICB0b3BTdGFydCA9IDA7XG4gIGxlZnRTdGFydCA9IDA7XG4gIEBJbnB1dCgpXG4gIGNvbnRlbnRUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpXG4gIGNvbnRlbnRUZW1wbGF0ZUNvbnRleHQ6IGFueTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGwnKSB7XG4gICAgICB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9ICcwcHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5yaWdodCA9ICcwcHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5ib3R0b20gPSAnMHB4JztcbiAgICAgIHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9ICcwcHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW4gPSAnMnB4JztcbiAgICAgIHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm94U2hhZG93ID0gJ25vbmUnO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5zaXplID09PSAnbGFyZ2UnKSB7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gOTYwO1xuICAgICAgfVxuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IHRoaXMuX3dpZHRoICsgJ3B4JztcbiAgICAgIHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gJzQwcHgnO1xuICAgICAgdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID1cbiAgICAgICAgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggLSB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSAvIDIgKyAncHgnO1xuICAgICAgdGhpcy5tb3ZlSGFuZGxlRWwgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkLWNhcmQtaGVhZGVyJyk7XG4gICAgICB0aGlzLm1vdmVIYW5kbGVFbC5zdHlsZS5jdXJzb3IgPSAnbW92ZSc7XG4gICAgfVxuICB9XG5cbiAgc2hvdygpIHtcbiAgICAvLyDoi6XlrZjlnKjlpJrlsYLmqKHmgIHmoYbvvIzku4Xkv53nlZnmnIDkuIrlsYLpga7nvanpopzoibLvvIzkuIvlsYLpga7nvanorr7nva7kuLrpgI/mmI5cbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICBjb25zdCBub2RlTmFtZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lO1xuICAgIGNvbnN0IG1vZGFscyA9IHBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChub2RlTmFtZSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtb2RhbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpID09PSBtb2RhbHMubGVuZ3RoIC0gMSkge1xuICAgICAgICBtb2RhbHNbaV0ucXVlcnlTZWxlY3RvcignLm1vZGFsLWJhY2tkcm9wJykuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JnYmEoMzcsIDQzLCA1OCwgMC4wNSknO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW9kYWxzW2ldLnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1iYWNrZHJvcCcpLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDM3LCA0MywgNTgsIDApJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoaWRlKCkge1xuICAgIC8vIOWcqHNlcnZpY2XkuK3ph43lhplcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIOiLpeWtmOWcqOWkmuWxguaooeaAgeahhu+8jOS4i+S4gOWxgumBrue9qeiuvue9ruS4uuS4jemAj+aYjlxuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGNvbnN0IG5vZGVOYW1lID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWU7XG4gICAgY29uc3QgbmV4dE1vZGFsID0gcGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKG5vZGVOYW1lICsgJzpudGgtbGFzdC1jaGlsZCgyKScpO1xuICAgIGlmIChuZXh0TW9kYWwpIHtcbiAgICAgIG5leHRNb2RhbC5xdWVyeVNlbGVjdG9yKCcubW9kYWwtYmFja2Ryb3AnKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmdiYSgzNywgNDMsIDU4LCAwLjA1KSc7XG4gICAgfVxuICB9XG5cbiAgcmVzb2x2ZU1vZGFsQmFja2Ryb3BQb3NpdGlvbigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgXCJ3aWR0aFwiOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRoICsgJ3B4JyxcbiAgICAgIFwiaGVpZ2h0XCI6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4JyxcbiAgICAgIFwidG9wXCI6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0VG9wICsgJ3B4JyxcbiAgICAgIFwibGVmdFwiOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldExlZnQgKyAncHgnLFxuICAgIH07XG4gIH1cblxuICBvbk1vdXNlZG93bigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50LmJ1dHRvbiA9PT0gMiB8fCAhdGhpcy5jaGVja0hhbmRsZVRhcmdldCgkZXZlbnQudGFyZ2V0LCB0aGlzLm1vdmVIYW5kbGVFbCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tb3ZhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnRvcFN0YXJ0ID0gJGV2ZW50LmNsaWVudFkgLSB0aGlzLm1vZGFsRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcC5yZXBsYWNlKCdweCcsICcnKTtcbiAgICB0aGlzLmxlZnRTdGFydCA9ICRldmVudC5jbGllbnRYIC0gdGhpcy5tb2RhbEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0LnJlcGxhY2UoJ3B4JywgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0hhbmRsZVRhcmdldCh0YXJnZXQ6IGFueSwgZWxlbWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0YXJnZXQgPT09IGVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmb3IgKGxldCBjaGlsZCBpbiBlbGVtZW50LmNoaWxkcmVuKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVsZW1lbnQuY2hpbGRyZW4sIGNoaWxkKSkge1xuICAgICAgICBpZiAodGhpcy5jaGVja0hhbmRsZVRhcmdldCh0YXJnZXQsIGVsZW1lbnQuY2hpbGRyZW5bY2hpbGRdKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNldXAnLCBbJyRldmVudCddKVxuICBvbk1vdXNldXAoKSB7XG4gICAgdGhpcy5tb3ZhYmxlID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKVxuICBvbk1vdXNlbW92ZSgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMubW92YWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMubW9kYWxFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgbGV0IGN1cnJlbnRUb3AgPSAkZXZlbnQuY2xpZW50WSAtIHRoaXMudG9wU3RhcnQ7XG4gICAgbGV0IGN1cnJlbnRMZWZ0ID0gJGV2ZW50LmNsaWVudFggLSB0aGlzLmxlZnRTdGFydDtcbiAgICBjdXJyZW50VG9wID0gY3VycmVudFRvcCA8IDAgPyAwIDogY3VycmVudFRvcDtcbiAgICBjb25zdCBtYXhUb3AgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgY3VycmVudFRvcCA9IGN1cnJlbnRUb3AgPiBtYXhUb3AgPyBtYXhUb3AgOiBjdXJyZW50VG9wO1xuICAgIGN1cnJlbnRMZWZ0ID0gY3VycmVudExlZnQgPCAwID8gMCA6IGN1cnJlbnRMZWZ0O1xuICAgIGNvbnN0IG1heExlZnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggLSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGN1cnJlbnRMZWZ0ID0gY3VycmVudExlZnQgPiBtYXhMZWZ0ID8gbWF4TGVmdCA6IGN1cnJlbnRMZWZ0O1xuICAgIGVsZW1lbnQuc3R5bGUudG9wID0gY3VycmVudFRvcCArICdweCc7XG4gICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gY3VycmVudExlZnQgKyAncHgnO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtYmFja2Ryb3BcIiBbbmdTdHlsZV09XCJyZXNvbHZlTW9kYWxCYWNrZHJvcFBvc2l0aW9uKClcIj5cbiAgPGRpdiAjbW9kYWwgY2xhc3M9XCJtb2RhbFwiPlxuICAgIDxkLWNhcmQ+XG4gICAgICA8aSBjbGFzcz1cImljb24tY2xvc2VcIiAoY2xpY2spPVwiaGlkZSgpXCI+PC9pPlxuICAgICAgPGQtY2FyZC1oZWFkZXIgKG1vdXNlZG93bik9XCJvbk1vdXNlZG93bigkZXZlbnQpXCI+XG4gICAgICAgIDxkLWNhcmQtdGl0bGU+e3t0aXRsZX19PC9kLWNhcmQtdGl0bGU+XG4gICAgICA8L2QtY2FyZC1oZWFkZXI+XG4gICAgICA8ZC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImNvbnRlbnRUZW1wbGF0ZUNvbnRleHRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9kLWNhcmQtY29udGVudD5cbiAgICA8L2QtY2FyZD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ModalComponent } from './modal.component';
4
+ import { DevUIModule } from 'ng-devui';
5
+ import * as i0 from "@angular/core";
6
+ export class ModalModule {
7
+ }
8
+ ModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ ModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, declarations: [ModalComponent], imports: [CommonModule,
10
+ DevUIModule] });
11
+ ModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, imports: [[
12
+ CommonModule,
13
+ DevUIModule
14
+ ]] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [
19
+ ModalComponent
20
+ ],
21
+ imports: [
22
+ CommonModule,
23
+ DevUIModule
24
+ ],
25
+ exports: []
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcnMtYW50L3NyYy9tb2RhbC9tb2RhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7O0FBYXJDLE1BQU0sT0FBTyxXQUFXOzt5R0FBWCxXQUFXOzBHQUFYLFdBQVcsaUJBUnBCLGNBQWMsYUFHZCxZQUFZO1FBQ1osV0FBVzswR0FJRixXQUFXLFlBTmI7WUFDUCxZQUFZO1lBQ1osV0FBVztTQUNaOzRGQUdVLFdBQVc7a0JBVnZCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVztxQkFDWjtvQkFDRCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge01vZGFsQ29tcG9uZW50fSBmcm9tICcuL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge0RldlVJTW9kdWxlfSBmcm9tICduZy1kZXZ1aSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTW9kYWxDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEZXZVSU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbE1vZHVsZSB7XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ModalComponent } from './modal.component';
3
+ import * as i0 from "@angular/core";
4
+ export class ModalService {
5
+ constructor() {
6
+ }
7
+ open(viewContainerRef, title, size = 'default', contentTemplate, contentTemplateContext) {
8
+ const modalRef = viewContainerRef.createComponent(ModalComponent);
9
+ modalRef.instance.hide = () => {
10
+ modalRef.hostView.destroy();
11
+ };
12
+ modalRef.instance.title = title;
13
+ modalRef.instance.contentTemplate = contentTemplate;
14
+ modalRef.instance.size = size;
15
+ modalRef.instance.contentTemplateContext = contentTemplateContext;
16
+ modalRef.instance.show();
17
+ return modalRef.instance;
18
+ }
19
+ }
20
+ ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
+ ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalService, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalService, decorators: [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root'
26
+ }]
27
+ }], ctorParameters: function () { return []; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3JzLWFudC9zcmMvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBS2pELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCO0lBQ0EsQ0FBQztJQUVELElBQUksQ0FBQyxnQkFBa0MsRUFDbEMsS0FBYSxFQUFFLE9BQXFDLFNBQVMsRUFDN0QsZUFBaUMsRUFDakMsc0JBQTJCO1FBQzlCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7WUFDNUIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUE7UUFDRCxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDaEMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3BELFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUM5QixRQUFRLENBQUMsUUFBUSxDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDO1FBQ2xFLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7OzBHQWxCVSxZQUFZOzhHQUFaLFlBQVksY0FGWCxNQUFNOzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01vZGFsQ29tcG9uZW50fSBmcm9tICcuL21vZGFsLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgb3Blbih2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgIHRpdGxlOiBzdHJpbmcsIHNpemU6ICdkZWZhdWx0JyB8ICdsYXJnZScgfCAnZnVsbCcgPSAnZGVmYXVsdCcsXG4gICAgICAgY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgIGNvbnRlbnRUZW1wbGF0ZUNvbnRleHQ6IGFueSkge1xuICAgIGNvbnN0IG1vZGFsUmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoTW9kYWxDb21wb25lbnQpO1xuICAgIG1vZGFsUmVmLmluc3RhbmNlLmhpZGUgPSAoKSA9PiB7XG4gICAgICBtb2RhbFJlZi5ob3N0Vmlldy5kZXN0cm95KCk7XG4gICAgfVxuICAgIG1vZGFsUmVmLmluc3RhbmNlLnRpdGxlID0gdGl0bGU7XG4gICAgbW9kYWxSZWYuaW5zdGFuY2UuY29udGVudFRlbXBsYXRlID0gY29udGVudFRlbXBsYXRlO1xuICAgIG1vZGFsUmVmLmluc3RhbmNlLnNpemUgPSBzaXplO1xuICAgIG1vZGFsUmVmLmluc3RhbmNlLmNvbnRlbnRUZW1wbGF0ZUNvbnRleHQgPSBjb250ZW50VGVtcGxhdGVDb250ZXh0O1xuICAgIG1vZGFsUmVmLmluc3RhbmNlLnNob3coKTtcbiAgICByZXR1cm4gbW9kYWxSZWYuaW5zdGFuY2U7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * Public API Surface of rs-ant
3
3
  */
4
- export * from './alert/alert.component';
5
- export * from './alert/alert.module';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3JzLWFudC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcnMtYW50XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hbGVydC9hbGVydC5tb2R1bGUnO1xuIl19
4
+ export * from './modal/modal.service';
5
+ export * from './modal/modal.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3JzLWFudC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBycy1hbnRcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGFsL21vZGFsLm1vZHVsZSc7XHJcbiJdfQ==
@@ -1,52 +1,189 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
3
- import * as i1 from 'ng-devui';
4
- import { AlertModule as AlertModule$1 } from 'ng-devui';
2
+ import { Component, Input, ViewChild, HostListener, Injectable, NgModule } from '@angular/core';
3
+ import * as i1 from 'ng-devui/card';
4
+ import * as i2 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import { DevUIModule } from 'ng-devui';
5
7
 
6
- class AlertComponent {
7
- constructor() {
8
- this.type = 'info';
9
- this.dismissTime = 500000;
10
- this.closed = new EventEmitter();
8
+ class ModalComponent {
9
+ constructor(elementRef) {
10
+ this.elementRef = elementRef;
11
+ this.size = 'default';
12
+ this._width = 480;
13
+ this.movable = false;
14
+ this.topStart = 0;
15
+ this.leftStart = 0;
11
16
  }
12
17
  ngOnInit() {
18
+ if (this.size === 'full') {
19
+ this.modalElementRef.nativeElement.style.top = '0px';
20
+ this.modalElementRef.nativeElement.style.right = '0px';
21
+ this.modalElementRef.nativeElement.style.bottom = '0px';
22
+ this.modalElementRef.nativeElement.style.left = '0px';
23
+ this.modalElementRef.nativeElement.style.margin = '2px';
24
+ this.modalElementRef.nativeElement.style.boxShadow = 'none';
25
+ }
26
+ else {
27
+ if (this.size === 'large') {
28
+ this._width = 960;
29
+ }
30
+ this.modalElementRef.nativeElement.style.width = this._width + 'px';
31
+ this.modalElementRef.nativeElement.style.top = '40px';
32
+ this.modalElementRef.nativeElement.style.left =
33
+ (this.elementRef.nativeElement.parentElement.offsetWidth - this.modalElementRef.nativeElement.offsetWidth) / 2 + 'px';
34
+ this.moveHandleEl = this.elementRef.nativeElement.querySelector('d-card-header');
35
+ this.moveHandleEl.style.cursor = 'move';
36
+ }
37
+ }
38
+ show() {
39
+ // 若存在多层模态框,仅保留最上层遮罩颜色,下层遮罩设置为透明
40
+ const parentElement = this.elementRef.nativeElement.parentElement;
41
+ const nodeName = this.elementRef.nativeElement.nodeName;
42
+ const modals = parentElement.querySelectorAll(nodeName);
43
+ for (let i = 0; i < modals.length; i++) {
44
+ if (i === modals.length - 1) {
45
+ modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';
46
+ }
47
+ else {
48
+ modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0)';
49
+ }
50
+ }
51
+ }
52
+ hide() {
53
+ // 在service中重写
54
+ }
55
+ ngOnDestroy() {
56
+ // 若存在多层模态框,下一层遮罩设置为不透明
57
+ const parentElement = this.elementRef.nativeElement.parentElement;
58
+ const nodeName = this.elementRef.nativeElement.nodeName;
59
+ const nextModal = parentElement.querySelector(nodeName + ':nth-last-child(2)');
60
+ if (nextModal) {
61
+ nextModal.querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';
62
+ }
63
+ }
64
+ resolveModalBackdropPosition() {
65
+ return {
66
+ "width": this.elementRef.nativeElement.parentElement.offsetWidth + 'px',
67
+ "height": this.elementRef.nativeElement.parentElement.offsetHeight + 'px',
68
+ "top": this.elementRef.nativeElement.parentElement.offsetTop + 'px',
69
+ "left": this.elementRef.nativeElement.parentElement.offsetLeft + 'px',
70
+ };
13
71
  }
14
- onClose($event) {
15
- this.closed.emit($event);
72
+ onMousedown($event) {
73
+ if ($event.button === 2 || !this.checkHandleTarget($event.target, this.moveHandleEl)) {
74
+ return;
75
+ }
76
+ this.movable = true;
77
+ this.topStart = $event.clientY - this.modalElementRef.nativeElement.style.top.replace('px', '');
78
+ this.leftStart = $event.clientX - this.modalElementRef.nativeElement.style.left.replace('px', '');
79
+ }
80
+ checkHandleTarget(target, element) {
81
+ if (!element) {
82
+ return false;
83
+ }
84
+ if (target === element) {
85
+ return true;
86
+ }
87
+ for (let child in element.children) {
88
+ if (Object.prototype.hasOwnProperty.call(element.children, child)) {
89
+ if (this.checkHandleTarget(target, element.children[child])) {
90
+ return true;
91
+ }
92
+ }
93
+ }
94
+ return false;
95
+ }
96
+ onMouseup() {
97
+ this.movable = false;
98
+ }
99
+ onMousemove($event) {
100
+ if (!this.movable) {
101
+ return;
102
+ }
103
+ $event.stopPropagation();
104
+ $event.preventDefault();
105
+ const element = this.modalElementRef.nativeElement;
106
+ let currentTop = $event.clientY - this.topStart;
107
+ let currentLeft = $event.clientX - this.leftStart;
108
+ currentTop = currentTop < 0 ? 0 : currentTop;
109
+ const maxTop = element.parentElement.offsetHeight - element.offsetHeight;
110
+ currentTop = currentTop > maxTop ? maxTop : currentTop;
111
+ currentLeft = currentLeft < 0 ? 0 : currentLeft;
112
+ const maxLeft = element.parentElement.offsetWidth - element.offsetWidth;
113
+ currentLeft = currentLeft > maxLeft ? maxLeft : currentLeft;
114
+ element.style.top = currentTop + 'px';
115
+ element.style.left = currentLeft + 'px';
16
116
  }
17
117
  }
18
- AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AlertComponent, selector: "rs-alert", inputs: { type: "type", message: "message" }, outputs: { closed: "closed" }, ngImport: i0, template: "<d-alert [type]=\"type\" [dismissTime]=\"dismissTime\" [closeable]=\"true\"\n (closeEvent)=\"onClose($event)\">{{message}}</d-alert>\n", styles: [""], components: [{ type: i1.AlertComponent, selector: "d-alert", inputs: ["type", "cssClass", "closeable", "content", "showIcon", "dismissTime"], outputs: ["closeEvent"] }] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertComponent, decorators: [{
118
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
119
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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 <d-card>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n <d-card-header (mousedown)=\"onMousedown($event)\">\n <d-card-title>{{title}}</d-card-title>\n </d-card-header>\n <d-card-content>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"contentTemplateContext\"></ng-template>\n </d-card-content>\n </d-card>\n </div>\n</div>\n", styles: [".modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}.modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);max-width:100%;background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-fullscreen-overlay, 0 8px 40px 0) var(--devui-shadow, rgba(37, 43, 58, .2))}d-card{height:100%;background-color:var(--devui-base-bg, #ffffff);display:flex;flex-flow:column nowrap}d-card i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}d-card i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #f2f5fc)}d-card d-card-header{border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}d-card d-card-content{flex:auto;display:flex;flex-flow:column}\n"], components: [{ type: i1.CardComponent, selector: "d-card", exportAs: ["dCard"] }, { type: i1.CardHeaderComponent, selector: "d-card-header" }], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.CardTitleDirective, selector: "d-card-title, [dCardTitle]" }, { type: i1.CardContentDirective, selector: "d-card-content, [dCardContent]" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalComponent, decorators: [{
21
121
  type: Component,
22
- args: [{ selector: 'rs-alert', template: "<d-alert [type]=\"type\" [dismissTime]=\"dismissTime\" [closeable]=\"true\"\n (closeEvent)=\"onClose($event)\">{{message}}</d-alert>\n", styles: [""] }]
23
- }], ctorParameters: function () { return []; }, propDecorators: { type: [{
122
+ args: [{ selector: 'rs-modal', template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\">\n <d-card>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n <d-card-header (mousedown)=\"onMousedown($event)\">\n <d-card-title>{{title}}</d-card-title>\n </d-card-header>\n <d-card-content>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"contentTemplateContext\"></ng-template>\n </d-card-content>\n </d-card>\n </div>\n</div>\n", styles: [".modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}.modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);max-width:100%;background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-fullscreen-overlay, 0 8px 40px 0) var(--devui-shadow, rgba(37, 43, 58, .2))}d-card{height:100%;background-color:var(--devui-base-bg, #ffffff);display:flex;flex-flow:column nowrap}d-card i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}d-card i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #f2f5fc)}d-card d-card-header{border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}d-card d-card-content{flex:auto;display:flex;flex-flow:column}\n"] }]
123
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { title: [{
124
+ type: Input
125
+ }], size: [{
24
126
  type: Input
25
- }], message: [{
127
+ }], modalElementRef: [{
128
+ type: ViewChild,
129
+ args: ['modal', { static: true }]
130
+ }], contentTemplate: [{
26
131
  type: Input
27
- }], closed: [{
28
- type: Output
132
+ }], contentTemplateContext: [{
133
+ type: Input
134
+ }], onMouseup: [{
135
+ type: HostListener,
136
+ args: ['document:mouseup', ['$event']]
137
+ }], onMousemove: [{
138
+ type: HostListener,
139
+ args: ['document:mousemove', ['$event']]
29
140
  }] } });
30
141
 
31
- class AlertModule {
142
+ class ModalService {
143
+ constructor() {
144
+ }
145
+ open(viewContainerRef, title, size = 'default', contentTemplate, contentTemplateContext) {
146
+ const modalRef = viewContainerRef.createComponent(ModalComponent);
147
+ modalRef.instance.hide = () => {
148
+ modalRef.hostView.destroy();
149
+ };
150
+ modalRef.instance.title = title;
151
+ modalRef.instance.contentTemplate = contentTemplate;
152
+ modalRef.instance.size = size;
153
+ modalRef.instance.contentTemplateContext = contentTemplateContext;
154
+ modalRef.instance.show();
155
+ return modalRef.instance;
156
+ }
157
+ }
158
+ ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
159
+ ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalService, providedIn: 'root' });
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalService, decorators: [{
161
+ type: Injectable,
162
+ args: [{
163
+ providedIn: 'root'
164
+ }]
165
+ }], ctorParameters: function () { return []; } });
166
+
167
+ class ModalModule {
32
168
  }
33
- AlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
34
- AlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, declarations: [AlertComponent], imports: [AlertModule$1], exports: [AlertComponent] });
35
- AlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, imports: [[
36
- AlertModule$1
169
+ ModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
170
+ ModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, declarations: [ModalComponent], imports: [CommonModule,
171
+ DevUIModule] });
172
+ ModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, imports: [[
173
+ CommonModule,
174
+ DevUIModule
37
175
  ]] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, decorators: [{
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, decorators: [{
39
177
  type: NgModule,
40
178
  args: [{
41
179
  declarations: [
42
- AlertComponent
180
+ ModalComponent
43
181
  ],
44
182
  imports: [
45
- AlertModule$1
183
+ CommonModule,
184
+ DevUIModule
46
185
  ],
47
- exports: [
48
- AlertComponent
49
- ]
186
+ exports: []
50
187
  }]
51
188
  }] });
52
189
 
@@ -58,5 +195,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
58
195
  * Generated bundle index. Do not edit.
59
196
  */
60
197
 
61
- export { AlertComponent, AlertModule };
198
+ export { ModalModule, ModalService };
62
199
  //# sourceMappingURL=ngx-rs-ant.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-rs-ant.mjs","sources":["../../../projects/rs-ant/src/alert/alert.component.ts","../../../projects/rs-ant/src/alert/alert.component.html","../../../projects/rs-ant/src/alert/alert.module.ts","../../../projects/rs-ant/src/public-api.ts","../../../projects/rs-ant/src/ngx-rs-ant.ts"],"sourcesContent":["import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {AlertType} from 'ng-devui/alert/alert.types';\n\n@Component({\n selector: 'rs-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss']\n})\nexport class AlertComponent implements OnInit {\n @Input() type: AlertType = 'info';\n @Input() message?: string;\n dismissTime: number = 500000;\n\n @Output() closed = new EventEmitter<void>();\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n onClose($event: any) {\n this.closed.emit($event);\n }\n}\n","<d-alert [type]=\"type\" [dismissTime]=\"dismissTime\" [closeable]=\"true\"\n (closeEvent)=\"onClose($event)\">{{message}}</d-alert>\n","import {NgModule} from '@angular/core';\nimport {AlertComponent} from './alert.component';\nimport {AlertModule as DevUI_AlertModule} from 'ng-devui';\n\n@NgModule({\n declarations: [\n AlertComponent\n ],\n imports: [\n DevUI_AlertModule\n ],\n exports: [\n AlertComponent\n ]\n})\nexport class AlertModule {\n}\n","/*\n * Public API Surface of rs-ant\n */\n\nexport * from './alert/alert.component';\nexport * from './alert/alert.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["DevUI_AlertModule"],"mappings":";;;;;MAQa,cAAc,CAAA;AAOzB,IAAA,WAAA,GAAA;AANS,QAAA,IAAI,CAAA,IAAA,GAAc,MAAM,CAAC;AAElC,QAAA,IAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAEnB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;KAG3C;IAED,QAAQ,GAAA;KACP;AAED,IAAA,OAAO,CAAC,MAAW,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC1B;;4GAfU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,6HCR3B,gJAEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDMa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,gJAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;0EAKX,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MEEI,WAAW,CAAA;;yGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EATpB,YAAA,EAAA,CAAA,cAAc,CAGd,EAAA,OAAA,EAAA,CAAAA,aAAiB,aAGjB,cAAc,CAAA,EAAA,CAAA,CAAA;AAGL,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EAPb,OAAA,EAAA,CAAA;YACPA,aAAiB;SAClB,CAAA,EAAA,CAAA,CAAA;4FAKU,WAAW,EAAA,UAAA,EAAA,CAAA;kBAXvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACPA,aAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,cAAc;AACf,qBAAA;iBACF,CAAA;;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-rs-ant.mjs","sources":["../../../projects/rs-ant/src/modal/modal.component.ts","../../../projects/rs-ant/src/modal/modal.component.html","../../../projects/rs-ant/src/modal/modal.service.ts","../../../projects/rs-ant/src/modal/modal.module.ts","../../../projects/rs-ant/src/public-api.ts","../../../projects/rs-ant/src/ngx-rs-ant.ts"],"sourcesContent":["import {Component, ElementRef, HostListener, Input, OnDestroy, OnInit, TemplateRef, ViewChild} from '@angular/core';\n\n@Component({\n selector: 'rs-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent implements OnInit, OnDestroy {\n @Input() title!: string;\n @Input() size: 'default' | 'large' | 'full' = 'default';\n _width: number = 480;\n @ViewChild('modal', {static: true}) modalElementRef!: ElementRef;\n moveHandleEl!: HTMLElement;\n movable: boolean = false;\n topStart = 0;\n leftStart = 0;\n @Input()\n contentTemplate!: TemplateRef<any>;\n @Input()\n contentTemplateContext: any;\n\n constructor(public elementRef: ElementRef) {\n }\n\n ngOnInit() {\n if (this.size === 'full') {\n this.modalElementRef.nativeElement.style.top = '0px';\n this.modalElementRef.nativeElement.style.right = '0px';\n this.modalElementRef.nativeElement.style.bottom = '0px';\n this.modalElementRef.nativeElement.style.left = '0px';\n this.modalElementRef.nativeElement.style.margin = '2px';\n this.modalElementRef.nativeElement.style.boxShadow = 'none';\n } else {\n if (this.size === 'large') {\n this._width = 960;\n }\n this.modalElementRef.nativeElement.style.width = this._width + 'px';\n this.modalElementRef.nativeElement.style.top = '40px';\n this.modalElementRef.nativeElement.style.left =\n (this.elementRef.nativeElement.parentElement.offsetWidth - this.modalElementRef.nativeElement.offsetWidth) / 2 + 'px';\n this.moveHandleEl = this.elementRef.nativeElement.querySelector('d-card-header');\n this.moveHandleEl.style.cursor = 'move';\n }\n }\n\n show() {\n // 若存在多层模态框,仅保留最上层遮罩颜色,下层遮罩设置为透明\n const parentElement = this.elementRef.nativeElement.parentElement;\n const nodeName = this.elementRef.nativeElement.nodeName;\n const modals = parentElement.querySelectorAll(nodeName);\n for (let i = 0; i < modals.length; i++) {\n if (i === modals.length - 1) {\n modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';\n } else {\n modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0)';\n }\n }\n }\n\n hide() {\n // 在service中重写\n }\n\n ngOnDestroy(): void {\n // 若存在多层模态框,下一层遮罩设置为不透明\n const parentElement = this.elementRef.nativeElement.parentElement;\n const nodeName = this.elementRef.nativeElement.nodeName;\n const nextModal = parentElement.querySelector(nodeName + ':nth-last-child(2)');\n if (nextModal) {\n nextModal.querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';\n }\n }\n\n resolveModalBackdropPosition() {\n return {\n \"width\": this.elementRef.nativeElement.parentElement.offsetWidth + 'px',\n \"height\": this.elementRef.nativeElement.parentElement.offsetHeight + 'px',\n \"top\": this.elementRef.nativeElement.parentElement.offsetTop + 'px',\n \"left\": this.elementRef.nativeElement.parentElement.offsetLeft + 'px',\n };\n }\n\n onMousedown($event: MouseEvent) {\n if ($event.button === 2 || !this.checkHandleTarget($event.target, this.moveHandleEl)) {\n return;\n }\n this.movable = true;\n this.topStart = $event.clientY - this.modalElementRef.nativeElement.style.top.replace('px', '');\n this.leftStart = $event.clientX - this.modalElementRef.nativeElement.style.left.replace('px', '');\n }\n\n private checkHandleTarget(target: any, element: any): boolean {\n if (!element) {\n return false;\n }\n if (target === element) {\n return true;\n }\n for (let child in element.children) {\n if (Object.prototype.hasOwnProperty.call(element.children, child)) {\n if (this.checkHandleTarget(target, element.children[child])) {\n return true;\n }\n }\n }\n return false;\n }\n\n @HostListener('document:mouseup', ['$event'])\n onMouseup() {\n this.movable = false;\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMousemove($event: MouseEvent) {\n if (!this.movable) {\n return;\n }\n $event.stopPropagation();\n $event.preventDefault();\n const element = this.modalElementRef.nativeElement;\n let currentTop = $event.clientY - this.topStart;\n let currentLeft = $event.clientX - this.leftStart;\n currentTop = currentTop < 0 ? 0 : currentTop;\n const maxTop = element.parentElement.offsetHeight - element.offsetHeight;\n currentTop = currentTop > maxTop ? maxTop : currentTop;\n currentLeft = currentLeft < 0 ? 0 : currentLeft;\n const maxLeft = element.parentElement.offsetWidth - element.offsetWidth;\n currentLeft = currentLeft > maxLeft ? maxLeft : currentLeft;\n element.style.top = currentTop + 'px';\n element.style.left = currentLeft + 'px';\n }\n}\n","<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\">\n <d-card>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n <d-card-header (mousedown)=\"onMousedown($event)\">\n <d-card-title>{{title}}</d-card-title>\n </d-card-header>\n <d-card-content>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"contentTemplateContext\"></ng-template>\n </d-card-content>\n </d-card>\n </div>\n</div>\n","import {Injectable, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {ModalComponent} from './modal.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n constructor() {\n }\n\n open(viewContainerRef: ViewContainerRef,\n title: string, size: 'default' | 'large' | 'full' = 'default',\n contentTemplate: TemplateRef<any>,\n contentTemplateContext: any) {\n const modalRef = viewContainerRef.createComponent(ModalComponent);\n modalRef.instance.hide = () => {\n modalRef.hostView.destroy();\n }\n modalRef.instance.title = title;\n modalRef.instance.contentTemplate = contentTemplate;\n modalRef.instance.size = size;\n modalRef.instance.contentTemplateContext = contentTemplateContext;\n modalRef.instance.show();\n return modalRef.instance;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalComponent} from './modal.component';\nimport {DevUIModule} from 'ng-devui';\n\n\n@NgModule({\n declarations: [\n ModalComponent\n ],\n imports: [\n CommonModule,\n DevUIModule\n ],\n exports: []\n})\nexport class ModalModule {\n}\n","/*\r\n * Public API Surface of rs-ant\r\n */\r\n\r\nexport * from './modal/modal.service';\r\nexport * from './modal/modal.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,52 +1,189 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
3
- import * as i1 from 'ng-devui';
4
- import { AlertModule as AlertModule$1 } from 'ng-devui';
2
+ import { Component, Input, ViewChild, HostListener, Injectable, NgModule } from '@angular/core';
3
+ import * as i1 from 'ng-devui/card';
4
+ import * as i2 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import { DevUIModule } from 'ng-devui';
5
7
 
6
- class AlertComponent {
7
- constructor() {
8
- this.type = 'info';
9
- this.dismissTime = 500000;
10
- this.closed = new EventEmitter();
8
+ class ModalComponent {
9
+ constructor(elementRef) {
10
+ this.elementRef = elementRef;
11
+ this.size = 'default';
12
+ this._width = 480;
13
+ this.movable = false;
14
+ this.topStart = 0;
15
+ this.leftStart = 0;
11
16
  }
12
17
  ngOnInit() {
18
+ if (this.size === 'full') {
19
+ this.modalElementRef.nativeElement.style.top = '0px';
20
+ this.modalElementRef.nativeElement.style.right = '0px';
21
+ this.modalElementRef.nativeElement.style.bottom = '0px';
22
+ this.modalElementRef.nativeElement.style.left = '0px';
23
+ this.modalElementRef.nativeElement.style.margin = '2px';
24
+ this.modalElementRef.nativeElement.style.boxShadow = 'none';
25
+ }
26
+ else {
27
+ if (this.size === 'large') {
28
+ this._width = 960;
29
+ }
30
+ this.modalElementRef.nativeElement.style.width = this._width + 'px';
31
+ this.modalElementRef.nativeElement.style.top = '40px';
32
+ this.modalElementRef.nativeElement.style.left =
33
+ (this.elementRef.nativeElement.parentElement.offsetWidth - this.modalElementRef.nativeElement.offsetWidth) / 2 + 'px';
34
+ this.moveHandleEl = this.elementRef.nativeElement.querySelector('d-card-header');
35
+ this.moveHandleEl.style.cursor = 'move';
36
+ }
37
+ }
38
+ show() {
39
+ // 若存在多层模态框,仅保留最上层遮罩颜色,下层遮罩设置为透明
40
+ const parentElement = this.elementRef.nativeElement.parentElement;
41
+ const nodeName = this.elementRef.nativeElement.nodeName;
42
+ const modals = parentElement.querySelectorAll(nodeName);
43
+ for (let i = 0; i < modals.length; i++) {
44
+ if (i === modals.length - 1) {
45
+ modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';
46
+ }
47
+ else {
48
+ modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0)';
49
+ }
50
+ }
51
+ }
52
+ hide() {
53
+ // 在service中重写
54
+ }
55
+ ngOnDestroy() {
56
+ // 若存在多层模态框,下一层遮罩设置为不透明
57
+ const parentElement = this.elementRef.nativeElement.parentElement;
58
+ const nodeName = this.elementRef.nativeElement.nodeName;
59
+ const nextModal = parentElement.querySelector(nodeName + ':nth-last-child(2)');
60
+ if (nextModal) {
61
+ nextModal.querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';
62
+ }
63
+ }
64
+ resolveModalBackdropPosition() {
65
+ return {
66
+ "width": this.elementRef.nativeElement.parentElement.offsetWidth + 'px',
67
+ "height": this.elementRef.nativeElement.parentElement.offsetHeight + 'px',
68
+ "top": this.elementRef.nativeElement.parentElement.offsetTop + 'px',
69
+ "left": this.elementRef.nativeElement.parentElement.offsetLeft + 'px',
70
+ };
13
71
  }
14
- onClose($event) {
15
- this.closed.emit($event);
72
+ onMousedown($event) {
73
+ if ($event.button === 2 || !this.checkHandleTarget($event.target, this.moveHandleEl)) {
74
+ return;
75
+ }
76
+ this.movable = true;
77
+ this.topStart = $event.clientY - this.modalElementRef.nativeElement.style.top.replace('px', '');
78
+ this.leftStart = $event.clientX - this.modalElementRef.nativeElement.style.left.replace('px', '');
79
+ }
80
+ checkHandleTarget(target, element) {
81
+ if (!element) {
82
+ return false;
83
+ }
84
+ if (target === element) {
85
+ return true;
86
+ }
87
+ for (let child in element.children) {
88
+ if (Object.prototype.hasOwnProperty.call(element.children, child)) {
89
+ if (this.checkHandleTarget(target, element.children[child])) {
90
+ return true;
91
+ }
92
+ }
93
+ }
94
+ return false;
95
+ }
96
+ onMouseup() {
97
+ this.movable = false;
98
+ }
99
+ onMousemove($event) {
100
+ if (!this.movable) {
101
+ return;
102
+ }
103
+ $event.stopPropagation();
104
+ $event.preventDefault();
105
+ const element = this.modalElementRef.nativeElement;
106
+ let currentTop = $event.clientY - this.topStart;
107
+ let currentLeft = $event.clientX - this.leftStart;
108
+ currentTop = currentTop < 0 ? 0 : currentTop;
109
+ const maxTop = element.parentElement.offsetHeight - element.offsetHeight;
110
+ currentTop = currentTop > maxTop ? maxTop : currentTop;
111
+ currentLeft = currentLeft < 0 ? 0 : currentLeft;
112
+ const maxLeft = element.parentElement.offsetWidth - element.offsetWidth;
113
+ currentLeft = currentLeft > maxLeft ? maxLeft : currentLeft;
114
+ element.style.top = currentTop + 'px';
115
+ element.style.left = currentLeft + 'px';
16
116
  }
17
117
  }
18
- AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AlertComponent, selector: "rs-alert", inputs: { type: "type", message: "message" }, outputs: { closed: "closed" }, ngImport: i0, template: "<d-alert [type]=\"type\" [dismissTime]=\"dismissTime\" [closeable]=\"true\"\n (closeEvent)=\"onClose($event)\">{{message}}</d-alert>\n", styles: [""], components: [{ type: i1.AlertComponent, selector: "d-alert", inputs: ["type", "cssClass", "closeable", "content", "showIcon", "dismissTime"], outputs: ["closeEvent"] }] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertComponent, decorators: [{
118
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
119
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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 <d-card>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n <d-card-header (mousedown)=\"onMousedown($event)\">\n <d-card-title>{{title}}</d-card-title>\n </d-card-header>\n <d-card-content>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"contentTemplateContext\"></ng-template>\n </d-card-content>\n </d-card>\n </div>\n</div>\n", styles: [".modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}.modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);max-width:100%;background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-fullscreen-overlay, 0 8px 40px 0) var(--devui-shadow, rgba(37, 43, 58, .2))}d-card{height:100%;background-color:var(--devui-base-bg, #ffffff);display:flex;flex-flow:column nowrap}d-card i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}d-card i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #f2f5fc)}d-card d-card-header{border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}d-card d-card-content{flex:auto;display:flex;flex-flow:column}\n"], components: [{ type: i1.CardComponent, selector: "d-card", exportAs: ["dCard"] }, { type: i1.CardHeaderComponent, selector: "d-card-header" }], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.CardTitleDirective, selector: "d-card-title, [dCardTitle]" }, { type: i1.CardContentDirective, selector: "d-card-content, [dCardContent]" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalComponent, decorators: [{
21
121
  type: Component,
22
- args: [{ selector: 'rs-alert', template: "<d-alert [type]=\"type\" [dismissTime]=\"dismissTime\" [closeable]=\"true\"\n (closeEvent)=\"onClose($event)\">{{message}}</d-alert>\n", styles: [""] }]
23
- }], ctorParameters: function () { return []; }, propDecorators: { type: [{
122
+ args: [{ selector: 'rs-modal', template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\">\n <d-card>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n <d-card-header (mousedown)=\"onMousedown($event)\">\n <d-card-title>{{title}}</d-card-title>\n </d-card-header>\n <d-card-content>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"contentTemplateContext\"></ng-template>\n </d-card-content>\n </d-card>\n </div>\n</div>\n", styles: [".modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1)}.modal{position:absolute;top:0;left:0;z-index:var(--devui-z-index-modal, 1050);max-width:100%;background-color:var(--devui-base-bg, #ffffff);border-radius:var(--devui-border-radius-card, 6px);box-shadow:var(--devui-shadow-fullscreen-overlay, 0 8px 40px 0) var(--devui-shadow, rgba(37, 43, 58, .2))}d-card{height:100%;background-color:var(--devui-base-bg, #ffffff);display:flex;flex-flow:column nowrap}d-card i{position:absolute;top:12px;right:12px;padding:4px;font-size:var(--devui-font-size-card-title, 14px)}d-card i:hover{cursor:pointer;color:var(--devui-danger, #f66f6a);background-color:var(--devui-info-bg, #f2f5fc)}d-card d-card-header{border-bottom:1px solid var(--devui-dividing-line, #f2f2f3)}d-card d-card-content{flex:auto;display:flex;flex-flow:column}\n"] }]
123
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { title: [{
124
+ type: Input
125
+ }], size: [{
24
126
  type: Input
25
- }], message: [{
127
+ }], modalElementRef: [{
128
+ type: ViewChild,
129
+ args: ['modal', { static: true }]
130
+ }], contentTemplate: [{
26
131
  type: Input
27
- }], closed: [{
28
- type: Output
132
+ }], contentTemplateContext: [{
133
+ type: Input
134
+ }], onMouseup: [{
135
+ type: HostListener,
136
+ args: ['document:mouseup', ['$event']]
137
+ }], onMousemove: [{
138
+ type: HostListener,
139
+ args: ['document:mousemove', ['$event']]
29
140
  }] } });
30
141
 
31
- class AlertModule {
142
+ class ModalService {
143
+ constructor() {
144
+ }
145
+ open(viewContainerRef, title, size = 'default', contentTemplate, contentTemplateContext) {
146
+ const modalRef = viewContainerRef.createComponent(ModalComponent);
147
+ modalRef.instance.hide = () => {
148
+ modalRef.hostView.destroy();
149
+ };
150
+ modalRef.instance.title = title;
151
+ modalRef.instance.contentTemplate = contentTemplate;
152
+ modalRef.instance.size = size;
153
+ modalRef.instance.contentTemplateContext = contentTemplateContext;
154
+ modalRef.instance.show();
155
+ return modalRef.instance;
156
+ }
157
+ }
158
+ ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
159
+ ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalService, providedIn: 'root' });
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalService, decorators: [{
161
+ type: Injectable,
162
+ args: [{
163
+ providedIn: 'root'
164
+ }]
165
+ }], ctorParameters: function () { return []; } });
166
+
167
+ class ModalModule {
32
168
  }
33
- AlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
34
- AlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, declarations: [AlertComponent], imports: [AlertModule$1], exports: [AlertComponent] });
35
- AlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, imports: [[
36
- AlertModule$1
169
+ ModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
170
+ ModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, declarations: [ModalComponent], imports: [CommonModule,
171
+ DevUIModule] });
172
+ ModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, imports: [[
173
+ CommonModule,
174
+ DevUIModule
37
175
  ]] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, decorators: [{
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ModalModule, decorators: [{
39
177
  type: NgModule,
40
178
  args: [{
41
179
  declarations: [
42
- AlertComponent
180
+ ModalComponent
43
181
  ],
44
182
  imports: [
45
- AlertModule$1
183
+ CommonModule,
184
+ DevUIModule
46
185
  ],
47
- exports: [
48
- AlertComponent
49
- ]
186
+ exports: []
50
187
  }]
51
188
  }] });
52
189
 
@@ -58,5 +195,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
58
195
  * Generated bundle index. Do not edit.
59
196
  */
60
197
 
61
- export { AlertComponent, AlertModule };
198
+ export { ModalModule, ModalService };
62
199
  //# sourceMappingURL=ngx-rs-ant.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-rs-ant.mjs","sources":["../../../projects/rs-ant/src/alert/alert.component.ts","../../../projects/rs-ant/src/alert/alert.component.html","../../../projects/rs-ant/src/alert/alert.module.ts","../../../projects/rs-ant/src/public-api.ts","../../../projects/rs-ant/src/ngx-rs-ant.ts"],"sourcesContent":["import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {AlertType} from 'ng-devui/alert/alert.types';\n\n@Component({\n selector: 'rs-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss']\n})\nexport class AlertComponent implements OnInit {\n @Input() type: AlertType = 'info';\n @Input() message?: string;\n dismissTime: number = 500000;\n\n @Output() closed = new EventEmitter<void>();\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n onClose($event: any) {\n this.closed.emit($event);\n }\n}\n","<d-alert [type]=\"type\" [dismissTime]=\"dismissTime\" [closeable]=\"true\"\n (closeEvent)=\"onClose($event)\">{{message}}</d-alert>\n","import {NgModule} from '@angular/core';\nimport {AlertComponent} from './alert.component';\nimport {AlertModule as DevUI_AlertModule} from 'ng-devui';\n\n@NgModule({\n declarations: [\n AlertComponent\n ],\n imports: [\n DevUI_AlertModule\n ],\n exports: [\n AlertComponent\n ]\n})\nexport class AlertModule {\n}\n","/*\n * Public API Surface of rs-ant\n */\n\nexport * from './alert/alert.component';\nexport * from './alert/alert.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["DevUI_AlertModule"],"mappings":";;;;;MAQa,cAAc,CAAA;AAOzB,IAAA,WAAA,GAAA;QANS,IAAI,CAAA,IAAA,GAAc,MAAM,CAAC;QAElC,IAAW,CAAA,WAAA,GAAW,MAAM,CAAC;AAEnB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;KAG3C;IAED,QAAQ,GAAA;KACP;AAED,IAAA,OAAO,CAAC,MAAW,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC1B;;4GAfU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,6HCR3B,gJAEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDMa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,gJAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;0EAKX,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MEEI,WAAW,CAAA;;yGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EATpB,YAAA,EAAA,CAAA,cAAc,CAGd,EAAA,OAAA,EAAA,CAAAA,aAAiB,aAGjB,cAAc,CAAA,EAAA,CAAA,CAAA;AAGL,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EAPb,OAAA,EAAA,CAAA;YACPA,aAAiB;AAClB,SAAA,CAAA,EAAA,CAAA,CAAA;4FAKU,WAAW,EAAA,UAAA,EAAA,CAAA;kBAXvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACPA,aAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,cAAc;AACf,qBAAA;AACF,iBAAA,CAAA;;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-rs-ant.mjs","sources":["../../../projects/rs-ant/src/modal/modal.component.ts","../../../projects/rs-ant/src/modal/modal.component.html","../../../projects/rs-ant/src/modal/modal.service.ts","../../../projects/rs-ant/src/modal/modal.module.ts","../../../projects/rs-ant/src/public-api.ts","../../../projects/rs-ant/src/ngx-rs-ant.ts"],"sourcesContent":["import {Component, ElementRef, HostListener, Input, OnDestroy, OnInit, TemplateRef, ViewChild} from '@angular/core';\n\n@Component({\n selector: 'rs-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent implements OnInit, OnDestroy {\n @Input() title!: string;\n @Input() size: 'default' | 'large' | 'full' = 'default';\n _width: number = 480;\n @ViewChild('modal', {static: true}) modalElementRef!: ElementRef;\n moveHandleEl!: HTMLElement;\n movable: boolean = false;\n topStart = 0;\n leftStart = 0;\n @Input()\n contentTemplate!: TemplateRef<any>;\n @Input()\n contentTemplateContext: any;\n\n constructor(public elementRef: ElementRef) {\n }\n\n ngOnInit() {\n if (this.size === 'full') {\n this.modalElementRef.nativeElement.style.top = '0px';\n this.modalElementRef.nativeElement.style.right = '0px';\n this.modalElementRef.nativeElement.style.bottom = '0px';\n this.modalElementRef.nativeElement.style.left = '0px';\n this.modalElementRef.nativeElement.style.margin = '2px';\n this.modalElementRef.nativeElement.style.boxShadow = 'none';\n } else {\n if (this.size === 'large') {\n this._width = 960;\n }\n this.modalElementRef.nativeElement.style.width = this._width + 'px';\n this.modalElementRef.nativeElement.style.top = '40px';\n this.modalElementRef.nativeElement.style.left =\n (this.elementRef.nativeElement.parentElement.offsetWidth - this.modalElementRef.nativeElement.offsetWidth) / 2 + 'px';\n this.moveHandleEl = this.elementRef.nativeElement.querySelector('d-card-header');\n this.moveHandleEl.style.cursor = 'move';\n }\n }\n\n show() {\n // 若存在多层模态框,仅保留最上层遮罩颜色,下层遮罩设置为透明\n const parentElement = this.elementRef.nativeElement.parentElement;\n const nodeName = this.elementRef.nativeElement.nodeName;\n const modals = parentElement.querySelectorAll(nodeName);\n for (let i = 0; i < modals.length; i++) {\n if (i === modals.length - 1) {\n modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';\n } else {\n modals[i].querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0)';\n }\n }\n }\n\n hide() {\n // 在service中重写\n }\n\n ngOnDestroy(): void {\n // 若存在多层模态框,下一层遮罩设置为不透明\n const parentElement = this.elementRef.nativeElement.parentElement;\n const nodeName = this.elementRef.nativeElement.nodeName;\n const nextModal = parentElement.querySelector(nodeName + ':nth-last-child(2)');\n if (nextModal) {\n nextModal.querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';\n }\n }\n\n resolveModalBackdropPosition() {\n return {\n \"width\": this.elementRef.nativeElement.parentElement.offsetWidth + 'px',\n \"height\": this.elementRef.nativeElement.parentElement.offsetHeight + 'px',\n \"top\": this.elementRef.nativeElement.parentElement.offsetTop + 'px',\n \"left\": this.elementRef.nativeElement.parentElement.offsetLeft + 'px',\n };\n }\n\n onMousedown($event: MouseEvent) {\n if ($event.button === 2 || !this.checkHandleTarget($event.target, this.moveHandleEl)) {\n return;\n }\n this.movable = true;\n this.topStart = $event.clientY - this.modalElementRef.nativeElement.style.top.replace('px', '');\n this.leftStart = $event.clientX - this.modalElementRef.nativeElement.style.left.replace('px', '');\n }\n\n private checkHandleTarget(target: any, element: any): boolean {\n if (!element) {\n return false;\n }\n if (target === element) {\n return true;\n }\n for (let child in element.children) {\n if (Object.prototype.hasOwnProperty.call(element.children, child)) {\n if (this.checkHandleTarget(target, element.children[child])) {\n return true;\n }\n }\n }\n return false;\n }\n\n @HostListener('document:mouseup', ['$event'])\n onMouseup() {\n this.movable = false;\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMousemove($event: MouseEvent) {\n if (!this.movable) {\n return;\n }\n $event.stopPropagation();\n $event.preventDefault();\n const element = this.modalElementRef.nativeElement;\n let currentTop = $event.clientY - this.topStart;\n let currentLeft = $event.clientX - this.leftStart;\n currentTop = currentTop < 0 ? 0 : currentTop;\n const maxTop = element.parentElement.offsetHeight - element.offsetHeight;\n currentTop = currentTop > maxTop ? maxTop : currentTop;\n currentLeft = currentLeft < 0 ? 0 : currentLeft;\n const maxLeft = element.parentElement.offsetWidth - element.offsetWidth;\n currentLeft = currentLeft > maxLeft ? maxLeft : currentLeft;\n element.style.top = currentTop + 'px';\n element.style.left = currentLeft + 'px';\n }\n}\n","<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\n <div #modal class=\"modal\">\n <d-card>\n <i class=\"icon-close\" (click)=\"hide()\"></i>\n <d-card-header (mousedown)=\"onMousedown($event)\">\n <d-card-title>{{title}}</d-card-title>\n </d-card-header>\n <d-card-content>\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"contentTemplateContext\"></ng-template>\n </d-card-content>\n </d-card>\n </div>\n</div>\n","import {Injectable, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {ModalComponent} from './modal.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n constructor() {\n }\n\n open(viewContainerRef: ViewContainerRef,\n title: string, size: 'default' | 'large' | 'full' = 'default',\n contentTemplate: TemplateRef<any>,\n contentTemplateContext: any) {\n const modalRef = viewContainerRef.createComponent(ModalComponent);\n modalRef.instance.hide = () => {\n modalRef.hostView.destroy();\n }\n modalRef.instance.title = title;\n modalRef.instance.contentTemplate = contentTemplate;\n modalRef.instance.size = size;\n modalRef.instance.contentTemplateContext = contentTemplateContext;\n modalRef.instance.show();\n return modalRef.instance;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalComponent} from './modal.component';\nimport {DevUIModule} from 'ng-devui';\n\n\n@NgModule({\n declarations: [\n ModalComponent\n ],\n imports: [\n CommonModule,\n DevUIModule\n ],\n exports: []\n})\nexport class ModalModule {\n}\n","/*\r\n * Public API Surface of rs-ant\r\n */\r\n\r\nexport * from './modal/modal.service';\r\nexport * from './modal/modal.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { ElementRef, OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ModalComponent implements OnInit, OnDestroy {
4
+ elementRef: ElementRef;
5
+ title: string;
6
+ size: 'default' | 'large' | 'full';
7
+ _width: number;
8
+ modalElementRef: ElementRef;
9
+ moveHandleEl: HTMLElement;
10
+ movable: boolean;
11
+ topStart: number;
12
+ leftStart: number;
13
+ contentTemplate: TemplateRef<any>;
14
+ contentTemplateContext: any;
15
+ constructor(elementRef: ElementRef);
16
+ ngOnInit(): void;
17
+ show(): void;
18
+ hide(): void;
19
+ ngOnDestroy(): void;
20
+ resolveModalBackdropPosition(): {
21
+ width: string;
22
+ height: string;
23
+ top: string;
24
+ left: string;
25
+ };
26
+ onMousedown($event: MouseEvent): void;
27
+ private checkHandleTarget;
28
+ onMouseup(): void;
29
+ onMousemove($event: MouseEvent): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "rs-modal", never, { "title": "title"; "size": "size"; "contentTemplate": "contentTemplate"; "contentTemplateContext": "contentTemplateContext"; }, {}, never, never>;
32
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./modal.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "ng-devui";
5
+ export declare class ModalModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ModalModule, [typeof i1.ModalComponent], [typeof i2.CommonModule, typeof i3.DevUIModule], never>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<ModalModule>;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { ModalComponent } from './modal.component';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ModalService {
5
+ constructor();
6
+ open(viewContainerRef: ViewContainerRef, title: string, size: "default" | "full" | "large" | undefined, contentTemplate: TemplateRef<any>, contentTemplateContext: any): ModalComponent;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
9
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-rs-ant",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "license": "MIT",
5
5
  "description": "RsAnt components based on Angular and DevUI",
6
6
  "exports": {
@@ -25,6 +25,7 @@
25
25
  "peerDependencies": {
26
26
  "@angular/common": "^13.3.0",
27
27
  "@angular/core": "^13.3.0",
28
+ "@devui-design/icons": "^1.3.0",
28
29
  "ng-devui": "^13.3.0"
29
30
  },
30
31
  "module": "fesm2015/ngx-rs-ant.mjs",
package/public-api.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './alert/alert.component';
2
- export * from './alert/alert.module';
1
+ export * from './modal/modal.service';
2
+ export * from './modal/modal.module';
package/rs-ant.scss CHANGED
@@ -1 +1,2 @@
1
1
  @import "ng-devui/devui.min.css";
2
+ @import "@devui-design/icons/icomoon/devui-icon.css";
@@ -1,14 +0,0 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
2
- import { AlertType } from 'ng-devui/alert/alert.types';
3
- import * as i0 from "@angular/core";
4
- export declare class AlertComponent implements OnInit {
5
- type: AlertType;
6
- message?: string;
7
- dismissTime: number;
8
- closed: EventEmitter<void>;
9
- constructor();
10
- ngOnInit(): void;
11
- onClose($event: any): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<AlertComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<AlertComponent, "rs-alert", never, { "type": "type"; "message": "message"; }, { "closed": "closed"; }, never, never>;
14
- }
@@ -1,8 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./alert.component";
3
- import * as i2 from "ng-devui";
4
- export declare class AlertModule {
5
- static ɵfac: i0.ɵɵFactoryDeclaration<AlertModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<AlertModule, [typeof i1.AlertComponent], [typeof i2.AlertModule], [typeof i1.AlertComponent]>;
7
- static ɵinj: i0.ɵɵInjectorDeclaration<AlertModule>;
8
- }
@@ -1,28 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "ng-devui";
4
- export class AlertComponent {
5
- constructor() {
6
- this.type = 'info';
7
- this.dismissTime = 500000;
8
- this.closed = new EventEmitter();
9
- }
10
- ngOnInit() {
11
- }
12
- onClose($event) {
13
- this.closed.emit($event);
14
- }
15
- }
16
- AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AlertComponent, selector: "rs-alert", inputs: { type: "type", message: "message" }, outputs: { closed: "closed" }, ngImport: i0, template: "<d-alert [type]=\"type\" [dismissTime]=\"dismissTime\" [closeable]=\"true\"\n (closeEvent)=\"onClose($event)\">{{message}}</d-alert>\n", styles: [""], components: [{ type: i1.AlertComponent, selector: "d-alert", inputs: ["type", "cssClass", "closeable", "content", "showIcon", "dismissTime"], outputs: ["closeEvent"] }] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertComponent, decorators: [{
19
- type: Component,
20
- args: [{ selector: 'rs-alert', template: "<d-alert [type]=\"type\" [dismissTime]=\"dismissTime\" [closeable]=\"true\"\n (closeEvent)=\"onClose($event)\">{{message}}</d-alert>\n", styles: [""] }]
21
- }], ctorParameters: function () { return []; }, propDecorators: { type: [{
22
- type: Input
23
- }], message: [{
24
- type: Input
25
- }], closed: [{
26
- type: Output
27
- }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcnMtYW50L3NyYy9hbGVydC9hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ycy1hbnQvc3JjL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVE3RSxNQUFNLE9BQU8sY0FBYztJQU96QjtRQU5TLFNBQUksR0FBYyxNQUFNLENBQUM7UUFFbEMsZ0JBQVcsR0FBVyxNQUFNLENBQUM7UUFFbkIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFHNUMsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQVc7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7NEdBZlUsY0FBYztnR0FBZCxjQUFjLDZIQ1IzQixnSkFFQTs0RkRNYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVU7MEVBS1gsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBbGVydFR5cGV9IGZyb20gJ25nLWRldnVpL2FsZXJ0L2FsZXJ0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbGVydC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdHlwZTogQWxlcnRUeXBlID0gJ2luZm8nO1xuICBASW5wdXQoKSBtZXNzYWdlPzogc3RyaW5nO1xuICBkaXNtaXNzVGltZTogbnVtYmVyID0gNTAwMDAwO1xuXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG9uQ2xvc2UoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCRldmVudCk7XG4gIH1cbn1cbiIsIjxkLWFsZXJ0IFt0eXBlXT1cInR5cGVcIiBbZGlzbWlzc1RpbWVdPVwiZGlzbWlzc1RpbWVcIiBbY2xvc2VhYmxlXT1cInRydWVcIlxuICAgICAgICAgKGNsb3NlRXZlbnQpPVwib25DbG9zZSgkZXZlbnQpXCI+e3ttZXNzYWdlfX08L2QtYWxlcnQ+XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { AlertComponent } from './alert.component';
3
- import { AlertModule as DevUI_AlertModule } from 'ng-devui';
4
- import * as i0 from "@angular/core";
5
- export class AlertModule {
6
- }
7
- AlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- AlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, declarations: [AlertComponent], imports: [DevUI_AlertModule], exports: [AlertComponent] });
9
- AlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, imports: [[
10
- DevUI_AlertModule
11
- ]] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AlertModule, decorators: [{
13
- type: NgModule,
14
- args: [{
15
- declarations: [
16
- AlertComponent
17
- ],
18
- imports: [
19
- DevUI_AlertModule
20
- ],
21
- exports: [
22
- AlertComponent
23
- ]
24
- }]
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcnMtYW50L3NyYy9hbGVydC9hbGVydC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLFdBQVcsSUFBSSxpQkFBaUIsRUFBQyxNQUFNLFVBQVUsQ0FBQzs7QUFhMUQsTUFBTSxPQUFPLFdBQVc7O3lHQUFYLFdBQVc7MEdBQVgsV0FBVyxpQkFUcEIsY0FBYyxhQUdkLGlCQUFpQixhQUdqQixjQUFjOzBHQUdMLFdBQVcsWUFQYjtZQUNQLGlCQUFpQjtTQUNsQjs0RkFLVSxXQUFXO2tCQVh2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxjQUFjO3FCQUNmO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FsZXJ0Q29tcG9uZW50fSBmcm9tICcuL2FsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQge0FsZXJ0TW9kdWxlIGFzIERldlVJX0FsZXJ0TW9kdWxlfSBmcm9tICduZy1kZXZ1aSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFsZXJ0Q29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBEZXZVSV9BbGVydE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQWxlcnRDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydE1vZHVsZSB7XG59XG4iXX0=