Socket
Socket
Sign inDemoInstall

ngx-table-pagination

Package Overview
Dependencies
5
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.4 to 1.0.0

49

bundles/ngx-table-pagination.umd.js

@@ -110,9 +110,2 @@ (function (global, factory) {

/**
* The default template and styles for the pagination links are borrowed directly
* from Zurb Foundation 6: http://foundation.zurb.com/sites/docs/pagination.html
*/
var DEFAULT_TEMPLATE = "\n<pagination-template\n #p=\"paginationApi\"\n [id]=\"id\"\n [maxSize]=\"maxSize\"\n (pageChange)=\"pageChange.emit($event)\"\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\"\n>\n <div *ngIf=\"!(autoHide && p.pages.length <= 1)\">\n <div class=\"items-number\" *ngIf=\"isItemsPerPage\">\n <span style=\"display: flex\" class=\"pagination-font\">\n <label class=\"show-label\">Show</label>\n <select class=\"no-padding pagination-font\"\n [(ngModel)]=\"p.itemsPerPage\"\n (change)=\"p.pageSizeChanged($event.target.value)\"\n >\n <option\n *ngFor=\"let pageSizeDefault of p.pageSizes\"\n value=\"{{ pageSizeDefault }}\"\n >\n {{ pageSizeDefault }}\n </option>\n </select>\n <label class=\"entries-label\">entries</label></span\n >\n </div>\n\n <div\n class=\"ngx-pagination pagination-font\"\n role=\"navigation\"\n *ngIf=\"!isItemsPerPage\"\n [attr.aria-label]=\"screenReaderPaginationLabel\"\n [class.responsive]=\"responsive\"\n >\n <label\n >Showing {{ p.getStartIndex() }} - {{ p.getEndIndex() }} of\n {{ p.getTotalItems() }} entries</label\n >\n\n <ul role=\"navigation\" class=\"\">\n <li\n class=\"pagination-previous pagination-font\"\n [class.disabled]=\"p.isFirstPage()\"\n *ngIf=\"directionLinks\"\n >\n <a\n tabindex=\"0\"\n *ngIf=\"1 < p.getCurrent()\"\n (keyup.enter)=\"p.previous()\"\n (click)=\"p.previous()\"\n [attr.aria-label]=\"previousLabel + ' ' + screenReaderPageLabel\"\n >\n {{ previousLabel }}\n </a>\n <span *ngIf=\"p.isFirstPage()\">\n {{ previousLabel }}\n </span>\n </li>\n <li class=\"small-screen pagination-font\">\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\n </li>\n <li\nclass=\"pagination-font\"\n [class.current]=\"p.getCurrent() === page.value\"\n [class.ellipsis]=\"page.label === '...'\"\n *ngFor=\"let page of p.pages\"\n >\n <a\n tabindex=\"0\"\n (keyup.enter)=\"p.setCurrent(page.value)\"\n (click)=\"p.setCurrent(page.value)\"\n *ngIf=\"p.getCurrent() !== page.value\"\n >\n <span class=\"show-for-sr\">{{ screenReaderPageLabel }} </span>\n <span>{{\n page.label === \"...\" ? page.label : (page.label | number: \"\")\n }}</span>\n </a>\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel }} </span>\n <span>{{\n page.label === \"...\" ? page.label : (page.label | number: \"\")\n }}</span>\n </ng-container>\n </li>\n <li\n class=\"pagination-next pagination-font\"\n [class.disabled]=\"p.isLastPage()\"\n *ngIf=\"directionLinks\"\n >\n <a\n tabindex=\"0\"\n *ngIf=\"!p.isLastPage()\"\n (keyup.enter)=\"p.next()\"\n (click)=\"p.next()\"\n [attr.aria-label]=\"nextLabel + ' ' + screenReaderPageLabel\"\n >\n {{ nextLabel }}\n </a>\n <span *ngIf=\"p.isLastPage()\">\n {{ nextLabel }}\n </span>\n </li>\n </ul>\n </div>\n </div>\n</pagination-template>\n\n ";
var DEFAULT_STYLES = "\n.show-label {\n margin-right: 0.25rem;\n}\n.no-padding {\n padding: 0;\n}\n.select-box {\n border: 1px solid #333333b0;\n color: #333333b0;\n border-radius: 4px;\n opacity: 1;\n}\n.entries-label {\n margin-left: 0.25rem;\n}\n.ngx-pagination {\n display: flex;\n justify-content: space-between;\n margin-left: 0;\n margin-bottom: 1rem;\n}\n.ngx-pagination::before,\n.ngx-pagination::after {\n display: table;\n}\n.ngx-pagination::after {\n clear: both;\n}\n\n.ngx-pagination li {\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n margin-right: 0.0625rem;\n border-radius: 0;\n}\n.ngx-pagination li {\n display: inline-block;\n}\n.ngx-pagination a,\n.ngx-pagination button {\n display: block;\n padding: 0.1875rem 0.625rem;\n border-radius: 0;\n}\n.ngx-pagination a:hover,\n.ngx-pagination button:hover {\n background: #e6e6e6;\n}\n.ngx-pagination .current {\n padding: 0.1875rem 0.625rem;\n background: #2199e8;\n color: #fefefe;\n cursor: default;\n}\n.ngx-pagination .disabled {\n padding: 0.1875rem 0.625rem;\n color: #cacaca;\n cursor: default;\n}\n.ngx-pagination .disabled:hover {\n background: transparent;\n}\n.ngx-pagination a,\n.ngx-pagination button {\n cursor: pointer;\n}\n.ngx-pagination .pagination-previous a::before,\n.ngx-pagination .pagination-previous.disabled::before {\n content: \"\u00AB\";\n display: inline-block;\n margin-right: 0.5rem;\n}\n.ngx-pagination .pagination-next a::after,\n.ngx-pagination .pagination-next.disabled::after {\n content: \"\u00BB\";\n display: inline-block;\n margin-left: 0.5rem;\n}\n.ngx-pagination .show-for-sr {\n position: absolute !important;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n}\n.ngx-pagination .small-screen {\n display: none;\n}\n@media screen and (max-width: 601px) {\n .ngx-pagination.responsive .small-screen {\n display: inline-block;\n }\n .ngx-pagination.responsive\n li:not(.small-screen):not(.pagination-previous):not(.pagination-next) {\n display: none;\n }\n}\n@media only screen and (max-width: 1023px) {\n .pagination-font {\n font-size: 14px !important;\n color: #2e384d !important;\n }\n}\n@media only screen and (min-width: 1024px) and (max-width: 1439px) {\n .pagination-font {\n font-size: 16px !important;\n color: #2e384d;\n }\n}\n@media only screen and (min-width: 1440px) and (max-width: 2559px) {\n .pagination-font {\n font-size: 18px !important;\n color: #2e384d;\n }\n}\n\n ";
function coerceToBoolean(input) {

@@ -174,6 +167,6 @@ return !!input && input !== 'false';

selector: 'paging-controls',
template: DEFAULT_TEMPLATE,
template: "<!-- [itemsPerPage]=\"itemsPerPage?itemsPerPage:5\" -->\r\n<pagination-template\r\n #p=\"paginationApi\"\r\n [id]=\"id\"\r\n [maxSize]=\"maxSize\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\"\r\n>\r\n <div *ngIf=\"!(autoHide && p.pages.length <= 1)\">\r\n <div class=\"items-number\" *ngIf=\"isItemsPerPage\">\r\n <span style=\"display: flex\" class=\"pagination-font\">\r\n <label class=\"show-label\">Show</label>\r\n <select\r\n class=\"no-padding pagination-font\"\r\n [(ngModel)]=\"p.itemsPerPage\"\r\n (change)=\"p.pageSizeChanged($event.target.value)\"\r\n >\r\n <option\r\n *ngFor=\"let pageSizeDefault of p.pageSizes\"\r\n value=\"{{ pageSizeDefault }}\"\r\n [selected]=\"pageSizeDefault == p.itemsPerPage\"\r\n >\r\n {{ pageSizeDefault }}\r\n </option>\r\n </select>\r\n <label class=\"entries-label\">entries</label></span\r\n >\r\n </div>\r\n\r\n <div\r\n class=\"ngx-pagination pagination-font\"\r\n role=\"navigation\"\r\n *ngIf=\"!isItemsPerPage\"\r\n [attr.aria-label]=\"screenReaderPaginationLabel\"\r\n [class.responsive]=\"responsive\"\r\n >\r\n <label\r\n >Showing {{ p.getStartIndex() }} - {{ p.getEndIndex() }} of\r\n {{ p.getTotalItems() }} entries</label\r\n >\r\n\r\n <ul role=\"navigation\" class=\"\">\r\n <li\r\n class=\"pagination-previous pagination-font\"\r\n [class.disabled]=\"p.isFirstPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"1 < p.getCurrent()\"\r\n (keyup.enter)=\"p.previous()\"\r\n (click)=\"p.previous()\"\r\n [attr.aria-label]=\"previousLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ previousLabel }}\r\n </a>\r\n <span *ngIf=\"p.isFirstPage()\">\r\n {{ previousLabel }}\r\n </span>\r\n </li>\r\n <li class=\"small-screen pagination-font\">\r\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\r\n </li>\r\n <li\r\n class=\"pagination-font\"\r\n [class.current]=\"p.getCurrent() === page.value\"\r\n [class.ellipsis]=\"page.label === '...'\"\r\n *ngFor=\"let page of p.pages\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n (keyup.enter)=\"p.setCurrent(page.value)\"\r\n (click)=\"p.setCurrent(page.value)\"\r\n *ngIf=\"p.getCurrent() !== page.value\"\r\n >\r\n <span class=\"show-for-sr\">{{ screenReaderPageLabel }} </span>\r\n <span>{{\r\n page.label === \"...\" ? page.label : (page.label | number: \"\")\r\n }}</span>\r\n </a>\r\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\r\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel }} </span>\r\n <span>{{\r\n page.label === \"...\" ? page.label : (page.label | number: \"\")\r\n }}</span>\r\n </ng-container>\r\n </li>\r\n <li\r\n class=\"pagination-next pagination-font\"\r\n [class.disabled]=\"p.isLastPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"!p.isLastPage()\"\r\n (keyup.enter)=\"p.next()\"\r\n (click)=\"p.next()\"\r\n [attr.aria-label]=\"nextLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ nextLabel }}\r\n </a>\r\n <span *ngIf=\"p.isLastPage()\">\r\n {{ nextLabel }}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</pagination-template>\r\n",
changeDetection: core.ChangeDetectionStrategy.OnPush,
encapsulation: core.ViewEncapsulation.None,
styles: [DEFAULT_STYLES]
styles: [".show-label{margin-right:.25rem}.no-padding{padding:0}.select-box{border:1px solid rgba(51,51,51,.6901960784313725);border-radius:4px;color:rgba(51,51,51,.6901960784313725);opacity:1}.entries-label{margin-left:.25rem}.ngx-pagination{display:flex;justify-content:space-between;margin-bottom:1rem;margin-left:0}.ngx-pagination:after,.ngx-pagination:before{display:table}.ngx-pagination:after{clear:both}.ngx-pagination li{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;border-radius:0;display:inline-block;margin-right:.0625rem}.ngx-pagination a,.ngx-pagination button{border-radius:0;display:block;padding:.1875rem .625rem}.ngx-pagination a:hover,.ngx-pagination button:hover{background:#e6e6e6}.ngx-pagination .current{background:#2199e8;color:#fefefe;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled{color:#cacaca;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled:hover{background:transparent}.ngx-pagination a,.ngx-pagination button{cursor:pointer}.ngx-pagination .pagination-previous.disabled:before,.ngx-pagination .pagination-previous a:before{content:\"\u00AB\";display:inline-block;margin-right:.5rem}.ngx-pagination .pagination-next.disabled:after,.ngx-pagination .pagination-next a:after{content:\"\u00BB\";display:inline-block;margin-left:.5rem}.ngx-pagination .show-for-sr{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute!important;width:1px}.ngx-pagination .small-screen{display:none}@media screen and (max-width:601px){.ngx-pagination.responsive .small-screen{display:inline-block}.ngx-pagination.responsive li:not(.small-screen):not(.pagination-previous):not(.pagination-next){display:none}}@media only screen and (max-width:1023px){.pagination-font{color:#2e384d!important;font-size:14px!important}}@media only screen and (min-width:1024px) and (max-width:1439px){.pagination-font{color:#2e384d;font-size:16px!important}}@media only screen and (min-width:1440px) and (max-width:2559px){.pagination-font{color:#2e384d;font-size:18px!important}}"]
},] }

@@ -185,2 +178,3 @@ ];

isItemsPerPage: [{ type: core.Input }],
itemsPerPage: [{ type: core.Input }],
directionLinks: [{ type: core.Input }],

@@ -214,5 +208,3 @@ autoHide: [{ type: core.Input }],

this.pageSizes = [];
this.itemsPerPage = 5;
this.changeSub = this.service.change
.subscribe(function (id) {
this.changeSub = this.service.change.subscribe(function (id) {
if (_this.id === id) {

@@ -223,2 +215,3 @@ _this.updatePageLinks();

var inst = _this.service.getInstance(_this.id);
_this.itemsPerPage = inst.itemsPerPage;
}

@@ -232,2 +225,3 @@ });

var inst = this.service.getInstance(this.id);
this.itemsPerPage = inst.itemsPerPage;
for (var i = 5; i <= inst.totalItems;) {

@@ -237,3 +231,2 @@ this.pageSizes.push(i);

}
this.service.setItemsPerPage(this.id, this.itemsPerPage);
this.updatePageLinks();

@@ -248,2 +241,3 @@ };

PaginationDirective.prototype.pageSizeChanged = function (event) {
this.itemsPerPage = event;
this.service.setItemsPerPage(this.id, event);

@@ -308,10 +302,10 @@ this.setCurrent(1);

var inst = this.service.getInstance(this.id);
if (inst.totalItems < ((inst.itemsPerPage * (inst.currentPage - 1)) + 1)) {
if (inst.totalItems < inst.itemsPerPage * (inst.currentPage - 1) + 1) {
this.setCurrent(1);
}
return (inst.itemsPerPage * (inst.currentPage - 1)) + 1;
return inst.itemsPerPage * (inst.currentPage - 1) + 1;
};
PaginationDirective.prototype.getEndIndex = function () {
var inst = this.service.getInstance(this.id);
var end = (inst.itemsPerPage * inst.currentPage);
var end = inst.itemsPerPage * inst.currentPage;
if (inst.totalItems < end) {

@@ -377,4 +371,4 @@ return inst.totalItems;

var pageNumber = this.calculatePageNumber(i, currentPage, paginationRange, totalPages);
var openingEllipsesNeeded = (i === 2 && (isMiddle || isEnd));
var closingEllipsesNeeded = (i === paginationRange - 1 && (isMiddle || isStart));
var openingEllipsesNeeded = i === 2 && (isMiddle || isEnd);
var closingEllipsesNeeded = i === paginationRange - 1 && (isMiddle || isStart);
if (ellipsesNeeded && (openingEllipsesNeeded || closingEllipsesNeeded)) {

@@ -388,3 +382,3 @@ label = '...';

label: label,
value: pageNumber
value: pageNumber,
});

@@ -427,3 +421,3 @@ i++;

selector: 'pagination-template,[pagination-template]',
exportAs: 'paginationApi'
exportAs: 'paginationApi',
},] }

@@ -439,4 +433,3 @@ ];

pageChange: [{ type: core.Output }],
pageBoundsCorrection: [{ type: core.Output }],
itemsPerPage: [{ type: core.Input }]
pageBoundsCorrection: [{ type: core.Output }]
};

@@ -503,6 +496,12 @@

