ng-tailwind 5.2.1 → 5.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/animations/ngt-angular-animations.d.ts +5 -5
- package/base/ngt-base-ng-model.d.ts +32 -32
- package/components/ngt-action/ngt-action.component.d.ts +30 -30
- package/components/ngt-action/ngt-action.module.d.ts +10 -10
- package/components/ngt-button/ngt-button.component.d.ts +35 -35
- package/components/ngt-button/ngt-button.module.d.ts +10 -10
- package/components/ngt-checkbox/ngt-checkbox.component.d.ts +53 -53
- package/components/ngt-checkbox/ngt-checkbox.module.d.ts +10 -10
- package/components/ngt-content/ngt-content.component.d.ts +12 -12
- package/components/ngt-content/ngt-content.module.d.ts +8 -8
- package/components/ngt-context-menu/ngt-context-menu.component.d.ts +19 -19
- package/components/ngt-context-menu/ngt-context-menu.directive.d.ts +25 -25
- package/components/ngt-context-menu/ngt-context-menu.module.d.ts +10 -10
- package/components/ngt-datatable/ngt-datatable.component.d.ts +125 -125
- package/components/ngt-datatable/ngt-datatable.module.d.ts +25 -25
- package/components/ngt-datatable/ngt-tbody/ngt-tbody.component.d.ts +14 -14
- package/components/ngt-datatable/ngt-td/ngt-td.component.d.ts +14 -14
- package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +29 -29
- package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +55 -55
- package/components/ngt-datatable/ngt-th-check/ngt-th-check.component.d.ts +32 -32
- package/components/ngt-datatable/ngt-thead/ngt-thead.component.d.ts +13 -13
- package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +20 -20
- package/components/ngt-date/ngt-date.component.d.ts +85 -85
- package/components/ngt-date/ngt-date.module.d.ts +13 -13
- package/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.d.ts +8 -8
- package/components/ngt-dropdown/ngt-dropdown.component.d.ts +53 -53
- package/components/ngt-dropdown/ngt-dropdown.module.d.ts +9 -9
- package/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.d.ts +14 -14
- package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +25 -25
- package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +35 -35
- package/components/ngt-dropzone/ngt-dropzone.component.d.ts +95 -95
- package/components/ngt-dropzone/ngt-dropzone.meta.d.ts +27 -27
- package/components/ngt-dropzone/ngt-dropzone.module.d.ts +17 -17
- package/components/ngt-floating-button/ngt-floating-button.component.d.ts +35 -35
- package/components/ngt-floating-button/ngt-floating-button.module.d.ts +10 -10
- package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +10 -10
- package/components/ngt-form/ngt-form.component.d.ts +60 -60
- package/components/ngt-form/ngt-form.module.d.ts +9 -9
- package/components/ngt-header-nav/ngt-header-nav.component.d.ts +14 -14
- package/components/ngt-header-nav/ngt-header-nav.module.d.ts +8 -8
- package/components/ngt-helper/ngt-helper.component.d.ts +25 -25
- package/components/ngt-helper/ngt-helper.module.d.ts +10 -10
- package/components/ngt-input/ngt-input.component.d.ts +129 -129
- package/components/ngt-input/ngt-input.module.d.ts +14 -14
- package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +17 -17
- package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +12 -12
- package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +15 -15
- package/components/ngt-modal/ngt-modal.component.d.ts +31 -31
- package/components/ngt-modal/ngt-modal.module.d.ts +11 -11
- package/components/ngt-multi-select/ngt-multi-select.component.d.ts +116 -116
- package/components/ngt-multi-select/ngt-multi-select.module.d.ts +15 -15
- package/components/ngt-pagination/ngt-pagination.component.d.ts +43 -43
- package/components/ngt-pagination/ngt-pagination.module.d.ts +12 -12
- package/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.d.ts +21 -21
- package/components/ngt-popover/ngt-popover.component.d.ts +31 -31
- package/components/ngt-popover/ngt-popover.directive.d.ts +31 -31
- package/components/ngt-popover/ngt-popover.module.d.ts +11 -11
- package/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +12 -12
- package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +12 -12
- package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +18 -18
- package/components/ngt-portlet/ngt-portlet.component.d.ts +20 -20
- package/components/ngt-portlet/ngt-portlet.module.d.ts +13 -13
- package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +9 -9
- package/components/ngt-radio-button/ngt-radio-button.component.d.ts +45 -45
- package/components/ngt-radio-button/ngt-radio-button.module.d.ts +11 -11
- package/components/ngt-section/ngt-section.component.d.ts +38 -38
- package/components/ngt-section/ngt-section.module.d.ts +11 -11
- package/components/ngt-select/ngt-select.component.d.ts +154 -154
- package/components/ngt-select/ngt-select.directive.d.ts +20 -20
- package/components/ngt-select/ngt-select.module.d.ts +16 -16
- package/components/ngt-shining/ngt-shining.component.d.ts +19 -19
- package/components/ngt-shining/ngt-shining.module.d.ts +8 -8
- package/components/ngt-sidenav/ngt-sidenav.component.d.ts +32 -32
- package/components/ngt-sidenav/ngt-sidenav.module.d.ts +8 -8
- package/components/ngt-slider/ngt-slider.component.d.ts +36 -36
- package/components/ngt-slider/ngt-slider.module.d.ts +9 -9
- package/components/ngt-svg/ngt-svg.component.d.ts +13 -13
- package/components/ngt-svg/ngt-svg.module.d.ts +10 -10
- package/components/ngt-tag/ngt-tag.component.d.ts +13 -13
- package/components/ngt-tag/ngt-tag.module.d.ts +9 -9
- package/components/ngt-textarea/ngt-textarea.component.d.ts +49 -49
- package/components/ngt-textarea/ngt-textarea.module.d.ts +13 -13
- package/components/ngt-validation/ngt-validation.component.d.ts +13 -13
- package/components/ngt-validation/ngt-validation.module.d.ts +8 -8
- package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +68 -68
- package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +8 -8
- package/enums/size.enum.d.ts +8 -8
- package/esm2020/animations/ngt-angular-animations.mjs +34 -34
- package/esm2020/base/ngt-base-ng-model.mjs +90 -90
- package/esm2020/components/ngt-action/ngt-action.component.mjs +96 -96
- package/esm2020/components/ngt-action/ngt-action.module.mjs +28 -28
- package/esm2020/components/ngt-button/ngt-button.component.mjs +142 -142
- package/esm2020/components/ngt-button/ngt-button.module.mjs +28 -28
- package/esm2020/components/ngt-checkbox/ngt-checkbox.component.mjs +192 -192
- package/esm2020/components/ngt-checkbox/ngt-checkbox.module.mjs +28 -28
- package/esm2020/components/ngt-content/ngt-content.component.mjs +32 -32
- package/esm2020/components/ngt-content/ngt-content.module.mjs +20 -20
- package/esm2020/components/ngt-context-menu/ngt-context-menu.component.mjs +25 -25
- package/esm2020/components/ngt-context-menu/ngt-context-menu.directive.mjs +89 -89
- package/esm2020/components/ngt-context-menu/ngt-context-menu.module.mjs +33 -33
- package/esm2020/components/ngt-datatable/ngt-datatable.component.mjs +470 -470
- package/esm2020/components/ngt-datatable/ngt-datatable.module.mjs +99 -99
- package/esm2020/components/ngt-datatable/ngt-tbody/ngt-tbody.component.mjs +57 -57
- package/esm2020/components/ngt-datatable/ngt-td/ngt-td.component.mjs +62 -62
- package/esm2020/components/ngt-datatable/ngt-td-check/ngt-td-check.component.mjs +113 -113
- package/esm2020/components/ngt-datatable/ngt-th/ngt-th.component.mjs +228 -228
- package/esm2020/components/ngt-datatable/ngt-th-check/ngt-th-check.component.mjs +127 -127
- package/esm2020/components/ngt-datatable/ngt-thead/ngt-thead.component.mjs +55 -55
- package/esm2020/components/ngt-datatable/ngt-tr/ngt-tr.component.mjs +86 -86
- package/esm2020/components/ngt-date/ngt-date.component.mjs +435 -435
- package/esm2020/components/ngt-date/ngt-date.module.mjs +40 -40
- package/esm2020/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.mjs +19 -19
- package/esm2020/components/ngt-dropdown/ngt-dropdown.component.mjs +204 -204
- package/esm2020/components/ngt-dropdown/ngt-dropdown.module.mjs +21 -21
- package/esm2020/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.mjs +54 -54
- package/esm2020/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.mjs +69 -66
- package/esm2020/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.mjs +94 -94
- package/esm2020/components/ngt-dropzone/ngt-dropzone.component.mjs +496 -496
- package/esm2020/components/ngt-dropzone/ngt-dropzone.meta.mjs +24 -24
- package/esm2020/components/ngt-dropzone/ngt-dropzone.module.mjs +55 -55
- package/esm2020/components/ngt-floating-button/ngt-floating-button.component.mjs +119 -119
- package/esm2020/components/ngt-floating-button/ngt-floating-button.module.mjs +28 -28
- package/esm2020/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.mjs +22 -22
- package/esm2020/components/ngt-form/ngt-form.component.mjs +207 -207
- package/esm2020/components/ngt-form/ngt-form.module.mjs +29 -29
- package/esm2020/components/ngt-header-nav/ngt-header-nav.component.mjs +39 -39
- package/esm2020/components/ngt-header-nav/ngt-header-nav.module.mjs +20 -20
- package/esm2020/components/ngt-helper/ngt-helper.component.mjs +68 -68
- package/esm2020/components/ngt-helper/ngt-helper.module.mjs +28 -28
- package/esm2020/components/ngt-input/ngt-input.component.mjs +844 -844
- package/esm2020/components/ngt-input/ngt-input.module.mjs +47 -47
- package/esm2020/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.mjs +46 -46
- package/esm2020/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.mjs +33 -33
- package/esm2020/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.mjs +40 -40
- package/esm2020/components/ngt-modal/ngt-modal.component.mjs +122 -122
- package/esm2020/components/ngt-modal/ngt-modal.module.mjs +39 -39
- package/esm2020/components/ngt-multi-select/ngt-multi-select.component.mjs +503 -503
- package/esm2020/components/ngt-multi-select/ngt-multi-select.module.mjs +52 -52
- package/esm2020/components/ngt-pagination/ngt-pagination.component.mjs +162 -162
- package/esm2020/components/ngt-pagination/ngt-pagination.module.mjs +36 -36
- package/esm2020/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.mjs +58 -58
- package/esm2020/components/ngt-popover/ngt-popover.component.mjs +85 -85
- package/esm2020/components/ngt-popover/ngt-popover.directive.mjs +126 -126
- package/esm2020/components/ngt-popover/ngt-popover.module.mjs +36 -36
- package/esm2020/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.mjs +34 -34
- package/esm2020/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.mjs +35 -35
- package/esm2020/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.mjs +57 -57
- package/esm2020/components/ngt-portlet/ngt-portlet.component.mjs +74 -74
- package/esm2020/components/ngt-portlet/ngt-portlet.module.mjs +47 -47
- package/esm2020/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.mjs +19 -19
- package/esm2020/components/ngt-radio-button/ngt-radio-button.component.mjs +153 -153
- package/esm2020/components/ngt-radio-button/ngt-radio-button.module.mjs +29 -29
- package/esm2020/components/ngt-section/ngt-section.component.mjs +151 -151
- package/esm2020/components/ngt-section/ngt-section.module.mjs +32 -32
- package/esm2020/components/ngt-select/ngt-select.component.mjs +670 -670
- package/esm2020/components/ngt-select/ngt-select.directive.mjs +36 -36
- package/esm2020/components/ngt-select/ngt-select.module.mjs +65 -65
- package/esm2020/components/ngt-shining/ngt-shining.component.mjs +40 -40
- package/esm2020/components/ngt-shining/ngt-shining.module.mjs +20 -20
- package/esm2020/components/ngt-sidenav/ngt-sidenav.component.mjs +132 -132
- package/esm2020/components/ngt-sidenav/ngt-sidenav.module.mjs +20 -20
- package/esm2020/components/ngt-slider/ngt-slider.component.mjs +100 -100
- package/esm2020/components/ngt-slider/ngt-slider.module.mjs +24 -24
- package/esm2020/components/ngt-svg/ngt-svg.component.mjs +53 -53
- package/esm2020/components/ngt-svg/ngt-svg.module.mjs +28 -28
- package/esm2020/components/ngt-tag/ngt-tag.component.mjs +37 -37
- package/esm2020/components/ngt-tag/ngt-tag.module.mjs +24 -24
- package/esm2020/components/ngt-textarea/ngt-textarea.component.mjs +238 -238
- package/esm2020/components/ngt-textarea/ngt-textarea.module.mjs +43 -43
- package/esm2020/components/ngt-validation/ngt-validation.component.mjs +26 -26
- package/esm2020/components/ngt-validation/ngt-validation.module.mjs +20 -20
- package/esm2020/directives/ngt-stylizable/ngt-stylizable.directive.mjs +290 -290
- package/esm2020/directives/ngt-stylizable/ngt-stylizable.module.mjs +20 -20
- package/esm2020/enums/size.enum.mjs +11 -11
- package/esm2020/helpers/enum/enum.mjs +7 -7
- package/esm2020/helpers/form/form.mjs +14 -14
- package/esm2020/helpers/input-mask/input-mask.helper.mjs +26 -26
- package/esm2020/helpers/promise/promise-helper.mjs +4 -4
- package/esm2020/helpers/routing/route.mjs +11 -11
- package/esm2020/helpers/uuid.mjs +10 -10
- package/esm2020/ng-tailwind.mjs +4 -4
- package/esm2020/public-api.mjs +127 -127
- package/esm2020/services/http/ngt-attachment-http.service.mjs +3 -3
- package/esm2020/services/http/ngt-http-form.service.mjs +3 -3
- package/esm2020/services/http/ngt-http-resource.service.mjs +3 -3
- package/esm2020/services/http/ngt-http-validation.service.mjs +3 -3
- package/esm2020/services/http/ngt-http.service.mjs +3 -3
- package/esm2020/services/http/ngt-translate.service.mjs +3 -3
- package/esm2020/services/ngt-stylizable/ngt-stylizable.service.mjs +273 -273
- package/esm2020/services/validation/ngt-ability-validation.service.mjs +3 -3
- package/fesm2015/ng-tailwind.mjs +8656 -8653
- package/fesm2015/ng-tailwind.mjs.map +1 -1
- package/fesm2020/ng-tailwind.mjs +8481 -8478
- package/fesm2020/ng-tailwind.mjs.map +1 -1
- package/helpers/enum/enum.d.ts +1 -1
- package/helpers/form/form.d.ts +4 -4
- package/helpers/input-mask/input-mask.helper.d.ts +20 -20
- package/helpers/promise/promise-helper.d.ts +1 -1
- package/helpers/routing/route.d.ts +2 -2
- package/helpers/uuid.d.ts +1 -1
- package/index.d.ts +5 -5
- package/package.json +1 -1
- package/public-api.d.ts +87 -87
- package/services/http/ngt-attachment-http.service.d.ts +9 -9
- package/services/http/ngt-http-form.service.d.ts +5 -5
- package/services/http/ngt-http-resource.service.d.ts +12 -12
- package/services/http/ngt-http-validation.service.d.ts +12 -12
- package/services/http/ngt-http.service.d.ts +27 -27
- package/services/http/ngt-translate.service.d.ts +33 -33
- package/services/ngt-stylizable/ngt-stylizable.service.d.ts +96 -96
- package/services/validation/ngt-ability-validation.service.d.ts +5 -5
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';
|
|
5
|
-
import { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';
|
|
6
|
-
import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
|
|
7
|
-
import { NgtInputModule } from '../ngt-input/ngt-input.module';
|
|
8
|
-
import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
|
|
9
|
-
import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
|
|
10
|
-
import { NgtMultiSelectComponent } from './ngt-multi-select.component';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
export class NgtMultiSelectModule {
|
|
13
|
-
}
|
|
14
|
-
NgtMultiSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
-
NgtMultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, declarations: [NgtMultiSelectComponent], imports: [CommonModule,
|
|
16
|
-
FormsModule,
|
|
17
|
-
NgtValidationModule,
|
|
18
|
-
NgtShiningModule,
|
|
19
|
-
NgtHelperModule,
|
|
20
|
-
NgtInputModule,
|
|
21
|
-
NgtCheckboxModule,
|
|
22
|
-
NgtStylizableModule], exports: [NgtMultiSelectComponent] });
|
|
23
|
-
NgtMultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, imports: [CommonModule,
|
|
24
|
-
FormsModule,
|
|
25
|
-
NgtValidationModule,
|
|
26
|
-
NgtShiningModule,
|
|
27
|
-
NgtHelperModule,
|
|
28
|
-
NgtInputModule,
|
|
29
|
-
NgtCheckboxModule,
|
|
30
|
-
NgtStylizableModule] });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, decorators: [{
|
|
32
|
-
type: NgModule,
|
|
33
|
-
args: [{
|
|
34
|
-
declarations: [
|
|
35
|
-
NgtMultiSelectComponent
|
|
36
|
-
],
|
|
37
|
-
exports: [
|
|
38
|
-
NgtMultiSelectComponent
|
|
39
|
-
],
|
|
40
|
-
imports: [
|
|
41
|
-
CommonModule,
|
|
42
|
-
FormsModule,
|
|
43
|
-
NgtValidationModule,
|
|
44
|
-
NgtShiningModule,
|
|
45
|
-
NgtHelperModule,
|
|
46
|
-
NgtInputModule,
|
|
47
|
-
NgtCheckboxModule,
|
|
48
|
-
NgtStylizableModule
|
|
49
|
-
]
|
|
50
|
-
}]
|
|
51
|
-
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';
|
|
5
|
+
import { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';
|
|
6
|
+
import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
|
|
7
|
+
import { NgtInputModule } from '../ngt-input/ngt-input.module';
|
|
8
|
+
import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
|
|
9
|
+
import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
|
|
10
|
+
import { NgtMultiSelectComponent } from './ngt-multi-select.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class NgtMultiSelectModule {
|
|
13
|
+
}
|
|
14
|
+
NgtMultiSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
NgtMultiSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, declarations: [NgtMultiSelectComponent], imports: [CommonModule,
|
|
16
|
+
FormsModule,
|
|
17
|
+
NgtValidationModule,
|
|
18
|
+
NgtShiningModule,
|
|
19
|
+
NgtHelperModule,
|
|
20
|
+
NgtInputModule,
|
|
21
|
+
NgtCheckboxModule,
|
|
22
|
+
NgtStylizableModule], exports: [NgtMultiSelectComponent] });
|
|
23
|
+
NgtMultiSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, imports: [CommonModule,
|
|
24
|
+
FormsModule,
|
|
25
|
+
NgtValidationModule,
|
|
26
|
+
NgtShiningModule,
|
|
27
|
+
NgtHelperModule,
|
|
28
|
+
NgtInputModule,
|
|
29
|
+
NgtCheckboxModule,
|
|
30
|
+
NgtStylizableModule] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtMultiSelectModule, decorators: [{
|
|
32
|
+
type: NgModule,
|
|
33
|
+
args: [{
|
|
34
|
+
declarations: [
|
|
35
|
+
NgtMultiSelectComponent
|
|
36
|
+
],
|
|
37
|
+
exports: [
|
|
38
|
+
NgtMultiSelectComponent
|
|
39
|
+
],
|
|
40
|
+
imports: [
|
|
41
|
+
CommonModule,
|
|
42
|
+
FormsModule,
|
|
43
|
+
NgtValidationModule,
|
|
44
|
+
NgtShiningModule,
|
|
45
|
+
NgtHelperModule,
|
|
46
|
+
NgtInputModule,
|
|
47
|
+
NgtCheckboxModule,
|
|
48
|
+
NgtStylizableModule
|
|
49
|
+
]
|
|
50
|
+
}]
|
|
51
|
+
}] });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LW11bHRpLXNlbGVjdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtbXVsdGktc2VsZWN0L25ndC1tdWx0aS1zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQW9CdkUsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQWhCekIsdUJBQXVCLGFBTXZCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixtQkFBbUIsYUFWbkIsdUJBQXVCO2tIQWFsQixvQkFBb0IsWUFWekIsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLG1CQUFtQjsyRkFHZCxvQkFBb0I7a0JBbEJoQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVix1QkFBdUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDTCx1QkFBdUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE5ndFN0eWxpemFibGVNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5ndENoZWNrYm94TW9kdWxlIH0gZnJvbSAnLi4vbmd0LWNoZWNrYm94L25ndC1jaGVja2JveC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ3RIZWxwZXJNb2R1bGUgfSBmcm9tICcuLi9uZ3QtaGVscGVyL25ndC1oZWxwZXIubW9kdWxlJztcclxuaW1wb3J0IHsgTmd0SW5wdXRNb2R1bGUgfSBmcm9tICcuLi9uZ3QtaW5wdXQvbmd0LWlucHV0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IE5ndFNoaW5pbmdNb2R1bGUgfSBmcm9tICcuLi9uZ3Qtc2hpbmluZy9uZ3Qtc2hpbmluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ3RWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vbmd0LXZhbGlkYXRpb24vbmd0LXZhbGlkYXRpb24ubW9kdWxlJztcclxuaW1wb3J0IHsgTmd0TXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL25ndC1tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBOZ3RNdWx0aVNlbGVjdENvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBOZ3RNdWx0aVNlbGVjdENvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgTmd0VmFsaWRhdGlvbk1vZHVsZSxcclxuICAgICAgICBOZ3RTaGluaW5nTW9kdWxlLFxyXG4gICAgICAgIE5ndEhlbHBlck1vZHVsZSxcclxuICAgICAgICBOZ3RJbnB1dE1vZHVsZSxcclxuICAgICAgICBOZ3RDaGVja2JveE1vZHVsZSxcclxuICAgICAgICBOZ3RTdHlsaXphYmxlTW9kdWxlXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3RNdWx0aVNlbGVjdE1vZHVsZSB7IH1cclxuIl19
|
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Optional, Output } from '@angular/core';
|
|
2
|
-
import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../services/http/ngt-translate.service";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@angular/forms";
|
|
7
|
-
import * as i4 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
|
|
8
|
-
import * as i5 from "../ngt-action/ngt-action.component";
|
|
9
|
-
import * as i6 from "../ngt-select/ngt-select.component";
|
|
10
|
-
import * as i7 from "../ngt-select/ngt-select.directive";
|
|
11
|
-
export class NgtPaginationComponent {
|
|
12
|
-
constructor(injector, ngtTranslateService) {
|
|
13
|
-
this.injector = injector;
|
|
14
|
-
this.ngtTranslateService = ngtTranslateService;
|
|
15
|
-
this.onPageChange = new EventEmitter();
|
|
16
|
-
this.onPerPageChange = new EventEmitter();
|
|
17
|
-
this.displayPagination = true;
|
|
18
|
-
this.pagination = {
|
|
19
|
-
count: null,
|
|
20
|
-
page: 1,
|
|
21
|
-
pages: null,
|
|
22
|
-
total: null,
|
|
23
|
-
from: null,
|
|
24
|
-
to: null,
|
|
25
|
-
per_page: null
|
|
26
|
-
};
|
|
27
|
-
this.pages = [];
|
|
28
|
-
this.registersPerPageOptions = [
|
|
29
|
-
5, 10, 15, 30, 50, 100
|
|
30
|
-
];
|
|
31
|
-
this.currentRegistersPerPage = 15;
|
|
32
|
-
this.ngtPaginationNextPreviousButtonStyle = new NgtStylizableService();
|
|
33
|
-
this.ngtPaginationNextPreviousSectionButtonStyle = new NgtStylizableService();
|
|
34
|
-
this.ngtPaginationFirstLastButtonStyle = new NgtStylizableService();
|
|
35
|
-
this.ngtPaginationActivePageButtonStyle = new NgtStylizableService();
|
|
36
|
-
this.ngtPaginationPageButtonStyle = new NgtStylizableService();
|
|
37
|
-
this.ngtPaginationNextPreviousButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {
|
|
38
|
-
h: 'h-6',
|
|
39
|
-
w: 'w-6',
|
|
40
|
-
color: {
|
|
41
|
-
text: 'text-white',
|
|
42
|
-
bg: 'bg-gray-700'
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
this.ngtPaginationNextPreviousSectionButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {
|
|
46
|
-
h: 'h-6',
|
|
47
|
-
w: 'w-6',
|
|
48
|
-
color: {
|
|
49
|
-
text: 'text-white',
|
|
50
|
-
bg: 'bg-gray-300'
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
this.ngtPaginationFirstLastButtonStyle.load(this.injector, 'NgtPaginationFirstLastButton', {
|
|
54
|
-
h: 'h-6',
|
|
55
|
-
w: 'w-6',
|
|
56
|
-
color: {
|
|
57
|
-
text: 'text-white',
|
|
58
|
-
bg: 'bg-gray-900'
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
this.ngtPaginationActivePageButtonStyle.load(this.injector, 'NgtPaginationActivePageButton', {
|
|
62
|
-
h: 'h-6',
|
|
63
|
-
w: 'w-6',
|
|
64
|
-
color: {
|
|
65
|
-
text: 'text-white',
|
|
66
|
-
bg: 'bg-gray-500'
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
this.ngtPaginationPageButtonStyle.load(this.injector, 'NgtPaginationPageButton', {
|
|
70
|
-
h: 'h-6',
|
|
71
|
-
w: 'w-6',
|
|
72
|
-
color: {
|
|
73
|
-
text: 'text-white',
|
|
74
|
-
bg: 'bg-gray-300'
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
onRegistersPerPageChange(value) {
|
|
79
|
-
if (value && this.pagination.per_page != value) {
|
|
80
|
-
this.pagination.per_page = value;
|
|
81
|
-
this.currentRegistersPerPage = value;
|
|
82
|
-
this.onPerPageChange.emit(value);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
async goToPage(page) {
|
|
86
|
-
this.onPageChange.emit(page);
|
|
87
|
-
}
|
|
88
|
-
async goToPreviousPage() {
|
|
89
|
-
if ((this.pagination.page - 1) > 0) {
|
|
90
|
-
return this.goToPage(this.pagination.page - 1);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async goToNextPage() {
|
|
94
|
-
if ((this.pagination.page + 1) <= this.pagination.pages) {
|
|
95
|
-
return this.goToPage(this.pagination.page + 1);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
async goToPreviousSection() {
|
|
99
|
-
return this.goToPage(this.sectionStartPage - 1);
|
|
100
|
-
}
|
|
101
|
-
async goToNextSection() {
|
|
102
|
-
return this.goToPage(this.sectionEndPage + 1);
|
|
103
|
-
}
|
|
104
|
-
async goToFirstPage() {
|
|
105
|
-
if (this.pagination.page != 1) {
|
|
106
|
-
return this.goToPage(1);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
async goToLastPage() {
|
|
110
|
-
if (this.pagination.page != this.pagination.pages) {
|
|
111
|
-
return this.goToPage(this.pagination.pages);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
getCurrentPage() {
|
|
115
|
-
return this.pagination.page;
|
|
116
|
-
}
|
|
117
|
-
getPagination() {
|
|
118
|
-
return this.pagination;
|
|
119
|
-
}
|
|
120
|
-
proccessPagination(meta) {
|
|
121
|
-
this.pages = [];
|
|
122
|
-
this.pagination = meta.pagination;
|
|
123
|
-
this.sectionStartPage = Math.floor((this.pagination.page - 1) / this.pagesInterval) * this.pagesInterval + 1;
|
|
124
|
-
this.sectionEndPage = this.sectionStartPage + (this.pagesInterval - 1);
|
|
125
|
-
const totalPages = this.pagination.pages;
|
|
126
|
-
for (let i = this.sectionStartPage; i <= this.sectionEndPage && i <= totalPages; i++) {
|
|
127
|
-
this.pages.push(i);
|
|
128
|
-
}
|
|
129
|
-
this.bindDisplayedButtonSections(this.sectionStartPage, this.sectionEndPage, totalPages);
|
|
130
|
-
this.displayPagination = true;
|
|
131
|
-
}
|
|
132
|
-
resetPagination() {
|
|
133
|
-
this.pagination = {
|
|
134
|
-
count: null,
|
|
135
|
-
page: 1,
|
|
136
|
-
pages: null,
|
|
137
|
-
total: null,
|
|
138
|
-
from: null,
|
|
139
|
-
to: null,
|
|
140
|
-
per_page: null
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
bindDisplayedButtonSections(sectionStartPage, sectionEndPage, totalPages) {
|
|
144
|
-
this.displayPreviousSectionButton = sectionStartPage > 1;
|
|
145
|
-
this.displayNextSectionButton = sectionEndPage < totalPages;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
NgtPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, deps: [{ token: i0.Injector }, { token: i1.NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
149
|
-
NgtPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtPaginationComponent, selector: "ngt-pagination", inputs: { pagesInterval: "pagesInterval" }, outputs: { onPageChange: "onPageChange", onPerPageChange: "onPerPageChange" }, ngImport: i0, template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\n <ul class=\"flex justify-start\">\n <!-- FIRST -->\n <li (click)='goToFirstPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS -->\n <li (click)='goToPreviousPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS SECTION -->\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <ng-container *ngFor='let page of pages'>\n <ng-container *ngIf='page == pagination.page'>\n <li class=\"mr-2\">\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n <ng-container *ngIf='page !== pagination.page'>\n <li (click)='goToPage(page)' class=\"mr-2\">\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n </ng-container>\n\n <!-- NEXT SECTION -->\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- NEXT -->\n <li (click)='goToNextPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- LAST -->\n <li (click)='goToLastPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n </ul>\n\n <!-- REGISTERS PER PAGE -->\n <div class=\"flex items-center w-auto absolute right-0\">\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\n {{ item ? item : '' }}\n </ng-template>\n </ngt-select>\n\n <P class=\"text-xs ml-2\">\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\n </P>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }, { kind: "component", type: i5.NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled", "forceEnable"] }, { kind: "component", type: i6.NgtSelectComponent, selector: "ngt-select", inputs: ["label", "labelIcon", "labelIconColor", "helpTitle", "helpText", "helpTextColor", "shining", "loading", "loadingText", "notFoundText", "dropdownPosition", "typeToSearchText", "clearAllTooltip", "placeholder", "createText", "labelForId", "dropdownPanelMinHeight", "helperReverseYPosition", "helperAutoXReverse", "name", "autoLoad", "allowCreate", "allowOriginalItemsUnselect", "isDisabled", "isReadonly", "remoteResource", "hideSelected", "bindLabel", "bindValue", "items", "inputAttrs", "closeOnSelect", "clearable", "groupBy", "maxSelectedItems", "multiple", "searchable", "clearSearchOnAdd", "virtualScroll", "tabIndex", "typeahead", "guessCompareWith", "autoSelectUniqueOption", "groupValue", "trackBy", "sortSelectedItemsFn", "isAllowedToRemoveFn", "isRequired", "compareWith"], outputs: ["onLoadRemoteResource", "onSelectedItemRemove", "onClear", "onClose"] }, { kind: "directive", type: i7.NgtSelectOptionTmp, selector: "[ngt-select-option]" }] });
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, decorators: [{
|
|
151
|
-
type: Component,
|
|
152
|
-
args: [{ selector: 'ngt-pagination', template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\n <ul class=\"flex justify-start\">\n <!-- FIRST -->\n <li (click)='goToFirstPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS -->\n <li (click)='goToPreviousPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- PREVIOUS SECTION -->\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <ng-container *ngFor='let page of pages'>\n <ng-container *ngIf='page == pagination.page'>\n <li class=\"mr-2\">\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n <ng-container *ngIf='page !== pagination.page'>\n <li (click)='goToPage(page)' class=\"mr-2\">\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\n {{ page }}\n </ngt-action>\n </li>\n </ng-container>\n\n </ng-container>\n\n <!-- NEXT SECTION -->\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- NEXT -->\n <li (click)='goToNextPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\n </svg>\n </ngt-action>\n </li>\n\n <!-- LAST -->\n <li (click)='goToLastPage()' class=\"mr-2\">\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n aria-hidden=\"true\" focusable=\"false\"\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\n <path\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\n </svg>\n </ngt-action>\n </li>\n </ul>\n\n <!-- REGISTERS PER PAGE -->\n <div class=\"flex items-center w-auto absolute right-0\">\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\n {{ item ? item : '' }}\n </ng-template>\n </ngt-select>\n\n <P class=\"text-xs ml-2\">\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\n </P>\n </div>\n</div>\n" }]
|
|
153
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgtTranslateService, decorators: [{
|
|
154
|
-
type: Optional
|
|
155
|
-
}] }]; }, propDecorators: { pagesInterval: [{
|
|
156
|
-
type: Input
|
|
157
|
-
}], onPageChange: [{
|
|
158
|
-
type: Output
|
|
159
|
-
}], onPerPageChange: [{
|
|
160
|
-
type: Output
|
|
161
|
-
}] } });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXBhZ2luYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXBhZ2luYXRpb24vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXBhZ2luYXRpb24vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7OztBQU01RixNQUFNLE9BQU8sc0JBQXNCO0lBcUMvQixZQUNZLFFBQWtCLEVBRW5CLG1CQUF3QztRQUZ2QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRW5CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFyQ2xDLGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQsb0JBQWUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWFyRSxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFFbEMsZUFBVSxHQUFzQjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxJQUFJO1lBQ1YsRUFBRSxFQUFFLElBQUk7WUFDUixRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDO1FBRUssVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLDRCQUF1QixHQUFHO1lBQzdCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFB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Qyx3QkFBd0IsR0FBRyxjQUFjLEdBQUcsVUFBVSxDQUFDO0lBQ2hFLENBQUM7O21IQW5MUSxzQkFBc0I7dUdBQXRCLHNCQUFzQixpTENWbkMsc2tMQXlHQTsyRkQvRmEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNJLGdCQUFnQjs7MEJBMENyQixRQUFROzRDQXRDRyxhQUFhO3NCQUE1QixLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsZUFBZTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmd0SHR0cE1ldGEsIE5ndEh0dHBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9uZ3QtaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IE5ndFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL25ndC10cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1wYWdpbmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5ndFBhZ2luYXRpb25Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdlc0ludGVydmFsOiBudW1iZXI7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIG9uUGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblBlclBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIFN0eWxlcyAqL1xuICAgIHB1YmxpYyBuZ3RQYWdpbmF0aW9uQWN0aXZlUGFnZUJ1dHRvblN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcbiAgICBwdWJsaWMgbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c0J1dHRvblN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcbiAgICBwdWJsaWMgbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG4gICAgcHVibGljIG5ndFBhZ2luYXRpb25GaXJzdExhc3RCdXR0b25TdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XG4gICAgcHVibGljIG5ndFBhZ2luYXRpb25QYWdlQnV0dG9uU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xuXG4gICAgcHVibGljIHNlY3Rpb25TdGFydFBhZ2U6IG51bWJlcjtcbiAgICBwdWJsaWMgc2VjdGlvbkVuZFBhZ2U6IG51bWJlcjtcbiAgICBwdWJsaWMgZGlzcGxheU5leHRTZWN0aW9uQnV0dG9uOiBib29sZWFuO1xuICAgIHB1YmxpYyBkaXNwbGF5UHJldmlvdXNTZWN0aW9uQnV0dG9uOiBib29sZWFuO1xuICAgIHB1YmxpYyBkaXNwbGF5UGFnaW5hdGlvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwdWJsaWMgcGFnaW5hdGlvbjogTmd0SHR0cFBhZ2luYXRpb24gPSB7XG4gICAgICAgIGNvdW50OiBudWxsLFxuICAgICAgICBwYWdlOiAxLFxuICAgICAgICBwYWdlczogbnVsbCxcbiAgICAgICAgdG90YWw6IG51bGwsXG4gICAgICAgIGZyb206IG51bGwsXG4gICAgICAgIHRvOiBudWxsLFxuICAgICAgICBwZXJfcGFnZTogbnVsbFxuICAgIH07XG5cbiAgICBwdWJsaWMgcGFnZXMgPSBbXTtcblxuICAgIHB1YmxpYyByZWdpc3RlcnNQZXJQYWdlT3B0aW9ucyA9IFtcbiAgICAgICAgNSwgMTAsIDE1LCAzMCwgNTAsIDEwMFxuICAgIF07XG5cbiAgICBwdWJsaWMgY3VycmVudFJlZ2lzdGVyc1BlclBhZ2U6IG51bWJlciA9IDE1O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHVibGljIG5ndFRyYW5zbGF0ZVNlcnZpY2U6IE5ndFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzQnV0dG9uU3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzU2VjdGlvbkJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbkFjdGl2ZVBhZ2VCdXR0b25TdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB0aGlzLm5ndFBhZ2luYXRpb25QYWdlQnV0dG9uU3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcblxuICAgICAgICB0aGlzLm5ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzQnV0dG9uJywge1xuICAgICAgICAgICAgaDogJ2gtNicsXG4gICAgICAgICAgICB3OiAndy02JyxcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtd2hpdGUnLFxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS03MDAnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzQnV0dG9uJywge1xuICAgICAgICAgICAgaDogJ2gtNicsXG4gICAgICAgICAgICB3OiAndy02JyxcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtd2hpdGUnLFxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS0zMDAnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25GaXJzdExhc3RCdXR0b24nLCB7XG4gICAgICAgICAgICBoOiAnaC02JyxcbiAgICAgICAgICAgIHc6ICd3LTYnLFxuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC13aGl0ZScsXG4gICAgICAgICAgICAgICAgYmc6ICdiZy1ncmF5LTkwMCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uQWN0aXZlUGFnZUJ1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25BY3RpdmVQYWdlQnV0dG9uJywge1xuICAgICAgICAgICAgaDogJ2gtNicsXG4gICAgICAgICAgICB3OiAndy02JyxcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtd2hpdGUnLFxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS01MDAnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvblBhZ2VCdXR0b25TdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3RQYWdpbmF0aW9uUGFnZUJ1dHRvbicsIHtcbiAgICAgICAgICAgIGg6ICdoLTYnLFxuICAgICAgICAgICAgdzogJ3ctNicsXG4gICAgICAgICAgICBjb2xvcjoge1xuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXdoaXRlJyxcbiAgICAgICAgICAgICAgICBiZzogJ2JnLWdyYXktMzAwJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZWdpc3RlcnNQZXJQYWdlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMucGFnaW5hdGlvbi5wZXJfcGFnZSAhPSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnBlcl9wYWdlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRSZWdpc3RlcnNQZXJQYWdlID0gdmFsdWU7XG5cbiAgICAgICAgICAgIHRoaXMub25QZXJQYWdlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdvVG9QYWdlKHBhZ2U6IG51bWJlcikge1xuICAgICAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnb1RvUHJldmlvdXNQYWdlKCkge1xuICAgICAgICBpZiAoKHRoaXMucGFnaW5hdGlvbi5wYWdlIC0gMSkgPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb1RvUGFnZSh0aGlzLnBhZ2luYXRpb24ucGFnZSAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdvVG9OZXh0UGFnZSgpIHtcbiAgICAgICAgaWYgKCh0aGlzLnBhZ2luYXRpb24ucGFnZSArIDEpIDw9IHRoaXMucGFnaW5hdGlvbi5wYWdlcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ29Ub1BhZ2UodGhpcy5wYWdpbmF0aW9uLnBhZ2UgKyAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnb1RvUHJldmlvdXNTZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nb1RvUGFnZSh0aGlzLnNlY3Rpb25TdGFydFBhZ2UgLSAxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ29Ub05leHRTZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nb1RvUGFnZSh0aGlzLnNlY3Rpb25FbmRQYWdlICsgMSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdvVG9GaXJzdFBhZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSAhPSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb1RvUGFnZSgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnb1RvTGFzdFBhZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSAhPSB0aGlzLnBhZ2luYXRpb24ucGFnZXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvVG9QYWdlKHRoaXMucGFnaW5hdGlvbi5wYWdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFBhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24ucGFnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFnaW5hdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvY2Nlc3NQYWdpbmF0aW9uKG1ldGE6IE5ndEh0dHBNZXRhKSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbXTtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0gbWV0YS5wYWdpbmF0aW9uO1xuXG4gICAgICAgIHRoaXMuc2VjdGlvblN0YXJ0UGFnZSA9IE1hdGguZmxvb3IoKHRoaXMucGFnaW5hdGlvbi5wYWdlIC0gMSkgLyB0aGlzLnBhZ2VzSW50ZXJ2YWwpICogdGhpcy5wYWdlc0ludGVydmFsICsgMTtcbiAgICAgICAgdGhpcy5zZWN0aW9uRW5kUGFnZSA9IHRoaXMuc2VjdGlvblN0YXJ0UGFnZSArICh0aGlzLnBhZ2VzSW50ZXJ2YWwgLSAxKTtcblxuICAgICAgICBjb25zdCB0b3RhbFBhZ2VzID0gdGhpcy5wYWdpbmF0aW9uLnBhZ2VzO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnNlY3Rpb25TdGFydFBhZ2U7IGkgPD0gdGhpcy5zZWN0aW9uRW5kUGFnZSAmJiBpIDw9IHRvdGFsUGFnZXM7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5wYWdlcy5wdXNoKGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5iaW5kRGlzcGxheWVkQnV0dG9uU2VjdGlvbnModGhpcy5zZWN0aW9uU3RhcnRQYWdlLCB0aGlzLnNlY3Rpb25FbmRQYWdlLCB0b3RhbFBhZ2VzKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5UGFnaW5hdGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0UGFnaW5hdGlvbigpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0ge1xuICAgICAgICAgICAgY291bnQ6IG51bGwsXG4gICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgICAgcGFnZXM6IG51bGwsXG4gICAgICAgICAgICB0b3RhbDogbnVsbCxcbiAgICAgICAgICAgIGZyb206IG51bGwsXG4gICAgICAgICAgICB0bzogbnVsbCxcbiAgICAgICAgICAgIHBlcl9wYWdlOiBudWxsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kRGlzcGxheWVkQnV0dG9uU2VjdGlvbnMoc2VjdGlvblN0YXJ0UGFnZTogbnVtYmVyLCBzZWN0aW9uRW5kUGFnZTogbnVtYmVyLCB0b3RhbFBhZ2VzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNTZWN0aW9uQnV0dG9uID0gc2VjdGlvblN0YXJ0UGFnZSA+IDE7XG4gICAgICAgIHRoaXMuZGlzcGxheU5leHRTZWN0aW9uQnV0dG9uID0gc2VjdGlvbkVuZFBhZ2UgPCB0b3RhbFBhZ2VzO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ7eyBkaXNwbGF5UGFnaW5hdGlvbiA/ICdmbGV4JyA6ICdoaWRkZW4nIH19IGl0ZW1zLWNlbnRlciB3LWZ1bGwgaC1mdWxsIHJlbGF0aXZlXCI+XG4gICAgPHVsIGNsYXNzPVwiZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgIDwhLS0gRklSU1QgLS0+XG4gICAgICAgIDxsaSAoY2xpY2spPSdnb1RvRmlyc3RQYWdlKCknIGNsYXNzPVwibXItMlwiPlxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIi1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XCJcbiAgICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4LjQxIDcuNDFMMTcgNmwtNiA2bDYgNmwxLjQxLTEuNDFMMTMuODMgMTJsNC41OC00LjU5bS02IDBMMTEgNmwtNiA2bDYgNmwxLjQxLTEuNDFMNy44MyAxMmw0LjU4LTQuNTl6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cblxuICAgICAgICA8IS0tIFBSRVZJT1VTIC0tPlxuICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub1ByZXZpb3VzUGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cbiAgICAgICAgICAgIDxuZ3QtYWN0aW9uIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcIlxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS40MSAxNi41OEwxMC44MyAxMmw0LjU4LTQuNTlMMTQgNmwtNiA2bDYgNmwxLjQxLTEuNDJ6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cblxuICAgICAgICA8IS0tIFBSRVZJT1VTIFNFQ1RJT04gLS0+XG4gICAgICAgIDxsaSAqbmdJZj1cImRpc3BsYXlQcmV2aW91c1NlY3Rpb25CdXR0b25cIiAoY2xpY2spPSdnb1RvUHJldmlvdXNTZWN0aW9uKCknIGNsYXNzPVwibXItMlwiPlxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNCAxMmEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj0nbGV0IHBhZ2Ugb2YgcGFnZXMnPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj0ncGFnZSA9PSBwYWdpbmF0aW9uLnBhZ2UnPlxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1yLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5ndC1hY3Rpb24gY2xhc3M9XCJ0ZXh0LXhzXCIgW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbkFjdGl2ZVBhZ2VCdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2UgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZ3QtYWN0aW9uPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj0ncGFnZSAhPT0gcGFnaW5hdGlvbi5wYWdlJz5cbiAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub1BhZ2UocGFnZSknIGNsYXNzPVwibXItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8bmd0LWFjdGlvbiBjbGFzcz1cInRleHQteHNcIiBbbmd0U3R5bGVdPSduZ3RQYWdpbmF0aW9uUGFnZUJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L25ndC1hY3Rpb24+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gTkVYVCBTRUNUSU9OIC0tPlxuICAgICAgICA8bGkgKm5nSWY9XCJkaXNwbGF5TmV4dFNlY3Rpb25CdXR0b25cIiAoY2xpY2spPSdnb1RvTmV4dFNlY3Rpb24oKScgY2xhc3M9XCJtci0yXCI+XG4gICAgICAgICAgICA8bmd0LWFjdGlvbiBbbmd0U3R5bGVdPSduZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzU2VjdGlvbkJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDEyYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNHptNiAwYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNHptNiAwYTIgMiAwIDEgMSAwLTQgMiAyIDAgMCAxIDAgNHpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9uZ3QtYWN0aW9uPlxuICAgICAgICA8L2xpPlxuXG4gICAgICAgIDwhLS0gTkVYVCAtLT5cbiAgICAgICAgPGxpIChjbGljayk9J2dvVG9OZXh0UGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cbiAgICAgICAgICAgIDxuZ3QtYWN0aW9uIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcIlxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjU5IDE2LjU4TDEzLjE3IDEyTDguNTkgNy40MUwxMCA2bDYgNmwtNiA2bC0xLjQxLTEuNDJ6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cblxuICAgICAgICA8IS0tIExBU1QgLS0+XG4gICAgICAgIDxsaSAoY2xpY2spPSdnb1RvTGFzdFBhZ2UoKScgY2xhc3M9XCJtci0yXCI+XG4gICAgICAgICAgICA8bmd0LWFjdGlvbiBbbmd0U3R5bGVdPSduZ3RQYWdpbmF0aW9uRmlyc3RMYXN0QnV0dG9uU3R5bGUnIFtmb3JjZUVuYWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcIlxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNS41OSA3LjQxTDcgNmw2IDZsLTYgNmwtMS40MS0xLjQxTDEwLjE3IDEyTDUuNTkgNy40MW02IDBMMTMgNmw2IDZsLTYgNmwtMS40MS0xLjQxTDE2LjE3IDEybC00LjU4LTQuNTl6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuXG4gICAgPCEtLSBSRUdJU1RFUlMgUEVSIFBBR0UgLS0+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHctYXV0byBhYnNvbHV0ZSByaWdodC0wXCI+XG4gICAgICAgIDxuZ3Qtc2VsZWN0IGNsYXNzPSdibG9jayB3LTIwIGxlZnQtMCcgW3NlYXJjaGFibGVdPSdmYWxzZScgW2NsZWFyYWJsZV09J2ZhbHNlJyBkcm9wZG93blBvc2l0aW9uPSd0b3AnXG4gICAgICAgICAgICBbaXRlbXNdPSdyZWdpc3RlcnNQZXJQYWdlT3B0aW9ucycgbmFtZT0ncmVnaXN0ZXJzUGVyUGFnZVNlbGVjdCcgWyhuZ01vZGVsKV09XCJjdXJyZW50UmVnaXN0ZXJzUGVyUGFnZVwiXG4gICAgICAgICAgICBoPSdoLWF1dG8nIChuZ01vZGVsQ2hhbmdlKT0nb25SZWdpc3RlcnNQZXJQYWdlQ2hhbmdlKCRldmVudCknIG5ndC1zdHlsaXphYmxlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbmd0LXNlbGVjdC1vcHRpb24+XG4gICAgICAgICAgICAgICAge3sgaXRlbSA/IGl0ZW0gOiAnJyB9fVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3Qtc2VsZWN0PlxuXG4gICAgICAgIDxQIGNsYXNzPVwidGV4dC14cyBtbC0yXCI+XG4gICAgICAgICAgICB7eyBuZ3RUcmFuc2xhdGVTZXJ2aWNlLm5ndFBhZ2luYXRpb24ocGFnaW5hdGlvbi5mcm9tLCBwYWdpbmF0aW9uLnRvLCBwYWdpbmF0aW9uLnRvdGFsKSB9fVxuICAgICAgICA8L1A+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
1
|
+
import { Component, EventEmitter, Input, Optional, Output } from '@angular/core';
|
|
2
|
+
import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../services/http/ngt-translate.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/forms";
|
|
7
|
+
import * as i4 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
|
|
8
|
+
import * as i5 from "../ngt-action/ngt-action.component";
|
|
9
|
+
import * as i6 from "../ngt-select/ngt-select.component";
|
|
10
|
+
import * as i7 from "../ngt-select/ngt-select.directive";
|
|
11
|
+
export class NgtPaginationComponent {
|
|
12
|
+
constructor(injector, ngtTranslateService) {
|
|
13
|
+
this.injector = injector;
|
|
14
|
+
this.ngtTranslateService = ngtTranslateService;
|
|
15
|
+
this.onPageChange = new EventEmitter();
|
|
16
|
+
this.onPerPageChange = new EventEmitter();
|
|
17
|
+
this.displayPagination = true;
|
|
18
|
+
this.pagination = {
|
|
19
|
+
count: null,
|
|
20
|
+
page: 1,
|
|
21
|
+
pages: null,
|
|
22
|
+
total: null,
|
|
23
|
+
from: null,
|
|
24
|
+
to: null,
|
|
25
|
+
per_page: null
|
|
26
|
+
};
|
|
27
|
+
this.pages = [];
|
|
28
|
+
this.registersPerPageOptions = [
|
|
29
|
+
5, 10, 15, 30, 50, 100
|
|
30
|
+
];
|
|
31
|
+
this.currentRegistersPerPage = 15;
|
|
32
|
+
this.ngtPaginationNextPreviousButtonStyle = new NgtStylizableService();
|
|
33
|
+
this.ngtPaginationNextPreviousSectionButtonStyle = new NgtStylizableService();
|
|
34
|
+
this.ngtPaginationFirstLastButtonStyle = new NgtStylizableService();
|
|
35
|
+
this.ngtPaginationActivePageButtonStyle = new NgtStylizableService();
|
|
36
|
+
this.ngtPaginationPageButtonStyle = new NgtStylizableService();
|
|
37
|
+
this.ngtPaginationNextPreviousButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {
|
|
38
|
+
h: 'h-6',
|
|
39
|
+
w: 'w-6',
|
|
40
|
+
color: {
|
|
41
|
+
text: 'text-white',
|
|
42
|
+
bg: 'bg-gray-700'
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
this.ngtPaginationNextPreviousSectionButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {
|
|
46
|
+
h: 'h-6',
|
|
47
|
+
w: 'w-6',
|
|
48
|
+
color: {
|
|
49
|
+
text: 'text-white',
|
|
50
|
+
bg: 'bg-gray-300'
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
this.ngtPaginationFirstLastButtonStyle.load(this.injector, 'NgtPaginationFirstLastButton', {
|
|
54
|
+
h: 'h-6',
|
|
55
|
+
w: 'w-6',
|
|
56
|
+
color: {
|
|
57
|
+
text: 'text-white',
|
|
58
|
+
bg: 'bg-gray-900'
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
this.ngtPaginationActivePageButtonStyle.load(this.injector, 'NgtPaginationActivePageButton', {
|
|
62
|
+
h: 'h-6',
|
|
63
|
+
w: 'w-6',
|
|
64
|
+
color: {
|
|
65
|
+
text: 'text-white',
|
|
66
|
+
bg: 'bg-gray-500'
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
this.ngtPaginationPageButtonStyle.load(this.injector, 'NgtPaginationPageButton', {
|
|
70
|
+
h: 'h-6',
|
|
71
|
+
w: 'w-6',
|
|
72
|
+
color: {
|
|
73
|
+
text: 'text-white',
|
|
74
|
+
bg: 'bg-gray-300'
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
onRegistersPerPageChange(value) {
|
|
79
|
+
if (value && this.pagination.per_page != value) {
|
|
80
|
+
this.pagination.per_page = value;
|
|
81
|
+
this.currentRegistersPerPage = value;
|
|
82
|
+
this.onPerPageChange.emit(value);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async goToPage(page) {
|
|
86
|
+
this.onPageChange.emit(page);
|
|
87
|
+
}
|
|
88
|
+
async goToPreviousPage() {
|
|
89
|
+
if ((this.pagination.page - 1) > 0) {
|
|
90
|
+
return this.goToPage(this.pagination.page - 1);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async goToNextPage() {
|
|
94
|
+
if ((this.pagination.page + 1) <= this.pagination.pages) {
|
|
95
|
+
return this.goToPage(this.pagination.page + 1);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async goToPreviousSection() {
|
|
99
|
+
return this.goToPage(this.sectionStartPage - 1);
|
|
100
|
+
}
|
|
101
|
+
async goToNextSection() {
|
|
102
|
+
return this.goToPage(this.sectionEndPage + 1);
|
|
103
|
+
}
|
|
104
|
+
async goToFirstPage() {
|
|
105
|
+
if (this.pagination.page != 1) {
|
|
106
|
+
return this.goToPage(1);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async goToLastPage() {
|
|
110
|
+
if (this.pagination.page != this.pagination.pages) {
|
|
111
|
+
return this.goToPage(this.pagination.pages);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
getCurrentPage() {
|
|
115
|
+
return this.pagination.page;
|
|
116
|
+
}
|
|
117
|
+
getPagination() {
|
|
118
|
+
return this.pagination;
|
|
119
|
+
}
|
|
120
|
+
proccessPagination(meta) {
|
|
121
|
+
this.pages = [];
|
|
122
|
+
this.pagination = meta.pagination;
|
|
123
|
+
this.sectionStartPage = Math.floor((this.pagination.page - 1) / this.pagesInterval) * this.pagesInterval + 1;
|
|
124
|
+
this.sectionEndPage = this.sectionStartPage + (this.pagesInterval - 1);
|
|
125
|
+
const totalPages = this.pagination.pages;
|
|
126
|
+
for (let i = this.sectionStartPage; i <= this.sectionEndPage && i <= totalPages; i++) {
|
|
127
|
+
this.pages.push(i);
|
|
128
|
+
}
|
|
129
|
+
this.bindDisplayedButtonSections(this.sectionStartPage, this.sectionEndPage, totalPages);
|
|
130
|
+
this.displayPagination = true;
|
|
131
|
+
}
|
|
132
|
+
resetPagination() {
|
|
133
|
+
this.pagination = {
|
|
134
|
+
count: null,
|
|
135
|
+
page: 1,
|
|
136
|
+
pages: null,
|
|
137
|
+
total: null,
|
|
138
|
+
from: null,
|
|
139
|
+
to: null,
|
|
140
|
+
per_page: null
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
bindDisplayedButtonSections(sectionStartPage, sectionEndPage, totalPages) {
|
|
144
|
+
this.displayPreviousSectionButton = sectionStartPage > 1;
|
|
145
|
+
this.displayNextSectionButton = sectionEndPage < totalPages;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
NgtPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, deps: [{ token: i0.Injector }, { token: i1.NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
149
|
+
NgtPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtPaginationComponent, selector: "ngt-pagination", inputs: { pagesInterval: "pagesInterval" }, outputs: { onPageChange: "onPageChange", onPerPageChange: "onPerPageChange" }, ngImport: i0, template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\r\n <ul class=\"flex justify-start\">\r\n <!-- FIRST -->\r\n <li (click)='goToFirstPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n aria-hidden=\"true\" focusable=\"false\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- PREVIOUS -->\r\n <li (click)='goToPreviousPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- PREVIOUS SECTION -->\r\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path\r\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <ng-container *ngFor='let page of pages'>\r\n <ng-container *ngIf='page == pagination.page'>\r\n <li class=\"mr-2\">\r\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\r\n {{ page }}\r\n </ngt-action>\r\n </li>\r\n </ng-container>\r\n\r\n <ng-container *ngIf='page !== pagination.page'>\r\n <li (click)='goToPage(page)' class=\"mr-2\">\r\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\r\n {{ page }}\r\n </ngt-action>\r\n </li>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <!-- NEXT SECTION -->\r\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path\r\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- NEXT -->\r\n <li (click)='goToNextPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- LAST -->\r\n <li (click)='goToLastPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n aria-hidden=\"true\" focusable=\"false\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n </ul>\r\n\r\n <!-- REGISTERS PER PAGE -->\r\n <div class=\"flex items-center w-auto absolute right-0\">\r\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\r\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\r\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\r\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\r\n {{ item ? item : '' }}\r\n </ng-template>\r\n </ngt-select>\r\n\r\n <P class=\"text-xs ml-2\">\r\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\r\n </P>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }, { kind: "component", type: i5.NgtActionComponent, selector: "ngt-action", inputs: ["href", "icon", "ngtStyle", "isDisabled", "forceEnable"] }, { kind: "component", type: i6.NgtSelectComponent, selector: "ngt-select", inputs: ["label", "labelIcon", "labelIconColor", "helpTitle", "helpText", "helpTextColor", "shining", "loading", "loadingText", "notFoundText", "dropdownPosition", "typeToSearchText", "clearAllTooltip", "placeholder", "createText", "labelForId", "dropdownPanelMinHeight", "helperReverseYPosition", "helperAutoXReverse", "name", "autoLoad", "allowCreate", "allowOriginalItemsUnselect", "isDisabled", "isReadonly", "remoteResource", "hideSelected", "bindLabel", "bindValue", "items", "inputAttrs", "closeOnSelect", "clearable", "groupBy", "maxSelectedItems", "multiple", "searchable", "clearSearchOnAdd", "virtualScroll", "tabIndex", "typeahead", "guessCompareWith", "autoSelectUniqueOption", "groupValue", "trackBy", "sortSelectedItemsFn", "isAllowedToRemoveFn", "isRequired", "compareWith"], outputs: ["onLoadRemoteResource", "onSelectedItemRemove", "onClear", "onClose"] }, { kind: "directive", type: i7.NgtSelectOptionTmp, selector: "[ngt-select-option]" }] });
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtPaginationComponent, decorators: [{
|
|
151
|
+
type: Component,
|
|
152
|
+
args: [{ selector: 'ngt-pagination', template: "<div class=\"{{ displayPagination ? 'flex' : 'hidden' }} items-center w-full h-full relative\">\r\n <ul class=\"flex justify-start\">\r\n <!-- FIRST -->\r\n <li (click)='goToFirstPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n aria-hidden=\"true\" focusable=\"false\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12l4.58-4.59m-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12l4.58-4.59z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- PREVIOUS -->\r\n <li (click)='goToPreviousPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path d=\"M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6l1.41-1.42z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- PREVIOUS SECTION -->\r\n <li *ngIf=\"displayPreviousSectionButton\" (click)='goToPreviousSection()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path\r\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <ng-container *ngFor='let page of pages'>\r\n <ng-container *ngIf='page == pagination.page'>\r\n <li class=\"mr-2\">\r\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationActivePageButtonStyle' [forceEnable]=\"true\">\r\n {{ page }}\r\n </ngt-action>\r\n </li>\r\n </ng-container>\r\n\r\n <ng-container *ngIf='page !== pagination.page'>\r\n <li (click)='goToPage(page)' class=\"mr-2\">\r\n <ngt-action class=\"text-xs\" [ngtStyle]='ngtPaginationPageButtonStyle' [forceEnable]=\"true\">\r\n {{ page }}\r\n </ngt-action>\r\n </li>\r\n </ng-container>\r\n\r\n </ng-container>\r\n\r\n <!-- NEXT SECTION -->\r\n <li *ngIf=\"displayNextSectionButton\" (click)='goToNextSection()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousSectionButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path\r\n d=\"M4 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- NEXT -->\r\n <li (click)='goToNextPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationNextPreviousButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path d=\"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6l-1.41-1.42z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n\r\n <!-- LAST -->\r\n <li (click)='goToLastPage()' class=\"mr-2\">\r\n <ngt-action [ngtStyle]='ngtPaginationFirstLastButtonStyle' [forceEnable]=\"true\">\r\n <svg class=\"fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n aria-hidden=\"true\" focusable=\"false\"\r\n style=\"-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);\"\r\n preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12L5.59 7.41m6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12l-4.58-4.59z\" />\r\n </svg>\r\n </ngt-action>\r\n </li>\r\n </ul>\r\n\r\n <!-- REGISTERS PER PAGE -->\r\n <div class=\"flex items-center w-auto absolute right-0\">\r\n <ngt-select class='block w-20 left-0' [searchable]='false' [clearable]='false' dropdownPosition='top'\r\n [items]='registersPerPageOptions' name='registersPerPageSelect' [(ngModel)]=\"currentRegistersPerPage\"\r\n h='h-auto' (ngModelChange)='onRegistersPerPageChange($event)' ngt-stylizable>\r\n <ng-template let-item=\"item\" let-index=\"index\" ngt-select-option>\r\n {{ item ? item : '' }}\r\n </ng-template>\r\n </ngt-select>\r\n\r\n <P class=\"text-xs ml-2\">\r\n {{ ngtTranslateService.ngtPagination(pagination.from, pagination.to, pagination.total) }}\r\n </P>\r\n </div>\r\n</div>\r\n" }]
|
|
153
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgtTranslateService, decorators: [{
|
|
154
|
+
type: Optional
|
|
155
|
+
}] }]; }, propDecorators: { pagesInterval: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], onPageChange: [{
|
|
158
|
+
type: Output
|
|
159
|
+
}], onPerPageChange: [{
|
|
160
|
+
type: Output
|
|
161
|
+
}] } });
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXBhZ2luYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXBhZ2luYXRpb24vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXBhZ2luYXRpb24vbmd0LXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7OztBQU01RixNQUFNLE9BQU8sc0JBQXNCO0lBcUMvQixZQUNZLFFBQWtCLEVBRW5CLG1CQUF3QztRQUZ2QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRW5CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFyQ2xDLGlCQUFZLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQsb0JBQWUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWFyRSxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFFbEMsZUFBVSxHQUFzQjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxJQUFJO1lBQ1YsRUFBRSxFQUFFLElBQUk7WUFDUixRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDO1FBRUssVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLDRCQUF1QixHQUFHO1lBQzdCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFB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Qyx3QkFBd0IsR0FBRyxjQUFjLEdBQUcsVUFBVSxDQUFDO0lBQ2hFLENBQUM7O21IQW5MUSxzQkFBc0I7dUdBQXRCLHNCQUFzQixpTENWbkMsd3hMQXlHQTsyRkQvRmEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNJLGdCQUFnQjs7MEJBMENyQixRQUFROzRDQXRDRyxhQUFhO3NCQUE1QixLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsZUFBZTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE5ndEh0dHBNZXRhLCBOZ3RIdHRwUGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvbmd0LWh0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IE5ndFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL25ndC10cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IE5ndFN0eWxpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmd0LXBhZ2luYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd0UGFnaW5hdGlvbkNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnZXNJbnRlcnZhbDogbnVtYmVyO1xyXG5cclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25QYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25QZXJQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICAvKiogU3R5bGVzICovXHJcbiAgICBwdWJsaWMgbmd0UGFnaW5hdGlvbkFjdGl2ZVBhZ2VCdXR0b25TdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2U7XHJcbiAgICBwdWJsaWMgbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c0J1dHRvblN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcclxuICAgIHB1YmxpYyBuZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzU2VjdGlvbkJ1dHRvblN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcclxuICAgIHB1YmxpYyBuZ3RQYWdpbmF0aW9uRmlyc3RMYXN0QnV0dG9uU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xyXG4gICAgcHVibGljIG5ndFBhZ2luYXRpb25QYWdlQnV0dG9uU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xyXG5cclxuICAgIHB1YmxpYyBzZWN0aW9uU3RhcnRQYWdlOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgc2VjdGlvbkVuZFBhZ2U6IG51bWJlcjtcclxuICAgIHB1YmxpYyBkaXNwbGF5TmV4dFNlY3Rpb25CdXR0b246IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgZGlzcGxheVByZXZpb3VzU2VjdGlvbkJ1dHRvbjogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBkaXNwbGF5UGFnaW5hdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHVibGljIHBhZ2luYXRpb246IE5ndEh0dHBQYWdpbmF0aW9uID0ge1xyXG4gICAgICAgIGNvdW50OiBudWxsLFxyXG4gICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgcGFnZXM6IG51bGwsXHJcbiAgICAgICAgdG90YWw6IG51bGwsXHJcbiAgICAgICAgZnJvbTogbnVsbCxcclxuICAgICAgICB0bzogbnVsbCxcclxuICAgICAgICBwZXJfcGFnZTogbnVsbFxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgcGFnZXMgPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJzUGVyUGFnZU9wdGlvbnMgPSBbXHJcbiAgICAgICAgNSwgMTAsIDE1LCAzMCwgNTAsIDEwMFxyXG4gICAgXTtcclxuXHJcbiAgICBwdWJsaWMgY3VycmVudFJlZ2lzdGVyc1BlclBhZ2U6IG51bWJlciA9IDE1O1xyXG5cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBAT3B0aW9uYWwoKVxyXG4gICAgICAgIHB1YmxpYyBuZ3RUcmFuc2xhdGVTZXJ2aWNlOiBOZ3RUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLm5ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xyXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xyXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uQWN0aXZlUGFnZUJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uUGFnZUJ1dHRvblN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XHJcblxyXG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c0J1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b24nLCB7XHJcbiAgICAgICAgICAgIGg6ICdoLTYnLFxyXG4gICAgICAgICAgICB3OiAndy02JyxcclxuICAgICAgICAgICAgY29sb3I6IHtcclxuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXdoaXRlJyxcclxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS03MDAnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uTmV4dFByZXZpb3VzU2VjdGlvbkJ1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b24nLCB7XHJcbiAgICAgICAgICAgIGg6ICdoLTYnLFxyXG4gICAgICAgICAgICB3OiAndy02JyxcclxuICAgICAgICAgICAgY29sb3I6IHtcclxuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXdoaXRlJyxcclxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS0zMDAnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uRmlyc3RMYXN0QnV0dG9uU3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvbicsIHtcclxuICAgICAgICAgICAgaDogJ2gtNicsXHJcbiAgICAgICAgICAgIHc6ICd3LTYnLFxyXG4gICAgICAgICAgICBjb2xvcjoge1xyXG4gICAgICAgICAgICAgICAgdGV4dDogJ3RleHQtd2hpdGUnLFxyXG4gICAgICAgICAgICAgICAgYmc6ICdiZy1ncmF5LTkwMCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm5ndFBhZ2luYXRpb25BY3RpdmVQYWdlQnV0dG9uU3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0UGFnaW5hdGlvbkFjdGl2ZVBhZ2VCdXR0b24nLCB7XHJcbiAgICAgICAgICAgIGg6ICdoLTYnLFxyXG4gICAgICAgICAgICB3OiAndy02JyxcclxuICAgICAgICAgICAgY29sb3I6IHtcclxuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXdoaXRlJyxcclxuICAgICAgICAgICAgICAgIGJnOiAnYmctZ3JheS01MDAnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uUGFnZUJ1dHRvblN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFBhZ2luYXRpb25QYWdlQnV0dG9uJywge1xyXG4gICAgICAgICAgICBoOiAnaC02JyxcclxuICAgICAgICAgICAgdzogJ3ctNicsXHJcbiAgICAgICAgICAgIGNvbG9yOiB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC13aGl0ZScsXHJcbiAgICAgICAgICAgICAgICBiZzogJ2JnLWdyYXktMzAwJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUmVnaXN0ZXJzUGVyUGFnZUNoYW5nZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMucGFnaW5hdGlvbi5wZXJfcGFnZSAhPSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb24ucGVyX3BhZ2UgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50UmVnaXN0ZXJzUGVyUGFnZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5vblBlclBhZ2VDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvUGFnZShwYWdlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvUHJldmlvdXNQYWdlKCkge1xyXG4gICAgICAgIGlmICgodGhpcy5wYWdpbmF0aW9uLnBhZ2UgLSAxKSA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ29Ub1BhZ2UodGhpcy5wYWdpbmF0aW9uLnBhZ2UgLSAxKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdvVG9OZXh0UGFnZSgpIHtcclxuICAgICAgICBpZiAoKHRoaXMucGFnaW5hdGlvbi5wYWdlICsgMSkgPD0gdGhpcy5wYWdpbmF0aW9uLnBhZ2VzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvVG9QYWdlKHRoaXMucGFnaW5hdGlvbi5wYWdlICsgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvUHJldmlvdXNTZWN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdvVG9QYWdlKHRoaXMuc2VjdGlvblN0YXJ0UGFnZSAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvTmV4dFNlY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ29Ub1BhZ2UodGhpcy5zZWN0aW9uRW5kUGFnZSArIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnb1RvRmlyc3RQYWdlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSAhPSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvVG9QYWdlKDEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ29Ub0xhc3RQYWdlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRpb24ucGFnZSAhPSB0aGlzLnBhZ2luYXRpb24ucGFnZXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ29Ub1BhZ2UodGhpcy5wYWdpbmF0aW9uLnBhZ2VzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEN1cnJlbnRQYWdlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24ucGFnZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0UGFnaW5hdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwcm9jY2Vzc1BhZ2luYXRpb24obWV0YTogTmd0SHR0cE1ldGEpIHtcclxuICAgICAgICB0aGlzLnBhZ2VzID0gW107XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0gbWV0YS5wYWdpbmF0aW9uO1xyXG5cclxuICAgICAgICB0aGlzLnNlY3Rpb25TdGFydFBhZ2UgPSBNYXRoLmZsb29yKCh0aGlzLnBhZ2luYXRpb24ucGFnZSAtIDEpIC8gdGhpcy5wYWdlc0ludGVydmFsKSAqIHRoaXMucGFnZXNJbnRlcnZhbCArIDE7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uRW5kUGFnZSA9IHRoaXMuc2VjdGlvblN0YXJ0UGFnZSArICh0aGlzLnBhZ2VzSW50ZXJ2YWwgLSAxKTtcclxuXHJcbiAgICAgICAgY29uc3QgdG90YWxQYWdlcyA9IHRoaXMucGFnaW5hdGlvbi5wYWdlcztcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc2VjdGlvblN0YXJ0UGFnZTsgaSA8PSB0aGlzLnNlY3Rpb25FbmRQYWdlICYmIGkgPD0gdG90YWxQYWdlczsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZXMucHVzaChpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYmluZERpc3BsYXllZEJ1dHRvblNlY3Rpb25zKHRoaXMuc2VjdGlvblN0YXJ0UGFnZSwgdGhpcy5zZWN0aW9uRW5kUGFnZSwgdG90YWxQYWdlcyk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5UGFnaW5hdGlvbiA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0UGFnaW5hdGlvbigpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSB7XHJcbiAgICAgICAgICAgIGNvdW50OiBudWxsLFxyXG4gICAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgICBwYWdlczogbnVsbCxcclxuICAgICAgICAgICAgdG90YWw6IG51bGwsXHJcbiAgICAgICAgICAgIGZyb206IG51bGwsXHJcbiAgICAgICAgICAgIHRvOiBudWxsLFxyXG4gICAgICAgICAgICBwZXJfcGFnZTogbnVsbFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBiaW5kRGlzcGxheWVkQnV0dG9uU2VjdGlvbnMoc2VjdGlvblN0YXJ0UGFnZTogbnVtYmVyLCBzZWN0aW9uRW5kUGFnZTogbnVtYmVyLCB0b3RhbFBhZ2VzOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c1NlY3Rpb25CdXR0b24gPSBzZWN0aW9uU3RhcnRQYWdlID4gMTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlOZXh0U2VjdGlvbkJ1dHRvbiA9IHNlY3Rpb25FbmRQYWdlIDwgdG90YWxQYWdlcztcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwie3sgZGlzcGxheVBhZ2luYXRpb24gPyAnZmxleCcgOiAnaGlkZGVuJyB9fSBpdGVtcy1jZW50ZXIgdy1mdWxsIGgtZnVsbCByZWxhdGl2ZVwiPlxyXG4gICAgPHVsIGNsYXNzPVwiZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XHJcbiAgICAgICAgPCEtLSBGSVJTVCAtLT5cclxuICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub0ZpcnN0UGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIi1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XCJcclxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4LjQxIDcuNDFMMTcgNmwtNiA2bDYgNmwxLjQxLTEuNDFMMTMuODMgMTJsNC41OC00LjU5bS02IDBMMTEgNmwtNiA2bDYgNmwxLjQxLTEuNDFMNy44MyAxMmw0LjU4LTQuNTl6XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgPCEtLSBQUkVWSU9VUyAtLT5cclxuICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub1ByZXZpb3VzUGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c0J1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiLW1zLXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcIlxyXG4gICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuNDEgMTYuNThMMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNmw2IDZsMS40MS0xLjQyelwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9uZ3QtYWN0aW9uPlxyXG4gICAgICAgIDwvbGk+XHJcblxyXG4gICAgICAgIDwhLS0gUFJFVklPVVMgU0VDVElPTiAtLT5cclxuICAgICAgICA8bGkgKm5nSWY9XCJkaXNwbGF5UHJldmlvdXNTZWN0aW9uQnV0dG9uXCIgKGNsaWNrKT0nZ29Ub1ByZXZpb3VzU2VjdGlvbigpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNCAxMmEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9J2xldCBwYWdlIG9mIHBhZ2VzJz5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj0ncGFnZSA9PSBwYWdpbmF0aW9uLnBhZ2UnPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibXItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZ3QtYWN0aW9uIGNsYXNzPVwidGV4dC14c1wiIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25BY3RpdmVQYWdlQnV0dG9uU3R5bGUnIFtmb3JjZUVuYWJsZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2UgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9J3BhZ2UgIT09IHBhZ2luYXRpb24ucGFnZSc+XHJcbiAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT0nZ29Ub1BhZ2UocGFnZSknIGNsYXNzPVwibXItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZ3QtYWN0aW9uIGNsYXNzPVwidGV4dC14c1wiIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25QYWdlQnV0dG9uU3R5bGUnIFtmb3JjZUVuYWJsZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2UgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gTkVYVCBTRUNUSU9OIC0tPlxyXG4gICAgICAgIDxsaSAqbmdJZj1cImRpc3BsYXlOZXh0U2VjdGlvbkJ1dHRvblwiIChjbGljayk9J2dvVG9OZXh0U2VjdGlvbigpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbk5leHRQcmV2aW91c1NlY3Rpb25CdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNCAxMmEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6bTYgMGEyIDIgMCAxIDEgMC00IDIgMiAwIDAgMSAwIDR6XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L25ndC1hY3Rpb24+XHJcbiAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgPCEtLSBORVhUIC0tPlxyXG4gICAgICAgIDxsaSAoY2xpY2spPSdnb1RvTmV4dFBhZ2UoKScgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICAgIDxuZ3QtYWN0aW9uIFtuZ3RTdHlsZV09J25ndFBhZ2luYXRpb25OZXh0UHJldmlvdXNCdXR0b25TdHlsZScgW2ZvcmNlRW5hYmxlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIi1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XCJcclxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNTkgMTYuNThMMTMuMTcgMTJMOC41OSA3LjQxTDEwIDZsNiA2bC02IDZsLTEuNDEtMS40MnpcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvbmd0LWFjdGlvbj5cclxuICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICA8IS0tIExBU1QgLS0+XHJcbiAgICAgICAgPGxpIChjbGljayk9J2dvVG9MYXN0UGFnZSgpJyBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgPG5ndC1hY3Rpb24gW25ndFN0eWxlXT0nbmd0UGFnaW5hdGlvbkZpcnN0TGFzdEJ1dHRvblN0eWxlJyBbZm9yY2VFbmFibGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIi1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XCJcclxuICAgICAgICAgICAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTUuNTkgNy40MUw3IDZsNiA2bC02IDZsLTEuNDEtMS40MUwxMC4xNyAxMkw1LjU5IDcuNDFtNiAwTDEzIDZsNiA2bC02IDZsLTEuNDEtMS40MUwxNi4xNyAxMmwtNC41OC00LjU5elwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9uZ3QtYWN0aW9uPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG5cclxuICAgIDwhLS0gUkVHSVNURVJTIFBFUiBQQUdFIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHctYXV0byBhYnNvbHV0ZSByaWdodC0wXCI+XHJcbiAgICAgICAgPG5ndC1zZWxlY3QgY2xhc3M9J2Jsb2NrIHctMjAgbGVmdC0wJyBbc2VhcmNoYWJsZV09J2ZhbHNlJyBbY2xlYXJhYmxlXT0nZmFsc2UnIGRyb3Bkb3duUG9zaXRpb249J3RvcCdcclxuICAgICAgICAgICAgW2l0ZW1zXT0ncmVnaXN0ZXJzUGVyUGFnZU9wdGlvbnMnIG5hbWU9J3JlZ2lzdGVyc1BlclBhZ2VTZWxlY3QnIFsobmdNb2RlbCldPVwiY3VycmVudFJlZ2lzdGVyc1BlclBhZ2VcIlxyXG4gICAgICAgICAgICBoPSdoLWF1dG8nIChuZ01vZGVsQ2hhbmdlKT0nb25SZWdpc3RlcnNQZXJQYWdlQ2hhbmdlKCRldmVudCknIG5ndC1zdHlsaXphYmxlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBuZ3Qtc2VsZWN0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIHt7IGl0ZW0gPyBpdGVtIDogJycgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25ndC1zZWxlY3Q+XHJcblxyXG4gICAgICAgIDxQIGNsYXNzPVwidGV4dC14cyBtbC0yXCI+XHJcbiAgICAgICAgICAgIHt7IG5ndFRyYW5zbGF0ZVNlcnZpY2Uubmd0UGFnaW5hdGlvbihwYWdpbmF0aW9uLmZyb20sIHBhZ2luYXRpb24udG8sIHBhZ2luYXRpb24udG90YWwpIH19XHJcbiAgICAgICAgPC9QPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|