@ng-nest/ui 13.0.4 → 13.0.8
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/core/config/config.d.ts +7 -1
- package/core/interfaces/layout.type.d.ts +1 -1
- package/dialog/{dialog-container.component.d.ts → dialog-portal.component.d.ts} +3 -3
- package/dialog/{dialog-container.directives.d.ts → dialog-portal.directives.d.ts} +0 -0
- package/dialog/dialog-ref.d.ts +3 -3
- package/dialog/dialog.module.d.ts +3 -3
- package/dialog/dialog.property.d.ts +3 -3
- package/dialog/public-api.d.ts +2 -2
- package/drawer/drawer-container.component.d.ts +3 -13
- package/drawer/drawer-portal.component.d.ts +18 -0
- package/drawer/{drawer-container.directives.d.ts → drawer-portal.directives.d.ts} +0 -0
- package/drawer/drawer-ref.d.ts +3 -3
- package/drawer/drawer.component.d.ts +10 -3
- package/drawer/drawer.module.d.ts +9 -8
- package/drawer/drawer.property.d.ts +16 -2
- package/drawer/examples/en_US/default/container/README.md +6 -0
- package/drawer/examples/zh_CN/default/container/README.md +6 -0
- package/drawer/public-api.d.ts +3 -2
- package/esm2020/alert/alert.component.mjs +9 -4
- package/esm2020/auto-complete/auto-complete.module.mjs +2 -3
- package/esm2020/cascade/cascade.module.mjs +2 -3
- package/esm2020/color-picker/color-picker.module.mjs +2 -3
- package/esm2020/core/config/config.mjs +1 -1
- package/esm2020/core/interfaces/layout.type.mjs +1 -1
- package/esm2020/date-picker/date-picker.module.mjs +2 -3
- package/esm2020/dialog/dialog-portal.component.mjs +52 -0
- package/esm2020/dialog/{dialog-container.directives.mjs → dialog-portal.directives.mjs} +7 -7
- package/esm2020/dialog/dialog-ref.mjs +1 -1
- package/esm2020/dialog/dialog.component.mjs +5 -5
- package/esm2020/dialog/dialog.module.mjs +7 -7
- package/esm2020/dialog/dialog.property.mjs +2 -2
- package/esm2020/dialog/dialog.service.mjs +3 -3
- package/esm2020/dialog/public-api.mjs +3 -3
- package/esm2020/drawer/drawer-container.component.mjs +16 -39
- package/esm2020/drawer/drawer-portal.component.mjs +52 -0
- package/esm2020/drawer/{drawer-container.directives.mjs → drawer-portal.directives.mjs} +5 -5
- package/esm2020/drawer/drawer-ref.mjs +1 -1
- package/esm2020/drawer/drawer.component.mjs +54 -18
- package/esm2020/drawer/drawer.module.mjs +23 -6
- package/esm2020/drawer/drawer.property.mjs +19 -1
- package/esm2020/drawer/drawer.service.mjs +4 -4
- package/esm2020/drawer/public-api.mjs +4 -3
- package/esm2020/dropdown/dropdown.module.mjs +2 -3
- package/esm2020/find/find.component.mjs +13 -4
- package/esm2020/find/find.property.mjs +18 -2
- package/esm2020/menu/menu.component.mjs +3 -3
- package/esm2020/menu/menu.property.mjs +7 -2
- package/esm2020/message/message-ref.mjs +12 -0
- package/esm2020/message/message.component.mjs +3 -3
- package/esm2020/message/message.property.mjs +1 -1
- package/esm2020/message/message.service.mjs +34 -13
- package/esm2020/message/public-api.mjs +2 -1
- package/esm2020/popconfirm/popconfirm.component.mjs +26 -5
- package/esm2020/popconfirm/popconfirm.property.mjs +10 -3
- package/esm2020/popover/popover.directive.mjs +8 -2
- package/esm2020/popover/popover.module.mjs +2 -3
- package/esm2020/popover/popover.property.mjs +7 -2
- package/esm2020/select/select.module.mjs +2 -3
- package/esm2020/table/table-body.component.mjs +4 -4
- package/esm2020/table/table.component.mjs +3 -3
- package/esm2020/table/table.property.mjs +7 -3
- package/esm2020/time-picker/time-picker.module.mjs +2 -3
- package/esm2020/tooltip/tooltip.directive.mjs +12 -4
- package/esm2020/tooltip/tooltip.module.mjs +2 -3
- package/esm2020/tooltip/tooltip.property.mjs +18 -2
- package/esm2020/tree/tree-node.component.mjs +3 -3
- package/esm2020/tree/tree.property.mjs +8 -2
- package/fesm2015/ng-nest-ui-alert.mjs +8 -3
- package/fesm2015/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.mjs +1 -2
- package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.mjs +1 -2
- package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color-picker.mjs +1 -2
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.mjs +1 -2
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.mjs +22 -22
- package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-drawer.mjs +129 -32
- package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dropdown.mjs +1 -2
- package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-find.mjs +29 -4
- package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-menu.mjs +8 -3
- package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-message.mjs +48 -15
- package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.mjs +34 -6
- package/fesm2015/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-popover.mjs +14 -4
- package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +1 -2
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +11 -7
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.mjs +1 -2
- package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tooltip.mjs +29 -6
- package/fesm2015/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree.mjs +9 -3
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-alert.mjs +8 -3
- package/fesm2020/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-auto-complete.mjs +1 -2
- package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-cascade.mjs +1 -2
- package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color-picker.mjs +1 -2
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-date-picker.mjs +1 -2
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dialog.mjs +22 -22
- package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-drawer.mjs +127 -32
- package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dropdown.mjs +1 -2
- package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-find.mjs +29 -4
- package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-menu.mjs +8 -3
- package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-message.mjs +47 -15
- package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-popconfirm.mjs +34 -6
- package/fesm2020/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-popover.mjs +14 -4
- package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +1 -2
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +11 -7
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-picker.mjs +1 -2
- package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tooltip.mjs +29 -6
- package/fesm2020/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree.mjs +9 -3
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/find/find.property.d.ts +31 -1
- package/menu/menu.property.d.ts +8 -3
- package/message/examples/en_US/default/loading/README.md +6 -0
- package/message/examples/zh_CN/default/loading/README.md +6 -0
- 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 +7 -7
- package/popconfirm/examples/en_US/default/async-close/README.md +6 -0
- package/popconfirm/examples/en_US/default/condition/README.md +6 -0
- package/popconfirm/examples/zh_CN/default/async-close/README.md +6 -0
- package/popconfirm/examples/zh_CN/default/condition/README.md +6 -0
- package/popconfirm/popconfirm.component.d.ts +6 -2
- package/popconfirm/popconfirm.property.d.ts +13 -2
- package/popover/popover.property.d.ts +6 -1
- package/steps/examples/zh_CN/default/node-status/README.md +1 -1
- package/table/examples/en_US/default/rowclass/README.md +6 -0
- package/table/examples/zh_CN/default/rowclass/README.md +6 -0
- package/table/table.property.d.ts +23 -2
- package/tooltip/tooltip.directive.d.ts +1 -0
- package/tooltip/tooltip.property.d.ts +11 -1
- package/tree/tree.property.d.ts +6 -1
- package/esm2020/dialog/dialog-container.component.mjs +0 -52
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy,
|
|
2
|
+
import { InjectionToken, EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, Optional, Inject, ViewChild, HostListener, Directive, TemplateRef, Injectable, NgModule } from '@angular/core';
|
|
3
3
|
import { __decorate } from 'tslib';
|
|
4
4
|
import * as i3 from '@ng-nest/ui/core';
|
|
5
|
-
import { XProperty, XInputBoolean, XWithConfig, XIsChange, XIsEmpty, XSlideAnimation, fillDefault } from '@ng-nest/ui/core';
|
|
5
|
+
import { XProperty, XInputBoolean, XWithConfig, XIsChange, XClearClass, XIsEmpty, XSlideAnimation, fillDefault } from '@ng-nest/ui/core';
|
|
6
6
|
import * as i1 from '@angular/cdk/overlay';
|
|
7
7
|
import * as i2 from '@ng-nest/ui/portal';
|
|
8
8
|
import { XPortalModule } from '@ng-nest/ui/portal';
|
|
@@ -83,10 +83,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
83
83
|
type: Output
|
|
84
84
|
}], visibleChange: [{
|
|
85
85
|
type: Output
|
|
86
|
+
}] } });
|
|
87
|
+
/**
|
|
88
|
+
* Drawer Container
|
|
89
|
+
* @selector x-drawer-container
|
|
90
|
+
* @decorator component
|
|
91
|
+
*/
|
|
92
|
+
const XDrawerContainerPrefix = 'x-drawer-container';
|
|
93
|
+
const X_DRAWER_CONTAINER = new InjectionToken('X_DRAWER_CONTAINER');
|
|
94
|
+
/**
|
|
95
|
+
* Drawer Container Property
|
|
96
|
+
*/
|
|
97
|
+
class XDrawerContainerProperty extends XProperty {
|
|
98
|
+
}
|
|
99
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerContainerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerContainerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerContainerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: XDrawerContainerProperty, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerContainerProperty, decorators: [{
|
|
102
|
+
type: Component,
|
|
103
|
+
args: [{ template: '' }]
|
|
104
|
+
}] });
|
|
105
|
+
|
|
106
|
+
class XDrawerContainerComponent extends XDrawerContainerProperty {
|
|
107
|
+
constructor() {
|
|
108
|
+
super();
|
|
109
|
+
this._has = true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: XDrawerContainerComponent, selector: "x-drawer-container", host: { properties: { "class.x-drawer-container": "this._has" } }, providers: [
|
|
114
|
+
{
|
|
115
|
+
provide: X_DRAWER_CONTAINER,
|
|
116
|
+
useExisting: XDrawerContainerComponent
|
|
117
|
+
}
|
|
118
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-drawer-container{margin:0;padding:0;position:relative;z-index:1;box-sizing:border-box;display:block;overflow:hidden}.x-drawer-container .x-drawer{position:absolute;display:block;outline:0;z-index:2;transition:transform .2s ease-in,visibility .2s ease-in;visibility:hidden}.x-drawer-container .x-drawer-left{transform:translate(-100%);left:0;top:0}.x-drawer-container .x-drawer-right{transform:translate(100%);right:0;top:0}.x-drawer-container .x-drawer-top{transform:translateY(-100%);top:0;left:0}.x-drawer-container .x-drawer-bottom{transform:translateY(100%);bottom:0;left:0}.x-drawer-container .x-drawer-visible{transform:translate(0);visibility:inherit}.x-drawer-container .x-drawer-visible .x-drawer-backdrop{opacity:1;z-index:1}.x-drawer-container .x-drawer-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1;pointer-events:auto;background:rgba(0,0,0,.32);transition:opacity .4s cubic-bezier(.25,.8,.25,1),z-index 0 ease-in .4s;opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerContainerComponent, decorators: [{
|
|
120
|
+
type: Component,
|
|
121
|
+
args: [{ selector: 'x-drawer-container', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
122
|
+
{
|
|
123
|
+
provide: X_DRAWER_CONTAINER,
|
|
124
|
+
useExisting: XDrawerContainerComponent
|
|
125
|
+
}
|
|
126
|
+
], template: "<ng-content></ng-content>\r\n", styles: [".x-drawer-container{margin:0;padding:0;position:relative;z-index:1;box-sizing:border-box;display:block;overflow:hidden}.x-drawer-container .x-drawer{position:absolute;display:block;outline:0;z-index:2;transition:transform .2s ease-in,visibility .2s ease-in;visibility:hidden}.x-drawer-container .x-drawer-left{transform:translate(-100%);left:0;top:0}.x-drawer-container .x-drawer-right{transform:translate(100%);right:0;top:0}.x-drawer-container .x-drawer-top{transform:translateY(-100%);top:0;left:0}.x-drawer-container .x-drawer-bottom{transform:translateY(100%);bottom:0;left:0}.x-drawer-container .x-drawer-visible{transform:translate(0);visibility:inherit}.x-drawer-container .x-drawer-visible .x-drawer-backdrop{opacity:1;z-index:1}.x-drawer-container .x-drawer-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1;pointer-events:auto;background:rgba(0,0,0,.32);transition:opacity .4s cubic-bezier(.25,.8,.25,1),z-index 0 ease-in .4s;opacity:0}\n"] }]
|
|
127
|
+
}], ctorParameters: function () { return []; }, propDecorators: { _has: [{
|
|
128
|
+
type: HostBinding,
|
|
129
|
+
args: ['class.x-drawer-container']
|
|
86
130
|
}] } });
|
|
87
131
|
|
|
88
132
|
class XDrawerComponent extends XDrawerProperty {
|
|
89
|
-
constructor(renderer, elementRef, cdr, overlay, portalService, viewContainerRef, configService) {
|
|
133
|
+
constructor(renderer, elementRef, cdr, overlay, portalService, viewContainerRef, configService, container) {
|
|
90
134
|
super();
|
|
91
135
|
this.renderer = renderer;
|
|
92
136
|
this.elementRef = elementRef;
|
|
@@ -95,14 +139,25 @@ class XDrawerComponent extends XDrawerProperty {
|
|
|
95
139
|
this.portalService = portalService;
|
|
96
140
|
this.viewContainerRef = viewContainerRef;
|
|
97
141
|
this.configService = configService;
|
|
142
|
+
this.container = container;
|
|
98
143
|
this.back$ = null;
|
|
144
|
+
this.width = '100%';
|
|
145
|
+
this.height = '100%';
|
|
146
|
+
}
|
|
147
|
+
get getVisible() {
|
|
148
|
+
return this.visible;
|
|
99
149
|
}
|
|
100
150
|
ngOnInit() {
|
|
101
151
|
this.setClassMap();
|
|
152
|
+
this.setSize();
|
|
102
153
|
}
|
|
103
154
|
ngOnChanges(simples) {
|
|
104
|
-
const { visible } = simples;
|
|
155
|
+
const { visible, placement } = simples;
|
|
105
156
|
XIsChange(visible) && this.setVisible();
|
|
157
|
+
if (XIsChange(placement)) {
|
|
158
|
+
this.setClassMap();
|
|
159
|
+
this.setSize();
|
|
160
|
+
}
|
|
106
161
|
}
|
|
107
162
|
ngOnDestroy() {
|
|
108
163
|
this.unsubscribe();
|
|
@@ -112,11 +167,22 @@ class XDrawerComponent extends XDrawerProperty {
|
|
|
112
167
|
(_a = this.back$) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
113
168
|
}
|
|
114
169
|
setClassMap() {
|
|
170
|
+
XClearClass(this.classMap);
|
|
115
171
|
this.classMap = {
|
|
116
172
|
[`${XDrawerPrefix}-${this.placement}`]: !XIsEmpty(this.placement),
|
|
117
173
|
[`${XDrawerPrefix}-no-title`]: XIsEmpty(this.title)
|
|
118
174
|
};
|
|
119
175
|
}
|
|
176
|
+
setSize() {
|
|
177
|
+
if (this.container)
|
|
178
|
+
[this.width, this.height] = this.getSize();
|
|
179
|
+
}
|
|
180
|
+
getSize() {
|
|
181
|
+
return [
|
|
182
|
+
this.placement === 'left' || this.placement === 'right' ? this.size : '100%',
|
|
183
|
+
this.placement === 'top' || this.placement === 'bottom' ? this.size : '100%'
|
|
184
|
+
];
|
|
185
|
+
}
|
|
120
186
|
setVisible() {
|
|
121
187
|
if (this.visible) {
|
|
122
188
|
this.createPortal();
|
|
@@ -126,14 +192,15 @@ class XDrawerComponent extends XDrawerProperty {
|
|
|
126
192
|
}
|
|
127
193
|
}
|
|
128
194
|
createPortal() {
|
|
129
|
-
|
|
130
|
-
|
|
195
|
+
if (this.container)
|
|
196
|
+
return;
|
|
197
|
+
const [width, height] = this.getSize();
|
|
131
198
|
this.portal = this.portalService.attach({
|
|
132
199
|
content: this.drawerTpl,
|
|
133
200
|
viewContainerRef: this.viewContainerRef,
|
|
134
201
|
overlayConfig: {
|
|
135
202
|
hasBackdrop: true,
|
|
136
|
-
scrollStrategy: this.overlay.scrollStrategies.
|
|
203
|
+
scrollStrategy: this.overlay.scrollStrategies.block(),
|
|
137
204
|
positionStrategy: this.portalService.setPosition(this.placement, width, height)
|
|
138
205
|
}
|
|
139
206
|
});
|
|
@@ -146,27 +213,41 @@ class XDrawerComponent extends XDrawerProperty {
|
|
|
146
213
|
}
|
|
147
214
|
closePortal() {
|
|
148
215
|
var _a, _b;
|
|
149
|
-
if (this.
|
|
150
|
-
(_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.detach();
|
|
151
|
-
this.unsubscribe();
|
|
216
|
+
if (this.container) {
|
|
152
217
|
this.visibleChange.emit(this.visible);
|
|
153
218
|
this.close.emit();
|
|
154
|
-
return true;
|
|
155
219
|
}
|
|
156
|
-
|
|
220
|
+
else {
|
|
221
|
+
if (this.portalAttached()) {
|
|
222
|
+
(_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.detach();
|
|
223
|
+
this.unsubscribe();
|
|
224
|
+
this.visibleChange.emit(this.visible);
|
|
225
|
+
this.close.emit();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
157
228
|
}
|
|
158
229
|
}
|
|
159
|
-
/** @nocollapse */ /** @nocollapse */ XDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.XPortalService }, { token: i0.ViewContainerRef }, { token: i3.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
160
|
-
/** @nocollapse */ /** @nocollapse */ XDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: XDrawerComponent, selector: "x-drawer", viewQueries: [{ propertyName: "drawerTpl", first: true, predicate: ["drawerTpl"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #drawerTpl>\r\n <div class=\"x-drawer\" [ngClass]=\"classMap\"
|
|
230
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.XPortalService }, { token: i0.ViewContainerRef }, { token: i3.XConfigService }, { token: X_DRAWER_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
231
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: XDrawerComponent, selector: "x-drawer", host: { properties: { "class.x-drawer-visible": "this.getVisible" } }, viewQueries: [{ propertyName: "drawerTpl", first: true, predicate: ["drawerTpl"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template #drawerTpl>\r\n <div class=\"x-drawer-backdrop\" *ngIf=\"container\" (click)=\"closePortal()\"></div>\r\n <div\r\n class=\"x-drawer\"\r\n [ngClass]=\"classMap\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n [class.x-drawer-visible]=\"visible\"\r\n [@x-slide-animation]=\"placement\"\r\n >\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-container *ngIf=\"container\">\r\n <ng-container *ngTemplateOutlet=\"drawerTpl\"></ng-container>\r\n</ng-container>\r\n", styles: [".x-drawer{margin:0;padding:0;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-drawer-header{padding:1rem 1rem .5rem}.x-drawer-title{font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-close{position:absolute;top:.425rem;right:.425rem}.x-drawer-title{padding:0}.x-drawer-content{padding:0 1rem 1rem;height:calc(100% - 3rem);overflow:auto}.x-drawer-no-title .x-drawer-content{padding:.5rem 1rem}\n"], components: [{ type: i4.XButtonComponent, selector: "x-button" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [XSlideAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
161
232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerComponent, decorators: [{
|
|
162
233
|
type: Component,
|
|
163
|
-
args: [{ selector: `${XDrawerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XSlideAnimation], template: "<ng-template #drawerTpl>\r\n <div class=\"x-drawer\" [ngClass]=\"classMap\"
|
|
164
|
-
}], ctorParameters: function () {
|
|
234
|
+
args: [{ selector: `${XDrawerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XSlideAnimation], template: "<ng-template #drawerTpl>\r\n <div class=\"x-drawer-backdrop\" *ngIf=\"container\" (click)=\"closePortal()\"></div>\r\n <div\r\n class=\"x-drawer\"\r\n [ngClass]=\"classMap\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n [class.x-drawer-visible]=\"visible\"\r\n [@x-slide-animation]=\"placement\"\r\n >\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-container *ngIf=\"container\">\r\n <ng-container *ngTemplateOutlet=\"drawerTpl\"></ng-container>\r\n</ng-container>\r\n", styles: [".x-drawer{margin:0;padding:0;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-drawer-header{padding:1rem 1rem .5rem}.x-drawer-title{font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-close{position:absolute;top:.425rem;right:.425rem}.x-drawer-title{padding:0}.x-drawer-content{padding:0 1rem 1rem;height:calc(100% - 3rem);overflow:auto}.x-drawer-no-title .x-drawer-content{padding:.5rem 1rem}\n"] }]
|
|
235
|
+
}], ctorParameters: function () {
|
|
236
|
+
return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.XPortalService }, { type: i0.ViewContainerRef }, { type: i3.XConfigService }, { type: XDrawerContainerComponent, decorators: [{
|
|
237
|
+
type: Optional
|
|
238
|
+
}, {
|
|
239
|
+
type: Inject,
|
|
240
|
+
args: [X_DRAWER_CONTAINER]
|
|
241
|
+
}] }];
|
|
242
|
+
}, propDecorators: { getVisible: [{
|
|
243
|
+
type: HostBinding,
|
|
244
|
+
args: ['class.x-drawer-visible']
|
|
245
|
+
}], drawerTpl: [{
|
|
165
246
|
type: ViewChild,
|
|
166
247
|
args: ['drawerTpl', { static: true }]
|
|
167
248
|
}] } });
|
|
168
249
|
|
|
169
|
-
class
|
|
250
|
+
class XDrawerPortalComponent extends BasePortalOutlet {
|
|
170
251
|
constructor() {
|
|
171
252
|
super();
|
|
172
253
|
this._has = true;
|
|
@@ -191,14 +272,14 @@ class XDrawerContainerComponent extends BasePortalOutlet {
|
|
|
191
272
|
return this.portalOutlet.attachTemplatePortal(portal);
|
|
192
273
|
}
|
|
193
274
|
}
|
|
194
|
-
/** @nocollapse */ /** @nocollapse */
|
|
195
|
-
/** @nocollapse */ /** @nocollapse */
|
|
196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type:
|
|
275
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
276
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: XDrawerPortalComponent, selector: "x-drawer-portal", host: { listeners: { "@x-slide-animation.done": "done($event)", "@x-slide-animation.start": "start($event)" }, properties: { "class.x-drawer-portal": "this._has", "@x-slide-animation": "this.placement" } }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\r\n", styles: [".x-drawer-portal{margin:0;padding:0;height:100%;width:100%;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);overflow:auto;padding:1rem}.x-drawer-portal-title{display:block;margin:0 0 .5rem;font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-portal-content{display:block;margin:0 -1rem;padding:0 1rem;overflow:auto}\n"], directives: [{ type: i1$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [XSlideAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
277
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerPortalComponent, decorators: [{
|
|
197
278
|
type: Component,
|
|
198
|
-
args: [{ selector: 'x-drawer-
|
|
279
|
+
args: [{ selector: 'x-drawer-portal', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XSlideAnimation], template: "<ng-template cdkPortalOutlet></ng-template>\r\n", styles: [".x-drawer-portal{margin:0;padding:0;height:100%;width:100%;background-color:var(--x-background);position:relative;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);overflow:auto;padding:1rem}.x-drawer-portal-title{display:block;margin:0 0 .5rem;font-weight:600;color:var(--x-text-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.x-drawer-portal-content{display:block;margin:0 -1rem;padding:0 1rem;overflow:auto}\n"] }]
|
|
199
280
|
}], ctorParameters: function () { return []; }, propDecorators: { _has: [{
|
|
200
281
|
type: HostBinding,
|
|
201
|
-
args: ['class.x-drawer-
|
|
282
|
+
args: ['class.x-drawer-portal']
|
|
202
283
|
}], placement: [{
|
|
203
284
|
type: HostBinding,
|
|
204
285
|
args: ['@x-slide-animation']
|
|
@@ -258,7 +339,7 @@ class XDrawerTitleDirective {
|
|
|
258
339
|
}
|
|
259
340
|
}
|
|
260
341
|
/** @nocollapse */ /** @nocollapse */ XDrawerTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
261
|
-
/** @nocollapse */ /** @nocollapse */ XDrawerTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: XDrawerTitleDirective, selector: "[x-drawer-title]", host: { properties: { "class.x-drawer-
|
|
342
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: XDrawerTitleDirective, selector: "[x-drawer-title]", host: { properties: { "class.x-drawer-portal-title": "this._has" } }, ngImport: i0 });
|
|
262
343
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerTitleDirective, decorators: [{
|
|
263
344
|
type: Directive,
|
|
264
345
|
args: [{
|
|
@@ -266,7 +347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
266
347
|
}]
|
|
267
348
|
}], propDecorators: { _has: [{
|
|
268
349
|
type: HostBinding,
|
|
269
|
-
args: ['class.x-drawer-
|
|
350
|
+
args: ['class.x-drawer-portal-title']
|
|
270
351
|
}] } });
|
|
271
352
|
class XDrawerContentDirective {
|
|
272
353
|
constructor() {
|
|
@@ -274,7 +355,7 @@ class XDrawerContentDirective {
|
|
|
274
355
|
}
|
|
275
356
|
}
|
|
276
357
|
/** @nocollapse */ /** @nocollapse */ XDrawerContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
277
|
-
/** @nocollapse */ /** @nocollapse */ XDrawerContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: XDrawerContentDirective, selector: "[x-drawer-content], x-drawer-content", host: { properties: { "class.x-drawer-
|
|
358
|
+
/** @nocollapse */ /** @nocollapse */ XDrawerContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: XDrawerContentDirective, selector: "[x-drawer-content], x-drawer-content", host: { properties: { "class.x-drawer-portal-content": "this._has" } }, ngImport: i0 });
|
|
278
359
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerContentDirective, decorators: [{
|
|
279
360
|
type: Directive,
|
|
280
361
|
args: [{
|
|
@@ -282,7 +363,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
282
363
|
}]
|
|
283
364
|
}], propDecorators: { _has: [{
|
|
284
365
|
type: HostBinding,
|
|
285
|
-
args: ['class.x-drawer-
|
|
366
|
+
args: ['class.x-drawer-portal-content']
|
|
286
367
|
}] } });
|
|
287
368
|
|
|
288
369
|
class XDrawerService {
|
|
@@ -304,12 +385,12 @@ class XDrawerService {
|
|
|
304
385
|
const width = ['left', 'right'].includes(option.placement) ? option.size : '100%';
|
|
305
386
|
const height = ['top', 'bottom'].includes(option.placement) ? option.size : '100%';
|
|
306
387
|
const portal = this.portalService.attach({
|
|
307
|
-
content:
|
|
388
|
+
content: XDrawerPortalComponent,
|
|
308
389
|
viewContainerRef: option.viewContainerRef,
|
|
309
390
|
overlayConfig: {
|
|
310
391
|
hasBackdrop: option.hasBackdrop,
|
|
311
392
|
panelClass: option.className,
|
|
312
|
-
scrollStrategy: this.overlay.scrollStrategies.
|
|
393
|
+
scrollStrategy: this.overlay.scrollStrategies.block(),
|
|
313
394
|
positionStrategy: this.portalService.setPosition(option.placement, width, height)
|
|
314
395
|
}
|
|
315
396
|
});
|
|
@@ -347,8 +428,15 @@ class XDrawerModule {
|
|
|
347
428
|
XDrawerCloseDirective,
|
|
348
429
|
XDrawerTitleDirective,
|
|
349
430
|
XDrawerContentDirective,
|
|
431
|
+
XDrawerPortalComponent,
|
|
350
432
|
XDrawerContainerComponent,
|
|
351
|
-
XDrawerProperty
|
|
433
|
+
XDrawerProperty,
|
|
434
|
+
XDrawerContainerProperty], imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule], exports: [XDrawerComponent,
|
|
435
|
+
XDrawerCloseDirective,
|
|
436
|
+
XDrawerTitleDirective,
|
|
437
|
+
XDrawerContentDirective,
|
|
438
|
+
XDrawerPortalComponent,
|
|
439
|
+
XDrawerContainerComponent] });
|
|
352
440
|
/** @nocollapse */ /** @nocollapse */ XDrawerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerModule, providers: [XDrawerService], imports: [[CommonModule, XOutletModule, XButtonModule, XPortalModule]] });
|
|
353
441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: XDrawerModule, decorators: [{
|
|
354
442
|
type: NgModule,
|
|
@@ -358,10 +446,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
358
446
|
XDrawerCloseDirective,
|
|
359
447
|
XDrawerTitleDirective,
|
|
360
448
|
XDrawerContentDirective,
|
|
449
|
+
XDrawerPortalComponent,
|
|
361
450
|
XDrawerContainerComponent,
|
|
362
|
-
XDrawerProperty
|
|
451
|
+
XDrawerProperty,
|
|
452
|
+
XDrawerContainerProperty
|
|
453
|
+
],
|
|
454
|
+
exports: [
|
|
455
|
+
XDrawerComponent,
|
|
456
|
+
XDrawerCloseDirective,
|
|
457
|
+
XDrawerTitleDirective,
|
|
458
|
+
XDrawerContentDirective,
|
|
459
|
+
XDrawerPortalComponent,
|
|
460
|
+
XDrawerContainerComponent
|
|
363
461
|
],
|
|
364
|
-
exports: [XDrawerComponent, XDrawerCloseDirective, XDrawerTitleDirective, XDrawerContentDirective, XDrawerContainerComponent],
|
|
365
462
|
imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule],
|
|
366
463
|
providers: [XDrawerService]
|
|
367
464
|
}]
|
|
@@ -371,5 +468,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
371
468
|
* Generated bundle index. Do not edit.
|
|
372
469
|
*/
|
|
373
470
|
|
|
374
|
-
export { XDrawerCloseDirective, XDrawerComponent, XDrawerContainerComponent, XDrawerContentDirective, XDrawerModule, XDrawerPrefix, XDrawerProperty, XDrawerRef, XDrawerService, XDrawerTitleDirective, X_DRAWER_CONFIG_NAME, X_DRAWER_DATA };
|
|
471
|
+
export { XDrawerCloseDirective, XDrawerComponent, XDrawerContainerComponent, XDrawerContainerPrefix, XDrawerContainerProperty, XDrawerContentDirective, XDrawerModule, XDrawerPortalComponent, XDrawerPrefix, XDrawerProperty, XDrawerRef, XDrawerService, XDrawerTitleDirective, X_DRAWER_CONFIG_NAME, X_DRAWER_CONTAINER, X_DRAWER_DATA };
|
|
375
472
|
//# sourceMappingURL=ng-nest-ui-drawer.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-drawer.mjs","sources":["../../../../lib/ng-nest/ui/drawer/drawer.property.ts","../../../../lib/ng-nest/ui/drawer/drawer.component.ts","../../../../lib/ng-nest/ui/drawer/drawer.component.html","../../../../lib/ng-nest/ui/drawer/drawer-container.component.ts","../../../../lib/ng-nest/ui/drawer/drawer-container.component.html","../../../../lib/ng-nest/ui/drawer/drawer-ref.ts","../../../../lib/ng-nest/ui/drawer/drawer-container.directives.ts","../../../../lib/ng-nest/ui/drawer/drawer.service.ts","../../../../lib/ng-nest/ui/drawer/drawer.module.ts","../../../../lib/ng-nest/ui/drawer/ng-nest-ui-drawer.ts"],"sourcesContent":["import { XTemplate, XPosition, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component, InjectionToken, ViewContainerRef } from '@angular/core';\r\nimport { XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { XDrawerContainerComponent } from './drawer-container.component';\r\nimport { XDrawerRef } from './drawer-ref';\r\n\r\n/**\r\n * Drawer\r\n * @selector x-drawer\r\n * @decorator component\r\n */\r\nexport const XDrawerPrefix = 'x-drawer';\r\nexport const X_DRAWER_CONFIG_NAME = 'drawer';\r\nexport const X_DRAWER_DATA = new InjectionToken<any>('XDrawerData');\r\n\r\n/**\r\n * Drawer Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDrawerProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 显示/隐藏\r\n * @en_US Show/hide\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 展示方向\r\n * @en_US Display direction\r\n */\r\n @Input() @XWithConfig<XPosition>(X_DRAWER_CONFIG_NAME, 'right') placement?: XPosition;\r\n /**\r\n * @zh_CN 尺寸,支持固定值\r\n * @en_US Size, supports fixed value\r\n */\r\n @Input() @XWithConfig<string>(X_DRAWER_CONFIG_NAME, '30%') size?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DRAWER_CONFIG_NAME, true) backdropClose!: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DRAWER_CONFIG_NAME, true) hasBackdrop!: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n @Input() @XWithConfig<string>(X_DRAWER_CONFIG_NAME, '') className!: string;\r\n /**\r\n * @zh_CN 关闭的事件\r\n * @en_US Closed event\r\n */\r\n @Output() close = new EventEmitter();\r\n /**\r\n * @zh_CN 显示/隐藏的事件\r\n * @en_US Show/hide event\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n}\r\n\r\n/**\r\n * Drawer Option\r\n */\r\nexport interface XDrawerOption {\r\n /**\r\n * @zh_CN 展示方向\r\n * @en_US Display direction\r\n * @default 'right'\r\n * @withConfig true\r\n */\r\n placement?: XPosition;\r\n /**\r\n * @zh_CN 尺寸,支持固定值\r\n * @en_US Size, supports fixed value\r\n * @default '30%'\r\n * @withConfig true\r\n */\r\n size?: string;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n className?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n * @default true\r\n * @withConfig true\r\n */\r\n backdropClose?: boolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n * @default true\r\n * @withConfig true\r\n */\r\n hasBackdrop?: boolean;\r\n /**\r\n * @zh_CN 数据,通过 \"@Inject(X_DRAWER_DATA)\" 来接收数据\r\n * @en_US Data. Receive data by \"@Inject(X_DRAWER_DATA)\"\r\n */\r\n data?: any;\r\n /**\r\n * @en_US 视图容器实例可以包含其他视图容器。\r\n * @en_US A view container instance can contain other view containers.\r\n */\r\n viewContainerRef?: ViewContainerRef;\r\n}\r\n\r\n/**\r\n * @zh_CN 创建的抽屉对象\r\n * @en_US Drawer object created\r\n */\r\nexport interface XDrawerOverlayRef extends XPortalOverlayRef<XDrawerContainerComponent> {\r\n drawerRef?: XDrawerRef<any>;\r\n}\r\n\r\nexport type XDrawerAnimationState = XPosition | 'void';\r\n\r\nexport interface XDrawerAnimationEvent {\r\n state: XDrawerAnimationState;\r\n action: 'start' | 'done';\r\n totalTime: number;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n SimpleChanges,\r\n OnChanges,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { XDrawerPrefix, XDrawerProperty } from './drawer.property';\r\nimport { XIsChange, XIsEmpty, XSlideAnimation, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { Subscription } from 'rxjs';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: `${XDrawerPrefix}`,\r\n templateUrl: './drawer.component.html',\r\n styleUrls: ['./drawer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XSlideAnimation]\r\n})\r\nexport class XDrawerComponent extends XDrawerProperty implements OnInit, OnChanges {\r\n @ViewChild('drawerTpl', { static: true }) drawerTpl!: TemplateRef<void>;\r\n portal!: XPortalOverlayRef<any>;\r\n back$: Subscription | null = null;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public overlay: Overlay,\r\n public portalService: XPortalService,\r\n public viewContainerRef: ViewContainerRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { visible } = simples;\r\n XIsChange(visible) && this.setVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe();\r\n }\r\n\r\n unsubscribe() {\r\n this.back$?.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap = {\r\n [`${XDrawerPrefix}-${this.placement}`]: !XIsEmpty(this.placement),\r\n [`${XDrawerPrefix}-no-title`]: XIsEmpty(this.title)\r\n };\r\n }\r\n\r\n setVisible() {\r\n if (this.visible) {\r\n this.createPortal();\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n createPortal() {\r\n const width = this.placement === 'left' || this.placement === 'right' ? this.size : '100%';\r\n const height = this.placement === 'top' || this.placement === 'bottom' ? this.size : '100%';\r\n this.portal = this.portalService.attach({\r\n content: this.drawerTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n hasBackdrop: true,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n positionStrategy: this.portalService.setPosition(this.placement, width, height)\r\n }\r\n });\r\n if (this.portal.overlayRef) this.back$ = this.portal.overlayRef.backdropClick().subscribe(() => this.closePortal());\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.unsubscribe();\r\n this.visibleChange.emit(this.visible as boolean);\r\n this.close.emit();\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","<ng-template #drawerTpl>\r\n <div class=\"x-drawer\" [ngClass]=\"classMap\" [@x-slide-animation]=\"placement\">\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { XSlideAnimation } from '@ng-nest/ui/core';\r\nimport { XDrawerAnimationEvent, XDrawerAnimationState } from './drawer.property';\r\nimport { AnimationEvent } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'x-drawer-container',\r\n templateUrl: './drawer-container.component.html',\r\n styleUrls: ['./drawer-container.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XSlideAnimation]\r\n})\r\nexport class XDrawerContainerComponent extends BasePortalOutlet {\r\n @HostBinding('class.x-drawer-container') _has = true;\r\n @HostBinding('@x-slide-animation') public placement?: XDrawerAnimationState;\r\n @HostListener('@x-slide-animation.done', ['$event']) done({ toState, totalTime }: AnimationEvent) {\r\n this.animationChanged.next({ action: 'done', state: toState as XDrawerAnimationState, totalTime });\r\n }\r\n @HostListener('@x-slide-animation.start', ['$event']) start({ toState, totalTime }: AnimationEvent) {\r\n this.animationChanged.next({ action: 'start', state: toState as XDrawerAnimationState, totalTime });\r\n }\r\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet!: CdkPortalOutlet;\r\n\r\n animationChanged = new EventEmitter<XDrawerAnimationEvent>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\r\n if (this.portalOutlet.hasAttached()) {\r\n throw Error('drawer portal has attached');\r\n }\r\n return this.portalOutlet.attachComponentPortal(portal);\r\n }\r\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\r\n if (this.portalOutlet.hasAttached()) {\r\n throw Error('drawer portal has attached');\r\n }\r\n return this.portalOutlet.attachTemplatePortal(portal);\r\n }\r\n}\r\n","<ng-template cdkPortalOutlet></ng-template>\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { filter, take } from 'rxjs';\r\nimport { XDrawerContainerComponent } from './drawer-container.component';\r\n\r\n// TODO: add more function\r\nexport class XDrawerRef<C> {\r\n componentInstance!: C;\r\n constructor(public overlayRef: OverlayRef, public containerInstance: XDrawerContainerComponent) {}\r\n close() {\r\n this.containerInstance.animationChanged\r\n .pipe(\r\n filter((event) => event.state === 'void' && event.action === 'done'),\r\n take(1)\r\n )\r\n .subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n this.containerInstance.placement = 'void';\r\n }\r\n}\r\n","import { Directive, HostBinding, HostListener, Optional } from '@angular/core';\r\nimport { XDrawerRef } from './drawer-ref';\r\n\r\n@Directive({\r\n selector: `[x-drawer-close]`\r\n})\r\nexport class XDrawerCloseDirective {\r\n @HostListener('click', ['$event']) onCloseClick() {\r\n this.drawerRef && this.drawerRef.close();\r\n }\r\n constructor(@Optional() public drawerRef: XDrawerRef<any>) {}\r\n}\r\n\r\n@Directive({\r\n selector: `[x-drawer-title]`\r\n})\r\nexport class XDrawerTitleDirective {\r\n @HostBinding('class.x-drawer-container-title') _has = true;\r\n}\r\n\r\n@Directive({\r\n selector: `[x-drawer-content], x-drawer-content`\r\n})\r\nexport class XDrawerContentDirective {\r\n @HostBinding('class.x-drawer-container-content') _has = true;\r\n}\r\n","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\r\nimport { Injectable, TemplateRef } from '@angular/core';\r\nimport { fillDefault, XConfigService, XDrawerConfig } from '@ng-nest/ui/core';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { XDrawerContainerComponent } from './drawer-container.component';\r\nimport { XDrawerRef } from './drawer-ref';\r\nimport { XDrawerOption, X_DRAWER_CONFIG_NAME, X_DRAWER_DATA } from './drawer.property';\r\n\r\n@Injectable()\r\nexport class XDrawerService {\r\n default: XDrawerOption = {\r\n placement: 'right',\r\n size: '30%',\r\n hasBackdrop: true,\r\n backdropClose: true\r\n };\r\n configDefault?: XDrawerConfig;\r\n\r\n constructor(public portalService: XPortalService, public configService: XConfigService, public overlay: Overlay) {\r\n this.configDefault = this.configService.getConfigForComponent(X_DRAWER_CONFIG_NAME);\r\n Object.assign(this.default, this.configDefault);\r\n }\r\n\r\n create<T>(content: TemplateRef<any> | ComponentType<T>, option: XDrawerOption = {}): XDrawerRef<T> {\r\n fillDefault(option, this.default);\r\n const width = ['left', 'right'].includes(option.placement as string) ? option.size : '100%';\r\n const height = ['top', 'bottom'].includes(option.placement as string) ? option.size : '100%';\r\n const portal = this.portalService.attach<XDrawerContainerComponent>({\r\n content: XDrawerContainerComponent,\r\n viewContainerRef: option.viewContainerRef,\r\n overlayConfig: {\r\n hasBackdrop: option.hasBackdrop,\r\n panelClass: option.className,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n positionStrategy: this.portalService.setPosition(option.placement, width, height)\r\n }\r\n });\r\n const { overlayRef, componentRef } = portal || {};\r\n const { instance } = componentRef! || {};\r\n instance.placement = option.placement;\r\n const drawerRef = new XDrawerRef<T>(overlayRef!, instance);\r\n if (content instanceof TemplateRef) {\r\n instance.attachTemplatePortal(\r\n new TemplatePortal(content, option.viewContainerRef!, { $implicit: option.data, drawerRef: drawerRef })\r\n );\r\n } else {\r\n const injector = this.portalService.createInjector([\r\n { provide: X_DRAWER_DATA, useValue: option.data },\r\n { provide: XDrawerRef, useValue: drawerRef }\r\n ]);\r\n\r\n instance.attachComponentPortal(new ComponentPortal(content, option.viewContainerRef, injector));\r\n }\r\n if (option.hasBackdrop && option.backdropClose && overlayRef)\r\n overlayRef.backdropClick().subscribe(() => {\r\n drawerRef.close();\r\n });\r\n\r\n return drawerRef;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDrawerComponent } from './drawer.component';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XDrawerProperty } from './drawer.property';\r\nimport { XDrawerService } from './drawer.service';\r\nimport { XDrawerContainerComponent } from './drawer-container.component';\r\nimport { XDrawerCloseDirective, XDrawerContentDirective, XDrawerTitleDirective } from './drawer-container.directives';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDrawerComponent,\r\n XDrawerCloseDirective,\r\n XDrawerTitleDirective,\r\n XDrawerContentDirective,\r\n XDrawerContainerComponent,\r\n XDrawerProperty\r\n ],\r\n exports: [XDrawerComponent, XDrawerCloseDirective, XDrawerTitleDirective, XDrawerContentDirective, XDrawerContainerComponent],\r\n imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule],\r\n providers: [XDrawerService]\r\n})\r\nexport class XDrawerModule {}\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-drawer.mjs","sources":["../../../../lib/ng-nest/ui/drawer/drawer.property.ts","../../../../lib/ng-nest/ui/drawer/drawer-container.component.ts","../../../../lib/ng-nest/ui/drawer/drawer-container.component.html","../../../../lib/ng-nest/ui/drawer/drawer.component.ts","../../../../lib/ng-nest/ui/drawer/drawer.component.html","../../../../lib/ng-nest/ui/drawer/drawer-portal.component.ts","../../../../lib/ng-nest/ui/drawer/drawer-portal.component.html","../../../../lib/ng-nest/ui/drawer/drawer-ref.ts","../../../../lib/ng-nest/ui/drawer/drawer-portal.directives.ts","../../../../lib/ng-nest/ui/drawer/drawer.service.ts","../../../../lib/ng-nest/ui/drawer/drawer.module.ts","../../../../lib/ng-nest/ui/drawer/ng-nest-ui-drawer.ts"],"sourcesContent":["import { XTemplate, XPosition, XProperty, XInputBoolean, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component, InjectionToken, ViewContainerRef } from '@angular/core';\r\nimport { XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { XDrawerRef } from './drawer-ref';\r\nimport { XDrawerPortalComponent } from './drawer-portal.component';\r\n\r\n/**\r\n * Drawer\r\n * @selector x-drawer\r\n * @decorator component\r\n */\r\nexport const XDrawerPrefix = 'x-drawer';\r\nexport const X_DRAWER_CONFIG_NAME = 'drawer';\r\nexport const X_DRAWER_DATA = new InjectionToken<any>('XDrawerData');\r\n\r\n/**\r\n * Drawer Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDrawerProperty extends XProperty {\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n @Input() title?: XTemplate;\r\n /**\r\n * @zh_CN 显示/隐藏\r\n * @en_US Show/hide\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 展示方向\r\n * @en_US Display direction\r\n */\r\n @Input() @XWithConfig<XPosition>(X_DRAWER_CONFIG_NAME, 'right') placement?: XPosition;\r\n /**\r\n * @zh_CN 尺寸,支持固定值\r\n * @en_US Size, supports fixed value\r\n */\r\n @Input() @XWithConfig<string>(X_DRAWER_CONFIG_NAME, '30%') size?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DRAWER_CONFIG_NAME, true) backdropClose!: XBoolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_DRAWER_CONFIG_NAME, true) hasBackdrop!: XBoolean;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n @Input() @XWithConfig<string>(X_DRAWER_CONFIG_NAME, '') className!: string;\r\n /**\r\n * @zh_CN 关闭的事件\r\n * @en_US Closed event\r\n */\r\n @Output() close = new EventEmitter();\r\n /**\r\n * @zh_CN 显示/隐藏的事件\r\n * @en_US Show/hide event\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n}\r\n\r\n/**\r\n * Drawer Option\r\n */\r\nexport interface XDrawerOption {\r\n /**\r\n * @zh_CN 展示方向\r\n * @en_US Display direction\r\n * @default 'right'\r\n * @withConfig true\r\n */\r\n placement?: XPosition;\r\n /**\r\n * @zh_CN 尺寸,支持固定值\r\n * @en_US Size, supports fixed value\r\n * @default '30%'\r\n * @withConfig true\r\n */\r\n size?: string;\r\n /**\r\n * @zh_CN 自定义样式名\r\n * @en_US Custom style name\r\n */\r\n className?: string;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n * @default true\r\n * @withConfig true\r\n */\r\n backdropClose?: boolean;\r\n /**\r\n * @zh_CN 是否显示背景遮罩\r\n * @en_US Whether to display the background mask\r\n * @default true\r\n * @withConfig true\r\n */\r\n hasBackdrop?: boolean;\r\n /**\r\n * @zh_CN 数据,通过 \"@Inject(X_DRAWER_DATA)\" 来接收数据\r\n * @en_US Data. Receive data by \"@Inject(X_DRAWER_DATA)\"\r\n */\r\n data?: any;\r\n /**\r\n * @en_US 视图容器实例可以包含其他视图容器。\r\n * @en_US A view container instance can contain other view containers.\r\n */\r\n viewContainerRef?: ViewContainerRef;\r\n}\r\n\r\n/**\r\n * Drawer Container\r\n * @selector x-drawer-container\r\n * @decorator component\r\n */\r\n export const XDrawerContainerPrefix = 'x-drawer-container';\r\n export const X_DRAWER_CONTAINER = new InjectionToken('X_DRAWER_CONTAINER');\r\n\r\n/**\r\n * Drawer Container Property\r\n */\r\n@Component({ template: '' })\r\nexport class XDrawerContainerProperty extends XProperty {}\r\n\r\n/**\r\n * @zh_CN 创建的抽屉对象\r\n * @en_US Drawer object created\r\n */\r\nexport interface XDrawerPortalOverlayRef extends XPortalOverlayRef<XDrawerPortalComponent> {\r\n drawerRef?: XDrawerRef<any>;\r\n}\r\n\r\nexport type XDrawerAnimationState = XPosition | 'void';\r\n\r\nexport interface XDrawerAnimationEvent {\r\n state: XDrawerAnimationState;\r\n action: 'start' | 'done';\r\n totalTime: number;\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\r\nimport { XDrawerContainerProperty, X_DRAWER_CONTAINER } from './drawer.property';\r\n\r\n@Component({\r\n selector: 'x-drawer-container',\r\n templateUrl: './drawer-container.component.html',\r\n styleUrls: ['./drawer-container.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: X_DRAWER_CONTAINER,\r\n useExisting: XDrawerContainerComponent\r\n }\r\n ]\r\n})\r\nexport class XDrawerContainerComponent extends XDrawerContainerProperty {\r\n @HostBinding('class.x-drawer-container') _has = true;\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n SimpleChanges,\r\n OnChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n Optional,\r\n Inject,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { XDrawerPrefix, XDrawerProperty, X_DRAWER_CONTAINER } from './drawer.property';\r\nimport { XIsChange, XIsEmpty, XSlideAnimation, XConfigService, XClearClass } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { Subscription } from 'rxjs';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { XDrawerContainerComponent } from './drawer-container.component';\r\n\r\n@Component({\r\n selector: `${XDrawerPrefix}`,\r\n templateUrl: './drawer.component.html',\r\n styleUrls: ['./drawer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XSlideAnimation]\r\n})\r\nexport class XDrawerComponent extends XDrawerProperty implements OnInit, OnChanges {\r\n @HostBinding('class.x-drawer-visible') get getVisible() {\r\n return this.visible;\r\n }\r\n @ViewChild('drawerTpl', { static: true }) drawerTpl!: TemplateRef<void>;\r\n portal!: XPortalOverlayRef<any>;\r\n back$: Subscription | null = null;\r\n width = '100%';\r\n height = '100%';\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public overlay: Overlay,\r\n public portalService: XPortalService,\r\n public viewContainerRef: ViewContainerRef,\r\n public configService: XConfigService,\r\n @Optional() @Inject(X_DRAWER_CONTAINER) public container?: XDrawerContainerComponent\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n this.setSize();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { visible, placement } = simples;\r\n XIsChange(visible) && this.setVisible();\r\n if (XIsChange(placement)) {\r\n this.setClassMap();\r\n this.setSize();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe();\r\n }\r\n\r\n unsubscribe() {\r\n this.back$?.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap);\r\n this.classMap = {\r\n [`${XDrawerPrefix}-${this.placement}`]: !XIsEmpty(this.placement),\r\n [`${XDrawerPrefix}-no-title`]: XIsEmpty(this.title)\r\n };\r\n }\r\n\r\n setSize() {\r\n if (this.container) [this.width, this.height] = this.getSize();\r\n }\r\n\r\n getSize(): string[] {\r\n return [\r\n this.placement === 'left' || this.placement === 'right' ? this.size! : '100%',\r\n this.placement === 'top' || this.placement === 'bottom' ? this.size! : '100%'\r\n ];\r\n }\r\n\r\n setVisible() {\r\n if (this.visible) {\r\n this.createPortal();\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n createPortal() {\r\n if (this.container) return;\r\n const [width, height] = this.getSize();\r\n this.portal = this.portalService.attach({\r\n content: this.drawerTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n hasBackdrop: true,\r\n scrollStrategy: this.overlay.scrollStrategies.block(),\r\n positionStrategy: this.portalService.setPosition(this.placement, width, height)\r\n }\r\n });\r\n if (this.portal.overlayRef) this.back$ = this.portal.overlayRef.backdropClick().subscribe(() => this.closePortal());\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.container) {\r\n this.visibleChange.emit(this.visible as boolean);\r\n this.close.emit();\r\n } else {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.unsubscribe();\r\n this.visibleChange.emit(this.visible as boolean);\r\n this.close.emit();\r\n }\r\n }\r\n }\r\n}\r\n","<ng-template #drawerTpl>\r\n <div class=\"x-drawer-backdrop\" *ngIf=\"container\" (click)=\"closePortal()\"></div>\r\n <div\r\n class=\"x-drawer\"\r\n [ngClass]=\"classMap\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n [class.x-drawer-visible]=\"visible\"\r\n [@x-slide-animation]=\"placement\"\r\n >\r\n <div class=\"x-drawer-header\" *ngIf=\"title\">\r\n <div class=\"x-drawer-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <x-button class=\"x-drawer-close\" icon=\"fto-x\" (click)=\"closePortal()\" onlyIcon closable></x-button>\r\n </div>\r\n <div class=\"x-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-container *ngIf=\"container\">\r\n <ng-container *ngTemplateOutlet=\"drawerTpl\"></ng-container>\r\n</ng-container>\r\n","import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { XSlideAnimation } from '@ng-nest/ui/core';\r\nimport { XDrawerAnimationEvent, XDrawerAnimationState } from './drawer.property';\r\nimport { AnimationEvent } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'x-drawer-portal',\r\n templateUrl: './drawer-portal.component.html',\r\n styleUrls: ['./drawer-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XSlideAnimation]\r\n})\r\nexport class XDrawerPortalComponent extends BasePortalOutlet {\r\n @HostBinding('class.x-drawer-portal') _has = true;\r\n @HostBinding('@x-slide-animation') public placement?: XDrawerAnimationState;\r\n @HostListener('@x-slide-animation.done', ['$event']) done({ toState, totalTime }: AnimationEvent) {\r\n this.animationChanged.next({ action: 'done', state: toState as XDrawerAnimationState, totalTime });\r\n }\r\n @HostListener('@x-slide-animation.start', ['$event']) start({ toState, totalTime }: AnimationEvent) {\r\n this.animationChanged.next({ action: 'start', state: toState as XDrawerAnimationState, totalTime });\r\n }\r\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet!: CdkPortalOutlet;\r\n\r\n animationChanged = new EventEmitter<XDrawerAnimationEvent>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\r\n if (this.portalOutlet.hasAttached()) {\r\n throw Error('drawer portal has attached');\r\n }\r\n return this.portalOutlet.attachComponentPortal(portal);\r\n }\r\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\r\n if (this.portalOutlet.hasAttached()) {\r\n throw Error('drawer portal has attached');\r\n }\r\n return this.portalOutlet.attachTemplatePortal(portal);\r\n }\r\n}\r\n","<ng-template cdkPortalOutlet></ng-template>\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { filter, take } from 'rxjs';\r\nimport { XDrawerPortalComponent } from './drawer-portal.component';\r\n\r\n// TODO: add more function\r\nexport class XDrawerRef<C> {\r\n componentInstance!: C;\r\n constructor(public overlayRef: OverlayRef, public containerInstance: XDrawerPortalComponent) {}\r\n close() {\r\n this.containerInstance.animationChanged\r\n .pipe(\r\n filter((event) => event.state === 'void' && event.action === 'done'),\r\n take(1)\r\n )\r\n .subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n this.containerInstance.placement = 'void';\r\n }\r\n}\r\n","import { Directive, HostBinding, HostListener, Optional } from '@angular/core';\r\nimport { XDrawerRef } from './drawer-ref';\r\n\r\n@Directive({\r\n selector: `[x-drawer-close]`\r\n})\r\nexport class XDrawerCloseDirective {\r\n @HostListener('click', ['$event']) onCloseClick() {\r\n this.drawerRef && this.drawerRef.close();\r\n }\r\n constructor(@Optional() public drawerRef: XDrawerRef<any>) {}\r\n}\r\n\r\n@Directive({\r\n selector: `[x-drawer-title]`\r\n})\r\nexport class XDrawerTitleDirective {\r\n @HostBinding('class.x-drawer-portal-title') _has = true;\r\n}\r\n\r\n@Directive({\r\n selector: `[x-drawer-content], x-drawer-content`\r\n})\r\nexport class XDrawerContentDirective {\r\n @HostBinding('class.x-drawer-portal-content') _has = true;\r\n}\r\n","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\r\nimport { Injectable, TemplateRef } from '@angular/core';\r\nimport { fillDefault, XConfigService, XDrawerConfig } from '@ng-nest/ui/core';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { XDrawerPortalComponent } from './drawer-portal.component';\r\nimport { XDrawerRef } from './drawer-ref';\r\nimport { XDrawerOption, X_DRAWER_CONFIG_NAME, X_DRAWER_DATA } from './drawer.property';\r\n\r\n@Injectable()\r\nexport class XDrawerService {\r\n default: XDrawerOption = {\r\n placement: 'right',\r\n size: '30%',\r\n hasBackdrop: true,\r\n backdropClose: true\r\n };\r\n configDefault?: XDrawerConfig;\r\n\r\n constructor(public portalService: XPortalService, public configService: XConfigService, public overlay: Overlay) {\r\n this.configDefault = this.configService.getConfigForComponent(X_DRAWER_CONFIG_NAME);\r\n Object.assign(this.default, this.configDefault);\r\n }\r\n\r\n create<T>(content: TemplateRef<any> | ComponentType<T>, option: XDrawerOption = {}): XDrawerRef<T> {\r\n fillDefault(option, this.default);\r\n const width = ['left', 'right'].includes(option.placement as string) ? option.size : '100%';\r\n const height = ['top', 'bottom'].includes(option.placement as string) ? option.size : '100%';\r\n const portal = this.portalService.attach<XDrawerPortalComponent>({\r\n content: XDrawerPortalComponent,\r\n viewContainerRef: option.viewContainerRef,\r\n overlayConfig: {\r\n hasBackdrop: option.hasBackdrop,\r\n panelClass: option.className,\r\n scrollStrategy: this.overlay.scrollStrategies.block(),\r\n positionStrategy: this.portalService.setPosition(option.placement, width, height)\r\n }\r\n });\r\n const { overlayRef, componentRef } = portal || {};\r\n const { instance } = componentRef! || {};\r\n instance.placement = option.placement;\r\n const drawerRef = new XDrawerRef<T>(overlayRef!, instance);\r\n if (content instanceof TemplateRef) {\r\n instance.attachTemplatePortal(\r\n new TemplatePortal(content, option.viewContainerRef!, { $implicit: option.data, drawerRef: drawerRef })\r\n );\r\n } else {\r\n const injector = this.portalService.createInjector([\r\n { provide: X_DRAWER_DATA, useValue: option.data },\r\n { provide: XDrawerRef, useValue: drawerRef }\r\n ]);\r\n\r\n instance.attachComponentPortal(new ComponentPortal(content, option.viewContainerRef, injector));\r\n }\r\n if (option.hasBackdrop && option.backdropClose && overlayRef)\r\n overlayRef.backdropClick().subscribe(() => {\r\n drawerRef.close();\r\n });\r\n\r\n return drawerRef;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XDrawerComponent } from './drawer.component';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XDrawerContainerProperty, XDrawerProperty } from './drawer.property';\r\nimport { XDrawerService } from './drawer.service';\r\nimport { XDrawerPortalComponent } from './drawer-portal.component';\r\nimport { XDrawerCloseDirective, XDrawerContentDirective, XDrawerTitleDirective } from './drawer-portal.directives';\r\nimport { XDrawerContainerComponent } from './drawer-container.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n XDrawerComponent,\r\n XDrawerCloseDirective,\r\n XDrawerTitleDirective,\r\n XDrawerContentDirective,\r\n XDrawerPortalComponent,\r\n XDrawerContainerComponent,\r\n XDrawerProperty,\r\n XDrawerContainerProperty\r\n ],\r\n exports: [\r\n XDrawerComponent,\r\n XDrawerCloseDirective,\r\n XDrawerTitleDirective,\r\n XDrawerContentDirective,\r\n XDrawerPortalComponent,\r\n XDrawerContainerComponent\r\n ],\r\n imports: [CommonModule, XOutletModule, XButtonModule, XPortalModule],\r\n providers: [XDrawerService]\r\n})\r\nexport class XDrawerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -433,8 +433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
433
433
|
args: [{
|
|
434
434
|
declarations: [XDropdownComponent, XDropdownPortalComponent, XDropdownProperty],
|
|
435
435
|
exports: [XDropdownComponent, XDropdownPortalComponent],
|
|
436
|
-
imports: [CommonModule, XPortalModule, XListModule]
|
|
437
|
-
entryComponents: [XDropdownPortalComponent]
|
|
436
|
+
imports: [CommonModule, XPortalModule, XListModule]
|
|
438
437
|
}]
|
|
439
438
|
}] });
|
|
440
439
|
|