@cloukit/pagination
Version:
147 lines • 12.7 kB
JavaScript
/**
* @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