UNPKG

@open-e/oe-coordinator

Version:

This module is used to detect mouse movement on the border of HTMLElement. Useful usecase is to enable resize event in `div` element when mouse is on the border of it.

77 lines 5.96 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, HostListener, ElementRef, Renderer2, Input } from "@angular/core"; /** * Directive for Zoom Effect * * \@example: * `<div zoom-editor maxScale='4' minScale='0.5' accumulativeVal='0.1'></div>` */ var ZoomDirective = /** @class */ (function () { function ZoomDirective(_ref, renderer) { this._ref = _ref; this.renderer = renderer; this.maxScale = 3; this.minScale = 0.5; this.accumulativeVal = 0.1; this.currentScale = 1; } /** * @param {?} event * @return {?} */ ZoomDirective.prototype.onwheel = /** * @param {?} event * @return {?} */ function (event) { if (event.ctrlKey) { // Support older version of IE /** @type {?} */ var handler = window.event || event; handler.preventDefault(); handler.wheelDelta > 0 && this.currentScale <= this.maxScale ? (this.currentScale += this.accumulativeVal) : handler.wheelDelta < 0 && this.currentScale >= this.minScale ? (this.currentScale -= this.accumulativeVal) : ""; this.renderer.setStyle(this._ref.nativeElement, "transform", "scale(" + this.currentScale + ")"); } }; ZoomDirective.decorators = [ { type: Directive, args: [{ selector: "[zoom-editor]" },] } ]; /** @nocollapse */ ZoomDirective.ctorParameters = function () { return [ { type: ElementRef }, { type: Renderer2 } ]; }; ZoomDirective.propDecorators = { maxScale: [{ type: Input }], minScale: [{ type: Input }], accumulativeVal: [{ type: Input }], currentScale: [{ type: Input }], onwheel: [{ type: HostListener, args: ["wheel", ["$event"],] }] }; return ZoomDirective; }()); export { ZoomDirective }; if (false) { /** @type {?} */ ZoomDirective.prototype.maxScale; /** @type {?} */ ZoomDirective.prototype.minScale; /** @type {?} */ ZoomDirective.prototype.accumulativeVal; /** @type {?} */ ZoomDirective.prototype.currentScale; /** @type {?} */ ZoomDirective.prototype._ref; /** @type {?} */ ZoomDirective.prototype.renderer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ab3Blbi1lL29lLWNvb3JkaW5hdG9yLyIsInNvdXJjZXMiOlsibW9kdWxlL2NsYXNzL3pvb20uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVF0RjtJQVNFLHVCQUFtQixJQUFnQixFQUFTLFFBQW1CO1FBQTVDLFNBQUksR0FBSixJQUFJLENBQVk7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBTHRELGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2Ysb0JBQWUsR0FBRyxHQUFHLENBQUM7UUFDdEIsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFFd0MsQ0FBQzs7Ozs7SUFHbkUsK0JBQU87Ozs7SUFEUCxVQUNRLEtBQUs7UUFDWCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7OztnQkFFYixPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLO1lBQ25DLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUMxRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxRQUFRO29CQUM5RCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7b0JBQzdDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFUCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQ3ZCLFdBQVcsRUFDWCxXQUFTLElBQUksQ0FBQyxZQUFZLE1BQUcsQ0FDOUIsQ0FBQztTQUNIO0lBQ0gsQ0FBQzs7Z0JBN0JGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUI7Ozs7Z0JBVmlDLFVBQVU7Z0JBQUUsU0FBUzs7OzJCQVlwRCxLQUFLOzJCQUNMLEtBQUs7a0NBQ0wsS0FBSzsrQkFDTCxLQUFLOzBCQUlMLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0lBbUJuQyxvQkFBQztDQUFBLEFBOUJELElBOEJDO1NBM0JZLGFBQWE7OztJQUN4QixpQ0FBc0I7O0lBQ3RCLGlDQUF3Qjs7SUFDeEIsd0NBQStCOztJQUMvQixxQ0FBMEI7O0lBRWQsNkJBQXVCOztJQUFFLGlDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBEaXJlY3RpdmUgZm9yIFpvb20gRWZmZWN0XHJcbiAqIFxyXG4gKiBAZXhhbXBsZTpcclxuICogIGA8ZGl2IHpvb20tZWRpdG9yIG1heFNjYWxlPSc0JyBtaW5TY2FsZT0nMC41JyBhY2N1bXVsYXRpdmVWYWw9JzAuMSc+PC9kaXY+YFxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiW3pvb20tZWRpdG9yXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBab29tRGlyZWN0aXZlIHtcclxuICBASW5wdXQoKSBtYXhTY2FsZSA9IDM7XHJcbiAgQElucHV0KCkgbWluU2NhbGUgPSAwLjU7XHJcbiAgQElucHV0KCkgYWNjdW11bGF0aXZlVmFsID0gMC4xO1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRTY2FsZSA9IDE7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfcmVmOiBFbGVtZW50UmVmLCBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndoZWVsXCIsIFtcIiRldmVudFwiXSlcclxuICBvbndoZWVsKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSkge1xyXG4gICAgICAvLyBTdXBwb3J0IG9sZGVyIHZlcnNpb24gb2YgSUVcclxuICAgICAgbGV0IGhhbmRsZXIgPSB3aW5kb3cuZXZlbnQgfHwgZXZlbnQ7XHJcbiAgICAgIGhhbmRsZXIucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaGFuZGxlci53aGVlbERlbHRhID4gMCAmJiB0aGlzLmN1cnJlbnRTY2FsZSA8PSB0aGlzLm1heFNjYWxlXHJcbiAgICAgICAgPyAodGhpcy5jdXJyZW50U2NhbGUgKz0gdGhpcy5hY2N1bXVsYXRpdmVWYWwpXHJcbiAgICAgICAgOiBoYW5kbGVyLndoZWVsRGVsdGEgPCAwICYmIHRoaXMuY3VycmVudFNjYWxlID49IHRoaXMubWluU2NhbGVcclxuICAgICAgICA/ICh0aGlzLmN1cnJlbnRTY2FsZSAtPSB0aGlzLmFjY3VtdWxhdGl2ZVZhbClcclxuICAgICAgICA6IFwiXCI7XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICAgIHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgIFwidHJhbnNmb3JtXCIsXHJcbiAgICAgICAgYHNjYWxlKCR7dGhpcy5jdXJyZW50U2NhbGV9KWBcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19