@fivethree/core
Version:
Fivethree Core Components
194 lines • 13.4 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';
var FivCollapsableMenu = /** @class */ (function () {
function FivCollapsableMenu(sanitizer, menu, split, platform) {
var _this = this;
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 {?}
*/
function (event) { return event.detail.visible; })))
.subscribe((/**
* @param {?} visible
* @return {?}
*/
function (visible) { return (_this.splitVisible = visible); }));
}
Object.defineProperty(FivCollapsableMenu.prototype, "myStyle", {
get: /**
* @return {?}
*/
function () {
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;"));
}
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
FivCollapsableMenu.prototype.hover = /**
* @return {?}
*/
function () {
if (this.collapsed && !this.hovering && this.hoverMenu) {
this.open();
this.hovering = true;
}
};
/**
* @return {?}
*/
FivCollapsableMenu.prototype.blur = /**
* @return {?}
*/
function () {
if (!this.hoverMenu) {
return;
}
if (!this.collapsed && this.hovering) {
this.close();
}
this.hovering = false;
};
Object.defineProperty(FivCollapsableMenu.prototype, "fivCollapseMenu", {
set: /**
* @param {?} collapse
* @return {?}
*/
function (collapse) {
this.collapsed = collapse;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
FivCollapsableMenu.prototype.toggleMenu = /**
* @return {?}
*/
function () {
if (this.hovering) {
this.open();
this.hovering = false;
return;
}
this.collapsed = !this.collapsed;
};
/**
* @return {?}
*/
FivCollapsableMenu.prototype.open = /**
* @return {?}
*/
function () {
this.collapsed = false;
};
/**
* @return {?}
*/
FivCollapsableMenu.prototype.close = /**
* @return {?}
*/
function () {
this.collapsed = true;
};
FivCollapsableMenu.decorators = [
{ type: Directive, args: [{
selector: '[fivCollapseMenu]',
exportAs: 'menuCollapse'
},] }
];
/** @nocollapse */
FivCollapsableMenu.ctorParameters = function () { return [
{ 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 }]
};
return FivCollapsableMenu;
}());
export { FivCollapsableMenu };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2FibGUtbWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZml2ZXRocmVlL2NvcmUvIiwic291cmNlcyI6WyJsaWIvY29sbGFwc2FibGUtbWVudS9jb2xsYXBzYWJsZS1tZW51LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFDTCxZQUFZLEVBQ1osSUFBSSxFQUNKLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFPLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDO0lBYUUsNEJBQ1UsU0FBdUIsRUFDZixJQUFhLEVBQ0QsS0FBbUIsRUFDdkMsUUFBa0I7UUFKNUIsaUJBU0M7UUFSUyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNELFVBQUssR0FBTCxLQUFLLENBQWM7UUFDdkMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVo1QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDWixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2YsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBUS9DLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CO2FBQzNCLElBQUksQ0FBQyxHQUFHOzs7O1FBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFLLENBQUMsTUFB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QWtCOztJQUNsQixzQ0FBaUI7O0lBQ2pCLDBDQUFxQjs7SUFDckIsdUNBQTBCOztJQUMxQixtQ0FBb0I7O0lBQ3BCLHNDQUF3Qjs7SUFDeEIsc0NBQWlEOzs7OztJQUcvQyx1Q0FBK0I7Ozs7O0lBQy9CLGtDQUE2Qjs7Ozs7SUFDN0IsbUNBQStDOzs7OztJQUMvQyxzQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybSwgSW9uTWVudSwgSW9uU3BsaXRQYW5lIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSG9zdCxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlU3R5bGUsIERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgdGFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmaXZDb2xsYXBzZU1lbnVdJyxcbiAgZXhwb3J0QXM6ICdtZW51Q29sbGFwc2UnXG59KVxuZXhwb3J0IGNsYXNzIEZpdkNvbGxhcHNhYmxlTWVudSB7XG4gIGNvbGxhcHNlZCA9IGZhbHNlO1xuICBob3ZlcmluZyA9IGZhbHNlO1xuICBzcGxpdFZpc2libGUgPSBmYWxzZTtcbiAgQElucHV0KCkgaG92ZXJNZW51ID0gdHJ1ZTtcbiAgQElucHV0KCkgd2lkdGggPSA2NDtcbiAgQElucHV0KCkgbWluV2lkdGggPSAyNzA7XG4gIEBJbnB1dCgpIG1heFdpZHRoID0gdGhpcy5wbGF0Zm9ybS53aWR0aCgpICogMC4yODtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIEBIb3N0KCkgcHJpdmF0ZSBtZW51OiBJb25NZW51LFxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBzcGxpdDogSW9uU3BsaXRQYW5lLFxuICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtXG4gICkge1xuICAgIHRoaXMuc3BsaXQuaW9uU3BsaXRQYW5lVmlzaWJsZVxuICAgICAgLnBpcGUobWFwKGV2ZW50ID0+IGV2ZW50LmRldGFpbC52aXNpYmxlKSlcbiAgICAgIC5zdWJzY3JpYmUodmlzaWJsZSA9PiAodGhpcy5zcGxpdFZpc2libGUgPSB2aXNpYmxlKSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcbiAgZ2V0IG15U3R5bGUoKTogU2FmZVN0eWxlIHtcbiAgICBpZiAodGhpcy5jb2xsYXBzZWQgJiYgdGhpcy5zcGxpdFZpc2libGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuc2FuaXRpemVyXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgICAgIC5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoXG4gICAgICAgICAgICBgbWluLXdpZHRoOiAke3RoaXMud2lkdGh9cHg7IG1heC13aWR0aDogJHt0aGlzLndpZHRofXB4OyAtLWJvcmRlcjogMDsgdHJhbnNpdGlvbjogYWxsIGN1YmljLWJlemllciguNTUsMCwuMSwxKSAyMDBtcztgXG4gICAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLnNwbGl0VmlzaWJsZSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMuc2FuaXRpemVyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICAgICAgICAuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxuICAgICAgICAgICAgICBgLS1ib3JkZXI6IDA7IHRyYW5zaXRpb246IGFsbCBjdWJpYy1iZXppZXIoLjU1LDAsLjEsMSkgMjAwbXM7YFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLnNhbml0aXplclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgICAgICAgLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShcbiAgICAgICAgICAgICAgYG1pbi13aWR0aDogJHt0aGlzLm1pbldpZHRofXB4OyBtYXgtd2lkdGg6ICR7dGhpcy5tYXhXaWR0aH1weDsgLS1ib3JkZXI6IDA7IHRyYW5zaXRpb246IGFsbCBjdWJpYy1iZXppZXIoLjU1LDAsLjEsMSkgMjAwbXM7YFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKSBob3ZlcigpIHtcbiAgICBpZiAodGhpcy5jb2xsYXBzZWQgJiYgIXRoaXMuaG92ZXJpbmcgJiYgdGhpcy5ob3Zlck1lbnUpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgICAgdGhpcy5ob3ZlcmluZyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpIGJsdXIoKSB7XG4gICAgaWYgKCF0aGlzLmhvdmVyTWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY29sbGFwc2VkICYmIHRoaXMuaG92ZXJpbmcpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5ob3ZlcmluZyA9IGZhbHNlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGZpdkNvbGxhcHNlTWVudShjb2xsYXBzZTogYm9vbGVhbikge1xuICAgIHRoaXMuY29sbGFwc2VkID0gY29sbGFwc2U7XG4gIH1cblxuICB0b2dnbGVNZW51KCkge1xuICAgIGlmICh0aGlzLmhvdmVyaW5nKSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIHRoaXMuaG92ZXJpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb2xsYXBzZWQgPSAhdGhpcy5jb2xsYXBzZWQ7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuY29sbGFwc2VkID0gZmFsc2U7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmNvbGxhcHNlZCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==