@vicoders/angular
Version:
- [Vicoders Angular Common Module](#vicoders-angular-common-module) - [Install](#install) - [How to use](#how-to-use) - [Pipes](#pipes) - [hasItem](#hasitem) - [isArray](#isarray) - [length](#length) - [orderBy](#orderby)
108 lines • 8.91 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
import { Component, Input } from '@angular/core';
import * as _ from 'lodash';
export class PerPageComponent {
/**
* @param {?} route
* @param {?} activatedRoute
*/
constructor(route, activatedRoute) {
this.route = route;
this.activatedRoute = activatedRoute;
this.limits = [5, 10, 20, 100];
this.perPage = 20;
this.navigationSubscription = this.route.events.subscribe((e) => {
if (e instanceof NavigationEnd) {
/** @type {?} */
const name = this.name || 'per_page';
if (!_.isUndefined(this.activatedRoute.snapshot.queryParams[name])) {
// tslint:disable-next-line:radix
this.perPage = parseInt(this.activatedRoute.snapshot.queryParams[name]);
if (!_.includes(this.limits, this.perPage)) {
this.limits.push(this.perPage);
}
else {
this.limits = [5, 10, 20, 100];
}
}
}
});
}
/**
* @return {?}
*/
ngOnInit() { }
/**
* @return {?}
*/
ngOnDestroy() {
if (!_.isUndefined(this.navigationSubscription)) {
this.navigationSubscription.unsubscribe();
}
}
/**
* @return {?}
*/
updateLimit() {
/** @type {?} */
const name = this.name || 'per_page';
/** @type {?} */
const page = this.page || 'page';
/** @type {?} */
const url = window.location.pathname;
/** @type {?} */
let queryParams = this.activatedRoute.snapshot.queryParams;
/** @type {?} */
const data = {};
data[name] = this.perPage;
data[page] = 1;
queryParams = _.assign({}, queryParams, data);
/** @type {?} */
const params = _.assign({}, this.activatedRoute.snapshot.params, { queryParams });
this.route.navigate([url], params);
}
}
PerPageComponent.decorators = [
{ type: Component, args: [{
// tslint:disable-next-line:component-selector
selector: 'per-page',
template: "<label for=\"\">Show</label>\n<select class=\"form-control input-sm\" name=\"perPage\" [(ngModel)]=\"perPage\" (change)=\"updateLimit()\">\n <option [ngValue]=\"i\" *ngFor=\"let i of limits\">{{ i }}</option>\n</select>\n",
styles: [""]
}] }
];
PerPageComponent.ctorParameters = () => [
{ type: Router },
{ type: ActivatedRoute }
];
PerPageComponent.propDecorators = {
perPage: [{ type: Input }],
name: [{ type: Input }],
page: [{ type: Input }]
};
if (false) {
/** @type {?} */
PerPageComponent.prototype.navigationSubscription;
/** @type {?} */
PerPageComponent.prototype.limits;
/** @type {?} */
PerPageComponent.prototype.perPage;
/** @type {?} */
PerPageComponent.prototype.name;
/** @type {?} */
PerPageComponent.prototype.page;
/**
* @type {?}
* @private
*/
PerPageComponent.prototype.route;
/**
* @type {?}
* @private
*/
PerPageComponent.prototype.activatedRoute;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHZpY29kZXJzL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9wZXItcGFnZS9wZXItcGFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBUzVCLE1BQU07Ozs7O0lBT0osWUFBb0IsS0FBYSxFQUFVLGNBQThCO1FBQXJELFVBQUssR0FBTCxLQUFLLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFMbEUsV0FBTSxHQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsWUFBTyxHQUFZLEVBQUUsQ0FBQztRQUs3QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFlBQVksYUFBYSxFQUFFOztzQkFDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVTtnQkFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQ2xFLGlDQUFpQztvQkFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ3hFLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ2hDO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztxQkFDaEM7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELFFBQVEsS0FBSSxDQUFDOzs7O0lBQ2IsV0FBVztRQUNULElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMzQztJQUNILENBQUM7Ozs7SUFFRCxXQUFXOztjQUNILElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVU7O2NBQzlCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU07O2NBQzFCLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVE7O1lBQ2hDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxXQUFXOztjQUNwRCxJQUFJLEdBQVEsRUFBRTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQzs7Y0FDeEMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQzs7O1lBaERGLFNBQVMsU0FBQzs7Z0JBRVQsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLDBPQUF3Qzs7YUFFekM7OztZQVZRLE1BQU07WUFBRSxjQUFjOzs7c0JBYzVCLEtBQUs7bUJBQ0wsS0FBSzttQkFDTCxLQUFLOzs7O0lBSk4sa0RBQXFDOztJQUNyQyxrQ0FBMkM7O0lBQzNDLG1DQUErQjs7SUFDL0IsZ0NBQW9COztJQUNwQixnQ0FBb0I7Ozs7O0lBRVIsaUNBQXFCOzs7OztJQUFFLDBDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3Blci1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Blci1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGVyLXBhZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQZXJQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBuYXZpZ2F0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBsaW1pdHM6IE51bWJlcltdID0gWzUsIDEwLCAyMCwgMTAwXTtcbiAgQElucHV0KCkgcGVyUGFnZT86IE51bWJlciA9IDIwO1xuICBASW5wdXQoKSBuYW1lPzogYW55O1xuICBASW5wdXQoKSBwYWdlPzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGU6IFJvdXRlciwgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICB0aGlzLm5hdmlnYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlLmV2ZW50cy5zdWJzY3JpYmUoKGU6IGFueSkgPT4ge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWUgfHwgJ3Blcl9wYWdlJztcbiAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbbmFtZV0pKSB7XG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnJhZGl4XG4gICAgICAgICAgdGhpcy5wZXJQYWdlID0gcGFyc2VJbnQodGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tuYW1lXSk7XG4gICAgICAgICAgaWYgKCFfLmluY2x1ZGVzKHRoaXMubGltaXRzLCB0aGlzLnBlclBhZ2UpKSB7XG4gICAgICAgICAgICB0aGlzLmxpbWl0cy5wdXNoKHRoaXMucGVyUGFnZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGltaXRzID0gWzUsIDEwLCAyMCwgMTAwXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge31cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMubmF2aWdhdGlvblN1YnNjcmlwdGlvbikpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUxpbWl0KCkge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWUgfHwgJ3Blcl9wYWdlJztcbiAgICBjb25zdCBwYWdlID0gdGhpcy5wYWdlIHx8ICdwYWdlJztcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgbGV0IHF1ZXJ5UGFyYW1zID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7fTtcbiAgICBkYXRhW25hbWVdID0gdGhpcy5wZXJQYWdlO1xuICAgIGRhdGFbcGFnZV0gPSAxO1xuICAgIHF1ZXJ5UGFyYW1zID0gXy5hc3NpZ24oe30sIHF1ZXJ5UGFyYW1zLCBkYXRhKTtcbiAgICBjb25zdCBwYXJhbXMgPSBfLmFzc2lnbih7fSwgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXMsIHsgcXVlcnlQYXJhbXMgfSk7XG4gICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbdXJsXSwgcGFyYW1zKTtcbiAgfVxufVxuIl19