@libs-ui/components-pagination 0.2.285 → 0.2.287

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.
@@ -133,10 +133,10 @@ export class LibsUiComponentsPaginationComponent {
133
133
  }
134
134
  }
135
135
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
136
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 }, numberPageDispaly: { classPropertyName: "numberPageDispaly", publicName: "numberPageDispaly", 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\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre\t= currentPage() <=1 || totalPage() <=1 || disable();\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\" [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 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()\" [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event,item)\">\n {{ item.value }}\n </div>\n }\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\t= currentPage() >= totalPage() || disable();\n <div class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\" \n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t[class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t(click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div 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 [dataType]=\"'int'\" classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\" [emitEmptyInDataTypeNumber]=\"true\" [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\" (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\" [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)}\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", "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 });
136
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 }, numberPageDispaly: { classPropertyName: "numberPageDispaly", publicName: "numberPageDispaly", 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\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre\t= currentPage() <=1 || totalPage() <=1 || disable();\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\" [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 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()\" [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event,item)\">\n {{ item.value }}\n </div>\n }\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\t= currentPage() >= totalPage() || disable();\n <div class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\" \n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t[class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t(click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div 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 [dataType]=\"'int'\" classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\" [emitEmptyInDataTypeNumber]=\"true\" [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\" (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\" [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)}\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.13", 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\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre\t= currentPage() <=1 || totalPage() <=1 || disable();\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\" [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 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()\" [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event,item)\">\n {{ item.value }}\n </div>\n }\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\t= currentPage() >= totalPage() || disable();\n <div class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\" \n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t[class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t(click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div 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 [dataType]=\"'int'\" classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\" [emitEmptyInDataTypeNumber]=\"true\" [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\" (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\" [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)}\n"] }]
141
141
  }], ctorParameters: () => [] });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBWW5ELE1BQU0sT0FBTyxtQ0FBbUM7SUFDdEMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixlQUFlLEdBQUcsTUFBTSxDQUF3QyxFQUFFLENBQUMsQ0FBQztJQUNwRSxjQUFjLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUN2RCxTQUFTLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO0lBRTlDLGFBQWEsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUNqQyxpQkFBaUIsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUNyQywrQkFBK0IsR0FBRyxLQUFLLENBQXNDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLGdDQUFnQyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBRW5ELHFCQUFxQixHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ3hDLGdCQUFnQixHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ25DLE9BQU8sR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUMzQixpQkFBaUIsR0FBRyxLQUFLLENBQTZCLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUN0QyxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ25DLFdBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFFdkMsYUFBYSxHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQ3pCLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQ7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUN0RixTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7d0JBQy9ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztvQkFDM0MsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuRyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUM3RSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFSixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDckYsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRUosT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BFLElBQUksZ0JBQWdCLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvRyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzdDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV0RyxJQUFJLGdCQUFnQixHQUFHLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1lBQ2xFLGdCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLGVBQWUsQ0FBQztRQUNoRSxDQUFDO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3JDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFFM0YsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBR0QsSUFBSSxlQUFlLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN4RixPQUFPLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFUyxVQUFVLENBQUMsQ0FBUSxFQUFFLElBQW9DO1FBQ2pFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRVMsUUFBUSxDQUFDLENBQVE7UUFDekIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRVMsT0FBTyxDQUFDLENBQVE7UUFDeEIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQXNCO1FBQ3pDLEtBQUssR0FBRyxLQUFlLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRVMsaUJBQWlCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUMzQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFZLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBYTtRQUNyQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDNUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7d0dBL0lVLG1DQUFtQzs0RkFBbkMsbUNBQW1DLHkwREFGbkMsQ0FBQyx1QkFBdUIsQ0FBQywwQkNqQnRDLDh6SEFzRUEsa2xCRHZEWSxlQUFlLDRGQUFFLG9DQUFvQyxvZ0RBQUUsZ0JBQWdCOzs0RkFJdEUsbUNBQW1DO2tCQVYvQyxTQUFTOytCQUVFLCtCQUErQixjQUc3QixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsb0NBQW9DLEVBQUUsZ0JBQWdCLENBQUMsbUJBQ2pFLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzSW5wdXRDb21wb25lbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtaW5wdXRcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVByb3ZpZGVyQ29uZmlnIH0gZnJvbSBcIkBsaWJzLXVpL3NlcnZpY2VzLXRyYW5zbGF0ZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTGlic1VpQ29tcG9uZW50c0lucHV0c0lucHV0Q29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1RyYW5zbGF0ZVByb3ZpZGVyQ29uZmlnXVxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzUGFnaW5hdGlvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgaXNFbnRlclNlYXJjaCA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBsaXN0UGFnZURpc3BsYXkgPSBzaWduYWw8QXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pj4oW10pO1xuICBwcm90ZWN0ZWQgZ290b1BhZ2VOdW1iZXIgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgdG90YWxQYWdlID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25DaGFuZ2VWYWx1ZSA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICByZWFkb25seSBzaG93VG90YWxQYWdlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgc2hvd0lucHV0R290b1BhZ2UgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlID0gaW5wdXQ8XCJ0b3BcIiB8IFwiYm90dG9tXCIgfCBcImxlZnRcIiB8IFwicmlnaHRcIj4oJ2JvdHRvbScpO1xuICByZWFkb25seSBjbGFzc0Rpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgXG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUNvbnRhaW5lciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlSXRlbSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG51bWJlclBhZ2VEaXNwYWx5ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXIgfCB1bmRlZmluZWQ+KDUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDUgfSk7XG4gIHJlYWRvbmx5IHRvdGFsSXRlbXMgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IHBlclBhZ2UgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlID0gbW9kZWwucmVxdWlyZWQ8bnVtYmVyPigpO1xuXG4gIHJlYWRvbmx5IG91dFBhZ2VTZWxlY3QgPSBvdXRwdXQ8bnVtYmVyPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIWlzTmlsKHRoaXMuY3VycmVudFBhZ2UoKSkgJiYgIWlzTmlsKHRoaXMudG90YWxJdGVtcygpKSAmJiAhaXNOaWwodGhpcy5wZXJQYWdlKCkpKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgICAgICAgaWYgKHRoaXMudG90YWxQYWdlKCkgJiYgdGhpcy5jdXJyZW50UGFnZSgpID49IHRoaXMudG90YWxQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlSW5wdXRTZWFyY2godGhpcy50b3RhbFBhZ2UoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2hhbmdlVmFsdWUucGlwZShkZWJvdW5jZVRpbWUoMTUwMCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0VudGVyU2VhcmNoKCkpIHtcbiAgICAgICAgdGhpcy5pc0VudGVyU2VhcmNoLnNldChmYWxzZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KHZhbHVlKTtcbiAgICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBhZ2luYXRpb24oKSB7XG4gICAgaWYgKHRoaXMucGVyUGFnZSgpID4gMCAmJiAhaXNOaWwodGhpcy50b3RhbEl0ZW1zKCkpKSB7XG4gICAgICB0aGlzLnRvdGFsUGFnZS5zZXQoTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcygpIC8gdGhpcy5wZXJQYWdlKCkpKTtcbiAgICB9XG4gICAgdGhpcy5saXN0UGFnZURpc3BsYXkuc2V0KFtdKTtcblxuICAgIGlmICh0aGlzLnRvdGFsUGFnZSgpIDw9IHRoaXMubnVtYmVyUGFnZURpc3BhbHkoKSkge1xuICAgICAgdGhpcy5saXN0UGFnZURpc3BsYXkuc2V0KEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMudG90YWxQYWdlKCkgfSwgKF8sIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGtleTogYCR7aW5kZXggKyAxfWAsIHZhbHVlOiBgJHtpbmRleCArIDF9YCB9O1xuICAgICAgfSkpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UoKSA8IHRoaXMubnVtYmVyUGFnZURpc3BhbHkoKSAtIDEpIHtcbiAgICAgIHRoaXMubGlzdFBhZ2VEaXNwbGF5LnNldChBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLm51bWJlclBhZ2VEaXNwYWx5KCkgfSwgKF8sIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGtleTogYCR7aW5kZXggKyAxfWAsIHZhbHVlOiBgJHtpbmRleCArIDF9YCB9O1xuICAgICAgfSkpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSgpIC0gdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpIC8gMjtcbiAgICBsZXQgbnVtYmVyUGFnZUJlZm9yZSA9IHN0YXJ0UGFnZSA8IDAgPyB0aGlzLmN1cnJlbnRQYWdlKCkgOiBzdGFydFBhZ2UgPT09IDAgPyAwIDogdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpIC8gMjtcbiAgICBjb25zdCBnYXBBZmVyID0gdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpIC0gbnVtYmVyUGFnZUJlZm9yZTtcbiAgICBjb25zdCBlbmRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSgpICsgZ2FwQWZlcjtcbiAgICBjb25zdCBudW1iZXJQYWdlQWZ0ZXIgPSB0aGlzLnRvdGFsUGFnZSgpID49IGVuZFBhZ2UgPyBnYXBBZmVyIDogdGhpcy50b3RhbFBhZ2UoKSAtIHRoaXMuY3VycmVudFBhZ2UoKTtcblxuICAgIGlmIChudW1iZXJQYWdlQmVmb3JlICsgbnVtYmVyUGFnZUFmdGVyIDwgdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpKSB7XG4gICAgICBudW1iZXJQYWdlQmVmb3JlID0gdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpIC0gbnVtYmVyUGFnZUFmdGVyO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtYmVyUGFnZUJlZm9yZTsgaSsrKSB7XG4gICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS51cGRhdGUobGlzdFBhZ2UgPT4ge1xuICAgICAgICBsaXN0UGFnZS51bnNoaWZ0KHsga2V5OiBgJHt0aGlzLmN1cnJlbnRQYWdlKCkgLSBpfWAsIHZhbHVlOiBgJHt0aGlzLmN1cnJlbnRQYWdlKCkgLSBpfWAgfSk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5saXN0UGFnZV07XG4gICAgICB9KTtcbiAgICB9XG5cblxuICAgIGlmIChudW1iZXJQYWdlQWZ0ZXIgPj0gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbnVtYmVyUGFnZUFmdGVyOyBpKyspIHtcbiAgICAgICAgdGhpcy5saXN0UGFnZURpc3BsYXkudXBkYXRlKGxpc3RQYWdlID0+IHtcbiAgICAgICAgICBsaXN0UGFnZS5wdXNoKHsga2V5OiBgJHt0aGlzLmN1cnJlbnRQYWdlKCkgKyBpfWAsIHZhbHVlOiBgJHt0aGlzLmN1cnJlbnRQYWdlKCkgKyBpfWAgfSk7XG4gICAgICAgICAgcmV0dXJuIFsuLi5saXN0UGFnZV07XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RQYWdlKGU6IEV2ZW50LCBpdGVtOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0pIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KCtpdGVtLmtleSk7XG4gICAgdGhpcy5vdXRQYWdlU2VsZWN0LmVtaXQodGhpcy5jdXJyZW50UGFnZSgpKTtcbiAgICB0aGlzLnJlbmRlclBhZ2luYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0UGFnZShlOiBFdmVudCkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UoKSA8IHRoaXMudG90YWxQYWdlKCkpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UudXBkYXRlKGN1cnJlbnRQYWdlID0+IGN1cnJlbnRQYWdlICsgMSk7XG4gICAgICB0aGlzLm91dFBhZ2VTZWxlY3QuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKCkpO1xuICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByZVBhZ2UoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKCkgPiAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnVwZGF0ZShjdXJyZW50UGFnZSA9PiBjdXJyZW50UGFnZSAtIDEpO1xuICAgICAgdGhpcy5vdXRQYWdlU2VsZWN0LmVtaXQodGhpcy5jdXJyZW50UGFnZSgpKTtcbiAgICAgIHRoaXMucmVuZGVyUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjaGFuZ2VQYWdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB2YWx1ZSA9IHZhbHVlIGFzIG51bWJlcjtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLmdvdG9QYWdlTnVtYmVyLnNldCh1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmdvdG9QYWdlTnVtYmVyLnNldCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZVZhbHVlLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFbnRlcklucHV0KCkge1xuICAgIGlmICghdGhpcy5nb3RvUGFnZU51bWJlcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNFbnRlclNlYXJjaC5zZXQodHJ1ZSk7XG4gICAgdGhpcy5jaGFuZ2VJbnB1dFNlYXJjaCh0aGlzLmdvdG9QYWdlTnVtYmVyKCkgYXMgbnVtYmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlSW5wdXRTZWFyY2godmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA+PSAxICYmIHZhbHVlIDw9IHRoaXMudG90YWxQYWdlKCkgJiYgdmFsdWUgIT09IHRoaXMuY3VycmVudFBhZ2UoKSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQodmFsdWUpO1xuICAgICAgdGhpcy5vdXRQYWdlU2VsZWN0LmVtaXQodGhpcy5jdXJyZW50UGFnZSgpKTtcbiAgICAgIHRoaXMucmVuZGVyUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxufSIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgdy1mdWxsIGp1c3RpZnktY2VudGVyIHt7IGNsYXNzSW5jbHVkZUNvbnRhaW5lcigpID8/ICcnIH19XCI+XG4gICAgQGxldCBjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgPSBzaG93VG90YWxQYWdlKCkgfHwgc2hvd0lucHV0R290b1BhZ2UoKTtcblx0QGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAndG9wJykge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ290b1BhZ2VOdW1iZXJSZWZcIiAvPlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBzaHJpbmstMCBoLWZ1bGwgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIEBsZXQgY29uc3RIdG1sRGlzYWJsZUJ1dHRvblByZVx0PSBjdXJyZW50UGFnZSgpIDw9MSB8fCB0b3RhbFBhZ2UoKSA8PTEgIHx8IGRpc2FibGUoKTtcblx0XHRcdFx0QGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnb3RvUGFnZU51bWJlclJlZlwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWJ1dHRvbiByb3RhdGUtWzE4MGRlZ10gcGwtWzE0cHhdIHByLVs2cHhdXCJcbiAgICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvblByZVwiIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cImNvbnN0SHRtbERpc2FibGVCdXR0b25QcmVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByZVBhZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJsaWJzLXVpLWljb24tY2hldnJvbi1yaWdodCBsaWJzLXVpLWZvbnQtaDJyXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBsaXN0UGFnZURpc3BsYXkoKTsgdHJhY2sgaXRlbS5rZXk7KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24taXRlbSBsaWJzLXVpLWZvbnQtaDNtIHt7IGNsYXNzSW5jbHVkZUl0ZW0oKSA/PyAnJyB9fVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWFjdGl2ZV09XCJpdGVtLmtleSA9PT0gY3VycmVudFBhZ2UoKSsnJ1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktZGlzYWJsZV09XCJkaXNhYmxlKClcIiBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQYWdlKCRldmVudCxpdGVtKVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0udmFsdWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBlbXB0eSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1mb250LWg1bSB0ZXh0LVsjOUNBMkFEXSBteC1bMTJweF0gZmxleCBzaHJpbmstMFwiPlxuICAgICAgICAgICAgICAgIHt7ICdpMThuX25vX2RhdGFfeWV0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uTmV4dFx0PSBjdXJyZW50UGFnZSgpID49IHRvdGFsUGFnZSgpIHx8IGRpc2FibGUoKTtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWJ1dHRvbiBwbC1bMTRweF0gcHItWzZwXXhcIiBcbiAgICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvbk5leHRcIlxuXHRcdFx0XHRcdFx0W2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvbk5leHRcIlxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cIm5leHRQYWdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgbGlicy11aS1mb250LWgyclwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG5cdFx0XHRcdEBpZiAoY29uc3RIdG1sRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlICYmIG1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdvdG9QYWdlTnVtYmVyUmVmXCIgLz5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIEBpZiAoY29uc3RIdG1sRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlICYmIG1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdvdG9QYWdlTnVtYmVyUmVmXCIgLz5cbiAgICB9XG5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2dvdG9QYWdlTnVtYmVyUmVmPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IHNocmluay0wIGgtZnVsbCBpdGVtcy1jZW50ZXIge3sgY2xhc3NEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA/PyAnJyB9fVwiXG4gICAgICAgIFtjbGFzcy5tYi1bMTZweF1dPVwibW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAndG9wJ1wiXG4gICAgICAgIFtjbGFzcy5tdC1bMTZweF1dPVwibW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAnYm90dG9tJ1wiPlxuICAgICAgICBAaWYgKHNob3dUb3RhbFBhZ2UoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdXCI+XG4gICAgICAgICAgICAgICAge3sgJ2kxOG5fdmFsdWVfc3VtX3BhZ2UnIHwgdHJhbnNsYXRlIDoge3ZhbHVlOiB0b3RhbFBhZ2UoKX0gfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHNob3dJbnB1dEdvdG9QYWdlKCkpIHtcbiAgICAgICAgICAgIEBpZiAoc2hvd1RvdGFsUGFnZSgpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLVsxNnB4XSB3LVsxcHhdIGJnLVsjQ0REMEQ2XVwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdIGZsZXggc2hyaW5rLTBcIj5cbiAgICAgICAgICAgICAgICB7eyAnaTE4bl9nb190bycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzYwcHhdIG1yLVsxMnB4XSBzaHJpbmstMFwiPlxuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLWlucHV0IFtkYXRhVHlwZV09XCInaW50J1wiIGNsYXNzSW5jbHVkZT1cIiFyb3VuZGVkLVs2cHhdXCJcbiAgICAgICAgICAgICAgICAgICAgW21heFZhbHVlTnVtYmVyXT1cInRvdGFsUGFnZSgpXCIgW2VtaXRFbXB0eUluRGF0YVR5cGVOdW1iZXJdPVwidHJ1ZVwiIFtkZWZhdWx0SGVpZ2h0XT1cIjI4XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdvdG9QYWdlTnVtYmVyKCkgfHwgJydcIiAob3V0Q2hhbmdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChvdXRFbnRlckV2ZW50KT1cImhhbmRsZXJFbnRlcklucHV0KClcIiBbZGlzYWJsZV09XCJkaXNhYmxlKCkgfHwgdG90YWxQYWdlKCkgPD0gNVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBWW5ELE1BQU0sT0FBTyxtQ0FBbUM7SUFDdEMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixlQUFlLEdBQUcsTUFBTSxDQUF3QyxFQUFFLENBQUMsQ0FBQztJQUNwRSxjQUFjLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUN2RCxTQUFTLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLGFBQWEs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Q0FBQztJQUNILENBQUM7d0dBL0lVLG1DQUFtQzs0RkFBbkMsbUNBQW1DLHkwREFGbkMsQ0FBQyx1QkFBdUIsQ0FBQywwQkNqQnRDLDh6SEFzRUEsa2xCRHZEWSxlQUFlLDRGQUFFLG9DQUFvQyx3aERBQUUsZ0JBQWdCOzs0RkFJdEUsbUNBQW1DO2tCQVYvQyxTQUFTOytCQUVFLCtCQUErQixjQUc3QixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsb0NBQW9DLEVBQUUsZ0JBQWdCLENBQUMsbUJBQ2pFLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzSW5wdXRDb21wb25lbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtaW5wdXRcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVByb3ZpZGVyQ29uZmlnIH0gZnJvbSBcIkBsaWJzLXVpL3NlcnZpY2VzLXRyYW5zbGF0ZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTGlic1VpQ29tcG9uZW50c0lucHV0c0lucHV0Q29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1RyYW5zbGF0ZVByb3ZpZGVyQ29uZmlnXVxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzUGFnaW5hdGlvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgaXNFbnRlclNlYXJjaCA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBsaXN0UGFnZURpc3BsYXkgPSBzaWduYWw8QXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pj4oW10pO1xuICBwcm90ZWN0ZWQgZ290b1BhZ2VOdW1iZXIgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgdG90YWxQYWdlID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25DaGFuZ2VWYWx1ZSA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICByZWFkb25seSBzaG93VG90YWxQYWdlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgc2hvd0lucHV0R290b1BhZ2UgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBtb2RlRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlID0gaW5wdXQ8XCJ0b3BcIiB8IFwiYm90dG9tXCIgfCBcImxlZnRcIiB8IFwicmlnaHRcIj4oJ2JvdHRvbScpO1xuICByZWFkb25seSBjbGFzc0Rpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgXG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZUNvbnRhaW5lciA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlSXRlbSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG51bWJlclBhZ2VEaXNwYWx5ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXIgfCB1bmRlZmluZWQ+KDUsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8IDUgfSk7XG4gIHJlYWRvbmx5IHRvdGFsSXRlbXMgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IHBlclBhZ2UgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlID0gbW9kZWwucmVxdWlyZWQ8bnVtYmVyPigpO1xuXG4gIHJlYWRvbmx5IG91dFBhZ2VTZWxlY3QgPSBvdXRwdXQ8bnVtYmVyPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIWlzTmlsKHRoaXMuY3VycmVudFBhZ2UoKSkgJiYgIWlzTmlsKHRoaXMudG90YWxJdGVtcygpKSAmJiAhaXNOaWwodGhpcy5wZXJQYWdlKCkpKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgICAgICAgaWYgKHRoaXMudG90YWxQYWdlKCkgJiYgdGhpcy5jdXJyZW50UGFnZSgpID49IHRoaXMudG90YWxQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlSW5wdXRTZWFyY2godGhpcy50b3RhbFBhZ2UoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2hhbmdlVmFsdWUucGlwZShkZWJvdW5jZVRpbWUoMTUwMCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0VudGVyU2VhcmNoKCkpIHtcbiAgICAgICAgdGhpcy5pc0VudGVyU2VhcmNoLnNldChmYWxzZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KHZhbHVlKTtcbiAgICAgIHRoaXMub3V0UGFnZVNlbGVjdC5lbWl0KHRoaXMuY3VycmVudFBhZ2UoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBhZ2luYXRpb24oKSB7XG4gICAgaWYgKHRoaXMucGVyUGFnZSgpID4gMCAmJiAhaXNOaWwodGhpcy50b3RhbEl0ZW1zKCkpKSB7XG4gICAgICB0aGlzLnRvdGFsUGFnZS5zZXQoTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcygpIC8gdGhpcy5wZXJQYWdlKCkpKTtcbiAgICB9XG4gICAgdGhpcy5saXN0UGFnZURpc3BsYXkuc2V0KFtdKTtcblxuICAgIGlmICh0aGlzLnRvdGFsUGFnZSgpIDw9IHRoaXMubnVtYmVyUGFnZURpc3BhbHkoKSkge1xuICAgICAgdGhpcy5saXN0UGFnZURpc3BsYXkuc2V0KEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMudG90YWxQYWdlKCkgfSwgKF8sIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGtleTogYCR7aW5kZXggKyAxfWAsIHZhbHVlOiBgJHtpbmRleCArIDF9YCB9O1xuICAgICAgfSkpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UoKSA8IHRoaXMubnVtYmVyUGFnZURpc3BhbHkoKSAtIDEpIHtcbiAgICAgIHRoaXMubGlzdFBhZ2VEaXNwbGF5LnNldChBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLm51bWJlclBhZ2VEaXNwYWx5KCkgfSwgKF8sIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiB7IGtleTogYCR7aW5kZXggKyAxfWAsIHZhbHVlOiBgJHtpbmRleCArIDF9YCB9O1xuICAgICAgfSkpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSgpIC0gdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpIC8gMjtcbiAgICBsZXQgbnVtYmVyUGFnZUJlZm9yZSA9IHN0YXJ0UGFnZSA8IDAgPyB0aGlzLmN1cnJlbnRQYWdlKCkgOiBzdGFydFBhZ2UgPT09IDAgPyAwIDogdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpIC8gMjtcbiAgICBjb25zdCBnYXBBZmVyID0gdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpIC0gbnVtYmVyUGFnZUJlZm9yZTtcbiAgICBjb25zdCBlbmRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSgpICsgZ2FwQWZlcjtcbiAgICBjb25zdCBudW1iZXJQYWdlQWZ0ZXIgPSB0aGlzLnRvdGFsUGFnZSgpID49IGVuZFBhZ2UgPyBnYXBBZmVyIDogdGhpcy50b3RhbFBhZ2UoKSAtIHRoaXMuY3VycmVudFBhZ2UoKTtcblxuICAgIGlmIChudW1iZXJQYWdlQmVmb3JlICsgbnVtYmVyUGFnZUFmdGVyIDwgdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpKSB7XG4gICAgICBudW1iZXJQYWdlQmVmb3JlID0gdGhpcy5udW1iZXJQYWdlRGlzcGFseSgpIC0gbnVtYmVyUGFnZUFmdGVyO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtYmVyUGFnZUJlZm9yZTsgaSsrKSB7XG4gICAgICB0aGlzLmxpc3RQYWdlRGlzcGxheS51cGRhdGUobGlzdFBhZ2UgPT4ge1xuICAgICAgICBsaXN0UGFnZS51bnNoaWZ0KHsga2V5OiBgJHt0aGlzLmN1cnJlbnRQYWdlKCkgLSBpfWAsIHZhbHVlOiBgJHt0aGlzLmN1cnJlbnRQYWdlKCkgLSBpfWAgfSk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5saXN0UGFnZV07XG4gICAgICB9KTtcbiAgICB9XG5cblxuICAgIGlmIChudW1iZXJQYWdlQWZ0ZXIgPj0gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbnVtYmVyUGFnZUFmdGVyOyBpKyspIHtcbiAgICAgICAgdGhpcy5saXN0UGFnZURpc3BsYXkudXBkYXRlKGxpc3RQYWdlID0+IHtcbiAgICAgICAgICBsaXN0UGFnZS5wdXNoKHsga2V5OiBgJHt0aGlzLmN1cnJlbnRQYWdlKCkgKyBpfWAsIHZhbHVlOiBgJHt0aGlzLmN1cnJlbnRQYWdlKCkgKyBpfWAgfSk7XG4gICAgICAgICAgcmV0dXJuIFsuLi5saXN0UGFnZV07XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RQYWdlKGU6IEV2ZW50LCBpdGVtOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0pIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KCtpdGVtLmtleSk7XG4gICAgdGhpcy5vdXRQYWdlU2VsZWN0LmVtaXQodGhpcy5jdXJyZW50UGFnZSgpKTtcbiAgICB0aGlzLnJlbmRlclBhZ2luYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0UGFnZShlOiBFdmVudCkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UoKSA8IHRoaXMudG90YWxQYWdlKCkpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UudXBkYXRlKGN1cnJlbnRQYWdlID0+IGN1cnJlbnRQYWdlICsgMSk7XG4gICAgICB0aGlzLm91dFBhZ2VTZWxlY3QuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKCkpO1xuICAgICAgdGhpcy5yZW5kZXJQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByZVBhZ2UoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKCkgPiAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnVwZGF0ZShjdXJyZW50UGFnZSA9PiBjdXJyZW50UGFnZSAtIDEpO1xuICAgICAgdGhpcy5vdXRQYWdlU2VsZWN0LmVtaXQodGhpcy5jdXJyZW50UGFnZSgpKTtcbiAgICAgIHRoaXMucmVuZGVyUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjaGFuZ2VQYWdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB2YWx1ZSA9IHZhbHVlIGFzIG51bWJlcjtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLmdvdG9QYWdlTnVtYmVyLnNldCh1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmdvdG9QYWdlTnVtYmVyLnNldCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZVZhbHVlLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFbnRlcklucHV0KCkge1xuICAgIGlmICghdGhpcy5nb3RvUGFnZU51bWJlcigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNFbnRlclNlYXJjaC5zZXQodHJ1ZSk7XG4gICAgdGhpcy5jaGFuZ2VJbnB1dFNlYXJjaCh0aGlzLmdvdG9QYWdlTnVtYmVyKCkgYXMgbnVtYmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlSW5wdXRTZWFyY2godmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA+PSAxICYmIHZhbHVlIDw9IHRoaXMudG90YWxQYWdlKCkgJiYgdmFsdWUgIT09IHRoaXMuY3VycmVudFBhZ2UoKSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQodmFsdWUpO1xuICAgICAgdGhpcy5vdXRQYWdlU2VsZWN0LmVtaXQodGhpcy5jdXJyZW50UGFnZSgpKTtcbiAgICAgIHRoaXMucmVuZGVyUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgfVxufSIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBmbGV4LXdyYXAgdy1mdWxsIGp1c3RpZnktY2VudGVyIHt7IGNsYXNzSW5jbHVkZUNvbnRhaW5lcigpID8/ICcnIH19XCI+XG4gICAgQGxldCBjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgPSBzaG93VG90YWxQYWdlKCkgfHwgc2hvd0lucHV0R290b1BhZ2UoKTtcblx0QGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAndG9wJykge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ290b1BhZ2VOdW1iZXJSZWZcIiAvPlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBzaHJpbmstMCBoLWZ1bGwgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIEBsZXQgY29uc3RIdG1sRGlzYWJsZUJ1dHRvblByZVx0PSBjdXJyZW50UGFnZSgpIDw9MSB8fCB0b3RhbFBhZ2UoKSA8PTEgIHx8IGRpc2FibGUoKTtcblx0XHRcdFx0QGlmIChjb25zdEh0bWxEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UgJiYgbW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnb3RvUGFnZU51bWJlclJlZlwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWJ1dHRvbiByb3RhdGUtWzE4MGRlZ10gcGwtWzE0cHhdIHByLVs2cHhdXCJcbiAgICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvblByZVwiIFtjbGFzcy5wb2ludGVyLWV2ZW50cy1ub25lXT1cImNvbnN0SHRtbERpc2FibGVCdXR0b25QcmVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByZVBhZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJsaWJzLXVpLWljb24tY2hldnJvbi1yaWdodCBsaWJzLXVpLWZvbnQtaDJyXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBsaXN0UGFnZURpc3BsYXkoKTsgdHJhY2sgaXRlbS5rZXk7KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1jb21wb25lbnRzLXBhZ2luYXRpb24taXRlbSBsaWJzLXVpLWZvbnQtaDNtIHt7IGNsYXNzSW5jbHVkZUl0ZW0oKSA/PyAnJyB9fVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWFjdGl2ZV09XCJpdGVtLmtleSA9PT0gY3VycmVudFBhZ2UoKSsnJ1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktZGlzYWJsZV09XCJkaXNhYmxlKClcIiBbY2xhc3MucG9pbnRlci1ldmVudHMtbm9uZV09XCJkaXNhYmxlKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQYWdlKCRldmVudCxpdGVtKVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0udmFsdWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBlbXB0eSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1mb250LWg1bSB0ZXh0LVsjOUNBMkFEXSBteC1bMTJweF0gZmxleCBzaHJpbmstMFwiPlxuICAgICAgICAgICAgICAgIHt7ICdpMThuX25vX2RhdGFfeWV0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGxldCBjb25zdEh0bWxEaXNhYmxlQnV0dG9uTmV4dFx0PSBjdXJyZW50UGFnZSgpID49IHRvdGFsUGFnZSgpIHx8IGRpc2FibGUoKTtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktY29tcG9uZW50cy1wYWdpbmF0aW9uLWJ1dHRvbiBwbC1bMTRweF0gcHItWzZwXXhcIiBcbiAgICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvbk5leHRcIlxuXHRcdFx0XHRcdFx0W2NsYXNzLnBvaW50ZXItZXZlbnRzLW5vbmVdPVwiY29uc3RIdG1sRGlzYWJsZUJ1dHRvbk5leHRcIlxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cIm5leHRQYWdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgbGlicy11aS1mb250LWgyclwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG5cdFx0XHRcdEBpZiAoY29uc3RIdG1sRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlICYmIG1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdvdG9QYWdlTnVtYmVyUmVmXCIgLz5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIEBpZiAoY29uc3RIdG1sRGlzcGxheVRvdGFsUGFnZUFuZEdvdG9QYWdlICYmIG1vZGVEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdvdG9QYWdlTnVtYmVyUmVmXCIgLz5cbiAgICB9XG5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2dvdG9QYWdlTnVtYmVyUmVmPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IHNocmluay0wIGgtZnVsbCBpdGVtcy1jZW50ZXIge3sgY2xhc3NEaXNwbGF5VG90YWxQYWdlQW5kR290b1BhZ2UoKSA/PyAnJyB9fVwiXG4gICAgICAgIFtjbGFzcy5tYi1bMTZweF1dPVwibW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAndG9wJ1wiXG4gICAgICAgIFtjbGFzcy5tdC1bMTZweF1dPVwibW9kZURpc3BsYXlUb3RhbFBhZ2VBbmRHb3RvUGFnZSgpID09PSAnYm90dG9tJ1wiPlxuICAgICAgICBAaWYgKHNob3dUb3RhbFBhZ2UoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdXCI+XG4gICAgICAgICAgICAgICAge3sgJ2kxOG5fdmFsdWVfc3VtX3BhZ2UnIHwgdHJhbnNsYXRlIDoge3ZhbHVlOiB0b3RhbFBhZ2UoKX0gfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHNob3dJbnB1dEdvdG9QYWdlKCkpIHtcbiAgICAgICAgICAgIEBpZiAoc2hvd1RvdGFsUGFnZSgpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLVsxNnB4XSB3LVsxcHhdIGJnLVsjQ0REMEQ2XVwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNW0gdGV4dC1bIzlDQTJBRF0gbXgtWzEycHhdIGZsZXggc2hyaW5rLTBcIj5cbiAgICAgICAgICAgICAgICB7eyAnaTE4bl9nb190bycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzYwcHhdIG1yLVsxMnB4XSBzaHJpbmstMFwiPlxuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLWlucHV0IFtkYXRhVHlwZV09XCInaW50J1wiIGNsYXNzSW5jbHVkZT1cIiFyb3VuZGVkLVs2cHhdXCJcbiAgICAgICAgICAgICAgICAgICAgW21heFZhbHVlTnVtYmVyXT1cInRvdGFsUGFnZSgpXCIgW2VtaXRFbXB0eUluRGF0YVR5cGVOdW1iZXJdPVwidHJ1ZVwiIFtkZWZhdWx0SGVpZ2h0XT1cIjI4XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdvdG9QYWdlTnVtYmVyKCkgfHwgJydcIiAob3V0Q2hhbmdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChvdXRFbnRlckV2ZW50KT1cImhhbmRsZXJFbnRlcklucHV0KClcIiBbZGlzYWJsZV09XCJkaXNhYmxlKCkgfHwgdG90YWxQYWdlKCkgPD0gNVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -134,7 +134,7 @@ class LibsUiComponentsPaginationComponent {
134
134
  }
