@bnsights/bbsf-controls 1.0.194-beta.10 → 1.0.194-beta.19-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 +7 -0
- package/fesm2022/bnsights-bbsf-controls.mjs +224 -212
- package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
- package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +0 -1
- package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +0 -1
- package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +1 -1
- package/lib/modules/bbsf-editors.module.d.ts +6 -7
- package/package.json +33 -36
- package/src/lib/assets/Style.scss +4 -4
- package/src/lib/assets/ace-builds/ace.js +1 -1
- package/src/lib/assets/ace-builds/mode-markdown.js +1 -1
- package/esm2022/bnsights-bbsf-controls.mjs +0 -5
- package/esm2022/lib/Shared/Components/app-base-component.mjs +0 -226
- package/esm2022/lib/Shared/Components/ng-tag-input.mjs +0 -336
- package/esm2022/lib/Shared/Directives/appPreventDoubleClick.directive.mjs +0 -39
- package/esm2022/lib/Shared/Directives/template-name.directive.mjs +0 -19
- package/esm2022/lib/Shared/Enums/CalendarView.mjs +0 -8
- package/esm2022/lib/Shared/Enums/ControlLayout.mjs +0 -6
- package/esm2022/lib/Shared/Enums/Countries.mjs +0 -247
- package/esm2022/lib/Shared/Enums/Enums.mjs +0 -36
- package/esm2022/lib/Shared/Enums/FileType.mjs +0 -29
- package/esm2022/lib/Shared/Enums/FilterType.mjs +0 -11
- package/esm2022/lib/Shared/Enums/FontSize.mjs +0 -7
- package/esm2022/lib/Shared/Enums/ForceDirection.mjs +0 -6
- package/esm2022/lib/Shared/Enums/IconPosition.mjs +0 -6
- package/esm2022/lib/Shared/Enums/ImageType.mjs +0 -10
- package/esm2022/lib/Shared/Enums/InputType.mjs +0 -10
- package/esm2022/lib/Shared/Enums/Insert.mjs +0 -9
- package/esm2022/lib/Shared/Enums/LanguageMode.mjs +0 -11
- package/esm2022/lib/Shared/Enums/LanguageValidation.mjs +0 -6
- package/esm2022/lib/Shared/Enums/Markdown.mjs +0 -20
- package/esm2022/lib/Shared/Enums/Misc.mjs +0 -7
- package/esm2022/lib/Shared/Enums/PagingActionMode.mjs +0 -6
- package/esm2022/lib/Shared/Enums/Para.mjs +0 -9
- package/esm2022/lib/Shared/Enums/PickerType.mjs +0 -7
- package/esm2022/lib/Shared/Enums/SelectMode.mjs +0 -6
- package/esm2022/lib/Shared/Enums/StartView.mjs +0 -7
- package/esm2022/lib/Shared/Enums/Style.mjs +0 -8
- package/esm2022/lib/Shared/Enums/StyleConfirmationMode.mjs +0 -7
- package/esm2022/lib/Shared/Enums/TagInputView.mjs +0 -7
- package/esm2022/lib/Shared/Enums/ToolbarButtons.mjs +0 -33
- package/esm2022/lib/Shared/Enums/map-enums.mjs +0 -15
- package/esm2022/lib/Shared/Enums/menu-list-enum.mjs +0 -6
- package/esm2022/lib/Shared/Models/Attribute.mjs +0 -3
- package/esm2022/lib/Shared/Models/AutocompleteDTO.mjs +0 -8
- package/esm2022/lib/Shared/Models/AutocompleteOptions.mjs +0 -39
- package/esm2022/lib/Shared/Models/CalendarDTO.mjs +0 -3
- package/esm2022/lib/Shared/Models/CalendarEventDTO.mjs +0 -3
- package/esm2022/lib/Shared/Models/CalendarOptions.mjs +0 -19
- package/esm2022/lib/Shared/Models/CancelDTO.mjs +0 -7
- package/esm2022/lib/Shared/Models/CaptchaStyle.mjs +0 -3
- package/esm2022/lib/Shared/Models/CheckBoxOptions.mjs +0 -11
- package/esm2022/lib/Shared/Models/ConfirmationModalOptions.mjs +0 -39
- package/esm2022/lib/Shared/Models/ControlOptionsBase.mjs +0 -17
- package/esm2022/lib/Shared/Models/CustomValidation.mjs +0 -14
- package/esm2022/lib/Shared/Models/DatePickerOptions.mjs +0 -40
- package/esm2022/lib/Shared/Models/DropdownListItem.mjs +0 -3
- package/esm2022/lib/Shared/Models/DropdownOptions.mjs +0 -38
- package/esm2022/lib/Shared/Models/EditPersonalImage.mjs +0 -7
- package/esm2022/lib/Shared/Models/EnglishArabicDTO.mjs +0 -10
- package/esm2022/lib/Shared/Models/FileDTO.mjs +0 -24
- package/esm2022/lib/Shared/Models/FileOptions.mjs +0 -15
- package/esm2022/lib/Shared/Models/FileUploadModel.mjs +0 -3
- package/esm2022/lib/Shared/Models/FileUploadOptions.mjs +0 -13
- package/esm2022/lib/Shared/Models/FilterItem.mjs +0 -8
- package/esm2022/lib/Shared/Models/FormOptions.mjs +0 -32
- package/esm2022/lib/Shared/Models/HtmlEditorOptions.mjs +0 -12
- package/esm2022/lib/Shared/Models/ImageUploadOptions.mjs +0 -14
- package/esm2022/lib/Shared/Models/MapAutoCompleteOptions.mjs +0 -12
- package/esm2022/lib/Shared/Models/MapAutocompleteDTO.mjs +0 -6
- package/esm2022/lib/Shared/Models/MarkdownEditorOptions.mjs +0 -24
- package/esm2022/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs +0 -9
- package/esm2022/lib/Shared/Models/MultiLingualTextAreaOptions.mjs +0 -9
- package/esm2022/lib/Shared/Models/MultiLingualTextBoxOptions.mjs +0 -17
- package/esm2022/lib/Shared/Models/MultilingualControlOptionsBase.mjs +0 -21
- package/esm2022/lib/Shared/Models/MultipleFileUploadModel.mjs +0 -9
- package/esm2022/lib/Shared/Models/PagingDTO.mjs +0 -13
- package/esm2022/lib/Shared/Models/PagingOptions.mjs +0 -49
- package/esm2022/lib/Shared/Models/PagingPayload.mjs +0 -3
- package/esm2022/lib/Shared/Models/PhoneOptions.mjs +0 -16
- package/esm2022/lib/Shared/Models/ProfileImageUploadOptions.mjs +0 -11
- package/esm2022/lib/Shared/Models/ProfilePictureDTO.mjs +0 -3
- package/esm2022/lib/Shared/Models/RadioButtonItem.mjs +0 -3
- package/esm2022/lib/Shared/Models/RadioButtonOptions.mjs +0 -7
- package/esm2022/lib/Shared/Models/RangeNumber.mjs +0 -3
- package/esm2022/lib/Shared/Models/Recaptcha.mjs +0 -6
- package/esm2022/lib/Shared/Models/RecaptchaOptions.mjs +0 -22
- package/esm2022/lib/Shared/Models/RepeaterField.mjs +0 -3
- package/esm2022/lib/Shared/Models/RepeaterOptions.mjs +0 -14
- package/esm2022/lib/Shared/Models/SaveDTO.mjs +0 -7
- package/esm2022/lib/Shared/Models/TagsInputDTO.mjs +0 -3
- package/esm2022/lib/Shared/Models/TagsInputOptions.mjs +0 -56
- package/esm2022/lib/Shared/Models/TextAreaOptions.mjs +0 -19
- package/esm2022/lib/Shared/Models/TextBoxOptions.mjs +0 -27
- package/esm2022/lib/Shared/Models/ToggleSlideOptions.mjs +0 -9
- package/esm2022/lib/Shared/Models/UploadPersonalImage.mjs +0 -7
- package/esm2022/lib/Shared/Models/bread-crumb.mjs +0 -8
- package/esm2022/lib/Shared/Models/control-filter-Item.mjs +0 -6
- package/esm2022/lib/Shared/Models/filter-options.mjs +0 -9
- package/esm2022/lib/Shared/Models/index.mjs +0 -58
- package/esm2022/lib/Shared/Models/page-header-options.mjs +0 -78
- package/esm2022/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +0 -22
- package/esm2022/lib/Shared/Pipes/bbsf-date.pipe.mjs +0 -22
- package/esm2022/lib/Shared/config/environment.mjs +0 -12
- package/esm2022/lib/Shared/default_intl.mjs +0 -29
- package/esm2022/lib/Shared/services/ControlUtility.mjs +0 -162
- package/esm2022/lib/Shared/services/GlobalSettings.service.mjs +0 -30
- package/esm2022/lib/Shared/services/OnPagingFiltersChange.service.mjs +0 -24
- package/esm2022/lib/Shared/services/file-upload.service.mjs +0 -29
- package/esm2022/lib/Shared/services/index.mjs +0 -7
- package/esm2022/lib/Shared/services/render-component-service.service.mjs +0 -32
- package/esm2022/lib/Shared/services/validationErrorMassage.service.mjs +0 -125
- package/esm2022/lib/Shared/utils/date-formatter.mjs +0 -48
- package/esm2022/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +0 -299
- package/esm2022/lib/controls/Calendar/Calendar.component.mjs +0 -179
- package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +0 -121
- package/esm2022/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +0 -143
- package/esm2022/lib/controls/DateTimePicker/DateTimePicker.component.mjs +0 -240
- package/esm2022/lib/controls/DropdownList/DropdownList.component.mjs +0 -296
- package/esm2022/lib/controls/FileUpload/FileUpload.component.mjs +0 -741
- package/esm2022/lib/controls/Form/Form.component.mjs +0 -117
- package/esm2022/lib/controls/HtmlEditor/HtmlEditor.component.mjs +0 -185
- package/esm2022/lib/controls/ImageUpload/ImageUpload.component.mjs +0 -360
- package/esm2022/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +0 -502
- package/esm2022/lib/controls/MarkdownEditor/markdown-editor.component.mjs +0 -243
- package/esm2022/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +0 -456
- package/esm2022/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +0 -441
- package/esm2022/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +0 -500
- package/esm2022/lib/controls/Paging/JwPagination.component.mjs +0 -175
- package/esm2022/lib/controls/Paging/Paging.component.mjs +0 -626
- package/esm2022/lib/controls/Phone/Phone.component.mjs +0 -134
- package/esm2022/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +0 -390
- package/esm2022/lib/controls/RadioButton/RadioButton.component.mjs +0 -113
- package/esm2022/lib/controls/Recaptcha/Recaptcha.component.mjs +0 -134
- package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +0 -135
- package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +0 -1291
- package/esm2022/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +0 -22
- package/esm2022/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +0 -118
- package/esm2022/lib/controls/TagsInput/TagsInput.component.mjs +0 -308
- package/esm2022/lib/controls/TextArea/TextArea.component.mjs +0 -581
- package/esm2022/lib/controls/TextBox/TextBox.component.mjs +0 -357
- package/esm2022/lib/controls/Toggleslide/Toggleslide.component.mjs +0 -96
- package/esm2022/lib/controls/bbsf-controls.module.mjs +0 -92
- package/esm2022/lib/controls/page-header-component/page-header-component.component.mjs +0 -42
- package/esm2022/lib/modules/bbsf-core.module.mjs +0 -210
- package/esm2022/lib/modules/bbsf-datetime.module.mjs +0 -90
- package/esm2022/lib/modules/bbsf-dropdown.module.mjs +0 -57
- package/esm2022/lib/modules/bbsf-editors.module.mjs +0 -97
- package/esm2022/lib/modules/bbsf-forms-basic.module.mjs +0 -79
- package/esm2022/lib/modules/bbsf-multilingual.module.mjs +0 -60
- package/esm2022/lib/modules/bbsf-phone.module.mjs +0 -57
- package/esm2022/lib/modules/bbsf-specialized.module.mjs +0 -160
- package/esm2022/lib/modules/bbsf-uploads.module.mjs +0 -106
- package/esm2022/lib/modules/bbsf-utility.module.mjs +0 -103
- package/esm2022/public-api.mjs +0 -169
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class JwPaginationComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.changePage = new EventEmitter();
|
|
8
|
-
this.initialPage = 1;
|
|
9
|
-
this.pageSize = 10;
|
|
10
|
-
this.maxPages = 10;
|
|
11
|
-
this.ShowFirstAndLast = false;
|
|
12
|
-
this.pager = {};
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
// set page if items array isn't empty
|
|
16
|
-
if (this.items && this.items.length) {
|
|
17
|
-
this.setPage(this.initialPage);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
ngOnChanges(changes) {
|
|
21
|
-
// Handle items array changes
|
|
22
|
-
if (changes.items && !changes.items.firstChange) {
|
|
23
|
-
// reset page if items array has changed
|
|
24
|
-
if (changes.items.currentValue !== changes.items.previousValue) {
|
|
25
|
-
this.setPage(this.initialPage);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
// Handle initialPage changes (when navigating between pages)
|
|
29
|
-
if (changes.initialPage && !changes.initialPage.firstChange) {
|
|
30
|
-
if (changes.initialPage.currentValue !== changes.initialPage.previousValue) {
|
|
31
|
-
this.setPage(this.initialPage);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// Handle pageSize or maxPages changes
|
|
35
|
-
if ((changes.pageSize && !changes.pageSize.firstChange) ||
|
|
36
|
-
(changes.maxPages && !changes.maxPages.firstChange)) {
|
|
37
|
-
// Recalculate pagination with new settings
|
|
38
|
-
if (this.items && this.items.length) {
|
|
39
|
-
this.setPage(this.pager.currentPage || this.initialPage);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
setPage(page) {
|
|
44
|
-
// get new pager object for specified page
|
|
45
|
-
this.pager = this.paginate(this.items.length, page, this.pageSize, this.maxPages);
|
|
46
|
-
// get new page of items from items array
|
|
47
|
-
var pageOfItems = this.items.slice(this.pager.startIndex, this.pager.endIndex + 1);
|
|
48
|
-
// call change page function in parent component
|
|
49
|
-
this.changePage.emit(this.pager.currentPage);
|
|
50
|
-
}
|
|
51
|
-
paginate(totalItems, currentPage, pageSize, maxPages) {
|
|
52
|
-
if (currentPage === void 0) {
|
|
53
|
-
currentPage = 1;
|
|
54
|
-
}
|
|
55
|
-
if (pageSize === void 0) {
|
|
56
|
-
pageSize = 10;
|
|
57
|
-
}
|
|
58
|
-
if (maxPages === void 0) {
|
|
59
|
-
maxPages = 10;
|
|
60
|
-
}
|
|
61
|
-
// calculate total pages
|
|
62
|
-
var totalPages = Math.ceil(totalItems / pageSize);
|
|
63
|
-
// ensure current page isn't out of range
|
|
64
|
-
if (currentPage < 1) {
|
|
65
|
-
currentPage = 1;
|
|
66
|
-
}
|
|
67
|
-
else if (currentPage > totalPages) {
|
|
68
|
-
currentPage = totalPages;
|
|
69
|
-
}
|
|
70
|
-
var startPage, endPage;
|
|
71
|
-
if (totalPages <= maxPages) {
|
|
72
|
-
// total pages less than max so show all pages
|
|
73
|
-
startPage = 1;
|
|
74
|
-
endPage = totalPages;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
// total pages more than max so calculate start and end pages
|
|
78
|
-
var maxPagesBeforeCurrentPage = Math.floor(maxPages / 2);
|
|
79
|
-
var maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1;
|
|
80
|
-
if (currentPage <= maxPagesBeforeCurrentPage) {
|
|
81
|
-
// current page near the start
|
|
82
|
-
startPage = 1;
|
|
83
|
-
endPage = maxPages;
|
|
84
|
-
}
|
|
85
|
-
else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {
|
|
86
|
-
// current page near the end
|
|
87
|
-
startPage = totalPages - maxPages + 1;
|
|
88
|
-
endPage = totalPages;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
// current page somewhere in the middle
|
|
92
|
-
startPage = currentPage - maxPagesBeforeCurrentPage;
|
|
93
|
-
endPage = currentPage + maxPagesAfterCurrentPage;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// calculate start and end item indexes
|
|
97
|
-
var startIndex = (currentPage - 1) * pageSize;
|
|
98
|
-
var endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);
|
|
99
|
-
// create an array of pages to ng-repeat in the pager control
|
|
100
|
-
var pages = Array.from(Array((endPage + 1) - startPage).keys()).map(function (i) { return startPage + i; });
|
|
101
|
-
// return object with all pager properties required by the view
|
|
102
|
-
return {
|
|
103
|
-
totalItems: totalItems,
|
|
104
|
-
currentPage: currentPage,
|
|
105
|
-
pageSize: pageSize,
|
|
106
|
-
totalPages: totalPages,
|
|
107
|
-
startPage: startPage,
|
|
108
|
-
endPage: endPage,
|
|
109
|
-
startIndex: startIndex,
|
|
110
|
-
endIndex: endIndex,
|
|
111
|
-
pages: pages
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: JwPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
115
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: JwPaginationComponent, isStandalone: true, selector: "jw-pagination", inputs: { items: "items", initialPage: "initialPage", pageSize: "pageSize", maxPages: "maxPages", ShowFirstAndLast: "ShowFirstAndLast" }, outputs: { changePage: "changePage" }, usesOnChanges: true, ngImport: i0, template: `
|
|
116
|
-
<ul *ngIf="pager.pages && pager.pages.length" class="pagination">
|
|
117
|
-
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === 1}" class="page-item first-item">
|
|
118
|
-
<a (click)="setPage(1)" class="page-link">❮❮</a>
|
|
119
|
-
</li>
|
|
120
|
-
<li [ngClass]="{disabled:pager.currentPage === 1}" class="page-item previous-item">
|
|
121
|
-
<a (click)="setPage(pager.currentPage - 1)" class="page-link">❮</a>
|
|
122
|
-
</li>
|
|
123
|
-
<li *ngFor="let page of pager.pages" [ngClass]="{active:pager.currentPage === page}" class="page-item number-item">
|
|
124
|
-
<a (click)="setPage(page)" class="page-link">{{page}}</a>
|
|
125
|
-
</li>
|
|
126
|
-
<li [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item next-item">
|
|
127
|
-
<a (click)="setPage(pager.currentPage + 1)" class="page-link">❯</a>
|
|
128
|
-
</li>
|
|
129
|
-
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item last-item">
|
|
130
|
-
<a (click)="setPage(pager.totalPages)" class="page-link">❯❯</a>
|
|
131
|
-
</li>
|
|
132
|
-
</ul>
|
|
133
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
134
|
-
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: JwPaginationComponent, decorators: [{
|
|
136
|
-
type: Component,
|
|
137
|
-
args: [{
|
|
138
|
-
selector: 'jw-pagination',
|
|
139
|
-
standalone: true,
|
|
140
|
-
imports: [CommonModule],
|
|
141
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
|
|
142
|
-
template: `
|
|
143
|
-
<ul *ngIf="pager.pages && pager.pages.length" class="pagination">
|
|
144
|
-
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === 1}" class="page-item first-item">
|
|
145
|
-
<a (click)="setPage(1)" class="page-link">❮❮</a>
|
|
146
|
-
</li>
|
|
147
|
-
<li [ngClass]="{disabled:pager.currentPage === 1}" class="page-item previous-item">
|
|
148
|
-
<a (click)="setPage(pager.currentPage - 1)" class="page-link">❮</a>
|
|
149
|
-
</li>
|
|
150
|
-
<li *ngFor="let page of pager.pages" [ngClass]="{active:pager.currentPage === page}" class="page-item number-item">
|
|
151
|
-
<a (click)="setPage(page)" class="page-link">{{page}}</a>
|
|
152
|
-
</li>
|
|
153
|
-
<li [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item next-item">
|
|
154
|
-
<a (click)="setPage(pager.currentPage + 1)" class="page-link">❯</a>
|
|
155
|
-
</li>
|
|
156
|
-
<li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === pager.totalPages}" class="page-item last-item">
|
|
157
|
-
<a (click)="setPage(pager.totalPages)" class="page-link">❯❯</a>
|
|
158
|
-
</li>
|
|
159
|
-
</ul>
|
|
160
|
-
`
|
|
161
|
-
}]
|
|
162
|
-
}], propDecorators: { items: [{
|
|
163
|
-
type: Input
|
|
164
|
-
}], changePage: [{
|
|
165
|
-
type: Output
|
|
166
|
-
}], initialPage: [{
|
|
167
|
-
type: Input
|
|
168
|
-
}], pageSize: [{
|
|
169
|
-
type: Input
|
|
170
|
-
}], maxPages: [{
|
|
171
|
-
type: Input
|
|
172
|
-
}], ShowFirstAndLast: [{
|
|
173
|
-
type: Input
|
|
174
|
-
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSndQYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9QYWdpbmcvSndQYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQTRCL0MsTUFBTSxPQUFPLHFCQUFxQjtJQTFCbEM7UUE0QmMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFHbEMsVUFBSyxHQUFRLEVBQUUsQ0FBQztLQXdHbkI7SUF0R0csUUFBUTtRQUNKLHNDQUFzQztRQUN0QyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDbEM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLDZCQUE2QjtRQUM3QixJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUM3Qyx3Q0FBd0M7WUFDeEMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJ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bUdBQXJCLHFCQUFxQiwrUUFyQnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQmIsMkRBcEJhLFlBQVk7OzRGQXVCYixxQkFBcUI7a0JBMUJqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDbkQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQmI7aUJBQ0E7OEJBR1ksS0FBSztzQkFBYixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnanctcGFnaW5hdGlvbicsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gIDx1bCAqbmdJZj1cInBhZ2VyLnBhZ2VzICYmIHBhZ2VyLnBhZ2VzLmxlbmd0aFwiIGNsYXNzPVwicGFnaW5hdGlvblwiPlxyXG4gIDxsaSAqbmdJZj1cIlNob3dGaXJzdEFuZExhc3RcIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2UgPT09IDF9XCIgY2xhc3M9XCJwYWdlLWl0ZW0gZmlyc3QtaXRlbVwiPlxyXG4gICAgICA8YSAoY2xpY2spPVwic2V0UGFnZSgxKVwiIGNsYXNzPVwicGFnZS1saW5rXCI+4p2u4p2uPC9hPlxyXG4gIDwvbGk+XHJcbiAgPGxpIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDpwYWdlci5jdXJyZW50UGFnZSA9PT0gMX1cIiBjbGFzcz1cInBhZ2UtaXRlbSBwcmV2aW91cy1pdGVtXCI+XHJcbiAgICAgIDxhIChjbGljayk9XCJzZXRQYWdlKHBhZ2VyLmN1cnJlbnRQYWdlIC0gMSlcIiBjbGFzcz1cInBhZ2UtbGlua1wiPuKdrjwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlci5wYWdlc1wiIFtuZ0NsYXNzXT1cInthY3RpdmU6cGFnZXIuY3VycmVudFBhZ2UgPT09IHBhZ2V9XCIgY2xhc3M9XCJwYWdlLWl0ZW0gbnVtYmVyLWl0ZW1cIj5cclxuICAgICAgPGEgKGNsaWNrKT1cInNldFBhZ2UocGFnZSlcIiBjbGFzcz1cInBhZ2UtbGlua1wiPnt7cGFnZX19PC9hPlxyXG4gIDwvbGk+XHJcbiAgPGxpIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDpwYWdlci5jdXJyZW50UGFnZSA9PT0gcGFnZXIudG90YWxQYWdlc31cIiBjbGFzcz1cInBhZ2UtaXRlbSBuZXh0LWl0ZW1cIj5cclxuICAgICAgPGEgKGNsaWNrKT1cInNldFBhZ2UocGFnZXIuY3VycmVudFBhZ2UgKyAxKVwiIGNsYXNzPVwicGFnZS1saW5rXCI+4p2vPC9hPlxyXG4gIDwvbGk+XHJcbiAgPGxpICAqbmdJZj1cIlNob3dGaXJzdEFuZExhc3RcIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2UgPT09IHBhZ2VyLnRvdGFsUGFnZXN9XCIgY2xhc3M9XCJwYWdlLWl0ZW0gbGFzdC1pdGVtXCI+XHJcbiAgICAgIDxhIChjbGljayk9XCJzZXRQYWdlKHBhZ2VyLnRvdGFsUGFnZXMpXCIgY2xhc3M9XCJwYWdlLWxpbmtcIj7ina/ina88L2E+XHJcbiAgPC9saT5cclxuPC91bD5cclxuYFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEp3UGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGl0ZW1zOiBBcnJheTxhbnk+O1xyXG4gICAgQE91dHB1dCgpIGNoYW5nZVBhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBASW5wdXQoKSBpbml0aWFsUGFnZSA9IDE7XHJcbiAgICBASW5wdXQoKSBwYWdlU2l6ZSA9IDEwO1xyXG4gICAgQElucHV0KCkgbWF4UGFnZXMgPSAxMDtcclxuICAgIEBJbnB1dCgpIFNob3dGaXJzdEFuZExhc3QgPSBmYWxzZTtcclxuXHJcblxyXG4gICAgcGFnZXI6IGFueSA9IHt9O1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIC8vIHNldCBwYWdlIGlmIGl0ZW1zIGFycmF5IGlzbid0IGVtcHR5XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRQYWdlKHRoaXMuaW5pdGlhbFBhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgLy8gSGFuZGxlIGl0ZW1zIGFycmF5IGNoYW5nZXNcclxuICAgICAgICBpZiAoY2hhbmdlcy5pdGVtcyAmJiAhY2hhbmdlcy5pdGVtcy5maXJzdENoYW5nZSkge1xyXG4gICAgICAgICAgICAvLyByZXNldCBwYWdlIGlmIGl0ZW1zIGFycmF5IGhhcyBjaGFuZ2VkXHJcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLml0ZW1zLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5pdGVtcy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2UodGhpcy5pbml0aWFsUGFnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEhhbmRsZSBpbml0aWFsUGFnZSBjaGFuZ2VzICh3aGVuIG5hdmlnYXRpbmcgYmV0d2VlbiBwYWdlcylcclxuICAgICAgICBpZiAoY2hhbmdlcy5pbml0aWFsUGFnZSAmJiAhY2hhbmdlcy5pbml0aWFsUGFnZS5maXJzdENoYW5nZSkge1xyXG4gICAgICAgICAgICBpZiAoY2hhbmdlcy5pbml0aWFsUGFnZS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuaW5pdGlhbFBhZ2UucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYWdlKHRoaXMuaW5pdGlhbFBhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBIYW5kbGUgcGFnZVNpemUgb3IgbWF4UGFnZXMgY2hhbmdlc1xyXG4gICAgICAgIGlmICgoY2hhbmdlcy5wYWdlU2l6ZSAmJiAhY2hhbmdlcy5wYWdlU2l6ZS5maXJzdENoYW5nZSkgfHxcclxuICAgICAgICAgICAgKGNoYW5nZXMubWF4UGFnZXMgJiYgIWNoYW5nZXMubWF4UGFnZXMuZmlyc3RDaGFuZ2UpKSB7XHJcbiAgICAgICAgICAgIC8vIFJlY2FsY3VsYXRlIHBhZ2luYXRpb24gd2l0aCBuZXcgc2V0dGluZ3NcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFnZSh0aGlzLnBhZ2VyLmN1cnJlbnRQYWdlIHx8IHRoaXMuaW5pdGlhbFBhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhZ2UocGFnZTogbnVtYmVyKSB7XHJcbiAgICAgICAgLy8gZ2V0IG5ldyBwYWdlciBvYmplY3QgZm9yIHNwZWNpZmllZCBwYWdlXHJcbiAgICAgICAgdGhpcy5wYWdlciA9IHRoaXMucGFnaW5hdGUodGhpcy5pdGVtcy5sZW5ndGgsIHBhZ2UsIHRoaXMucGFnZVNpemUsIHRoaXMubWF4UGFnZXMpO1xyXG5cclxuICAgICAgICAvLyBnZXQgbmV3IHBhZ2Ugb2YgaXRlbXMgZnJvbSBpdGVtcyBhcnJheVxyXG4gICAgICAgIHZhciBwYWdlT2ZJdGVtcyA9IHRoaXMuaXRlbXMuc2xpY2UodGhpcy5wYWdlci5zdGFydEluZGV4LCB0aGlzLnBhZ2VyLmVuZEluZGV4ICsgMSk7XHJcblxyXG4gICAgICAgIC8vIGNhbGwgY2hhbmdlIHBhZ2UgZnVuY3Rpb24gaW4gcGFyZW50IGNvbXBvbmVudFxyXG4gICAgICAgIHRoaXMuY2hhbmdlUGFnZS5lbWl0KHRoaXMucGFnZXIuY3VycmVudFBhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHBhZ2luYXRlKHRvdGFsSXRlbXMsIGN1cnJlbnRQYWdlLCBwYWdlU2l6ZSwgbWF4UGFnZXMpIHtcclxuICAgICAgICBpZiAoY3VycmVudFBhZ2UgPT09IHZvaWQgMCkgeyBjdXJyZW50UGFnZSA9IDE7IH1cclxuICAgICAgICBpZiAocGFnZVNpemUgPT09IHZvaWQgMCkgeyBwYWdlU2l6ZSA9IDEwOyB9XHJcbiAgICAgICAgaWYgKG1heFBhZ2VzID09PSB2b2lkIDApIHsgbWF4UGFnZXMgPSAxMDsgfVxyXG4gICAgICAgIC8vIGNhbGN1bGF0ZSB0b3RhbCBwYWdlc1xyXG4gICAgICAgIHZhciB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRvdGFsSXRlbXMgLyBwYWdlU2l6ZSk7XHJcbiAgICAgICAgLy8gZW5zdXJlIGN1cnJlbnQgcGFnZSBpc24ndCBvdXQgb2YgcmFuZ2VcclxuICAgICAgICBpZiAoY3VycmVudFBhZ2UgPCAxKSB7XHJcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY3VycmVudFBhZ2UgPiB0b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlID0gdG90YWxQYWdlcztcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHN0YXJ0UGFnZSwgZW5kUGFnZTtcclxuICAgICAgICBpZiAodG90YWxQYWdlcyA8PSBtYXhQYWdlcykge1xyXG4gICAgICAgICAgICAvLyB0b3RhbCBwYWdlcyBsZXNzIHRoYW4gbWF4IHNvIHNob3cgYWxsIHBhZ2VzXHJcbiAgICAgICAgICAgIHN0YXJ0UGFnZSA9IDE7XHJcbiAgICAgICAgICAgIGVuZFBhZ2UgPSB0b3RhbFBhZ2VzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLy8gdG90YWwgcGFnZXMgbW9yZSB0aGFuIG1heCBzbyBjYWxjdWxhdGUgc3RhcnQgYW5kIGVuZCBwYWdlc1xyXG4gICAgICAgICAgICB2YXIgbWF4UGFnZXNCZWZvcmVDdXJyZW50UGFnZSA9IE1hdGguZmxvb3IobWF4UGFnZXMgLyAyKTtcclxuICAgICAgICAgICAgdmFyIG1heFBhZ2VzQWZ0ZXJDdXJyZW50UGFnZSA9IE1hdGguY2VpbChtYXhQYWdlcyAvIDIpIC0gMTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRQYWdlIDw9IG1heFBhZ2VzQmVmb3JlQ3VycmVudFBhZ2UpIHtcclxuICAgICAgICAgICAgICAgIC8vIGN1cnJlbnQgcGFnZSBuZWFyIHRoZSBzdGFydFxyXG4gICAgICAgICAgICAgICAgc3RhcnRQYWdlID0gMTtcclxuICAgICAgICAgICAgICAgIGVuZFBhZ2UgPSBtYXhQYWdlcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50UGFnZSArIG1heFBhZ2VzQWZ0ZXJDdXJyZW50UGFnZSA+PSB0b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50IHBhZ2UgbmVhciB0aGUgZW5kXHJcbiAgICAgICAgICAgICAgICBzdGFydFBhZ2UgPSB0b3RhbFBhZ2VzIC0gbWF4UGFnZXMgKyAxO1xyXG4gICAgICAgICAgICAgICAgZW5kUGFnZSA9IHRvdGFsUGFnZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50IHBhZ2Ugc29tZXdoZXJlIGluIHRoZSBtaWRkbGVcclxuICAgICAgICAgICAgICAgIHN0YXJ0UGFnZSA9IGN1cnJlbnRQYWdlIC0gbWF4UGFnZXNCZWZvcmVDdXJyZW50UGFnZTtcclxuICAgICAgICAgICAgICAgIGVuZFBhZ2UgPSBjdXJyZW50UGFnZSArIG1heFBhZ2VzQWZ0ZXJDdXJyZW50UGFnZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjYWxjdWxhdGUgc3RhcnQgYW5kIGVuZCBpdGVtIGluZGV4ZXNcclxuICAgICAgICB2YXIgc3RhcnRJbmRleCA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemU7XHJcbiAgICAgICAgdmFyIGVuZEluZGV4ID0gTWF0aC5taW4oc3RhcnRJbmRleCArIHBhZ2VTaXplIC0gMSwgdG90YWxJdGVtcyAtIDEpO1xyXG4gICAgICAgIC8vIGNyZWF0ZSBhbiBhcnJheSBvZiBwYWdlcyB0byBuZy1yZXBlYXQgaW4gdGhlIHBhZ2VyIGNvbnRyb2xcclxuICAgICAgICB2YXIgcGFnZXMgPSBBcnJheS5mcm9tKEFycmF5KChlbmRQYWdlICsgMSkgLSBzdGFydFBhZ2UpLmtleXMoKSkubWFwKGZ1bmN0aW9uIChpKSB7IHJldHVybiBzdGFydFBhZ2UgKyBpOyB9KTtcclxuICAgICAgICAvLyByZXR1cm4gb2JqZWN0IHdpdGggYWxsIHBhZ2VyIHByb3BlcnRpZXMgcmVxdWlyZWQgYnkgdGhlIHZpZXdcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zOiB0b3RhbEl0ZW1zLFxyXG4gICAgICAgICAgICBjdXJyZW50UGFnZTogY3VycmVudFBhZ2UsXHJcbiAgICAgICAgICAgIHBhZ2VTaXplOiBwYWdlU2l6ZSxcclxuICAgICAgICAgICAgdG90YWxQYWdlczogdG90YWxQYWdlcyxcclxuICAgICAgICAgICAgc3RhcnRQYWdlOiBzdGFydFBhZ2UsXHJcbiAgICAgICAgICAgIGVuZFBhZ2U6IGVuZFBhZ2UsXHJcbiAgICAgICAgICAgIHN0YXJ0SW5kZXg6IHN0YXJ0SW5kZXgsXHJcbiAgICAgICAgICAgIGVuZEluZGV4OiBlbmRJbmRleCxcclxuICAgICAgICAgICAgcGFnZXM6IHBhZ2VzXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbn0iXX0=
|