@libs-ui/components-pagination 0.2.356-32 → 0.2.356-33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +2 -1
- package/esm2022/pagination.component.mjs +7 -12
- package/esm2022/pagination.type.mjs +2 -0
- package/fesm2022/libs-ui-components-pagination.mjs +6 -11
- package/fesm2022/libs-ui-components-pagination.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/package.json +4 -4
- package/pagination.component.d.ts +2 -0
- package/pagination.type.d.ts +18 -0
package/esm2022/index.mjs
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './pagination.component';
|
|
2
|
-
|
|
2
|
+
export * from './pagination.type';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2luYXRpb24udHlwZSc7XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, computed, DestroyRef,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input, model, output, signal } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';
|
|
5
5
|
import { TranslateProviderConfig } from '@libs-ui/services-translate';
|
|
@@ -31,16 +31,6 @@ export class LibsUiComponentsPaginationComponent {
|
|
|
31
31
|
outPageSelect = output();
|
|
32
32
|
destroyRef = inject(DestroyRef);
|
|
33
33
|
constructor() {
|
|
34
|
-
effect(() => {
|
|
35
|
-
if (!isNil(this.currentPage()) && !isNil(this.totalItems()) && !isNil(this.perPage())) {
|
|
36
|
-
untracked(() => {
|
|
37
|
-
this.renderPagination();
|
|
38
|
-
if (this.totalPage() && this.currentPageComputed() >= this.totalPage()) {
|
|
39
|
-
this.selectPage(this.fakeEventHtml, { key: `${this.totalPage()}`, value: `${this.totalPage()}` });
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
34
|
this.onChangeValue.pipe(debounceTime(1500), takeUntilDestroyed(this.destroyRef)).subscribe((value) => {
|
|
45
35
|
if (this.isEnterSearch() || +value === this.currentPageComputed()) {
|
|
46
36
|
this.isEnterSearch.set(false);
|
|
@@ -54,6 +44,11 @@ export class LibsUiComponentsPaginationComponent {
|
|
|
54
44
|
this.renderPagination();
|
|
55
45
|
}
|
|
56
46
|
}
|
|
47
|
+
get FunctionsControl() {
|
|
48
|
+
return {
|
|
49
|
+
changePage: this.changePage.bind(this),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
57
52
|
renderPagination() {
|
|
58
53
|
if (this.perPage() > 0 && !isNil(this.totalItems())) {
|
|
59
54
|
this.totalPage.set(Math.ceil(this.totalItems() / this.perPage()));
|
|
@@ -143,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
143
138
|
type: Component,
|
|
144
139
|
args: [{ selector: 'libs_ui-components-pagination', standalone: true, imports: [TranslateModule, LibsUiComponentsInputsInputComponent, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, providers: [TranslateProviderConfig], template: "<div class=\"flex flex-col items-center flex-wrap w-full justify-center {{ classIncludeContainer() ?? '' }}\">\n @let constHtmlDisplayTotalPageAndGotoPage = showTotalPage() || showInputGotoPage();\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre = currentPageComputed() <= 1 || totalPage() <= 1 || disable();\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div\n class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\"\n [class.pointer-events-none]=\"constHtmlDisableButtonPre\"\n (click)=\"prePage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n @for (item of listPageDisplay(); track item.key) {\n <div\n class=\"libs-ui-components-pagination-item libs-ui-font-h3m {{ classIncludeItem() ?? '' }}\"\n [class.libs-ui-components-pagination-active]=\"item.key === currentPageComputed() + ''\"\n [class.libs-ui-disable]=\"disable()\"\n [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event, item)\">\n {{ item.value }}\n </div>\n } @empty {\n <div class=\"libs-ui-font-h5m text-[#9CA2AD] mx-[12px] flex shrink-0\">\n {{ 'i18n_no_data_yet' | translate }}\n </div>\n }\n\n @let constHtmlDisableButtonNext = currentPageComputed() >= totalPage() || disable();\n <div\n class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n [class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n (click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div\n class=\"flex shrink-0 h-full items-center {{ classDisplayTotalPageAndGotoPage() ?? '' }}\"\n [class.mb-[16px]]=\"modeDisplayTotalPageAndGotoPage() === 'top'\"\n [class.mt-[16px]]=\"modeDisplayTotalPageAndGotoPage() === 'bottom'\">\n @if (showTotalPage()) {\n <div class=\"libs-ui-font-h5m text-[#9CA2AD] mx-[12px]\">\n {{ 'i18n_value_sum_page' | translate: { value: totalPage() } }}\n </div>\n }\n @if (showInputGotoPage()) {\n @if (showTotalPage()) {\n <div class=\"h-[16px] w-[1px] bg-[#CDD0D6]\"></div>\n }\n <div class=\"libs-ui-font-h5m text-[#9CA2AD] mx-[12px] flex shrink-0\">\n {{ 'i18n_go_to' | translate }}\n </div>\n <div class=\"w-[60px] mr-[12px] shrink-0\">\n <libs_ui-components-inputs-input\n [dataType]=\"'int'\"\n classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\"\n [emitEmptyInDataTypeNumber]=\"true\"\n [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\"\n (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\"\n [disable]=\"disable() || totalPage() <= numberPageDisplay()\" />\n </div>\n }\n </div>\n</ng-template>\n", styles: [":host{width:100%}.libs-ui-components-pagination-item{color:#1c1f22;display:flex;flex-shrink:0;align-items:center;justify-content:center;padding:4px 12px;cursor:pointer}.libs-ui-components-pagination-item [class^=mo-svg-font]:before{color:#1c1f22;font-size:var(--mo-heading-4-size)!important}.libs-ui-components-pagination-item.libs-ui-components-pagination-active{color:var(--libs-ui-color-default)}.libs-ui-components-pagination-item.libs-ui-components-pagination-active [class^=mo-svg-font]:before{color:var(--libs-ui-color-default)}.libs-ui-components-pagination-button{cursor:pointer}\n"] }]
|
|
145
140
|
}], ctorParameters: () => [] });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQVk3QyxNQUFNLE9BQU8sbUNBQW1DO0lBQ3RDLGFBQWEsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLGVBQWUsR0FBRyxNQUFNLENBQXdDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLGNBQWMsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxD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LG1DQUFtQztrQkFWL0MsU0FBUzsrQkFFRSwrQkFBK0IsY0FHN0IsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLG9DQUFvQyxFQUFFLGdCQUFnQixDQUFDLG1CQUNqRSx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBEZXN0cm95UmVmLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNJbnB1dHNJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtaW5wdXRzLWlucHV0JztcbmltcG9ydCB7IFRyYW5zbGF0ZVByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnQGxpYnMtdWkvc2VydmljZXMtdHJhbnNsYXRlJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTGlic1VpQ29tcG9uZW50c0lucHV0c0lucHV0Q29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1RyYW5zbGF0ZVByb3ZpZGVyQ29uZmlnXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c1BhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGZha2VFdmVudEh0bWwgPSBuZXcgRXZlbnQoJ2NsaWNrJyk7XG4gIHByaXZhdGUgaXNFbnRlclNlYXJjaCA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBsaXN0UGFnZURpc3BsYXkgPSBzaWduYWw8QXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pj4oW10pO1xuICBwcm90ZWN0ZWQgZ290b1BhZ2VOdW1iZXIgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgdG90YWxQYWdlID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25DaGFuZ2VWYWx1ZSA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICByZWFkb25seSBzaG93VG90YWxQYWdlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgc2hvd0lucHV0R290b1BhZ2UgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlID0gaW5wdXQ8J3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCc+KCdib3R0b20nKTtcbiAgcmVhZG9ubHkgY2xhc3NEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlQ29udGFpbmVyID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVJdGVtID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBkaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgbnVtYmVyUGFnZURpc3BsYXkgPSBpbnB1dDxudW1iZXIsIG51bWJlciB8IHVuZGVmaW5lZD4oNSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgfHwgNSB9KTtcbiAgcmVhZG9ubHkgdG90YWxJdGVtcyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgcGVyUGFnZSA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgZmlyc3RQYWdlU3RhcnROdW1iZXIgPSBpbnB1dDxudW1iZXIsIDAgfCAxIHwgdW5kZWZpbmVkPigxLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxIH0pO1xuICByZWFkb25seSBjdXJyZW50UGFnZSA9IG1vZGVsLnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgY3VycmVudFBhZ2VDb21wdXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3VycmVudFBhZ2UoKSArICh0aGlzLmZpcnN0UGFnZVN0YXJ0TnVtYmVyKCkgPT09IDEgPyAwIDogMSkpO1xuICByZWFkb25seSBvdXRQYWdlU2VsZWN0ID0gb3V0cHV0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCFpc05pbCh0aGlzLmN1cnJlbnRQYWdlKCkpICYmICFpc05pbCh0aGlzLnRvdGFsSXRlbXMoKSkgJiYgIWlzTmlsKHRoaXMucGVyUGFnZSgpKSkge1xuICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVuZGVyUGFnaW5hdGlvbigpO1xuICAgICAgICAgIGlmICh0aGlzLnRvdGFsUGFnZSgpICYmIHRoaXMuY3VycmVudFBhZ2VDb21wdXRlZCgpID49IHRoaXMudG90YWxQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0UGFnZSh0aGlzLmZha2VFdmVudEh0bWwsIHsga2V5OiBgJHt0aGlzLnRvdGFsUGFnZSgpfWAsIHZhbHVlOiBgJHt0aGlzLnRvdGFsUGFnZSgpfWAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2hhbmdlVmFsdWUucGlwZShkZWJvdW5jZVRpbWUoMTUwMCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0VudGVyU2VhcmNoKCkgfHwgK3ZhbHVlID09PSB0aGlzLmN1cnJlbnRQYWdlQ29tcHV0ZWQoKSkge1xuICAgICAgICB0aGlzLmlzRW50ZXJTZWFyY2guc2V0KGZhbHNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWxlY3RQYWdlKHRoaXMuZmFrZUV2ZW50SHRtbCwgeyBrZXk6IGAke3ZhbHVlfWAsIHZhbHVlOiBgJHt2YWx1ZX1gIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCFpc05pbCh0aGlzLmN1cnJlbnRQYWdlKCkpICYmICFpc05pbCh0aGlzLnRvdGFsSXRlbXMoKSkgJiYgIWlzTmlsKHRoaXMucGVyUGFnZSgpKSkge1xuICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJQYWdpbmF0aW9uKCkge1xuICAgIGlmICh0aGlzLnBlclBhZ2UoKSA+IDAgJiYgIWlzTmlsKHRoaXMudG90YWxJdGVtcygpKSkge1xuICAgICAgdGhpcy50b3RhbFBhZ2Uuc2V0KE1hdGguY2VpbCh0aGlzLnRvdGFsSXRlbXMoKSAvIHRoaXMucGVyUGFnZSgpKSk7XG4gICAgfVxuICAgIHRoaXMubGlzdFBhZ2VEaXNwbGF5LnNldChbXSk7XG5cbiAgICBpZiAodGhpcy50b3RhbFBhZ2UoKSA8PSB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkpIHtcbiAgICAgIHRoaXMubGlzdFBhZ2VEaXNwbGF5LnNldChcbiAgICAgICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy50b3RhbFBhZ2UoKSB9LCAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICByZXR1cm4geyBrZXk6IGAke2luZGV4ICsgMX1gLCB2YWx1ZTogYCR7aW5kZXggKyAxfWAgfTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCkgPCB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkgLSAxKSB7XG4gICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS5zZXQoXG4gICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSB9LCAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICByZXR1cm4geyBrZXk6IGAke2luZGV4ICsgMX1gLCB2YWx1ZTogYCR7aW5kZXggKyAxfWAgfTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlQ29tcHV0ZWQoKSAtIHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSAvIDI7XG4gICAgbGV0IG51bWJlclBhZ2VCZWZvcmUgPSBzdGFydFBhZ2UgPCAwID8gdGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCkgOiBzdGFydFBhZ2UgPT09IDAgPyAwIDogdGhpcy5udW1iZXJQYWdlRGlzcGxheSgpIC8gMjtcbiAgICBjb25zdCBnYXBBZnRlciA9IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSAtIG51bWJlclBhZ2VCZWZvcmU7XG4gICAgY29uc3QgZW5kUGFnZSA9IHRoaXMuY3VycmVudFBhZ2VDb21wdXRlZCgpICsgZ2FwQWZ0ZXI7XG4gICAgY29uc3QgbnVtYmVyUGFnZUFmdGVyID0gdGhpcy50b3RhbFBhZ2UoKSA+PSBlbmRQYWdlID8gZ2FwQWZ0ZXIgOiB0aGlzLnRvdGFsUGFnZSgpIC0gdGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCk7XG5cbiAgICBpZiAobnVtYmVyUGFnZUJlZm9yZSArIG51bWJlclBhZ2VBZnRlciA8IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSkge1xuICAgICAgbnVtYmVyUGFnZUJlZm9yZSA9IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSAtIG51bWJlclBhZ2VBZnRlcjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bWJlclBhZ2VCZWZvcmU7IGkrKykge1xuICAgICAgdGhpcy5saXN0UGFnZURpc3BsYXkudXBkYXRlKChsaXN0UGFnZSkgPT4ge1xuICAgICAgICBsaXN0UGFnZS51bnNoaWZ0KHsga2V5OiBgJHt0aGlzLmN1cnJlbnRQYWdlQ29tcHV0ZWQoKSAtIGl9YCwgdmFsdWU6IGAke3RoaXMuY3VycmVudFBhZ2VDb21wdXRlZCgpIC0gaX1gIH0pO1xuXG4gICAgICAgIHJldHVybiBbLi4ubGlzdFBhZ2VdO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG51bWJlclBhZ2VBZnRlciA+PSAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBudW1iZXJQYWdlQWZ0ZXI7IGkrKykge1xuICAgICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS51cGRhdGUoKGxpc3RQYWdlKSA9PiB7XG4gICAgICAgICAgbGlzdFBhZ2UucHVzaCh7IGtleTogYCR7dGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCkgKyBpfWAsIHZhbHVlOiBgJHt0aGlzLmN1cnJlbnRQYWdlQ29tcHV0ZWQoKSArIGl9YCB9KTtcbiAgICAgICAgICByZXR1cm4gWy4uLmxpc3RQYWdlXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFBhZ2UoZTogRXZlbnQsIGl0ZW06IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgcGFnZVNlbGVjdCA9ICtpdGVtLmtleSAtICh0aGlzLmZpcnN0UGFnZVN0YXJ0TnVtYmVyKCkgPT09IDAgPyAxIDogMCk7XG4gICAgaWYgKHBhZ2VTZWxlY3QgPT09IHRoaXMuY3VycmVudFBhZ2UoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KHBhZ2VTZWxlY3QpO1xuICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dFBhZ2UoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlQ29tcHV0ZWQoKSA8IHRoaXMudG90YWxQYWdlKCkpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UudXBkYXRlKChjdXJyZW50UGFnZSkgPT4gY3VycmVudFBhZ2UgKyAxKTtcbiAgICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgICB0aGlzLnJlbmRlclBhZ2luYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJlUGFnZShlOiBFdmVudCkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2VDb21wdXRlZCgpID4gMSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS51cGRhdGUoKGN1cnJlbnRQYWdlKSA9PiBjdXJyZW50UGFnZSAtIDEpO1xuICAgICAgdGhpcy5vdXRQYWdlU2VsZWN0LmVtaXQodGhpcy5jdXJyZW50UGFnZSgpKTtcbiAgICAgIHRoaXMucmVuZGVyUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjaGFuZ2VQYWdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB2YWx1ZSA9IHZhbHVlIGFzIG51bWJlcjtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLmdvdG9QYWdlTnVtYmVyLnNldCh1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmdvdG9QYWdlTnVtYmVyLnNldCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZVZhbHVlLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFbnRlcklucHV0KCkge1xuICAgIGlmIChpc05pbCh0aGlzLmdvdG9QYWdlTnVtYmVyKCkpIHx8IHRoaXMuZ290b1BhZ2VOdW1iZXIoKSA9PT0gdGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzRW50ZXJTZWFyY2guc2V0KHRydWUpO1xuICAgIHRoaXMuc2VsZWN0UGFnZSh0aGlzLmZha2VFdmVudEh0bWwsIHsga2V5OiBgJHt0aGlzLmdvdG9QYWdlTnVtYmVyKCl9YCwgdmFsdWU6IGAke3RoaXMuZ290b1BhZ2VOdW1iZXIoKX1gIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZmxleC13cmFwIHctZnVsbCBqdXN0aWZ5LWNlbnRlciB7eyBjbGFzc0luY2x1ZGVDb250YWluZXIoKSA/PyAnJyB9fVwiPlxuICBAbGV0IGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSA9IHNob3dUb3RhbFBhZ2UoKSB8fCBzaG93SW5wdXRHb3RvUGFnZSgpO1xuICBAaWYgKGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSAmJiBtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICd0b3AnKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdvdG9QYWdlTnVtYmVyUmVmXCIgLz5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiZmxleCBzaHJpbmstMCBoLWZ1bGwgaXRlbXMtY2VudGVyXCI+XG4gICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uUHJlID0gY3VycmVudFBhZ2VDb21wdXRlZCgpIDw9IDEgfHwgdG90YWxQYWdlKCkgPD0gMSB8fCBkaXNhYmxlKCk7XG4gICAgQGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAnbGVmdCcpIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnb3RvUGFnZU51bWJlclJlZlwiIC8+XG4gICAgfVxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24tYnV0dG9uIHJvdGF0ZS1bMTgwZGVnXSBwbC1bMTRweF0gcHItWzZweF1cIlxuICAgICAgW2NsYXNzLmxpYnMtdWktZGlzYWJsZV09XCJjb25zdEh0bWxEaXNhYmxlQnV0dG9uUHJlXCJcbiAgICAgIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cImNvbnN0SHRtbERpc2FibGVCdXR0b25QcmVcIlxuICAgICAgKGNsaWNrKT1cInByZVBhZ2UoJGV2ZW50KVwiPlxuICAgICAgPGkgY2xhc3M9XCJsaWJzLXVpLWljb24tY2hldnJvbi1yaWdodCBsaWJzLXVpLWZvbnQtaDJyXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIEBmb3IgKGl0ZW0gb2YgbGlzdFBhZ2VEaXNwbGF5KCk7IHRyYWNrIGl0ZW0ua2V5KSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24taXRlbSBsaWJzLXVpLWZvbnQtaDNtIHt7IGNsYXNzSW5jbHVkZUl0ZW0oKSA/PyAnJyB9fVwiXG4gICAgICAgIFtjbGFzcy5saWJzLXVpLWNvbXBvbmVudHMtcGFnaW5hdGlvbi1hY3RpdmVdPVwiaXRlbS5rZXkgPT09IGN1cnJlbnRQYWdlQ29tcHV0ZWQoKSArICcnXCJcbiAgICAgICAgW2NsYXNzLmxpYnMtdWktZGlzYWJsZV09XCJkaXNhYmxlKClcIlxuICAgICAgICBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJkaXNhYmxlKClcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0UGFnZSgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgIHt7IGl0ZW0udmFsdWUgfX1cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVtcHR5IHtcbiAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVtIHRleHQtWyM5Q0EyQURdIG14LVsxMnB4XSBmbGV4IHNocmluay0wXCI+XG4gICAgICAgIHt7ICdpMThuX25vX2RhdGFfeWV0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uTmV4dCA9IGN1cnJlbnRQYWdlQ29tcHV0ZWQoKSA+PSB0b3RhbFBhZ2UoKSB8fCBkaXNhYmxlKCk7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsaWJzLXVpLWNvbXBvbmVudHMtcGFnaW5hdGlvbi1idXR0b24gcGwtWzE0cHhdIHByLVs2cF14XCJcbiAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvbk5leHRcIlxuICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvbk5leHRcIlxuICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKCRldmVudClcIj5cbiAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgbGlicy11aS1mb250LWgyclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSAmJiBtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICdyaWdodCcpIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnb3RvUGFnZU51bWJlclJlZlwiIC8+XG4gICAgfVxuICA8L2Rpdj5cbiAgQGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAnYm90dG9tJykge1xuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnb3RvUGFnZU51bWJlclJlZlwiIC8+XG4gIH1cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2dvdG9QYWdlTnVtYmVyUmVmPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IHNocmluay0wIGgtZnVsbCBpdGVtcy1jZW50ZXIge3sgY2xhc3NEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA/PyAnJyB9fVwiXG4gICAgW2NsYXNzLm1iLVsxNnB4XV09XCJtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICd0b3AnXCJcbiAgICBbY2xhc3MubXQtWzE2cHhdXT1cIm1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ2JvdHRvbSdcIj5cbiAgICBAaWYgKHNob3dUb3RhbFBhZ2UoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdXCI+XG4gICAgICAgIHt7ICdpMThuX3ZhbHVlX3N1bV9wYWdlJyB8IHRyYW5zbGF0ZTogeyB2YWx1ZTogdG90YWxQYWdlKCkgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoc2hvd0lucHV0R290b1BhZ2UoKSkge1xuICAgICAgQGlmIChzaG93VG90YWxQYWdlKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImgtWzE2cHhdIHctWzFweF0gYmctWyNDREQwRDZdXCI+PC9kaXY+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1mb250LWg1bSB0ZXh0LVsjOUNBMkFEXSBteC1bMTJweF0gZmxleCBzaHJpbmstMFwiPlxuICAgICAgICB7eyAnaTE4bl9nb190bycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInctWzYwcHhdIG1yLVsxMnB4XSBzaHJpbmstMFwiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWlucHV0cy1pbnB1dFxuICAgICAgICAgIFtkYXRhVHlwZV09XCInaW50J1wiXG4gICAgICAgICAgY2xhc3NJbmNsdWRlPVwiIXJvdW5kZWQtWzZweF1cIlxuICAgICAgICAgIFttYXhWYWx1ZU51bWJlcl09XCJ0b3RhbFBhZ2UoKVwiXG4gICAgICAgICAgW2VtaXRFbXB0eUluRGF0YVR5cGVOdW1iZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgW2RlZmF1bHRIZWlnaHRdPVwiMjhcIlxuICAgICAgICAgIFt2YWx1ZV09XCJnb3RvUGFnZU51bWJlcigpIHx8ICcnXCJcbiAgICAgICAgICAob3V0Q2hhbmdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKG91dEVudGVyRXZlbnQpPVwiaGFuZGxlckVudGVySW5wdXQoKVwiXG4gICAgICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZSgpIHx8IHRvdGFsUGFnZSgpIDw9IG51bWJlclBhZ2VEaXNwbGF5KClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFhN0MsTUFBTSxPQUFPLG1DQUFtQztJQUN0QyxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixlQUFlLEdBQUcsTUFBTSxDQUF3QyxFQUFFLENBQUMsQ0FBQztJQUNwRSxjQUFjLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUN2RCxTQUFTLEdBQUcs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QUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQ3pGLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7d0dBbkpVLG1DQUFtQzs0RkFBbkMsbUNBQW1DLDgrREFGbkMsQ0FBQyx1QkFBdUIsQ0FBQywwQkNsQnRDLG9vSEFpRkEsdW9CRGpFWSxlQUFlLDRGQUFFLG9DQUFvQyx3aERBQUUsZ0JBQWdCOzs0RkFJdEUsbUNBQW1DO2tCQVYvQyxTQUFTOytCQUVFLCtCQUErQixjQUc3QixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsb0NBQW9DLEVBQUUsZ0JBQWdCLENBQUMsbUJBQ2pFLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIERlc3Ryb3lSZWYsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWlucHV0cy1pbnB1dCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQcm92aWRlckNvbmZpZyB9IGZyb20gJ0BsaWJzLXVpL3NlcnZpY2VzLXRyYW5zbGF0ZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJUGFnaW5hdGlvbkZ1bmN0aW9uc0NvbnRyb2wgfSBmcm9tICcuL3BhZ2luYXRpb24udHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsIExpYnNVaUNvbXBvbmVudHNJbnB1dHNJbnB1dENvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtUcmFuc2xhdGVQcm92aWRlckNvbmZpZ10sXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBmYWtlRXZlbnRIdG1sID0gbmV3IEV2ZW50KCdjbGljaycpO1xuICBwcml2YXRlIGlzRW50ZXJTZWFyY2ggPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgbGlzdFBhZ2VEaXNwbGF5ID0gc2lnbmFsPEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4+KFtdKTtcbiAgcHJvdGVjdGVkIGdvdG9QYWdlTnVtYmVyID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHRvdGFsUGFnZSA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uQ2hhbmdlVmFsdWUgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgcmVhZG9ubHkgc2hvd1RvdGFsUGFnZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHNob3dJbnB1dEdvdG9QYWdlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSA9IGlucHV0PCd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPignYm90dG9tJyk7XG4gIHJlYWRvbmx5IGNsYXNzRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUNvbnRhaW5lciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlSXRlbSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG51bWJlclBhZ2VEaXNwbGF5ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXIgfCB1bmRlZmluZWQ+KDUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDUgfSk7XG4gIHJlYWRvbmx5IHRvdGFsSXRlbXMgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IHBlclBhZ2UgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGZpcnN0UGFnZVN0YXJ0TnVtYmVyID0gaW5wdXQ8bnVtYmVyLCAwIHwgMSB8IHVuZGVmaW5lZD4oMSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMSB9KTtcbiAgcmVhZG9ubHkgY3VycmVudFBhZ2UgPSBtb2RlbC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlQ29tcHV0ZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmN1cnJlbnRQYWdlKCkgKyAodGhpcy5maXJzdFBhZ2VTdGFydE51bWJlcigpID09PSAxID8gMCA6IDEpKTtcbiAgcmVhZG9ubHkgb3V0UGFnZVNlbGVjdCA9IG91dHB1dDxudW1iZXI+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5vbkNoYW5nZVZhbHVlLnBpcGUoZGVib3VuY2VUaW1lKDE1MDApLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNFbnRlclNlYXJjaCgpIHx8ICt2YWx1ZSA9PT0gdGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCkpIHtcbiAgICAgICAgdGhpcy5pc0VudGVyU2VhcmNoLnNldChmYWxzZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0UGFnZSh0aGlzLmZha2VFdmVudEh0bWwsIHsga2V5OiBgJHt2YWx1ZX1gLCB2YWx1ZTogYCR7dmFsdWV9YCB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghaXNOaWwodGhpcy5jdXJyZW50UGFnZSgpKSAmJiAhaXNOaWwodGhpcy50b3RhbEl0ZW1zKCkpICYmICFpc05pbCh0aGlzLnBlclBhZ2UoKSkpIHtcbiAgICAgIHRoaXMucmVuZGVyUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgRnVuY3Rpb25zQ29udHJvbCgpOiBJUGFnaW5hdGlvbkZ1bmN0aW9uc0NvbnRyb2wge1xuICAgIHJldHVybiB7XG4gICAgICBjaGFuZ2VQYWdlOiB0aGlzLmNoYW5nZVBhZ2UuYmluZCh0aGlzKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJQYWdpbmF0aW9uKCkge1xuICAgIGlmICh0aGlzLnBlclBhZ2UoKSA+IDAgJiYgIWlzTmlsKHRoaXMudG90YWxJdGVtcygpKSkge1xuICAgICAgdGhpcy50b3RhbFBhZ2Uuc2V0KE1hdGguY2VpbCh0aGlzLnRvdGFsSXRlbXMoKSAvIHRoaXMucGVyUGFnZSgpKSk7XG4gICAgfVxuICAgIHRoaXMubGlzdFBhZ2VEaXNwbGF5LnNldChbXSk7XG5cbiAgICBpZiAodGhpcy50b3RhbFBhZ2UoKSA8PSB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkpIHtcbiAgICAgIHRoaXMubGlzdFBhZ2VEaXNwbGF5LnNldChcbiAgICAgICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy50b3RhbFBhZ2UoKSB9LCAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICByZXR1cm4geyBrZXk6IGAke2luZGV4ICsgMX1gLCB2YWx1ZTogYCR7aW5kZXggKyAxfWAgfTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCkgPCB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkgLSAxKSB7XG4gICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS5zZXQoXG4gICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSB9LCAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICByZXR1cm4geyBrZXk6IGAke2luZGV4ICsgMX1gLCB2YWx1ZTogYCR7aW5kZXggKyAxfWAgfTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlQ29tcHV0ZWQoKSAtIHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSAvIDI7XG4gICAgbGV0IG51bWJlclBhZ2VCZWZvcmUgPSBzdGFydFBhZ2UgPCAwID8gdGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCkgOiBzdGFydFBhZ2UgPT09IDAgPyAwIDogdGhpcy5udW1iZXJQYWdlRGlzcGxheSgpIC8gMjtcbiAgICBjb25zdCBnYXBBZnRlciA9IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSAtIG51bWJlclBhZ2VCZWZvcmU7XG4gICAgY29uc3QgZW5kUGFnZSA9IHRoaXMuY3VycmVudFBhZ2VDb21wdXRlZCgpICsgZ2FwQWZ0ZXI7XG4gICAgY29uc3QgbnVtYmVyUGFnZUFmdGVyID0gdGhpcy50b3RhbFBhZ2UoKSA+PSBlbmRQYWdlID8gZ2FwQWZ0ZXIgOiB0aGlzLnRvdGFsUGFnZSgpIC0gdGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCk7XG5cbiAgICBpZiAobnVtYmVyUGFnZUJlZm9yZSArIG51bWJlclBhZ2VBZnRlciA8IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSkge1xuICAgICAgbnVtYmVyUGFnZUJlZm9yZSA9IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSAtIG51bWJlclBhZ2VBZnRlcjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bWJlclBhZ2VCZWZvcmU7IGkrKykge1xuICAgICAgdGhpcy5saXN0UGFnZURpc3BsYXkudXBkYXRlKChsaXN0UGFnZSkgPT4ge1xuICAgICAgICBsaXN0UGFnZS51bnNoaWZ0KHsga2V5OiBgJHt0aGlzLmN1cnJlbnRQYWdlQ29tcHV0ZWQoKSAtIGl9YCwgdmFsdWU6IGAke3RoaXMuY3VycmVudFBhZ2VDb21wdXRlZCgpIC0gaX1gIH0pO1xuXG4gICAgICAgIHJldHVybiBbLi4ubGlzdFBhZ2VdO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG51bWJlclBhZ2VBZnRlciA+PSAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBudW1iZXJQYWdlQWZ0ZXI7IGkrKykge1xuICAgICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS51cGRhdGUoKGxpc3RQYWdlKSA9PiB7XG4gICAgICAgICAgbGlzdFBhZ2UucHVzaCh7IGtleTogYCR7dGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCkgKyBpfWAsIHZhbHVlOiBgJHt0aGlzLmN1cnJlbnRQYWdlQ29tcHV0ZWQoKSArIGl9YCB9KTtcbiAgICAgICAgICByZXR1cm4gWy4uLmxpc3RQYWdlXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFBhZ2UoZTogRXZlbnQsIGl0ZW06IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgcGFnZVNlbGVjdCA9ICtpdGVtLmtleSAtICh0aGlzLmZpcnN0UGFnZVN0YXJ0TnVtYmVyKCkgPT09IDAgPyAxIDogMCk7XG4gICAgaWYgKHBhZ2VTZWxlY3QgPT09IHRoaXMuY3VycmVudFBhZ2UoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KHBhZ2VTZWxlY3QpO1xuICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dFBhZ2UoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlQ29tcHV0ZWQoKSA8IHRoaXMudG90YWxQYWdlKCkpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UudXBkYXRlKChjdXJyZW50UGFnZSkgPT4gY3VycmVudFBhZ2UgKyAxKTtcbiAgICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgICB0aGlzLnJlbmRlclBhZ2luYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJlUGFnZShlOiBFdmVudCkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2VDb21wdXRlZCgpID4gMSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS51cGRhdGUoKGN1cnJlbnRQYWdlKSA9PiBjdXJyZW50UGFnZSAtIDEpO1xuICAgICAgdGhpcy5vdXRQYWdlU2VsZWN0LmVtaXQodGhpcy5jdXJyZW50UGFnZSgpKTtcbiAgICAgIHRoaXMucmVuZGVyUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjaGFuZ2VQYWdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB2YWx1ZSA9IHZhbHVlIGFzIG51bWJlcjtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLmdvdG9QYWdlTnVtYmVyLnNldCh1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmdvdG9QYWdlTnVtYmVyLnNldCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZVZhbHVlLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFbnRlcklucHV0KCkge1xuICAgIGlmIChpc05pbCh0aGlzLmdvdG9QYWdlTnVtYmVyKCkpIHx8IHRoaXMuZ290b1BhZ2VOdW1iZXIoKSA9PT0gdGhpcy5jdXJyZW50UGFnZUNvbXB1dGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzRW50ZXJTZWFyY2guc2V0KHRydWUpO1xuICAgIHRoaXMuc2VsZWN0UGFnZSh0aGlzLmZha2VFdmVudEh0bWwsIHsga2V5OiBgJHt0aGlzLmdvdG9QYWdlTnVtYmVyKCl9YCwgdmFsdWU6IGAke3RoaXMuZ290b1BhZ2VOdW1iZXIoKX1gIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZmxleC13cmFwIHctZnVsbCBqdXN0aWZ5LWNlbnRlciB7eyBjbGFzc0luY2x1ZGVDb250YWluZXIoKSA/PyAnJyB9fVwiPlxuICBAbGV0IGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSA9IHNob3dUb3RhbFBhZ2UoKSB8fCBzaG93SW5wdXRHb3RvUGFnZSgpO1xuICBAaWYgKGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSAmJiBtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICd0b3AnKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdvdG9QYWdlTnVtYmVyUmVmXCIgLz5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiZmxleCBzaHJpbmstMCBoLWZ1bGwgaXRlbXMtY2VudGVyXCI+XG4gICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uUHJlID0gY3VycmVudFBhZ2VDb21wdXRlZCgpIDw9IDEgfHwgdG90YWxQYWdlKCkgPD0gMSB8fCBkaXNhYmxlKCk7XG4gICAgQGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAnbGVmdCcpIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnb3RvUGFnZU51bWJlclJlZlwiIC8+XG4gICAgfVxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24tYnV0dG9uIHJvdGF0ZS1bMTgwZGVnXSBwbC1bMTRweF0gcHItWzZweF1cIlxuICAgICAgW2NsYXNzLmxpYnMtdWktZGlzYWJsZV09XCJjb25zdEh0bWxEaXNhYmxlQnV0dG9uUHJlXCJcbiAgICAgIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cImNvbnN0SHRtbERpc2FibGVCdXR0b25QcmVcIlxuICAgICAgKGNsaWNrKT1cInByZVBhZ2UoJGV2ZW50KVwiPlxuICAgICAgPGkgY2xhc3M9XCJsaWJzLXVpLWljb24tY2hldnJvbi1yaWdodCBsaWJzLXVpLWZvbnQtaDJyXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIEBmb3IgKGl0ZW0gb2YgbGlzdFBhZ2VEaXNwbGF5KCk7IHRyYWNrIGl0ZW0ua2V5KSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24taXRlbSBsaWJzLXVpLWZvbnQtaDNtIHt7IGNsYXNzSW5jbHVkZUl0ZW0oKSA/PyAnJyB9fVwiXG4gICAgICAgIFtjbGFzcy5saWJzLXVpLWNvbXBvbmVudHMtcGFnaW5hdGlvbi1hY3RpdmVdPVwiaXRlbS5rZXkgPT09IGN1cnJlbnRQYWdlQ29tcHV0ZWQoKSArICcnXCJcbiAgICAgICAgW2NsYXNzLmxpYnMtdWktZGlzYWJsZV09XCJkaXNhYmxlKClcIlxuICAgICAgICBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJkaXNhYmxlKClcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0UGFnZSgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgIHt7IGl0ZW0udmFsdWUgfX1cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVtcHR5IHtcbiAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVtIHRleHQtWyM5Q0EyQURdIG14LVsxMnB4XSBmbGV4IHNocmluay0wXCI+XG4gICAgICAgIHt7ICdpMThuX25vX2RhdGFfeWV0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uTmV4dCA9IGN1cnJlbnRQYWdlQ29tcHV0ZWQoKSA+PSB0b3RhbFBhZ2UoKSB8fCBkaXNhYmxlKCk7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsaWJzLXVpLWNvbXBvbmVudHMtcGFnaW5hdGlvbi1idXR0b24gcGwtWzE0cHhdIHByLVs2cF14XCJcbiAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvbk5leHRcIlxuICAgICAgW2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvbk5leHRcIlxuICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKCRldmVudClcIj5cbiAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgbGlicy11aS1mb250LWgyclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSAmJiBtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICdyaWdodCcpIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnb3RvUGFnZU51bWJlclJlZlwiIC8+XG4gICAgfVxuICA8L2Rpdj5cbiAgQGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAnYm90dG9tJykge1xuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnb3RvUGFnZU51bWJlclJlZlwiIC8+XG4gIH1cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2dvdG9QYWdlTnVtYmVyUmVmPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IHNocmluay0wIGgtZnVsbCBpdGVtcy1jZW50ZXIge3sgY2xhc3NEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA/PyAnJyB9fVwiXG4gICAgW2NsYXNzLm1iLVsxNnB4XV09XCJtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICd0b3AnXCJcbiAgICBbY2xhc3MubXQtWzE2cHhdXT1cIm1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ2JvdHRvbSdcIj5cbiAgICBAaWYgKHNob3dUb3RhbFBhZ2UoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdXCI+XG4gICAgICAgIHt7ICdpMThuX3ZhbHVlX3N1bV9wYWdlJyB8IHRyYW5zbGF0ZTogeyB2YWx1ZTogdG90YWxQYWdlKCkgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoc2hvd0lucHV0R290b1BhZ2UoKSkge1xuICAgICAgQGlmIChzaG93VG90YWxQYWdlKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImgtWzE2cHhdIHctWzFweF0gYmctWyNDREQwRDZdXCI+PC9kaXY+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1mb250LWg1bSB0ZXh0LVsjOUNBMkFEXSBteC1bMTJweF0gZmxleCBzaHJpbmstMFwiPlxuICAgICAgICB7eyAnaTE4bl9nb190bycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInctWzYwcHhdIG1yLVsxMnB4XSBzaHJpbmstMFwiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWlucHV0cy1pbnB1dFxuICAgICAgICAgIFtkYXRhVHlwZV09XCInaW50J1wiXG4gICAgICAgICAgY2xhc3NJbmNsdWRlPVwiIXJvdW5kZWQtWzZweF1cIlxuICAgICAgICAgIFttYXhWYWx1ZU51bWJlcl09XCJ0b3RhbFBhZ2UoKVwiXG4gICAgICAgICAgW2VtaXRFbXB0eUluRGF0YVR5cGVOdW1iZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgW2RlZmF1bHRIZWlnaHRdPVwiMjhcIlxuICAgICAgICAgIFt2YWx1ZV09XCJnb3RvUGFnZU51bWJlcigpIHx8ICcnXCJcbiAgICAgICAgICAob3V0Q2hhbmdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKG91dEVudGVyRXZlbnQpPVwiaGFuZGxlckVudGVySW5wdXQoKVwiXG4gICAgICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZSgpIHx8IHRvdGFsUGFnZSgpIDw9IG51bWJlclBhZ2VEaXNwbGF5KClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3BhZ2luYXRpb24vc3JjL3BhZ2luYXRpb24udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSVBhZ2luYXRpb25Db25maWcgPSB7XG4gIHBvc2l0aW9uPzogJ3RvcCcgfCAnYm90dG9tJztcbiAgY2xhc3NJbmNsdWRlQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc0luY2x1ZGVJdGVtPzogc3RyaW5nO1xuICBkaXNhYmxlPzogYm9vbGVhbjtcbiAgbnVtYmVyUGFnZURpc3BsYXk/OiBudW1iZXI7XG4gIHNob3dUb3RhbFBhZ2U/OiBib29sZWFuO1xuICBmaXJzdFBhZ2VTdGFydE51bWJlcj86IDAgfCAxO1xuICBzaG93SW5wdXRHb3RvUGFnZT86IGJvb2xlYW47XG4gIG1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2U/OiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcbiAgY2xhc3NEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2U/OiBzdHJpbmc7XG4gIHBlclBhZ2U/OiBudW1iZXI7XG4gIHRvdGFsSXRlbXM/OiBudW1iZXI7XG4gIGN1cnJlbnRQYWdlPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJUGFnaW5hdGlvbkZ1bmN0aW9uc0NvbnRyb2wge1xuICBjaGFuZ2VQYWdlOiAocGFnZTogbnVtYmVyKSA9PiB2b2lkO1xufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { signal, input, model, computed, output, inject, DestroyRef,
|
|
3
|
+
import { signal, input, model, computed, output, inject, DestroyRef, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';
|
|
6
6
|
import { TranslateProviderConfig } from '@libs-ui/services-translate';
|
|
@@ -32,16 +32,6 @@ class LibsUiComponentsPaginationComponent {
|
|
|
32
32
|
outPageSelect = output();
|
|
33
33
|
destroyRef = inject(DestroyRef);
|
|
34
34
|
constructor() {
|
|
35
|
-
effect(() => {
|
|
36
|
-
if (!isNil(this.currentPage()) && !isNil(this.totalItems()) && !isNil(this.perPage())) {
|
|
37
|
-
untracked(() => {
|
|
38
|
-
this.renderPagination();
|
|
39
|
-
if (this.totalPage() && this.currentPageComputed() >= this.totalPage()) {
|
|
40
|
-
this.selectPage(this.fakeEventHtml, { key: `${this.totalPage()}`, value: `${this.totalPage()}` });
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
35
|
this.onChangeValue.pipe(debounceTime(1500), takeUntilDestroyed(this.destroyRef)).subscribe((value) => {
|
|
46
36
|
if (this.isEnterSearch() || +value === this.currentPageComputed()) {
|
|
47
37
|
this.isEnterSearch.set(false);
|
|
@@ -55,6 +45,11 @@ class LibsUiComponentsPaginationComponent {
|
|
|
55
45
|
this.renderPagination();
|
|
56
46
|
}
|
|
57
47
|
}
|
|
48
|
+
get FunctionsControl() {
|
|
49
|
+
return {
|
|
50
|
+
changePage: this.changePage.bind(this),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
58
53
|
renderPagination() {
|
|
59
54
|
if (this.perPage() > 0 && !isNil(this.totalItems())) {
|
|
60
55
|
this.totalPage.set(Math.ceil(this.totalItems() / this.perPage()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-components-pagination.mjs","sources":["../../../../../libs-ui/components/pagination/src/pagination.component.ts","../../../../../libs-ui/components/pagination/src/pagination.component.html","../../../../../libs-ui/components/pagination/src/libs-ui-components-pagination.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, DestroyRef, effect, inject, input, model, OnInit, output, signal, untracked } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';\nimport { TranslateProviderConfig } from '@libs-ui/services-translate';\nimport { isNil } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { debounceTime, Subject } from 'rxjs';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-pagination',\n templateUrl: './pagination.component.html',\n styleUrl: './pagination.component.scss',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsInputsInputComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TranslateProviderConfig],\n})\nexport class LibsUiComponentsPaginationComponent implements OnInit {\n private fakeEventHtml = new Event('click');\n private isEnterSearch = signal(false);\n protected listPageDisplay = signal<Array<{ key: string; value: string }>>([]);\n protected gotoPageNumber = signal<number | undefined>(undefined);\n protected totalPage = signal<number>(0);\n private readonly onChangeValue = new Subject<number>();\n\n readonly showTotalPage = input<boolean>();\n readonly showInputGotoPage = input<boolean>();\n readonly modeDisplayTotalPageAndGotoPage = input<'top' | 'bottom' | 'left' | 'right'>('bottom');\n readonly classDisplayTotalPageAndGotoPage = input<string>();\n\n readonly classIncludeContainer = input<string>();\n readonly classIncludeItem = input<string>();\n readonly disable = input<boolean>();\n readonly numberPageDisplay = input<number, number | undefined>(5, { transform: (value) => value || 5 });\n readonly totalItems = input.required<number>();\n readonly perPage = input.required<number>();\n readonly firstPageStartNumber = input<number, 0 | 1 | undefined>(1, { transform: (value) => value ?? 1 });\n readonly currentPage = model.required<number>();\n readonly currentPageComputed = computed(() => this.currentPage() + (this.firstPageStartNumber() === 1 ? 0 : 1));\n readonly outPageSelect = output<number>();\n private readonly destroyRef = inject(DestroyRef);\n constructor() {\n effect(() => {\n if (!isNil(this.currentPage()) && !isNil(this.totalItems()) && !isNil(this.perPage())) {\n untracked(() => {\n this.renderPagination();\n if (this.totalPage() && this.currentPageComputed() >= this.totalPage()) {\n this.selectPage(this.fakeEventHtml, { key: `${this.totalPage()}`, value: `${this.totalPage()}` });\n }\n });\n }\n });\n this.onChangeValue.pipe(debounceTime(1500), takeUntilDestroyed(this.destroyRef)).subscribe((value) => {\n if (this.isEnterSearch() || +value === this.currentPageComputed()) {\n this.isEnterSearch.set(false);\n return;\n }\n this.selectPage(this.fakeEventHtml, { key: `${value}`, value: `${value}` });\n });\n }\n\n ngOnInit(): void {\n if (!isNil(this.currentPage()) && !isNil(this.totalItems()) && !isNil(this.perPage())) {\n this.renderPagination();\n }\n }\n\n private renderPagination() {\n if (this.perPage() > 0 && !isNil(this.totalItems())) {\n this.totalPage.set(Math.ceil(this.totalItems() / this.perPage()));\n }\n this.listPageDisplay.set([]);\n\n if (this.totalPage() <= this.numberPageDisplay()) {\n this.listPageDisplay.set(\n Array.from({ length: this.totalPage() }, (_, index) => {\n return { key: `${index + 1}`, value: `${index + 1}` };\n })\n );\n\n return;\n }\n\n if (this.currentPageComputed() < this.numberPageDisplay() - 1) {\n this.listPageDisplay.set(\n Array.from({ length: this.numberPageDisplay() }, (_, index) => {\n return { key: `${index + 1}`, value: `${index + 1}` };\n })\n );\n\n return;\n }\n\n const startPage = this.currentPageComputed() - this.numberPageDisplay() / 2;\n let numberPageBefore = startPage < 0 ? this.currentPageComputed() : startPage === 0 ? 0 : this.numberPageDisplay() / 2;\n const gapAfter = this.numberPageDisplay() - numberPageBefore;\n const endPage = this.currentPageComputed() + gapAfter;\n const numberPageAfter = this.totalPage() >= endPage ? gapAfter : this.totalPage() - this.currentPageComputed();\n\n if (numberPageBefore + numberPageAfter < this.numberPageDisplay()) {\n numberPageBefore = this.numberPageDisplay() - numberPageAfter;\n }\n\n for (let i = 0; i < numberPageBefore; i++) {\n this.listPageDisplay.update((listPage) => {\n listPage.unshift({ key: `${this.currentPageComputed() - i}`, value: `${this.currentPageComputed() - i}` });\n\n return [...listPage];\n });\n }\n\n if (numberPageAfter >= 0) {\n for (let i = 1; i <= numberPageAfter; i++) {\n this.listPageDisplay.update((listPage) => {\n listPage.push({ key: `${this.currentPageComputed() + i}`, value: `${this.currentPageComputed() + i}` });\n return [...listPage];\n });\n }\n }\n }\n\n protected selectPage(e: Event, item: { key: string; value: string }) {\n e.stopPropagation();\n const pageSelect = +item.key - (this.firstPageStartNumber() === 0 ? 1 : 0);\n if (pageSelect === this.currentPage()) {\n return;\n }\n\n this.currentPage.set(pageSelect);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\n\n protected nextPage(e: Event) {\n e.stopPropagation();\n if (this.currentPageComputed() < this.totalPage()) {\n this.currentPage.update((currentPage) => currentPage + 1);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\n }\n\n protected prePage(e: Event) {\n e.stopPropagation();\n if (this.currentPageComputed() > 1) {\n this.currentPage.update((currentPage) => currentPage - 1);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\n }\n\n protected changePage(value: string | number) {\n value = value as number;\n if (!value) {\n this.gotoPageNumber.set(undefined);\n return;\n }\n this.gotoPageNumber.set(value);\n this.onChangeValue.next(value);\n }\n\n protected handlerEnterInput() {\n if (isNil(this.gotoPageNumber()) || this.gotoPageNumber() === this.currentPageComputed()) {\n return;\n }\n\n this.isEnterSearch.set(true);\n this.selectPage(this.fakeEventHtml, { key: `${this.gotoPageNumber()}`, value: `${this.gotoPageNumber()}` });\n }\n}\n","<div class=\"flex flex-col items-center flex-wrap w-full justify-center {{ classIncludeContainer() ?? '' }}\">\n @let constHtmlDisplayTotalPageAndGotoPage = showTotalPage() || showInputGotoPage();\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre = currentPageComputed() <= 1 || totalPage() <= 1 || disable();\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div\n class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\"\n [class.pointer-events-none]=\"constHtmlDisableButtonPre\"\n (click)=\"prePage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n @for (item of listPageDisplay(); track item.key) {\n <div\n class=\"libs-ui-components-pagination-item libs-ui-font-h3m {{ classIncludeItem() ?? '' }}\"\n [class.libs-ui-components-pagination-active]=\"item.key === currentPageComputed() + ''\"\n [class.libs-ui-disable]=\"disable()\"\n [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event, item)\">\n {{ item.value }}\n </div>\n } @empty {\n <div class=\"libs-ui-font-h5m text-[#9CA2AD] mx-[12px] flex shrink-0\">\n {{ 'i18n_no_data_yet' | translate }}\n </div>\n }\n\n @let constHtmlDisableButtonNext = currentPageComputed() >= totalPage() || disable();\n <div\n class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n [class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n (click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div\n class=\"flex shrink-0 h-full items-center {{ classDisplayTotalPageAndGotoPage() ?? '' }}\"\n [class.mb-[16px]]=\"modeDisplayTotalPageAndGotoPage() === 'top'\"\n [class.mt-[16px]]=\"modeDisplayTotalPageAndGotoPage() === 'bottom'\">\n @if (showTotalPage()) {\n <div class=\"libs-ui-font-h5m text-[#9CA2AD] mx-[12px]\">\n {{ 'i18n_value_sum_page' | translate: { value: totalPage() } }}\n </div>\n }\n @if (showInputGotoPage()) {\n @if (showTotalPage()) {\n <div class=\"h-[16px] w-[1px] bg-[#CDD0D6]\"></div>\n }\n <div class=\"libs-ui-font-h5m text-[#9CA2AD] mx-[12px] flex shrink-0\">\n {{ 'i18n_go_to' | translate }}\n </div>\n <div class=\"w-[60px] mr-[12px] shrink-0\">\n <libs_ui-components-inputs-input\n [dataType]=\"'int'\"\n classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\"\n [emitEmptyInDataTypeNumber]=\"true\"\n [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\"\n (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\"\n [disable]=\"disable() || totalPage() <= numberPageDisplay()\" />\n </div>\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libs-ui-components-pagination.mjs","sources":["../../../../../libs-ui/components/pagination/src/pagination.component.ts","../../../../../libs-ui/components/pagination/src/pagination.component.html","../../../../../libs-ui/components/pagination/src/libs-ui-components-pagination.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input, model, OnInit, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';\nimport { TranslateProviderConfig } from '@libs-ui/services-translate';\nimport { isNil } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { debounceTime, Subject } from 'rxjs';\nimport { IPaginationFunctionsControl } from './pagination.type';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-pagination',\n templateUrl: './pagination.component.html',\n styleUrl: './pagination.component.scss',\n standalone: true,\n imports: [TranslateModule, LibsUiComponentsInputsInputComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TranslateProviderConfig],\n})\nexport class LibsUiComponentsPaginationComponent implements OnInit {\n private fakeEventHtml = new Event('click');\n private isEnterSearch = signal(false);\n protected listPageDisplay = signal<Array<{ key: string; value: string }>>([]);\n protected gotoPageNumber = signal<number | undefined>(undefined);\n protected totalPage = signal<number>(0);\n private readonly onChangeValue = new Subject<number>();\n\n readonly showTotalPage = input<boolean>();\n readonly showInputGotoPage = input<boolean>();\n readonly modeDisplayTotalPageAndGotoPage = input<'top' | 'bottom' | 'left' | 'right'>('bottom');\n readonly classDisplayTotalPageAndGotoPage = input<string>();\n\n readonly classIncludeContainer = input<string>();\n readonly classIncludeItem = input<string>();\n readonly disable = input<boolean>();\n readonly numberPageDisplay = input<number, number | undefined>(5, { transform: (value) => value || 5 });\n readonly totalItems = input.required<number>();\n readonly perPage = input.required<number>();\n readonly firstPageStartNumber = input<number, 0 | 1 | undefined>(1, { transform: (value) => value ?? 1 });\n readonly currentPage = model.required<number>();\n readonly currentPageComputed = computed(() => this.currentPage() + (this.firstPageStartNumber() === 1 ? 0 : 1));\n readonly outPageSelect = output<number>();\n private readonly destroyRef = inject(DestroyRef);\n constructor() {\n this.onChangeValue.pipe(debounceTime(1500), takeUntilDestroyed(this.destroyRef)).subscribe((value) => {\n if (this.isEnterSearch() || +value === this.currentPageComputed()) {\n this.isEnterSearch.set(false);\n return;\n }\n this.selectPage(this.fakeEventHtml, { key: `${value}`, value: `${value}` });\n });\n }\n\n ngOnInit(): void {\n if (!isNil(this.currentPage()) && !isNil(this.totalItems()) && !isNil(this.perPage())) {\n this.renderPagination();\n }\n }\n\n public get FunctionsControl(): IPaginationFunctionsControl {\n return {\n changePage: this.changePage.bind(this),\n };\n }\n\n private renderPagination() {\n if (this.perPage() > 0 && !isNil(this.totalItems())) {\n this.totalPage.set(Math.ceil(this.totalItems() / this.perPage()));\n }\n this.listPageDisplay.set([]);\n\n if (this.totalPage() <= this.numberPageDisplay()) {\n this.listPageDisplay.set(\n Array.from({ length: this.totalPage() }, (_, index) => {\n return { key: `${index + 1}`, value: `${index + 1}` };\n })\n );\n\n return;\n }\n\n if (this.currentPageComputed() < this.numberPageDisplay() - 1) {\n this.listPageDisplay.set(\n Array.from({ length: this.numberPageDisplay() }, (_, index) => {\n return { key: `${index + 1}`, value: `${index + 1}` };\n })\n );\n\n return;\n }\n\n const startPage = this.currentPageComputed() - this.numberPageDisplay() / 2;\n let numberPageBefore = startPage < 0 ? this.currentPageComputed() : startPage === 0 ? 0 : this.numberPageDisplay() / 2;\n const gapAfter = this.numberPageDisplay() - numberPageBefore;\n const endPage = this.currentPageComputed() + gapAfter;\n const numberPageAfter = this.totalPage() >= endPage ? gapAfter : this.totalPage() - this.currentPageComputed();\n\n if (numberPageBefore + numberPageAfter < this.numberPageDisplay()) {\n numberPageBefore = this.numberPageDisplay() - numberPageAfter;\n }\n\n for (let i = 0; i < numberPageBefore; i++) {\n this.listPageDisplay.update((listPage) => {\n listPage.unshift({ key: `${this.currentPageComputed() - i}`, value: `${this.currentPageComputed() - i}` });\n\n return [...listPage];\n });\n }\n\n if (numberPageAfter >= 0) {\n for (let i = 1; i <= numberPageAfter; i++) {\n this.listPageDisplay.update((listPage) => {\n listPage.push({ key: `${this.currentPageComputed() + i}`, value: `${this.currentPageComputed() + i}` });\n return [...listPage];\n });\n }\n }\n }\n\n protected selectPage(e: Event, item: { key: string; value: string }) {\n e.stopPropagation();\n const pageSelect = +item.key - (this.firstPageStartNumber() === 0 ? 1 : 0);\n if (pageSelect === this.currentPage()) {\n return;\n }\n\n this.currentPage.set(pageSelect);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\n\n protected nextPage(e: Event) {\n e.stopPropagation();\n if (this.currentPageComputed() < this.totalPage()) {\n this.currentPage.update((currentPage) => currentPage + 1);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\n }\n\n protected prePage(e: Event) {\n e.stopPropagation();\n if (this.currentPageComputed() > 1) {\n this.currentPage.update((currentPage) => currentPage - 1);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\n }\n\n protected changePage(value: string | number) {\n value = value as number;\n if (!value) {\n this.gotoPageNumber.set(undefined);\n return;\n }\n this.gotoPageNumber.set(value);\n this.onChangeValue.next(value);\n }\n\n protected handlerEnterInput() {\n if (isNil(this.gotoPageNumber()) || this.gotoPageNumber() === this.currentPageComputed()) {\n return;\n }\n\n this.isEnterSearch.set(true);\n this.selectPage(this.fakeEventHtml, { key: `${this.gotoPageNumber()}`, value: `${this.gotoPageNumber()}` });\n }\n}\n","<div class=\"flex flex-col items-center flex-wrap w-full justify-center {{ classIncludeContainer() ?? '' }}\">\n @let constHtmlDisplayTotalPageAndGotoPage = showTotalPage() || showInputGotoPage();\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre = currentPageComputed() <= 1 || totalPage() <= 1 || disable();\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div\n class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\"\n [class.pointer-events-none]=\"constHtmlDisableButtonPre\"\n (click)=\"prePage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n @for (item of listPageDisplay(); track item.key) {\n <div\n class=\"libs-ui-components-pagination-item libs-ui-font-h3m {{ classIncludeItem() ?? '' }}\"\n [class.libs-ui-components-pagination-active]=\"item.key === currentPageComputed() + ''\"\n [class.libs-ui-disable]=\"disable()\"\n [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event, item)\">\n {{ item.value }}\n </div>\n } @empty {\n <div class=\"libs-ui-font-h5m text-[#9CA2AD] mx-[12px] flex shrink-0\">\n {{ 'i18n_no_data_yet' | translate }}\n </div>\n }\n\n @let constHtmlDisableButtonNext = currentPageComputed() >= totalPage() || disable();\n <div\n class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n [class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n (click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div\n class=\"flex shrink-0 h-full items-center {{ classDisplayTotalPageAndGotoPage() ?? '' }}\"\n [class.mb-[16px]]=\"modeDisplayTotalPageAndGotoPage() === 'top'\"\n [class.mt-[16px]]=\"modeDisplayTotalPageAndGotoPage() === 'bottom'\">\n @if (showTotalPage()) {\n <div class=\"libs-ui-font-h5m text-[#9CA2AD] mx-[12px]\">\n {{ 'i18n_value_sum_page' | translate: { value: totalPage() } }}\n </div>\n }\n @if (showInputGotoPage()) {\n @if (showTotalPage()) {\n <div class=\"h-[16px] w-[1px] bg-[#CDD0D6]\"></div>\n }\n <div class=\"libs-ui-font-h5m text-[#9CA2AD] mx-[12px] flex shrink-0\">\n {{ 'i18n_go_to' | translate }}\n </div>\n <div class=\"w-[60px] mr-[12px] shrink-0\">\n <libs_ui-components-inputs-input\n [dataType]=\"'int'\"\n classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\"\n [emitEmptyInDataTypeNumber]=\"true\"\n [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\"\n (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\"\n [disable]=\"disable() || totalPage() <= numberPageDisplay()\" />\n </div>\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libs-ui/components-pagination",
|
|
3
|
-
"version": "0.2.356-
|
|
3
|
+
"version": "0.2.356-33",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=18.0.0",
|
|
6
6
|
"@angular/core": ">=18.0.0",
|
|
7
|
-
"@libs-ui/components-inputs-input": "0.2.356-
|
|
8
|
-
"@libs-ui/services-translate": "0.2.356-
|
|
7
|
+
"@libs-ui/components-inputs-input": "0.2.356-33",
|
|
8
|
+
"@libs-ui/services-translate": "0.2.356-33",
|
|
9
9
|
"@ngx-translate/core": "^15.0.0",
|
|
10
10
|
"rxjs": "~7.8.0",
|
|
11
|
-
"@libs-ui/utils": "0.2.356-
|
|
11
|
+
"@libs-ui/utils": "0.2.356-33"
|
|
12
12
|
},
|
|
13
13
|
"sideEffects": false,
|
|
14
14
|
"module": "fesm2022/libs-ui-components-pagination.mjs",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
+
import { IPaginationFunctionsControl } from './pagination.type';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class LibsUiComponentsPaginationComponent implements OnInit {
|
|
4
5
|
private fakeEventHtml;
|
|
@@ -27,6 +28,7 @@ export declare class LibsUiComponentsPaginationComponent implements OnInit {
|
|
|
27
28
|
private readonly destroyRef;
|
|
28
29
|
constructor();
|
|
29
30
|
ngOnInit(): void;
|
|
31
|
+
get FunctionsControl(): IPaginationFunctionsControl;
|
|
30
32
|
private renderPagination;
|
|
31
33
|
protected selectPage(e: Event, item: {
|
|
32
34
|
key: string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type IPaginationConfig = {
|
|
2
|
+
position?: 'top' | 'bottom';
|
|
3
|
+
classIncludeContainer?: string;
|
|
4
|
+
classIncludeItem?: string;
|
|
5
|
+
disable?: boolean;
|
|
6
|
+
numberPageDisplay?: number;
|
|
7
|
+
showTotalPage?: boolean;
|
|
8
|
+
firstPageStartNumber?: 0 | 1;
|
|
9
|
+
showInputGotoPage?: boolean;
|
|
10
|
+
modeDisplayTotalPageAndGotoPage?: 'top' | 'bottom' | 'left' | 'right';
|
|
11
|
+
classDisplayTotalPageAndGotoPage?: string;
|
|
12
|
+
perPage?: number;
|
|
13
|
+
totalItems?: number;
|
|
14
|
+
currentPage?: number;
|
|
15
|
+
};
|
|
16
|
+
export interface IPaginationFunctionsControl {
|
|
17
|
+
changePage: (page: number) => void;
|
|
18
|
+
}
|