@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
118 lines • 9.35 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: directives/drag-preview.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, Input, TemplateRef, ComponentFactoryResolver } from '@angular/core';
import { OverlayContainerRef } from '@duoduo-oba/ng-devui/overlay-container';
import { DragPreviewComponent } from './drag-preview.component';
import { DragDropService } from '../services/drag-drop.service';
export class DragPreviewDirective {
/**
* @param {?} componentFactoryResolver
* @param {?} overlayContainerRef
* @param {?} dragDropService
*/
constructor(componentFactoryResolver, overlayContainerRef, dragDropService) {
this.componentFactoryResolver = componentFactoryResolver;
this.overlayContainerRef = overlayContainerRef;
this.dragDropService = dragDropService;
this.dragPreviewOptions = {
skipBatchPreview: false
};
}
/**
* @return {?}
*/
createPreview() {
/** @type {?} */
const finalComponentFactoryResolver = this.componentFactoryResolver;
/** @type {?} */
const previewRef = this.overlayContainerRef.createComponent(finalComponentFactoryResolver.resolveComponentFactory(DragPreviewComponent));
this.previewRef = previewRef;
this.updateData();
return this.previewRef;
}
/**
* @return {?}
*/
updateData() {
Object.assign(this.previewRef.instance, {
templateRef: this.dragPreviewTemplate,
data: this.dragPreviewData,
draggedEl: this.dragDropService.draggedEl,
dragData: this.dragDropService.dragData,
batchDragData: this.dragDropService.batchDragData && this.dragDropService.getBatchDragData(),
dragSyncDOMElements: this.dragDropService.dragSyncGroupDirectives && this.getDragSyncDOMElements()
});
this.previewRef.instance.updateTemplate();
}
/**
* @return {?}
*/
destroyPreview() {
if (this.previewRef) {
this.previewRef.hostView.destroy();
}
}
/**
* @return {?}
*/
getPreviewElement() {
return this.previewRef && this.previewRef.instance.element;
}
/**
* @private
* @return {?}
*/
getDragSyncDOMElements() {
return this.dragDropService.dragSyncGroupDirectives.map((/**
* @param {?} dir
* @return {?}
*/
dir => dir.el.nativeElement));
}
}
DragPreviewDirective.decorators = [
{ type: Directive, args: [{
selector: '[dDraggable][dDragPreview]',
exportAs: 'dDragPreview'
},] }
];
/** @nocollapse */
DragPreviewDirective.ctorParameters = () => [
{ type: ComponentFactoryResolver },
{ type: OverlayContainerRef },
{ type: DragDropService }
];
DragPreviewDirective.propDecorators = {
dragPreviewTemplate: [{ type: Input, args: ['dDragPreview',] }],
dragPreviewData: [{ type: Input }],
dragPreviewOptions: [{ type: Input }]
};
if (false) {
/** @type {?} */
DragPreviewDirective.prototype.dragPreviewTemplate;
/** @type {?} */
DragPreviewDirective.prototype.dragPreviewData;
/** @type {?} */
DragPreviewDirective.prototype.dragPreviewOptions;
/** @type {?} */
DragPreviewDirective.prototype.previewRef;
/**
* @type {?}
* @private
*/
DragPreviewDirective.prototype.componentFactoryResolver;
/**
* @type {?}
* @private
*/
DragPreviewDirective.prototype.overlayContainerRef;
/**
* @type {?}
* @private
*/
DragPreviewDirective.prototype.dragDropService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1wcmV2aWV3LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL2RyYWdkcm9wLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9kcmFnLXByZXZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU9oRSxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7SUFPL0IsWUFBb0Isd0JBQWtELEVBQzVELG1CQUF3QyxFQUFVLGVBQWdDO1FBRHhFLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDNUQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUxuRix1QkFBa0IsR0FBRztZQUM1QixnQkFBZ0IsRUFBRSxLQUFLO1NBQ3hCLENBQUM7SUFJRixDQUFDOzs7O0lBRU0sYUFBYTs7Y0FDWiw2QkFBNkIsR0FBRyxJQUFJLENBQUMsd0JBQXdCOztjQUU3RCxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FDekQsNkJBQTZCLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsQ0FDNUU7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7Ozs7SUFFTSxVQUFVO1FBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUN0QyxXQUFXLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtZQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDMUIsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUztZQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRO1lBQ3ZDLGFBQWEsRUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFO1lBQzdGLG1CQUFtQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1NBQ25HLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzVDLENBQUM7Ozs7SUFFTSxjQUFjO1FBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNwQztJQUNILENBQUM7Ozs7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUM3RCxDQUFDOzs7OztJQUNPLHNCQUFzQjtRQUM1QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsR0FBRzs7OztRQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUMsQ0FBQztJQUN2RixDQUFDOzs7WUFsREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFFBQVEsRUFBRSxjQUFjO2FBQ3pCOzs7O1lBUnVDLHdCQUF3QjtZQUN2RCxtQkFBbUI7WUFFbkIsZUFBZTs7O2tDQVFyQixLQUFLLFNBQUMsY0FBYzs4QkFDcEIsS0FBSztpQ0FDTCxLQUFLOzs7O0lBRk4sbURBQTZEOztJQUM3RCwrQ0FBeUI7O0lBQ3pCLGtEQUVFOztJQUNGLDBDQUFrQjs7Ozs7SUFDTix3REFBMEQ7Ozs7O0lBQ3BFLG1EQUFnRDs7Ozs7SUFBRSwrQ0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXJSZWYgfSBmcm9tICduZy1kZXZ1aS9vdmVybGF5LWNvbnRhaW5lcic7XHJcbmltcG9ydCB7IERyYWdQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9kcmFnLXByZXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHJhZy1kcm9wLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZERyYWdnYWJsZV1bZERyYWdQcmV2aWV3XScsXHJcbiAgZXhwb3J0QXM6ICdkRHJhZ1ByZXZpZXcnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRHJhZ1ByZXZpZXdEaXJlY3RpdmUge1xyXG4gIEBJbnB1dCgnZERyYWdQcmV2aWV3JykgZHJhZ1ByZXZpZXdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBkcmFnUHJldmlld0RhdGE7XHJcbiAgQElucHV0KCkgZHJhZ1ByZXZpZXdPcHRpb25zID0ge1xyXG4gICAgc2tpcEJhdGNoUHJldmlldzogZmFsc2VcclxuICB9O1xyXG4gIHB1YmxpYyBwcmV2aWV3UmVmO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIG92ZXJsYXlDb250YWluZXJSZWY6IE92ZXJsYXlDb250YWluZXJSZWYsIHByaXZhdGUgZHJhZ0Ryb3BTZXJ2aWNlOiBEcmFnRHJvcFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVQcmV2aWV3KCkge1xyXG4gICAgY29uc3QgZmluYWxDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjtcclxuXHJcbiAgICBjb25zdCBwcmV2aWV3UmVmID0gdGhpcy5vdmVybGF5Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcclxuICAgICAgZmluYWxDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRHJhZ1ByZXZpZXdDb21wb25lbnQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5wcmV2aWV3UmVmID0gcHJldmlld1JlZjtcclxuICAgIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgcmV0dXJuIHRoaXMucHJldmlld1JlZjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVEYXRhKCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnByZXZpZXdSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgdGVtcGxhdGVSZWY6IHRoaXMuZHJhZ1ByZXZpZXdUZW1wbGF0ZSxcclxuICAgICAgZGF0YTogdGhpcy5kcmFnUHJldmlld0RhdGEsXHJcbiAgICAgIGRyYWdnZWRFbDogdGhpcy5kcmFnRHJvcFNlcnZpY2UuZHJhZ2dlZEVsLFxyXG4gICAgICBkcmFnRGF0YTogdGhpcy5kcmFnRHJvcFNlcnZpY2UuZHJhZ0RhdGEsXHJcbiAgICAgIGJhdGNoRHJhZ0RhdGE6ICB0aGlzLmRyYWdEcm9wU2VydmljZS5iYXRjaERyYWdEYXRhICYmIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLmdldEJhdGNoRHJhZ0RhdGEoKSxcclxuICAgICAgZHJhZ1N5bmNET01FbGVtZW50czogdGhpcy5kcmFnRHJvcFNlcnZpY2UuZHJhZ1N5bmNHcm91cERpcmVjdGl2ZXMgJiYgdGhpcy5nZXREcmFnU3luY0RPTUVsZW1lbnRzKClcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wcmV2aWV3UmVmLmluc3RhbmNlLnVwZGF0ZVRlbXBsYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVzdHJveVByZXZpZXcoKSB7XHJcbiAgICBpZiAodGhpcy5wcmV2aWV3UmVmKSB7XHJcbiAgICAgIHRoaXMucHJldmlld1JlZi5ob3N0Vmlldy5kZXN0cm95KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UHJldmlld0VsZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3UmVmICYmIHRoaXMucHJldmlld1JlZi5pbnN0YW5jZS5lbGVtZW50O1xyXG4gIH1cclxuICBwcml2YXRlIGdldERyYWdTeW5jRE9NRWxlbWVudHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kcmFnRHJvcFNlcnZpY2UuZHJhZ1N5bmNHcm91cERpcmVjdGl2ZXMubWFwKGRpciA9PiBkaXIuZWwubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==