UNPKG

@cloukit/pagination

Version:

147 lines 12.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ /*! * @license MIT * Copyright (c) 2017 Bernhard Grünewaldt - codeclou.io * https://github.com/cloukit/legal */ import { EventEmitter, Component, Input, Output } from '@angular/core'; import { CloukitComponentTheme, CloukitThemeService, UiElement } from '@cloukit/theme'; import { Ui } from '../pagination.model'; import { PaginationButtonClickEvent, PaginationButtonType, PaginationItem } from '../pagination.model'; var CloukitPaginationButtonComponent = /** @class */ (function () { function CloukitPaginationButtonComponent(themeService) { this.themeService = themeService; this.clicked = new EventEmitter(); this.isMouseStillOver = false; } /** * @param {?} pageItem * @return {?} */ CloukitPaginationButtonComponent.transform = /** * @param {?} pageItem * @return {?} */ function (pageItem) { if (pageItem === undefined || pageItem === null) { return new UiElement(Ui.elements.filler, Ui.states.disabled, Ui.modifier.base); } /** @type {?} */ var uiElement = pageItem.isFiller ? Ui.elements.filler : Ui.elements.button; /** @type {?} */ var uiState = pageItem.isActive ? Ui.states.active : Ui.states.normal; return new UiElement(uiElement, uiState, Ui.modifier.base); }; /** * @return {?} */ CloukitPaginationButtonComponent.prototype.updateStyle = /** * @return {?} */ function () { /** @type {?} */ var style = this.themeSelected.getUiStyle(this.ui); if (style !== null) { this.style = this.themeService.prefixStyle(style); } }; /** * @return {?} */ CloukitPaginationButtonComponent.prototype.ngOnChanges = /** * @return {?} */ function () { // retain mouseEnter and mouseLeave modifier changes! /** @type {?} */ var modifier = null; if (this.ui !== null && this.ui !== undefined) { modifier = this.ui.modifier; } this.ui = CloukitPaginationButtonComponent.transform(this.paginationItem); if (modifier !== null && this.isMouseStillOver) { this.ui.modifier = modifier; } if (this.disabled === true) { this.ui.state = Ui.states.disabled; this.ui.modifier = Ui.modifier.base; } this.updateStyle(); }; /** * @return {?} */ CloukitPaginationButtonComponent.prototype.mouseEnter = /** * @return {?} */ function () { this.ui.modifier = Ui.modifier.hover; this.isMouseStillOver = true; this.updateStyle(); }; /** * @return {?} */ CloukitPaginationButtonComponent.prototype.mouseLeave = /** * @return {?} */ function () { this.ui.modifier = Ui.modifier.base; this.isMouseStillOver = false; this.updateStyle(); }; /** * @return {?} */ CloukitPaginationButtonComponent.prototype.doClick = /** * @return {?} */ function () { if (!this.paginationItem.isFiller) { this.clicked.emit(new PaginationButtonClickEvent(this.type, this.paginationItem.page)); } }; CloukitPaginationButtonComponent.decorators = [ { type: Component, args: [{ selector: 'cloukit-pagination-button', template: "\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n [ngStyle]=\"style?.style\"\n (click)=\"doClick()\"\n (mouseenter)=\"mouseEnter()\"\n (mouseleave)=\"mouseLeave()\"\n >\n {{paginationItem.label}}\n </button>" }] } ]; /** @nocollapse */ CloukitPaginationButtonComponent.ctorParameters = function () { return [ { type: CloukitThemeService } ]; }; CloukitPaginationButtonComponent.propDecorators = { disabled: [{ type: Input }], type: [{ type: Input }], paginationItem: [{ type: Input }], themeSelected: [{ type: Input }], clicked: [{ type: Output }] }; return CloukitPaginationButtonComponent; }()); export { CloukitPaginationButtonComponent }; if (false) { /** @type {?} */ CloukitPaginationButtonComponent.prototype.disabled; /** @type {?} */ CloukitPaginationButtonComponent.prototype.type; /** @type {?} */ CloukitPaginationButtonComponent.prototype.paginationItem; /** @type {?} */ CloukitPaginationButtonComponent.prototype.themeSelected; /** @type {?} */ CloukitPaginationButtonComponent.prototype.clicked; /** @type {?} */ CloukitPaginationButtonComponent.prototype.ui; /** @type {?} */ CloukitPaginationButtonComponent.prototype.style; /** @type {?} */ CloukitPaginationButtonComponent.prototype.isMouseStillOver; /** @type {?} */ CloukitPaginationButtonComponent.prototype.themeService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNsb3VraXQvcGFnaW5hdGlvbi8iLCJzb3VyY2VzIjpbImxpYi9jaGlsZHJlbi9wYWdpbmF0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RztJQWdERSwwQ0FBb0IsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBbEI5QyxZQUFPLEdBQTZDLElBQUksWUFBWSxFQUFFLENBQUM7UUFPdEUscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBWWpDLENBQUM7Ozs7O0lBVmEsMENBQVM7Ozs7SUFBdkIsVUFBd0IsUUFBd0I7UUFDOUMsSUFBSSxRQUFRLEtBQUssU0FBUyxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDL0MsT0FBTyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hGOztZQUNLLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNOztZQUN2RSxPQUFPLEdB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eUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlIE1JVFxuICogQ29weXJpZ2h0IChjKSAyMDE3IEJlcm5oYXJkIEdyw7xuZXdhbGR0IC0gY29kZWNsb3UuaW9cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9jbG91a2l0L2xlZ2FsXG4gKi9cbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsb3VraXRDb21wb25lbnRUaGVtZSwgQ2xvdWtpdFRoZW1lU2VydmljZSwgVWlFbGVtZW50IH0gZnJvbSAnQGNsb3VraXQvdGhlbWUnO1xuaW1wb3J0IHsgVWkgfSBmcm9tICcuLi9wYWdpbmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IFBhZ2luYXRpb25CdXR0b25DbGlja0V2ZW50LCBQYWdpbmF0aW9uQnV0dG9uVHlwZSwgUGFnaW5hdGlvbkl0ZW0gfSBmcm9tICcuLi9wYWdpbmF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xvdWtpdC1wYWdpbmF0aW9uLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW25nU3R5bGVdPVwic3R5bGU/LnN0eWxlXCJcbiAgICAgIChjbGljayk9XCJkb0NsaWNrKClcIlxuICAgICAgKG1vdXNlZW50ZXIpPVwibW91c2VFbnRlcigpXCJcbiAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmUoKVwiXG4gICAgPlxuICAgICAge3twYWdpbmF0aW9uSXRlbS5sYWJlbH19XG4gICAgPC9idXR0b24+YCxcbiAgc3R5bGVzOiBbIF0sXG59KVxuZXhwb3J0IGNsYXNzIENsb3VraXRQYWdpbmF0aW9uQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHR5cGU6IFBhZ2luYXRpb25CdXR0b25UeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdpbmF0aW9uSXRlbTogUGFnaW5hdGlvbkl0ZW07XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRoZW1lU2VsZWN0ZWQ6IENsb3VraXRDb21wb25lbnRUaGVtZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxQYWdpbmF0aW9uQnV0dG9uQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLy9cbiAgLy8gSU5URVJOQUxcbiAgLy9cbiAgcHJpdmF0ZSB1aTogVWlFbGVtZW50O1xuICBwdWJsaWMgc3R5bGU6IGFueTtcbiAgcHJpdmF0ZSBpc01vdXNlU3RpbGxPdmVyID0gZmFsc2U7XG5cbiAgcHVibGljIHN0YXRpYyB0cmFuc2Zvcm0ocGFnZUl0ZW06IFBhZ2luYXRpb25JdGVtKTogVWlFbGVtZW50IHtcbiAgICBpZiAocGFnZUl0ZW0gPT09IHVuZGVmaW5lZCB8fCBwYWdlSXRlbSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5ldyBVaUVsZW1lbnQoVWkuZWxlbWVudHMuZmlsbGVyLCBVaS5zdGF0ZXMuZGlzYWJsZWQsIFVpLm1vZGlmaWVyLmJhc2UpO1xuICAgIH1cbiAgICBjb25zdCB1aUVsZW1lbnQgPSBwYWdlSXRlbS5pc0ZpbGxlciA/IFVpLmVsZW1lbnRzLmZpbGxlciA6IFVpLmVsZW1lbnRzLmJ1dHRvbjtcbiAgICBjb25zdCB1aVN0YXRlID0gcGFnZUl0ZW0uaXNBY3RpdmUgPyBVaS5zdGF0ZXMuYWN0aXZlIDogVWkuc3RhdGVzLm5vcm1hbDtcbiAgICByZXR1cm4gbmV3IFVpRWxlbWVudCh1aUVsZW1lbnQsIHVpU3RhdGUsIFVpLm1vZGlmaWVyLmJhc2UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0aGVtZVNlcnZpY2U6IENsb3VraXRUaGVtZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHVwZGF0ZVN0eWxlKCkge1xuICAgIGNvbnN0IHN0eWxlID0gdGhpcy50aGVtZVNlbGVjdGVkLmdldFVpU3R5bGUodGhpcy51aSk7XG4gICAgaWYgKHN0eWxlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnN0eWxlID0gdGhpcy50aGVtZVNlcnZpY2UucHJlZml4U3R5bGUoc3R5bGUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIC8vIHJldGFpbiBtb3VzZUVudGVyIGFuZCBtb3VzZUxlYXZlIG1vZGlmaWVyIGNoYW5nZXMhXG4gICAgbGV0IG1vZGlmaWVyOiBzdHJpbmcgPSBudWxsO1xuICAgIGlmICh0aGlzLnVpICE9PSBudWxsICYmIHRoaXMudWkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbW9kaWZpZXIgPSB0aGlzLnVpLm1vZGlmaWVyO1xuICAgIH1cbiAgICB0aGlzLnVpID0gQ2xvdWtpdFBhZ2luYXRpb25CdXR0b25Db21wb25lbnQudHJhbnNmb3JtKHRoaXMucGFnaW5hdGlvbkl0ZW0pO1xuICAgIGlmIChtb2RpZmllciAhPT0gbnVsbCAmJiB0aGlzLmlzTW91c2VTdGlsbE92ZXIpIHtcbiAgICAgIHRoaXMudWkubW9kaWZpZXIgPSBtb2RpZmllcjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgPT09IHRydWUpIHtcbiAgICAgIHRoaXMudWkuc3RhdGUgPSBVaS5zdGF0ZXMuZGlzYWJsZWQ7XG4gICAgICB0aGlzLnVpLm1vZGlmaWVyID0gVWkubW9kaWZpZXIuYmFzZTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICB9XG5cbiAgcHVibGljIG1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy51aS5tb2RpZmllciA9IFVpLm1vZGlmaWVyLmhvdmVyO1xuICAgIHRoaXMuaXNNb3VzZVN0aWxsT3ZlciA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICB9XG5cbiAgcHVibGljIG1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy51aS5tb2RpZmllciA9IFVpLm1vZGlmaWVyLmJhc2U7XG4gICAgdGhpcy5pc01vdXNlU3RpbGxPdmVyID0gZmFsc2U7XG4gICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICB9XG5cbiAgcHVibGljIGRvQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLnBhZ2luYXRpb25JdGVtLmlzRmlsbGVyKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdChuZXcgUGFnaW5hdGlvbkJ1dHRvbkNsaWNrRXZlbnQodGhpcy50eXBlLCB0aGlzLnBhZ2luYXRpb25JdGVtLnBhZ2UpKTtcbiAgICB9XG4gIH1cblxuXG5cbn1cblxuIl19