UNPKG

@fivethree/core

Version:
174 lines 12.3 kB
/** * @fileoverview added by tsickle * Generated from: lib/collapsable-menu/collapsable-menu.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Platform, IonMenu, IonSplitPane } from '@ionic/angular'; import { Directive, HostBinding, Input, HostListener, Host, Optional } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; import { map } from 'rxjs/operators'; export class FivCollapsableMenu { /** * @param {?} sanitizer * @param {?} menu * @param {?} split * @param {?} platform */ constructor(sanitizer, menu, split, platform) { this.sanitizer = sanitizer; this.menu = menu; this.split = split; this.platform = platform; this.collapsed = false; this.hovering = false; this.splitVisible = false; this.hoverMenu = true; this.width = 64; this.minWidth = 270; this.maxWidth = this.platform.width() * 0.28; this.split.ionSplitPaneVisible .pipe(map((/** * @param {?} event * @return {?} */ event => event.detail.visible))) .subscribe((/** * @param {?} visible * @return {?} */ visible => (this.splitVisible = visible))); } /** * @return {?} */ get myStyle() { if (this.collapsed && this.splitVisible) { return (this.sanitizer // tslint:disable-next-line:max-line-length .bypassSecurityTrustStyle(`min-width: ${this.width}px; max-width: ${this.width}px; --border: 0; transition: all cubic-bezier(.55,0,.1,1) 200ms;`)); } else { if (!this.splitVisible) { return (this.sanitizer // tslint:disable-next-line:max-line-length .bypassSecurityTrustStyle(`--border: 0; transition: all cubic-bezier(.55,0,.1,1) 200ms;`)); } else { return (this.sanitizer // tslint:disable-next-line:max-line-length .bypassSecurityTrustStyle(`min-width: ${this.minWidth}px; max-width: ${this.maxWidth}px; --border: 0; transition: all cubic-bezier(.55,0,.1,1) 200ms;`)); } } } /** * @return {?} */ hover() { if (this.collapsed && !this.hovering && this.hoverMenu) { this.open(); this.hovering = true; } } /** * @return {?} */ blur() { if (!this.hoverMenu) { return; } if (!this.collapsed && this.hovering) { this.close(); } this.hovering = false; } /** * @param {?} collapse * @return {?} */ set fivCollapseMenu(collapse) { this.collapsed = collapse; } /** * @return {?} */ toggleMenu() { if (this.hovering) { this.open(); this.hovering = false; return; } this.collapsed = !this.collapsed; } /** * @return {?} */ open() { this.collapsed = false; } /** * @return {?} */ close() { this.collapsed = true; } } FivCollapsableMenu.decorators = [ { type: Directive, args: [{ selector: '[fivCollapseMenu]', exportAs: 'menuCollapse' },] } ]; /** @nocollapse */ FivCollapsableMenu.ctorParameters = () => [ { type: DomSanitizer }, { type: IonMenu, decorators: [{ type: Host }] }, { type: IonSplitPane, decorators: [{ type: Host }, { type: Optional }] }, { type: Platform } ]; FivCollapsableMenu.propDecorators = { hoverMenu: [{ type: Input }], width: [{ type: Input }], minWidth: [{ type: Input }], maxWidth: [{ type: Input }], myStyle: [{ type: HostBinding, args: ['style',] }], hover: [{ type: HostListener, args: ['mouseenter',] }], blur: [{ type: HostListener, args: ['mouseleave',] }], fivCollapseMenu: [{ type: Input }] }; if (false) { /** @type {?} */ FivCollapsableMenu.prototype.collapsed; /** @type {?} */ FivCollapsableMenu.prototype.hovering; /** @type {?} */ FivCollapsableMenu.prototype.splitVisible; /** @type {?} */ FivCollapsableMenu.prototype.hoverMenu; /** @type {?} */ FivCollapsableMenu.prototype.width; /** @type {?} */ FivCollapsableMenu.prototype.minWidth; /** @type {?} */ FivCollapsableMenu.prototype.maxWidth; /** * @type {?} * @private */ FivCollapsableMenu.prototype.sanitizer; /** * @type {?} * @private */ FivCollapsableMenu.prototype.menu; /** * @type {?} * @private */ FivCollapsableMenu.prototype.split; /** * @type {?} * @private */ FivCollapsableMenu.prototype.platform; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2FibGUtbWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZml2ZXRocmVlL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29sbGFwc2FibGUtbWVudS9jb2xsYXBzYWJsZS1tZW51LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxZQUFZLEVBQ1osSUFBSSxFQUNKLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFPLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTFDLE1BQU0sT0FBTyxrQkFBa0I7Ozs7Ozs7SUFTN0IsWUFDVSxTQUF1QixFQUNmLElBQWEsRUFDRCxLQUFtQixFQUN2QyxRQUFrQjtRQUhsQixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNELFVBQUssR0FBTCxLQUFLLENBQWM7UUFDdkMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVo1QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDWixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBUS9DLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CO2FBQzNCLElBQUksQ0FBQyxHQUFHOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxL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K0M7Ozs7O0lBQy9DLHNDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtLCBJb25NZW51LCBJb25TcGxpdFBhbmUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgSG9zdExpc3RlbmVyLFxuICBIb3N0LFxuICBPcHRpb25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhZmVTdHlsZSwgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyB0YXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZpdkNvbGxhcHNlTWVudV0nLFxuICBleHBvcnRBczogJ21lbnVDb2xsYXBzZSdcbn0pXG5leHBvcnQgY2xhc3MgRml2Q29sbGFwc2FibGVNZW51IHtcbiAgY29sbGFwc2VkID0gZmFsc2U7XG4gIGhvdmVyaW5nID0gZmFsc2U7XG4gIHNwbGl0VmlzaWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBob3Zlck1lbnUgPSB0cnVlO1xuICBASW5wdXQoKSB3aWR0aCA9IDY0O1xuICBASW5wdXQoKSBtaW5XaWR0aCA9IDI3MDtcbiAgQElucHV0KCkgbWF4V2lkdGggPSB0aGlzLnBsYXRmb3JtLndpZHRoKCkgKiAwLjI4O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgQEhvc3QoKSBwcml2YXRlIG1lbnU6IElvbk1lbnUsXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBwcml2YXRlIHNwbGl0OiBJb25TcGxpdFBhbmUsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm1cbiAgKSB7XG4gICAgdGhpcy5zcGxpdC5pb25TcGxpdFBhbmVWaXNpYmxlXG4gICAgICAucGlwZShtYXAoZXZlbnQgPT4gZXZlbnQuZGV0YWlsLnZpc2libGUpKVxuICAgICAgLnN1YnNjcmliZSh2aXNpYmxlID0+ICh0aGlzLnNwbGl0VmlzaWJsZSA9IHZpc2libGUpKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKVxuICBnZXQgbXlTdHlsZSgpOiBTYWZlU3R5bGUge1xuICAgIGlmICh0aGlzLmNvbGxhcHNlZCAmJiB0aGlzLnNwbGl0VmlzaWJsZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5zYW5pdGl6ZXJcbiAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICAgICAgLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShcbiAgICAgICAgICAgIGBtaW4td2lkdGg6ICR7dGhpcy53aWR0aH1weDsgbWF4LXdpZHRoOiAke3RoaXMud2lkdGh9cHg7IC0tYm9yZGVyOiAwOyB0cmFuc2l0aW9uOiBhbGwgY3ViaWMtYmV6aWVyKC41NSwwLC4xLDEpIDIwMG1zO2BcbiAgICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMuc3BsaXRWaXNpYmxlKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy5zYW5pdGl6ZXJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgICAgICAgIC5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoXG4gICAgICAgICAgICAgIGAtLWJvcmRlcjogMDsgdHJhbnNpdGlvbjogYWxsIGN1YmljLWJlemllciguNTUsMCwuMSwxKSAyMDBtcztgXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMuc2FuaXRpemVyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICAgICAgICAuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxuICAgICAgICAgICAgICBgbWluLXdpZHRoOiAke3RoaXMubWluV2lkdGh9cHg7IG1heC13aWR0aDogJHt0aGlzLm1heFdpZHRofXB4OyAtLWJvcmRlcjogMDsgdHJhbnNpdGlvbjogYWxsIGN1YmljLWJlemllciguNTUsMCwuMSwxKSAyMDBtcztgXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIGhvdmVyKCkge1xuICAgIGlmICh0aGlzLmNvbGxhcHNlZCAmJiAhdGhpcy5ob3ZlcmluZyAmJiB0aGlzLmhvdmVyTWVudSkge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB0aGlzLmhvdmVyaW5nID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgYmx1cigpIHtcbiAgICBpZiAoIXRoaXMuaG92ZXJNZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5jb2xsYXBzZWQgJiYgdGhpcy5ob3ZlcmluZykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgICB0aGlzLmhvdmVyaW5nID0gZmFsc2U7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZml2Q29sbGFwc2VNZW51KGNvbGxhcHNlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jb2xsYXBzZWQgPSBjb2xsYXBzZTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoKSB7XG4gICAgaWYgKHRoaXMuaG92ZXJpbmcpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgICAgdGhpcy5ob3ZlcmluZyA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5jb2xsYXBzZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuY29sbGFwc2VkID0gdHJ1ZTtcbiAgfVxufVxuIl19