var id = config.id != null ? config.id : this.service.defaultId();
var perPage = ((_a = this.service.getInstance(id)) === null || _a === void 0 ? void 0 : _a.itemsPerPage) || 5;
if (config.itemsPerPage) {
if (!((_a = this.service.getInstance(id)) === null || _a === void 0 ? void 0 : _a.itemsPerPage)) {
this.service.setItemsPerPage(id, +config.itemsPerPage);
}
}
var perPage = (config.itemsPerPage && !this.service.getInstance(id).itemsPerPage) ? config.itemsPerPage :
this.service.getInstance(id).itemsPerPage;
return {
id: config.id != null ? config.id : this.service.defaultId(),
itemsPerPage: perPage,
itemsPerPage: +perPage || 5,
currentPage: +config.currentPage || 1,

@@ -600,4 +599,2 @@ totalItems: +config.totalItems || collection.length

exports.PaginationService = PaginationService;
exports.ɵa = DEFAULT_TEMPLATE;
exports.ɵb = DEFAULT_STYLES;

@@ -604,0 +601,0 @@ Object.defineProperty(exports, '__esModule', { value: true });

@@ -1,2 +0,2 @@

!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-table-pagination",["exports","@angular/core","@angular/common"],n):n((e=e||self)["ngx-table-pagination"]={},e.ng.core,e.ng.common)}(this,(function(e,n,t){"use strict";var i=function(){function e(){this.change=new n.EventEmitter,this.instances={},this.DEFAULT_ID="DEFAULT_PAGINATION_ID"}return e.prototype.defaultId=function(){return this.DEFAULT_ID},e.prototype.register=function(e){return null==e.id&&(e.id=this.DEFAULT_ID),this.instances[e.id]?this.updateInstance(e):(this.instances[e.id]=e,!0)},e.prototype.updateInstance=function(e){var n=!1;for(var t in this.instances[e.id])e[t]!==this.instances[e.id][t]&&(this.instances[e.id][t]=e[t],n=!0);return n},e.prototype.getCurrentPage=function(e){if(this.instances[e])return this.instances[e].currentPage},e.prototype.setCurrentPage=function(e,n){if(this.instances[e]){var t=this.instances[e];n<=Math.ceil(t.totalItems/t.itemsPerPage)&&1<=n&&(this.instances[e].currentPage=n,this.change.emit(e))}},e.prototype.setTotalItems=function(e,n){this.instances[e]&&0<=n&&(this.instances[e].totalItems=n,this.change.emit(e))},e.prototype.setItemsPerPage=function(e,n){this.instances[e]&&(this.instances[e].itemsPerPage=n,this.change.emit(e))},e.prototype.getInstance=function(e){return void 0===e&&(e=this.DEFAULT_ID),this.instances[e]?this.clone(this.instances[e]):{}},e.prototype.clone=function(e){var n={};for(var t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n},e}(),a='\n<pagination-template\n #p="paginationApi"\n [id]="id"\n [maxSize]="maxSize"\n (pageChange)="pageChange.emit($event)"\n (pageBoundsCorrection)="pageBoundsCorrection.emit($event)"\n>\n <div *ngIf="!(autoHide && p.pages.length <= 1)">\n <div class="items-number" *ngIf="isItemsPerPage">\n <span style="display: flex" class="pagination-font">\n <label class="show-label">Show</label>\n <select class="no-padding pagination-font"\n [(ngModel)]="p.itemsPerPage"\n (change)="p.pageSizeChanged($event.target.value)"\n >\n <option\n *ngFor="let pageSizeDefault of p.pageSizes"\n value="{{ pageSizeDefault }}"\n >\n {{ pageSizeDefault }}\n </option>\n </select>\n <label class="entries-label">entries</label></span\n >\n </div>\n\n <div\n class="ngx-pagination pagination-font"\n role="navigation"\n *ngIf="!isItemsPerPage"\n [attr.aria-label]="screenReaderPaginationLabel"\n [class.responsive]="responsive"\n >\n <label\n >Showing {{ p.getStartIndex() }} - {{ p.getEndIndex() }} of\n {{ p.getTotalItems() }} entries</label\n >\n\n <ul role="navigation" class="">\n <li\n class="pagination-previous pagination-font"\n [class.disabled]="p.isFirstPage()"\n *ngIf="directionLinks"\n >\n <a\n tabindex="0"\n *ngIf="1 < p.getCurrent()"\n (keyup.enter)="p.previous()"\n (click)="p.previous()"\n [attr.aria-label]="previousLabel + \' \' + screenReaderPageLabel"\n >\n {{ previousLabel }}\n </a>\n <span *ngIf="p.isFirstPage()">\n {{ previousLabel }}\n </span>\n </li>\n <li class="small-screen pagination-font">\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\n </li>\n <li\nclass="pagination-font"\n [class.current]="p.getCurrent() === page.value"\n [class.ellipsis]="page.label === \'...\'"\n *ngFor="let page of p.pages"\n >\n <a\n tabindex="0"\n (keyup.enter)="p.setCurrent(page.value)"\n (click)="p.setCurrent(page.value)"\n *ngIf="p.getCurrent() !== page.value"\n >\n <span class="show-for-sr">{{ screenReaderPageLabel }} </span>\n <span>{{\n page.label === "..." ? page.label : (page.label | number: "")\n }}</span>\n </a>\n <ng-container *ngIf="p.getCurrent() === page.value">\n <span class="show-for-sr">{{ screenReaderCurrentLabel }} </span>\n <span>{{\n page.label === "..." ? page.label : (page.label | number: "")\n }}</span>\n </ng-container>\n </li>\n <li\n class="pagination-next pagination-font"\n [class.disabled]="p.isLastPage()"\n *ngIf="directionLinks"\n >\n <a\n tabindex="0"\n *ngIf="!p.isLastPage()"\n (keyup.enter)="p.next()"\n (click)="p.next()"\n [attr.aria-label]="nextLabel + \' \' + screenReaderPageLabel"\n >\n {{ nextLabel }}\n </a>\n <span *ngIf="p.isLastPage()">\n {{ nextLabel }}\n </span>\n </li>\n </ul>\n </div>\n </div>\n</pagination-template>\n\n ',r='\n.show-label {\n margin-right: 0.25rem;\n}\n.no-padding {\n padding: 0;\n}\n.select-box {\n border: 1px solid #333333b0;\n color: #333333b0;\n border-radius: 4px;\n opacity: 1;\n}\n.entries-label {\n margin-left: 0.25rem;\n}\n.ngx-pagination {\n display: flex;\n justify-content: space-between;\n margin-left: 0;\n margin-bottom: 1rem;\n}\n.ngx-pagination::before,\n.ngx-pagination::after {\n display: table;\n}\n.ngx-pagination::after {\n clear: both;\n}\n\n.ngx-pagination li {\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n margin-right: 0.0625rem;\n border-radius: 0;\n}\n.ngx-pagination li {\n display: inline-block;\n}\n.ngx-pagination a,\n.ngx-pagination button {\n display: block;\n padding: 0.1875rem 0.625rem;\n border-radius: 0;\n}\n.ngx-pagination a:hover,\n.ngx-pagination button:hover {\n background: #e6e6e6;\n}\n.ngx-pagination .current {\n padding: 0.1875rem 0.625rem;\n background: #2199e8;\n color: #fefefe;\n cursor: default;\n}\n.ngx-pagination .disabled {\n padding: 0.1875rem 0.625rem;\n color: #cacaca;\n cursor: default;\n}\n.ngx-pagination .disabled:hover {\n background: transparent;\n}\n.ngx-pagination a,\n.ngx-pagination button {\n cursor: pointer;\n}\n.ngx-pagination .pagination-previous a::before,\n.ngx-pagination .pagination-previous.disabled::before {\n content: "«";\n display: inline-block;\n margin-right: 0.5rem;\n}\n.ngx-pagination .pagination-next a::after,\n.ngx-pagination .pagination-next.disabled::after {\n content: "»";\n display: inline-block;\n margin-left: 0.5rem;\n}\n.ngx-pagination .show-for-sr {\n position: absolute !important;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n}\n.ngx-pagination .small-screen {\n display: none;\n}\n@media screen and (max-width: 601px) {\n .ngx-pagination.responsive .small-screen {\n display: inline-block;\n }\n .ngx-pagination.responsive\n li:not(.small-screen):not(.pagination-previous):not(.pagination-next) {\n display: none;\n }\n}\n@media only screen and (max-width: 1023px) {\n .pagination-font {\n font-size: 14px !important;\n color: #2e384d !important;\n }\n}\n@media only screen and (min-width: 1024px) and (max-width: 1439px) {\n .pagination-font {\n font-size: 16px !important;\n color: #2e384d;\n }\n}\n@media only screen and (min-width: 1440px) and (max-width: 2559px) {\n .pagination-font {\n font-size: 18px !important;\n color: #2e384d;\n }\n}\n\n ';function s(e){return!!e&&"false"!==e}var o=function(){function e(){this.maxSize=7,this.isItemsNumber=!1,this.previousLabel="",this.nextLabel="",this.screenReaderPaginationLabel="Pagination",this.screenReaderPageLabel="page",this.screenReaderCurrentLabel="You're on page",this.pageChange=new n.EventEmitter,this.pageBoundsCorrection=new n.EventEmitter,this._directionLinks=!0,this._autoHide=!1,this._responsive=!1}return Object.defineProperty(e.prototype,"directionLinks",{get:function(){return this._directionLinks},set:function(e){this._directionLinks=s(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"autoHide",{get:function(){return this._autoHide},set:function(e){this._autoHide=s(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"responsive",{get:function(){return this._responsive},set:function(e){this._responsive=s(e)},enumerable:!1,configurable:!0}),e}();o.decorators=[{type:n.Component,args:[{selector:"paging-controls",template:a,changeDetection:n.ChangeDetectionStrategy.OnPush,encapsulation:n.ViewEncapsulation.None,styles:[r]}]}],o.propDecorators={id:[{type:n.Input}],maxSize:[{type:n.Input}],isItemsPerPage:[{type:n.Input}],directionLinks:[{type:n.Input}],autoHide:[{type:n.Input}],responsive:[{type:n.Input}],isItemsNumber:[{type:n.Input}],previousLabel:[{type:n.Input}],nextLabel:[{type:n.Input}],screenReaderPaginationLabel:[{type:n.Input}],screenReaderPageLabel:[{type:n.Input}],screenReaderCurrentLabel:[{type:n.Input}],pageChange:[{type:n.Output}],pageBoundsCorrection:[{type:n.Output}]};var p=function(){function e(e,t){var i=this;this.service=e,this.changeDetectorRef=t,this.maxSize=7,this.pageChange=new n.EventEmitter,this.pageBoundsCorrection=new n.EventEmitter,this.pages=[],this.pageSizes=[],this.itemsPerPage=5,this.changeSub=this.service.change.subscribe((function(e){if(i.id===e){i.updatePageLinks(),i.changeDetectorRef.markForCheck(),i.changeDetectorRef.detectChanges();i.service.getInstance(i.id)}}))}return e.prototype.ngOnInit=function(){void 0===this.id&&(this.id=this.service.defaultId());for(var e=this.service.getInstance(this.id),n=5;n<=e.totalItems;)this.pageSizes.push(n),n+=5;this.service.setItemsPerPage(this.id,this.itemsPerPage),this.updatePageLinks()},e.prototype.ngOnChanges=function(e){this.updatePageLinks()},e.prototype.ngOnDestroy=function(){this.changeSub.unsubscribe()},e.prototype.pageSizeChanged=function(e){this.service.setItemsPerPage(this.id,e),this.setCurrent(1),this.updatePageLinks()},e.prototype.previous=function(){this.checkValidId(),this.setCurrent(this.getCurrent()-1)},e.prototype.next=function(){this.checkValidId(),this.setCurrent(this.getCurrent()+1)},e.prototype.isFirstPage=function(){return 1===this.getCurrent()},e.prototype.isLastPage=function(){return this.getLastPage()===this.getCurrent()},e.prototype.setCurrent=function(e){this.pageChange.emit(e)},e.prototype.getCurrent=function(){return this.service.getCurrentPage(this.id)},e.prototype.getLastPage=function(){var e=this.service.getInstance(this.id);return e.totalItems<1?1:Math.ceil(e.totalItems/e.itemsPerPage)},e.prototype.getTotalItems=function(){return this.service.getInstance(this.id).totalItems},e.prototype.getStartIndex=function(){var e=this.service.getInstance(this.id);return e.totalItems<e.itemsPerPage*(e.currentPage-1)+1&&this.setCurrent(1),e.itemsPerPage*(e.currentPage-1)+1},e.prototype.getEndIndex=function(){var e=this.service.getInstance(this.id),n=e.itemsPerPage*e.currentPage;return e.totalItems<n?e.totalItems:n},e.prototype.checkValidId=function(){null==this.service.getInstance(this.id).id&&console.warn('PaginationControlsDirective: the specified id "'+this.id+'" does not match any registered PaginationInstance')},e.prototype.updatePageLinks=function(){var e=this,n=this.service.getInstance(this.id),t=this.outOfBoundCorrection(n);t!==n.currentPage?setTimeout((function(){e.pageBoundsCorrection.emit(t),e.pages=e.createPageArray(n.currentPage,n.itemsPerPage,n.totalItems,e.maxSize)})):this.pages=this.createPageArray(n.currentPage,n.itemsPerPage,n.totalItems,this.maxSize)},e.prototype.outOfBoundCorrection=function(e){var n=Math.ceil(e.totalItems/e.itemsPerPage);return n<e.currentPage&&0<n?n:e.currentPage<1?1:e.currentPage},e.prototype.createPageArray=function(e,n,t,i){i=+i;for(var a=[],r=Math.ceil(t/n),s=Math.ceil(i/2),o=e<=s,p=r-s<e,g=!o&&!p,c=i<r,u=1;u<=r&&u<=i;){var l=void 0,d=this.calculatePageNumber(u,e,i,r);l=c&&(2===u&&(g||p)||u===i-1&&(g||o))?"...":d,a.push({label:l,value:d}),u++}return a},e.prototype.calculatePageNumber=function(e,n,t,i){var a=Math.ceil(t/2);return e===t?i:1===e?e:t<i?i-a<n?i-t+e:a<n?n-a+e:e:e},e}();p.decorators=[{type:n.Directive,args:[{selector:"pagination-template,[pagination-template]",exportAs:"paginationApi"}]}],p.ctorParameters=function(){return[{type:i},{type:n.ChangeDetectorRef}]},p.propDecorators={id:[{type:n.Input}],maxSize:[{type:n.Input}],pageChange:[{type:n.Output}],pageBoundsCorrection:[{type:n.Output}],itemsPerPage:[{type:n.Input}]};var g=Number.MAX_SAFE_INTEGER,c=function(){function e(e){this.service=e,this.state={}}return e.prototype.transform=function(e,n){if(!(e instanceof Array)){var t=n.id||this.service.defaultId();return this.state[t]?this.state[t].slice:e}var i,a,r=n.totalItems&&n.totalItems!==e.length,s=this.createInstance(e,n),o=s.id,p=s.itemsPerPage,c=this.service.register(s);if(!r&&e instanceof Array){if(p=+p||g,a=(i=(s.currentPage-1)*p)+p,this.stateIsIdentical(o,e,i,a))return this.state[o].slice;var u=e.slice(i,a);return this.saveState(o,e,u,i,a),this.service.change.emit(o),u}return c&&this.service.change.emit(o),this.saveState(o,e,e,i,a),e},e.prototype.createInstance=function(e,n){var t;this.checkConfig(n);var i=null!=n.id?n.id:this.service.defaultId(),a=(null===(t=this.service.getInstance(i))||void 0===t?void 0:t.itemsPerPage)||5;return{id:null!=n.id?n.id:this.service.defaultId(),itemsPerPage:a,currentPage:+n.currentPage||1,totalItems:+n.totalItems||e.length}},e.prototype.checkConfig=function(e){var n=["currentPage"].filter((function(n){return!(n in e)}));if(0<n.length)throw new Error("PaginatePipe: Argument is missing the following required properties: "+n.join(", "))},e.prototype.saveState=function(e,n,t,i,a){this.state[e]={collection:n,size:n.length,slice:t,start:i,end:a}},e.prototype.stateIsIdentical=function(e,n,t,i){var a=this.state[e];return!!a&&(!(a.size!==n.length||a.start!==t||a.end!==i)&&a.slice.every((function(e,i){return e===n[t+i]})))},e}();c.decorators=[{type:n.Pipe,args:[{name:"paginate",pure:!1}]}],c.ctorParameters=function(){return[{type:i}]};var u=function(){};u.decorators=[{type:n.NgModule,args:[{declarations:[o,c,p],imports:[t.CommonModule],providers:[i],exports:[o,c,p]}]}],e.NgxTablePaginationModule=u,e.PaginationComponent=o,e.PaginationDirective=p,e.PaginationPipe=c,e.PaginationService=i,e.ɵa=a,e.ɵb=r,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-table-pagination",["exports","@angular/core","@angular/common"],t):t((e=e||self)["ngx-table-pagination"]={},e.ng.core,e.ng.common)}(this,(function(e,t,n){"use strict";var i=function(){function e(){this.change=new t.EventEmitter,this.instances={},this.DEFAULT_ID="DEFAULT_PAGINATION_ID"}return e.prototype.defaultId=function(){return this.DEFAULT_ID},e.prototype.register=function(e){return null==e.id&&(e.id=this.DEFAULT_ID),this.instances[e.id]?this.updateInstance(e):(this.instances[e.id]=e,!0)},e.prototype.updateInstance=function(e){var t=!1;for(var n in this.instances[e.id])e[n]!==this.instances[e.id][n]&&(this.instances[e.id][n]=e[n],t=!0);return t},e.prototype.getCurrentPage=function(e){if(this.instances[e])return this.instances[e].currentPage},e.prototype.setCurrentPage=function(e,t){if(this.instances[e]){var n=this.instances[e];t<=Math.ceil(n.totalItems/n.itemsPerPage)&&1<=t&&(this.instances[e].currentPage=t,this.change.emit(e))}},e.prototype.setTotalItems=function(e,t){this.instances[e]&&0<=t&&(this.instances[e].totalItems=t,this.change.emit(e))},e.prototype.setItemsPerPage=function(e,t){this.instances[e]&&(this.instances[e].itemsPerPage=t,this.change.emit(e))},e.prototype.getInstance=function(e){return void 0===e&&(e=this.DEFAULT_ID),this.instances[e]?this.clone(this.instances[e]):{}},e.prototype.clone=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},e}();function r(e){return!!e&&"false"!==e}var a=function(){function e(){this.maxSize=7,this.isItemsNumber=!1,this.previousLabel="",this.nextLabel="",this.screenReaderPaginationLabel="Pagination",this.screenReaderPageLabel="page",this.screenReaderCurrentLabel="You're on page",this.pageChange=new t.EventEmitter,this.pageBoundsCorrection=new t.EventEmitter,this._directionLinks=!0,this._autoHide=!1,this._responsive=!1}return Object.defineProperty(e.prototype,"directionLinks",{get:function(){return this._directionLinks},set:function(e){this._directionLinks=r(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"autoHide",{get:function(){return this._autoHide},set:function(e){this._autoHide=r(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"responsive",{get:function(){return this._responsive},set:function(e){this._responsive=r(e)},enumerable:!1,configurable:!0}),e}();a.decorators=[{type:t.Component,args:[{selector:"paging-controls",template:'\x3c!-- [itemsPerPage]="itemsPerPage?itemsPerPage:5" --\x3e\r\n<pagination-template\r\n #p="paginationApi"\r\n [id]="id"\r\n [maxSize]="maxSize"\r\n (pageChange)="pageChange.emit($event)"\r\n (pageBoundsCorrection)="pageBoundsCorrection.emit($event)"\r\n>\r\n <div *ngIf="!(autoHide && p.pages.length <= 1)">\r\n <div class="items-number" *ngIf="isItemsPerPage">\r\n <span style="display: flex" class="pagination-font">\r\n <label class="show-label">Show</label>\r\n <select\r\n class="no-padding pagination-font"\r\n [(ngModel)]="p.itemsPerPage"\r\n (change)="p.pageSizeChanged($event.target.value)"\r\n >\r\n <option\r\n *ngFor="let pageSizeDefault of p.pageSizes"\r\n value="{{ pageSizeDefault }}"\r\n [selected]="pageSizeDefault == p.itemsPerPage"\r\n >\r\n {{ pageSizeDefault }}\r\n </option>\r\n </select>\r\n <label class="entries-label">entries</label></span\r\n >\r\n </div>\r\n\r\n <div\r\n class="ngx-pagination pagination-font"\r\n role="navigation"\r\n *ngIf="!isItemsPerPage"\r\n [attr.aria-label]="screenReaderPaginationLabel"\r\n [class.responsive]="responsive"\r\n >\r\n <label\r\n >Showing {{ p.getStartIndex() }} - {{ p.getEndIndex() }} of\r\n {{ p.getTotalItems() }} entries</label\r\n >\r\n\r\n <ul role="navigation" class="">\r\n <li\r\n class="pagination-previous pagination-font"\r\n [class.disabled]="p.isFirstPage()"\r\n *ngIf="directionLinks"\r\n >\r\n <a\r\n tabindex="0"\r\n *ngIf="1 < p.getCurrent()"\r\n (keyup.enter)="p.previous()"\r\n (click)="p.previous()"\r\n [attr.aria-label]="previousLabel + \' \' + screenReaderPageLabel"\r\n >\r\n {{ previousLabel }}\r\n </a>\r\n <span *ngIf="p.isFirstPage()">\r\n {{ previousLabel }}\r\n </span>\r\n </li>\r\n <li class="small-screen pagination-font">\r\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\r\n </li>\r\n <li\r\n class="pagination-font"\r\n [class.current]="p.getCurrent() === page.value"\r\n [class.ellipsis]="page.label === \'...\'"\r\n *ngFor="let page of p.pages"\r\n >\r\n <a\r\n tabindex="0"\r\n (keyup.enter)="p.setCurrent(page.value)"\r\n (click)="p.setCurrent(page.value)"\r\n *ngIf="p.getCurrent() !== page.value"\r\n >\r\n <span class="show-for-sr">{{ screenReaderPageLabel }} </span>\r\n <span>{{\r\n page.label === "..." ? page.label : (page.label | number: "")\r\n }}</span>\r\n </a>\r\n <ng-container *ngIf="p.getCurrent() === page.value">\r\n <span class="show-for-sr">{{ screenReaderCurrentLabel }} </span>\r\n <span>{{\r\n page.label === "..." ? page.label : (page.label | number: "")\r\n }}</span>\r\n </ng-container>\r\n </li>\r\n <li\r\n class="pagination-next pagination-font"\r\n [class.disabled]="p.isLastPage()"\r\n *ngIf="directionLinks"\r\n >\r\n <a\r\n tabindex="0"\r\n *ngIf="!p.isLastPage()"\r\n (keyup.enter)="p.next()"\r\n (click)="p.next()"\r\n [attr.aria-label]="nextLabel + \' \' + screenReaderPageLabel"\r\n >\r\n {{ nextLabel }}\r\n </a>\r\n <span *ngIf="p.isLastPage()">\r\n {{ nextLabel }}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</pagination-template>\r\n',changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,styles:['.show-label{margin-right:.25rem}.no-padding{padding:0}.select-box{border:1px solid rgba(51,51,51,.6901960784313725);border-radius:4px;color:rgba(51,51,51,.6901960784313725);opacity:1}.entries-label{margin-left:.25rem}.ngx-pagination{display:flex;justify-content:space-between;margin-bottom:1rem;margin-left:0}.ngx-pagination:after,.ngx-pagination:before{display:table}.ngx-pagination:after{clear:both}.ngx-pagination li{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;border-radius:0;display:inline-block;margin-right:.0625rem}.ngx-pagination a,.ngx-pagination button{border-radius:0;display:block;padding:.1875rem .625rem}.ngx-pagination a:hover,.ngx-pagination button:hover{background:#e6e6e6}.ngx-pagination .current{background:#2199e8;color:#fefefe;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled{color:#cacaca;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled:hover{background:transparent}.ngx-pagination a,.ngx-pagination button{cursor:pointer}.ngx-pagination .pagination-previous.disabled:before,.ngx-pagination .pagination-previous a:before{content:"«";display:inline-block;margin-right:.5rem}.ngx-pagination .pagination-next.disabled:after,.ngx-pagination .pagination-next a:after{content:"»";display:inline-block;margin-left:.5rem}.ngx-pagination .show-for-sr{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute!important;width:1px}.ngx-pagination .small-screen{display:none}@media screen and (max-width:601px){.ngx-pagination.responsive .small-screen{display:inline-block}.ngx-pagination.responsive li:not(.small-screen):not(.pagination-previous):not(.pagination-next){display:none}}@media only screen and (max-width:1023px){.pagination-font{color:#2e384d!important;font-size:14px!important}}@media only screen and (min-width:1024px) and (max-width:1439px){.pagination-font{color:#2e384d;font-size:16px!important}}@media only screen and (min-width:1440px) and (max-width:2559px){.pagination-font{color:#2e384d;font-size:18px!important}}']}]}],a.propDecorators={id:[{type:t.Input}],maxSize:[{type:t.Input}],isItemsPerPage:[{type:t.Input}],itemsPerPage:[{type:t.Input}],directionLinks:[{type:t.Input}],autoHide:[{type:t.Input}],responsive:[{type:t.Input}],isItemsNumber:[{type:t.Input}],previousLabel:[{type:t.Input}],nextLabel:[{type:t.Input}],screenReaderPaginationLabel:[{type:t.Input}],screenReaderPageLabel:[{type:t.Input}],screenReaderCurrentLabel:[{type:t.Input}],pageChange:[{type:t.Output}],pageBoundsCorrection:[{type:t.Output}]};var s=function(){function e(e,n){var i=this;this.service=e,this.changeDetectorRef=n,this.maxSize=7,this.pageChange=new t.EventEmitter,this.pageBoundsCorrection=new t.EventEmitter,this.pages=[],this.pageSizes=[],this.changeSub=this.service.change.subscribe((function(e){if(i.id===e){i.updatePageLinks(),i.changeDetectorRef.markForCheck(),i.changeDetectorRef.detectChanges();var t=i.service.getInstance(i.id);i.itemsPerPage=t.itemsPerPage}}))}return e.prototype.ngOnInit=function(){void 0===this.id&&(this.id=this.service.defaultId());var e=this.service.getInstance(this.id);this.itemsPerPage=e.itemsPerPage;for(var t=5;t<=e.totalItems;)this.pageSizes.push(t),t+=5;this.updatePageLinks()},e.prototype.ngOnChanges=function(e){this.updatePageLinks()},e.prototype.ngOnDestroy=function(){this.changeSub.unsubscribe()},e.prototype.pageSizeChanged=function(e){this.itemsPerPage=e,this.service.setItemsPerPage(this.id,e),this.setCurrent(1),this.updatePageLinks()},e.prototype.previous=function(){this.checkValidId(),this.setCurrent(this.getCurrent()-1)},e.prototype.next=function(){this.checkValidId(),this.setCurrent(this.getCurrent()+1)},e.prototype.isFirstPage=function(){return 1===this.getCurrent()},e.prototype.isLastPage=function(){return this.getLastPage()===this.getCurrent()},e.prototype.setCurrent=function(e){this.pageChange.emit(e)},e.prototype.getCurrent=function(){return this.service.getCurrentPage(this.id)},e.prototype.getLastPage=function(){var e=this.service.getInstance(this.id);return e.totalItems<1?1:Math.ceil(e.totalItems/e.itemsPerPage)},e.prototype.getTotalItems=function(){return this.service.getInstance(this.id).totalItems},e.prototype.getStartIndex=function(){var e=this.service.getInstance(this.id);return e.totalItems<e.itemsPerPage*(e.currentPage-1)+1&&this.setCurrent(1),e.itemsPerPage*(e.currentPage-1)+1},e.prototype.getEndIndex=function(){var e=this.service.getInstance(this.id),t=e.itemsPerPage*e.currentPage;return e.totalItems<t?e.totalItems:t},e.prototype.checkValidId=function(){null==this.service.getInstance(this.id).id&&console.warn('PaginationControlsDirective: the specified id "'+this.id+'" does not match any registered PaginationInstance')},e.prototype.updatePageLinks=function(){var e=this,t=this.service.getInstance(this.id),n=this.outOfBoundCorrection(t);n!==t.currentPage?setTimeout((function(){e.pageBoundsCorrection.emit(n),e.pages=e.createPageArray(t.currentPage,t.itemsPerPage,t.totalItems,e.maxSize)})):this.pages=this.createPageArray(t.currentPage,t.itemsPerPage,t.totalItems,this.maxSize)},e.prototype.outOfBoundCorrection=function(e){var t=Math.ceil(e.totalItems/e.itemsPerPage);return t<e.currentPage&&0<t?t:e.currentPage<1?1:e.currentPage},e.prototype.createPageArray=function(e,t,n,i){i=+i;for(var r=[],a=Math.ceil(n/t),s=Math.ceil(i/2),o=e<=s,p=a-s<e,g=!o&&!p,c=i<a,u=1;u<=a&&u<=i;){var l=void 0,d=this.calculatePageNumber(u,e,i,a);l=c&&(2===u&&(g||p)||u===i-1&&(g||o))?"...":d,r.push({label:l,value:d}),u++}return r},e.prototype.calculatePageNumber=function(e,t,n,i){var r=Math.ceil(n/2);return e===n?i:1===e?e:n<i?i-r<t?i-n+e:r<t?t-r+e:e:e},e}();s.decorators=[{type:t.Directive,args:[{selector:"pagination-template,[pagination-template]",exportAs:"paginationApi"}]}],s.ctorParameters=function(){return[{type:i},{type:t.ChangeDetectorRef}]},s.propDecorators={id:[{type:t.Input}],maxSize:[{type:t.Input}],pageChange:[{type:t.Output}],pageBoundsCorrection:[{type:t.Output}]};var o=Number.MAX_SAFE_INTEGER,p=function(){function e(e){this.service=e,this.state={}}return e.prototype.transform=function(e,t){if(!(e instanceof Array)){var n=t.id||this.service.defaultId();return this.state[n]?this.state[n].slice:e}var i,r,a=t.totalItems&&t.totalItems!==e.length,s=this.createInstance(e,t),p=s.id,g=s.itemsPerPage,c=this.service.register(s);if(!a&&e instanceof Array){if(g=+g||o,r=(i=(s.currentPage-1)*g)+g,this.stateIsIdentical(p,e,i,r))return this.state[p].slice;var u=e.slice(i,r);return this.saveState(p,e,u,i,r),this.service.change.emit(p),u}return c&&this.service.change.emit(p),this.saveState(p,e,e,i,r),e},e.prototype.createInstance=function(e,t){var n;this.checkConfig(t);var i=null!=t.id?t.id:this.service.defaultId();t.itemsPerPage&&((null===(n=this.service.getInstance(i))||void 0===n?void 0:n.itemsPerPage)||this.service.setItemsPerPage(i,+t.itemsPerPage));var r=t.itemsPerPage&&!this.service.getInstance(i).itemsPerPage?t.itemsPerPage:this.service.getInstance(i).itemsPerPage;return{id:null!=t.id?t.id:this.service.defaultId(),itemsPerPage:+r||5,currentPage:+t.currentPage||1,totalItems:+t.totalItems||e.length}},e.prototype.checkConfig=function(e){var t=["currentPage"].filter((function(t){return!(t in e)}));if(0<t.length)throw new Error("PaginatePipe: Argument is missing the following required properties: "+t.join(", "))},e.prototype.saveState=function(e,t,n,i,r){this.state[e]={collection:t,size:t.length,slice:n,start:i,end:r}},e.prototype.stateIsIdentical=function(e,t,n,i){var r=this.state[e];return!!r&&(!(r.size!==t.length||r.start!==n||r.end!==i)&&r.slice.every((function(e,i){return e===t[n+i]})))},e}();p.decorators=[{type:t.Pipe,args:[{name:"paginate",pure:!1}]}],p.ctorParameters=function(){return[{type:i}]};var g=function(){};g.decorators=[{type:t.NgModule,args:[{declarations:[a,p,s],imports:[n.CommonModule],providers:[i],exports:[a,p,s]}]}],e.NgxTablePaginationModule=g,e.PaginationComponent=a,e.PaginationDirective=s,e.PaginationPipe=p,e.PaginationService=i,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=ngx-table-pagination.umd.min.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9BZHJlbmFsaW5lV1MvZGVtb3Mvbmd4LXRhYmxlLXBhZ2luYXRpb24vcHJvamVjdHMvbmd4LXRhYmxlLXBhZ2luYXRpb24vc3JjLyIsInNvdXJjZXMiOlsibGliL3BhZ2luYXRpb24taW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25JbnN0YW5jZXtcclxuICAvLyBvcHRpb25hbCBpZCBpZiB5b3Ugd2lzaCB0byBoYXZlIG11bHRpcGxlIGluc3RhbmNlcyBvbiBhIHNpbmdsZSBjb21wb25lbnRcclxuICBpZD86IHN0cmluZztcclxuICAvLyB0byBjdXN0b21pemUgdGhlIG51bWJlciBvZiBpdGVtcyB0byBiZSBkaXNwbGF5ZWQgZWFjaCB0aW1lXHJcbiAgaXRlbXNQZXJQYWdlOiBudW1iZXI7XHJcblxyXG4gIGN1cnJlbnRQYWdlOiBudW1iZXI7XHJcbi8vIHRoZSB0b3RhbCBudW1iZXIgaXRlbXMgaW4gdGhlIGNvbGxlYWN0aW9uXHJcbi8vIG9ubHkgdXNlZnVsIHdoZW4gZG9pbmcgc2VydmVyc2lkZSByZW5kZXJpbmcsIHdoZXJlXHJcbi8vIHRoZSBjb2xsZWN0aW9uIHNpemUgaXMgbGltaXRlZCB0byBhIHNpbmdsZSBwYWdlXHJcbi8vIHJldHVyZWQgIGJ5IHRoZSBzZXJ2ZXIgYXBpXHJcblxyXG4vLyBGb3IgaW5fbWVtb3J5IHBhZ2luZywgdGhpcyBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIHNldCxcclxuLy8gYXMgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IHNldCB0byB0aGUgY29sbGVjdGlvbi5sZW5ndGggcHJvcGVydHlcclxuICB0b3RhbEl0ZW1zPzogbnVtYmVyO1xyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9BZHJlbmFsaW5lV1MvZGVtb3Mvbmd4LXRhYmxlLXBhZ2luYXRpb24tdGVzdGluZy9uZ3gtdGFibGUtcGFnaW5hdGlvbi9wcm9qZWN0cy9uZ3gtdGFibGUtcGFnaW5hdGlvbi9zcmMvIiwic291cmNlcyI6WyJsaWIvcGFnaW5hdGlvbi1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkluc3RhbmNle1xyXG4gIC8vIG9wdGlvbmFsIGlkIGlmIHlvdSB3aXNoIHRvIGhhdmUgbXVsdGlwbGUgaW5zdGFuY2VzIG9uIGEgc2luZ2xlIGNvbXBvbmVudFxyXG4gIGlkPzogc3RyaW5nO1xyXG4gIC8vIHRvIGN1c3RvbWl6ZSB0aGUgbnVtYmVyIG9mIGl0ZW1zIHRvIGJlIGRpc3BsYXllZCBlYWNoIHRpbWVcclxuICBpdGVtc1BlclBhZ2U6IG51bWJlcjtcclxuXHJcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcclxuLy8gdGhlIHRvdGFsIG51bWJlciBpdGVtcyBpbiB0aGUgY29sbGVhY3Rpb25cclxuLy8gb25seSB1c2VmdWwgd2hlbiBkb2luZyBzZXJ2ZXJzaWRlIHJlbmRlcmluZywgd2hlcmVcclxuLy8gdGhlIGNvbGxlY3Rpb24gc2l6ZSBpcyBsaW1pdGVkIHRvIGEgc2luZ2xlIHBhZ2VcclxuLy8gcmV0dXJlZCAgYnkgdGhlIHNlcnZlciBhcGlcclxuXHJcbi8vIEZvciBpbl9tZW1vcnkgcGFnaW5nLCB0aGlzIHByb3BlcnR5IHNob3VsZCBub3QgYmUgc2V0LFxyXG4vLyBhcyBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgc2V0IHRvIHRoZSBjb2xsZWN0aW9uLmxlbmd0aCBwcm9wZXJ0eVxyXG4gIHRvdGFsSXRlbXM/OiBudW1iZXI7XHJcbn1cclxuIl19

@@ -1,3 +0,2 @@

import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
import { DEFAULT_TEMPLATE, DEFAULT_STYLES } from './template';
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, } from '@angular/core';
function coerceToBoolean(input) {

@@ -46,6 +45,6 @@ return !!input && input !== 'false';

selector: 'paging-controls',
template: DEFAULT_TEMPLATE,
template: "<!-- [itemsPerPage]=\"itemsPerPage?itemsPerPage:5\" -->\r\n<pagination-template\r\n #p=\"paginationApi\"\r\n [id]=\"id\"\r\n [maxSize]=\"maxSize\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\"\r\n>\r\n <div *ngIf=\"!(autoHide && p.pages.length <= 1)\">\r\n <div class=\"items-number\" *ngIf=\"isItemsPerPage\">\r\n <span style=\"display: flex\" class=\"pagination-font\">\r\n <label class=\"show-label\">Show</label>\r\n <select\r\n class=\"no-padding pagination-font\"\r\n [(ngModel)]=\"p.itemsPerPage\"\r\n (change)=\"p.pageSizeChanged($event.target.value)\"\r\n >\r\n <option\r\n *ngFor=\"let pageSizeDefault of p.pageSizes\"\r\n value=\"{{ pageSizeDefault }}\"\r\n [selected]=\"pageSizeDefault == p.itemsPerPage\"\r\n >\r\n {{ pageSizeDefault }}\r\n </option>\r\n </select>\r\n <label class=\"entries-label\">entries</label></span\r\n >\r\n </div>\r\n\r\n <div\r\n class=\"ngx-pagination pagination-font\"\r\n role=\"navigation\"\r\n *ngIf=\"!isItemsPerPage\"\r\n [attr.aria-label]=\"screenReaderPaginationLabel\"\r\n [class.responsive]=\"responsive\"\r\n >\r\n <label\r\n >Showing {{ p.getStartIndex() }} - {{ p.getEndIndex() }} of\r\n {{ p.getTotalItems() }} entries</label\r\n >\r\n\r\n <ul role=\"navigation\" class=\"\">\r\n <li\r\n class=\"pagination-previous pagination-font\"\r\n [class.disabled]=\"p.isFirstPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"1 < p.getCurrent()\"\r\n (keyup.enter)=\"p.previous()\"\r\n (click)=\"p.previous()\"\r\n [attr.aria-label]=\"previousLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ previousLabel }}\r\n </a>\r\n <span *ngIf=\"p.isFirstPage()\">\r\n {{ previousLabel }}\r\n </span>\r\n </li>\r\n <li class=\"small-screen pagination-font\">\r\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\r\n </li>\r\n <li\r\n class=\"pagination-font\"\r\n [class.current]=\"p.getCurrent() === page.value\"\r\n [class.ellipsis]=\"page.label === '...'\"\r\n *ngFor=\"let page of p.pages\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n (keyup.enter)=\"p.setCurrent(page.value)\"\r\n (click)=\"p.setCurrent(page.value)\"\r\n *ngIf=\"p.getCurrent() !== page.value\"\r\n >\r\n <span class=\"show-for-sr\">{{ screenReaderPageLabel }} </span>\r\n <span>{{\r\n page.label === \"...\" ? page.label : (page.label | number: \"\")\r\n }}</span>\r\n </a>\r\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\r\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel }} </span>\r\n <span>{{\r\n page.label === \"...\" ? page.label : (page.label | number: \"\")\r\n }}</span>\r\n </ng-container>\r\n </li>\r\n <li\r\n class=\"pagination-next pagination-font\"\r\n [class.disabled]=\"p.isLastPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"!p.isLastPage()\"\r\n (keyup.enter)=\"p.next()\"\r\n (click)=\"p.next()\"\r\n [attr.aria-label]=\"nextLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ nextLabel }}\r\n </a>\r\n <span *ngIf=\"p.isLastPage()\">\r\n {{ nextLabel }}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</pagination-template>\r\n",
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
styles: [DEFAULT_STYLES]
styles: [".show-label{margin-right:.25rem}.no-padding{padding:0}.select-box{border:1px solid rgba(51,51,51,.6901960784313725);border-radius:4px;color:rgba(51,51,51,.6901960784313725);opacity:1}.entries-label{margin-left:.25rem}.ngx-pagination{display:flex;justify-content:space-between;margin-bottom:1rem;margin-left:0}.ngx-pagination:after,.ngx-pagination:before{display:table}.ngx-pagination:after{clear:both}.ngx-pagination li{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;border-radius:0;display:inline-block;margin-right:.0625rem}.ngx-pagination a,.ngx-pagination button{border-radius:0;display:block;padding:.1875rem .625rem}.ngx-pagination a:hover,.ngx-pagination button:hover{background:#e6e6e6}.ngx-pagination .current{background:#2199e8;color:#fefefe;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled{color:#cacaca;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled:hover{background:transparent}.ngx-pagination a,.ngx-pagination button{cursor:pointer}.ngx-pagination .pagination-previous.disabled:before,.ngx-pagination .pagination-previous a:before{content:\"\u00AB\";display:inline-block;margin-right:.5rem}.ngx-pagination .pagination-next.disabled:after,.ngx-pagination .pagination-next a:after{content:\"\u00BB\";display:inline-block;margin-left:.5rem}.ngx-pagination .show-for-sr{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute!important;width:1px}.ngx-pagination .small-screen{display:none}@media screen and (max-width:601px){.ngx-pagination.responsive .small-screen{display:inline-block}.ngx-pagination.responsive li:not(.small-screen):not(.pagination-previous):not(.pagination-next){display:none}}@media only screen and (max-width:1023px){.pagination-font{color:#2e384d!important;font-size:14px!important}}@media only screen and (min-width:1024px) and (max-width:1439px){.pagination-font{color:#2e384d;font-size:16px!important}}@media only screen and (min-width:1440px) and (max-width:2559px){.pagination-font{color:#2e384d;font-size:18px!important}}"]
},] }

@@ -57,2 +56,3 @@ ];

isItemsPerPage: [{ type: Input }],
itemsPerPage: [{ type: Input }],
directionLinks: [{ type: Input }],

@@ -70,2 +70,2 @@ autoHide: [{ type: Input }],

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uL3Byb2plY3RzL25neC10YWJsZS1wYWdpbmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFBO0FBQ2hILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUQsU0FBUyxlQUFlLENBQUMsS0FBdUI7SUFDNUMsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxPQUFPLENBQUM7QUFDeEMsQ0FBQztBQUVEOztHQUVHO0FBUUgsTUFBTSxPQUFPLG1CQUFtQjtJQVBoQztRQVVXLFlBQU8sR0FBVyxDQUFDLENBQUM7UUF1QmxCLGtCQUFhLEdBQUMsS0FBSyxDQUFDO1FBQ3BCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsZ0NBQTJCLEdBQUcsWUFBWSxDQUFDO1FBQzNDLDBCQUFxQixHQUFXLE1BQU0sQ0FBQztRQUN2Qyw2QkFBd0IsR0FBVyxnQkFBZ0IsQ0FBQztRQUNuRCxlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUQseUJBQW9CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFMUUsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFDaEMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUM3QixnQkFBVyxHQUFZLEtBQUssQ0FBQztJQUV2QyxDQUFDO0lBbENDLElBQ00sY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUNJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7O1lBaENKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixRQUFRLEVBQUUsZ0JBQWdCO2dCQUUxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7eUJBRjVCLGNBQWM7YUFHMUI7OztpQkFHSSxLQUFLO3NCQUNQLEtBQUs7NkJBQ0wsS0FBSzs2QkFDTCxLQUFLO3VCQU9ILEtBQUs7eUJBT0wsS0FBSzs0QkFPTCxLQUFLOzRCQUNMLEtBQUs7d0JBQ0wsS0FBSzswQ0FDTCxLQUFLO29DQUNMLEtBQUs7dUNBQ0wsS0FBSzt5QkFDTCxNQUFNO21DQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IERFRkFVTFRfVEVNUExBVEUsIERFRkFVTFRfU1RZTEVTIH0gZnJvbSAnLi90ZW1wbGF0ZSc7XHJcbmZ1bmN0aW9uIGNvZXJjZVRvQm9vbGVhbihpbnB1dDogc3RyaW5nIHwgYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhaW5wdXQgJiYgaW5wdXQgIT09ICdmYWxzZSc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgZGVmYXVsdCBwYWdpbmF0aW9uIGNvbnRyb2xzIGNvbXBvbmVudC4gQWN0dWFsbHkganVzdCBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYSBjdXN0b20gdGVtcGxhdGUuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncGFnaW5nLWNvbnRyb2xzJyxcclxuICAgIHRlbXBsYXRlOiBERUZBVUxUX1RFTVBMQVRFICxcclxuICAgIHN0eWxlczogW0RFRkFVTFRfU1RZTEVTXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCB7XHJcblxyXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXhTaXplOiBudW1iZXIgPSA3O1xyXG4gIEBJbnB1dCgpIGlzSXRlbXNQZXJQYWdlOmJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICAgIGdldCBkaXJlY3Rpb25MaW5rcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlyZWN0aW9uTGlua3M7XHJcbiAgICB9XHJcbiAgICBzZXQgZGlyZWN0aW9uTGlua3ModmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9kaXJlY3Rpb25MaW5rcyA9IGNvZXJjZVRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGF1dG9IaWRlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvSGlkZTtcclxuICAgIH1cclxuICAgIHNldCBhdXRvSGlkZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2F1dG9IaWRlID0gY29lcmNlVG9Cb29sZWFuKHZhbHVlKTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcmVzcG9uc2l2ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2l2ZTtcclxuICAgIH1cclxuICAgIHNldCByZXNwb25zaXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fcmVzcG9uc2l2ZSA9IGNvZXJjZVRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBpc0l0ZW1zTnVtYmVyPWZhbHNlO1xyXG4gICAgQElucHV0KCkgcHJldmlvdXNMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgICBASW5wdXQoKSBuZXh0TGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gICAgQElucHV0KCkgc2NyZWVuUmVhZGVyUGFnaW5hdGlvbkxhYmVsID0gJ1BhZ2luYXRpb24nO1xyXG4gICAgQElucHV0KCkgc2NyZWVuUmVhZGVyUGFnZUxhYmVsOiBzdHJpbmcgPSAncGFnZSc7XHJcbiAgICBASW5wdXQoKSBzY3JlZW5SZWFkZXJDdXJyZW50TGFiZWw6IHN0cmluZyA9IGBZb3UncmUgb24gcGFnZWA7XHJcbiAgICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAgIEBPdXRwdXQoKSBwYWdlQm91bmRzQ29ycmVjdGlvbjogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICBwcml2YXRlIF9kaXJlY3Rpb25MaW5rczogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBwcml2YXRlIF9hdXRvSGlkZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3Jlc3BvbnNpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uLXRlc3Rpbmcvbmd4LXRhYmxlLXBhZ2luYXRpb24vcHJvamVjdHMvbmd4LXRhYmxlLXBhZ2luYXRpb24vc3JjLyIsInNvdXJjZXMiOlsibGliL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixTQUFTLGVBQWUsQ0FBQyxLQUF1QjtJQUM5QyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLE9BQU8sQ0FBQztBQUN0QyxDQUFDO0FBRUQ7O0dBRUc7QUFRSCxNQUFNLE9BQU8sbUJBQW1CO0lBUGhDO1FBU1csWUFBTyxHQUFXLENBQUMsQ0FBQztRQXdCcEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixnQ0FBMkIsR0FBRyxZQUFZLENBQUM7UUFDM0MsMEJBQXFCLEdBQVcsTUFBTSxDQUFDO1FBQ3ZDLDZCQUF3QixHQUFXLGdCQUFnQixDQUFDO1FBQ25ELGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5RCx5QkFBb0IsR0FBeUIsSUFBSSxZQUFZLEVBRXBFLENBQUM7UUFFSSxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFuQ0MsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsS0FBYztRQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUNJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQWM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7O1lBaENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixzMkhBQTBDO2dCQUUxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7aUJBRUUsS0FBSztzQkFDTCxLQUFLOzZCQUNMLEtBQUs7MkJBQ0wsS0FBSzs2QkFDTCxLQUFLO3VCQU9MLEtBQUs7eUJBT0wsS0FBSzs0QkFPTCxLQUFLOzRCQUNMLEtBQUs7d0JBQ0wsS0FBSzswQ0FDTCxLQUFLO29DQUNMLEtBQUs7dUNBQ0wsS0FBSzt5QkFDTCxNQUFNO21DQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uU2VydmljZSB9IGZyb20gJy4vcGFnaW5hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgREVGQVVMVF9URU1QTEFURSwgREVGQVVMVF9TVFlMRVMgfSBmcm9tICcuL3RlbXBsYXRlJztcclxuZnVuY3Rpb24gY29lcmNlVG9Cb29sZWFuKGlucHV0OiBzdHJpbmcgfCBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuICEhaW5wdXQgJiYgaW5wdXQgIT09ICdmYWxzZSc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgZGVmYXVsdCBwYWdpbmF0aW9uIGNvbnRyb2xzIGNvbXBvbmVudC4gQWN0dWFsbHkganVzdCBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYSBjdXN0b20gdGVtcGxhdGUuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BhZ2luZy1jb250cm9scycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LmNzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1heFNpemU6IG51bWJlciA9IDc7XHJcbiAgQElucHV0KCkgaXNJdGVtc1BlclBhZ2U6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXRlbXNQZXJQYWdlO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpcmVjdGlvbkxpbmtzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RpcmVjdGlvbkxpbmtzO1xyXG4gIH1cclxuICBzZXQgZGlyZWN0aW9uTGlua3ModmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RpcmVjdGlvbkxpbmtzID0gY29lcmNlVG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgYXV0b0hpZGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXV0b0hpZGU7XHJcbiAgfVxyXG4gIHNldCBhdXRvSGlkZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYXV0b0hpZGUgPSBjb2VyY2VUb0Jvb2xlYW4odmFsdWUpO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXNwb25zaXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jlc3BvbnNpdmU7XHJcbiAgfVxyXG4gIHNldCByZXNwb25zaXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZXNwb25zaXZlID0gY29lcmNlVG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KCkgaXNJdGVtc051bWJlciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHByZXZpb3VzTGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG5leHRMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgc2NyZWVuUmVhZGVyUGFnaW5hdGlvbkxhYmVsID0gJ1BhZ2luYXRpb24nO1xyXG4gIEBJbnB1dCgpIHNjcmVlblJlYWRlclBhZ2VMYWJlbDogc3RyaW5nID0gJ3BhZ2UnO1xyXG4gIEBJbnB1dCgpIHNjcmVlblJlYWRlckN1cnJlbnRMYWJlbDogc3RyaW5nID0gYFlvdSdyZSBvbiBwYWdlYDtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBAT3V0cHV0KCkgcGFnZUJvdW5kc0NvcnJlY3Rpb246IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIG51bWJlclxyXG4gID4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfZGlyZWN0aW9uTGlua3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgX2F1dG9IaWRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfcmVzcG9uc2l2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG59XHJcbiJdfQ==

@@ -1,2 +0,2 @@

import { ChangeDetectorRef, Directive, EventEmitter, Input, Output } from '@angular/core';
import { ChangeDetectorRef, Directive, EventEmitter, Input, Output, } from '@angular/core';
import { PaginationService } from './pagination.service';

@@ -17,5 +17,3 @@ /**

this.pageSizes = [];
this.itemsPerPage = 5;
this.changeSub = this.service.change
.subscribe(id => {
this.changeSub = this.service.change.subscribe((id) => {
if (this.id === id) {

@@ -26,2 +24,3 @@ this.updatePageLinks();

const inst = this.service.getInstance(this.id);
this.itemsPerPage = inst.itemsPerPage;
}

@@ -35,2 +34,3 @@ });

const inst = this.service.getInstance(this.id);
this.itemsPerPage = inst.itemsPerPage;
for (let i = 5; i <= inst.totalItems;) {

@@ -40,3 +40,2 @@ this.pageSizes.push(i);

}
this.service.setItemsPerPage(this.id, this.itemsPerPage);
this.updatePageLinks();

@@ -51,2 +50,3 @@ }

pageSizeChanged(event) {
this.itemsPerPage = event;
this.service.setItemsPerPage(this.id, event);

@@ -111,10 +111,10 @@ this.setCurrent(1);

const inst = this.service.getInstance(this.id);
if (inst.totalItems < ((inst.itemsPerPage * (inst.currentPage - 1)) + 1)) {
if (inst.totalItems < inst.itemsPerPage * (inst.currentPage - 1) + 1) {
this.setCurrent(1);
}
return (inst.itemsPerPage * (inst.currentPage - 1)) + 1;
return inst.itemsPerPage * (inst.currentPage - 1) + 1;
}
getEndIndex() {
const inst = this.service.getInstance(this.id);
const end = (inst.itemsPerPage * inst.currentPage);
const end = inst.itemsPerPage * inst.currentPage;
if (inst.totalItems < end) {

@@ -179,4 +179,4 @@ return inst.totalItems;

const pageNumber = this.calculatePageNumber(i, currentPage, paginationRange, totalPages);
const openingEllipsesNeeded = (i === 2 && (isMiddle || isEnd));
const closingEllipsesNeeded = (i === paginationRange - 1 && (isMiddle || isStart));
const openingEllipsesNeeded = i === 2 && (isMiddle || isEnd);
const closingEllipsesNeeded = i === paginationRange - 1 && (isMiddle || isStart);
if (ellipsesNeeded && (openingEllipsesNeeded || closingEllipsesNeeded)) {

@@ -190,3 +190,3 @@ label = '...';

label,
value: pageNumber
value: pageNumber,
});

@@ -228,3 +228,3 @@ i++;

selector: 'pagination-template,[pagination-template]',
exportAs: 'paginationApi'
exportAs: 'paginationApi',
},] }

@@ -240,5 +240,4 @@ ];

pageChange: [{ type: Output }],
pageBoundsCorrection: [{ type: Output }],
itemsPerPage: [{ type: Input }]
pageBoundsCorrection: [{ type: Output }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uL3Byb2plY3RzL25neC10YWJsZS1wYWdpbmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9wYWdpbmF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBUXZEOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8sbUJBQW1CO0lBVzVCLFlBQW9CLE9BQTBCLEVBQzFCLGlCQUFvQztRQURwQyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVmpELFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFVCxlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUQseUJBQW9CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbEYsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNyQixjQUFTLEdBQVUsRUFBRSxDQUFDO1FBQ2IsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFLcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07YUFDL0IsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFFSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN2QyxNQUFNLElBQUksR0FBRyxJ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SUFBSSxDQUFDO2dCQUNQLEtBQUs7Z0JBQ0wsS0FBSyxFQUFFLFVBQVU7YUFDcEIsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxFQUFHLENBQUM7U0FDUjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUIsQ0FBQyxDQUFTLEVBQUUsV0FBbUIsRUFBRSxlQUF1QixFQUFFLFVBQWtCO1FBQ25HLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLGVBQWUsRUFBRTtZQUN2QixPQUFPLFVBQVUsQ0FBQztTQUNyQjthQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQixPQUFPLENBQUMsQ0FBQztTQUNaO2FBQU0sSUFBSSxlQUFlLEdBQUcsVUFBVSxFQUFFO1lBQ3JDLElBQUksVUFBVSxHQUFHLE9BQU8sR0FBRyxXQUFXLEVBQUU7Z0JBQ3BDLE9BQU8sVUFBVSxHQUFHLGVBQWUsR0FBRyxDQUFDLENBQUM7YUFDM0M7aUJBQU0sSUFBSSxPQUFPLEdBQUcsV0FBVyxFQUFFO2dCQUM5QixPQUFPLFdBQVcsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO2FBQ3BDO2lCQUFNO2dCQUNILE9BQU8sQ0FBQyxDQUFDO2FBQ1o7U0FDSjthQUFNO1lBQ0gsT0FBTyxDQUFDLENBQUM7U0FDWjtJQUNMLENBQUM7OztZQXpPSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJDQUEyQztnQkFDckQsUUFBUSxFQUFFLGVBQWU7YUFDNUI7OztZQWhCTyxpQkFBaUI7WUFIakIsaUJBQWlCOzs7aUJBcUJwQixLQUFLO3NCQUNQLEtBQUs7eUJBRUgsTUFBTTttQ0FDTixNQUFNOzJCQUdSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7UGFnaW5hdGlvblNlcnZpY2V9IGZyb20gJy4vcGFnaW5hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtQYWdpbmF0aW9uSW5zdGFuY2V9IGZyb20gJy4vcGFnaW5hdGlvbi1pbnN0YW5jZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2Uge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHZhbHVlOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyB3aGF0IHBvd2VycyBhbGwgcGFnaW5hdGlvbiBjb250cm9scyBjb21wb25lbnRzLCBpbmNsdWRpbmcgdGhlIGRlZmF1bHQgb25lLlxyXG4gKiBJdCBleHBvc2VzIGFuIEFQSSB3aGljaCBpcyBob29rZWQgdXAgdG8gdGhlIFBhZ2luYXRpb25TZXJ2aWNlIHRvIGtlZXAgdGhlIFBhZ2luYXRlUGlwZSBpbiBzeW5jXHJcbiAqIHdpdGggdGhlIHBhZ2luYXRpb24gY29udHJvbHMuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAncGFnaW5hdGlvbi10ZW1wbGF0ZSxbcGFnaW5hdGlvbi10ZW1wbGF0ZV0nLFxyXG4gICAgZXhwb3J0QXM6ICdwYWdpbmF0aW9uQXBpJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkRpcmVjdGl2ZSB7XHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1heFNpemUgPSA3O1xyXG5cclxuICAgIEBPdXRwdXQoKSBwYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gICAgQE91dHB1dCgpIHBhZ2VCb3VuZHNDb3JyZWN0aW9uOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gICAgcGFnZXM6IFBhZ2VbXSA9IFtdO1xyXG4gIHBhZ2VTaXplczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBpdGVtc1BlclBhZ2UgPSA1O1xyXG4gICAgcHJpdmF0ZSBjaGFuZ2VTdWI6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IFBhZ2luYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICB0aGlzLmNoYW5nZVN1YiA9IHRoaXMuc2VydmljZS5jaGFuZ2VcclxuICAgICAgICAgICAgLnN1YnNjcmliZShpZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaWQgPT09IGlkKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUGFnZUxpbmtzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnN0ID0gdGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKHRoaXMuaWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaWQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmlkID0gdGhpcy5zZXJ2aWNlLmRlZmF1bHRJZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBpbnN0ID0gdGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKHRoaXMuaWQpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSA1OyBpIDw9IGluc3QudG90YWxJdGVtczspe1xyXG4gICAgICAgICAgdGhpcy5wYWdlU2l6ZXMucHVzaChpKTtcclxuICAgICAgICAgIGkgKz0gNTtcclxuICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VydmljZS5zZXRJdGVtc1BlclBhZ2UodGhpcy5pZCwgdGhpcy5pdGVtc1BlclBhZ2UpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlUGFnZUxpbmtzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQYWdlTGlua3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmNoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIHBhZ2VTaXplQ2hhbmdlZChldmVudCkge1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5zZXRJdGVtc1BlclBhZ2UodGhpcy5pZCwgZXZlbnQpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50KDEpO1xyXG5cclxuICAgIHRoaXMudXBkYXRlUGFnZUxpbmtzKCk7XHJcblxyXG59XHJcbiAgICAvKipcclxuICAgICAqIEdvIHRvIHRoZSBwcmV2aW91cyBwYWdlXHJcbiAgICAgKi9cclxuICAgIHByZXZpb3VzKCkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tWYWxpZElkKCk7XHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50KHRoaXMuZ2V0Q3VycmVudCgpIC0gMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHbyB0byB0aGUgbmV4dCBwYWdlXHJcbiAgICAgKi9cclxuICAgIG5leHQoKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja1ZhbGlkSWQoKTtcclxuICAgICAgICB0aGlzLnNldEN1cnJlbnQodGhpcy5nZXRDdXJyZW50KCkgKyAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiBjdXJyZW50IHBhZ2UgaXMgZmlyc3QgcGFnZVxyXG4gICAgICovXHJcbiAgICBpc0ZpcnN0UGFnZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRDdXJyZW50KCkgPT09IDE7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgY3VycmVudCBwYWdlIGlzIGxhc3QgcGFnZVxyXG4gICAgICovXHJcbiAgICBpc0xhc3RQYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldExhc3RQYWdlKCkgPT09IHRoaXMuZ2V0Q3VycmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxyXG4gICAgICovXHJcbiAgc2V0Q3VycmVudChwYWdlOiBudW1iZXIpIHtcclxuICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xyXG4gICAgICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxyXG4gICAgICovXHJcbiAgICBnZXRDdXJyZW50KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRDdXJyZW50UGFnZSh0aGlzLmlkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGxhc3QgcGFnZSBudW1iZXJcclxuICAgICAqL1xyXG4gICAgZ2V0TGFzdFBhZ2UoKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBpbnN0ID0gdGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKHRoaXMuaWQpO1xyXG4gICAgICAgIGlmIChpbnN0LnRvdGFsSXRlbXMgPCAxKSB7XHJcbiAgICAgICAgICAgIC8vIHdoZW4gdGhlcmUgYXJlIDAgb3IgZmV3ZXIgKGFuIGVycm9yIGNhc2UpIGl0ZW1zLCB0aGVyZSBhcmUgbm8gXCJwYWdlc1wiIGFzIHN1Y2gsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBpdCBtYWtlcyBzZW5zZSB0byBjb25zaWRlciBhIHNpbmdsZSwgZW1wdHkgcGFnZSBhcyB0aGUgbGFzdCBwYWdlLlxyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChpbnN0LnRvdGFsSXRlbXMgLyBpbnN0Lml0ZW1zUGVyUGFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VG90YWxJdGVtcygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0SW5zdGFuY2UodGhpcy5pZCkudG90YWxJdGVtcztcclxuICAgIH1cclxuIGdldFN0YXJ0SW5kZXgoKTogbnVtYmVyIHtcclxuICAgY29uc3QgaW5zdCA9IHRoaXMuc2VydmljZS5nZXRJbnN0YW5jZSh0aGlzLmlkKTtcclxuICAgaWYgKGluc3QudG90YWxJdGVtcyA8ICgoaW5zdC5pdGVtc1BlclBhZ2UgKiAoaW5zdC5jdXJyZW50UGFnZSAtIDEpKSArIDEpKSB7XHJcbiAgICAgdGhpcy5zZXRDdXJyZW50KDEpO1xyXG4gICB9XHJcbiAgICAgIHJldHVybiAoaW5zdC5pdGVtc1BlclBhZ2UgKiAoaW5zdC5jdXJyZW50UGFnZSAtIDEpKSArIDE7XHJcbiAgfVxyXG5cclxuICBnZXRFbmRJbmRleCgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgaW5zdCA9IHRoaXMuc2VydmljZS5nZXRJbnN0YW5jZSh0aGlzLmlkKTtcclxuICAgIGNvbnN0IGVuZCA9IChpbnN0Lml0ZW1zUGVyUGFnZSAqIGluc3QuY3VycmVudFBhZ2UpO1xyXG4gICAgaWYgKGluc3QudG90YWxJdGVtcyA8IGVuZCkge1xyXG4gICAgICByZXR1cm4gaW5zdC50b3RhbEl0ZW1zO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVuZDtcclxuXHJcblxyXG59XHJcbiAgICBwcml2YXRlIGNoZWNrVmFsaWRJZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKHRoaXMuaWQpLmlkID09IG51bGwpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKGBQYWdpbmF0aW9uQ29udHJvbHNEaXJlY3RpdmU6IHRoZSBzcGVjaWZpZWQgaWQgXCIke3RoaXMuaWR9XCIgZG9lcyBub3QgbWF0Y2ggYW55IHJlZ2lzdGVyZWQgUGFnaW5hdGlvbkluc3RhbmNlYCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgcGFnZSBsaW5rcyBhbmQgY2hlY2tzIHRoYXQgdGhlIGN1cnJlbnQgcGFnZSBpcyB2YWxpZC4gU2hvdWxkIHJ1biB3aGVuZXZlciB0aGVcclxuICAgICAqIFBhZ2luYXRpb25TZXJ2aWNlLmNoYW5nZSBzdHJlYW0gZW1pdHMgYSB2YWx1ZSBtYXRjaGluZyB0aGUgY3VycmVudCBJRCwgb3Igd2hlbiBhbnkgb2YgdGhlXHJcbiAgICAgKiBpbnB1dCB2YWx1ZXMgY2hhbmdlcy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVQYWdlTGlua3MoKSB7XHJcbiAgICAgICAgY29uc3QgaW5zdCA9IHRoaXMuc2VydmljZS5nZXRJbnN0YW5jZSh0aGlzLmlkKTtcclxuICAgICAgICBjb25zdCBjb3JyZWN0ZWRDdXJyZW50UGFnZSA9IHRoaXMub3V0T2ZCb3VuZENvcnJlY3Rpb24oaW5zdCk7XHJcblxyXG4gICAgICAgIGlmIChjb3JyZWN0ZWRDdXJyZW50UGFnZSAhPT0gaW5zdC5jdXJyZW50UGFnZSkge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFnZUJvdW5kc0NvcnJlY3Rpb24uZW1pdChjb3JyZWN0ZWRDdXJyZW50UGFnZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VzID0gdGhpcy5jcmVhdGVQYWdlQXJyYXkoaW5zdC5jdXJyZW50UGFnZSwgaW5zdC5pdGVtc1BlclBhZ2UsIGluc3QudG90YWxJdGVtcywgdGhpcy5tYXhTaXplKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdlcyA9IHRoaXMuY3JlYXRlUGFnZUFycmF5KGluc3QuY3VycmVudFBhZ2UsIGluc3QuaXRlbXNQZXJQYWdlLCBpbnN0LnRvdGFsSXRlbXMsIHRoaXMubWF4U2l6ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2tzIHRoYXQgdGhlIGluc3RhbmNlLmN1cnJlbnRQYWdlIHByb3BlcnR5IGlzIHdpdGhpbiBib3VuZHMgZm9yIHRoZSBjdXJyZW50IHBhZ2UgcmFuZ2UuXHJcbiAgICAgKiBJZiBub3QsIHJldHVybiBhIGNvcnJlY3QgdmFsdWUgZm9yIGN1cnJlbnRQYWdlLCBvciB0aGUgY3VycmVudCB2YWx1ZSBpZiBPSy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBvdXRPZkJvdW5kQ29ycmVjdGlvbihpbnN0YW5jZTogUGFnaW5hdGlvbkluc3RhbmNlKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKGluc3RhbmNlLnRvdGFsSXRlbXMgLyBpbnN0YW5jZS5pdGVtc1BlclBhZ2UpO1xyXG4gICAgICAgIGlmICh0b3RhbFBhZ2VzIDwgaW5zdGFuY2UuY3VycmVudFBhZ2UgJiYgMCA8IHRvdGFsUGFnZXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRvdGFsUGFnZXM7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbnN0YW5jZS5jdXJyZW50UGFnZSA8IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaW5zdGFuY2UuY3VycmVudFBhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIFBhZ2Ugb2JqZWN0cyB0byB1c2UgaW4gdGhlIHBhZ2luYXRpb24gY29udHJvbHMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY3JlYXRlUGFnZUFycmF5KGN1cnJlbnRQYWdlOiBudW1iZXIsIGl0ZW1zUGVyUGFnZTogbnVtYmVyLCB0b3RhbEl0ZW1zOiBudW1iZXIsIHBhZ2luYXRpb25SYW5nZTogbnVtYmVyKTogUGFnZVtdIHtcclxuICAgICAgICAvLyBwYWdpbmF0aW9uUmFuZ2UgY291bGQgYmUgYSBzdHJpbmcgaWYgcGFzc2VkIGZyb20gYXR0cmlidXRlLCBzbyBjYXN0IHRvIG51bWJlci5cclxuICAgICAgICBwYWdpbmF0aW9uUmFuZ2UgPSArcGFnaW5hdGlvblJhbmdlO1xyXG4gICAgICAgIGNvbnN0IHBhZ2VzID0gW107XHJcbiAgICAgICAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGguY2VpbCh0b3RhbEl0ZW1zIC8gaXRlbXNQZXJQYWdlKTtcclxuICAgICAgICBjb25zdCBoYWxmV2F5ID0gTWF0aC5jZWlsKHBhZ2luYXRpb25SYW5nZSAvIDIpO1xyXG5cclxuICAgICAgICBjb25zdCBpc1N0YXJ0ID0gY3VycmVudFBhZ2UgPD0gaGFsZldheTtcclxuICAgICAgICBjb25zdCBpc0VuZCA9IHRvdGFsUGFnZXMgLSBoYWxmV2F5IDwgY3VycmVudFBhZ2U7XHJcbiAgICAgICAgY29uc3QgaXNNaWRkbGUgPSAhaXNTdGFydCAmJiAhaXNFbmQ7XHJcblxyXG4gICAgICAgIGNvbnN0IGVsbGlwc2VzTmVlZGVkID0gcGFnaW5hdGlvblJhbmdlIDwgdG90YWxQYWdlcztcclxuICAgICAgICBsZXQgaSA9IDE7XHJcblxyXG4gICAgICAgIHdoaWxlIChpIDw9IHRvdGFsUGFnZXMgJiYgaSA8PSBwYWdpbmF0aW9uUmFuZ2UpIHtcclxuICAgICAgICAgICAgbGV0IGxhYmVsO1xyXG4gICAgICAgICAgICBjb25zdCBwYWdlTnVtYmVyID0gdGhpcy5jYWxjdWxhdGVQYWdlTnVtYmVyKGksIGN1cnJlbnRQYWdlLCBwYWdpbmF0aW9uUmFuZ2UsIHRvdGFsUGFnZXMpO1xyXG4gICAgICAgICAgICBjb25zdCBvcGVuaW5nRWxsaXBzZXNOZWVkZWQgPSAoaSA9PT0gMiAmJiAoaXNNaWRkbGUgfHwgaXNFbmQpKTtcclxuICAgICAgICAgICAgY29uc3QgY2xvc2luZ0VsbGlwc2VzTmVlZGVkID0gKGkgPT09IHBhZ2luYXRpb25SYW5nZSAtIDEgJiYgKGlzTWlkZGxlIHx8IGlzU3RhcnQpKTtcclxuICAgICAgICAgICAgaWYgKGVsbGlwc2VzTmVlZGVkICYmIChvcGVuaW5nRWxsaXBzZXNOZWVkZWQgfHwgY2xvc2luZ0VsbGlwc2VzTmVlZGVkKSkge1xyXG4gICAgICAgICAgICAgICAgbGFiZWwgPSAnLi4uJztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxhYmVsID0gcGFnZU51bWJlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwYWdlcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHBhZ2VOdW1iZXJcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGkgKys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwYWdlcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdpdmVuIHRoZSBwb3NpdGlvbiBpbiB0aGUgc2VxdWVuY2Ugb2YgcGFnaW5hdGlvbiBsaW5rcyBbaV0sXHJcbiAgICAgKiBmaWd1cmUgb3V0IHdoYXQgcGFnZSBudW1iZXIgY29ycmVzcG9uZHMgdG8gdGhhdCBwb3NpdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQYWdlTnVtYmVyKGk6IG51bWJlciwgY3VycmVudFBhZ2U6IG51bWJlciwgcGFnaW5hdGlvblJhbmdlOiBudW1iZXIsIHRvdGFsUGFnZXM6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IGhhbGZXYXkgPSBNYXRoLmNlaWwocGFnaW5hdGlvblJhbmdlIC8gMik7XHJcbiAgICAgICAgaWYgKGkgPT09IHBhZ2luYXRpb25SYW5nZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdG90YWxQYWdlcztcclxuICAgICAgICB9IGVsc2UgaWYgKGkgPT09IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChwYWdpbmF0aW9uUmFuZ2UgPCB0b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICAgIGlmICh0b3RhbFBhZ2VzIC0gaGFsZldheSA8IGN1cnJlbnRQYWdlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxQYWdlcyAtIHBhZ2luYXRpb25SYW5nZSArIGk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFsZldheSA8IGN1cnJlbnRQYWdlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBhZ2UgLSBoYWxmV2F5ICsgaTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uLXRlc3Rpbmcvbmd4LXRhYmxlLXBhZ2luYXRpb24vcHJvamVjdHMvbmd4LXRhYmxlLXBhZ2luYXRpb24vc3JjLyIsInNvdXJjZXMiOlsibGliL3BhZ2luYXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBUXpEOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8sbUJBQW1CO0lBYTlCLFlBQ1UsT0FBMEIsRUFDMUIsaUJBQW9DO1FBRHBDLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFickMsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUVYLGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5RCx5QkFBb0IsR0FBeUIsSUFBSSxZQUFZLEVBRXBFLENBQUM7UUFDSixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLGNBQVMsR0FBVSxFQUFFLENBQUM7UUFRcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNwRCxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNsQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN2QyxNQUFNLElB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Q0FBQyxJQUFJLENBQUM7Z0JBQ1QsS0FBSztnQkFDTCxLQUFLLEVBQUUsVUFBVTthQUNsQixDQUFDLENBQUM7WUFDSCxDQUFDLEVBQUUsQ0FBQztTQUNMO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssbUJBQW1CLENBQ3pCLENBQVMsRUFDVCxXQUFtQixFQUNuQixlQUF1QixFQUN2QixVQUFrQjtRQUVsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxlQUFlLEVBQUU7WUFDekIsT0FBTyxVQUFVLENBQUM7U0FDbkI7YUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxDQUFDLENBQUM7U0FDVjthQUFNLElBQUksZUFBZSxHQUFHLFVBQVUsRUFBRTtZQUN2QyxJQUFJLFVBQVUsR0FBRyxPQUFPLEdBQUcsV0FBVyxFQUFFO2dCQUN0QyxPQUFPLFVBQVUsR0FBRyxlQUFlLEdBQUcsQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNLElBQUksT0FBTyxHQUFHLFdBQVcsRUFBRTtnQkFDaEMsT0FBTyxXQUFXLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNsQztpQkFBTTtnQkFDTCxPQUFPLENBQUMsQ0FBQzthQUNWO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7SUFDSCxDQUFDOzs7WUFuUUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwyQ0FBMkM7Z0JBQ3JELFFBQVEsRUFBRSxlQUFlO2FBQzFCOzs7WUFoQlEsaUJBQWlCO1lBVHhCLGlCQUFpQjs7O2lCQTJCaEIsS0FBSztzQkFDTCxLQUFLO3lCQUVMLE1BQU07bUNBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgT25Jbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFBhZ2luYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9wYWdpbmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uSW5zdGFuY2UgfSBmcm9tICcuL3BhZ2luYXRpb24taW5zdGFuY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdlIHtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlOiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyB3aGF0IHBvd2VycyBhbGwgcGFnaW5hdGlvbiBjb250cm9scyBjb21wb25lbnRzLCBpbmNsdWRpbmcgdGhlIGRlZmF1bHQgb25lLlxyXG4gKiBJdCBleHBvc2VzIGFuIEFQSSB3aGljaCBpcyBob29rZWQgdXAgdG8gdGhlIFBhZ2luYXRpb25TZXJ2aWNlIHRvIGtlZXAgdGhlIFBhZ2luYXRlUGlwZSBpbiBzeW5jXHJcbiAqIHdpdGggdGhlIHBhZ2luYXRpb24gY29udHJvbHMuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ3BhZ2luYXRpb24tdGVtcGxhdGUsW3BhZ2luYXRpb24tdGVtcGxhdGVdJyxcclxuICBleHBvcnRBczogJ3BhZ2luYXRpb25BcGknLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXhTaXplID0gNztcclxuXHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIHBhZ2VCb3VuZHNDb3JyZWN0aW9uOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8XHJcbiAgICBudW1iZXJcclxuICA+KCk7XHJcbiAgcGFnZXM6IFBhZ2VbXSA9IFtdO1xyXG4gIHBhZ2VTaXplczogYW55W10gPSBbXTtcclxuICBpdGVtc1BlclBhZ2U6IG51bWJlcjtcclxuICBwcml2YXRlIGNoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogUGFnaW5hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5jaGFuZ2VTdWIgPSB0aGlzLnNlcnZpY2UuY2hhbmdlLnN1YnNjcmliZSgoaWQpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaWQgPT09IGlkKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQYWdlTGlua3MoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIGNvbnN0IGluc3QgPSB0aGlzLnNlcnZpY2UuZ2V0SW5zdGFuY2UodGhpcy5pZCk7XHJcbiAgICAgICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBpbnN0Lml0ZW1zUGVyUGFnZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmlkID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5pZCA9IHRoaXMuc2VydmljZS5kZWZhdWx0SWQoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGluc3QgPSB0aGlzLnNlcnZpY2UuZ2V0SW5zdGFuY2UodGhpcy5pZCk7XHJcbiAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IGluc3QuaXRlbXNQZXJQYWdlO1xyXG4gICAgZm9yIChsZXQgaSA9IDU7IGkgPD0gaW5zdC50b3RhbEl0ZW1zOyApIHtcclxuICAgICAgdGhpcy5wYWdlU2l6ZXMucHVzaChpKTtcclxuICAgICAgaSArPSA1O1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVQYWdlTGlua3MoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSkge1xyXG4gICAgdGhpcy51cGRhdGVQYWdlTGlua3MoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5jaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgcGFnZVNpemVDaGFuZ2VkKGV2ZW50KSB7XHJcbiAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5zZXJ2aWNlLnNldEl0ZW1zUGVyUGFnZSh0aGlzLmlkLCBldmVudCk7XHJcbiAgICB0aGlzLnNldEN1cnJlbnQoMSk7XHJcbiAgICB0aGlzLnVwZGF0ZVBhZ2VMaW5rcygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHbyB0byB0aGUgcHJldmlvdXMgcGFnZVxyXG4gICAqL1xyXG4gIHByZXZpb3VzKCkge1xyXG4gICAgdGhpcy5jaGVja1ZhbGlkSWQoKTtcclxuICAgIHRoaXMuc2V0Q3VycmVudCh0aGlzLmdldEN1cnJlbnQoKSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR28gdG8gdGhlIG5leHQgcGFnZVxyXG4gICAqL1xyXG4gIG5leHQoKSB7XHJcbiAgICB0aGlzLmNoZWNrVmFsaWRJZCgpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50KHRoaXMuZ2V0Q3VycmVudCgpICsgMSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRydWUgaWYgY3VycmVudCBwYWdlIGlzIGZpcnN0IHBhZ2VcclxuICAgKi9cclxuICBpc0ZpcnN0UGFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmdldEN1cnJlbnQoKSA9PT0gMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBjdXJyZW50IHBhZ2UgaXMgbGFzdCBwYWdlXHJcbiAgICovXHJcbiAgaXNMYXN0UGFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmdldExhc3RQYWdlKCkgPT09IHRoaXMuZ2V0Q3VycmVudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxyXG4gICAqL1xyXG4gIHNldEN1cnJlbnQocGFnZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChwYWdlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgY3VycmVudCBwYWdlIG51bWJlci5cclxuICAgKi9cclxuICBnZXRDdXJyZW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldEN1cnJlbnRQYWdlKHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGFzdCBwYWdlIG51bWJlclxyXG4gICAqL1xyXG4gIGdldExhc3RQYWdlKCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBpbnN0ID0gdGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKHRoaXMuaWQpO1xyXG4gICAgaWYgKGluc3QudG90YWxJdGVtcyA8IDEpIHtcclxuICAgICAgLy8gd2hlbiB0aGVyZSBhcmUgMCBvciBmZXdlciAoYW4gZXJyb3IgY2FzZSkgaXRlbXMsIHRoZXJlIGFyZSBubyBcInBhZ2VzXCIgYXMgc3VjaCxcclxuICAgICAgLy8gYnV0IGl0IG1ha2VzIHNlbnNlIHRvIGNvbnNpZGVyIGEgc2luZ2xlLCBlbXB0eSBwYWdlIGFzIHRoZSBsYXN0IHBhZ2UuXHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIE1hdGguY2VpbChpbnN0LnRvdGFsSXRlbXMgLyBpbnN0Lml0ZW1zUGVyUGFnZSk7XHJcbiAgfVxyXG5cclxuICBnZXRUb3RhbEl0ZW1zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKHRoaXMuaWQpLnRvdGFsSXRlbXM7XHJcbiAgfVxyXG4gIGdldFN0YXJ0SW5kZXgoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGluc3QgPSB0aGlzLnNlcnZpY2UuZ2V0SW5zdGFuY2UodGhpcy5pZCk7XHJcbiAgICBpZiAoaW5zdC50b3RhbEl0ZW1zIDwgaW5zdC5pdGVtc1BlclBhZ2UgKiAoaW5zdC5jdXJyZW50UGFnZSAtIDEpICsgMSkge1xyXG4gICAgICB0aGlzLnNldEN1cnJlbnQoMSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaW5zdC5pdGVtc1BlclBhZ2UgKiAoaW5zdC5jdXJyZW50UGFnZSAtIDEpICsgMTtcclxuICB9XHJcblxyXG4gIGdldEVuZEluZGV4KCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBpbnN0ID0gdGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKHRoaXMuaWQpO1xyXG4gICAgY29uc3QgZW5kID0gaW5zdC5pdGVtc1BlclBhZ2UgKiBpbnN0LmN1cnJlbnRQYWdlO1xyXG4gICAgaWYgKGluc3QudG90YWxJdGVtcyA8IGVuZCkge1xyXG4gICAgICByZXR1cm4gaW5zdC50b3RhbEl0ZW1zO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVuZDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjaGVja1ZhbGlkSWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmdldEluc3RhbmNlKHRoaXMuaWQpLmlkID09IG51bGwpIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgIGBQYWdpbmF0aW9uQ29udHJvbHNEaXJlY3RpdmU6IHRoZSBzcGVjaWZpZWQgaWQgXCIke3RoaXMuaWR9XCIgZG9lcyBub3QgbWF0Y2ggYW55IHJlZ2lzdGVyZWQgUGFnaW5hdGlvbkluc3RhbmNlYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgcGFnZSBsaW5rcyBhbmQgY2hlY2tzIHRoYXQgdGhlIGN1cnJlbnQgcGFnZSBpcyB2YWxpZC4gU2hvdWxkIHJ1biB3aGVuZXZlciB0aGVcclxuICAgKiBQYWdpbmF0aW9uU2VydmljZS5jaGFuZ2Ugc3RyZWFtIGVtaXRzIGEgdmFsdWUgbWF0Y2hpbmcgdGhlIGN1cnJlbnQgSUQsIG9yIHdoZW4gYW55IG9mIHRoZVxyXG4gICAqIGlucHV0IHZhbHVlcyBjaGFuZ2VzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlUGFnZUxpbmtzKCkge1xyXG4gICAgY29uc3QgaW5zdCA9IHRoaXMuc2VydmljZS5nZXRJbnN0YW5jZSh0aGlzLmlkKTtcclxuICAgIGNvbnN0IGNvcnJlY3RlZEN1cnJlbnRQYWdlID0gdGhpcy5vdXRPZkJvdW5kQ29ycmVjdGlvbihpbnN0KTtcclxuXHJcbiAgICBpZiAoY29ycmVjdGVkQ3VycmVudFBhZ2UgIT09IGluc3QuY3VycmVudFBhZ2UpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wYWdlQm91bmRzQ29ycmVjdGlvbi5lbWl0KGNvcnJlY3RlZEN1cnJlbnRQYWdlKTtcclxuICAgICAgICB0aGlzLnBhZ2VzID0gdGhpcy5jcmVhdGVQYWdlQXJyYXkoXHJcbiAgICAgICAgICBpbnN0LmN1cnJlbnRQYWdlLFxyXG4gICAgICAgICAgaW5zdC5pdGVtc1BlclBhZ2UsXHJcbiAgICAgICAgICBpbnN0LnRvdGFsSXRlbXMsXHJcbiAgICAgICAgICB0aGlzLm1heFNpemVcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnZXMgPSB0aGlzLmNyZWF0ZVBhZ2VBcnJheShcclxuICAgICAgICBpbnN0LmN1cnJlbnRQYWdlLFxyXG4gICAgICAgIGluc3QuaXRlbXNQZXJQYWdlLFxyXG4gICAgICAgIGluc3QudG90YWxJdGVtcyxcclxuICAgICAgICB0aGlzLm1heFNpemVcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyB0aGF0IHRoZSBpbnN0YW5jZS5jdXJyZW50UGFnZSBwcm9wZXJ0eSBpcyB3aXRoaW4gYm91bmRzIGZvciB0aGUgY3VycmVudCBwYWdlIHJhbmdlLlxyXG4gICAqIElmIG5vdCwgcmV0dXJuIGEgY29ycmVjdCB2YWx1ZSBmb3IgY3VycmVudFBhZ2UsIG9yIHRoZSBjdXJyZW50IHZhbHVlIGlmIE9LLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgb3V0T2ZCb3VuZENvcnJlY3Rpb24oaW5zdGFuY2U6IFBhZ2luYXRpb25JbnN0YW5jZSk6IG51bWJlciB7XHJcbiAgICBjb25zdCB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKGluc3RhbmNlLnRvdGFsSXRlbXMgLyBpbnN0YW5jZS5pdGVtc1BlclBhZ2UpO1xyXG4gICAgaWYgKHRvdGFsUGFnZXMgPCBpbnN0YW5jZS5jdXJyZW50UGFnZSAmJiAwIDwgdG90YWxQYWdlcykge1xyXG4gICAgICByZXR1cm4gdG90YWxQYWdlcztcclxuICAgIH0gZWxzZSBpZiAoaW5zdGFuY2UuY3VycmVudFBhZ2UgPCAxKSB7XHJcbiAgICAgIHJldHVybiAxO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnN0YW5jZS5jdXJyZW50UGFnZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgUGFnZSBvYmplY3RzIHRvIHVzZSBpbiB0aGUgcGFnaW5hdGlvbiBjb250cm9scy5cclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZVBhZ2VBcnJheShcclxuICAgIGN1cnJlbnRQYWdlOiBudW1iZXIsXHJcbiAgICBpdGVtc1BlclBhZ2U6IG51bWJlcixcclxuICAgIHRvdGFsSXRlbXM6IG51bWJlcixcclxuICAgIHBhZ2luYXRpb25SYW5nZTogbnVtYmVyXHJcbiAgKTogUGFnZVtdIHtcclxuICAgIC8vIHBhZ2luYXRpb25SYW5nZSBjb3VsZCBiZSBhIHN0cmluZyBpZiBwYXNzZWQgZnJvbSBhdHRyaWJ1dGUsIHNvIGNhc3QgdG8gbnVtYmVyLlxyXG4gICAgcGFnaW5hdGlvblJhbmdlID0gK3BhZ2luYXRpb25SYW5nZTtcclxuICAgIGNvbnN0IHBhZ2VzID0gW107XHJcbiAgICBjb25zdCB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRvdGFsSXRlbXMgLyBpdGVtc1BlclBhZ2UpO1xyXG4gICAgY29uc3QgaGFsZldheSA9IE1hdGguY2VpbChwYWdpbmF0aW9uUmFuZ2UgLyAyKTtcclxuXHJcbiAgICBjb25zdCBpc1N0YXJ0ID0gY3VycmVudFBhZ2UgPD0gaGFsZldheTtcclxuICAgIGNvbnN0IGlzRW5kID0gdG90YWxQYWdlcyAtIGhhbGZXYXkgPCBjdXJyZW50UGFnZTtcclxuICAgIGNvbnN0IGlzTWlkZGxlID0gIWlzU3RhcnQgJiYgIWlzRW5kO1xyXG5cclxuICAgIGNvbnN0IGVsbGlwc2VzTmVlZGVkID0gcGFnaW5hdGlvblJhbmdlIDwgdG90YWxQYWdlcztcclxuICAgIGxldCBpID0gMTtcclxuXHJcbiAgICB3aGlsZSAoaSA8PSB0b3RhbFBhZ2VzICYmIGkgPD0gcGFnaW5hdGlvblJhbmdlKSB7XHJcbiAgICAgIGxldCBsYWJlbDtcclxuICAgICAgY29uc3QgcGFnZU51bWJlciA9IHRoaXMuY2FsY3VsYXRlUGFnZU51bWJlcihcclxuICAgICAgICBpLFxyXG4gICAgICAgIGN1cnJlbnRQYWdlLFxyXG4gICAgICAgIHBhZ2luYXRpb25SYW5nZSxcclxuICAgICAgICB0b3RhbFBhZ2VzXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IG9wZW5pbmdFbGxpcHNlc05lZWRlZCA9IGkgPT09IDIgJiYgKGlzTWlkZGxlIHx8IGlzRW5kKTtcclxuICAgICAgY29uc3QgY2xvc2luZ0VsbGlwc2VzTmVlZGVkID1cclxuICAgICAgICBpID09PSBwYWdpbmF0aW9uUmFuZ2UgLSAxICYmIChpc01pZGRsZSB8fCBpc1N0YXJ0KTtcclxuICAgICAgaWYgKGVsbGlwc2VzTmVlZGVkICYmIChvcGVuaW5nRWxsaXBzZXNOZWVkZWQgfHwgY2xvc2luZ0VsbGlwc2VzTmVlZGVkKSkge1xyXG4gICAgICAgIGxhYmVsID0gJy4uLic7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGFiZWwgPSBwYWdlTnVtYmVyO1xyXG4gICAgICB9XHJcbiAgICAgIHBhZ2VzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsLFxyXG4gICAgICAgIHZhbHVlOiBwYWdlTnVtYmVyLFxyXG4gICAgICB9KTtcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhZ2VzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2l2ZW4gdGhlIHBvc2l0aW9uIGluIHRoZSBzZXF1ZW5jZSBvZiBwYWdpbmF0aW9uIGxpbmtzIFtpXSxcclxuICAgKiBmaWd1cmUgb3V0IHdoYXQgcGFnZSBudW1iZXIgY29ycmVzcG9uZHMgdG8gdGhhdCBwb3NpdGlvbi5cclxuICAgKi9cclxuICBwcml2YXRlIGNhbGN1bGF0ZVBhZ2VOdW1iZXIoXHJcbiAgICBpOiBudW1iZXIsXHJcbiAgICBjdXJyZW50UGFnZTogbnVtYmVyLFxyXG4gICAgcGFnaW5hdGlvblJhbmdlOiBudW1iZXIsXHJcbiAgICB0b3RhbFBhZ2VzOiBudW1iZXJcclxuICApIHtcclxuICAgIGNvbnN0IGhhbGZXYXkgPSBNYXRoLmNlaWwocGFnaW5hdGlvblJhbmdlIC8gMik7XHJcbiAgICBpZiAoaSA9PT0gcGFnaW5hdGlvblJhbmdlKSB7XHJcbiAgICAgIHJldHVybiB0b3RhbFBhZ2VzO1xyXG4gICAgfSBlbHNlIGlmIChpID09PSAxKSB7XHJcbiAgICAgIHJldHVybiBpO1xyXG4gICAgfSBlbHNlIGlmIChwYWdpbmF0aW9uUmFuZ2UgPCB0b3RhbFBhZ2VzKSB7XHJcbiAgICAgIGlmICh0b3RhbFBhZ2VzIC0gaGFsZldheSA8IGN1cnJlbnRQYWdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRvdGFsUGFnZXMgLSBwYWdpbmF0aW9uUmFuZ2UgKyBpO1xyXG4gICAgICB9IGVsc2UgaWYgKGhhbGZXYXkgPCBjdXJyZW50UGFnZSkge1xyXG4gICAgICAgIHJldHVybiBjdXJyZW50UGFnZSAtIGhhbGZXYXkgKyBpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19

@@ -29,2 +29,2 @@ import { NgModule } from '@angular/core';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uL3Byb2plY3RzL25neC10YWJsZS1wYWdpbmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9wYWdpbmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBZWpELE1BQU0sT0FBTyx3QkFBd0I7OztZQWJwQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNkLG1CQUFtQjtvQkFDbkIsY0FBYztvQkFDZCxtQkFBbUI7aUJBQUM7Z0JBQ3BCLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2dCQUM5QixPQUFPLEVBQUUsQ0FBRyxtQkFBbUI7b0JBQy9CLGNBQWM7b0JBQ2QsbUJBQW1CLENBQUM7YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9wYWdpbmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vcGFnaW5hdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUGFnaW5hdGlvblBpcGUgfSBmcm9tICcuL3BhZ2luYXRpb24ucGlwZSc7XG5leHBvcnQgeyBQYWdpbmF0aW9uSW5zdGFuY2UgfSBmcm9tICcuL3BhZ2luYXRpb24taW5zdGFuY2UnO1xuXG5leHBvcnQge1BhZ2luYXRpb25TZXJ2aWNlfSBmcm9tICcuL3BhZ2luYXRpb24uc2VydmljZSc7XG5leHBvcnQge1BhZ2luYXRpb25Db21wb25lbnR9IGZyb20gJy4vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtQYWdpbmF0aW9uRGlyZWN0aXZlfSBmcm9tICcuL3BhZ2luYXRpb24uZGlyZWN0aXZlJztcbmV4cG9ydCB7UGFnaW5hdGlvblBpcGV9IGZyb20gJy4vcGFnaW5hdGlvbi5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gIFBhZ2luYXRpb25Db21wb25lbnQsXG4gIFBhZ2luYXRpb25QaXBlLFxuICBQYWdpbmF0aW9uRGlyZWN0aXZlXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtQYWdpbmF0aW9uU2VydmljZV0sXG4gIGV4cG9ydHM6IFsgIFBhZ2luYXRpb25Db21wb25lbnQsXG4gIFBhZ2luYXRpb25QaXBlLFxuICBQYWdpbmF0aW9uRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hUYWJsZVBhZ2luYXRpb25Nb2R1bGUgeyB9XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uLXRlc3Rpbmcvbmd4LXRhYmxlLXBhZ2luYXRpb24vcHJvamVjdHMvbmd4LXRhYmxlLXBhZ2luYXRpb24vc3JjLyIsInNvdXJjZXMiOlsibGliL3BhZ2luYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFlakQsTUFBTSxPQUFPLHdCQUF3Qjs7O1lBYnBDLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ2QsbUJBQW1CO29CQUNuQixjQUFjO29CQUNkLG1CQUFtQjtpQkFBQztnQkFDcEIsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFHLG1CQUFtQjtvQkFDL0IsY0FBYztvQkFDZCxtQkFBbUIsQ0FBQzthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuL3BhZ2luYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuL3BhZ2luYXRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvblBpcGUgfSBmcm9tICcuL3BhZ2luYXRpb24ucGlwZSc7XHJcbmV4cG9ydCB7IFBhZ2luYXRpb25JbnN0YW5jZSB9IGZyb20gJy4vcGFnaW5hdGlvbi1pbnN0YW5jZSc7XHJcblxyXG5leHBvcnQge1BhZ2luYXRpb25TZXJ2aWNlfSBmcm9tICcuL3BhZ2luYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCB7UGFnaW5hdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7UGFnaW5hdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9wYWdpbmF0aW9uLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7UGFnaW5hdGlvblBpcGV9IGZyb20gJy4vcGFnaW5hdGlvbi5waXBlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICBQYWdpbmF0aW9uUGlwZSxcclxuICBQYWdpbmF0aW9uRGlyZWN0aXZlXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1BhZ2luYXRpb25TZXJ2aWNlXSxcclxuICBleHBvcnRzOiBbICBQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gIFBhZ2luYXRpb25QaXBlLFxyXG4gIFBhZ2luYXRpb25EaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hUYWJsZVBhZ2luYXRpb25Nb2R1bGUgeyB9XHJcbiJdfQ==

@@ -62,6 +62,12 @@ import { Pipe } from '@angular/core';

const id = config.id != null ? config.id : this.service.defaultId();
const perPage = ((_a = this.service.getInstance(id)) === null || _a === void 0 ? void 0 : _a.itemsPerPage) || 5;
if (config.itemsPerPage) {
if (!((_a = this.service.getInstance(id)) === null || _a === void 0 ? void 0 : _a.itemsPerPage)) {
this.service.setItemsPerPage(id, +config.itemsPerPage);
}
}
const perPage = (config.itemsPerPage && !this.service.getInstance(id).itemsPerPage) ? config.itemsPerPage :
this.service.getInstance(id).itemsPerPage;
return {
id: config.id != null ? config.id : this.service.defaultId(),
itemsPerPage: perPage,
itemsPerPage: +perPage || 5,
currentPage: +config.currentPage || 1,

@@ -122,2 +128,2 @@ totalItems: +config.totalItems || collection.length

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IkM6L0FkcmVuYWxpbmVXUy9kZW1vcy9uZ3gtdGFibGUtcGFnaW5hdGlvbi9wcm9qZWN0cy9uZ3gtdGFibGUtcGFnaW5hdGlvbi9zcmMvIiwic291cmNlcyI6WyJsaWIvcGFnaW5hdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR3ZELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztBQXNCN0MsTUFBTSxPQUFPLGNBQWM7SUFLdkIsWUFBb0IsT0FBMEI7UUFBMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFIOUMsMkRBQTJEO1FBQ25ELFVBQUssR0FBZ0MsRUFBRSxDQUFDO0lBR2hELENBQUM7SUFFTSxTQUFTLENBQTZCLFVBQWEsRUFBRSxJQUFzQjtRQUU5RSxxRUFBcUU7UUFDckUsbUVBQW1FO1FBQ25FLG1FQUFtRTtRQUNuRSxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLENBQUMsVUFBVSxZQUFZLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLENBQUM7YUFDckM7aUJBQU07Z0JBQ0gsT0FBTyxVQUFVLENBQUM7YUFDckI7U0FDSjtRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRWhGLE1BQU0sUUFBUSxHQUFHLElBQUks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QUNkOzs7WUF4Qk8saUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtQYWdpbmF0aW9uU2VydmljZX0gZnJvbSAnLi9wYWdpbmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BhZ2luYXRpb25JbnN0YW5jZX0gZnJvbSAnLi9wYWdpbmF0aW9uLWluc3RhbmNlJztcclxuXHJcbmNvbnN0IExBUkdFX05VTUJFUiA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvbjxUPiA9IFRbXSB8IFJlYWRvbmx5QXJyYXk8VD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlUGlwZUFyZ3Mge1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICAgICAgY3VycmVudFBhZ2U/OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICB0b3RhbEl0ZW1zPzogc3RyaW5nIHwgbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVTdGF0ZSB7XHJcbiAgICBjb2xsZWN0aW9uOiBhbnlbXTtcclxuICAgIHNpemU6IG51bWJlcjtcclxuICAgIHN0YXJ0OiBudW1iZXI7XHJcbiAgICBlbmQ6IG51bWJlcjtcclxuICAgIHNsaWNlOiBhbnlbXTtcclxufVxyXG5cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ3BhZ2luYXRlJyxcclxuICAgIHB1cmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm17XHJcblxyXG4gICAgLy8gc3RvcmUgdGhlIHZhbHVlcyBmcm9tIHRoZSBsYXN0IHRpbWUgdGhlIHBpcGUgd2FzIGludm9rZWRcclxuICAgIHByaXZhdGUgc3RhdGU6IHsgW2lkOiBzdHJpbmddOiBQaXBlU3RhdGUgfSA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogUGFnaW5hdGlvblNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdHJhbnNmb3JtPFQsIFUgZXh0ZW5kcyBDb2xsZWN0aW9uPFQ+Pihjb2xsZWN0aW9uOiBVLCBhcmdzOiBQYWdpbmF0ZVBpcGVBcmdzKTogVSB7XHJcblxyXG4gICAgICAgIC8vIFdoZW4gYW4gb2JzZXJ2YWJsZSBpcyBwYXNzZWQgdGhyb3VnaCB0aGUgQXN5bmNQaXBlLCBpdCB3aWxsIG91dHB1dFxyXG4gICAgICAgIC8vIGBudWxsYCB1bnRpbCB0aGUgc3Vic2NyaXB0aW9uIHJlc29sdmVzLiBJbiB0aGlzIGNhc2UsIHdlIHdhbnQgdG9cclxuICAgICAgICAvLyB1c2UgdGhlIGNhY2hlZCBkYXRhIGZyb20gdGhlIGBzdGF0ZWAgb2JqZWN0IHRvIHByZXZlbnQgdGhlIE5nRm9yXHJcbiAgICAgICAgLy8gZnJvbSBmbGFzaGluZyBlbXB0eSB1bnRpbCB0aGUgcmVhbCB2YWx1ZXMgYXJyaXZlLlxyXG4gICAgICAgIGlmICghKGNvbGxlY3Rpb24gaW5zdGFuY2VvZiBBcnJheSkpIHtcclxuICAgICAgICAgICAgY29uc3QgX2lkID0gYXJncy5pZCB8fCB0aGlzLnNlcnZpY2UuZGVmYXVsdElkKCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlW19pZF0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXRlW19pZF0uc2xpY2UgYXMgVTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzZXJ2ZXJTaWRlTW9kZSA9IGFyZ3MudG90YWxJdGVtcyAmJiBhcmdzLnRvdGFsSXRlbXMgIT09IGNvbGxlY3Rpb24ubGVuZ3RoO1xyXG5cclxuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY3JlYXRlSW5zdGFuY2UoY29sbGVjdGlvbiwgYXJncyk7XHJcbiAgICAgICAgY29uc3QgaWQgPSBpbnN0YW5jZS5pZDtcclxuICAgICAgICBsZXQgc3RhcnQsIGVuZDtcclxuICAgICAgICBsZXQgcGVyUGFnZSA9IGluc3RhbmNlLml0ZW1zUGVyUGFnZTtcclxuXHJcbiAgICAgICAgY29uc3QgZW1pdENoYW5nZSA9IHRoaXMuc2VydmljZS5yZWdpc3RlcihpbnN0YW5jZSk7XHJcblxyXG4gICAgICAgIGlmICghc2VydmVyU2lkZU1vZGUgJiYgY29sbGVjdGlvbiBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgIHBlclBhZ2UgPSArcGVyUGFnZSB8fCBMQVJHRV9OVU1CRVI7XHJcbiAgICAgICAgICAgIHN0YXJ0ID0gKGluc3RhbmNlLmN1cnJlbnRQYWdlIC0gMSkgKiBwZXJQYWdlO1xyXG4gICAgICAgICAgICBlbmQgPSBzdGFydCArIHBlclBhZ2U7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpc0lkZW50aWNhbCA9IHRoaXMuc3RhdGVJc0lkZW50aWNhbChpZCwgY29sbGVjdGlvbiwgc3RhcnQsIGVuZCk7XHJcbiAgICAgICAgICAgIGlmIChpc0lkZW50aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVbaWRdLnNsaWNlIGFzIFU7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzbGljZSA9IGNvbGxlY3Rpb24uc2xpY2Uoc3RhcnQsIGVuZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmVTdGF0ZShpZCwgY29sbGVjdGlvbiwgc2xpY2UsIHN0YXJ0LCBlbmQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNoYW5nZS5lbWl0KGlkKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzbGljZSBhcyBVO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGVtaXRDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5jaGFuZ2UuZW1pdChpZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIHNhdmUgdGhlIHN0YXRlIGZvciBzZXJ2ZXItc2lkZSBjb2xsZWN0aW9uIHRvIGF2b2lkIG51bGxcclxuICAgICAgICAgICAgLy8gZmxhc2ggYXMgbmV3IGRhdGEgbG9hZHMuXHJcbiAgICAgICAgICAgIHRoaXMuc2F2ZVN0YXRlKGlkLCBjb2xsZWN0aW9uLCBjb2xsZWN0aW9uLCBzdGFydCwgZW5kKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZSBhbiBQYWdpbmF0aW9uSW5zdGFuY2Ugb2JqZWN0LCB1c2luZyBkZWZhdWx0cyBmb3IgYW55IG9wdGlvbmFsIHByb3BlcnRpZXMgbm90IHN1cHBsaWVkLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZUluc3RhbmNlKGNvbGxlY3Rpb246IGFueVtdLCBjb25maWc6IFBhZ2luYXRlUGlwZUFyZ3MpOiBQYWdpbmF0aW9uSW5zdGFuY2Uge1xyXG4gICAgICB0aGlzLmNoZWNrQ29uZmlnKGNvbmZpZyk7XHJcbiAgICAgIGNvbnN0IGlkID0gY29uZmlnLmlkICE9IG51bGwgPyBjb25maWcuaWQgOiB0aGlzLnNlcnZpY2UuZGVmYXVsdElkKCk7XHJcbiAgICAgIGNvbnN0IHBlclBhZ2UgPSB0aGlzLnNlcnZpY2UuZ2V0SW5zdGFuY2UoaWQpPy5pdGVtc1BlclBhZ2UgfHwgNSA7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpZDogY29uZmlnLmlkICE9IG51bGwgPyBjb25maWcuaWQgOiB0aGlzLnNlcnZpY2UuZGVmYXVsdElkKCksXHJcbiAgICAgICAgICBpdGVtc1BlclBhZ2U6IHBlclBhZ2UgLFxyXG4gICAgICAgICAgY3VycmVudFBhZ2U6ICtjb25maWcuY3VycmVudFBhZ2UgfHwgMSxcclxuICAgICAgICAgIHRvdGFsSXRlbXM6ICtjb25maWcudG90YWxJdGVtcyB8fCBjb2xsZWN0aW9uLmxlbmd0aFxyXG4gICAgICAgIH07XHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuc3VyZSB0aGUgYXJndW1lbnQgcGFzc2VkIHRvIHRoZSBmaWx0ZXIgY29udGFpbnMgdGhlIHJlcXVpcmVkIHByb3BlcnRpZXMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2hlY2tDb25maWcoY29uZmlnOiBQYWdpbmF0ZVBpcGVBcmdzKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcmVxdWlyZWQgPSBbICdjdXJyZW50UGFnZSddO1xyXG5cclxuICAgICAgICBjb25zdCBtaXNzaW5nID0gcmVxdWlyZWQuZmlsdGVyKHByb3AgPT4gIShwcm9wIGluIGNvbmZpZykpO1xyXG4gICAgICAgIGlmICgwIDwgbWlzc2luZy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYWdpbmF0ZVBpcGU6IEFyZ3VtZW50IGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyByZXF1aXJlZCBwcm9wZXJ0aWVzOiAke21pc3Npbmcuam9pbignLCAnKX1gKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUbyBhdm9pZCByZXR1cm5pbmcgYSBicmFuZCBuZXcgYXJyYXkgZWFjaCB0aW1lIHRoZSBwaXBlIGlzIHJ1biwgd2Ugc3RvcmUgdGhlIHN0YXRlIG9mIHRoZSBzbGljZWRcclxuICAgICAqIGFycmF5IGZvciBhIGdpdmVuIGlkLiBUaGlzIG1lYW5zIHRoYXQgdGhlIG5leHQgdGltZSB0aGUgcGlwZSBpcyBydW4gb24gdGhpcyBjb2xsZWN0aW9uICYgaWQsIHdlIGp1c3RcclxuICAgICAqIG5lZWQgdG8gY2hlY2sgdGhhdCB0aGUgY29sbGVjdGlvbiwgc3RhcnQgYW5kIGVuZCBwb2ludHMgYXJlIGFsbCBpZGVudGljYWwsIGFuZCBpZiBzbywgcmV0dXJuIHRoZVxyXG4gICAgICogbGFzdCBzbGljZWQgYXJyYXkuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2F2ZVN0YXRlKGlkOiBzdHJpbmcsIGNvbGxlY3Rpb246IGFueVtdLCBzbGljZTogYW55W10sIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZVtpZF0gPSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXHJcbiAgICAgICAgICAgIHNpemU6IGNvbGxlY3Rpb24ubGVuZ3RoLFxyXG4gICAgICAgICAgICBzbGljZSxcclxuICAgICAgICAgICAgc3RhcnQsXHJcbiAgICAgICAgICAgIGVuZFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3IgYSBnaXZlbiBpZCwgcmV0dXJucyB0cnVlIGlmIHRoZSBjb2xsZWN0aW9uLCBzaXplLCBzdGFydCBhbmQgZW5kIHZhbHVlcyBhcmUgaWRlbnRpY2FsLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRlSXNJZGVudGljYWwoaWQ6IHN0cmluZywgY29sbGVjdGlvbjogYW55W10sIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlW2lkXTtcclxuICAgICAgICBpZiAoIXN0YXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaXNNZXRhRGF0YUlkZW50aWNhbCA9IHN0YXRlLnNpemUgPT09IGNvbGxlY3Rpb24ubGVuZ3RoICYmXHJcbiAgICAgICAgICAgIHN0YXRlLnN0YXJ0ID09PSBzdGFydCAmJlxyXG4gICAgICAgICAgICBzdGF0ZS5lbmQgPT09IGVuZDtcclxuXHJcbiAgICAgICAgaWYgKCFpc01ldGFEYXRhSWRlbnRpY2FsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzdGF0ZS5zbGljZS5ldmVyeSgoZWxlbWVudCwgaW5kZXgpID0+IGVsZW1lbnQgPT09IGNvbGxlY3Rpb25bc3RhcnQgKyBpbmRleF0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IkM6L0FkcmVuYWxpbmVXUy9kZW1vcy9uZ3gtdGFibGUtcGFnaW5hdGlvbi10ZXN0aW5nL25neC10YWJsZS1wYWdpbmF0aW9uL3Byb2plY3RzL25neC10YWJsZS1wYWdpbmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9wYWdpbmF0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHdkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO0FBdUI3QyxNQUFNLE9BQU8sY0FBYztJQUt2QixZQUFvQixPQUEwQjtRQUExQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUg5QywyREFBMkQ7UUFDbkQsVUFBSyxHQUFnQyxFQUFFLENBQUM7SUFHaEQsQ0FBQztJQUVNLFNBQVMsQ0FBNkIsVUFBYSxFQUFFLElBQXNCO1FBRTlFLHFFQUFxRTtRQUNyRSxtRUFBbUU7UUFDbkUsbUVBQW1FO1FBQ25FLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsQ0FBQyxVQUFVLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsQ0FBQzthQUNyQztpQkFBTTtnQkFDSCxPQUFPLFVBQVUsQ0FBQzthQUNyQjtTQUNKO1FBRUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLENB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QUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxNQUFNO1lBQ3hELEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSztZQUNyQixLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQztRQUV0QixJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDdEIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDOzs7WUFySUosSUFBSSxTQUFDO2dCQUNGLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsS0FBSzthQUNkOzs7WUF6Qk8saUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtQYWdpbmF0aW9uU2VydmljZX0gZnJvbSAnLi9wYWdpbmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BhZ2luYXRpb25JbnN0YW5jZX0gZnJvbSAnLi9wYWdpbmF0aW9uLWluc3RhbmNlJztcclxuXHJcbmNvbnN0IExBUkdFX05VTUJFUiA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvbjxUPiA9IFRbXSB8IFJlYWRvbmx5QXJyYXk8VD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlUGlwZUFyZ3Mge1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIGl0ZW1zUGVyUGFnZT86IHN0cmluZyB8IG51bWJlcjtcclxuICAgICAgICBjdXJyZW50UGFnZT86IHN0cmluZyB8IG51bWJlcjtcclxuICAgIHRvdGFsSXRlbXM/OiBzdHJpbmcgfCBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGlwZVN0YXRlIHtcclxuICAgIGNvbGxlY3Rpb246IGFueVtdO1xyXG4gICAgc2l6ZTogbnVtYmVyO1xyXG4gICAgc3RhcnQ6IG51bWJlcjtcclxuICAgIGVuZDogbnVtYmVyO1xyXG4gICAgc2xpY2U6IGFueVtdO1xyXG59XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAncGFnaW5hdGUnLFxyXG4gICAgcHVyZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybXtcclxuXHJcbiAgICAvLyBzdG9yZSB0aGUgdmFsdWVzIGZyb20gdGhlIGxhc3QgdGltZSB0aGUgcGlwZSB3YXMgaW52b2tlZFxyXG4gICAgcHJpdmF0ZSBzdGF0ZTogeyBbaWQ6IHN0cmluZ106IFBpcGVTdGF0ZSB9ID0ge307XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBQYWdpbmF0aW9uU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0cmFuc2Zvcm08VCwgVSBleHRlbmRzIENvbGxlY3Rpb248VD4+KGNvbGxlY3Rpb246IFUsIGFyZ3M6IFBhZ2luYXRlUGlwZUFyZ3MpOiBVIHtcclxuXHJcbiAgICAgICAgLy8gV2hlbiBhbiBvYnNlcnZhYmxlIGlzIHBhc3NlZCB0aHJvdWdoIHRoZSBBc3luY1BpcGUsIGl0IHdpbGwgb3V0cHV0XHJcbiAgICAgICAgLy8gYG51bGxgIHVudGlsIHRoZSBzdWJzY3JpcHRpb24gcmVzb2x2ZXMuIEluIHRoaXMgY2FzZSwgd2Ugd2FudCB0b1xyXG4gICAgICAgIC8vIHVzZSB0aGUgY2FjaGVkIGRhdGEgZnJvbSB0aGUgYHN0YXRlYCBvYmplY3QgdG8gcHJldmVudCB0aGUgTmdGb3JcclxuICAgICAgICAvLyBmcm9tIGZsYXNoaW5nIGVtcHR5IHVudGlsIHRoZSByZWFsIHZhbHVlcyBhcnJpdmUuXHJcbiAgICAgICAgaWYgKCEoY29sbGVjdGlvbiBpbnN0YW5jZW9mIEFycmF5KSkge1xyXG4gICAgICAgICAgICBjb25zdCBfaWQgPSBhcmdzLmlkIHx8IHRoaXMuc2VydmljZS5kZWZhdWx0SWQoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGVbX2lkXSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVbX2lkXS5zbGljZSBhcyBVO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNlcnZlclNpZGVNb2RlID0gYXJncy50b3RhbEl0ZW1zICYmIGFyZ3MudG90YWxJdGVtcyAhPT0gY29sbGVjdGlvbi5sZW5ndGg7XHJcblxyXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jcmVhdGVJbnN0YW5jZShjb2xsZWN0aW9uLCBhcmdzKTtcclxuICAgICAgICBjb25zdCBpZCA9IGluc3RhbmNlLmlkO1xyXG4gICAgICAgIGxldCBzdGFydCwgZW5kO1xyXG4gICAgICAgIGxldCBwZXJQYWdlID0gaW5zdGFuY2UuaXRlbXNQZXJQYWdlO1xyXG5cclxuICAgICAgICBjb25zdCBlbWl0Q2hhbmdlID0gdGhpcy5zZXJ2aWNlLnJlZ2lzdGVyKGluc3RhbmNlKTtcclxuXHJcbiAgICAgICAgaWYgKCFzZXJ2ZXJTaWRlTW9kZSAmJiBjb2xsZWN0aW9uIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgcGVyUGFnZSA9ICtwZXJQYWdlIHx8IExBUkdFX05VTUJFUjtcclxuICAgICAgICAgICAgc3RhcnQgPSAoaW5zdGFuY2UuY3VycmVudFBhZ2UgLSAxKSAqIHBlclBhZ2U7XHJcbiAgICAgICAgICAgIGVuZCA9IHN0YXJ0ICsgcGVyUGFnZTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGlzSWRlbnRpY2FsID0gdGhpcy5zdGF0ZUlzSWRlbnRpY2FsKGlkLCBjb2xsZWN0aW9uLCBzdGFydCwgZW5kKTtcclxuICAgICAgICAgICAgaWYgKGlzSWRlbnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZVtpZF0uc2xpY2UgYXMgVTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNsaWNlID0gY29sbGVjdGlvbi5zbGljZShzdGFydCwgZW5kKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVN0YXRlKGlkLCBjb2xsZWN0aW9uLCBzbGljZSwgc3RhcnQsIGVuZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuY2hhbmdlLmVtaXQoaWQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNsaWNlIGFzIFU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoZW1pdENoYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNoYW5nZS5lbWl0KGlkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gc2F2ZSB0aGUgc3RhdGUgZm9yIHNlcnZlci1zaWRlIGNvbGxlY3Rpb24gdG8gYXZvaWQgbnVsbFxyXG4gICAgICAgICAgICAvLyBmbGFzaCBhcyBuZXcgZGF0YSBsb2Fkcy5cclxuICAgICAgICAgICAgdGhpcy5zYXZlU3RhdGUoaWQsIGNvbGxlY3Rpb24sIGNvbGxlY3Rpb24sIHN0YXJ0LCBlbmQpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGFuIFBhZ2luYXRpb25JbnN0YW5jZSBvYmplY3QsIHVzaW5nIGRlZmF1bHRzIGZvciBhbnkgb3B0aW9uYWwgcHJvcGVydGllcyBub3Qgc3VwcGxpZWQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY3JlYXRlSW5zdGFuY2UoY29sbGVjdGlvbjogYW55W10sIGNvbmZpZzogUGFnaW5hdGVQaXBlQXJncyk6IFBhZ2luYXRpb25JbnN0YW5jZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tDb25maWcoY29uZmlnKTtcclxuICAgICAgY29uc3QgaWQgPSBjb25maWcuaWQgIT0gbnVsbCA/IGNvbmZpZy5pZCA6IHRoaXMuc2VydmljZS5kZWZhdWx0SWQoKTtcclxuICAgICAgaWYgKGNvbmZpZy5pdGVtc1BlclBhZ2UpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VydmljZS5nZXRJbnN0YW5jZShpZCk/Lml0ZW1zUGVyUGFnZSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0SXRlbXNQZXJQYWdlKGlkLCArY29uZmlnLml0ZW1zUGVyUGFnZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgcGVyUGFnZSA9IChjb25maWcuaXRlbXNQZXJQYWdlICYmICF0aGlzLnNlcnZpY2UuZ2V0SW5zdGFuY2UoaWQpLml0ZW1zUGVyUGFnZSkgPyBjb25maWcuaXRlbXNQZXJQYWdlIDpcclxuICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0SW5zdGFuY2UoaWQpLml0ZW1zUGVyUGFnZTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGlkOiBjb25maWcuaWQgIT0gbnVsbCA/IGNvbmZpZy5pZCA6IHRoaXMuc2VydmljZS5kZWZhdWx0SWQoKSxcclxuICAgICAgICAgIGl0ZW1zUGVyUGFnZTogK3BlclBhZ2UgfHwgNSxcclxuICAgICAgICAgIGN1cnJlbnRQYWdlOiArY29uZmlnLmN1cnJlbnRQYWdlIHx8IDEsXHJcbiAgICAgICAgICB0b3RhbEl0ZW1zOiArY29uZmlnLnRvdGFsSXRlbXMgfHwgY29sbGVjdGlvbi5sZW5ndGhcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbnN1cmUgdGhlIGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgZmlsdGVyIGNvbnRhaW5zIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNoZWNrQ29uZmlnKGNvbmZpZzogUGFnaW5hdGVQaXBlQXJncyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkID0gWyAnY3VycmVudFBhZ2UnXTtcclxuXHJcbiAgICAgICAgY29uc3QgbWlzc2luZyA9IHJlcXVpcmVkLmZpbHRlcihwcm9wID0+ICEocHJvcCBpbiBjb25maWcpKTtcclxuICAgICAgICBpZiAoMCA8IG1pc3NpbmcubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFnaW5hdGVQaXBlOiBBcmd1bWVudCBpcyBtaXNzaW5nIHRoZSBmb2xsb3dpbmcgcmVxdWlyZWQgcHJvcGVydGllczogJHttaXNzaW5nLmpvaW4oJywgJyl9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVG8gYXZvaWQgcmV0dXJuaW5nIGEgYnJhbmQgbmV3IGFycmF5IGVhY2ggdGltZSB0aGUgcGlwZSBpcyBydW4sIHdlIHN0b3JlIHRoZSBzdGF0ZSBvZiB0aGUgc2xpY2VkXHJcbiAgICAgKiBhcnJheSBmb3IgYSBnaXZlbiBpZC4gVGhpcyBtZWFucyB0aGF0IHRoZSBuZXh0IHRpbWUgdGhlIHBpcGUgaXMgcnVuIG9uIHRoaXMgY29sbGVjdGlvbiAmIGlkLCB3ZSBqdXN0XHJcbiAgICAgKiBuZWVkIHRvIGNoZWNrIHRoYXQgdGhlIGNvbGxlY3Rpb24sIHN0YXJ0IGFuZCBlbmQgcG9pbnRzIGFyZSBhbGwgaWRlbnRpY2FsLCBhbmQgaWYgc28sIHJldHVybiB0aGVcclxuICAgICAqIGxhc3Qgc2xpY2VkIGFycmF5LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNhdmVTdGF0ZShpZDogc3RyaW5nLCBjb2xsZWN0aW9uOiBhbnlbXSwgc2xpY2U6IGFueVtdLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc3RhdGVbaWRdID0ge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uLFxyXG4gICAgICAgICAgICBzaXplOiBjb2xsZWN0aW9uLmxlbmd0aCxcclxuICAgICAgICAgICAgc2xpY2UsXHJcbiAgICAgICAgICAgIHN0YXJ0LFxyXG4gICAgICAgICAgICBlbmRcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9yIGEgZ2l2ZW4gaWQsIHJldHVybnMgdHJ1ZSBpZiB0aGUgY29sbGVjdGlvbiwgc2l6ZSwgc3RhcnQgYW5kIGVuZCB2YWx1ZXMgYXJlIGlkZW50aWNhbC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0ZUlzSWRlbnRpY2FsKGlkOiBzdHJpbmcsIGNvbGxlY3Rpb246IGFueVtdLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVtpZF07XHJcbiAgICAgICAgaWYgKCFzdGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGlzTWV0YURhdGFJZGVudGljYWwgPSBzdGF0ZS5zaXplID09PSBjb2xsZWN0aW9uLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICBzdGF0ZS5zdGFydCA9PT0gc3RhcnQgJiZcclxuICAgICAgICAgICAgc3RhdGUuZW5kID09PSBlbmQ7XHJcblxyXG4gICAgICAgIGlmICghaXNNZXRhRGF0YUlkZW50aWNhbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gc3RhdGUuc2xpY2UuZXZlcnkoKGVsZW1lbnQsIGluZGV4KSA9PiBlbGVtZW50ID09PSBjb2xsZWN0aW9uW3N0YXJ0ICsgaW5kZXhdKTtcclxuICAgIH1cclxufVxyXG4iXX0=

@@ -102,2 +102,2 @@ import { EventEmitter } from '@angular/core';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L0FkcmVuYWxpbmVXUy9kZW1vcy9uZ3gtdGFibGUtcGFnaW5hdGlvbi9wcm9qZWN0cy9uZ3gtdGFibGUtcGFnaW5hdGlvbi9zcmMvIiwic291cmNlcyI6WyJsaWIvcGFnaW5hdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUE7QUFHMUMsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUVXLFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV6RCxjQUFTLEdBQXlDLEVBQUUsQ0FBQztRQUNyRCxlQUFVLEdBQUcsdUJBQXVCLENBQUM7SUF3R2pELENBQUM7SUF0R1UsU0FBUyxLQUFhLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxRQUE0QjtRQUN4QyxJQUFJLFFBQVEsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUM7U0FDZjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGNBQWMsQ0FBQyxRQUE0QjtRQUMvQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMxQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuRCxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ2xCO1NBQ0o7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjLENBQUMsRUFBVTtRQUM1QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxFQUFVLEVBQUUsSUFBWTtRQUMxQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3JFLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhLENBQUMsRUFBVSxFQUFFLFVBQWtCO1FBQy9DLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWUsQ0FBQyxFQUFVLEVBQUUsWUFBb0I7UUFDbkQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsS0FBYSxJQUFJLENBQUMsVUFBVTtRQUMzQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sRUFBd0IsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMsR0FBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUU7WUFDakIsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RCO1NBQ0o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtQYWdpbmF0aW9uSW5zdGFuY2V9IGZyb20gJy4vcGFnaW5hdGlvbi1pbnN0YW5jZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblNlcnZpY2Uge1xyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBpbnN0YW5jZXM6IHsgW2lkOiBzdHJpbmddOiBQYWdpbmF0aW9uSW5zdGFuY2UgfSA9IHt9O1xyXG4gICAgcHJpdmF0ZSBERUZBVUxUX0lEID0gJ0RFRkFVTFRfUEFHSU5BVElPTl9JRCc7XHJcblxyXG4gICAgcHVibGljIGRlZmF1bHRJZCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5ERUZBVUxUX0lEIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVyIGEgUGFnaW5hdGlvbkluc3RhbmNlIHdpdGggdGhpcyBzZXJ2aWNlLiBSZXR1cm5zIGFcclxuICAgICAqIGJvb2xlYW4gdmFsdWUgc2lnbmlmeWluZyB3aGV0aGVyIHRoZSBpbnN0YW5jZSBpcyBuZXcgb3JcclxuICAgICAqIHVwZGF0ZWQgKHRydWUgPSBuZXcgb3IgdXBkYXRlZCwgZmFsc2UgPSB1bmNoYW5nZWQpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXIoaW5zdGFuY2U6IFBhZ2luYXRpb25JbnN0YW5jZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChpbnN0YW5jZS5pZCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGluc3RhbmNlLmlkID0gdGhpcy5ERUZBVUxUX0lEO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlc1tpbnN0YW5jZS5pZF0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZXNbaW5zdGFuY2UuaWRdID0gaW5zdGFuY2U7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBlYWNoIHByb3BlcnR5IG9mIHRoZSBpbnN0YW5jZSBhbmQgdXBkYXRlIGFueSB0aGF0IGhhdmUgY2hhbmdlZC4gUmV0dXJuXHJcbiAgICAgKiB0cnVlIGlmIGFueSBjaGFuZ2VzIHdlcmUgbWFkZSwgZWxzZSByZXR1cm4gZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlSW5zdGFuY2UoaW5zdGFuY2U6IFBhZ2luYXRpb25JbnN0YW5jZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XHJcbiAgICAgICAgZm9yIChsZXQgcHJvcCBpbiB0aGlzLmluc3RhbmNlc1tpbnN0YW5jZS5pZF0pIHtcclxuICAgICAgICAgICAgaWYgKGluc3RhbmNlW3Byb3BdICE9PSB0aGlzLmluc3RhbmNlc1tpbnN0YW5jZS5pZF1bcHJvcF0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VzW2luc3RhbmNlLmlkXVtwcm9wXSA9IGluc3RhbmNlW3Byb3BdO1xyXG4gICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNoYW5nZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0Q3VycmVudFBhZ2UoaWQ6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2VzW2lkXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZXNbaWRdLmN1cnJlbnRQYWdlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRDdXJyZW50UGFnZShpZDogc3RyaW5nLCBwYWdlOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZXNbaWRdKSB7XHJcbiAgICAgICAgICAgIGxldCBpbnN0YW5jZSA9IHRoaXMuaW5zdGFuY2VzW2lkXTtcclxuICAgICAgICAgICAgbGV0IG1heFBhZ2UgPSBNYXRoLmNlaWwoaW5zdGFuY2UudG90YWxJdGVtcyAvIGluc3RhbmNlLml0ZW1zUGVyUGFnZSk7XHJcbiAgICAgICAgICAgIGlmIChwYWdlIDw9IG1heFBhZ2UgJiYgMSA8PSBwYWdlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlc1tpZF0uY3VycmVudFBhZ2UgPSBwYWdlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdChpZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiBpbnN0YW5jZS50b3RhbEl0ZW1zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRUb3RhbEl0ZW1zKGlkOiBzdHJpbmcsIHRvdGFsSXRlbXM6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlc1tpZF0gJiYgMCA8PSB0b3RhbEl0ZW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VzW2lkXS50b3RhbEl0ZW1zID0gdG90YWxJdGVtcztcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdChpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmFsdWUgb2YgaW5zdGFuY2UuaXRlbXNQZXJQYWdlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0SXRlbXNQZXJQYWdlKGlkOiBzdHJpbmcsIGl0ZW1zUGVyUGFnZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2VzW2lkXSkge1xyXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlc1tpZF0uaXRlbXNQZXJQYWdlID0gaXRlbXNQZXJQYWdlO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGlkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgY2xvbmUgb2YgdGhlIHBhZ2luYXRpb24gaW5zdGFuY2Ugb2JqZWN0IG1hdGNoaW5nIHRoZSBpZC4gSWYgbm9cclxuICAgICAqIGlkIHNwZWNpZmllZCwgcmV0dXJucyB0aGUgaW5zdGFuY2UgY29ycmVzcG9uZGluZyB0byB0aGUgZGVmYXVsdCBpZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEluc3RhbmNlKGlkOiBzdHJpbmcgPSB0aGlzLkRFRkFVTFRfSUQpOiBQYWdpbmF0aW9uSW5zdGFuY2Uge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlc1tpZF0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUodGhpcy5pbnN0YW5jZXNbaWRdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHt9IGFzIFBhZ2luYXRpb25JbnN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm0gYSBzaGFsbG93IGNsb25lIG9mIGFuIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjbG9uZShvYmo6IGFueSk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0ge307XHJcbiAgICAgICAgZm9yIChjb25zdCBpIGluIG9iaikge1xyXG4gICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXRbaV0gPSBvYmpbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRhcmdldDtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L0FkcmVuYWxpbmVXUy9kZW1vcy9uZ3gtdGFibGUtcGFnaW5hdGlvbi10ZXN0aW5nL25neC10YWJsZS1wYWdpbmF0aW9uL3Byb2plY3RzL25neC10YWJsZS1wYWdpbmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9wYWdpbmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQTtBQUcxQyxNQUFNLE9BQU8saUJBQWlCO0lBQTlCO1FBRVcsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXpELGNBQVMsR0FBeUMsRUFBRSxDQUFDO1FBQ3JELGVBQVUsR0FBRyx1QkFBdUIsQ0FBQztJQXdHakQsQ0FBQztJQXRHVSxTQUFTLEtBQWEsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBLENBQUMsQ0FBQztJQUVyRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLFFBQTRCO1FBQ3hDLElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDckIsUUFBUSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztZQUN2QyxPQUFPLElBQUksQ0FBQztTQUNmO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssY0FBYyxDQUFDLFFBQTRCO1FBQy9DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENB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YW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1BhZ2luYXRpb25JbnN0YW5jZX0gZnJvbSAnLi9wYWdpbmF0aW9uLWluc3RhbmNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uU2VydmljZSB7XHJcblxyXG4gICAgcHVibGljIGNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICBwcml2YXRlIGluc3RhbmNlczogeyBbaWQ6IHN0cmluZ106IFBhZ2luYXRpb25JbnN0YW5jZSB9ID0ge307XHJcbiAgICBwcml2YXRlIERFRkFVTFRfSUQgPSAnREVGQVVMVF9QQUdJTkFUSU9OX0lEJztcclxuXHJcbiAgICBwdWJsaWMgZGVmYXVsdElkKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLkRFRkFVTFRfSUQgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVnaXN0ZXIgYSBQYWdpbmF0aW9uSW5zdGFuY2Ugd2l0aCB0aGlzIHNlcnZpY2UuIFJldHVybnMgYVxyXG4gICAgICogYm9vbGVhbiB2YWx1ZSBzaWduaWZ5aW5nIHdoZXRoZXIgdGhlIGluc3RhbmNlIGlzIG5ldyBvclxyXG4gICAgICogdXBkYXRlZCAodHJ1ZSA9IG5ldyBvciB1cGRhdGVkLCBmYWxzZSA9IHVuY2hhbmdlZCkuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3RlcihpbnN0YW5jZTogUGFnaW5hdGlvbkluc3RhbmNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKGluc3RhbmNlLmlkID09IG51bGwpIHtcclxuICAgICAgICAgICAgaW5zdGFuY2UuaWQgPSB0aGlzLkRFRkFVTFRfSUQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2VzW2luc3RhbmNlLmlkXSkge1xyXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlc1tpbnN0YW5jZS5pZF0gPSBpbnN0YW5jZTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlSW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrIGVhY2ggcHJvcGVydHkgb2YgdGhlIGluc3RhbmNlIGFuZCB1cGRhdGUgYW55IHRoYXQgaGF2ZSBjaGFuZ2VkLiBSZXR1cm5cclxuICAgICAqIHRydWUgaWYgYW55IGNoYW5nZXMgd2VyZSBtYWRlLCBlbHNlIHJldHVybiBmYWxzZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVJbnN0YW5jZShpbnN0YW5jZTogUGFnaW5hdGlvbkluc3RhbmNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBwcm9wIGluIHRoaXMuaW5zdGFuY2VzW2luc3RhbmNlLmlkXSkge1xyXG4gICAgICAgICAgICBpZiAoaW5zdGFuY2VbcHJvcF0gIT09IHRoaXMuaW5zdGFuY2VzW2luc3RhbmNlLmlkXVtwcm9wXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZXNbaW5zdGFuY2UuaWRdW3Byb3BdID0gaW5zdGFuY2VbcHJvcF07XHJcbiAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2hhbmdlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRDdXJyZW50UGFnZShpZDogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZXNbaWRdKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlc1tpZF0uY3VycmVudFBhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgY3VycmVudCBwYWdlIG51bWJlci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldEN1cnJlbnRQYWdlKGlkOiBzdHJpbmcsIHBhZ2U6IG51bWJlcikge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlc1tpZF0pIHtcclxuICAgICAgICAgICAgbGV0IGluc3RhbmNlID0gdGhpcy5pbnN0YW5jZXNbaWRdO1xyXG4gICAgICAgICAgICBsZXQgbWF4UGFnZSA9IE1hdGguY2VpbChpbnN0YW5jZS50b3RhbEl0ZW1zIC8gaW5zdGFuY2UuaXRlbXNQZXJQYWdlKTtcclxuICAgICAgICAgICAgaWYgKHBhZ2UgPD0gbWF4UGFnZSAmJiAxIDw9IHBhZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VzW2lkXS5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHZhbHVlIG9mIGluc3RhbmNlLnRvdGFsSXRlbXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFRvdGFsSXRlbXMoaWQ6IHN0cmluZywgdG90YWxJdGVtczogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2VzW2lkXSAmJiAwIDw9IHRvdGFsSXRlbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZXNbaWRdLnRvdGFsSXRlbXMgPSB0b3RhbEl0ZW1zO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGlkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiBpbnN0YW5jZS5pdGVtc1BlclBhZ2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRJdGVtc1BlclBhZ2UoaWQ6IHN0cmluZywgaXRlbXNQZXJQYWdlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZXNbaWRdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VzW2lkXS5pdGVtc1BlclBhZ2UgPSBpdGVtc1BlclBhZ2U7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoaWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSBjbG9uZSBvZiB0aGUgcGFnaW5hdGlvbiBpbnN0YW5jZSBvYmplY3QgbWF0Y2hpbmcgdGhlIGlkLiBJZiBub1xyXG4gICAgICogaWQgc3BlY2lmaWVkLCByZXR1cm5zIHRoZSBpbnN0YW5jZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBkZWZhdWx0IGlkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0SW5zdGFuY2UoaWQ6IHN0cmluZyA9IHRoaXMuREVGQVVMVF9JRCk6IFBhZ2luYXRpb25JbnN0YW5jZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2VzW2lkXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSh0aGlzLmluc3RhbmNlc1tpZF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge30gYXMgUGFnaW5hdGlvbkluc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybSBhIHNoYWxsb3cgY2xvbmUgb2YgYW4gb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNsb25lKG9iajogYW55KTogYW55IHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSB7fTtcclxuICAgICAgICBmb3IgKGNvbnN0IGkgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaSkpIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldFtpXSA9IG9ialtpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=

@@ -233,2 +233,2 @@ /**

`;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uL3Byb2plY3RzL25neC10YWJsZS1wYWdpbmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi90ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNEczQixDQUFDO0FBRU4sTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0gzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFRoZSBkZWZhdWx0IHRlbXBsYXRlIGFuZCBzdHlsZXMgZm9yIHRoZSBwYWdpbmF0aW9uIGxpbmtzIGFyZSBib3Jyb3dlZCBkaXJlY3RseVxyXG4gKiBmcm9tIFp1cmIgRm91bmRhdGlvbiA2OiBodHRwOi8vZm91bmRhdGlvbi56dXJiLmNvbS9zaXRlcy9kb2NzL3BhZ2luYXRpb24uaHRtbFxyXG4gKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFTVBMQVRFID0gYFxyXG48cGFnaW5hdGlvbi10ZW1wbGF0ZVxyXG4gICNwPVwicGFnaW5hdGlvbkFwaVwiXHJcbiAgW2lkXT1cImlkXCJcclxuICBbbWF4U2l6ZV09XCJtYXhTaXplXCJcclxuICAocGFnZUNoYW5nZSk9XCJwYWdlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgKHBhZ2VCb3VuZHNDb3JyZWN0aW9uKT1cInBhZ2VCb3VuZHNDb3JyZWN0aW9uLmVtaXQoJGV2ZW50KVwiXHJcbj5cclxuICA8ZGl2ICpuZ0lmPVwiIShhdXRvSGlkZSAmJiBwLnBhZ2VzLmxlbmd0aCA8PSAxKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIml0ZW1zLW51bWJlclwiICpuZ0lmPVwiaXNJdGVtc1BlclBhZ2VcIj5cclxuICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCIgY2xhc3M9XCJwYWdpbmF0aW9uLWZvbnRcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJzaG93LWxhYmVsXCI+U2hvdzwvbGFiZWw+XHJcbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cIm5vLXBhZGRpbmcgcGFnaW5hdGlvbi1mb250XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwicC5pdGVtc1BlclBhZ2VcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJwLnBhZ2VTaXplQ2hhbmdlZCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZVNpemVEZWZhdWx0IG9mIHAucGFnZVNpemVzXCJcclxuICAgICAgICAgICAgdmFsdWU9XCJ7eyBwYWdlU2l6ZURlZmF1bHQgfX1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBwYWdlU2l6ZURlZmF1bHQgfX1cclxuICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImVudHJpZXMtbGFiZWxcIj5lbnRyaWVzPC9sYWJlbD48L3NwYW5cclxuICAgICAgPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cIm5neC1wYWdpbmF0aW9uIHBhZ2luYXRpb24tZm9udFwiXHJcbiAgICAgIHJvbGU9XCJuYXZpZ2F0aW9uXCJcclxuICAgICAgKm5nSWY9XCIhaXNJdGVtc1BlclBhZ2VcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNjcmVlblJlYWRlclBhZ2luYXRpb25MYWJlbFwiXHJcbiAgICAgIFtjbGFzcy5yZXNwb25zaXZlXT1cInJlc3BvbnNpdmVcIlxyXG4gICAgPlxyXG4gICAgICA8bGFiZWxcclxuICAgICAgICA+U2hvd2luZyB7eyBwLmdldFN0YXJ0SW5kZXgoKSB9fSAtIHt7IHAuZ2V0RW5kSW5kZXgoKSB9fSBvZlxyXG4gICAgICAgIHt7IHAuZ2V0VG90YWxJdGVtcygpIH19IGVudHJpZXM8L2xhYmVsXHJcbiAgICAgID5cclxuXHJcbiAgICAgIDx1bCByb2xlPVwibmF2aWdhdGlvblwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgPGxpXHJcbiAgICAgICAgICBjbGFzcz1cInBhZ2luYXRpb24tcHJldmlvdXMgcGFnaW5hdGlvbi1mb250XCJcclxuICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJwLmlzRmlyc3RQYWdlKClcIlxyXG4gICAgICAgICAgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIxIDwgcC5nZXRDdXJyZW50KClcIlxyXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwicC5wcmV2aW91cygpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInAucHJldmlvdXMoKVwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJldmlvdXNMYWJlbCArICcgJyArIHNjcmVlblJlYWRlclBhZ2VMYWJlbFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHByZXZpb3VzTGFiZWwgfX1cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwicC5pc0ZpcnN0UGFnZSgpXCI+XHJcbiAgICAgICAgICAgIHt7IHByZXZpb3VzTGFiZWwgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInNtYWxsLXNjcmVlbiBwYWdpbmF0aW9uLWZvbnRcIj5cclxuICAgICAgICAgIHt7IHAuZ2V0Q3VycmVudCgpIH19IC8ge3sgcC5nZXRMYXN0UGFnZSgpIH19XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGlcclxuY2xhc3M9XCJwYWdpbmF0aW9uLWZvbnRcIlxyXG4gICAgICAgIFtjbGFzcy5jdXJyZW50XT1cInAuZ2V0Q3VycmVudCgpID09PSBwYWdlLnZhbHVlXCJcclxuICAgICAgICAgIFtjbGFzcy5lbGxpcHNpc109XCJwYWdlLmxhYmVsID09PSAnLi4uJ1wiXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwLnBhZ2VzXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwicC5zZXRDdXJyZW50KHBhZ2UudmFsdWUpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInAuc2V0Q3VycmVudChwYWdlLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicC5nZXRDdXJyZW50KCkgIT09IHBhZ2UudmFsdWVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyUGFnZUxhYmVsIH19IDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+e3tcclxuICAgICAgICAgICAgICBwYWdlLmxhYmVsID09PSBcIi4uLlwiID8gcGFnZS5sYWJlbCA6IChwYWdlLmxhYmVsIHwgbnVtYmVyOiBcIlwiKVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwLmdldEN1cnJlbnQoKSA9PT0gcGFnZS52YWx1ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNob3ctZm9yLXNyXCI+e3sgc2NyZWVuUmVhZGVyQ3VycmVudExhYmVsIH19IDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+e3tcclxuICAgICAgICAgICAgICBwYWdlLmxhYmVsID09PSBcIi4uLlwiID8gcGFnZS5sYWJlbCA6IChwYWdlLmxhYmVsIHwgbnVtYmVyOiBcIlwiKVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpXHJcbiAgICAgICAgICBjbGFzcz1cInBhZ2luYXRpb24tbmV4dCBwYWdpbmF0aW9uLWZvbnRcIlxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInAuaXNMYXN0UGFnZSgpXCJcclxuICAgICAgICAgICpuZ0lmPVwiZGlyZWN0aW9uTGlua3NcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIXAuaXNMYXN0UGFnZSgpXCJcclxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cInAubmV4dCgpXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInAubmV4dCgpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJuZXh0TGFiZWwgKyAnICcgKyBzY3JlZW5SZWFkZXJQYWdlTGFiZWxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBuZXh0TGFiZWwgfX1cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwicC5pc0xhc3RQYWdlKClcIj5cclxuICAgICAgICAgICAge3sgbmV4dExhYmVsIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3BhZ2luYXRpb24tdGVtcGxhdGU+XHJcblxyXG4gICAgYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NUWUxFUyA9IGBcclxuLnNob3ctbGFiZWwge1xyXG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcclxufVxyXG4ubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG4uc2VsZWN0LWJveCB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzM2IwO1xyXG4gIGNvbG9yOiAjMzMzMzMzYjA7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIG9wYWNpdHk6IDE7XHJcbn1cclxuLmVudHJpZXMtbGFiZWwge1xyXG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG4ubmd4LXBhZ2luYXRpb246OmJlZm9yZSxcclxuLm5neC1wYWdpbmF0aW9uOjphZnRlciB7XHJcbiAgZGlzcGxheTogdGFibGU7XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uOjphZnRlciB7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbn1cclxuXHJcbi5uZ3gtcGFnaW5hdGlvbiBsaSB7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICBtYXJnaW4tcmlnaHQ6IDAuMDYyNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiBsaSB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiBhLFxyXG4ubmd4LXBhZ2luYXRpb24gYnV0dG9uIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxufVxyXG4ubmd4LXBhZ2luYXRpb24gYTpob3ZlcixcclxuLm5neC1wYWdpbmF0aW9uIGJ1dHRvbjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjtcclxufVxyXG4ubmd4LXBhZ2luYXRpb24gLmN1cnJlbnQge1xyXG4gIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcclxuICBiYWNrZ3JvdW5kOiAjMjE5OWU4O1xyXG4gIGNvbG9yOiAjZmVmZWZlO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG4ubmd4LXBhZ2luYXRpb24gLmRpc2FibGVkIHtcclxuICBwYWRkaW5nOiAwLjE4NzVyZW0gMC42MjVyZW07XHJcbiAgY29sb3I6ICNjYWNhY2E7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiAuZGlzYWJsZWQ6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiBhLFxyXG4ubmd4LXBhZ2luYXRpb24gYnV0dG9uIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uIC5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcclxuLm5neC1wYWdpbmF0aW9uIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiwqtcIjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXHJcbi5uZ3gtcGFnaW5hdGlvbiAucGFnaW5hdGlvbi1uZXh0LmRpc2FibGVkOjphZnRlciB7XHJcbiAgY29udGVudDogXCLCu1wiO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXJnaW4tbGVmdDogMC41cmVtO1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiAuc2hvdy1mb3Itc3Ige1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiAxcHg7XHJcbiAgaGVpZ2h0OiAxcHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiAuc21hbGwtc2NyZWVuIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMXB4KSB7XHJcbiAgLm5neC1wYWdpbmF0aW9uLnJlc3BvbnNpdmUgLnNtYWxsLXNjcmVlbiB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG4gIC5uZ3gtcGFnaW5hdGlvbi5yZXNwb25zaXZlXHJcbiAgICBsaTpub3QoLnNtYWxsLXNjcmVlbik6bm90KC5wYWdpbmF0aW9uLXByZXZpb3VzKTpub3QoLnBhZ2luYXRpb24tbmV4dCkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcclxuICAucGFnaW5hdGlvbi1mb250IHtcclxuICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6ICMyZTM4NGQgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIGFuZCAobWF4LXdpZHRoOiAxNDM5cHgpIHtcclxuICAucGFnaW5hdGlvbi1mb250IHtcclxuICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6ICMyZTM4NGQ7XHJcbiAgfVxyXG59XHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTQ0MHB4KSBhbmQgKG1heC13aWR0aDogMjU1OXB4KSB7XHJcbiAgLnBhZ2luYXRpb24tZm9udCB7XHJcbiAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjMmUzODRkO1xyXG4gIH1cclxufVxyXG5cclxuICBgO1xyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uLXRlc3Rpbmcvbmd4LXRhYmxlLXBhZ2luYXRpb24vcHJvamVjdHMvbmd4LXRhYmxlLXBhZ2luYXRpb24vc3JjLyIsInNvdXJjZXMiOlsibGliL3RlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E0RzNCLENBQUM7QUFFTixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzSDNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVGhlIGRlZmF1bHQgdGVtcGxhdGUgYW5kIHN0eWxlcyBmb3IgdGhlIHBhZ2luYXRpb24gbGlua3MgYXJlIGJvcnJvd2VkIGRpcmVjdGx5XHJcbiAqIGZyb20gWnVyYiBGb3VuZGF0aW9uIDY6IGh0dHA6Ly9mb3VuZGF0aW9uLnp1cmIuY29tL3NpdGVzL2RvY3MvcGFnaW5hdGlvbi5odG1sXHJcbiAqL1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEVNUExBVEUgPSBgXHJcbjxwYWdpbmF0aW9uLXRlbXBsYXRlXHJcbiAgI3A9XCJwYWdpbmF0aW9uQXBpXCJcclxuICBbaWRdPVwiaWRcIlxyXG4gIFttYXhTaXplXT1cIm1heFNpemVcIlxyXG4gIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAocGFnZUJvdW5kc0NvcnJlY3Rpb24pPVwicGFnZUJvdW5kc0NvcnJlY3Rpb24uZW1pdCgkZXZlbnQpXCJcclxuPlxyXG4gIDxkaXYgKm5nSWY9XCIhKGF1dG9IaWRlICYmIHAucGFnZXMubGVuZ3RoIDw9IDEpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaXRlbXMtbnVtYmVyXCIgKm5nSWY9XCJpc0l0ZW1zUGVyUGFnZVwiPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIiBjbGFzcz1cInBhZ2luYXRpb24tZm9udFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInNob3ctbGFiZWxcIj5TaG93PC9sYWJlbD5cclxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwibm8tcGFkZGluZyBwYWdpbmF0aW9uLWZvbnRcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJwLml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInAucGFnZVNpemVDaGFuZ2VkKCRldmVudC50YXJnZXQudmFsdWUpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlU2l6ZURlZmF1bHQgb2YgcC5wYWdlU2l6ZXNcIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7IHBhZ2VTaXplRGVmYXVsdCB9fVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHBhZ2VTaXplRGVmYXVsdCB9fVxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZW50cmllcy1sYWJlbFwiPmVudHJpZXM8L2xhYmVsPjwvc3BhblxyXG4gICAgICA+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibmd4LXBhZ2luYXRpb24gcGFnaW5hdGlvbi1mb250XCJcclxuICAgICAgcm9sZT1cIm5hdmlnYXRpb25cIlxyXG4gICAgICAqbmdJZj1cIiFpc0l0ZW1zUGVyUGFnZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2NyZWVuUmVhZGVyUGFnaW5hdGlvbkxhYmVsXCJcclxuICAgICAgW2NsYXNzLnJlc3BvbnNpdmVdPVwicmVzcG9uc2l2ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxsYWJlbFxyXG4gICAgICAgID5TaG93aW5nIHt7IHAuZ2V0U3RhcnRJbmRleCgpIH19IC0ge3sgcC5nZXRFbmRJbmRleCgpIH19IG9mXHJcbiAgICAgICAge3sgcC5nZXRUb3RhbEl0ZW1zKCkgfX0gZW50cmllczwvbGFiZWxcclxuICAgICAgPlxyXG5cclxuICAgICAgPHVsIHJvbGU9XCJuYXZpZ2F0aW9uXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICA8bGlcclxuICAgICAgICAgIGNsYXNzPVwicGFnaW5hdGlvbi1wcmV2aW91cyBwYWdpbmF0aW9uLWZvbnRcIlxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInAuaXNGaXJzdFBhZ2UoKVwiXHJcbiAgICAgICAgICAqbmdJZj1cImRpcmVjdGlvbkxpbmtzXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIjEgPCBwLmdldEN1cnJlbnQoKVwiXHJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJwLnByZXZpb3VzKClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicC5wcmV2aW91cygpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcmV2aW91c0xhYmVsICsgJyAnICsgc2NyZWVuUmVhZGVyUGFnZUxhYmVsXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgcHJldmlvdXNMYWJlbCB9fVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwLmlzRmlyc3RQYWdlKClcIj5cclxuICAgICAgICAgICAge3sgcHJldmlvdXNMYWJlbCB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwic21hbGwtc2NyZWVuIHBhZ2luYXRpb24tZm9udFwiPlxyXG4gICAgICAgICAge3sgcC5nZXRDdXJyZW50KCkgfX0gLyB7eyBwLmdldExhc3RQYWdlKCkgfX1cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaVxyXG5jbGFzcz1cInBhZ2luYXRpb24tZm9udFwiXHJcbiAgICAgICAgW2NsYXNzLmN1cnJlbnRdPVwicC5nZXRDdXJyZW50KCkgPT09IHBhZ2UudmFsdWVcIlxyXG4gICAgICAgICAgW2NsYXNzLmVsbGlwc2lzXT1cInBhZ2UubGFiZWwgPT09ICcuLi4nXCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHAucGFnZXNcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJwLnNldEN1cnJlbnQocGFnZS52YWx1ZSlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicC5zZXRDdXJyZW50KHBhZ2UudmFsdWUpXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJwLmdldEN1cnJlbnQoKSAhPT0gcGFnZS52YWx1ZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2hvdy1mb3Itc3JcIj57eyBzY3JlZW5SZWFkZXJQYWdlTGFiZWwgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3Bhbj57e1xyXG4gICAgICAgICAgICAgIHBhZ2UubGFiZWwgPT09IFwiLi4uXCIgPyBwYWdlLmxhYmVsIDogKHBhZ2UubGFiZWwgfCBudW1iZXI6IFwiXCIpXHJcbiAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInAuZ2V0Q3VycmVudCgpID09PSBwYWdlLnZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2hvdy1mb3Itc3JcIj57eyBzY3JlZW5SZWFkZXJDdXJyZW50TGFiZWwgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3Bhbj57e1xyXG4gICAgICAgICAgICAgIHBhZ2UubGFiZWwgPT09IFwiLi4uXCIgPyBwYWdlLmxhYmVsIDogKHBhZ2UubGFiZWwgfCBudW1iZXI6IFwiXCIpXHJcbiAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGlcclxuICAgICAgICAgIGNsYXNzPVwicGFnaW5hdGlvbi1uZXh0IHBhZ2luYXRpb24tZm9udFwiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwicC5pc0xhc3RQYWdlKClcIlxyXG4gICAgICAgICAgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIhcC5pc0xhc3RQYWdlKClcIlxyXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwicC5uZXh0KClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicC5uZXh0KClcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5leHRMYWJlbCArICcgJyArIHNjcmVlblJlYWRlclBhZ2VMYWJlbFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IG5leHRMYWJlbCB9fVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwLmlzTGFzdFBhZ2UoKVwiPlxyXG4gICAgICAgICAgICB7eyBuZXh0TGFiZWwgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvcGFnaW5hdGlvbi10ZW1wbGF0ZT5cclxuXHJcbiAgICBgO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1RZTEVTID0gYFxyXG4uc2hvdy1sYWJlbCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xyXG59XHJcbi5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcbi5zZWxlY3QtYm94IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzYjA7XHJcbiAgY29sb3I6ICMzMzMzMzNiMDtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgb3BhY2l0eTogMTtcclxufVxyXG4uZW50cmllcy1sYWJlbCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBtYXJnaW4tbGVmdDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbjo6YmVmb3JlLFxyXG4ubmd4LXBhZ2luYXRpb246OmFmdGVyIHtcclxuICBkaXNwbGF5OiB0YWJsZTtcclxufVxyXG4ubmd4LXBhZ2luYXRpb246OmFmdGVyIHtcclxuICBjbGVhcjogYm90aDtcclxufVxyXG5cclxuLm5neC1wYWdpbmF0aW9uIGxpIHtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIG1hcmdpbi1yaWdodDogMC4wNjI1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uIGxpIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uIGEsXHJcbi5uZ3gtcGFnaW5hdGlvbiBidXR0b24ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiBhOmhvdmVyLFxyXG4ubmd4LXBhZ2luYXRpb24gYnV0dG9uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiAuY3VycmVudCB7XHJcbiAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xyXG4gIGJhY2tncm91bmQ6ICMyMTk5ZTg7XHJcbiAgY29sb3I6ICNmZWZlZmU7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcbi5uZ3gtcGFnaW5hdGlvbiAuZGlzYWJsZWQge1xyXG4gIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcclxuICBjb2xvcjogI2NhY2FjYTtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uIC5kaXNhYmxlZDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uIGEsXHJcbi5uZ3gtcGFnaW5hdGlvbiBidXR0b24ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4ubmd4LXBhZ2luYXRpb24gLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxyXG4ubmd4LXBhZ2luYXRpb24gLnBhZ2luYXRpb24tcHJldmlvdXMuZGlzYWJsZWQ6OmJlZm9yZSB7XHJcbiAgY29udGVudDogXCLCq1wiO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcclxufVxyXG4ubmd4LXBhZ2luYXRpb24gLnBhZ2luYXRpb24tbmV4dCBhOjphZnRlcixcclxuLm5neC1wYWdpbmF0aW9uIC5wYWdpbmF0aW9uLW5leHQuZGlzYWJsZWQ6OmFmdGVyIHtcclxuICBjb250ZW50OiBcIsK7XCI7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uIC5zaG93LWZvci1zciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgd2lkdGg6IDFweDtcclxuICBoZWlnaHQ6IDFweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbn1cclxuLm5neC1wYWdpbmF0aW9uIC5zbWFsbC1zY3JlZW4ge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAxcHgpIHtcclxuICAubmd4LXBhZ2luYXRpb24ucmVzcG9uc2l2ZSAuc21hbGwtc2NyZWVuIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcbiAgLm5neC1wYWdpbmF0aW9uLnJlc3BvbnNpdmVcclxuICAgIGxpOm5vdCguc21hbGwtc2NyZWVuKTpub3QoLnBhZ2luYXRpb24tcHJldmlvdXMpOm5vdCgucGFnaW5hdGlvbi1uZXh0KSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xyXG4gIC5wYWdpbmF0aW9uLWZvbnQge1xyXG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogIzJlMzg0ZCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtd2lkdGg6IDE0MzlweCkge1xyXG4gIC5wYWdpbmF0aW9uLWZvbnQge1xyXG4gICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogIzJlMzg0ZDtcclxuICB9XHJcbn1cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNDQwcHgpIGFuZCAobWF4LXdpZHRoOiAyNTU5cHgpIHtcclxuICAucGFnaW5hdGlvbi1mb250IHtcclxuICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6ICMyZTM4NGQ7XHJcbiAgfVxyXG59XHJcblxyXG4gIGA7XHJcbiJdfQ==

@@ -5,3 +5,2 @@ /**

export * from './public-api';
export { DEFAULT_STYLES as ɵb, DEFAULT_TEMPLATE as ɵa } from './lib/template';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRhYmxlLXBhZ2luYXRpb24uanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uL3Byb2plY3RzL25neC10YWJsZS1wYWdpbmF0aW9uL3NyYy8iLCJzb3VyY2VzIjpbIm5neC10YWJsZS1wYWdpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7REVGQVVMVF9TVFlMRVMgYXMgybViLERFRkFVTFRfVEVNUExBVEUgYXMgybVhfSBmcm9tICcuL2xpYi90ZW1wbGF0ZSc7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRhYmxlLXBhZ2luYXRpb24uanMiLCJzb3VyY2VSb290IjoiQzovQWRyZW5hbGluZVdTL2RlbW9zL25neC10YWJsZS1wYWdpbmF0aW9uLXRlc3Rpbmcvbmd4LXRhYmxlLXBhZ2luYXRpb24vcHJvamVjdHMvbmd4LXRhYmxlLXBhZ2luYXRpb24vc3JjLyIsInNvdXJjZXMiOlsibmd4LXRhYmxlLXBhZ2luYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==

@@ -7,2 +7,2 @@ /*

export * from './lib/pagination.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJDOi9BZHJlbmFsaW5lV1MvZGVtb3Mvbmd4LXRhYmxlLXBhZ2luYXRpb24vcHJvamVjdHMvbmd4LXRhYmxlLXBhZ2luYXRpb24vc3JjLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwYWdpbmF0aW9uXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnaW5hdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2luYXRpb24ubW9kdWxlJztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJDOi9BZHJlbmFsaW5lV1MvZGVtb3Mvbmd4LXRhYmxlLXBhZ2luYXRpb24tdGVzdGluZy9uZ3gtdGFibGUtcGFnaW5hdGlvbi9wcm9qZWN0cy9uZ3gtdGFibGUtcGFnaW5hdGlvbi9zcmMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgcGFnaW5hdGlvblxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2luYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnaW5hdGlvbi5tb2R1bGUnO1xyXG4iXX0=

@@ -105,235 +105,2 @@ import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, Directive, ChangeDetectorRef, Pipe, NgModule } from '@angular/core';

/**
* The default template and styles for the pagination links are borrowed directly
* from Zurb Foundation 6: http://foundation.zurb.com/sites/docs/pagination.html
*/
const DEFAULT_TEMPLATE = `
<pagination-template
#p="paginationApi"
[id]="id"
[maxSize]="maxSize"
(pageChange)="pageChange.emit($event)"
(pageBoundsCorrection)="pageBoundsCorrection.emit($event)"
>
<div *ngIf="!(autoHide && p.pages.length <= 1)">
<div class="items-number" *ngIf="isItemsPerPage">
<span style="display: flex" class="pagination-font">
<label class="show-label">Show</label>
<select class="no-padding pagination-font"
[(ngModel)]="p.itemsPerPage"
(change)="p.pageSizeChanged($event.target.value)"
>
<option
*ngFor="let pageSizeDefault of p.pageSizes"
value="{{ pageSizeDefault }}"
>
{{ pageSizeDefault }}
</option>
</select>
<label class="entries-label">entries</label></span
>
</div>
<div
class="ngx-pagination pagination-font"
role="navigation"
*ngIf="!isItemsPerPage"
[attr.aria-label]="screenReaderPaginationLabel"
[class.responsive]="responsive"
>
<label
>Showing {{ p.getStartIndex() }} - {{ p.getEndIndex() }} of
{{ p.getTotalItems() }} entries</label
>
<ul role="navigation" class="">
<li
class="pagination-previous pagination-font"
[class.disabled]="p.isFirstPage()"
*ngIf="directionLinks"
>
<a
tabindex="0"
*ngIf="1 < p.getCurrent()"
(keyup.enter)="p.previous()"
(click)="p.previous()"
[attr.aria-label]="previousLabel + ' ' + screenReaderPageLabel"
>
{{ previousLabel }}
</a>
<span *ngIf="p.isFirstPage()">
{{ previousLabel }}
</span>
</li>
<li class="small-screen pagination-font">
{{ p.getCurrent() }} / {{ p.getLastPage() }}
</li>
<li
class="pagination-font"
[class.current]="p.getCurrent() === page.value"
[class.ellipsis]="page.label === '...'"
*ngFor="let page of p.pages"
>
<a
tabindex="0"
(keyup.enter)="p.setCurrent(page.value)"
(click)="p.setCurrent(page.value)"
*ngIf="p.getCurrent() !== page.value"
>
<span class="show-for-sr">{{ screenReaderPageLabel }} </span>
<span>{{
page.label === "..." ? page.label : (page.label | number: "")
}}</span>
</a>
<ng-container *ngIf="p.getCurrent() === page.value">
<span class="show-for-sr">{{ screenReaderCurrentLabel }} </span>
<span>{{
page.label === "..." ? page.label : (page.label | number: "")
}}</span>
</ng-container>
</li>
<li
class="pagination-next pagination-font"
[class.disabled]="p.isLastPage()"
*ngIf="directionLinks"
>
<a
tabindex="0"
*ngIf="!p.isLastPage()"
(keyup.enter)="p.next()"
(click)="p.next()"
[attr.aria-label]="nextLabel + ' ' + screenReaderPageLabel"
>
{{ nextLabel }}
</a>
<span *ngIf="p.isLastPage()">
{{ nextLabel }}
</span>
</li>
</ul>
</div>
</div>
</pagination-template>
`;
const DEFAULT_STYLES = `
.show-label {
margin-right: 0.25rem;
}
.no-padding {
padding: 0;
}
.select-box {
border: 1px solid #333333b0;
color: #333333b0;
border-radius: 4px;
opacity: 1;
}
.entries-label {
margin-left: 0.25rem;
}
.ngx-pagination {
display: flex;
justify-content: space-between;
margin-left: 0;
margin-bottom: 1rem;
}
.ngx-pagination::before,
.ngx-pagination::after {
display: table;
}
.ngx-pagination::after {
clear: both;
}
.ngx-pagination li {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
margin-right: 0.0625rem;
border-radius: 0;
}
.ngx-pagination li {
display: inline-block;
}
.ngx-pagination a,
.ngx-pagination button {
display: block;
padding: 0.1875rem 0.625rem;
border-radius: 0;
}
.ngx-pagination a:hover,
.ngx-pagination button:hover {
background: #e6e6e6;
}
.ngx-pagination .current {
padding: 0.1875rem 0.625rem;
background: #2199e8;
color: #fefefe;
cursor: default;
}
.ngx-pagination .disabled {
padding: 0.1875rem 0.625rem;
color: #cacaca;
cursor: default;
}
.ngx-pagination .disabled:hover {
background: transparent;
}
.ngx-pagination a,
.ngx-pagination button {
cursor: pointer;
}
.ngx-pagination .pagination-previous a::before,
.ngx-pagination .pagination-previous.disabled::before {
content: "«";
display: inline-block;
margin-right: 0.5rem;
}
.ngx-pagination .pagination-next a::after,
.ngx-pagination .pagination-next.disabled::after {
content: "»";
display: inline-block;
margin-left: 0.5rem;
}
.ngx-pagination .show-for-sr {
position: absolute !important;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
}
.ngx-pagination .small-screen {
display: none;
}
@media screen and (max-width: 601px) {
.ngx-pagination.responsive .small-screen {
display: inline-block;
}
.ngx-pagination.responsive
li:not(.small-screen):not(.pagination-previous):not(.pagination-next) {
display: none;
}
}
@media only screen and (max-width: 1023px) {
.pagination-font {
font-size: 14px !important;
color: #2e384d !important;
}
}
@media only screen and (min-width: 1024px) and (max-width: 1439px) {
.pagination-font {
font-size: 16px !important;
color: #2e384d;
}
}
@media only screen and (min-width: 1440px) and (max-width: 2559px) {
.pagination-font {
font-size: 18px !important;
color: #2e384d;
}
}
`;
function coerceToBoolean(input) {

@@ -382,6 +149,6 @@ return !!input && input !== 'false';

selector: 'paging-controls',
template: DEFAULT_TEMPLATE,
template: "<!-- [itemsPerPage]=\"itemsPerPage?itemsPerPage:5\" -->\r\n<pagination-template\r\n #p=\"paginationApi\"\r\n [id]=\"id\"\r\n [maxSize]=\"maxSize\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\"\r\n>\r\n <div *ngIf=\"!(autoHide && p.pages.length <= 1)\">\r\n <div class=\"items-number\" *ngIf=\"isItemsPerPage\">\r\n <span style=\"display: flex\" class=\"pagination-font\">\r\n <label class=\"show-label\">Show</label>\r\n <select\r\n class=\"no-padding pagination-font\"\r\n [(ngModel)]=\"p.itemsPerPage\"\r\n (change)=\"p.pageSizeChanged($event.target.value)\"\r\n >\r\n <option\r\n *ngFor=\"let pageSizeDefault of p.pageSizes\"\r\n value=\"{{ pageSizeDefault }}\"\r\n [selected]=\"pageSizeDefault == p.itemsPerPage\"\r\n >\r\n {{ pageSizeDefault }}\r\n </option>\r\n </select>\r\n <label class=\"entries-label\">entries</label></span\r\n >\r\n </div>\r\n\r\n <div\r\n class=\"ngx-pagination pagination-font\"\r\n role=\"navigation\"\r\n *ngIf=\"!isItemsPerPage\"\r\n [attr.aria-label]=\"screenReaderPaginationLabel\"\r\n [class.responsive]=\"responsive\"\r\n >\r\n <label\r\n >Showing {{ p.getStartIndex() }} - {{ p.getEndIndex() }} of\r\n {{ p.getTotalItems() }} entries</label\r\n >\r\n\r\n <ul role=\"navigation\" class=\"\">\r\n <li\r\n class=\"pagination-previous pagination-font\"\r\n [class.disabled]=\"p.isFirstPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"1 < p.getCurrent()\"\r\n (keyup.enter)=\"p.previous()\"\r\n (click)=\"p.previous()\"\r\n [attr.aria-label]=\"previousLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ previousLabel }}\r\n </a>\r\n <span *ngIf=\"p.isFirstPage()\">\r\n {{ previousLabel }}\r\n </span>\r\n </li>\r\n <li class=\"small-screen pagination-font\">\r\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\r\n </li>\r\n <li\r\n class=\"pagination-font\"\r\n [class.current]=\"p.getCurrent() === page.value\"\r\n [class.ellipsis]=\"page.label === '...'\"\r\n *ngFor=\"let page of p.pages\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n (keyup.enter)=\"p.setCurrent(page.value)\"\r\n (click)=\"p.setCurrent(page.value)\"\r\n *ngIf=\"p.getCurrent() !== page.value\"\r\n >\r\n <span class=\"show-for-sr\">{{ screenReaderPageLabel }} </span>\r\n <span>{{\r\n page.label === \"...\" ? page.label : (page.label | number: \"\")\r\n }}</span>\r\n </a>\r\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\r\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel }} </span>\r\n <span>{{\r\n page.label === \"...\" ? page.label : (page.label | number: \"\")\r\n }}</span>\r\n </ng-container>\r\n </li>\r\n <li\r\n class=\"pagination-next pagination-font\"\r\n [class.disabled]=\"p.isLastPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"!p.isLastPage()\"\r\n (keyup.enter)=\"p.next()\"\r\n (click)=\"p.next()\"\r\n [attr.aria-label]=\"nextLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ nextLabel }}\r\n </a>\r\n <span *ngIf=\"p.isLastPage()\">\r\n {{ nextLabel }}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</pagination-template>\r\n",
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
styles: [DEFAULT_STYLES]
styles: [".show-label{margin-right:.25rem}.no-padding{padding:0}.select-box{border:1px solid rgba(51,51,51,.6901960784313725);border-radius:4px;color:rgba(51,51,51,.6901960784313725);opacity:1}.entries-label{margin-left:.25rem}.ngx-pagination{display:flex;justify-content:space-between;margin-bottom:1rem;margin-left:0}.ngx-pagination:after,.ngx-pagination:before{display:table}.ngx-pagination:after{clear:both}.ngx-pagination li{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;border-radius:0;display:inline-block;margin-right:.0625rem}.ngx-pagination a,.ngx-pagination button{border-radius:0;display:block;padding:.1875rem .625rem}.ngx-pagination a:hover,.ngx-pagination button:hover{background:#e6e6e6}.ngx-pagination .current{background:#2199e8;color:#fefefe;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled{color:#cacaca;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled:hover{background:transparent}.ngx-pagination a,.ngx-pagination button{cursor:pointer}.ngx-pagination .pagination-previous.disabled:before,.ngx-pagination .pagination-previous a:before{content:\"\u00AB\";display:inline-block;margin-right:.5rem}.ngx-pagination .pagination-next.disabled:after,.ngx-pagination .pagination-next a:after{content:\"\u00BB\";display:inline-block;margin-left:.5rem}.ngx-pagination .show-for-sr{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute!important;width:1px}.ngx-pagination .small-screen{display:none}@media screen and (max-width:601px){.ngx-pagination.responsive .small-screen{display:inline-block}.ngx-pagination.responsive li:not(.small-screen):not(.pagination-previous):not(.pagination-next){display:none}}@media only screen and (max-width:1023px){.pagination-font{color:#2e384d!important;font-size:14px!important}}@media only screen and (min-width:1024px) and (max-width:1439px){.pagination-font{color:#2e384d;font-size:16px!important}}@media only screen and (min-width:1440px) and (max-width:2559px){.pagination-font{color:#2e384d;font-size:18px!important}}"]
},] }

@@ -393,2 +160,3 @@ ];

