@libs-ui/components-pagination 0.2.341-0 → 0.2.343-0
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.
|
@@ -21,7 +21,7 @@ export class LibsUiComponentsPaginationComponent {
|
|
|
21
21
|
classIncludeContainer = input();
|
|
22
22
|
classIncludeItem = input();
|
|
23
23
|
disable = input();
|
|
24
|
-
|
|
24
|
+
numberPageDisplay = input(5, { transform: (value) => value || 5 });
|
|
25
25
|
totalItems = input.required();
|
|
26
26
|
perPage = input.required();
|
|
27
27
|
currentPage = model.required();
|
|
@@ -52,25 +52,25 @@ export class LibsUiComponentsPaginationComponent {
|
|
|
52
52
|
this.totalPage.set(Math.ceil(this.totalItems() / this.perPage()));
|
|
53
53
|
}
|
|
54
54
|
this.listPageDisplay.set([]);
|
|
55
|
-
if (this.totalPage() <= this.
|
|
55
|
+
if (this.totalPage() <= this.numberPageDisplay()) {
|
|
56
56
|
this.listPageDisplay.set(Array.from({ length: this.totalPage() }, (_, index) => {
|
|
57
57
|
return { key: `${index + 1}`, value: `${index + 1}` };
|
|
58
58
|
}));
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
if (this.currentPage() < this.
|
|
62
|
-
this.listPageDisplay.set(Array.from({ length: this.
|
|
61
|
+
if (this.currentPage() < this.numberPageDisplay() - 1) {
|
|
62
|
+
this.listPageDisplay.set(Array.from({ length: this.numberPageDisplay() }, (_, index) => {
|
|
63
63
|
return { key: `${index + 1}`, value: `${index + 1}` };
|
|
64
64
|
}));
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
|
-
const startPage = this.currentPage() - this.
|
|
68
|
-
let numberPageBefore = startPage < 0 ? this.currentPage() : startPage === 0 ? 0 : this.
|
|
69
|
-
const gapAfer = this.
|
|
67
|
+
const startPage = this.currentPage() - this.numberPageDisplay() / 2;
|
|
68
|
+
let numberPageBefore = startPage < 0 ? this.currentPage() : startPage === 0 ? 0 : this.numberPageDisplay() / 2;
|
|
69
|
+
const gapAfer = this.numberPageDisplay() - numberPageBefore;
|
|
70
70
|
const endPage = this.currentPage() + gapAfer;
|
|
71
71
|
const numberPageAfter = this.totalPage() >= endPage ? gapAfer : this.totalPage() - this.currentPage();
|
|
72
|
-
if (numberPageBefore + numberPageAfter < this.
|
|
73
|
-
numberPageBefore = this.
|
|
72
|
+
if (numberPageBefore + numberPageAfter < this.numberPageDisplay()) {
|
|
73
|
+
numberPageBefore = this.numberPageDisplay() - numberPageAfter;
|
|
74
74
|
}
|
|
75
75
|
for (let i = 0; i < numberPageBefore; i++) {
|
|
76
76
|
this.listPageDisplay.update((listPage) => {
|
|
@@ -133,10 +133,10 @@ export class LibsUiComponentsPaginationComponent {
|
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
136
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPaginationComponent, isStandalone: true, selector: "libs_ui-components-pagination", inputs: { showTotalPage: { classPropertyName: "showTotalPage", publicName: "showTotalPage", isSignal: true, isRequired: false, transformFunction: null }, showInputGotoPage: { classPropertyName: "showInputGotoPage", publicName: "showInputGotoPage", isSignal: true, isRequired: false, transformFunction: null }, modeDisplayTotalPageAndGotoPage: { classPropertyName: "modeDisplayTotalPageAndGotoPage", publicName: "modeDisplayTotalPageAndGotoPage", isSignal: true, isRequired: false, transformFunction: null }, classDisplayTotalPageAndGotoPage: { classPropertyName: "classDisplayTotalPageAndGotoPage", publicName: "classDisplayTotalPageAndGotoPage", isSignal: true, isRequired: false, transformFunction: null }, classIncludeContainer: { classPropertyName: "classIncludeContainer", publicName: "classIncludeContainer", isSignal: true, isRequired: false, transformFunction: null }, classIncludeItem: { classPropertyName: "classIncludeItem", publicName: "classIncludeItem", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null },
|
|
136
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPaginationComponent, isStandalone: true, selector: "libs_ui-components-pagination", inputs: { showTotalPage: { classPropertyName: "showTotalPage", publicName: "showTotalPage", isSignal: true, isRequired: false, transformFunction: null }, showInputGotoPage: { classPropertyName: "showInputGotoPage", publicName: "showInputGotoPage", isSignal: true, isRequired: false, transformFunction: null }, modeDisplayTotalPageAndGotoPage: { classPropertyName: "modeDisplayTotalPageAndGotoPage", publicName: "modeDisplayTotalPageAndGotoPage", isSignal: true, isRequired: false, transformFunction: null }, classDisplayTotalPageAndGotoPage: { classPropertyName: "classDisplayTotalPageAndGotoPage", publicName: "classDisplayTotalPageAndGotoPage", isSignal: true, isRequired: false, transformFunction: null }, classIncludeContainer: { classPropertyName: "classIncludeContainer", publicName: "classIncludeContainer", isSignal: true, isRequired: false, transformFunction: null }, classIncludeItem: { classPropertyName: "classIncludeItem", publicName: "classIncludeItem", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, numberPageDisplay: { classPropertyName: "numberPageDisplay", publicName: "numberPageDisplay", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, perPage: { classPropertyName: "perPage", publicName: "perPage", isSignal: true, isRequired: true, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { currentPage: "currentPageChange", outPageSelect: "outPageSelect" }, providers: [TranslateProviderConfig], ngImport: i0, 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 = currentPage() <= 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 === currentPage() + ''\"\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 @let constHtmlDisableButtonNext = currentPage() >= 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() <= 5\" />\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"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsInputComponent, selector: "libs_ui-components-inputs-input", inputs: ["tagInput", "dataType", "typeInput", "modeInput", "tabInsertContentTagInput", "textAreaEnterNotNewLine", "emitEmptyInDataTypeNumber", "keepZeroInTypeInt", "autoAddZeroLessThan10InTypeInt", "ignoreBlockInputMaxValue", "maxValueNumber", "minValueNumber", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "classInclude", "maxLength", "readonly", "disable", "noBorder", "backgroundNone", "borderError", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "value", "autoRemoveEmoji", "defaultHeight", "minHeightTextArea", "maxHeightTextArea", "focusTimeOut", "selectAllTimeOut", "blurTimeOut", "zIndexPopoverContent", "classContainerInput", "showCount", "ignoreStopPropagationEvent", "resize", "templateLeftBottomInput", "templateRightBottomInput", "classContainerBottomInput", "ignoreWidthInput100", "iframeTextareaCustomStyle", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "resetAutoCompletePassword", "acceptOnlyClickIcon", "setIconRightColorSameColorDisableReadOnly", "onlyAcceptNegativeValue", "maxLengthNumberCount", "focusInput"], outputs: ["maxValueNumberChange", "minValueNumberChange", "fixedFloatChange", "acceptNegativeValueChange", "maxLengthChange", "valueChange", "maxLengthNumberCountChange", "outHeightAreaChange", "outChange", "outFocusAndBlurEvent", "outEnterEvent", "outInputEvent", "outIconLeft", "outIconRight", "outFunctionsControl", "outFilesDrop", "outFileDrop", "outChangeValueByButtonUpDown"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
137
137
|
}
|
|
138
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPaginationComponent, decorators: [{
|
|
139
139
|
type: Component,
|
|
140
140
|
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 = currentPage() <= 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 === currentPage() + ''\"\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 @let constHtmlDisableButtonNext = currentPage() >= 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() <= 5\" />\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"] }]
|
|
141
141
|
}], ctorParameters: () => [] });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBWW5ELE1BQU0sT0FBTyxtQ0FBbUM7SUFDdEMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixlQUFlLEdBQUcsTUFBTSxDQUF3QyxFQUFFLENBQUMsQ0FBQztJQUNwRSxjQUFjLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUN2RCxTQUFTLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLGFBQWEs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QkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO3dHQWxKVSxtQ0FBbUM7NEZBQW5DLG1DQUFtQyx5MERBRm5DLENBQUMsdUJBQXVCLENBQUMsMEJDakJ0Qyx3bEhBZ0ZBLHVvQkRqRVksZUFBZSw0RkFBRSxvQ0FBb0Msd2hEQUFFLGdCQUFnQjs7NEZBSXRFLG1DQUFtQztrQkFWL0MsU0FBUzsrQkFFRSwrQkFBK0IsY0FHN0IsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLG9DQUFvQyxFQUFFLGdCQUFnQixDQUFDLG1CQUNqRSx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBvdXRwdXQsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWlucHV0cy1pbnB1dCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQcm92aWRlckNvbmZpZyB9IGZyb20gJ0BsaWJzLXVpL3NlcnZpY2VzLXRyYW5zbGF0ZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTGlic1VpQ29tcG9uZW50c0lucHV0c0lucHV0Q29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1RyYW5zbGF0ZVByb3ZpZGVyQ29uZmlnXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c1BhZ2luYXRpb25Db21wb25lbnQge1xuICBwcml2YXRlIGlzRW50ZXJTZWFyY2ggPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgbGlzdFBhZ2VEaXNwbGF5ID0gc2lnbmFsPEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4+KFtdKTtcbiAgcHJvdGVjdGVkIGdvdG9QYWdlTnVtYmVyID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHRvdGFsUGFnZSA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uQ2hhbmdlVmFsdWUgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgcmVhZG9ubHkgc2hvd1RvdGFsUGFnZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHNob3dJbnB1dEdvdG9QYWdlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSA9IGlucHV0PCd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPignYm90dG9tJyk7XG4gIHJlYWRvbmx5IGNsYXNzRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUNvbnRhaW5lciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlSXRlbSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG51bWJlclBhZ2VEaXNwYWx5ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXIgfCB1bmRlZmluZWQ+KDUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDUgfSk7XG4gIHJlYWRvbmx5IHRvdGFsSXRlbXMgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IHBlclBhZ2UgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlID0gbW9kZWwucmVxdWlyZWQ8bnVtYmVyPigpO1xuXG4gIHJlYWRvbmx5IG91dFBhZ2VTZWxlY3QgPSBvdXRwdXQ8bnVtYmVyPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIWlzTmlsKHRoaXMuY3VycmVudFBhZ2UoKSkgJiYgIWlzTmlsKHRoaXMudG90YWxJdGVtcygpKSAmJiAhaXNOaWwodGhpcy5wZXJQYWdlKCkpKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgICAgICAgaWYgKHRoaXMudG90YWxQYWdlKCkgJiYgdGhpcy5jdXJyZW50UGFnZSgpID49IHRoaXMudG90YWxQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlSW5wdXRTZWFyY2godGhpcy50b3RhbFBhZ2UoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2hhbmdlVmFsdWUucGlwZShkZWJvdW5jZVRpbWUoMTUwMCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0VudGVyU2VhcmNoKCkpIHtcbiAgICAgICAgdGhpcy5pc0VudGVyU2VhcmNoLnNldChmYWxzZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KHZhbHVlKTtcbiAgICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBhZ2luYXRpb24oKSB7XG4gICAgaWYgKHRoaXMucGVyUGFnZSgpID4gMCAmJiAhaXNOaWwodGhpcy50b3RhbEl0ZW1zKCkpKSB7XG4gICAgICB0aGlzLnRvdGFsUGFnZS5zZXQoTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcygpIC8gdGhpcy5wZXJQYWdlKCkpKTtcbiAgICB9XG4gICAgdGhpcy5saXN0UGFnZURpc3BsYXkuc2V0KFtdKTtcblxuICAgIGlmICh0aGlzLnRvdGFsUGFnZSgpIDw9IHRoaXMubnVtYmVyUGFnZURpc3BhbHkoKSkge1xuICAgICAgdGhpcy5saXN0UGFnZURpc3BsYXkuc2V0KFxuICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLnRvdGFsUGFnZSgpIH0sIChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgIHJldHVybiB7IGtleTogYCR7aW5kZXggKyAxfWAsIHZhbHVlOiBgJHtpbmRleCArIDF9YCB9O1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKCkgPCB0aGlzLm51bWJlclBhZ2VEaXNwYWx5KCkgLSAxKSB7XG4gICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS5zZXQoXG4gICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMubnVtYmVyUGFnZURpc3BhbHkoKSB9LCAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICByZXR1cm4geyBrZXk6IGAke2luZGV4ICsgMX1gLCB2YWx1ZTogYCR7aW5kZXggKyAxfWAgfTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgLSB0aGlzLm51bWJlclBhZ2VEaXNwYWx5KCkgLyAyO1xuICAgIGxldCBudW1iZXJQYWdlQmVmb3JlID0gc3RhcnRQYWdlIDwgMCA/IHRoaXMuY3VycmVudFBhZ2UoKSA6IHN0YXJ0UGFnZSA9PT0gMCA/IDAgOiB0aGlzLm51bWJlclBhZ2VEaXNwYWx5KCkgLyAyO1xuICAgIGNvbnN0IGdhcEFmZXIgPSB0aGlzLm51bWJlclBhZ2VEaXNwYWx5KCkgLSBudW1iZXJQYWdlQmVmb3JlO1xuICAgIGNvbnN0IGVuZFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgKyBnYXBBZmVyO1xuICAgIGNvbnN0IG51bWJlclBhZ2VBZnRlciA9IHRoaXMudG90YWxQYWdlKCkgPj0gZW5kUGFnZSA/IGdhcEFmZXIgOiB0aGlzLnRvdGFsUGFnZSgpIC0gdGhpcy5jdXJyZW50UGFnZSgpO1xuXG4gICAgaWYgKG51bWJlclBhZ2VCZWZvcmUgKyBudW1iZXJQYWdlQWZ0ZXIgPCB0aGlzLm51bWJlclBhZ2VEaXNwYWx5KCkpIHtcbiAgICAgIG51bWJlclBhZ2VCZWZvcmUgPSB0aGlzLm51bWJlclBhZ2VEaXNwYWx5KCkgLSBudW1iZXJQYWdlQWZ0ZXI7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJQYWdlQmVmb3JlOyBpKyspIHtcbiAgICAgIHRoaXMubGlzdFBhZ2VEaXNwbGF5LnVwZGF0ZSgobGlzdFBhZ2UpID0+IHtcbiAgICAgICAgbGlzdFBhZ2UudW5zaGlmdCh7IGtleTogYCR7dGhpcy5jdXJyZW50UGFnZSgpIC0gaX1gLCB2YWx1ZTogYCR7dGhpcy5jdXJyZW50UGFnZSgpIC0gaX1gIH0pO1xuXG4gICAgICAgIHJldHVybiBbLi4ubGlzdFBhZ2VdO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG51bWJlclBhZ2VBZnRlciA+PSAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBudW1iZXJQYWdlQWZ0ZXI7IGkrKykge1xuICAgICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS51cGRhdGUoKGxpc3RQYWdlKSA9PiB7XG4gICAgICAgICAgbGlzdFBhZ2UucHVzaCh7IGtleTogYCR7dGhpcy5jdXJyZW50UGFnZSgpICsgaX1gLCB2YWx1ZTogYCR7dGhpcy5jdXJyZW50UGFnZSgpICsgaX1gIH0pO1xuICAgICAgICAgIHJldHVybiBbLi4ubGlzdFBhZ2VdO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0UGFnZShlOiBFdmVudCwgaXRlbTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCgraXRlbS5rZXkpO1xuICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dFBhZ2UoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKCkgPCB0aGlzLnRvdGFsUGFnZSgpKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnVwZGF0ZSgoY3VycmVudFBhZ2UpID0+IGN1cnJlbnRQYWdlICsgMSk7XG4gICAgICB0aGlzLm91dFBhZ2VTZWxlY3QuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKCkpO1xuICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByZVBhZ2UoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKCkgPiAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnVwZGF0ZSgoY3VycmVudFBhZ2UpID0+IGN1cnJlbnRQYWdlIC0gMSk7XG4gICAgICB0aGlzLm91dFBhZ2VTZWxlY3QuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKCkpO1xuICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNoYW5nZVBhZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHZhbHVlID0gdmFsdWUgYXMgbnVtYmVyO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuZ290b1BhZ2VOdW1iZXIuc2V0KHVuZGVmaW5lZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZ290b1BhZ2VOdW1iZXIuc2V0KHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlVmFsdWUubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckVudGVySW5wdXQoKSB7XG4gICAgaWYgKCF0aGlzLmdvdG9QYWdlTnVtYmVyKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0VudGVyU2VhcmNoLnNldCh0cnVlKTtcbiAgICB0aGlzLmNoYW5nZUlucHV0U2VhcmNoKHRoaXMuZ290b1BhZ2VOdW1iZXIoKSBhcyBudW1iZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VJbnB1dFNlYXJjaCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlID49IDEgJiYgdmFsdWUgPD0gdGhpcy50b3RhbFBhZ2UoKSAmJiB2YWx1ZSAhPT0gdGhpcy5jdXJyZW50UGFnZSgpKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCh2YWx1ZSk7XG4gICAgICB0aGlzLm91dFBhZ2VTZWxlY3QuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKCkpO1xuICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZmxleC13cmFwIHctZnVsbCBqdXN0aWZ5LWNlbnRlciB7eyBjbGFzc0luY2x1ZGVDb250YWluZXIoKSA/PyAnJyB9fVwiPlxuICBAbGV0IGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSA9IHNob3dUb3RhbFBhZ2UoKSB8fCBzaG93SW5wdXRHb3RvUGFnZSgpO1xuICBAaWYgKGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSAmJiBtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICd0b3AnKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdvdG9QYWdlTnVtYmVyUmVmXCIgLz5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiZmxleCBzaHJpbmstMCBoLWZ1bGwgaXRlbXMtY2VudGVyXCI+XG4gICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uUHJlID0gY3VycmVudFBhZ2UoKSA8PSAxIHx8IHRvdGFsUGFnZSgpIDw9IDEgfHwgZGlzYWJsZSgpO1xuICAgIEBpZiAoY29uc3RIdG1sRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlICYmIG1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ2xlZnQnKSB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ290b1BhZ2VOdW1iZXJSZWZcIiAvPlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWJ1dHRvbiByb3RhdGUtWzE4MGRlZ10gcGwtWzE0cHhdIHByLVs2cHhdXCJcbiAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvblByZVwiXG4gICAgICBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJjb25zdEh0bWxEaXNhYmxlQnV0dG9uUHJlXCJcbiAgICAgIChjbGljayk9XCJwcmVQYWdlKCRldmVudClcIj5cbiAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgbGlicy11aS1mb250LWgyclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICBAZm9yIChpdGVtIG9mIGxpc3RQYWdlRGlzcGxheSgpOyB0cmFjayBpdGVtLmtleSkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWl0ZW0gbGlicy11aS1mb250LWgzbSB7eyBjbGFzc0luY2x1ZGVJdGVtKCkgPz8gJycgfX1cIlxuICAgICAgICBbY2xhc3MubGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24tYWN0aXZlXT1cIml0ZW0ua2V5ID09PSBjdXJyZW50UGFnZSgpICsgJydcIlxuICAgICAgICBbY2xhc3MubGlicy11aS1kaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICAgIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cImRpc2FibGUoKVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RQYWdlKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgfSBAZW1wdHkge1xuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdIGZsZXggc2hyaW5rLTBcIj5cbiAgICAgICAge3sgJ2kxOG5fbm9fZGF0YV95ZXQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uTmV4dCA9IGN1cnJlbnRQYWdlKCkgPj0gdG90YWxQYWdlKCkgfHwgZGlzYWJsZSgpO1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24tYnV0dG9uIHBsLVsxNHB4XSBwci1bNnBdeFwiXG4gICAgICBbY2xhc3MubGlicy11aS1kaXNhYmxlXT1cImNvbnN0SHRtbERpc2FibGVCdXR0b25OZXh0XCJcbiAgICAgIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cImNvbnN0SHRtbERpc2FibGVCdXR0b25OZXh0XCJcbiAgICAgIChjbGljayk9XCJuZXh0UGFnZSgkZXZlbnQpXCI+XG4gICAgICA8aSBjbGFzcz1cImxpYnMtdWktaWNvbi1jaGV2cm9uLXJpZ2h0IGxpYnMtdWktZm9udC1oMnJcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgQGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAncmlnaHQnKSB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ290b1BhZ2VOdW1iZXJSZWZcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG4gIEBpZiAoY29uc3RIdG1sRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlICYmIG1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ2JvdHRvbScpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ290b1BhZ2VOdW1iZXJSZWZcIiAvPlxuICB9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNnb3RvUGFnZU51bWJlclJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBzaHJpbmstMCBoLWZ1bGwgaXRlbXMtY2VudGVyIHt7IGNsYXNzRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPz8gJycgfX1cIlxuICAgIFtjbGFzcy5tYi1bMTZweF1dPVwibW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAndG9wJ1wiXG4gICAgW2NsYXNzLm10LVsxNnB4XV09XCJtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICdib3R0b20nXCI+XG4gICAgQGlmIChzaG93VG90YWxQYWdlKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVtIHRleHQtWyM5Q0EyQURdIG14LVsxMnB4XVwiPlxuICAgICAgICB7eyAnaTE4bl92YWx1ZV9zdW1fcGFnZScgfCB0cmFuc2xhdGU6IHsgdmFsdWU6IHRvdGFsUGFnZSgpIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKHNob3dJbnB1dEdvdG9QYWdlKCkpIHtcbiAgICAgIEBpZiAoc2hvd1RvdGFsUGFnZSgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoLVsxNnB4XSB3LVsxcHhdIGJnLVsjQ0REMEQ2XVwiPjwvZGl2PlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdIGZsZXggc2hyaW5rLTBcIj5cbiAgICAgICAge3sgJ2kxOG5fZ29fdG8nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LVs2MHB4XSBtci1bMTJweF0gc2hyaW5rLTBcIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtaW5wdXRcbiAgICAgICAgICBbZGF0YVR5cGVdPVwiJ2ludCdcIlxuICAgICAgICAgIGNsYXNzSW5jbHVkZT1cIiFyb3VuZGVkLVs2cHhdXCJcbiAgICAgICAgICBbbWF4VmFsdWVOdW1iZXJdPVwidG90YWxQYWdlKClcIlxuICAgICAgICAgIFtlbWl0RW1wdHlJbkRhdGFUeXBlTnVtYmVyXT1cInRydWVcIlxuICAgICAgICAgIFtkZWZhdWx0SGVpZ2h0XT1cIjI4XCJcbiAgICAgICAgICBbdmFsdWVdPVwiZ290b1BhZ2VOdW1iZXIoKSB8fCAnJ1wiXG4gICAgICAgICAgKG91dENoYW5nZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIlxuICAgICAgICAgIChvdXRFbnRlckV2ZW50KT1cImhhbmRsZXJFbnRlcklucHV0KClcIlxuICAgICAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKSB8fCB0b3RhbFBhZ2UoKSA8PSA1XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBWW5ELE1BQU0sT0FBTyxtQ0FBbUM7SUFDdEMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixlQUFlLEdBQUcsTUFBTSxDQUF3QyxFQUFFLENBQUMsQ0FBQztJQUNwRSxjQUFjLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUN2RCxTQUFTLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLGFBQWEs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QkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO3dHQWxKVSxtQ0FBbUM7NEZBQW5DLG1DQUFtQyx5MERBRm5DLENBQUMsdUJBQXVCLENBQUMsMEJDakJ0Qyx3bEhBZ0ZBLHVvQkRqRVksZUFBZSw0RkFBRSxvQ0FBb0Msd2hEQUFFLGdCQUFnQjs7NEZBSXRFLG1DQUFtQztrQkFWL0MsU0FBUzsrQkFFRSwrQkFBK0IsY0FHN0IsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLG9DQUFvQyxFQUFFLGdCQUFnQixDQUFDLG1CQUNqRSx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBvdXRwdXQsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWlucHV0cy1pbnB1dCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQcm92aWRlckNvbmZpZyB9IGZyb20gJ0BsaWJzLXVpL3NlcnZpY2VzLXRyYW5zbGF0ZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTGlic1VpQ29tcG9uZW50c0lucHV0c0lucHV0Q29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1RyYW5zbGF0ZVByb3ZpZGVyQ29uZmlnXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c1BhZ2luYXRpb25Db21wb25lbnQge1xuICBwcml2YXRlIGlzRW50ZXJTZWFyY2ggPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgbGlzdFBhZ2VEaXNwbGF5ID0gc2lnbmFsPEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4+KFtdKTtcbiAgcHJvdGVjdGVkIGdvdG9QYWdlTnVtYmVyID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHRvdGFsUGFnZSA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uQ2hhbmdlVmFsdWUgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgcmVhZG9ubHkgc2hvd1RvdGFsUGFnZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHNob3dJbnB1dEdvdG9QYWdlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSA9IGlucHV0PCd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnPignYm90dG9tJyk7XG4gIHJlYWRvbmx5IGNsYXNzRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUNvbnRhaW5lciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlSXRlbSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG51bWJlclBhZ2VEaXNwbGF5ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXIgfCB1bmRlZmluZWQ+KDUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDUgfSk7XG4gIHJlYWRvbmx5IHRvdGFsSXRlbXMgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IHBlclBhZ2UgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlID0gbW9kZWwucmVxdWlyZWQ8bnVtYmVyPigpO1xuXG4gIHJlYWRvbmx5IG91dFBhZ2VTZWxlY3QgPSBvdXRwdXQ8bnVtYmVyPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIWlzTmlsKHRoaXMuY3VycmVudFBhZ2UoKSkgJiYgIWlzTmlsKHRoaXMudG90YWxJdGVtcygpKSAmJiAhaXNOaWwodGhpcy5wZXJQYWdlKCkpKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgICAgICAgaWYgKHRoaXMudG90YWxQYWdlKCkgJiYgdGhpcy5jdXJyZW50UGFnZSgpID49IHRoaXMudG90YWxQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlSW5wdXRTZWFyY2godGhpcy50b3RhbFBhZ2UoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2hhbmdlVmFsdWUucGlwZShkZWJvdW5jZVRpbWUoMTUwMCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0VudGVyU2VhcmNoKCkpIHtcbiAgICAgICAgdGhpcy5pc0VudGVyU2VhcmNoLnNldChmYWxzZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KHZhbHVlKTtcbiAgICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBhZ2luYXRpb24oKSB7XG4gICAgaWYgKHRoaXMucGVyUGFnZSgpID4gMCAmJiAhaXNOaWwodGhpcy50b3RhbEl0ZW1zKCkpKSB7XG4gICAgICB0aGlzLnRvdGFsUGFnZS5zZXQoTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcygpIC8gdGhpcy5wZXJQYWdlKCkpKTtcbiAgICB9XG4gICAgdGhpcy5saXN0UGFnZURpc3BsYXkuc2V0KFtdKTtcblxuICAgIGlmICh0aGlzLnRvdGFsUGFnZSgpIDw9IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSkge1xuICAgICAgdGhpcy5saXN0UGFnZURpc3BsYXkuc2V0KFxuICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLnRvdGFsUGFnZSgpIH0sIChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgIHJldHVybiB7IGtleTogYCR7aW5kZXggKyAxfWAsIHZhbHVlOiBgJHtpbmRleCArIDF9YCB9O1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKCkgPCB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkgLSAxKSB7XG4gICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS5zZXQoXG4gICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMubnVtYmVyUGFnZURpc3BsYXkoKSB9LCAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICByZXR1cm4geyBrZXk6IGAke2luZGV4ICsgMX1gLCB2YWx1ZTogYCR7aW5kZXggKyAxfWAgfTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgLSB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkgLyAyO1xuICAgIGxldCBudW1iZXJQYWdlQmVmb3JlID0gc3RhcnRQYWdlIDwgMCA/IHRoaXMuY3VycmVudFBhZ2UoKSA6IHN0YXJ0UGFnZSA9PT0gMCA/IDAgOiB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkgLyAyO1xuICAgIGNvbnN0IGdhcEFmZXIgPSB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkgLSBudW1iZXJQYWdlQmVmb3JlO1xuICAgIGNvbnN0IGVuZFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgKyBnYXBBZmVyO1xuICAgIGNvbnN0IG51bWJlclBhZ2VBZnRlciA9IHRoaXMudG90YWxQYWdlKCkgPj0gZW5kUGFnZSA/IGdhcEFmZXIgOiB0aGlzLnRvdGFsUGFnZSgpIC0gdGhpcy5jdXJyZW50UGFnZSgpO1xuXG4gICAgaWYgKG51bWJlclBhZ2VCZWZvcmUgKyBudW1iZXJQYWdlQWZ0ZXIgPCB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkpIHtcbiAgICAgIG51bWJlclBhZ2VCZWZvcmUgPSB0aGlzLm51bWJlclBhZ2VEaXNwbGF5KCkgLSBudW1iZXJQYWdlQWZ0ZXI7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJQYWdlQmVmb3JlOyBpKyspIHtcbiAgICAgIHRoaXMubGlzdFBhZ2VEaXNwbGF5LnVwZGF0ZSgobGlzdFBhZ2UpID0+IHtcbiAgICAgICAgbGlzdFBhZ2UudW5zaGlmdCh7IGtleTogYCR7dGhpcy5jdXJyZW50UGFnZSgpIC0gaX1gLCB2YWx1ZTogYCR7dGhpcy5jdXJyZW50UGFnZSgpIC0gaX1gIH0pO1xuXG4gICAgICAgIHJldHVybiBbLi4ubGlzdFBhZ2VdO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG51bWJlclBhZ2VBZnRlciA+PSAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBudW1iZXJQYWdlQWZ0ZXI7IGkrKykge1xuICAgICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS51cGRhdGUoKGxpc3RQYWdlKSA9PiB7XG4gICAgICAgICAgbGlzdFBhZ2UucHVzaCh7IGtleTogYCR7dGhpcy5jdXJyZW50UGFnZSgpICsgaX1gLCB2YWx1ZTogYCR7dGhpcy5jdXJyZW50UGFnZSgpICsgaX1gIH0pO1xuICAgICAgICAgIHJldHVybiBbLi4ubGlzdFBhZ2VdO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0UGFnZShlOiBFdmVudCwgaXRlbTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCgraXRlbS5rZXkpO1xuICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dFBhZ2UoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKCkgPCB0aGlzLnRvdGFsUGFnZSgpKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnVwZGF0ZSgoY3VycmVudFBhZ2UpID0+IGN1cnJlbnRQYWdlICsgMSk7XG4gICAgICB0aGlzLm91dFBhZ2VTZWxlY3QuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKCkpO1xuICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByZVBhZ2UoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKCkgPiAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnVwZGF0ZSgoY3VycmVudFBhZ2UpID0+IGN1cnJlbnRQYWdlIC0gMSk7XG4gICAgICB0aGlzLm91dFBhZ2VTZWxlY3QuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKCkpO1xuICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNoYW5nZVBhZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHZhbHVlID0gdmFsdWUgYXMgbnVtYmVyO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuZ290b1BhZ2VOdW1iZXIuc2V0KHVuZGVmaW5lZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZ290b1BhZ2VOdW1iZXIuc2V0KHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlVmFsdWUubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckVudGVySW5wdXQoKSB7XG4gICAgaWYgKCF0aGlzLmdvdG9QYWdlTnVtYmVyKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0VudGVyU2VhcmNoLnNldCh0cnVlKTtcbiAgICB0aGlzLmNoYW5nZUlucHV0U2VhcmNoKHRoaXMuZ290b1BhZ2VOdW1iZXIoKSBhcyBudW1iZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VJbnB1dFNlYXJjaCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlID49IDEgJiYgdmFsdWUgPD0gdGhpcy50b3RhbFBhZ2UoKSAmJiB2YWx1ZSAhPT0gdGhpcy5jdXJyZW50UGFnZSgpKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCh2YWx1ZSk7XG4gICAgICB0aGlzLm91dFBhZ2VTZWxlY3QuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKCkpO1xuICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZmxleC13cmFwIHctZnVsbCBqdXN0aWZ5LWNlbnRlciB7eyBjbGFzc0luY2x1ZGVDb250YWluZXIoKSA/PyAnJyB9fVwiPlxuICBAbGV0IGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSA9IHNob3dUb3RhbFBhZ2UoKSB8fCBzaG93SW5wdXRHb3RvUGFnZSgpO1xuICBAaWYgKGNvbnN0SHRtbERpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSAmJiBtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICd0b3AnKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdvdG9QYWdlTnVtYmVyUmVmXCIgLz5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiZmxleCBzaHJpbmstMCBoLWZ1bGwgaXRlbXMtY2VudGVyXCI+XG4gICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uUHJlID0gY3VycmVudFBhZ2UoKSA8PSAxIHx8IHRvdGFsUGFnZSgpIDw9IDEgfHwgZGlzYWJsZSgpO1xuICAgIEBpZiAoY29uc3RIdG1sRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlICYmIG1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ2xlZnQnKSB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ290b1BhZ2VOdW1iZXJSZWZcIiAvPlxuICAgIH1cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWJ1dHRvbiByb3RhdGUtWzE4MGRlZ10gcGwtWzE0cHhdIHByLVs2cHhdXCJcbiAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvblByZVwiXG4gICAgICBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJjb25zdEh0bWxEaXNhYmxlQnV0dG9uUHJlXCJcbiAgICAgIChjbGljayk9XCJwcmVQYWdlKCRldmVudClcIj5cbiAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgbGlicy11aS1mb250LWgyclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICBAZm9yIChpdGVtIG9mIGxpc3RQYWdlRGlzcGxheSgpOyB0cmFjayBpdGVtLmtleSkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWl0ZW0gbGlicy11aS1mb250LWgzbSB7eyBjbGFzc0luY2x1ZGVJdGVtKCkgPz8gJycgfX1cIlxuICAgICAgICBbY2xhc3MubGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24tYWN0aXZlXT1cIml0ZW0ua2V5ID09PSBjdXJyZW50UGFnZSgpICsgJydcIlxuICAgICAgICBbY2xhc3MubGlicy11aS1kaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICAgIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cImRpc2FibGUoKVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RQYWdlKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgfSBAZW1wdHkge1xuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdIGZsZXggc2hyaW5rLTBcIj5cbiAgICAgICAge3sgJ2kxOG5fbm9fZGF0YV95ZXQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uTmV4dCA9IGN1cnJlbnRQYWdlKCkgPj0gdG90YWxQYWdlKCkgfHwgZGlzYWJsZSgpO1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24tYnV0dG9uIHBsLVsxNHB4XSBwci1bNnBdeFwiXG4gICAgICBbY2xhc3MubGlicy11aS1kaXNhYmxlXT1cImNvbnN0SHRtbERpc2FibGVCdXR0b25OZXh0XCJcbiAgICAgIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cImNvbnN0SHRtbERpc2FibGVCdXR0b25OZXh0XCJcbiAgICAgIChjbGljayk9XCJuZXh0UGFnZSgkZXZlbnQpXCI+XG4gICAgICA8aSBjbGFzcz1cImxpYnMtdWktaWNvbi1jaGV2cm9uLXJpZ2h0IGxpYnMtdWktZm9udC1oMnJcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgQGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAncmlnaHQnKSB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ290b1BhZ2VOdW1iZXJSZWZcIiAvPlxuICAgIH1cbiAgPC9kaXY+XG4gIEBpZiAoY29uc3RIdG1sRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlICYmIG1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ2JvdHRvbScpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ290b1BhZ2VOdW1iZXJSZWZcIiAvPlxuICB9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNnb3RvUGFnZU51bWJlclJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBzaHJpbmstMCBoLWZ1bGwgaXRlbXMtY2VudGVyIHt7IGNsYXNzRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPz8gJycgfX1cIlxuICAgIFtjbGFzcy5tYi1bMTZweF1dPVwibW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAndG9wJ1wiXG4gICAgW2NsYXNzLm10LVsxNnB4XV09XCJtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlKCkgPT09ICdib3R0b20nXCI+XG4gICAgQGlmIChzaG93VG90YWxQYWdlKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVtIHRleHQtWyM5Q0EyQURdIG14LVsxMnB4XVwiPlxuICAgICAgICB7eyAnaTE4bl92YWx1ZV9zdW1fcGFnZScgfCB0cmFuc2xhdGU6IHsgdmFsdWU6IHRvdGFsUGFnZSgpIH0gfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKHNob3dJbnB1dEdvdG9QYWdlKCkpIHtcbiAgICAgIEBpZiAoc2hvd1RvdGFsUGFnZSgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoLVsxNnB4XSB3LVsxcHhdIGJnLVsjQ0REMEQ2XVwiPjwvZGl2PlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdIGZsZXggc2hyaW5rLTBcIj5cbiAgICAgICAge3sgJ2kxOG5fZ29fdG8nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LVs2MHB4XSBtci1bMTJweF0gc2hyaW5rLTBcIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtaW5wdXRcbiAgICAgICAgICBbZGF0YVR5cGVdPVwiJ2ludCdcIlxuICAgICAgICAgIGNsYXNzSW5jbHVkZT1cIiFyb3VuZGVkLVs2cHhdXCJcbiAgICAgICAgICBbbWF4VmFsdWVOdW1iZXJdPVwidG90YWxQYWdlKClcIlxuICAgICAgICAgIFtlbWl0RW1wdHlJbkRhdGFUeXBlTnVtYmVyXT1cInRydWVcIlxuICAgICAgICAgIFtkZWZhdWx0SGVpZ2h0XT1cIjI4XCJcbiAgICAgICAgICBbdmFsdWVdPVwiZ290b1BhZ2VOdW1iZXIoKSB8fCAnJ1wiXG4gICAgICAgICAgKG91dENoYW5nZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIlxuICAgICAgICAgIChvdXRFbnRlckV2ZW50KT1cImhhbmRsZXJFbnRlcklucHV0KClcIlxuICAgICAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKSB8fCB0b3RhbFBhZ2UoKSA8PSA1XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -22,7 +22,7 @@ class LibsUiComponentsPaginationComponent {
|
|
|
22
22
|
classIncludeContainer = input();
|
|
23
23
|
classIncludeItem = input();
|
|
24
24
|
disable = input();
|
|
25
|
-
|
|
25
|
+
numberPageDisplay = input(5, { transform: (value) => value || 5 });
|
|
26
26
|
totalItems = input.required();
|
|
27
27
|
perPage = input.required();
|
|
28
28
|
currentPage = model.required();
|
|
@@ -53,25 +53,25 @@ class LibsUiComponentsPaginationComponent {
|
|
|
53
53
|
this.totalPage.set(Math.ceil(this.totalItems() / this.perPage()));
|
|
54
54
|
}
|
|
55
55
|
this.listPageDisplay.set([]);
|
|
56
|
-
if (this.totalPage() <= this.
|
|
56
|
+
if (this.totalPage() <= this.numberPageDisplay()) {
|
|
57
57
|
this.listPageDisplay.set(Array.from({ length: this.totalPage() }, (_, index) => {
|
|
58
58
|
return { key: `${index + 1}`, value: `${index + 1}` };
|
|
59
59
|
}));
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
|
-
if (this.currentPage() < this.
|
|
63
|
-
this.listPageDisplay.set(Array.from({ length: this.
|
|
62
|
+
if (this.currentPage() < this.numberPageDisplay() - 1) {
|
|
63
|
+
this.listPageDisplay.set(Array.from({ length: this.numberPageDisplay() }, (_, index) => {
|
|
64
64
|
return { key: `${index + 1}`, value: `${index + 1}` };
|
|
65
65
|
}));
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
-
const startPage = this.currentPage() - this.
|
|
69
|
-
let numberPageBefore = startPage < 0 ? this.currentPage() : startPage === 0 ? 0 : this.
|
|
70
|
-
const gapAfer = this.
|
|
68
|
+
const startPage = this.currentPage() - this.numberPageDisplay() / 2;
|
|
69
|
+
let numberPageBefore = startPage < 0 ? this.currentPage() : startPage === 0 ? 0 : this.numberPageDisplay() / 2;
|
|
70
|
+
const gapAfer = this.numberPageDisplay() - numberPageBefore;
|
|
71
71
|
const endPage = this.currentPage() + gapAfer;
|
|
72
72
|
const numberPageAfter = this.totalPage() >= endPage ? gapAfer : this.totalPage() - this.currentPage();
|
|
73
|
-
if (numberPageBefore + numberPageAfter < this.
|
|
74
|
-
numberPageBefore = this.
|
|
73
|
+
if (numberPageBefore + numberPageAfter < this.numberPageDisplay()) {
|
|
74
|
+
numberPageBefore = this.numberPageDisplay() - numberPageAfter;
|
|
75
75
|
}
|
|
76
76
|
for (let i = 0; i < numberPageBefore; i++) {
|
|
77
77
|
this.listPageDisplay.update((listPage) => {
|
|
@@ -134,7 +134,7 @@ class LibsUiComponentsPaginationComponent {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
137
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPaginationComponent, isStandalone: true, selector: "libs_ui-components-pagination", inputs: { showTotalPage: { classPropertyName: "showTotalPage", publicName: "showTotalPage", isSignal: true, isRequired: false, transformFunction: null }, showInputGotoPage: { classPropertyName: "showInputGotoPage", publicName: "showInputGotoPage", isSignal: true, isRequired: false, transformFunction: null }, modeDisplayTotalPageAndGotoPage: { classPropertyName: "modeDisplayTotalPageAndGotoPage", publicName: "modeDisplayTotalPageAndGotoPage", isSignal: true, isRequired: false, transformFunction: null }, classDisplayTotalPageAndGotoPage: { classPropertyName: "classDisplayTotalPageAndGotoPage", publicName: "classDisplayTotalPageAndGotoPage", isSignal: true, isRequired: false, transformFunction: null }, classIncludeContainer: { classPropertyName: "classIncludeContainer", publicName: "classIncludeContainer", isSignal: true, isRequired: false, transformFunction: null }, classIncludeItem: { classPropertyName: "classIncludeItem", publicName: "classIncludeItem", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null },
|
|
137
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPaginationComponent, isStandalone: true, selector: "libs_ui-components-pagination", inputs: { showTotalPage: { classPropertyName: "showTotalPage", publicName: "showTotalPage", isSignal: true, isRequired: false, transformFunction: null }, showInputGotoPage: { classPropertyName: "showInputGotoPage", publicName: "showInputGotoPage", isSignal: true, isRequired: false, transformFunction: null }, modeDisplayTotalPageAndGotoPage: { classPropertyName: "modeDisplayTotalPageAndGotoPage", publicName: "modeDisplayTotalPageAndGotoPage", isSignal: true, isRequired: false, transformFunction: null }, classDisplayTotalPageAndGotoPage: { classPropertyName: "classDisplayTotalPageAndGotoPage", publicName: "classDisplayTotalPageAndGotoPage", isSignal: true, isRequired: false, transformFunction: null }, classIncludeContainer: { classPropertyName: "classIncludeContainer", publicName: "classIncludeContainer", isSignal: true, isRequired: false, transformFunction: null }, classIncludeItem: { classPropertyName: "classIncludeItem", publicName: "classIncludeItem", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, numberPageDisplay: { classPropertyName: "numberPageDisplay", publicName: "numberPageDisplay", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: true, transformFunction: null }, perPage: { classPropertyName: "perPage", publicName: "perPage", isSignal: true, isRequired: true, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { currentPage: "currentPageChange", outPageSelect: "outPageSelect" }, providers: [TranslateProviderConfig], ngImport: i0, 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 = currentPage() <= 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 === currentPage() + ''\"\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 @let constHtmlDisableButtonNext = currentPage() >= 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() <= 5\" />\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"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsInputComponent, selector: "libs_ui-components-inputs-input", inputs: ["tagInput", "dataType", "typeInput", "modeInput", "tabInsertContentTagInput", "textAreaEnterNotNewLine", "emitEmptyInDataTypeNumber", "keepZeroInTypeInt", "autoAddZeroLessThan10InTypeInt", "ignoreBlockInputMaxValue", "maxValueNumber", "minValueNumber", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "classInclude", "maxLength", "readonly", "disable", "noBorder", "backgroundNone", "borderError", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "value", "autoRemoveEmoji", "defaultHeight", "minHeightTextArea", "maxHeightTextArea", "focusTimeOut", "selectAllTimeOut", "blurTimeOut", "zIndexPopoverContent", "classContainerInput", "showCount", "ignoreStopPropagationEvent", "resize", "templateLeftBottomInput", "templateRightBottomInput", "classContainerBottomInput", "ignoreWidthInput100", "iframeTextareaCustomStyle", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "resetAutoCompletePassword", "acceptOnlyClickIcon", "setIconRightColorSameColorDisableReadOnly", "onlyAcceptNegativeValue", "maxLengthNumberCount", "focusInput"], outputs: ["maxValueNumberChange", "minValueNumberChange", "fixedFloatChange", "acceptNegativeValueChange", "maxLengthChange", "valueChange", "maxLengthNumberCountChange", "outHeightAreaChange", "outChange", "outFocusAndBlurEvent", "outEnterEvent", "outInputEvent", "outIconLeft", "outIconRight", "outFunctionsControl", "outFilesDrop", "outFileDrop", "outChangeValueByButtonUpDown"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
138
138
|
}
|
|
139
139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPaginationComponent, decorators: [{
|
|
140
140
|
type: Component,
|
|
@@ -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 { ChangeDetectionStrategy, Component, DestroyRef, effect, inject, input, model, 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 { TranslateModule } from '@ngx-translate/core';\nimport { debounceTime, Subject } from 'rxjs';\nimport { isNil } from '@libs-ui/utils';\nimport { NgTemplateOutlet } from '@angular/common';\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 {\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 numberPageDispaly = input<number, number | undefined>(5, { transform: (value) => value || 5 });\n readonly totalItems = input.required<number>();\n readonly perPage = input.required<number>();\n readonly currentPage = model.required<number>();\n\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.currentPage() >= this.totalPage()) {\n this.changeInputSearch(this.totalPage());\n }\n });\n }\n });\n this.onChangeValue.pipe(debounceTime(1500), takeUntilDestroyed(this.destroyRef)).subscribe((value) => {\n if (this.isEnterSearch()) {\n this.isEnterSearch.set(false);\n return;\n }\n this.currentPage.set(value);\n this.outPageSelect.emit(this.currentPage());\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.numberPageDispaly()) {\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.currentPage() < this.numberPageDispaly() - 1) {\n this.listPageDisplay.set(\n Array.from({ length: this.numberPageDispaly() }, (_, index) => {\n return { key: `${index + 1}`, value: `${index + 1}` };\n })\n );\n\n return;\n }\n\n const startPage = this.currentPage() - this.numberPageDispaly() / 2;\n let numberPageBefore = startPage < 0 ? this.currentPage() : startPage === 0 ? 0 : this.numberPageDispaly() / 2;\n const gapAfer = this.numberPageDispaly() - numberPageBefore;\n const endPage = this.currentPage() + gapAfer;\n const numberPageAfter = this.totalPage() >= endPage ? gapAfer : this.totalPage() - this.currentPage();\n\n if (numberPageBefore + numberPageAfter < this.numberPageDispaly()) {\n numberPageBefore = this.numberPageDispaly() - numberPageAfter;\n }\n\n for (let i = 0; i < numberPageBefore; i++) {\n this.listPageDisplay.update((listPage) => {\n listPage.unshift({ key: `${this.currentPage() - i}`, value: `${this.currentPage() - 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.currentPage() + i}`, value: `${this.currentPage() + i}` });\n return [...listPage];\n });\n }\n }\n }\n\n protected selectPage(e: Event, item: { key: string; value: string }) {\n e.stopPropagation();\n this.currentPage.set(+item.key);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\n\n protected nextPage(e: Event) {\n e.stopPropagation();\n if (this.currentPage() < 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.currentPage() > 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 (!this.gotoPageNumber()) {\n return;\n }\n this.isEnterSearch.set(true);\n this.changeInputSearch(this.gotoPageNumber() as number);\n }\n\n private changeInputSearch(value: number) {\n if (value >= 1 && value <= this.totalPage() && value !== this.currentPage()) {\n this.currentPage.set(value);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\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 = currentPage() <= 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 === currentPage() + ''\"\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 @let constHtmlDisableButtonNext = currentPage() >= 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() <= 5\" />\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 { ChangeDetectionStrategy, Component, DestroyRef, effect, inject, input, model, 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 { TranslateModule } from '@ngx-translate/core';\nimport { debounceTime, Subject } from 'rxjs';\nimport { isNil } from '@libs-ui/utils';\nimport { NgTemplateOutlet } from '@angular/common';\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 {\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 currentPage = model.required<number>();\n\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.currentPage() >= this.totalPage()) {\n this.changeInputSearch(this.totalPage());\n }\n });\n }\n });\n this.onChangeValue.pipe(debounceTime(1500), takeUntilDestroyed(this.destroyRef)).subscribe((value) => {\n if (this.isEnterSearch()) {\n this.isEnterSearch.set(false);\n return;\n }\n this.currentPage.set(value);\n this.outPageSelect.emit(this.currentPage());\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.currentPage() < 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.currentPage() - this.numberPageDisplay() / 2;\n let numberPageBefore = startPage < 0 ? this.currentPage() : startPage === 0 ? 0 : this.numberPageDisplay() / 2;\n const gapAfer = this.numberPageDisplay() - numberPageBefore;\n const endPage = this.currentPage() + gapAfer;\n const numberPageAfter = this.totalPage() >= endPage ? gapAfer : this.totalPage() - this.currentPage();\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.currentPage() - i}`, value: `${this.currentPage() - 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.currentPage() + i}`, value: `${this.currentPage() + i}` });\n return [...listPage];\n });\n }\n }\n }\n\n protected selectPage(e: Event, item: { key: string; value: string }) {\n e.stopPropagation();\n this.currentPage.set(+item.key);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\n\n protected nextPage(e: Event) {\n e.stopPropagation();\n if (this.currentPage() < 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.currentPage() > 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 (!this.gotoPageNumber()) {\n return;\n }\n this.isEnterSearch.set(true);\n this.changeInputSearch(this.gotoPageNumber() as number);\n }\n\n private changeInputSearch(value: number) {\n if (value >= 1 && value <= this.totalPage() && value !== this.currentPage()) {\n this.currentPage.set(value);\n this.outPageSelect.emit(this.currentPage());\n this.renderPagination();\n }\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 = currentPage() <= 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 === currentPage() + ''\"\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 @let constHtmlDisableButtonNext = currentPage() >= 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() <= 5\" />\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/package.json
CHANGED
|
@@ -15,7 +15,7 @@ export declare class LibsUiComponentsPaginationComponent {
|
|
|
15
15
|
readonly classIncludeContainer: import("@angular/core").InputSignal<string | undefined>;
|
|
16
16
|
readonly classIncludeItem: import("@angular/core").InputSignal<string | undefined>;
|
|
17
17
|
readonly disable: import("@angular/core").InputSignal<boolean | undefined>;
|
|
18
|
-
readonly
|
|
18
|
+
readonly numberPageDisplay: import("@angular/core").InputSignalWithTransform<number, number | undefined>;
|
|
19
19
|
readonly totalItems: import("@angular/core").InputSignal<number>;
|
|
20
20
|
readonly perPage: import("@angular/core").InputSignal<number>;
|
|
21
21
|
readonly currentPage: import("@angular/core").ModelSignal<number>;
|
|
@@ -33,5 +33,5 @@ export declare class LibsUiComponentsPaginationComponent {
|
|
|
33
33
|
protected handlerEnterInput(): void;
|
|
34
34
|
private changeInputSearch;
|
|
35
35
|
static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsPaginationComponent, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsPaginationComponent, "libs_ui-components-pagination", never, { "showTotalPage": { "alias": "showTotalPage"; "required": false; "isSignal": true; }; "showInputGotoPage": { "alias": "showInputGotoPage"; "required": false; "isSignal": true; }; "modeDisplayTotalPageAndGotoPage": { "alias": "modeDisplayTotalPageAndGotoPage"; "required": false; "isSignal": true; }; "classDisplayTotalPageAndGotoPage": { "alias": "classDisplayTotalPageAndGotoPage"; "required": false; "isSignal": true; }; "classIncludeContainer": { "alias": "classIncludeContainer"; "required": false; "isSignal": true; }; "classIncludeItem": { "alias": "classIncludeItem"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "
|
|
36
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsPaginationComponent, "libs_ui-components-pagination", never, { "showTotalPage": { "alias": "showTotalPage"; "required": false; "isSignal": true; }; "showInputGotoPage": { "alias": "showInputGotoPage"; "required": false; "isSignal": true; }; "modeDisplayTotalPageAndGotoPage": { "alias": "modeDisplayTotalPageAndGotoPage"; "required": false; "isSignal": true; }; "classDisplayTotalPageAndGotoPage": { "alias": "classDisplayTotalPageAndGotoPage"; "required": false; "isSignal": true; }; "classIncludeContainer": { "alias": "classIncludeContainer"; "required": false; "isSignal": true; }; "classIncludeItem": { "alias": "classIncludeItem"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "numberPageDisplay": { "alias": "numberPageDisplay"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "perPage": { "alias": "perPage"; "required": true; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": true; "isSignal": true; }; }, { "currentPage": "currentPageChange"; "outPageSelect": "outPageSelect"; }, never, never, true, never>;
|
|
37
37
|
}
|