135
135
  }
136
136
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
137
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 }, numberPageDispaly: { classPropertyName: "numberPageDispaly", publicName: "numberPageDispaly", 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\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre\t= currentPage() <=1 || totalPage() <=1 || disable();\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\" [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 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()\" [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event,item)\">\n {{ item.value }}\n </div>\n }\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\t= currentPage() >= totalPage() || disable();\n <div class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\" \n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t[class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t(click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div 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 [dataType]=\"'int'\" classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\" [emitEmptyInDataTypeNumber]=\"true\" [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\" (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\" [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)}\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", "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
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 }, numberPageDispaly: { classPropertyName: "numberPageDispaly", publicName: "numberPageDispaly", 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\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre\t= currentPage() <=1 || totalPage() <=1 || disable();\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\" [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 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()\" [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event,item)\">\n {{ item.value }}\n </div>\n }\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\t= currentPage() >= totalPage() || disable();\n <div class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\" \n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t[class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t(click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div 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 [dataType]=\"'int'\" classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\" [emitEmptyInDataTypeNumber]=\"true\" [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\" (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\" [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)}\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.13", 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(Array.from({ length: this.totalPage() }, (_, index) => {\n return { key: `${index + 1}`, value: `${index + 1}` };\n }));\n\n return;\n }\n\n if (this.currentPage() < this.numberPageDispaly() - 1) {\n this.listPageDisplay.set(Array.from({ length: this.numberPageDispaly() }, (_, index) => {\n return { key: `${index + 1}`, value: `${index + 1}` };\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\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}","<div class=\"flex flex-col items-center flex-wrap w-full justify-center {{ classIncludeContainer() ?? '' }}\">\n @let constHtmlDisplayTotalPageAndGotoPage = showTotalPage() || showInputGotoPage();\n\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre\t= currentPage() <=1 || totalPage() <=1 || disable();\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\" [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 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()\" [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event,item)\">\n {{ item.value }}\n </div>\n }\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\t= currentPage() >= totalPage() || disable();\n <div class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\" \n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t[class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t(click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div 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 [dataType]=\"'int'\" classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\" [emitEmptyInDataTypeNumber]=\"true\" [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\" (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\" [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 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(Array.from({ length: this.totalPage() }, (_, index) => {\n return { key: `${index + 1}`, value: `${index + 1}` };\n }));\n\n return;\n }\n\n if (this.currentPage() < this.numberPageDispaly() - 1) {\n this.listPageDisplay.set(Array.from({ length: this.numberPageDispaly() }, (_, index) => {\n return { key: `${index + 1}`, value: `${index + 1}` };\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\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}","<div class=\"flex flex-col items-center flex-wrap w-full justify-center {{ classIncludeContainer() ?? '' }}\">\n @let constHtmlDisplayTotalPageAndGotoPage = showTotalPage() || showInputGotoPage();\n\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'top') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"flex shrink-0 h-full items-center\">\n @let constHtmlDisableButtonPre\t= currentPage() <=1 || totalPage() <=1 || disable();\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'left') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n <div class=\"libs-ui-components-pagination-button rotate-[180deg] pl-[14px] pr-[6px]\"\n [class.libs-ui-disable]=\"constHtmlDisableButtonPre\" [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 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()\" [class.pointer-events-none]=\"disable()\"\n (click)=\"selectPage($event,item)\">\n {{ item.value }}\n </div>\n }\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\t= currentPage() >= totalPage() || disable();\n <div class=\"libs-ui-components-pagination-button pl-[14px] pr-[6p]x\" \n [class.libs-ui-disable]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t[class.pointer-events-none]=\"constHtmlDisableButtonNext\"\n\t\t\t\t\t\t(click)=\"nextPage($event)\">\n <i class=\"libs-ui-icon-chevron-right libs-ui-font-h2r\"></i>\n </div>\n\t\t\t\t@if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'right') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n </div>\n @if (constHtmlDisplayTotalPageAndGotoPage && modeDisplayTotalPageAndGotoPage() === 'bottom') {\n <ng-container *ngTemplateOutlet=\"gotoPageNumberRef\" />\n }\n\n</div>\n\n<ng-template #gotoPageNumberRef>\n <div 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 [dataType]=\"'int'\" classInclude=\"!rounded-[6px]\"\n [maxValueNumber]=\"totalPage()\" [emitEmptyInDataTypeNumber]=\"true\" [defaultHeight]=\"28\"\n [value]=\"gotoPageNumber() || ''\" (outChange)=\"changePage($event)\"\n (outEnterEvent)=\"handlerEnterInput()\" [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
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@libs-ui/components-pagination",
3
- "version": "0.2.285",
3
+ "version": "0.2.287",
4
4
  "peerDependencies": {
5
- "@angular/common": "^18.2.0",
6
- "@angular/core": "^18.2.0"
5
+ "@angular/common": ">=18.0.0",
6
+ "@angular/core": ">=18.0.0"
7
7
  },
8
8
  "sideEffects": false,
9
9
  "module": "fesm2022/libs-ui-components-pagination.mjs",