@fivethree/core
Version:
Fivethree Core Components
174 lines • 12.3 kB
JavaScript
/**
* @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