@ng-nest/ui 12.1.0 → 12.1.1
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/alert/alert.component.d.ts +2 -1
- package/bundles/ng-nest-ui-alert.umd.js +6 -1
- package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
- package/bundles/ng-nest-ui-core.umd.js.map +1 -1
- package/bundles/ng-nest-ui-find.umd.js +27 -3
- package/bundles/ng-nest-ui-find.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message.umd.js +49 -13
- package/bundles/ng-nest-ui-message.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popconfirm.umd.js +33 -4
- package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popover.umd.js +13 -2
- package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
- package/core/config/config.d.ts +3 -0
- package/core/interfaces/layout.type.d.ts +1 -1
- package/esm2015/alert/alert.component.js +8 -3
- package/esm2015/core/config/config.js +1 -1
- package/esm2015/core/interfaces/layout.type.js +1 -1
- package/esm2015/find/find.component.js +12 -3
- package/esm2015/find/find.property.js +18 -2
- package/esm2015/message/message-ref.js +12 -0
- package/esm2015/message/message.component.js +3 -3
- package/esm2015/message/message.property.js +1 -1
- package/esm2015/message/message.service.js +35 -13
- package/esm2015/message/public-api.js +2 -1
- package/esm2015/popconfirm/popconfirm.component.js +25 -4
- package/esm2015/popconfirm/popconfirm.property.js +10 -3
- package/esm2015/popover/popover.directive.js +8 -2
- package/esm2015/popover/popover.property.js +7 -2
- package/fesm2015/ng-nest-ui-alert.js +7 -2
- package/fesm2015/ng-nest-ui-alert.js.map +1 -1
- package/fesm2015/ng-nest-ui-core.js.map +1 -1
- package/fesm2015/ng-nest-ui-find.js +28 -3
- package/fesm2015/ng-nest-ui-find.js.map +1 -1
- package/fesm2015/ng-nest-ui-message.js +48 -15
- package/fesm2015/ng-nest-ui-message.js.map +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.js +33 -5
- package/fesm2015/ng-nest-ui-popconfirm.js.map +1 -1
- package/fesm2015/ng-nest-ui-popover.js +13 -2
- package/fesm2015/ng-nest-ui-popover.js.map +1 -1
- package/find/find.property.d.ts +31 -1
- package/message/message-ref.d.ts +8 -0
- package/message/message.component.d.ts +3 -3
- package/message/message.property.d.ts +23 -3
- package/message/message.service.d.ts +4 -1
- package/message/public-api.d.ts +1 -0
- package/package.json +1 -1
- package/popconfirm/popconfirm.component.d.ts +6 -2
- package/popconfirm/popconfirm.property.d.ts +13 -2
- package/popover/popover.property.d.ts +6 -1
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
3
|
import { __decorate } from 'tslib';
|
|
4
4
|
import * as i1 from '@ng-nest/ui/core';
|
|
5
|
-
import { XProperty, XWithConfig } from '@ng-nest/ui/core';
|
|
5
|
+
import { XProperty, XWithConfig, XInputBoolean } from '@ng-nest/ui/core';
|
|
6
6
|
import { Subject } from 'rxjs';
|
|
7
7
|
import { map, takeUntil } from 'rxjs/operators';
|
|
8
8
|
import * as i2 from '@ng-nest/ui/i18n';
|
|
@@ -43,7 +43,7 @@ class XPopconfirmProperty extends XProperty {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
/** @nocollapse */ XPopconfirmProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XPopconfirmProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
-
/** @nocollapse */ XPopconfirmProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XPopconfirmProperty, selector: "ng-component", inputs: { title: "title", content: "content", placement: "placement", trigger: "trigger", width: "width", icon: "icon", iconColor: "iconColor", cancelText: "cancelText", confirmText: "confirmText" }, outputs: { cancel: "cancel", confirm: "confirm" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
46
|
+
/** @nocollapse */ XPopconfirmProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XPopconfirmProperty, selector: "ng-component", inputs: { title: "title", content: "content", placement: "placement", trigger: "trigger", width: "width", icon: "icon", iconColor: "iconColor", cancelText: "cancelText", confirmText: "confirmText", confirmAsync: "confirmAsync", condition: "condition" }, outputs: { cancel: "cancel", confirm: "confirm" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
47
47
|
__decorate([
|
|
48
48
|
XWithConfig(X_CONFIG_NAME, 'bottom')
|
|
49
49
|
], XPopconfirmProperty.prototype, "placement", void 0);
|
|
@@ -65,6 +65,9 @@ __decorate([
|
|
|
65
65
|
__decorate([
|
|
66
66
|
XWithConfig(X_CONFIG_NAME)
|
|
67
67
|
], XPopconfirmProperty.prototype, "confirmText", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
XInputBoolean()
|
|
70
|
+
], XPopconfirmProperty.prototype, "condition", void 0);
|
|
68
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XPopconfirmProperty, decorators: [{
|
|
69
72
|
type: Component,
|
|
70
73
|
args: [{ template: '' }]
|
|
@@ -86,6 +89,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
86
89
|
type: Input
|
|
87
90
|
}], confirmText: [{
|
|
88
91
|
type: Input
|
|
92
|
+
}], confirmAsync: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], condition: [{
|
|
95
|
+
type: Input
|
|
89
96
|
}], cancel: [{
|
|
90
97
|
type: Output
|
|
91
98
|
}], confirm: [{
|
|
@@ -101,7 +108,9 @@ class XPopconfirmComponent extends XPopconfirmProperty {
|
|
|
101
108
|
this.configService = configService;
|
|
102
109
|
this.i18n = i18n;
|
|
103
110
|
this.locale = {};
|
|
111
|
+
this.loading = false;
|
|
104
112
|
this._unSubject = new Subject();
|
|
113
|
+
this._asyncUnSub = new Subject();
|
|
105
114
|
}
|
|
106
115
|
get getCancelText() {
|
|
107
116
|
return this.cancelText || this.locale.cancelText;
|
|
@@ -117,17 +126,36 @@ class XPopconfirmComponent extends XPopconfirmProperty {
|
|
|
117
126
|
this.cdr.markForCheck();
|
|
118
127
|
});
|
|
119
128
|
}
|
|
129
|
+
ngOnDestroy() {
|
|
130
|
+
this._unSubject.next();
|
|
131
|
+
this._unSubject.complete();
|
|
132
|
+
}
|
|
120
133
|
onCancel() {
|
|
121
134
|
this.visible = false;
|
|
122
135
|
this.cancel.emit();
|
|
123
136
|
}
|
|
124
137
|
onConfirm() {
|
|
125
|
-
this.
|
|
126
|
-
|
|
138
|
+
if (this.confirmAsync) {
|
|
139
|
+
this.loading = true;
|
|
140
|
+
this.confirmAsync.pipe(takeUntil(this._asyncUnSub)).subscribe(() => {
|
|
141
|
+
this.loading = false;
|
|
142
|
+
this.visible = false;
|
|
143
|
+
this.confirm.emit();
|
|
144
|
+
this.cdr.detectChanges();
|
|
145
|
+
this._asyncUnSub.next();
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this.visible = false;
|
|
150
|
+
this.confirm.emit();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
onClick() {
|
|
154
|
+
this.condition && this.onConfirm();
|
|
127
155
|
}
|
|
128
156
|
}
|
|
129
157
|
/** @nocollapse */ XPopconfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XPopconfirmComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
|
|
130
|
-
/** @nocollapse */ XPopconfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XPopconfirmComponent, selector: "x-popconfirm", usesInheritance: true, ngImport: i0, template: "<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement\"\r\n [trigger]=\"trigger\"\r\n [width]=\"width\"\r\n [(visible)]=\"visible\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title\">\r\n <x-icon *ngIf=\"icon\" [style.color]=\"iconColor\" [type]=\"icon\"></x-icon>\r\n <span>{{ title }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-popconfirm{margin:0;padding:0;display:inline-block}.x-popconfirm-buttons{display:flex;justify-content:flex-end}.x-popconfirm-buttons>x-button:not(:first-child){margin-left:.5rem}.x-popconfirm-title{display:flex;align-items:center}.x-popconfirm-title>.x-icon{margin-right:.325rem;font-size:1rem}\n"], components: [{ type: i3.XIconComponent, selector: "x-icon" }, { type: i4.XButtonComponent, selector: "x-button" }], directives: [{ type: i5.XPopoverDirective, selector: "[x-popover], x-popover" }, { type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
158
|
+
/** @nocollapse */ XPopconfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XPopconfirmComponent, selector: "x-popconfirm", usesInheritance: true, ngImport: i0, template: "<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement\"\r\n [trigger]=\"trigger\"\r\n [width]=\"width\"\r\n [condition]=\"condition\"\r\n [(visible)]=\"visible\"\r\n (click)=\"onClick()\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title\">\r\n <x-icon *ngIf=\"icon\" [style.color]=\"iconColor\" [type]=\"icon\"></x-icon>\r\n <span>{{ title }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\" [loading]=\"loading\">{{ getConfirmText }}</x-button>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-popconfirm{margin:0;padding:0;display:inline-block}.x-popconfirm-buttons{display:flex;justify-content:flex-end}.x-popconfirm-buttons>x-button:not(:first-child){margin-left:.5rem}.x-popconfirm-title{display:flex;align-items:center}.x-popconfirm-title>.x-icon{margin-right:.325rem;font-size:1rem}\n"], components: [{ type: i3.XIconComponent, selector: "x-icon" }, { type: i4.XButtonComponent, selector: "x-button" }], directives: [{ type: i5.XPopoverDirective, selector: "[x-popover], x-popover" }, { type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
131
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XPopconfirmComponent, decorators: [{
|
|
132
160
|
type: Component,
|
|
133
161
|
args: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-popconfirm.js","sources":["../../../../lib/ng-nest/ui/popconfirm/popconfirm.property.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.html","../../../../lib/ng-nest/ui/popconfirm/popconfirm.module.ts","../../../../lib/ng-nest/ui/popconfirm/ng-nest-ui-popconfirm.ts"],"sourcesContent":["import { XPlacement, XTemplate, XProperty, XWithConfig } from '@ng-nest/ui/core';\r\nimport { XPopoverTrigger } from '@ng-nest/ui/popover';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Popconfirm\r\n * @selector x-popconfirm\r\n * @decorator component\r\n */\r\nexport const XPopconfirmPrefix = 'x-popconfirm';\r\nconst X_CONFIG_NAME = 'popconfirm';\r\n\r\n/**\r\n * Popconfirm Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPopconfirmProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题,支持自定义模板\r\n * @en_US Title, support custom template\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 内容,支持自定义模板\r\n * @en_US Content, support custom templates\r\n */\r\n @Input() content?: XTemplate;\r\n /**\r\n * @zh_CN 弹出的位置\r\n * @en_US Pop-up position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement?: XPlacement;\r\n /**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n */\r\n @Input() @XWithConfig<XPopoverTrigger>(X_CONFIG_NAME, 'click') trigger?: XPopoverTrigger;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '12rem') width?: string;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'fto-help-circle') icon?: string;\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '#e6a23c') iconColor?: string;\r\n /**\r\n * @zh_CN 取消的文字\r\n * @en_US Canceled text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) cancelText?: string;\r\n /**\r\n * @zh_CN 确认的文字\r\n * @en_US Confirmed text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) confirmText?: string;\r\n /**\r\n * @zh_CN 取消的点击事件\r\n * @en_US Cancelled click event\r\n */\r\n @Output() cancel = new EventEmitter();\r\n /**\r\n * @zh_CN 确认的点击事件\r\n * @en_US Confirmed click event\r\n */\r\n @Output() confirm = new EventEmitter();\r\n}\r\n","import { Renderer2, ElementRef, ChangeDetectorRef, Component, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\r\nimport { XPopconfirmProperty, XPopconfirmPrefix } from './popconfirm.property';\r\nimport { XBoolean, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nPopconfirm } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPopconfirmPrefix}`,\r\n templateUrl: './popconfirm.component.html',\r\n styleUrls: ['./popconfirm.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPopconfirmComponent extends XPopconfirmProperty {\r\n visible!: XBoolean;\r\n locale: XI18nPopconfirm = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n get getCancelText() {\r\n return this.cancelText || this.locale.cancelText;\r\n }\r\n\r\n get getConfirmText() {\r\n return this.confirmText || this.locale.confirmText;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.popconfirm as XI18nPopconfirm),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n onCancel() {\r\n this.visible = false;\r\n this.cancel.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.visible = false;\r\n this.confirm.emit();\r\n }\r\n}\r\n","<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement\"\r\n [trigger]=\"trigger\"\r\n [width]=\"width\"\r\n [(visible)]=\"visible\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title\">\r\n <x-icon *ngIf=\"icon\" [style.color]=\"iconColor\" [type]=\"icon\"></x-icon>\r\n <span>{{ title }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\">{{ getConfirmText }}</x-button>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XPopconfirmComponent } from './popconfirm.component';\r\nimport { XPopoverModule } from '@ng-nest/ui/popover';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPopconfirmProperty } from './popconfirm.property';\r\n\r\n@NgModule({\r\n declarations: [XPopconfirmComponent, XPopconfirmProperty],\r\n exports: [XPopconfirmComponent],\r\n imports: [CommonModule, XPopoverModule, XButtonModule, XIconModule, XOutletModule]\r\n})\r\nexport class XPopconfirmModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-popconfirm.js","sources":["../../../../lib/ng-nest/ui/popconfirm/popconfirm.property.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.ts","../../../../lib/ng-nest/ui/popconfirm/popconfirm.component.html","../../../../lib/ng-nest/ui/popconfirm/popconfirm.module.ts","../../../../lib/ng-nest/ui/popconfirm/ng-nest-ui-popconfirm.ts"],"sourcesContent":["import { XPlacement, XTemplate, XProperty, XWithConfig, XInputBoolean, XBoolean } from '@ng-nest/ui/core';\r\nimport { XPopoverTrigger } from '@ng-nest/ui/popover';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n/**\r\n * Popconfirm\r\n * @selector x-popconfirm\r\n * @decorator component\r\n */\r\nexport const XPopconfirmPrefix = 'x-popconfirm';\r\nconst X_CONFIG_NAME = 'popconfirm';\r\n\r\n/**\r\n * Popconfirm Property\r\n */\r\n@Component({ template: '' })\r\nexport class XPopconfirmProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题,支持自定义模板\r\n * @en_US Title, support custom template\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 内容,支持自定义模板\r\n * @en_US Content, support custom templates\r\n */\r\n @Input() content?: XTemplate;\r\n /**\r\n * @zh_CN 弹出的位置\r\n * @en_US Pop-up position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement?: XPlacement;\r\n /**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n */\r\n @Input() @XWithConfig<XPopoverTrigger>(X_CONFIG_NAME, 'click') trigger?: XPopoverTrigger;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '12rem') width?: string;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'fto-help-circle') icon?: string;\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '#e6a23c') iconColor?: string;\r\n /**\r\n * @zh_CN 取消的文字\r\n * @en_US Canceled text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) cancelText?: string;\r\n /**\r\n * @zh_CN 确认的文字\r\n * @en_US Confirmed text\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) confirmText?: string;\r\n /**\r\n * @zh_CN 确认异步 Observable\r\n * @en_US Confirm async\r\n */\r\n @Input() confirmAsync?: Observable<void>;\r\n /**\r\n * @zh_CN 条件触发\r\n * @en_US condition trigger\r\n */\r\n @Input() @XInputBoolean() condition?: XBoolean;\r\n /**\r\n * @zh_CN 取消的点击事件\r\n * @en_US Cancelled click event\r\n */\r\n @Output() cancel = new EventEmitter();\r\n /**\r\n * @zh_CN 确认的点击事件\r\n * @en_US Confirmed click event\r\n */\r\n @Output() confirm = new EventEmitter();\r\n}\r\n","import { Renderer2, ElementRef, ChangeDetectorRef, Component, ChangeDetectionStrategy, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { XPopconfirmProperty, XPopconfirmPrefix } from './popconfirm.property';\r\nimport { XBoolean, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nPopconfirm } from '@ng-nest/ui/i18n';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPopconfirmPrefix}`,\r\n templateUrl: './popconfirm.component.html',\r\n styleUrls: ['./popconfirm.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XPopconfirmComponent extends XPopconfirmProperty implements OnDestroy {\r\n visible!: XBoolean;\r\n locale: XI18nPopconfirm = {};\r\n loading = false;\r\n\r\n private _unSubject = new Subject<void>();\r\n private _asyncUnSub = new Subject<void>();\r\n\r\n get getCancelText() {\r\n return this.cancelText || this.locale.cancelText;\r\n }\r\n\r\n get getConfirmText() {\r\n return this.confirmText || this.locale.confirmText;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public i18n: XI18nService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.popconfirm as XI18nPopconfirm),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n }\r\n\r\n onCancel() {\r\n this.visible = false;\r\n this.cancel.emit();\r\n }\r\n\r\n onConfirm() {\r\n if (this.confirmAsync) {\r\n this.loading = true;\r\n this.confirmAsync.pipe(takeUntil(this._asyncUnSub)).subscribe(() => {\r\n this.loading = false;\r\n this.visible = false;\r\n this.confirm.emit();\r\n this.cdr.detectChanges();\r\n this._asyncUnSub.next();\r\n });\r\n } else {\r\n this.visible = false;\r\n this.confirm.emit();\r\n }\r\n }\r\n\r\n onClick() {\r\n this.condition && this.onConfirm();\r\n }\r\n}\r\n","<div\r\n #popconfirm\r\n class=\"x-popconfirm\"\r\n x-popover\r\n [title]=\"titleTpl\"\r\n [content]=\"content\"\r\n [footer]=\"footerTpl\"\r\n [placement]=\"placement\"\r\n [trigger]=\"trigger\"\r\n [width]=\"width\"\r\n [condition]=\"condition\"\r\n [(visible)]=\"visible\"\r\n (click)=\"onClick()\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-template #titleTpl>\r\n <div class=\"x-popconfirm-title\">\r\n <ng-container *xOutlet=\"title\">\r\n <x-icon *ngIf=\"icon\" [style.color]=\"iconColor\" [type]=\"icon\"></x-icon>\r\n <span>{{ title }}</span>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #footerTpl>\r\n <div class=\"x-popconfirm-buttons\">\r\n <x-button (click)=\"onCancel()\">{{ getCancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\" [loading]=\"loading\">{{ getConfirmText }}</x-button>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { XPopconfirmComponent } from './popconfirm.component';\r\nimport { XPopoverModule } from '@ng-nest/ui/popover';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPopconfirmProperty } from './popconfirm.property';\r\n\r\n@NgModule({\r\n declarations: [XPopconfirmComponent, XPopconfirmProperty],\r\n exports: [XPopconfirmComponent],\r\n imports: [CommonModule, XPopoverModule, XButtonModule, XIconModule, XOutletModule]\r\n})\r\nexport class XPopconfirmModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAKA;;;;;MAKa,iBAAiB,GAAG,eAAe;AAChD,MAAM,aAAa,GAAG,YAAY,CAAC;AAEnC;;;MAIa,mBAAoB,SAAQ,SAAS;IADlD;;;;;;QA6DY,WAAM,GAAG,IAAI,YAAY,EAAE,CAAC;;;;;QAK5B,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;KACxC;;mIAlEY,mBAAmB;uHAAnB,mBAAmB,4XADT,EAAE;AAgBoC;IAAjD,WAAW,CAAa,aAAa,EAAE,QAAQ,CAAC;sDAAwB;AAKnB;IAArD,WAAW,CAAkB,aAAa,EAAE,OAAO,CAAC;oDAA2B;AAKnC;IAA5C,WAAW,CAAS,aAAa,EAAE,OAAO,CAAC;kDAAgB;AAKL;IAAtD,WAAW,CAAS,aAAa,EAAE,iBAAiB,CAAC;iDAAe;AAKtB;IAA9C,WAAW,CAAS,aAAa,EAAE,SAAS,CAAC;sDAAoB;AAK9B;IAAnC,WAAW,CAAS,aAAa,CAAC;uDAAqB;AAKpB;IAAnC,WAAW,CAAS,aAAa,CAAC;wDAAsB;AAUxC;IAAhB,aAAa,EAAE;sDAAsB;2FAvDpC,mBAAmB;kBAD/B,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;8BAMhB,KAAK;sBAAb,KAAK;gBAKG,OAAO;sBAAf,KAAK;gBAKqD,SAAS;sBAAnE,KAAK;gBAKyD,OAAO;sBAArE,KAAK;gBAKgD,KAAK;sBAA1D,KAAK;gBAK0D,IAAI;sBAAnE,KAAK;gBAKkD,SAAS;sBAAhE,KAAK;gBAKuC,UAAU;sBAAtD,KAAK;gBAKuC,WAAW;sBAAvD,KAAK;gBAKG,YAAY;sBAApB,KAAK;gBAKoB,SAAS;sBAAlC,KAAK;gBAKI,MAAM;sBAAf,MAAM;gBAKG,OAAO;sBAAhB,MAAM;;;MCpEI,oBAAqB,SAAQ,mBAAmB;IAgB3D,YACS,QAAmB,EACnB,UAAsB,EACtB,GAAsB,EACtB,aAA6B,EAC7B,IAAkB;QAEzB,KAAK,EAAE,CAAC;QAND,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,QAAG,GAAH,GAAG,CAAmB;QACtB,kBAAa,GAAb,aAAa,CAAgB;QAC7B,SAAI,GAAJ,IAAI,CAAc;QAnB3B,WAAM,GAAoB,EAAE,CAAC;QAC7B,YAAO,GAAG,KAAK,CAAC;QAER,eAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;QACjC,gBAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;KAkBzC;IAhBD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;KAClD;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;KACpD;IAYD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,YAAY;aACnB,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAA6B,CAAC,EAC3C,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;aACA,SAAS,CAAC,CAAC,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB,CAAC,CAAC;KACN;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAED,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,SAAS;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aACzB,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;KACF;IAED,OAAO;QACL,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;KACpC;;oIAlEU,oBAAoB;wHAApB,oBAAoB,2ECdjC,y6BAgCA;2FDlBa,oBAAoB;kBAPhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,GAAG,iBAAiB,EAAE;oBAChC,WAAW,EAAE,6BAA6B;oBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;oBAC1C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;;;MECY,iBAAiB;;iIAAjB,iBAAiB;kIAAjB,iBAAiB,iBAJb,oBAAoB,EAAE,mBAAmB,aAE9C,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,aADvE,oBAAoB;kIAGnB,iBAAiB,YAFnB,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,CAAC;2FAEvE,iBAAiB;kBAL7B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;oBACzD,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,CAAC;iBACnF;;;ACbD;;;;;;"}
|
|
@@ -34,7 +34,7 @@ class XPopoverProperty extends XProperty {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
/** @nocollapse */ XPopoverProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XPopoverProperty, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
37
|
-
/** @nocollapse */ XPopoverProperty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.5", type: XPopoverProperty, selector: "[x-popover], x-popover", inputs: { title: "title", content: "content", footer: "footer", placement: "placement", trigger: "trigger", width: "width", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0 });
|
|
37
|
+
/** @nocollapse */ XPopoverProperty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.5", type: XPopoverProperty, selector: "[x-popover], x-popover", inputs: { title: "title", content: "content", footer: "footer", placement: "placement", trigger: "trigger", width: "width", visible: "visible", condition: "condition" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0 });
|
|
38
38
|
__decorate([
|
|
39
39
|
XWithConfig(X_CONFIG_NAME, 'bottom')
|
|
40
40
|
], XPopoverProperty.prototype, "placement", void 0);
|
|
@@ -47,6 +47,9 @@ __decorate([
|
|
|
47
47
|
__decorate([
|
|
48
48
|
XInputBoolean()
|
|
49
49
|
], XPopoverProperty.prototype, "visible", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
XInputBoolean()
|
|
52
|
+
], XPopoverProperty.prototype, "condition", void 0);
|
|
50
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XPopoverProperty, decorators: [{
|
|
51
54
|
type: Directive,
|
|
52
55
|
args: [{ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` }]
|
|
@@ -64,6 +67,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImpor
|
|
|
64
67
|
type: Input
|
|
65
68
|
}], visible: [{
|
|
66
69
|
type: Input
|
|
70
|
+
}], condition: [{
|
|
71
|
+
type: Input
|
|
67
72
|
}], visibleChange: [{
|
|
68
73
|
type: Output
|
|
69
74
|
}] } });
|
|
@@ -189,6 +194,8 @@ class XPopoverDirective extends XPopoverProperty {
|
|
|
189
194
|
this._unSubject = new Subject();
|
|
190
195
|
}
|
|
191
196
|
click() {
|
|
197
|
+
if (this.condition)
|
|
198
|
+
return;
|
|
192
199
|
if (this.trigger === 'click') {
|
|
193
200
|
this.visible = !this.visible;
|
|
194
201
|
if (this.visible)
|
|
@@ -199,10 +206,14 @@ class XPopoverDirective extends XPopoverProperty {
|
|
|
199
206
|
}
|
|
200
207
|
}
|
|
201
208
|
mouseenter() {
|
|
209
|
+
if (this.condition)
|
|
210
|
+
return;
|
|
202
211
|
if (this.trigger === 'hover')
|
|
203
212
|
this.show();
|
|
204
213
|
}
|
|
205
214
|
mouseleave() {
|
|
215
|
+
if (this.condition)
|
|
216
|
+
return;
|
|
206
217
|
if (this.trigger === 'hover')
|
|
207
218
|
this.hide();
|
|
208
219
|
}
|
|
@@ -210,7 +221,7 @@ class XPopoverDirective extends XPopoverProperty {
|
|
|
210
221
|
ngOnChanges(changes) {
|
|
211
222
|
const { content, visible } = changes;
|
|
212
223
|
XIsChange(content) && this.contentChange.next(this.content);
|
|
213
|
-
if (XIsChange(visible)) {
|
|
224
|
+
if (XIsChange(visible) && !this.condition) {
|
|
214
225
|
if (this.visible)
|
|
215
226
|
this.show();
|
|
216
227
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-popover.js","sources":["../../../../lib/ng-nest/ui/popover/popover.property.ts","../../../../lib/ng-nest/ui/popover/popover-portal.component.ts","../../../../lib/ng-nest/ui/popover/popover-portal.component.html","../../../../lib/ng-nest/ui/popover/popover.directive.ts","../../../../lib/ng-nest/ui/popover/popover.module.ts","../../../../lib/ng-nest/ui/popover/ng-nest-ui-popover.ts"],"sourcesContent":["import { XPlacement, XTemplate, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Directive } from '@angular/core';\r\n\r\n/**\r\n * Popover\r\n * @selector x-popover\r\n * @decorator directive\r\n */\r\nexport const XPopoverPrefix = 'x-popover';\r\nconst X_CONFIG_NAME = 'popover';\r\n\r\n/**\r\n * Popover Property\r\n */\r\n@Directive({ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` })\r\nexport class XPopoverProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题,支持自定义模板\r\n * @en_US Title, support custom template\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 内容,支持自定义模板\r\n * @en_US Content, support custom templates\r\n */\r\n @Input() content?: XTemplate;\r\n /**\r\n * @zh_CN 底部,支持自定义模板\r\n * @en_US At the bottom, support custom templates\r\n */\r\n @Input() footer?: XTemplate;\r\n /**\r\n * @zh_CN 弹出的位置\r\n * @en_US Pop-up position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement?: XPlacement;\r\n /**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n */\r\n @Input() @XWithConfig<XPopoverTrigger>(X_CONFIG_NAME, 'hover') trigger?: XPopoverTrigger;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '10rem') width?: string;\r\n /**\r\n * @zh_CN 显示/隐藏控制\r\n * @en_US Show/hide control\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 显示/隐藏改变的事件\r\n * @en_US Show/hide changed events\r\n */\r\n @Output() visibleChange = new EventEmitter<XBoolean>();\r\n}\r\n\r\n/**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n * @value \"hover\"\r\n * @value \"click\"\r\n */\r\nexport type XPopoverTrigger = 'hover' | 'click';\r\n\r\n/**\r\n * Popover Portal\r\n * @selector x-popover-portal\r\n * @decorator component\r\n */\r\nexport const XPopoverPortalPrefix = 'x-popover-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy,\r\n ViewChild,\r\n Renderer2,\r\n HostListener,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { XPopoverPortalPrefix, XPopoverTrigger } from './popover.property';\r\nimport { XTemplate, XPlacement, XClassMap, XFadeAnimation } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPopoverPortalPrefix}`,\r\n templateUrl: './popover-portal.component.html',\r\n styleUrls: ['./popover-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XFadeAnimation]\r\n})\r\nexport class XPopoverPortalComponent implements OnInit, OnDestroy {\r\n @HostListener('mouseenter') mouseenter() {\r\n if (this.trigger === 'hover') {\r\n this.portalHover(true);\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n if (this.trigger === 'hover') {\r\n this.portalHover(false);\r\n }\r\n }\r\n\r\n @HostBinding('@x-fade-animation') animation: any;\r\n\r\n @ViewChild('popoverPortal', { static: true }) popoverPortal!: ElementRef;\r\n @ViewChild('popoverArrow', { static: true }) popoverArrow!: ElementRef;\r\n\r\n classMap: XClassMap = {};\r\n box!: DOMRect;\r\n portalBox!: DOMRect;\r\n arrowBox!: DOMRect;\r\n // docClickFunction: Function;\r\n title!: XTemplate;\r\n content!: XTemplate;\r\n footer!: XTemplate;\r\n contentChange!: BehaviorSubject<any>;\r\n trigger!: XPopoverTrigger;\r\n placement!: XPlacement;\r\n previousPlacement!: XPlacement;\r\n portalHover!: Function;\r\n closePortal!: Function;\r\n viewInit!: Function;\r\n width!: string;\r\n positionChange: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.contentChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.content = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.setClassMap();\r\n setTimeout(() => this.setArrow());\r\n this.cdr.detectChanges();\r\n });\r\n this.setClassMap();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.viewInit();\r\n this.portalBox = this.popoverPortal.nativeElement.getBoundingClientRect();\r\n this.arrowBox = this.popoverArrow.nativeElement.getBoundingClientRect();\r\n this.setArrow();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XPopoverPortalPrefix}-${this.previousPlacement}`] = false;\r\n this.classMap[`${XPopoverPortalPrefix}-${this.placement}`] = true;\r\n this.previousPlacement = `${this.placement}` as XPlacement;\r\n }\r\n\r\n setArrow() {\r\n let offset = this.arrowBox.height / 2;\r\n if (this.portalBox.height > this.box.height && (this.includes('right-') || this.includes('left-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'top', `${this.box.height / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'bottom', `${this.box.height / 2 - offset}px`);\r\n }\r\n } else if (this.portalBox.width > this.box.width && (this.includes('top-') || this.includes('bottom-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'left', `${this.box.width / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'right', `${this.box.width / 2 - offset}px`);\r\n }\r\n }\r\n }\r\n\r\n includes(arrow: string) {\r\n return this.placement.indexOf(arrow) >= 0;\r\n }\r\n}\r\n","<div #popoverPortal class=\"x-popover-portal\" [ngClass]=\"classMap\" (click)=\"stopPropagation($event)\">\r\n <div class=\"x-popover-portal-inner\" [style.width]=\"width\">\r\n <div *ngIf=\"title\" class=\"x-popover-portal-title\">\r\n <ng-container *xOutlet=\"title\">\r\n {{ title }}\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"content\" class=\"x-popover-portal-content\">\r\n <ng-container *xOutlet=\"content\">\r\n {{ content }}\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"footer\" class=\"x-popover-portal-footer\">\r\n <ng-container *xOutlet=\"footer\">\r\n {{ footer }}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div #popoverArrow class=\"x-popover-portal-arrow\"></div>\r\n</div>\r\n","import { OnInit, ElementRef, ViewContainerRef, Directive, HostListener, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XPopoverPortalComponent } from './popover-portal.component';\r\nimport { XPopoverPrefix, XPopoverProperty } from './popover.property';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, Overlay } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XPlacement, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Directive({ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` })\r\nexport class XPopoverDirective extends XPopoverProperty implements OnInit, OnChanges {\r\n portal!: XPortalOverlayRef<XPopoverPortalComponent>;\r\n box!: DOMRect;\r\n contentChange: BehaviorSubject<any> = new BehaviorSubject(null);\r\n positionChange: Subject<any> = new Subject();\r\n timeoutHide: any;\r\n private _unSubject = new Subject<void>();\r\n private realPlacement!: XPlacement;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n @HostListener('click') click() {\r\n if (this.trigger === 'click') {\r\n this.visible = !this.visible;\r\n if (this.visible) this.show();\r\n else this.hide();\r\n this.visibleChange.emit(this.visible);\r\n }\r\n }\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n if (this.trigger === 'hover') this.show();\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n if (this.trigger === 'hover') this.hide();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { content, visible } = changes;\r\n XIsChange(content) && this.contentChange.next(this.content);\r\n if (XIsChange(visible)) {\r\n if (this.visible) this.show();\r\n else this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n this.contentChange.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {}\r\n\r\n show() {\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (!this.portal || (this.portal && !this.portal.overlayRef?.hasAttached())) {\r\n this.visible = true;\r\n this.createPortal();\r\n this.visibleChange.emit(this.visible);\r\n }\r\n }\r\n\r\n hide() {\r\n if (this.portal.overlayRef?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.visible = false;\r\n this.portal.overlayRef?.dispose();\r\n this.visibleChange.emit(this.visible);\r\n });\r\n }\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.portalService.setPlacement({\r\n elementRef: this.elementRef,\r\n placement: [this.placement as XPlacement, 'bottom', 'top', 'left', 'right']\r\n }),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XPopoverPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n if (this.trigger === 'click') {\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPlacement;\r\n if (place !== this.realPlacement) {\r\n this.realPlacement = place;\r\n this.positionChange.next(place);\r\n this.portal.overlayRef?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n this.box = this.elementRef.nativeElement.getBoundingClientRect();\r\n this.realPlacement = `${this.placement}` as XPlacement;\r\n Object.assign(componentRef.instance, {\r\n box: this.box,\r\n title: this.title,\r\n content: this.content,\r\n footer: this.footer,\r\n contentChange: this.contentChange,\r\n positionChange: this.positionChange,\r\n trigger: this.trigger,\r\n placement: this.placement,\r\n width: this.width,\r\n portalHover: (hover: boolean) => {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.hide();\r\n }\r\n },\r\n closePortal: () => this.hide(),\r\n viewInit: () => this.portal.overlayRef?.updatePosition()\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n update() {\r\n if (this.portal) this.portal.overlayRef?.updatePosition();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPopoverDirective } from './popover.directive';\r\nimport { XPopoverPortalComponent } from './popover-portal.component';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XPopoverProperty } from './popover.property';\r\n\r\n@NgModule({\r\n declarations: [XPopoverDirective, XPopoverPortalComponent, XPopoverProperty],\r\n exports: [XPopoverDirective, XPopoverPortalComponent],\r\n imports: [CommonModule, XPortalModule, XOutletModule],\r\n entryComponents: [XPopoverPortalComponent]\r\n})\r\nexport class XPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-popover.js","sources":["../../../../lib/ng-nest/ui/popover/popover.property.ts","../../../../lib/ng-nest/ui/popover/popover-portal.component.ts","../../../../lib/ng-nest/ui/popover/popover-portal.component.html","../../../../lib/ng-nest/ui/popover/popover.directive.ts","../../../../lib/ng-nest/ui/popover/popover.module.ts","../../../../lib/ng-nest/ui/popover/ng-nest-ui-popover.ts"],"sourcesContent":["import { XPlacement, XTemplate, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Directive } from '@angular/core';\r\n\r\n/**\r\n * Popover\r\n * @selector x-popover\r\n * @decorator directive\r\n */\r\nexport const XPopoverPrefix = 'x-popover';\r\nconst X_CONFIG_NAME = 'popover';\r\n\r\n/**\r\n * Popover Property\r\n */\r\n@Directive({ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` })\r\nexport class XPopoverProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题,支持自定义模板\r\n * @en_US Title, support custom template\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 内容,支持自定义模板\r\n * @en_US Content, support custom templates\r\n */\r\n @Input() content?: XTemplate;\r\n /**\r\n * @zh_CN 底部,支持自定义模板\r\n * @en_US At the bottom, support custom templates\r\n */\r\n @Input() footer?: XTemplate;\r\n /**\r\n * @zh_CN 弹出的位置\r\n * @en_US Pop-up position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement?: XPlacement;\r\n /**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n */\r\n @Input() @XWithConfig<XPopoverTrigger>(X_CONFIG_NAME, 'hover') trigger?: XPopoverTrigger;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '10rem') width?: string;\r\n /**\r\n * @zh_CN 显示/隐藏控制\r\n * @en_US Show/hide control\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 条件触发\r\n * @en_US condition trigger\r\n */\r\n @Input() @XInputBoolean() condition?: XBoolean;\r\n /**\r\n * @zh_CN 显示/隐藏改变的事件\r\n * @en_US Show/hide changed events\r\n */\r\n @Output() visibleChange = new EventEmitter<XBoolean>();\r\n}\r\n\r\n/**\r\n * @zh_CN 激活方式\r\n * @en_US Activation method\r\n * @value \"hover\"\r\n * @value \"click\"\r\n */\r\nexport type XPopoverTrigger = 'hover' | 'click';\r\n\r\n/**\r\n * Popover Portal\r\n * @selector x-popover-portal\r\n * @decorator component\r\n */\r\nexport const XPopoverPortalPrefix = 'x-popover-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy,\r\n ViewChild,\r\n Renderer2,\r\n HostListener,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { XPopoverPortalPrefix, XPopoverTrigger } from './popover.property';\r\nimport { XTemplate, XPlacement, XClassMap, XFadeAnimation } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XPopoverPortalPrefix}`,\r\n templateUrl: './popover-portal.component.html',\r\n styleUrls: ['./popover-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XFadeAnimation]\r\n})\r\nexport class XPopoverPortalComponent implements OnInit, OnDestroy {\r\n @HostListener('mouseenter') mouseenter() {\r\n if (this.trigger === 'hover') {\r\n this.portalHover(true);\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n if (this.trigger === 'hover') {\r\n this.portalHover(false);\r\n }\r\n }\r\n\r\n @HostBinding('@x-fade-animation') animation: any;\r\n\r\n @ViewChild('popoverPortal', { static: true }) popoverPortal!: ElementRef;\r\n @ViewChild('popoverArrow', { static: true }) popoverArrow!: ElementRef;\r\n\r\n classMap: XClassMap = {};\r\n box!: DOMRect;\r\n portalBox!: DOMRect;\r\n arrowBox!: DOMRect;\r\n // docClickFunction: Function;\r\n title!: XTemplate;\r\n content!: XTemplate;\r\n footer!: XTemplate;\r\n contentChange!: BehaviorSubject<any>;\r\n trigger!: XPopoverTrigger;\r\n placement!: XPlacement;\r\n previousPlacement!: XPlacement;\r\n portalHover!: Function;\r\n closePortal!: Function;\r\n viewInit!: Function;\r\n width!: string;\r\n positionChange: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.contentChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.content = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.setClassMap();\r\n setTimeout(() => this.setArrow());\r\n this.cdr.detectChanges();\r\n });\r\n this.setClassMap();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.viewInit();\r\n this.portalBox = this.popoverPortal.nativeElement.getBoundingClientRect();\r\n this.arrowBox = this.popoverArrow.nativeElement.getBoundingClientRect();\r\n this.setArrow();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XPopoverPortalPrefix}-${this.previousPlacement}`] = false;\r\n this.classMap[`${XPopoverPortalPrefix}-${this.placement}`] = true;\r\n this.previousPlacement = `${this.placement}` as XPlacement;\r\n }\r\n\r\n setArrow() {\r\n let offset = this.arrowBox.height / 2;\r\n if (this.portalBox.height > this.box.height && (this.includes('right-') || this.includes('left-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'top', `${this.box.height / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'bottom', `${this.box.height / 2 - offset}px`);\r\n }\r\n } else if (this.portalBox.width > this.box.width && (this.includes('top-') || this.includes('bottom-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'left', `${this.box.width / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.popoverArrow.nativeElement, 'right', `${this.box.width / 2 - offset}px`);\r\n }\r\n }\r\n }\r\n\r\n includes(arrow: string) {\r\n return this.placement.indexOf(arrow) >= 0;\r\n }\r\n}\r\n","<div #popoverPortal class=\"x-popover-portal\" [ngClass]=\"classMap\" (click)=\"stopPropagation($event)\">\r\n <div class=\"x-popover-portal-inner\" [style.width]=\"width\">\r\n <div *ngIf=\"title\" class=\"x-popover-portal-title\">\r\n <ng-container *xOutlet=\"title\">\r\n {{ title }}\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"content\" class=\"x-popover-portal-content\">\r\n <ng-container *xOutlet=\"content\">\r\n {{ content }}\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"footer\" class=\"x-popover-portal-footer\">\r\n <ng-container *xOutlet=\"footer\">\r\n {{ footer }}\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div #popoverArrow class=\"x-popover-portal-arrow\"></div>\r\n</div>\r\n","import { OnInit, ElementRef, ViewContainerRef, Directive, HostListener, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XPopoverPortalComponent } from './popover-portal.component';\r\nimport { XPopoverPrefix, XPopoverProperty } from './popover.property';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, Overlay } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XPlacement, XIsChange, XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Directive({ selector: `[${XPopoverPrefix}], ${XPopoverPrefix}` })\r\nexport class XPopoverDirective extends XPopoverProperty implements OnInit, OnChanges {\r\n portal!: XPortalOverlayRef<XPopoverPortalComponent>;\r\n box!: DOMRect;\r\n contentChange: BehaviorSubject<any> = new BehaviorSubject(null);\r\n positionChange: Subject<any> = new Subject();\r\n timeoutHide: any;\r\n private _unSubject = new Subject<void>();\r\n private realPlacement!: XPlacement;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n @HostListener('click') click() {\r\n if (this.condition) return;\r\n if (this.trigger === 'click') {\r\n this.visible = !this.visible;\r\n if (this.visible) this.show();\r\n else this.hide();\r\n this.visibleChange.emit(this.visible);\r\n }\r\n }\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n if (this.condition) return;\r\n if (this.trigger === 'hover') this.show();\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n if (this.condition) return;\r\n if (this.trigger === 'hover') this.hide();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { content, visible } = changes;\r\n XIsChange(content) && this.contentChange.next(this.content);\r\n if (XIsChange(visible) && !this.condition) {\r\n if (this.visible) this.show();\r\n else this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n this.contentChange.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {}\r\n\r\n show() {\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (!this.portal || (this.portal && !this.portal.overlayRef?.hasAttached())) {\r\n this.visible = true;\r\n this.createPortal();\r\n this.visibleChange.emit(this.visible);\r\n }\r\n }\r\n\r\n hide() {\r\n if (this.portal.overlayRef?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.visible = false;\r\n this.portal.overlayRef?.dispose();\r\n this.visibleChange.emit(this.visible);\r\n });\r\n }\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.portalService.setPlacement({\r\n elementRef: this.elementRef,\r\n placement: [this.placement as XPlacement, 'bottom', 'top', 'left', 'right']\r\n }),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XPopoverPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n if (this.trigger === 'click') {\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPlacement;\r\n if (place !== this.realPlacement) {\r\n this.realPlacement = place;\r\n this.positionChange.next(place);\r\n this.portal.overlayRef?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n this.box = this.elementRef.nativeElement.getBoundingClientRect();\r\n this.realPlacement = `${this.placement}` as XPlacement;\r\n Object.assign(componentRef.instance, {\r\n box: this.box,\r\n title: this.title,\r\n content: this.content,\r\n footer: this.footer,\r\n contentChange: this.contentChange,\r\n positionChange: this.positionChange,\r\n trigger: this.trigger,\r\n placement: this.placement,\r\n width: this.width,\r\n portalHover: (hover: boolean) => {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.hide();\r\n }\r\n },\r\n closePortal: () => this.hide(),\r\n viewInit: () => this.portal.overlayRef?.updatePosition()\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n update() {\r\n if (this.portal) this.portal.overlayRef?.updatePosition();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XPopoverDirective } from './popover.directive';\r\nimport { XPopoverPortalComponent } from './popover-portal.component';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XPopoverProperty } from './popover.property';\r\n\r\n@NgModule({\r\n declarations: [XPopoverDirective, XPopoverPortalComponent, XPopoverProperty],\r\n exports: [XPopoverDirective, XPopoverPortalComponent],\r\n imports: [CommonModule, XPortalModule, XOutletModule],\r\n entryComponents: [XPopoverPortalComponent]\r\n})\r\nexport class XPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/find/find.property.d.ts
CHANGED
|
@@ -43,6 +43,21 @@ export declare class XFindProperty extends XControlValueAccessor<any | any[]> im
|
|
|
43
43
|
* @en_US Bullet title
|
|
44
44
|
*/
|
|
45
45
|
dialogTitle: string;
|
|
46
|
+
/**
|
|
47
|
+
* @zh_CN 弹框表格选择列头名称
|
|
48
|
+
* @en_US Ball Form Select List Name
|
|
49
|
+
*/
|
|
50
|
+
dialogCheckboxLabel: string;
|
|
51
|
+
/**
|
|
52
|
+
* @zh_CN 弹框表格选择列宽
|
|
53
|
+
* @en_US Ball Form Select List width
|
|
54
|
+
*/
|
|
55
|
+
dialogCheckboxWidth: number;
|
|
56
|
+
/**
|
|
57
|
+
* @zh_CN 弹框选择数据为空的提示信息
|
|
58
|
+
* @en_US Ball box selection data empty prompt information
|
|
59
|
+
*/
|
|
60
|
+
dialogEmptyContent: string;
|
|
46
61
|
/**
|
|
47
62
|
* @zh_CN 弹框宽度
|
|
48
63
|
* @en_US Bullet frame width
|
|
@@ -211,7 +226,7 @@ export declare class XFindProperty extends XControlValueAccessor<any | any[]> im
|
|
|
211
226
|
*/
|
|
212
227
|
search: XFindSearchOption;
|
|
213
228
|
static ɵfac: i0.ɵɵFactoryDeclaration<XFindProperty, never>;
|
|
214
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<XFindProperty, "ng-component", never, { "size": "size"; "bordered": "bordered"; "multiple": "multiple"; "columnLabel": "columnLabel"; "dialogTitle": "dialogTitle"; "dialogWidth": "dialogWidth"; "dialogHeight": "dialogHeight"; "dialogVisible": "dialogVisible"; "dialogButtonsCenter": "dialogButtonsCenter"; "tableData": "tableData"; "tableIndex": "tableIndex"; "tableSize": "tableSize"; "tableQuery": "tableQuery"; "tableTotal": "tableTotal"; "tableColumns": "tableColumns"; "tableActivatedRow": "tableActivatedRow"; "tableCheckedRow": "tableCheckedRow"; "tableLoading": "tableLoading"; "tableVirtualScroll": "tableVirtualScroll"; "tableBodyHeight": "tableBodyHeight"; "tableMinBufferPx": "tableMinBufferPx"; "tableMaxBufferPx": "tableMaxBufferPx"; "tableAdaptionHeight": "tableAdaptionHeight"; "tableDocPercent": "tableDocPercent"; "tableRowHeight": "tableRowHeight"; "treeData": "treeData"; "treeActivatedId": "treeActivatedId"; "treeExpandedLevel": "treeExpandedLevel"; "treeChecked": "treeChecked"; "treeCheckbox": "treeCheckbox"; "treeTableConnect": "treeTableConnect"; "search": "search"; }, { "dialogVisibleChange": "dialogVisibleChange"; "tableIndexChange": "tableIndexChange"; "tableSizeChange": "tableSizeChange"; "tableSortChange": "tableSortChange"; "tableRowEmit": "tableRowEmit"; "treeActivatedChange": "treeActivatedChange"; }, never, never>;
|
|
229
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<XFindProperty, "ng-component", never, { "size": "size"; "bordered": "bordered"; "multiple": "multiple"; "columnLabel": "columnLabel"; "dialogTitle": "dialogTitle"; "dialogCheckboxLabel": "dialogCheckboxLabel"; "dialogCheckboxWidth": "dialogCheckboxWidth"; "dialogEmptyContent": "dialogEmptyContent"; "dialogWidth": "dialogWidth"; "dialogHeight": "dialogHeight"; "dialogVisible": "dialogVisible"; "dialogButtonsCenter": "dialogButtonsCenter"; "tableData": "tableData"; "tableIndex": "tableIndex"; "tableSize": "tableSize"; "tableQuery": "tableQuery"; "tableTotal": "tableTotal"; "tableColumns": "tableColumns"; "tableActivatedRow": "tableActivatedRow"; "tableCheckedRow": "tableCheckedRow"; "tableLoading": "tableLoading"; "tableVirtualScroll": "tableVirtualScroll"; "tableBodyHeight": "tableBodyHeight"; "tableMinBufferPx": "tableMinBufferPx"; "tableMaxBufferPx": "tableMaxBufferPx"; "tableAdaptionHeight": "tableAdaptionHeight"; "tableDocPercent": "tableDocPercent"; "tableRowHeight": "tableRowHeight"; "treeData": "treeData"; "treeActivatedId": "treeActivatedId"; "treeExpandedLevel": "treeExpandedLevel"; "treeChecked": "treeChecked"; "treeCheckbox": "treeCheckbox"; "treeTableConnect": "treeTableConnect"; "search": "search"; }, { "dialogVisibleChange": "dialogVisibleChange"; "tableIndexChange": "tableIndexChange"; "tableSizeChange": "tableSizeChange"; "tableSortChange": "tableSortChange"; "tableRowEmit": "tableRowEmit"; "treeActivatedChange": "treeActivatedChange"; }, never, never>;
|
|
215
230
|
}
|
|
216
231
|
/**
|
|
217
232
|
* Find Option
|
|
@@ -243,6 +258,21 @@ export interface XFindOption extends XFormOption {
|
|
|
243
258
|
* @en_US Bullet title
|
|
244
259
|
*/
|
|
245
260
|
dialogTitle?: string;
|
|
261
|
+
/**
|
|
262
|
+
* @zh_CN 弹框表格选择框列头名称
|
|
263
|
+
* @en_US Ball Form Select Box List Name
|
|
264
|
+
*/
|
|
265
|
+
dialogCheckboxLabel?: string;
|
|
266
|
+
/**
|
|
267
|
+
* @zh_CN 弹框表格选择框列头宽度
|
|
268
|
+
* @en_US Ball Form Select Box List width
|
|
269
|
+
*/
|
|
270
|
+
dialogCheckboxWidth?: number;
|
|
271
|
+
/**
|
|
272
|
+
* @zh_CN 弹框选择数据为空的提示内容
|
|
273
|
+
* @en_US Ball box selection data empty prompt information
|
|
274
|
+
*/
|
|
275
|
+
dialogEmptyContent?: string;
|
|
246
276
|
/**
|
|
247
277
|
* @zh_CN 弹框宽度
|
|
248
278
|
* @en_US Bullet frame width
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Renderer2, ElementRef, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { XMessageOption,
|
|
2
|
+
import { XMessageOption, XMessagePlacementRef } from './message.property';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export declare class XMessageComponent {
|
|
5
5
|
renderer: Renderer2;
|
|
6
6
|
elementRef: ElementRef;
|
|
7
7
|
cdr: ChangeDetectorRef;
|
|
8
|
-
message:
|
|
8
|
+
message: XMessagePlacementRef;
|
|
9
9
|
constructor(renderer: Renderer2, elementRef: ElementRef, cdr: ChangeDetectorRef);
|
|
10
10
|
onClose(item: XMessageOption): void;
|
|
11
11
|
moveDone($event: {
|
|
@@ -13,7 +13,7 @@ export declare class XMessageComponent {
|
|
|
13
13
|
}): void;
|
|
14
14
|
onEnter(item: XMessageOption): void;
|
|
15
15
|
onLeave(item: XMessageOption): void;
|
|
16
|
-
trackByNode(_index: number, item: XMessageOption): string;
|
|
16
|
+
trackByNode(_index: number, item: XMessageOption): string | undefined;
|
|
17
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<XMessageComponent, never>;
|
|
18
18
|
static ɵcmp: i0.ɵɵComponentDeclaration<XMessageComponent, "x-message", never, {}, {}, never, never>;
|
|
19
19
|
}
|
|
@@ -15,6 +15,11 @@ export declare const X_MESSAGE_CONFIG_NAME = "message";
|
|
|
15
15
|
* Message Option
|
|
16
16
|
*/
|
|
17
17
|
export interface XMessageOption extends XAlertOption {
|
|
18
|
+
/**
|
|
19
|
+
* @zh_CN 消息框的 id
|
|
20
|
+
* @en_US Message id
|
|
21
|
+
*/
|
|
22
|
+
id?: string;
|
|
18
23
|
/**
|
|
19
24
|
* @zh_CN 方位,九宫格
|
|
20
25
|
* @en_US Direction, nine grid
|
|
@@ -98,12 +103,27 @@ export interface XMessageOverlayRef extends XPortalOverlayRef<XMessageComponent>
|
|
|
98
103
|
* @en_US Message object in Jiugongge
|
|
99
104
|
*/
|
|
100
105
|
export interface XMessagePlacement {
|
|
101
|
-
[property: string]:
|
|
106
|
+
[property: string]: XMessagePlacementRef;
|
|
102
107
|
}
|
|
103
|
-
|
|
108
|
+
/**
|
|
109
|
+
* @zh_CN 九宫格中的消息对象
|
|
110
|
+
* @en_US Message object in Jiugongge
|
|
111
|
+
*/
|
|
112
|
+
export interface XMessagePlacementRef {
|
|
113
|
+
/**
|
|
114
|
+
* @zh_CN 方位对应的 overlayRef
|
|
115
|
+
* @en_US Placement overlayRef
|
|
116
|
+
*/
|
|
104
117
|
ref: XMessageOverlayRef;
|
|
118
|
+
/**
|
|
119
|
+
* @zh_CN 对应的消息 list 数据
|
|
120
|
+
* @en_US Corresponding message list data
|
|
121
|
+
*/
|
|
105
122
|
list: XMessageOption[];
|
|
106
|
-
|
|
123
|
+
/**
|
|
124
|
+
* @zh_CN 关闭所有数据
|
|
125
|
+
* @en_US Close all data
|
|
126
|
+
*/
|
|
107
127
|
closeAll: () => void;
|
|
108
128
|
}
|
|
109
129
|
/**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { XTemplate, XConfigService, XMessageConfig } from '@ng-nest/ui/core';
|
|
2
|
-
import { XMessageOverlayRef, XMessagePlacement,
|
|
2
|
+
import { XMessageOverlayRef, XMessagePlacement, XMessageOption } from './message.property';
|
|
3
3
|
import { XPortalService } from '@ng-nest/ui/portal';
|
|
4
|
+
import { XMessageRef } from './message-ref';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class XMessageService {
|
|
6
7
|
portal: XPortalService;
|
|
@@ -13,6 +14,7 @@ export declare class XMessageService {
|
|
|
13
14
|
success(option: XTemplate | XMessageOption): XMessageRef;
|
|
14
15
|
warning(option: XTemplate | XMessageOption): XMessageRef;
|
|
15
16
|
error(option: XTemplate | XMessageOption): XMessageRef;
|
|
17
|
+
loading(option: XTemplate | XMessageOption): XMessageRef;
|
|
16
18
|
create(option: XMessageOption): XMessageOverlayRef;
|
|
17
19
|
private createMessage;
|
|
18
20
|
private closeAll;
|
|
@@ -20,6 +22,7 @@ export declare class XMessageService {
|
|
|
20
22
|
private messageChange;
|
|
21
23
|
private setDuration;
|
|
22
24
|
private removeMessage;
|
|
25
|
+
private updateMessage;
|
|
23
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<XMessageService, never>;
|
|
24
27
|
static ɵprov: i0.ɵɵInjectableDeclaration<XMessageService>;
|
|
25
28
|
}
|
package/message/public-api.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Renderer2, ElementRef, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { Renderer2, ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
2
2
|
import { XPopconfirmProperty } from './popconfirm.property';
|
|
3
3
|
import { XBoolean, XConfigService } from '@ng-nest/ui/core';
|
|
4
4
|
import { XI18nService, XI18nPopconfirm } from '@ng-nest/ui/i18n';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class XPopconfirmComponent extends XPopconfirmProperty {
|
|
6
|
+
export declare class XPopconfirmComponent extends XPopconfirmProperty implements OnDestroy {
|
|
7
7
|
renderer: Renderer2;
|
|
8
8
|
elementRef: ElementRef;
|
|
9
9
|
cdr: ChangeDetectorRef;
|
|
@@ -11,13 +11,17 @@ export declare class XPopconfirmComponent extends XPopconfirmProperty {
|
|
|
11
11
|
i18n: XI18nService;
|
|
12
12
|
visible: XBoolean;
|
|
13
13
|
locale: XI18nPopconfirm;
|
|
14
|
+
loading: boolean;
|
|
14
15
|
private _unSubject;
|
|
16
|
+
private _asyncUnSub;
|
|
15
17
|
get getCancelText(): string | undefined;
|
|
16
18
|
get getConfirmText(): string | undefined;
|
|
17
19
|
constructor(renderer: Renderer2, elementRef: ElementRef, cdr: ChangeDetectorRef, configService: XConfigService, i18n: XI18nService);
|
|
18
20
|
ngOnInit(): void;
|
|
21
|
+
ngOnDestroy(): void;
|
|
19
22
|
onCancel(): void;
|
|
20
23
|
onConfirm(): void;
|
|
24
|
+
onClick(): void;
|
|
21
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<XPopconfirmComponent, never>;
|
|
22
26
|
static ɵcmp: i0.ɵɵComponentDeclaration<XPopconfirmComponent, "x-popconfirm", never, {}, {}, never, ["*"]>;
|
|
23
27
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { XPlacement, XTemplate, XProperty } from '@ng-nest/ui/core';
|
|
1
|
+
import { XPlacement, XTemplate, XProperty, XBoolean } from '@ng-nest/ui/core';
|
|
2
2
|
import { XPopoverTrigger } from '@ng-nest/ui/popover';
|
|
3
3
|
import { EventEmitter } from '@angular/core';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* Popconfirm
|
|
@@ -57,6 +58,16 @@ export declare class XPopconfirmProperty extends XProperty {
|
|
|
57
58
|
* @en_US Confirmed text
|
|
58
59
|
*/
|
|
59
60
|
confirmText?: string;
|
|
61
|
+
/**
|
|
62
|
+
* @zh_CN 确认异步 Observable
|
|
63
|
+
* @en_US Confirm async
|
|
64
|
+
*/
|
|
65
|
+
confirmAsync?: Observable<void>;
|
|
66
|
+
/**
|
|
67
|
+
* @zh_CN 条件触发
|
|
68
|
+
* @en_US condition trigger
|
|
69
|
+
*/
|
|
70
|
+
condition?: XBoolean;
|
|
60
71
|
/**
|
|
61
72
|
* @zh_CN 取消的点击事件
|
|
62
73
|
* @en_US Cancelled click event
|
|
@@ -68,5 +79,5 @@ export declare class XPopconfirmProperty extends XProperty {
|
|
|
68
79
|
*/
|
|
69
80
|
confirm: EventEmitter<any>;
|
|
70
81
|
static ɵfac: i0.ɵɵFactoryDeclaration<XPopconfirmProperty, never>;
|
|
71
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<XPopconfirmProperty, "ng-component", never, { "title": "title"; "content": "content"; "placement": "placement"; "trigger": "trigger"; "width": "width"; "icon": "icon"; "iconColor": "iconColor"; "cancelText": "cancelText"; "confirmText": "confirmText"; }, { "cancel": "cancel"; "confirm": "confirm"; }, never, never>;
|
|
82
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<XPopconfirmProperty, "ng-component", never, { "title": "title"; "content": "content"; "placement": "placement"; "trigger": "trigger"; "width": "width"; "icon": "icon"; "iconColor": "iconColor"; "cancelText": "cancelText"; "confirmText": "confirmText"; "confirmAsync": "confirmAsync"; "condition": "condition"; }, { "cancel": "cancel"; "confirm": "confirm"; }, never, never>;
|
|
72
83
|
}
|
|
@@ -46,13 +46,18 @@ export declare class XPopoverProperty extends XProperty {
|
|
|
46
46
|
* @en_US Show/hide control
|
|
47
47
|
*/
|
|
48
48
|
visible?: XBoolean;
|
|
49
|
+
/**
|
|
50
|
+
* @zh_CN 条件触发
|
|
51
|
+
* @en_US condition trigger
|
|
52
|
+
*/
|
|
53
|
+
condition?: XBoolean;
|
|
49
54
|
/**
|
|
50
55
|
* @zh_CN 显示/隐藏改变的事件
|
|
51
56
|
* @en_US Show/hide changed events
|
|
52
57
|
*/
|
|
53
58
|
visibleChange: EventEmitter<XBoolean>;
|
|
54
59
|
static ɵfac: i0.ɵɵFactoryDeclaration<XPopoverProperty, never>;
|
|
55
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<XPopoverProperty, "[x-popover], x-popover", never, { "title": "title"; "content": "content"; "footer": "footer"; "placement": "placement"; "trigger": "trigger"; "width": "width"; "visible": "visible"; }, { "visibleChange": "visibleChange"; }, never>;
|
|
60
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<XPopoverProperty, "[x-popover], x-popover", never, { "title": "title"; "content": "content"; "footer": "footer"; "placement": "placement"; "trigger": "trigger"; "width": "width"; "visible": "visible"; "condition": "condition"; }, { "visibleChange": "visibleChange"; }, never>;
|
|
56
61
|
}
|
|
57
62
|
/**
|
|
58
63
|
* @zh_CN 激活方式
|