isItemsPerPage: [{ type: Input }],
itemsPerPage: [{ type: Input }],
directionLinks: [{ type: Input }],

@@ -421,5 +189,3 @@ autoHide: [{ type: Input }],

this.pageSizes = [];
this.itemsPerPage = 5;
this.changeSub = this.service.change
.subscribe(id => {
this.changeSub = this.service.change.subscribe((id) => {
if (this.id === id) {

@@ -430,2 +196,3 @@ this.updatePageLinks();

const inst = this.service.getInstance(this.id);
this.itemsPerPage = inst.itemsPerPage;
}

@@ -439,2 +206,3 @@ });

const inst = this.service.getInstance(this.id);
this.itemsPerPage = inst.itemsPerPage;
for (let i = 5; i <= inst.totalItems;) {

@@ -444,3 +212,2 @@ this.pageSizes.push(i);

}
this.service.setItemsPerPage(this.id, this.itemsPerPage);
this.updatePageLinks();

@@ -455,2 +222,3 @@ }

pageSizeChanged(event) {
this.itemsPerPage = event;
this.service.setItemsPerPage(this.id, event);

@@ -515,10 +283,10 @@ this.setCurrent(1);

const inst = this.service.getInstance(this.id);
if (inst.totalItems < ((inst.itemsPerPage * (inst.currentPage - 1)) + 1)) {
if (inst.totalItems < inst.itemsPerPage * (inst.currentPage - 1) + 1) {
this.setCurrent(1);
}
return (inst.itemsPerPage * (inst.currentPage - 1)) + 1;
return inst.itemsPerPage * (inst.currentPage - 1) + 1;
}
getEndIndex() {
const inst = this.service.getInstance(this.id);
const end = (inst.itemsPerPage * inst.currentPage);
const end = inst.itemsPerPage * inst.currentPage;
if (inst.totalItems < end) {

@@ -583,4 +351,4 @@ return inst.totalItems;

const pageNumber = this.calculatePageNumber(i, currentPage, paginationRange, totalPages);
const openingEllipsesNeeded = (i === 2 && (isMiddle || isEnd));
const closingEllipsesNeeded = (i === paginationRange - 1 && (isMiddle || isStart));
const openingEllipsesNeeded = i === 2 && (isMiddle || isEnd);
const closingEllipsesNeeded = i === paginationRange - 1 && (isMiddle || isStart);
if (ellipsesNeeded && (openingEllipsesNeeded || closingEllipsesNeeded)) {

@@ -594,3 +362,3 @@ label = '...';

label,
value: pageNumber
value: pageNumber,
});

@@ -632,3 +400,3 @@ i++;

selector: 'pagination-template,[pagination-template]',
exportAs: 'paginationApi'
exportAs: 'paginationApi',
},] }

@@ -644,4 +412,3 @@ ];

pageChange: [{ type: Output }],
pageBoundsCorrection: [{ type: Output }],
itemsPerPage: [{ type: Input }]
pageBoundsCorrection: [{ type: Output }]
};

@@ -708,6 +475,12 @@

const id = config.id != null ? config.id : this.service.defaultId();
const perPage = ((_a = this.service.getInstance(id)) === null || _a === void 0 ? void 0 : _a.itemsPerPage) || 5;
if (config.itemsPerPage) {
if (!((_a = this.service.getInstance(id)) === null || _a === void 0 ? void 0 : _a.itemsPerPage)) {
this.service.setItemsPerPage(id, +config.itemsPerPage);
}
}
const perPage = (config.itemsPerPage && !this.service.getInstance(id).itemsPerPage) ? config.itemsPerPage :
this.service.getInstance(id).itemsPerPage;
return {
id: config.id != null ? config.id : this.service.defaultId(),
itemsPerPage: perPage,
itemsPerPage: +perPage || 5,
currentPage: +config.currentPage || 1,

@@ -796,3 +569,3 @@ totalItems: +config.totalItems || collection.length

export { NgxTablePaginationModule, PaginationComponent, PaginationDirective, PaginationPipe, PaginationService, DEFAULT_TEMPLATE as ɵa, DEFAULT_STYLES as ɵb };
export { NgxTablePaginationModule, PaginationComponent, PaginationDirective, PaginationPipe, PaginationService };
//# sourceMappingURL=ngx-table-pagination.js.map

@@ -9,2 +9,3 @@ import { EventEmitter } from '@angular/core';

isItemsPerPage: boolean;
itemsPerPage: any;
get directionLinks(): boolean;

@@ -11,0 +12,0 @@ set directionLinks(value: boolean);

@@ -1,2 +0,2 @@

import { ChangeDetectorRef, EventEmitter } from '@angular/core';
import { ChangeDetectorRef, EventEmitter, OnInit } from '@angular/core';
import { PaginationService } from './pagination.service';

@@ -12,3 +12,3 @@ export interface Page {

*/
export declare class PaginationDirective {
export declare class PaginationDirective implements OnInit {
private service;

@@ -15,0 +15,0 @@ private changeDetectorRef;

@@ -6,2 +6,3 @@ import { PipeTransform } from '@angular/core';

id?: string;
itemsPerPage?: string | number;
currentPage?: string | number;

@@ -8,0 +9,0 @@ totalItems?: string | number;

@@ -5,2 +5,1 @@ /**

export * from './public-api';
export { DEFAULT_STYLES as ɵb, DEFAULT_TEMPLATE as ɵa } from './lib/template';

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"PaginationService":{"__symbolic":"class","members":{"defaultId":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"updateInstance":[{"__symbolic":"method"}],"getCurrentPage":[{"__symbolic":"method"}],"setCurrentPage":[{"__symbolic":"method"}],"setTotalItems":[{"__symbolic":"method"}],"setItemsPerPage":[{"__symbolic":"method"}],"getInstance":[{"__symbolic":"method"}],"clone":[{"__symbolic":"method"}]}},"PaginationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"paging-controls","template":{"__symbolic":"reference","name":"ɵa"},"styles":[{"__symbolic":"reference","name":"ɵb"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":13,"character":21},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":14,"character":19},"member":"None"}}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":5}}]}],"maxSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"isItemsPerPage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"directionLinks":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"autoHide":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":5}}]}],"responsive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"isItemsNumber":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":5}}]}],"previousLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"nextLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":5}}]}],"screenReaderPaginationLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":5}}]}],"screenReaderPageLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":5}}]}],"screenReaderCurrentLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":5}}]}],"pageChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":48,"character":5}}]}],"pageBoundsCorrection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":49,"character":5}}]}]}},"NgxTablePaginationModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"PaginationComponent"},{"__symbolic":"reference","name":"PaginationPipe"},{"__symbolic":"reference","name":"PaginationDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":19,"character":4}],"providers":[{"__symbolic":"reference","name":"PaginationService"}],"exports":[{"__symbolic":"reference","name":"PaginationComponent"},{"__symbolic":"reference","name":"PaginationPipe"},{"__symbolic":"reference","name":"PaginationDirective"}]}]}],"members":{}},"PaginationInstance":{"__symbolic":"interface"},"PaginationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"pagination-template,[pagination-template]","exportAs":"paginationApi"}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":5}}]}],"maxSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"pageChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":5}}]}],"pageBoundsCorrection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":25,"character":5}}]}],"itemsPerPage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PaginationService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":32,"character":43}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"pageSizeChanged":[{"__symbolic":"method"}],"previous":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"isFirstPage":[{"__symbolic":"method"}],"isLastPage":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}],"getCurrent":[{"__symbolic":"method"}],"getLastPage":[{"__symbolic":"method"}],"getTotalItems":[{"__symbolic":"method"}],"getStartIndex":[{"__symbolic":"method"}],"getEndIndex":[{"__symbolic":"method"}],"checkValidId":[{"__symbolic":"method"}],"updatePageLinks":[{"__symbolic":"method"}],"outOfBoundCorrection":[{"__symbolic":"method"}],"createPageArray":[{"__symbolic":"method"}],"calculatePageNumber":[{"__symbolic":"method"}]}},"PaginationPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":22,"character":1},"arguments":[{"name":"paginate","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PaginationService"}]}],"transform":[{"__symbolic":"method"}],"createInstance":[{"__symbolic":"method"}],"checkConfig":[{"__symbolic":"method"}],"saveState":[{"__symbolic":"method"}],"stateIsIdentical":[{"__symbolic":"method"}]}},"ɵa":"\n<pagination-template\n #p=\"paginationApi\"\n [id]=\"id\"\n [maxSize]=\"maxSize\"\n (pageChange)=\"pageChange.emit($event)\"\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\"\n>\n <div *ngIf=\"!(autoHide && p.pages.length <= 1)\">\n <div class=\"items-number\" *ngIf=\"isItemsPerPage\">\n <span style=\"display: flex\" class=\"pagination-font\">\n <label class=\"show-label\">Show</label>\n <select class=\"no-padding pagination-font\"\n [(ngModel)]=\"p.itemsPerPage\"\n (change)=\"p.pageSizeChanged($event.target.value)\"\n >\n <option\n *ngFor=\"let pageSizeDefault of p.pageSizes\"\n value=\"{{ pageSizeDefault }}\"\n >\n {{ pageSizeDefault }}\n </option>\n </select>\n <label class=\"entries-label\">entries</label></span\n >\n </div>\n\n <div\n class=\"ngx-pagination pagination-font\"\n role=\"navigation\"\n *ngIf=\"!isItemsPerPage\"\n [attr.aria-label]=\"screenReaderPaginationLabel\"\n [class.responsive]=\"responsive\"\n >\n <label\n >Showing {{ p.getStartIndex() }} - {{ p.getEndIndex() }} of\n {{ p.getTotalItems() }} entries</label\n >\n\n <ul role=\"navigation\" class=\"\">\n <li\n class=\"pagination-previous pagination-font\"\n [class.disabled]=\"p.isFirstPage()\"\n *ngIf=\"directionLinks\"\n >\n <a\n tabindex=\"0\"\n *ngIf=\"1 < p.getCurrent()\"\n (keyup.enter)=\"p.previous()\"\n (click)=\"p.previous()\"\n [attr.aria-label]=\"previousLabel + ' ' + screenReaderPageLabel\"\n >\n {{ previousLabel }}\n </a>\n <span *ngIf=\"p.isFirstPage()\">\n {{ previousLabel }}\n </span>\n </li>\n <li class=\"small-screen pagination-font\">\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\n </li>\n <li\nclass=\"pagination-font\"\n [class.current]=\"p.getCurrent() === page.value\"\n [class.ellipsis]=\"page.label === '...'\"\n *ngFor=\"let page of p.pages\"\n >\n <a\n tabindex=\"0\"\n (keyup.enter)=\"p.setCurrent(page.value)\"\n (click)=\"p.setCurrent(page.value)\"\n *ngIf=\"p.getCurrent() !== page.value\"\n >\n <span class=\"show-for-sr\">{{ screenReaderPageLabel }} </span>\n <span>{{\n page.label === \"...\" ? page.label : (page.label | number: \"\")\n }}</span>\n </a>\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel }} </span>\n <span>{{\n page.label === \"...\" ? page.label : (page.label | number: \"\")\n }}</span>\n </ng-container>\n </li>\n <li\n class=\"pagination-next pagination-font\"\n [class.disabled]=\"p.isLastPage()\"\n *ngIf=\"directionLinks\"\n >\n <a\n tabindex=\"0\"\n *ngIf=\"!p.isLastPage()\"\n (keyup.enter)=\"p.next()\"\n (click)=\"p.next()\"\n [attr.aria-label]=\"nextLabel + ' ' + screenReaderPageLabel\"\n >\n {{ nextLabel }}\n </a>\n <span *ngIf=\"p.isLastPage()\">\n {{ nextLabel }}\n </span>\n </li>\n </ul>\n </div>\n </div>\n</pagination-template>\n\n ","ɵb":"\n.show-label {\n margin-right: 0.25rem;\n}\n.no-padding {\n padding: 0;\n}\n.select-box {\n border: 1px solid #333333b0;\n color: #333333b0;\n border-radius: 4px;\n opacity: 1;\n}\n.entries-label {\n margin-left: 0.25rem;\n}\n.ngx-pagination {\n display: flex;\n justify-content: space-between;\n margin-left: 0;\n margin-bottom: 1rem;\n}\n.ngx-pagination::before,\n.ngx-pagination::after {\n display: table;\n}\n.ngx-pagination::after {\n clear: both;\n}\n\n.ngx-pagination li {\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n margin-right: 0.0625rem;\n border-radius: 0;\n}\n.ngx-pagination li {\n display: inline-block;\n}\n.ngx-pagination a,\n.ngx-pagination button {\n display: block;\n padding: 0.1875rem 0.625rem;\n border-radius: 0;\n}\n.ngx-pagination a:hover,\n.ngx-pagination button:hover {\n background: #e6e6e6;\n}\n.ngx-pagination .current {\n padding: 0.1875rem 0.625rem;\n background: #2199e8;\n color: #fefefe;\n cursor: default;\n}\n.ngx-pagination .disabled {\n padding: 0.1875rem 0.625rem;\n color: #cacaca;\n cursor: default;\n}\n.ngx-pagination .disabled:hover {\n background: transparent;\n}\n.ngx-pagination a,\n.ngx-pagination button {\n cursor: pointer;\n}\n.ngx-pagination .pagination-previous a::before,\n.ngx-pagination .pagination-previous.disabled::before {\n content: \"«\";\n display: inline-block;\n margin-right: 0.5rem;\n}\n.ngx-pagination .pagination-next a::after,\n.ngx-pagination .pagination-next.disabled::after {\n content: \"»\";\n display: inline-block;\n margin-left: 0.5rem;\n}\n.ngx-pagination .show-for-sr {\n position: absolute !important;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n}\n.ngx-pagination .small-screen {\n display: none;\n}\n@media screen and (max-width: 601px) {\n .ngx-pagination.responsive .small-screen {\n display: inline-block;\n }\n .ngx-pagination.responsive\n li:not(.small-screen):not(.pagination-previous):not(.pagination-next) {\n display: none;\n }\n}\n@media only screen and (max-width: 1023px) {\n .pagination-font {\n font-size: 14px !important;\n color: #2e384d !important;\n }\n}\n@media only screen and (min-width: 1024px) and (max-width: 1439px) {\n .pagination-font {\n font-size: 16px !important;\n color: #2e384d;\n }\n}\n@media only screen and (min-width: 1440px) and (max-width: 2559px) {\n .pagination-font {\n font-size: 18px !important;\n color: #2e384d;\n }\n}\n\n "},"origins":{"PaginationService":"./lib/pagination.service","PaginationComponent":"./lib/pagination.component","NgxTablePaginationModule":"./lib/pagination.module","PaginationInstance":"./lib/pagination-instance","PaginationDirective":"./lib/pagination.directive","PaginationPipe":"./lib/pagination.pipe","ɵa":"./lib/template","ɵb":"./lib/template"},"importAs":"ngx-table-pagination"}
{"__symbolic":"module","version":4,"metadata":{"PaginationService":{"__symbolic":"class","members":{"defaultId":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"updateInstance":[{"__symbolic":"method"}],"getCurrentPage":[{"__symbolic":"method"}],"setCurrentPage":[{"__symbolic":"method"}],"setTotalItems":[{"__symbolic":"method"}],"setItemsPerPage":[{"__symbolic":"method"}],"getInstance":[{"__symbolic":"method"}],"clone":[{"__symbolic":"method"}]}},"PaginationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"paging-controls","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":21,"character":19},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":22,"character":17},"member":"None"},"template":"<!-- [itemsPerPage]=\"itemsPerPage?itemsPerPage:5\" -->\r\n<pagination-template\r\n #p=\"paginationApi\"\r\n [id]=\"id\"\r\n [maxSize]=\"maxSize\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\"\r\n>\r\n <div *ngIf=\"!(autoHide && p.pages.length <= 1)\">\r\n <div class=\"items-number\" *ngIf=\"isItemsPerPage\">\r\n <span style=\"display: flex\" class=\"pagination-font\">\r\n <label class=\"show-label\">Show</label>\r\n <select\r\n class=\"no-padding pagination-font\"\r\n [(ngModel)]=\"p.itemsPerPage\"\r\n (change)=\"p.pageSizeChanged($event.target.value)\"\r\n >\r\n <option\r\n *ngFor=\"let pageSizeDefault of p.pageSizes\"\r\n value=\"{{ pageSizeDefault }}\"\r\n [selected]=\"pageSizeDefault == p.itemsPerPage\"\r\n >\r\n {{ pageSizeDefault }}\r\n </option>\r\n </select>\r\n <label class=\"entries-label\">entries</label></span\r\n >\r\n </div>\r\n\r\n <div\r\n class=\"ngx-pagination pagination-font\"\r\n role=\"navigation\"\r\n *ngIf=\"!isItemsPerPage\"\r\n [attr.aria-label]=\"screenReaderPaginationLabel\"\r\n [class.responsive]=\"responsive\"\r\n >\r\n <label\r\n >Showing {{ p.getStartIndex() }} - {{ p.getEndIndex() }} of\r\n {{ p.getTotalItems() }} entries</label\r\n >\r\n\r\n <ul role=\"navigation\" class=\"\">\r\n <li\r\n class=\"pagination-previous pagination-font\"\r\n [class.disabled]=\"p.isFirstPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"1 < p.getCurrent()\"\r\n (keyup.enter)=\"p.previous()\"\r\n (click)=\"p.previous()\"\r\n [attr.aria-label]=\"previousLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ previousLabel }}\r\n </a>\r\n <span *ngIf=\"p.isFirstPage()\">\r\n {{ previousLabel }}\r\n </span>\r\n </li>\r\n <li class=\"small-screen pagination-font\">\r\n {{ p.getCurrent() }} / {{ p.getLastPage() }}\r\n </li>\r\n <li\r\n class=\"pagination-font\"\r\n [class.current]=\"p.getCurrent() === page.value\"\r\n [class.ellipsis]=\"page.label === '...'\"\r\n *ngFor=\"let page of p.pages\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n (keyup.enter)=\"p.setCurrent(page.value)\"\r\n (click)=\"p.setCurrent(page.value)\"\r\n *ngIf=\"p.getCurrent() !== page.value\"\r\n >\r\n <span class=\"show-for-sr\">{{ screenReaderPageLabel }} </span>\r\n <span>{{\r\n page.label === \"...\" ? page.label : (page.label | number: \"\")\r\n }}</span>\r\n </a>\r\n <ng-container *ngIf=\"p.getCurrent() === page.value\">\r\n <span class=\"show-for-sr\">{{ screenReaderCurrentLabel }} </span>\r\n <span>{{\r\n page.label === \"...\" ? page.label : (page.label | number: \"\")\r\n }}</span>\r\n </ng-container>\r\n </li>\r\n <li\r\n class=\"pagination-next pagination-font\"\r\n [class.disabled]=\"p.isLastPage()\"\r\n *ngIf=\"directionLinks\"\r\n >\r\n <a\r\n tabindex=\"0\"\r\n *ngIf=\"!p.isLastPage()\"\r\n (keyup.enter)=\"p.next()\"\r\n (click)=\"p.next()\"\r\n [attr.aria-label]=\"nextLabel + ' ' + screenReaderPageLabel\"\r\n >\r\n {{ nextLabel }}\r\n </a>\r\n <span *ngIf=\"p.isLastPage()\">\r\n {{ nextLabel }}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</pagination-template>\r\n","styles":[".show-label{margin-right:.25rem}.no-padding{padding:0}.select-box{border:1px solid rgba(51,51,51,.6901960784313725);border-radius:4px;color:rgba(51,51,51,.6901960784313725);opacity:1}.entries-label{margin-left:.25rem}.ngx-pagination{display:flex;justify-content:space-between;margin-bottom:1rem;margin-left:0}.ngx-pagination:after,.ngx-pagination:before{display:table}.ngx-pagination:after{clear:both}.ngx-pagination li{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;border-radius:0;display:inline-block;margin-right:.0625rem}.ngx-pagination a,.ngx-pagination button{border-radius:0;display:block;padding:.1875rem .625rem}.ngx-pagination a:hover,.ngx-pagination button:hover{background:#e6e6e6}.ngx-pagination .current{background:#2199e8;color:#fefefe;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled{color:#cacaca;cursor:default;padding:.1875rem .625rem}.ngx-pagination .disabled:hover{background:transparent}.ngx-pagination a,.ngx-pagination button{cursor:pointer}.ngx-pagination .pagination-previous.disabled:before,.ngx-pagination .pagination-previous a:before{content:\"«\";display:inline-block;margin-right:.5rem}.ngx-pagination .pagination-next.disabled:after,.ngx-pagination .pagination-next a:after{content:\"»\";display:inline-block;margin-left:.5rem}.ngx-pagination .show-for-sr{clip:rect(0,0,0,0);height:1px;overflow:hidden;position:absolute!important;width:1px}.ngx-pagination .small-screen{display:none}@media screen and (max-width:601px){.ngx-pagination.responsive .small-screen{display:inline-block}.ngx-pagination.responsive li:not(.small-screen):not(.pagination-previous):not(.pagination-next){display:none}}@media only screen and (max-width:1023px){.pagination-font{color:#2e384d!important;font-size:14px!important}}@media only screen and (min-width:1024px) and (max-width:1439px){.pagination-font{color:#2e384d;font-size:16px!important}}@media only screen and (min-width:1440px) and (max-width:2559px){.pagination-font{color:#2e384d;font-size:18px!important}}"]}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"maxSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"isItemsPerPage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"itemsPerPage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"directionLinks":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"autoHide":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"responsive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"isItemsNumber":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"previousLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"nextLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"screenReaderPaginationLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"screenReaderPageLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"screenReaderCurrentLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"pageChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":56,"character":3}}]}],"pageBoundsCorrection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":57,"character":3}}]}]}},"NgxTablePaginationModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"PaginationComponent"},{"__symbolic":"reference","name":"PaginationPipe"},{"__symbolic":"reference","name":"PaginationDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":19,"character":4}],"providers":[{"__symbolic":"reference","name":"PaginationService"}],"exports":[{"__symbolic":"reference","name":"PaginationComponent"},{"__symbolic":"reference","name":"PaginationPipe"},{"__symbolic":"reference","name":"PaginationDirective"}]}]}],"members":{}},"PaginationInstance":{"__symbolic":"interface"},"PaginationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":23,"character":1},"arguments":[{"selector":"pagination-template,[pagination-template]","exportAs":"paginationApi"}]}],"members":{"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"maxSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"pageChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":31,"character":3}}]}],"pageBoundsCorrection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":32,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PaginationService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":42,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"pageSizeChanged":[{"__symbolic":"method"}],"previous":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"isFirstPage":[{"__symbolic":"method"}],"isLastPage":[{"__symbolic":"method"}],"setCurrent":[{"__symbolic":"method"}],"getCurrent":[{"__symbolic":"method"}],"getLastPage":[{"__symbolic":"method"}],"getTotalItems":[{"__symbolic":"method"}],"getStartIndex":[{"__symbolic":"method"}],"getEndIndex":[{"__symbolic":"method"}],"checkValidId":[{"__symbolic":"method"}],"updatePageLinks":[{"__symbolic":"method"}],"outOfBoundCorrection":[{"__symbolic":"method"}],"createPageArray":[{"__symbolic":"method"}],"calculatePageNumber":[{"__symbolic":"method"}]}},"PaginationPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":23,"character":1},"arguments":[{"name":"paginate","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PaginationService"}]}],"transform":[{"__symbolic":"method"}],"createInstance":[{"__symbolic":"method"}],"checkConfig":[{"__symbolic":"method"}],"saveState":[{"__symbolic":"method"}],"stateIsIdentical":[{"__symbolic":"method"}]}}},"origins":{"PaginationService":"./lib/pagination.service","PaginationComponent":"./lib/pagination.component","NgxTablePaginationModule":"./lib/pagination.module","PaginationInstance":"./lib/pagination-instance","PaginationDirective":"./lib/pagination.directive","PaginationPipe":"./lib/pagination.pipe"},"importAs":"ngx-table-pagination"}
{
"name": "ngx-table-pagination",
"version": "0.0.4",
"version": "1.0.0",
"description": "Pagination for angular",

@@ -5,0 +5,0 @@ "author": {

@@ -0,0 +0,0 @@ # Pagination for Angular [![Build Status](https://travis-ci.org/michaelbromley/ngx-pagination.svg?branch=master)](https://travis-ci.org/michaelbromley/ngx-pagination)

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc