@danske/sapphire-angular 1.31.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/badge/src/badge.component.mjs +4 -4
- package/esm2020/lib/button/src/button-group.component.mjs +6 -14
- package/esm2020/lib/button/src/button.component.mjs +9 -38
- package/esm2020/lib/button/src/icon-button.component.mjs +13 -40
- package/esm2020/lib/button/src/toggle-button.component.mjs +7 -6
- package/esm2020/lib/checkbox/src/checkbox-group.component.mjs +6 -3
- package/esm2020/lib/checkbox/src/checkbox.component.mjs +12 -4
- package/esm2020/lib/common/disabled.mjs +1 -1
- package/esm2020/lib/common/sapphire-view-encapsulation.mjs +3 -1
- package/esm2020/lib/core.module.mjs +8 -8
- package/esm2020/lib/field/src/field-control.mjs +2 -1
- package/esm2020/lib/field/src/field.component.mjs +8 -8
- package/esm2020/lib/help-button/public_api.mjs +3 -0
- package/esm2020/lib/help-button/src/help-button.component.mjs +112 -0
- package/esm2020/lib/help-button/src/help-button.module.mjs +33 -0
- package/esm2020/lib/icon/src/icon-size-provider.mjs +2 -2
- package/esm2020/lib/icon/src/icon.component.mjs +22 -37
- package/esm2020/lib/label/src/label.component.mjs +5 -5
- package/esm2020/lib/link/src/link.component.mjs +5 -5
- package/esm2020/lib/listbox/src/listbox-item.component.mjs +2 -2
- package/esm2020/lib/listbox/src/listbox.component.mjs +5 -5
- package/esm2020/lib/listbox/src/option-primary-text.directive.mjs +4 -2
- package/esm2020/lib/listbox/src/option.component.mjs +4 -2
- package/esm2020/lib/menu/src/menu-trigger.directive.mjs +5 -2
- package/esm2020/lib/menu/src/menu.component.mjs +4 -4
- package/esm2020/lib/modal/public_api.mjs +8 -12
- package/esm2020/lib/modal/src/dialog/confirmation-dialog.component.mjs +9 -7
- package/esm2020/lib/modal/src/dialog/danger-dialog.component.mjs +9 -7
- package/esm2020/lib/modal/src/dialog/dialog.component.mjs +10 -35
- package/esm2020/lib/modal/src/layout/modal-back-button.directive.mjs +13 -0
- package/esm2020/lib/modal/src/layout/modal-body.component.mjs +38 -0
- package/esm2020/lib/modal/src/layout/modal-close-button.directive.mjs +31 -0
- package/esm2020/lib/modal/src/layout/modal-footer.component.mjs +39 -0
- package/esm2020/lib/modal/src/layout/modal-header.component.mjs +77 -0
- package/esm2020/lib/modal/src/layout/modal-layout.component.mjs +15 -0
- package/esm2020/lib/modal/src/modal-base.component.mjs +7 -13
- package/esm2020/lib/modal/src/modal.module.mjs +43 -71
- package/esm2020/lib/modal/src/modal.service.mjs +1 -1
- package/esm2020/lib/modal/src/panel/panel.component.mjs +8 -15
- package/esm2020/lib/notification-badge/src/notification-badge.component.mjs +4 -4
- package/esm2020/lib/pagination/i18n/da-DK.json +2 -0
- package/esm2020/lib/pagination/i18n/de-DE.json +2 -0
- package/esm2020/lib/pagination/i18n/en-US.json +2 -0
- package/esm2020/lib/pagination/i18n/fi-FI.json +2 -0
- package/esm2020/lib/pagination/i18n/nb-NO.json +2 -0
- package/esm2020/lib/pagination/i18n/pl-PL.json +2 -0
- package/esm2020/lib/pagination/i18n/sv-SE.json +2 -0
- package/esm2020/lib/pagination/src/page-selection-row.component.mjs +119 -0
- package/esm2020/lib/pagination/src/pagination.component.mjs +20 -4
- package/esm2020/lib/pagination/src/pagination.module.mjs +4 -3
- package/esm2020/lib/popover/src/popover-trigger.directive.mjs +14 -4
- package/esm2020/lib/radio/src/radio-group.component.mjs +3 -3
- package/esm2020/lib/radio/src/radio.component.mjs +3 -3
- package/esm2020/lib/segmented-tabs/src/segmented-tabs.component.mjs +4 -4
- package/esm2020/lib/select/src/basic-select/basic-select.component.mjs +7 -27
- package/esm2020/lib/select/src/select/select.component.mjs +5 -5
- package/esm2020/lib/skeleton/src/skeleton.component.mjs +2 -2
- package/esm2020/lib/switch/src/switch.component.mjs +5 -5
- package/esm2020/lib/table/public_api.mjs +2 -1
- package/esm2020/lib/table/src/table-footer.directive.mjs +20 -0
- package/esm2020/lib/table/src/table-head-cell.component.mjs +3 -3
- package/esm2020/lib/table/src/table-sort-header.directive.mjs +2 -3
- package/esm2020/lib/table/src/table-sort.directive.mjs +13 -3
- package/esm2020/lib/table/src/table.component.mjs +7 -14
- package/esm2020/lib/table/src/table.directive.mjs +12 -6
- package/esm2020/lib/table/src/table.module.mjs +6 -1
- package/esm2020/lib/text-field/src/text-field.component.mjs +5 -5
- package/esm2020/lib/theme/src/themes.mjs +4 -4
- package/esm2020/lib/tooltip/src/tooltip.directive.mjs +3 -3
- package/esm2020/lib/typography/src/paragraph.component.mjs +5 -5
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/danske-sapphire-angular.mjs +721 -847
- package/fesm2015/danske-sapphire-angular.mjs.map +1 -1
- package/fesm2020/danske-sapphire-angular.mjs +728 -852
- package/fesm2020/danske-sapphire-angular.mjs.map +1 -1
- package/lib/badge/src/badge.component.d.ts +2 -2
- package/lib/button/src/button-group.component.d.ts +3 -5
- package/lib/button/src/button.component.d.ts +4 -11
- package/lib/button/src/icon-button.component.d.ts +4 -11
- package/lib/button/src/toggle-button.component.d.ts +3 -3
- package/lib/checkbox/src/checkbox-group.component.d.ts +1 -0
- package/lib/checkbox/src/checkbox.component.d.ts +3 -1
- package/lib/common/disabled.d.ts +1 -1
- package/lib/core.module.d.ts +2 -2
- package/lib/field/src/field.component.d.ts +4 -4
- package/lib/help-button/public_api.d.ts +2 -0
- package/lib/help-button/src/help-button.component.d.ts +50 -0
- package/lib/help-button/src/help-button.module.d.ts +7 -0
- package/lib/icon/src/icon-size-provider.d.ts +2 -2
- package/lib/icon/src/icon.component.d.ts +6 -3
- package/lib/label/src/label.component.d.ts +3 -3
- package/lib/link/src/link.component.d.ts +1 -1
- package/lib/listbox/src/listbox-item.component.d.ts +1 -1
- package/lib/listbox/src/listbox.component.d.ts +1 -1
- package/lib/menu/src/menu.component.d.ts +1 -1
- package/lib/modal/public_api.d.ts +7 -11
- package/lib/modal/src/dialog/dialog.component.d.ts +2 -17
- package/lib/modal/src/layout/modal-back-button.directive.d.ts +5 -0
- package/lib/modal/src/{panel/panel-content.component.d.ts → layout/modal-body.component.d.ts} +3 -3
- package/lib/modal/src/{modal-close-button.directive.d.ts → layout/modal-close-button.directive.d.ts} +2 -2
- package/lib/modal/src/layout/modal-footer.component.d.ts +21 -0
- package/lib/modal/src/layout/modal-header.component.d.ts +29 -0
- package/lib/modal/src/layout/modal-layout.component.d.ts +6 -0
- package/lib/modal/src/modal-base.component.d.ts +5 -7
- package/lib/modal/src/modal.module.d.ts +21 -25
- package/lib/modal/src/modal.service.d.ts +2 -2
- package/lib/modal/src/panel/panel.component.d.ts +3 -6
- package/lib/notification-badge/src/notification-badge.component.d.ts +1 -1
- package/lib/pagination/src/page-selection-row.component.d.ts +39 -0
- package/lib/pagination/src/pagination.component.d.ts +8 -1
- package/lib/pagination/src/pagination.module.d.ts +8 -7
- package/lib/popover/src/popover-trigger.directive.d.ts +6 -1
- package/lib/segmented-tabs/src/segmented-tabs.component.d.ts +1 -1
- package/lib/select/src/basic-select/basic-select.component.d.ts +5 -7
- package/lib/switch/src/switch.component.d.ts +2 -2
- package/lib/table/public_api.d.ts +1 -0
- package/lib/table/src/table-footer.directive.d.ts +7 -0
- package/lib/table/src/table-sort.directive.d.ts +7 -4
- package/lib/table/src/table.component.d.ts +4 -3
- package/lib/table/src/table.directive.d.ts +3 -1
- package/lib/table/src/table.module.d.ts +12 -11
- package/lib/typography/src/paragraph.component.d.ts +1 -1
- package/package.json +4 -4
- package/public-api.d.ts +1 -1
- package/esm2020/lib/contextual-help/public_api.mjs +0 -6
- package/esm2020/lib/contextual-help/src/contextual-help.component.mjs +0 -112
- package/esm2020/lib/contextual-help/src/contextual-help.module.mjs +0 -33
- package/esm2020/lib/modal/src/dialog/dialog-close-button.directive.mjs +0 -18
- package/esm2020/lib/modal/src/dialog/dialog-content.directive.mjs +0 -29
- package/esm2020/lib/modal/src/dialog/dialog-footer.component.mjs +0 -77
- package/esm2020/lib/modal/src/dialog/dialog-header.component.mjs +0 -66
- package/esm2020/lib/modal/src/modal-close-button.directive.mjs +0 -31
- package/esm2020/lib/modal/src/panel/inline-panel.component.mjs +0 -15
- package/esm2020/lib/modal/src/panel/panel-back-button.directive.mjs +0 -13
- package/esm2020/lib/modal/src/panel/panel-close-button.directive.mjs +0 -16
- package/esm2020/lib/modal/src/panel/panel-content.component.mjs +0 -38
- package/esm2020/lib/modal/src/panel/panel-footer.component.mjs +0 -38
- package/esm2020/lib/modal/src/panel/panel-header.component.mjs +0 -69
- package/lib/contextual-help/public_api.d.ts +0 -2
- package/lib/contextual-help/src/contextual-help.component.d.ts +0 -50
- package/lib/contextual-help/src/contextual-help.module.d.ts +0 -7
- package/lib/modal/src/dialog/dialog-close-button.directive.d.ts +0 -7
- package/lib/modal/src/dialog/dialog-content.directive.d.ts +0 -13
- package/lib/modal/src/dialog/dialog-footer.component.d.ts +0 -37
- package/lib/modal/src/dialog/dialog-header.component.d.ts +0 -25
- package/lib/modal/src/panel/inline-panel.component.d.ts +0 -6
- package/lib/modal/src/panel/panel-back-button.directive.d.ts +0 -5
- package/lib/modal/src/panel/panel-close-button.directive.d.ts +0 -6
- package/lib/modal/src/panel/panel-footer.component.d.ts +0 -21
- package/lib/modal/src/panel/panel-header.component.d.ts +0 -26
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import translations from '../i18n';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../common/translate.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "../../button/src/icon-button.component";
|
|
7
|
+
import * as i4 from "../../button/src/button-group.component";
|
|
8
|
+
export class PageSelectionRowComponent {
|
|
9
|
+
constructor(t) {
|
|
10
|
+
this.currentPage = 0;
|
|
11
|
+
this.totalPageCount = 0;
|
|
12
|
+
this.siblingCount = 1;
|
|
13
|
+
this.boundaryCount = 1;
|
|
14
|
+
this.pageChange = new EventEmitter();
|
|
15
|
+
this.slots = [];
|
|
16
|
+
// Common code with React
|
|
17
|
+
this.pageSlots = (params) => this.intersperse(this.visiblePages(params).map((pageGroup) => pageGroup.map((page) => ({ type: 'page', page }))), [{ type: 'ellipsis' }]).flatMap((pageSlot) => pageSlot);
|
|
18
|
+
this.visiblePages = (params) => {
|
|
19
|
+
const { currentPage, totalPageCount, siblingCount, boundaryCount } = this.normalizePageValues(params);
|
|
20
|
+
/**
|
|
21
|
+
* NOTE for maintainers.
|
|
22
|
+
*
|
|
23
|
+
* Below could be written as "boundaryCount * 2 + siblingCount * 2 + 3)"
|
|
24
|
+
* but I wanted to better show what each number represents.
|
|
25
|
+
*
|
|
26
|
+
* Example where boundary is 1 and sibling is 1:
|
|
27
|
+
*
|
|
28
|
+
* 1 ... 5 6 7 ... 10
|
|
29
|
+
* boundary ellipsis sibling selectedPage sibling ellipsis boundary
|
|
30
|
+
*/
|
|
31
|
+
const maxPageSlots = boundaryCount +
|
|
32
|
+
1 /* ellipsis */ +
|
|
33
|
+
(siblingCount + 1 + siblingCount) /* visible middle range */ +
|
|
34
|
+
1 /* ellipsis */ +
|
|
35
|
+
boundaryCount;
|
|
36
|
+
const pages = this.arrayOfNumbers({ from: 0, count: totalPageCount });
|
|
37
|
+
if (pages.length <= maxPageSlots) {
|
|
38
|
+
return [pages]; // eg: [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const halfSlotsCount = Math.ceil(maxPageSlots / 2);
|
|
42
|
+
const currentPageIndex = pages.findIndex((page) => page === currentPage);
|
|
43
|
+
if (pages.slice(0, halfSlotsCount).includes(currentPage)) {
|
|
44
|
+
return [
|
|
45
|
+
pages.slice(0, halfSlotsCount + siblingCount),
|
|
46
|
+
boundaryCount === 0 ? [] : pages.slice(-boundaryCount),
|
|
47
|
+
].slice(0, maxPageSlots); // eg: [[1, 2, 3, 4, 5], [10]]
|
|
48
|
+
}
|
|
49
|
+
else if (pages.slice(-halfSlotsCount).includes(currentPage)) {
|
|
50
|
+
return [
|
|
51
|
+
pages.slice(0, boundaryCount),
|
|
52
|
+
pages.slice(-halfSlotsCount - siblingCount),
|
|
53
|
+
].slice(0, maxPageSlots); // eg: [[1], [6, 7, 8, 9, 10]]
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return [
|
|
57
|
+
pages.slice(0, boundaryCount),
|
|
58
|
+
pages.slice(currentPageIndex - siblingCount, currentPageIndex + siblingCount + 1),
|
|
59
|
+
boundaryCount === 0 ? [] : pages.slice(-boundaryCount),
|
|
60
|
+
].slice(0, maxPageSlots); // eg: [[1], [4, 5, 6], [10]]
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
this.normalizePageValues = ({ currentPage, totalPageCount, siblingCount = 1, boundaryCount = 1, }) => ({
|
|
65
|
+
totalPageCount: Math.max(totalPageCount, 1),
|
|
66
|
+
currentPage: Math.min(Math.max(currentPage, 0), totalPageCount - 1),
|
|
67
|
+
boundaryCount: Math.max(boundaryCount, 0),
|
|
68
|
+
siblingCount: Math.max(siblingCount, 0),
|
|
69
|
+
});
|
|
70
|
+
this.arrayOfNumbers = ({ from, count, }) => Array.from(new Array(count)).map((_, index) => from + index);
|
|
71
|
+
this.intersperse = (array, separator) => array.reduce((a, v) => [...a, v, separator], []).slice(0, -1);
|
|
72
|
+
this.t = t;
|
|
73
|
+
}
|
|
74
|
+
onPageSelect(page) {
|
|
75
|
+
this.pageChange.emit(page);
|
|
76
|
+
}
|
|
77
|
+
ngOnChanges(changes) {
|
|
78
|
+
if (changes.currentPage ||
|
|
79
|
+
changes.totalPageCount ||
|
|
80
|
+
changes.siblingCount ||
|
|
81
|
+
changes.boundaryCount) {
|
|
82
|
+
this.slots = this.pageSlots({
|
|
83
|
+
currentPage: this.currentPage,
|
|
84
|
+
totalPageCount: this.totalPageCount,
|
|
85
|
+
siblingCount: this.siblingCount,
|
|
86
|
+
boundaryCount: this.boundaryCount,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
getAriaLabel(slot) {
|
|
91
|
+
if (slot.type === 'ellipsis') {
|
|
92
|
+
return 'ellipsis';
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return this.t
|
|
96
|
+
.stringFormatter(translations)
|
|
97
|
+
.format(slot.page === this.currentPage ? 'page-number' : 'go-to-page', {
|
|
98
|
+
value: (slot.page + 1).toString(),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
PageSelectionRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PageSelectionRowComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
+
PageSelectionRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: PageSelectionRowComponent, selector: "sp-page-selection-row", inputs: { currentPage: "currentPage", totalPageCount: "totalPageCount", siblingCount: "siblingCount", boundaryCount: "boundaryCount" }, outputs: { pageChange: "pageChange" }, usesOnChanges: true, ngImport: i0, template: "<sp-button-group orientation=\"horizontal\" spacing=\"xs\">\n <ng-container *ngFor=\"let slot of slots\">\n <div *ngIf=\"slot.type === 'ellipsis'\" class=\"sapphire-pagination__ellipsis\">\n ...\n </div>\n <button\n *ngIf=\"slot.type === 'page'\"\n sp-icon-button\n [variant]=\"slot.page === currentPage ? 'secondary' : 'tertiary-ghost'\"\n size=\"sm\"\n (click)=\"onPageSelect(slot.page)\"\n [attr.aria-label]=\"getAriaLabel(slot)\"\n [ngStyle]=\"{ 'z-index': slot.page !== currentPage ? 1 : null }\"\n >\n {{ slot.page + 1 }}\n </button>\n </ng-container>\n</sp-button-group>\n", styles: [".sapphire-pagination{display:flex;justify-content:flex-end;align-items:center;padding:var(--sapphire-semantic-size-spacing-20) var(--sapphire-semantic-size-spacing-50);background-color:var(--sapphire-semantic-color-background-surface);font-family:var(--sapphire-semantic-font-name-default);font-size:var(--sapphire-semantic-size-font-control-sm);height:var(--sapphire-semantic-size-height-control-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-pagination__controls{display:flex;align-items:center;justify-content:flex-end;flex-grow:1;color:var(--sapphire-semantic-color-content-default-primary);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-pagination__text{font-weight:var(--sapphire-semantic-font-weight-default-regular);padding-left:var(--sapphire-semantic-size-spacing-20);padding-right:var(--sapphire-semantic-size-spacing-20)}.sapphire-pagination__text--emphasized{font-weight:var(--sapphire-semantic-font-weight-default-semibold)}.sapphire-pagination__ellipsis{display:flex;justify-content:center;align-items:center;height:var(--sapphire-semantic-size-height-control-sm);width:var(--sapphire-semantic-size-height-control-sm);font-size:var(--sapphire-semantic-size-font-control-sm);font-weight:var(--sapphire-semantic-font-weight-default-semibold)}sp-basic-select{margin-left:calc(-1 * var(--sapphire-global-size-generic-50))}\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: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.IconButtonComponent, selector: "button[sp-icon-button], a[sp-icon-button]", inputs: ["variant", "size", "disabled", "type"] }, { kind: "component", type: i4.ButtonGroupComponent, selector: "sp-button-group", inputs: ["align", "stretch", "spacing", "orientation"] }] });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PageSelectionRowComponent, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{ selector: 'sp-page-selection-row', template: "<sp-button-group orientation=\"horizontal\" spacing=\"xs\">\n <ng-container *ngFor=\"let slot of slots\">\n <div *ngIf=\"slot.type === 'ellipsis'\" class=\"sapphire-pagination__ellipsis\">\n ...\n </div>\n <button\n *ngIf=\"slot.type === 'page'\"\n sp-icon-button\n [variant]=\"slot.page === currentPage ? 'secondary' : 'tertiary-ghost'\"\n size=\"sm\"\n (click)=\"onPageSelect(slot.page)\"\n [attr.aria-label]=\"getAriaLabel(slot)\"\n [ngStyle]=\"{ 'z-index': slot.page !== currentPage ? 1 : null }\"\n >\n {{ slot.page + 1 }}\n </button>\n </ng-container>\n</sp-button-group>\n", styles: [".sapphire-pagination{display:flex;justify-content:flex-end;align-items:center;padding:var(--sapphire-semantic-size-spacing-20) var(--sapphire-semantic-size-spacing-50);background-color:var(--sapphire-semantic-color-background-surface);font-family:var(--sapphire-semantic-font-name-default);font-size:var(--sapphire-semantic-size-font-control-sm);height:var(--sapphire-semantic-size-height-control-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-pagination__controls{display:flex;align-items:center;justify-content:flex-end;flex-grow:1;color:var(--sapphire-semantic-color-content-default-primary);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-pagination__text{font-weight:var(--sapphire-semantic-font-weight-default-regular);padding-left:var(--sapphire-semantic-size-spacing-20);padding-right:var(--sapphire-semantic-size-spacing-20)}.sapphire-pagination__text--emphasized{font-weight:var(--sapphire-semantic-font-weight-default-semibold)}.sapphire-pagination__ellipsis{display:flex;justify-content:center;align-items:center;height:var(--sapphire-semantic-size-height-control-sm);width:var(--sapphire-semantic-size-height-control-sm);font-size:var(--sapphire-semantic-size-font-control-sm);font-weight:var(--sapphire-semantic-font-weight-default-semibold)}sp-basic-select{margin-left:calc(-1 * var(--sapphire-global-size-generic-50))}\n"] }]
|
|
108
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { currentPage: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], totalPageCount: [{
|
|
111
|
+
type: Input
|
|
112
|
+
}], siblingCount: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], boundaryCount: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], pageChange: [{
|
|
117
|
+
type: Output
|
|
118
|
+
}] } });
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1zZWxlY3Rpb24tcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcGFnaW5hdGlvbi9zcmMvcGFnZS1zZWxlY3Rpb24tcm93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcGFnaW5hdGlvbi9zcmMvcGFnZS1zZWxlY3Rpb24tcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxZQUFZLE1BQU0sU0FBUyxDQUFDOzs7Ozs7QUFpQm5DLE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsWUFBWSxDQUFtQjtRQUl0QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUN6QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVsRCxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBa0N2Qix5QkFBeUI7UUFDekIsY0FBUyxHQUFHLENBQUMsTUFBNEIsRUFBbUIsRUFBRSxDQUM1RCxJQUFJLENBQUMsV0FBVyxDQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDMUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUNsRCxFQUNELENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FDdkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBDLGlCQUFZLEdBQUcsQ0FBQyxNQUE0QixFQUF3QixFQUFFO1lBQ3BFLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsR0FDaEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRW5DOzs7Ozs7Ozs7O2VBVUc7WUFDSCxNQUFNLFlBQVksR0FDaEIsYUFBYTtnQkFDYixDQUFDLENBQUMsY0FBYztnQkFDaEIsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLDBCQUEwQjtnQkFDNUQsQ0FBQyxDQUFDLGNBQWM7Z0JBQ2hCLGFBQWEsQ0FBQztZQUVoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUV0RSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksWUFBWSxFQUFFO2dCQUNoQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyx3Q0FBd0M7YUFDekQ7aUJBQU07Z0JBQ0wsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO2dCQUV6RSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDeEQsT0FBTzt3QkFDTCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxjQUFjLEdBQUcsWUFBWSxDQUFDO3dCQUM3QyxhQUFhLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUM7cUJBQ3ZELENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtpQkFDekQ7cUJBQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUM3RCxPQUFPO3dCQUNMLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQzt3QkFDN0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUM7cUJBQzVDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtpQkFDekQ7cUJBQU07b0JBQ0wsT0FBTzt3QkFDTCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUM7d0JBQzdCLEtBQUssQ0FBQyxLQUFLLENBQ1QsZ0JBQWdCLEdBQUcsWUFBWSxFQUMvQixnQkFBZ0IsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUNwQzt3QkFDRCxhQUFhLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUM7cUJBQ3ZELENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLDZCQUE2QjtpQkFDeEQ7YUFDRjtRQUNILENBQUMsQ0FBQztRQUVGLHdCQUFtQixHQUFHLENBQUMsRUFDckIsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEdBQUcsQ0FBQyxFQUNoQixhQUFhLEdBQUcsQ0FBQyxHQUNJLEVBQWtDLEVBQUUsQ0FBQyxDQUFDO1lBQzNELGNBQWMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDM0MsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxHQUFHLENBQUMsQ0FBQztZQUNuRSxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLFlBQVksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsbUJBQWMsR0FBRyxDQUFDLEVBQ2hCLElBQUksRUFDSixLQUFLLEdBSU4sRUFBaUIsRUFBRSxDQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBRS9ELGdCQUFXLEdBQUcsQ0FBSSxLQUFVLEVBQUUsU0FBWSxFQUFPLEVBQUUsQ0FDakQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxDQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQS9IdEUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixDQUFDO0lBVUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUNFLE9BQU8sQ0FBQyxXQUFXO1lBQ25CLE9BQU8sQ0FBQyxjQUFjO1lBQ3RCLE9BQU8sQ0FBQyxZQUFZO1lBQ3BCLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCO1lBQ0EsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUMxQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDbkMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDbEMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWM7UUFDekIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtZQUM1QixPQUFPLFVBQVUsQ0FBQztTQUNuQjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsQ0FBQztpQkFDVixlQUFlLENBQUMsWUFBWSxDQUFDO2lCQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRTtnQkFDckUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7YUFDbEMsQ0FBVyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQzs7c0hBN0NVLHlCQUF5QjswR0FBekIseUJBQXlCLGlRQ3pCdEMsbW9CQWtCQTsyRkRPYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCO3VHQVd4QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0cmFuc2xhdGlvbnMgZnJvbSAnLi4vaTE4bic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3RyYW5zbGF0ZS5zZXJ2aWNlJztcblxudHlwZSBQYWdlU2xvdCA9IHsgdHlwZTogJ2VsbGlwc2lzJyB9IHwgeyB0eXBlOiAncGFnZSc7IHBhZ2U6IG51bWJlciB9O1xuXG5pbnRlcmZhY2UgUGFnZVNlbGVjdGlvbk9wdGlvbnMge1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xuICB0b3RhbFBhZ2VDb3VudDogbnVtYmVyO1xuICBzaWJsaW5nQ291bnQ/OiBudW1iZXI7XG4gIGJvdW5kYXJ5Q291bnQ/OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLXBhZ2Utc2VsZWN0aW9uLXJvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLXNlbGVjdGlvbi1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VTZWxlY3Rpb25Sb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICB0OiBUcmFuc2xhdGVTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKHQ6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICB0aGlzLnQgPSB0O1xuICB9XG5cbiAgQElucHV0KCkgY3VycmVudFBhZ2U6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHRvdGFsUGFnZUNvdW50OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBzaWJsaW5nQ291bnQ6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIGJvdW5kYXJ5Q291bnQ6IG51bWJlciA9IDE7XG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgc2xvdHM6IFBhZ2VTbG90W10gPSBbXTtcblxuICBvblBhZ2VTZWxlY3QocGFnZTogbnVtYmVyKSB7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQocGFnZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5jdXJyZW50UGFnZSB8fFxuICAgICAgY2hhbmdlcy50b3RhbFBhZ2VDb3VudCB8fFxuICAgICAgY2hhbmdlcy5zaWJsaW5nQ291bnQgfHxcbiAgICAgIGNoYW5nZXMuYm91bmRhcnlDb3VudFxuICAgICkge1xuICAgICAgdGhpcy5zbG90cyA9IHRoaXMucGFnZVNsb3RzKHtcbiAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgIHRvdGFsUGFnZUNvdW50OiB0aGlzLnRvdGFsUGFnZUNvdW50LFxuICAgICAgICBzaWJsaW5nQ291bnQ6IHRoaXMuc2libGluZ0NvdW50LFxuICAgICAgICBib3VuZGFyeUNvdW50OiB0aGlzLmJvdW5kYXJ5Q291bnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRBcmlhTGFiZWwoc2xvdDogUGFnZVNsb3QpOiBzdHJpbmcge1xuICAgIGlmIChzbG90LnR5cGUgPT09ICdlbGxpcHNpcycpIHtcbiAgICAgIHJldHVybiAnZWxsaXBzaXMnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy50XG4gICAgICAgIC5zdHJpbmdGb3JtYXR0ZXIodHJhbnNsYXRpb25zKVxuICAgICAgICAuZm9ybWF0KHNsb3QucGFnZSA9PT0gdGhpcy5jdXJyZW50UGFnZSA/ICdwYWdlLW51bWJlcicgOiAnZ28tdG8tcGFnZScsIHtcbiAgICAgICAgICB2YWx1ZTogKHNsb3QucGFnZSArIDEpLnRvU3RyaW5nKCksXG4gICAgICAgIH0pIGFzIHN0cmluZztcbiAgICB9XG4gIH1cblxuICAvLyBDb21tb24gY29kZSB3aXRoIFJlYWN0XG4gIHBhZ2VTbG90cyA9IChwYXJhbXM6IFBhZ2VTZWxlY3Rpb25PcHRpb25zKTogQXJyYXk8UGFnZVNsb3Q+ID0+XG4gICAgdGhpcy5pbnRlcnNwZXJzZTxBcnJheTxQYWdlU2xvdD4+KFxuICAgICAgdGhpcy52aXNpYmxlUGFnZXMocGFyYW1zKS5tYXAoKHBhZ2VHcm91cCkgPT5cbiAgICAgICAgcGFnZUdyb3VwLm1hcCgocGFnZSkgPT4gKHsgdHlwZTogJ3BhZ2UnLCBwYWdlIH0pKVxuICAgICAgKSxcbiAgICAgIFt7IHR5cGU6ICdlbGxpcHNpcycgfV1cbiAgICApLmZsYXRNYXAoKHBhZ2VTbG90KSA9PiBwYWdlU2xvdCk7XG5cbiAgdmlzaWJsZVBhZ2VzID0gKHBhcmFtczogUGFnZVNlbGVjdGlvbk9wdGlvbnMpOiBBcnJheTxBcnJheTxudW1iZXI+PiA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50UGFnZSwgdG90YWxQYWdlQ291bnQsIHNpYmxpbmdDb3VudCwgYm91bmRhcnlDb3VudCB9ID1cbiAgICAgIHRoaXMubm9ybWFsaXplUGFnZVZhbHVlcyhwYXJhbXMpO1xuXG4gICAgLyoqXG4gICAgICogTk9URSBmb3IgbWFpbnRhaW5lcnMuXG4gICAgICpcbiAgICAgKiBCZWxvdyBjb3VsZCBiZSB3cml0dGVuIGFzIFwiYm91bmRhcnlDb3VudCAqIDIgICsgc2libGluZ0NvdW50ICogMiArIDMpXCJcbiAgICAgKiBidXQgSSB3YW50ZWQgdG8gYmV0dGVyIHNob3cgd2hhdCBlYWNoIG51bWJlciByZXByZXNlbnRzLlxuICAgICAqXG4gICAgICogRXhhbXBsZSB3aGVyZSBib3VuZGFyeSBpcyAxIGFuZCBzaWJsaW5nIGlzIDE6XG4gICAgICpcbiAgICAgKiAgICAxICAgICAgIC4uLiAgICAgICA1ICAgICAgICAgNiAgICAgICAgICA3ICAgICAgLi4uICAgICAgMTBcbiAgICAgKiBib3VuZGFyeSBlbGxpcHNpcyBzaWJsaW5nIHNlbGVjdGVkUGFnZSBzaWJsaW5nIGVsbGlwc2lzIGJvdW5kYXJ5XG4gICAgICovXG4gICAgY29uc3QgbWF4UGFnZVNsb3RzID1cbiAgICAgIGJvdW5kYXJ5Q291bnQgK1xuICAgICAgMSAvKiBlbGxpcHNpcyAqLyArXG4gICAgICAoc2libGluZ0NvdW50ICsgMSArIHNpYmxpbmdDb3VudCkgLyogdmlzaWJsZSBtaWRkbGUgcmFuZ2UgKi8gK1xuICAgICAgMSAvKiBlbGxpcHNpcyAqLyArXG4gICAgICBib3VuZGFyeUNvdW50O1xuXG4gICAgY29uc3QgcGFnZXMgPSB0aGlzLmFycmF5T2ZOdW1iZXJzKHsgZnJvbTogMCwgY291bnQ6IHRvdGFsUGFnZUNvdW50IH0pO1xuXG4gICAgaWYgKHBhZ2VzLmxlbmd0aCA8PSBtYXhQYWdlU2xvdHMpIHtcbiAgICAgIHJldHVybiBbcGFnZXNdOyAvLyBlZzogW1sxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF1dXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGhhbGZTbG90c0NvdW50ID0gTWF0aC5jZWlsKG1heFBhZ2VTbG90cyAvIDIpO1xuICAgICAgY29uc3QgY3VycmVudFBhZ2VJbmRleCA9IHBhZ2VzLmZpbmRJbmRleCgocGFnZSkgPT4gcGFnZSA9PT0gY3VycmVudFBhZ2UpO1xuXG4gICAgICBpZiAocGFnZXMuc2xpY2UoMCwgaGFsZlNsb3RzQ291bnQpLmluY2x1ZGVzKGN1cnJlbnRQYWdlKSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHBhZ2VzLnNsaWNlKDAsIGhhbGZTbG90c0NvdW50ICsgc2libGluZ0NvdW50KSxcbiAgICAgICAgICBib3VuZGFyeUNvdW50ID09PSAwID8gW10gOiBwYWdlcy5zbGljZSgtYm91bmRhcnlDb3VudCksXG4gICAgICAgIF0uc2xpY2UoMCwgbWF4UGFnZVNsb3RzKTsgLy8gZWc6IFtbMSwgMiwgMywgNCwgNV0sIFsxMF1dXG4gICAgICB9IGVsc2UgaWYgKHBhZ2VzLnNsaWNlKC1oYWxmU2xvdHNDb3VudCkuaW5jbHVkZXMoY3VycmVudFBhZ2UpKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgcGFnZXMuc2xpY2UoMCwgYm91bmRhcnlDb3VudCksXG4gICAgICAgICAgcGFnZXMuc2xpY2UoLWhhbGZTbG90c0NvdW50IC0gc2libGluZ0NvdW50KSxcbiAgICAgICAgXS5zbGljZSgwLCBtYXhQYWdlU2xvdHMpOyAvLyBlZzogW1sxXSwgWzYsIDcsIDgsIDksIDEwXV1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgcGFnZXMuc2xpY2UoMCwgYm91bmRhcnlDb3VudCksXG4gICAgICAgICAgcGFnZXMuc2xpY2UoXG4gICAgICAgICAgICBjdXJyZW50UGFnZUluZGV4IC0gc2libGluZ0NvdW50LFxuICAgICAgICAgICAgY3VycmVudFBhZ2VJbmRleCArIHNpYmxpbmdDb3VudCArIDFcbiAgICAgICAgICApLFxuICAgICAgICAgIGJvdW5kYXJ5Q291bnQgPT09IDAgPyBbXSA6IHBhZ2VzLnNsaWNlKC1ib3VuZGFyeUNvdW50KSxcbiAgICAgICAgXS5zbGljZSgwLCBtYXhQYWdlU2xvdHMpOyAvLyBlZzogW1sxXSwgWzQsIDUsIDZdLCBbMTBdXVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBub3JtYWxpemVQYWdlVmFsdWVzID0gKHtcbiAgICBjdXJyZW50UGFnZSxcbiAgICB0b3RhbFBhZ2VDb3VudCxcbiAgICBzaWJsaW5nQ291bnQgPSAxLFxuICAgIGJvdW5kYXJ5Q291bnQgPSAxLFxuICB9OiBQYWdlU2VsZWN0aW9uT3B0aW9ucyk6IFJlcXVpcmVkPFBhZ2VTZWxlY3Rpb25PcHRpb25zPiA9PiAoe1xuICAgIHRvdGFsUGFnZUNvdW50OiBNYXRoLm1heCh0b3RhbFBhZ2VDb3VudCwgMSksXG4gICAgY3VycmVudFBhZ2U6IE1hdGgubWluKE1hdGgubWF4KGN1cnJlbnRQYWdlLCAwKSwgdG90YWxQYWdlQ291bnQgLSAxKSxcbiAgICBib3VuZGFyeUNvdW50OiBNYXRoLm1heChib3VuZGFyeUNvdW50LCAwKSxcbiAgICBzaWJsaW5nQ291bnQ6IE1hdGgubWF4KHNpYmxpbmdDb3VudCwgMCksXG4gIH0pO1xuXG4gIGFycmF5T2ZOdW1iZXJzID0gKHtcbiAgICBmcm9tLFxuICAgIGNvdW50LFxuICB9OiB7XG4gICAgZnJvbTogbnVtYmVyO1xuICAgIGNvdW50OiBudW1iZXI7XG4gIH0pOiBBcnJheTxudW1iZXI+ID0+XG4gICAgQXJyYXkuZnJvbShuZXcgQXJyYXkoY291bnQpKS5tYXAoKF8sIGluZGV4KSA9PiBmcm9tICsgaW5kZXgpO1xuXG4gIGludGVyc3BlcnNlID0gPFQ+KGFycmF5OiBUW10sIHNlcGFyYXRvcjogVCk6IFRbXSA9PlxuICAgIGFycmF5LnJlZHVjZSgoYTogVFtdLCB2OiBUKSA9PiBbLi4uYSwgdiwgc2VwYXJhdG9yXSwgW10pLnNsaWNlKDAsIC0xKTtcbn1cbiIsIjxzcC1idXR0b24tZ3JvdXAgb3JpZW50YXRpb249XCJob3Jpem9udGFsXCIgc3BhY2luZz1cInhzXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNsb3Qgb2Ygc2xvdHNcIj5cbiAgICA8ZGl2ICpuZ0lmPVwic2xvdC50eXBlID09PSAnZWxsaXBzaXMnXCIgY2xhc3M9XCJzYXBwaGlyZS1wYWdpbmF0aW9uX19lbGxpcHNpc1wiPlxuICAgICAgLi4uXG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJzbG90LnR5cGUgPT09ICdwYWdlJ1wiXG4gICAgICBzcC1pY29uLWJ1dHRvblxuICAgICAgW3ZhcmlhbnRdPVwic2xvdC5wYWdlID09PSBjdXJyZW50UGFnZSA/ICdzZWNvbmRhcnknIDogJ3RlcnRpYXJ5LWdob3N0J1wiXG4gICAgICBzaXplPVwic21cIlxuICAgICAgKGNsaWNrKT1cIm9uUGFnZVNlbGVjdChzbG90LnBhZ2UpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0QXJpYUxhYmVsKHNsb3QpXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgJ3otaW5kZXgnOiBzbG90LnBhZ2UgIT09IGN1cnJlbnRQYWdlID8gMSA6IG51bGwgfVwiXG4gICAgPlxuICAgICAge3sgc2xvdC5wYWdlICsgMSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc3AtYnV0dG9uLWdyb3VwPlxuIl19
|
|
@@ -6,7 +6,8 @@ import * as i2 from "../../listbox/src/option.component";
|
|
|
6
6
|
import * as i3 from "../../select/src/basic-select/basic-select.component";
|
|
7
7
|
import * as i4 from "../../button/src/icon-button.component";
|
|
8
8
|
import * as i5 from "../../icon/src/icon.component";
|
|
9
|
-
import * as i6 from "
|
|
9
|
+
import * as i6 from "./page-selection-row.component";
|
|
10
|
+
import * as i7 from "../../common/translate.pipe";
|
|
10
11
|
export class SapphirePaginationChange {
|
|
11
12
|
constructor(
|
|
12
13
|
/** The new page index */
|
|
@@ -22,8 +23,14 @@ export class PaginationComponent {
|
|
|
22
23
|
this.pageSize = 10;
|
|
23
24
|
this.itemCount = 0;
|
|
24
25
|
this.page = 0;
|
|
26
|
+
/**
|
|
27
|
+
* Allow selection of individual pages
|
|
28
|
+
* @default false
|
|
29
|
+
*/
|
|
30
|
+
this.allowPageSelection = false;
|
|
25
31
|
this._disabled = false;
|
|
26
32
|
this.valueChange = new EventEmitter();
|
|
33
|
+
this.Math = Math;
|
|
27
34
|
}
|
|
28
35
|
get disabled() {
|
|
29
36
|
return this._disabled;
|
|
@@ -57,6 +64,13 @@ export class PaginationComponent {
|
|
|
57
64
|
pageSize: this.pageSize,
|
|
58
65
|
});
|
|
59
66
|
}
|
|
67
|
+
_onPageSelect(index) {
|
|
68
|
+
this.page = index;
|
|
69
|
+
this.valueChange.emit({
|
|
70
|
+
page: this.page,
|
|
71
|
+
pageSize: this.pageSize,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
60
74
|
_isNextPageButtonDisabled() {
|
|
61
75
|
return this.itemCount <= this.page * this.pageSize + this.pageSize;
|
|
62
76
|
}
|
|
@@ -65,10 +79,10 @@ export class PaginationComponent {
|
|
|
65
79
|
}
|
|
66
80
|
}
|
|
67
81
|
PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
-
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: PaginationComponent, selector: "sp-pagination", inputs: { pageSize: "pageSize", itemCount: "itemCount", page: "page", pageSizeOptions: "pageSizeOptions", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"sapphire-pagination\">\n <sp-basic-select\n *ngIf=\"pageSizeOptions\"\n [placeholder]=\"'select-an-option' | t\"\n (valueChange)=\"_onPageSizeChange($event)\"\n [value]=\"'' + pageSize\"\n [disabled]=\"!!disabled\"\n [aria-label]=\"'number-of-items-per-page' | t\"\n variant=\"tertiary-ghost\"\n size=\"
|
|
82
|
+
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: PaginationComponent, selector: "sp-pagination", inputs: { pageSize: "pageSize", itemCount: "itemCount", page: "page", pageSizeOptions: "pageSizeOptions", allowPageSelection: "allowPageSelection", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"sapphire-pagination\">\n <sp-basic-select\n *ngIf=\"pageSizeOptions\"\n [placeholder]=\"'select-an-option' | t\"\n (valueChange)=\"_onPageSizeChange($event)\"\n [value]=\"'' + pageSize\"\n [disabled]=\"!!disabled\"\n [aria-label]=\"'number-of-items-per-page' | t\"\n variant=\"tertiary-ghost\"\n size=\"sm\"\n >\n <sp-option\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n [value]=\"'' + pageSizeOption\"\n >{{ 'items-per-page' | t : { value: pageSizeOption } }}</sp-option\n >\n </sp-basic-select>\n <span class=\"sapphire-pagination__controls\">\n <span\n *ngIf=\"!allowPageSelection\"\n class=\"sapphire-pagination__text--emphasized\"\n >\n {{ startItemIndex }} -\n {{ endItemIndex }}\n <span class=\"sapphire-pagination__text\"> {{ 'of' | t }} </span>\n {{ itemCount }}\n </span>\n <button\n sp-icon-button\n variant=\"tertiary-ghost\"\n size=\"sm\"\n (click)=\"_onPageChange('previous')\"\n [disabled]=\"_isPreviousPageButtonDisabled() || !!disabled\"\n [attr.aria-label]=\"'previous' | t\"\n >\n <sp-icon name=\"chevronLeft\"></sp-icon>\n </button>\n\n <sp-page-selection-row\n *ngIf=\"allowPageSelection\"\n [currentPage]=\"page\"\n [totalPageCount]=\"Math.ceil(itemCount / pageSize)\"\n [siblingCount]=\"1\"\n [boundaryCount]=\"1\"\n (pageChange)=\"_onPageSelect($event)\"\n />\n\n <button\n sp-icon-button\n variant=\"tertiary-ghost\"\n size=\"sm\"\n (click)=\"_onPageChange('next')\"\n [disabled]=\"_isNextPageButtonDisabled() || !!disabled\"\n [attr.aria-label]=\"'next' | t\"\n >\n <sp-icon name=\"chevronRight\"></sp-icon>\n </button>\n </span>\n</div>\n", styles: [".sapphire-pagination{display:flex;justify-content:flex-end;align-items:center;padding:var(--sapphire-semantic-size-spacing-20) var(--sapphire-semantic-size-spacing-50);background-color:var(--sapphire-semantic-color-background-surface);font-family:var(--sapphire-semantic-font-name-default);font-size:var(--sapphire-semantic-size-font-control-sm);height:var(--sapphire-semantic-size-height-control-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-pagination__controls{display:flex;align-items:center;justify-content:flex-end;flex-grow:1;color:var(--sapphire-semantic-color-content-default-primary);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-pagination__text{font-weight:var(--sapphire-semantic-font-weight-default-regular);padding-left:var(--sapphire-semantic-size-spacing-20);padding-right:var(--sapphire-semantic-size-spacing-20)}.sapphire-pagination__text--emphasized{font-weight:var(--sapphire-semantic-font-weight-default-semibold)}.sapphire-pagination__ellipsis{display:flex;justify-content:center;align-items:center;height:var(--sapphire-semantic-size-height-control-sm);width:var(--sapphire-semantic-size-height-control-sm);font-size:var(--sapphire-semantic-size-font-control-sm);font-weight:var(--sapphire-semantic-font-weight-default-semibold)}sp-basic-select{margin-left:calc(-1 * var(--sapphire-global-size-generic-50))}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.OptionComponent, selector: "sp-option", inputs: ["value", "disabled"] }, { kind: "component", type: i3.BasicSelectComponent, selector: "sp-basic-select", inputs: ["size", "variant"], exportAs: ["spBasicSelect"] }, { kind: "directive", type: i3.BasicSingleSelectDirective, selector: "sp-basic-select:not([multiple])" }, { kind: "component", type: i4.IconButtonComponent, selector: "button[sp-icon-button], a[sp-icon-button]", inputs: ["variant", "size", "disabled", "type"] }, { kind: "component", type: i5.IconComponent, selector: "sp-icon", inputs: ["name", "size"] }, { kind: "component", type: i6.PageSelectionRowComponent, selector: "sp-page-selection-row", inputs: ["currentPage", "totalPageCount", "siblingCount", "boundaryCount"], outputs: ["pageChange"] }, { kind: "pipe", type: i7.TranslatePipe, name: "t" }] });
|
|
69
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
70
84
|
type: Component,
|
|
71
|
-
args: [{ selector: 'sp-pagination', template: "<div class=\"sapphire-pagination\">\n <sp-basic-select\n *ngIf=\"pageSizeOptions\"\n [placeholder]=\"'select-an-option' | t\"\n (valueChange)=\"_onPageSizeChange($event)\"\n [value]=\"'' + pageSize\"\n [disabled]=\"!!disabled\"\n [aria-label]=\"'number-of-items-per-page' | t\"\n variant=\"tertiary-ghost\"\n size=\"
|
|
85
|
+
args: [{ selector: 'sp-pagination', template: "<div class=\"sapphire-pagination\">\n <sp-basic-select\n *ngIf=\"pageSizeOptions\"\n [placeholder]=\"'select-an-option' | t\"\n (valueChange)=\"_onPageSizeChange($event)\"\n [value]=\"'' + pageSize\"\n [disabled]=\"!!disabled\"\n [aria-label]=\"'number-of-items-per-page' | t\"\n variant=\"tertiary-ghost\"\n size=\"sm\"\n >\n <sp-option\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n [value]=\"'' + pageSizeOption\"\n >{{ 'items-per-page' | t : { value: pageSizeOption } }}</sp-option\n >\n </sp-basic-select>\n <span class=\"sapphire-pagination__controls\">\n <span\n *ngIf=\"!allowPageSelection\"\n class=\"sapphire-pagination__text--emphasized\"\n >\n {{ startItemIndex }} -\n {{ endItemIndex }}\n <span class=\"sapphire-pagination__text\"> {{ 'of' | t }} </span>\n {{ itemCount }}\n </span>\n <button\n sp-icon-button\n variant=\"tertiary-ghost\"\n size=\"sm\"\n (click)=\"_onPageChange('previous')\"\n [disabled]=\"_isPreviousPageButtonDisabled() || !!disabled\"\n [attr.aria-label]=\"'previous' | t\"\n >\n <sp-icon name=\"chevronLeft\"></sp-icon>\n </button>\n\n <sp-page-selection-row\n *ngIf=\"allowPageSelection\"\n [currentPage]=\"page\"\n [totalPageCount]=\"Math.ceil(itemCount / pageSize)\"\n [siblingCount]=\"1\"\n [boundaryCount]=\"1\"\n (pageChange)=\"_onPageSelect($event)\"\n />\n\n <button\n sp-icon-button\n variant=\"tertiary-ghost\"\n size=\"sm\"\n (click)=\"_onPageChange('next')\"\n [disabled]=\"_isNextPageButtonDisabled() || !!disabled\"\n [attr.aria-label]=\"'next' | t\"\n >\n <sp-icon name=\"chevronRight\"></sp-icon>\n </button>\n </span>\n</div>\n", styles: [".sapphire-pagination{display:flex;justify-content:flex-end;align-items:center;padding:var(--sapphire-semantic-size-spacing-20) var(--sapphire-semantic-size-spacing-50);background-color:var(--sapphire-semantic-color-background-surface);font-family:var(--sapphire-semantic-font-name-default);font-size:var(--sapphire-semantic-size-font-control-sm);height:var(--sapphire-semantic-size-height-control-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-pagination__controls{display:flex;align-items:center;justify-content:flex-end;flex-grow:1;color:var(--sapphire-semantic-color-content-default-primary);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-pagination__text{font-weight:var(--sapphire-semantic-font-weight-default-regular);padding-left:var(--sapphire-semantic-size-spacing-20);padding-right:var(--sapphire-semantic-size-spacing-20)}.sapphire-pagination__text--emphasized{font-weight:var(--sapphire-semantic-font-weight-default-semibold)}.sapphire-pagination__ellipsis{display:flex;justify-content:center;align-items:center;height:var(--sapphire-semantic-size-height-control-sm);width:var(--sapphire-semantic-size-height-control-sm);font-size:var(--sapphire-semantic-size-font-control-sm);font-weight:var(--sapphire-semantic-font-weight-default-semibold)}sp-basic-select{margin-left:calc(-1 * var(--sapphire-global-size-generic-50))}\n"] }]
|
|
72
86
|
}], propDecorators: { pageSize: [{
|
|
73
87
|
type: Input
|
|
74
88
|
}], itemCount: [{
|
|
@@ -77,9 +91,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
77
91
|
type: Input
|
|
78
92
|
}], pageSizeOptions: [{
|
|
79
93
|
type: Input
|
|
94
|
+
}], allowPageSelection: [{
|
|
95
|
+
type: Input
|
|
80
96
|
}], disabled: [{
|
|
81
97
|
type: Input
|
|
82
98
|
}], valueChange: [{
|
|
83
99
|
type: Output
|
|
84
100
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3BhZ2luYXRpb24vc3JjL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9wYWdpbmF0aW9uL3NyYy9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFFdkUsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQztJQUNFLHlCQUF5QjtJQUNULElBQVk7SUFDNUIsd0JBQXdCO0lBQ1IsUUFBZ0I7UUFGaEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUVaLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDL0IsQ0FBQztDQUNMO0FBT0QsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9FLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFHdEIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUd0QixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBS2pCOzs7V0FHRztRQUVILHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQVM1QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBVWhCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUEwQzNELFNBQUksR0FBRyxJQUFJLENBQUM7S0FDaEM7SUE1REMsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFtQjtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFHRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFJRCxpQkFBaUIsQ0FBQyxLQUFhO1FBQzdCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFeEM7OztXQUdHO1FBQ0gsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxhQUFhLENBQUMsU0FBOEI7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQixJQUFJLEVBQUUsT0FBTztZQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3JFLENBQUM7SUFFRCw2QkFBNkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDOztnSEE3RVUsbUJBQW1CO29HQUFuQixtQkFBbUIsMFFDakJoQyx3d0RBMkRBOzJGRDFDYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZUFBZTs4QkFNekIsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQVFOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJRixRQUFRO3NCQURYLEtBQUs7Z0JBaUJhLFdBQVc7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgU2FwcGhpcmVQYWdpbmF0aW9uQ2hhbmdlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIFRoZSBuZXcgcGFnZSBpbmRleCAqL1xuICAgIHB1YmxpYyByZWFkb25seSBwYWdlOiBudW1iZXIsXG4gICAgLyoqIFRoZSBuZXcgcGFnZSBzaXplICovXG4gICAgcHVibGljIHJlYWRvbmx5IHBhZ2VTaXplOiBudW1iZXJcbiAgKSB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBwYWdlU2l6ZTogbnVtYmVyID0gMTA7XG5cbiAgQElucHV0KClcbiAgaXRlbUNvdW50OiBudW1iZXIgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHBhZ2U6IG51bWJlciA9IDA7XG5cbiAgQElucHV0KClcbiAgcGFnZVNpemVPcHRpb25zPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIEFsbG93IHNlbGVjdGlvbiBvZiBpbmRpdmlkdWFsIHBhZ2VzXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBhbGxvd1BhZ2VTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IHN0YXJ0SXRlbUluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFnZSAqIHRoaXMucGFnZVNpemUgKyAxO1xuICB9XG5cbiAgZ2V0IGVuZEl0ZW1JbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1pbih0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplICsgdGhpcy5wYWdlU2l6ZSwgdGhpcy5pdGVtQ291bnQpO1xuICB9XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTYXBwaGlyZVBhZ2luYXRpb25DaGFuZ2U+KCk7XG5cbiAgX29uUGFnZVNpemVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5ld1BhZ2VTaXplID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcblxuICAgIC8qKlxuICAgICAqIEF2b2lkIGdvaW5nIHRvIGludmFsaWQgcGFnZSB3aGVuIHN3aXRjaGluZ1xuICAgICAqIHRvIGEgZGlmZmVyZW50IHBhZ2Ugc2l6ZVxuICAgICAqL1xuICAgIGNvbnN0IGZpcnN0SXRlbUluZGV4ID0gdGhpcy5wYWdlU2l6ZSAqIHRoaXMucGFnZSArIDE7XG4gICAgY29uc3QgbmV3UGFnZSA9IE1hdGguY2VpbChmaXJzdEl0ZW1JbmRleCAvIG5ld1BhZ2VTaXplKSAtIDE7XG5cbiAgICB0aGlzLnBhZ2UgPSBuZXdQYWdlO1xuICAgIHRoaXMucGFnZVNpemUgPSBuZXdQYWdlU2l6ZTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoeyBwYWdlOiBuZXdQYWdlLCBwYWdlU2l6ZTogbmV3UGFnZVNpemUgfSk7XG4gIH1cblxuICBfb25QYWdlQ2hhbmdlKGRpcmVjdGlvbjogJ3ByZXZpb3VzJyB8ICduZXh0Jykge1xuICAgIGNvbnN0IG5ld1BhZ2UgPSB0aGlzLnBhZ2UgKyAoZGlyZWN0aW9uID09PSAncHJldmlvdXMnID8gLTEgOiAxKTtcbiAgICB0aGlzLnBhZ2UgPSBuZXdQYWdlO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICBwYWdlOiBuZXdQYWdlLFxuICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgfSk7XG4gIH1cblxuICBfb25QYWdlU2VsZWN0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnBhZ2UgPSBpbmRleDtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgfSk7XG4gIH1cblxuICBfaXNOZXh0UGFnZUJ1dHRvbkRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1Db3VudCA8PSB0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplICsgdGhpcy5wYWdlU2l6ZTtcbiAgfVxuXG4gIF9pc1ByZXZpb3VzUGFnZUJ1dHRvbkRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2UgPT09IDA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgTWF0aCA9IE1hdGg7XG59XG4iLCI8ZGl2IGNsYXNzPVwic2FwcGhpcmUtcGFnaW5hdGlvblwiPlxuICA8c3AtYmFzaWMtc2VsZWN0XG4gICAgKm5nSWY9XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICAgIFtwbGFjZWhvbGRlcl09XCInc2VsZWN0LWFuLW9wdGlvbicgfCB0XCJcbiAgICAodmFsdWVDaGFuZ2UpPVwiX29uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cIicnICsgcGFnZVNpemVcIlxuICAgIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkXCJcbiAgICBbYXJpYS1sYWJlbF09XCInbnVtYmVyLW9mLWl0ZW1zLXBlci1wYWdlJyB8IHRcIlxuICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeS1naG9zdFwiXG4gICAgc2l6ZT1cInNtXCJcbiAgPlxuICAgIDxzcC1vcHRpb25cbiAgICAgICpuZ0Zvcj1cImxldCBwYWdlU2l6ZU9wdGlvbiBvZiBwYWdlU2l6ZU9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cIicnICsgcGFnZVNpemVPcHRpb25cIlxuICAgICAgPnt7ICdpdGVtcy1wZXItcGFnZScgfCB0IDogeyB2YWx1ZTogcGFnZVNpemVPcHRpb24gfSB9fTwvc3Atb3B0aW9uXG4gICAgPlxuICA8L3NwLWJhc2ljLXNlbGVjdD5cbiAgPHNwYW4gY2xhc3M9XCJzYXBwaGlyZS1wYWdpbmF0aW9uX19jb250cm9sc1wiPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cIiFhbGxvd1BhZ2VTZWxlY3Rpb25cIlxuICAgICAgY2xhc3M9XCJzYXBwaGlyZS1wYWdpbmF0aW9uX190ZXh0LS1lbXBoYXNpemVkXCJcbiAgICA+XG4gICAgICB7eyBzdGFydEl0ZW1JbmRleCB9fSAtXG4gICAgICB7eyBlbmRJdGVtSW5kZXggfX1cbiAgICAgIDxzcGFuIGNsYXNzPVwic2FwcGhpcmUtcGFnaW5hdGlvbl9fdGV4dFwiPiB7eyAnb2YnIHwgdCB9fSA8L3NwYW4+XG4gICAgICB7eyBpdGVtQ291bnQgfX1cbiAgICA8L3NwYW4+XG4gICAgPGJ1dHRvblxuICAgICAgc3AtaWNvbi1idXR0b25cbiAgICAgIHZhcmlhbnQ9XCJ0ZXJ0aWFyeS1naG9zdFwiXG4gICAgICBzaXplPVwic21cIlxuICAgICAgKGNsaWNrKT1cIl9vblBhZ2VDaGFuZ2UoJ3ByZXZpb3VzJylcIlxuICAgICAgW2Rpc2FibGVkXT1cIl9pc1ByZXZpb3VzUGFnZUJ1dHRvbkRpc2FibGVkKCkgfHwgISFkaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwcmV2aW91cycgfCB0XCJcbiAgICA+XG4gICAgICA8c3AtaWNvbiBuYW1lPVwiY2hldnJvbkxlZnRcIj48L3NwLWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8c3AtcGFnZS1zZWxlY3Rpb24tcm93XG4gICAgICAqbmdJZj1cImFsbG93UGFnZVNlbGVjdGlvblwiXG4gICAgICBbY3VycmVudFBhZ2VdPVwicGFnZVwiXG4gICAgICBbdG90YWxQYWdlQ291bnRdPVwiTWF0aC5jZWlsKGl0ZW1Db3VudCAvIHBhZ2VTaXplKVwiXG4gICAgICBbc2libGluZ0NvdW50XT1cIjFcIlxuICAgICAgW2JvdW5kYXJ5Q291bnRdPVwiMVwiXG4gICAgICAocGFnZUNoYW5nZSk9XCJfb25QYWdlU2VsZWN0KCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8YnV0dG9uXG4gICAgICBzcC1pY29uLWJ1dHRvblxuICAgICAgdmFyaWFudD1cInRlcnRpYXJ5LWdob3N0XCJcbiAgICAgIHNpemU9XCJzbVwiXG4gICAgICAoY2xpY2spPVwiX29uUGFnZUNoYW5nZSgnbmV4dCcpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJfaXNOZXh0UGFnZUJ1dHRvbkRpc2FibGVkKCkgfHwgISFkaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIiduZXh0JyB8IHRcIlxuICAgID5cbiAgICAgIDxzcC1pY29uIG5hbWU9XCJjaGV2cm9uUmlnaHRcIj48L3NwLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuIl19
|
|
@@ -8,11 +8,12 @@ import { SapphireButtonModule } from '../../button/public_api';
|
|
|
8
8
|
import { TranslatePipe } from '../../common/translate.pipe';
|
|
9
9
|
import { MessageDictionary } from '@internationalized/message';
|
|
10
10
|
import translations from '../i18n';
|
|
11
|
+
import { PageSelectionRowComponent } from './page-selection-row.component';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
export class SapphirePaginationModule {
|
|
13
14
|
}
|
|
14
15
|
SapphirePaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphirePaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
-
SapphirePaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: SapphirePaginationModule, declarations: [PaginationComponent], imports: [CommonModule,
|
|
16
|
+
SapphirePaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: SapphirePaginationModule, declarations: [PaginationComponent, PageSelectionRowComponent], imports: [CommonModule,
|
|
16
17
|
TranslatePipe,
|
|
17
18
|
A11yModule,
|
|
18
19
|
SapphireSelectModule,
|
|
@@ -26,7 +27,7 @@ SapphirePaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0"
|
|
|
26
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphirePaginationModule, decorators: [{
|
|
27
28
|
type: NgModule,
|
|
28
29
|
args: [{
|
|
29
|
-
declarations: [PaginationComponent],
|
|
30
|
+
declarations: [PaginationComponent, PageSelectionRowComponent],
|
|
30
31
|
imports: [
|
|
31
32
|
CommonModule,
|
|
32
33
|
TranslatePipe,
|
|
@@ -39,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
39
40
|
providers: [{ provide: MessageDictionary, useValue: translations }],
|
|
40
41
|
}]
|
|
41
42
|
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3BhZ2luYXRpb24vc3JjL3BhZ2luYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxZQUFZLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQWUzRSxNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3NIQUF4Qix3QkFBd0IsaUJBWnBCLG1CQUFtQixFQUFFLHlCQUF5QixhQUUzRCxZQUFZO1FBQ1osYUFBYTtRQUNiLFVBQVU7UUFDVixvQkFBb0I7UUFDcEIsb0JBQW9CO1FBQ3BCLGtCQUFrQixhQUVWLG1CQUFtQjtzSEFHbEIsd0JBQXdCLGFBRnhCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDLFlBUmpFLFlBQVk7UUFFWixVQUFVO1FBQ1Ysb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixrQkFBa0I7MkZBS1Qsd0JBQXdCO2tCQWJwQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDO29CQUM5RCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFVBQVU7d0JBQ1Ysb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBQztpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBTYXBwaGlyZVNlbGVjdE1vZHVsZSB9IGZyb20gJy4uLy4uL3NlbGVjdC9wdWJsaWNfYXBpJztcbmltcG9ydCB7IFNhcHBoaXJlSWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2ljb24vcHVibGljX2FwaSc7XG5pbXBvcnQgeyBTYXBwaGlyZUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2J1dHRvbi9wdWJsaWNfYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9jb21tb24vdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgTWVzc2FnZURpY3Rpb25hcnkgfSBmcm9tICdAaW50ZXJuYXRpb25hbGl6ZWQvbWVzc2FnZSc7XG5pbXBvcnQgdHJhbnNsYXRpb25zIGZyb20gJy4uL2kxOG4nO1xuaW1wb3J0IHsgUGFnZVNlbGVjdGlvblJvd0NvbXBvbmVudCB9IGZyb20gJy4vcGFnZS1zZWxlY3Rpb24tcm93LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1BhZ2luYXRpb25Db21wb25lbnQsIFBhZ2VTZWxlY3Rpb25Sb3dDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBTYXBwaGlyZVNlbGVjdE1vZHVsZSxcbiAgICBTYXBwaGlyZUJ1dHRvbk1vZHVsZSxcbiAgICBTYXBwaGlyZUljb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtQYWdpbmF0aW9uQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNZXNzYWdlRGljdGlvbmFyeSwgdXNlVmFsdWU6IHRyYW5zbGF0aW9ucyB9XSxcbn0pXG5leHBvcnQgY2xhc3MgU2FwcGhpcmVQYWdpbmF0aW9uTW9kdWxlIHt9XG4iXX0=
|
|
@@ -40,6 +40,11 @@ export class PopoverTriggerDirective {
|
|
|
40
40
|
* is applied on an element which doesn't support `disabled` property.
|
|
41
41
|
*/
|
|
42
42
|
this.disabled = false;
|
|
43
|
+
/**
|
|
44
|
+
* If the popover should be pushed around whenever it doesn't fit the viewport
|
|
45
|
+
* with the provided placement.
|
|
46
|
+
*/
|
|
47
|
+
this.disablePushInsideViewport = false;
|
|
43
48
|
/** Emits when the attached popover is requested to open */
|
|
44
49
|
this.opened = new EventEmitter();
|
|
45
50
|
/** Emits when the attached popover is requested to close */
|
|
@@ -194,7 +199,6 @@ export class PopoverTriggerDirective {
|
|
|
194
199
|
}
|
|
195
200
|
getOverlayPositionStrategy() {
|
|
196
201
|
const placement = this.placement || 'bottom';
|
|
197
|
-
const hasHorizontallyCenteredAlignment = !placement.includes('start') && !placement.includes('end');
|
|
198
202
|
return (this.cdkOverlay
|
|
199
203
|
.position()
|
|
200
204
|
.flexibleConnectedTo(this.elementRef)
|
|
@@ -216,7 +220,7 @@ export class PopoverTriggerDirective {
|
|
|
216
220
|
* to have it within the viewport. It should also be ok not to push vertically, since we
|
|
217
221
|
* allow for vertical flipping if needed.
|
|
218
222
|
**/
|
|
219
|
-
.withPush(
|
|
223
|
+
.withPush(!this.disablePushInsideViewport)
|
|
220
224
|
.withPositions([
|
|
221
225
|
toConnectedPosition(placement),
|
|
222
226
|
toConnectedPosition(flip(placement)),
|
|
@@ -225,7 +229,7 @@ export class PopoverTriggerDirective {
|
|
|
225
229
|
}
|
|
226
230
|
}
|
|
227
231
|
PopoverTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PopoverTriggerDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
228
|
-
PopoverTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: PopoverTriggerDirective, selector: "[spPopoverTriggerFor]", inputs: { placement: ["spPopoverPlacement", "placement"], templateRef: ["spPopoverTriggerFor", "templateRef"], nonModal: ["spPopoverNonModal", "nonModal"], openOnPressStart: ["spPopoverTriggerOpenOnPressStart", "openOnPressStart"], closeOnScroll: ["spPopoverTriggerCloseOnScroll", "closeOnScroll"], disabled: ["spPopoverTriggerDisabled", "disabled"] }, outputs: { opened: "spPopoverTriggerOpened", closed: "spPopoverTriggerClosed" }, host: { listeners: { "mousedown": "handleMousedown($event)", "click": "handleClick($event)", "keydown.tab": "handleTab()", "focusout": "onFocusout($event)", "keydown": "handleKeyDown($event)" }, properties: { "class.is-active": "isOpen()", "attr.aria-expanded": "isOpen()", "attr.aria-controls": "this.getPopoverId" } }, providers: [
|
|
232
|
+
PopoverTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: PopoverTriggerDirective, selector: "[spPopoverTriggerFor]", inputs: { placement: ["spPopoverPlacement", "placement"], templateRef: ["spPopoverTriggerFor", "templateRef"], nonModal: ["spPopoverNonModal", "nonModal"], openOnPressStart: ["spPopoverTriggerOpenOnPressStart", "openOnPressStart"], closeOnScroll: ["spPopoverTriggerCloseOnScroll", "closeOnScroll"], disabled: ["spPopoverTriggerDisabled", "disabled"], disablePushInsideViewport: ["spPopoverDisablePushInsideViewport", "disablePushInsideViewport"] }, outputs: { opened: "spPopoverTriggerOpened", closed: "spPopoverTriggerClosed" }, host: { listeners: { "mousedown": "handleMousedown($event)", "click": "handleClick($event)", "keydown.tab": "handleTab()", "focusout": "onFocusout($event)", "keydown": "handleKeyDown($event)" }, properties: { "class.is-active": "isOpen()", "attr.aria-expanded": "isOpen()", "attr.aria-controls": "this.getPopoverId" } }, providers: [
|
|
229
233
|
{ provide: POPOVER_TRIGGER, useExisting: PopoverTriggerDirective },
|
|
230
234
|
], exportAs: ["spPopoverTrigger"], ngImport: i0 });
|
|
231
235
|
__decorate([
|
|
@@ -240,6 +244,9 @@ __decorate([
|
|
|
240
244
|
__decorate([
|
|
241
245
|
CoerceBoolean
|
|
242
246
|
], PopoverTriggerDirective.prototype, "disabled", void 0);
|
|
247
|
+
__decorate([
|
|
248
|
+
CoerceBoolean
|
|
249
|
+
], PopoverTriggerDirective.prototype, "disablePushInsideViewport", void 0);
|
|
243
250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: PopoverTriggerDirective, decorators: [{
|
|
244
251
|
type: Directive,
|
|
245
252
|
args: [{
|
|
@@ -271,6 +278,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
271
278
|
}], disabled: [{
|
|
272
279
|
type: Input,
|
|
273
280
|
args: ['spPopoverTriggerDisabled']
|
|
281
|
+
}], disablePushInsideViewport: [{
|
|
282
|
+
type: Input,
|
|
283
|
+
args: ['spPopoverDisablePushInsideViewport']
|
|
274
284
|
}], opened: [{
|
|
275
285
|
type: Output,
|
|
276
286
|
args: ['spPopoverTriggerOpened']
|
|
@@ -296,4 +306,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
296
306
|
type: HostListener,
|
|
297
307
|
args: ['keydown', ['$event']]
|
|
298
308
|
}] } });
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcG9wb3Zlci9zcmMvcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLGFBQWEsR0FFZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLGNBQWMsRUFDZCxRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBYSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBUXRFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDL0Msb0JBQW9CLENBQ3JCLENBQUM7QUFFRiw2RUFBNkU7QUFhN0UsTUFBTSxPQUFPLHVCQUF1QjtJQXFEbEMsSUFDVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRCxZQUNVLGlCQUFvQyxFQUNwQyxVQUFtQixFQUNuQixnQkFBa0MsRUFDbkMsVUFBbUMsRUFDbEMsUUFBa0I7UUFKbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQ25CLHFCQUFn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dUJBQUMsbUJBQW1CO2dCQVMxQixnQkFBZ0I7c0JBRmYsS0FBSzt1QkFBQyxrQ0FBa0M7Z0JBVXpDLGFBQWE7c0JBRlosS0FBSzt1QkFBQywrQkFBK0I7Z0JBVXRDLFFBQVE7c0JBRlAsS0FBSzt1QkFBQywwQkFBMEI7Z0JBTXhCLE1BQU07c0JBRGQsTUFBTTt1QkFBQyx3QkFBd0I7Z0JBS3ZCLE1BQU07c0JBRGQsTUFBTTt1QkFBQyx3QkFBd0I7Z0JBWXJCLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQXdFekIsZUFBZTtzQkFEdEIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBd0I3QixXQUFXO3NCQURsQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFjekIsU0FBUztzQkFEaEIsWUFBWTt1QkFBQyxhQUFhO2dCQWNuQixVQUFVO3NCQURqQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEyQjVCLGFBQWE7c0JBRHBCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICBPdmVybGF5LFxuICBPdmVybGF5Q29uZmlnLFxuICBPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBmbGlwLCBQbGFjZW1lbnQsIHRvQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb21tb24vcGxhY2VtZW50JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb2VyY2VCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvZXJjZS1ib29sZWFuLmRlY29yYXRvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wb3ZlclRyaWdnZXIge1xuICB0b2dnbGUoKTogdm9pZDtcbiAgb3BlbigpOiB2b2lkO1xuICBjbG9zZSgpOiB2b2lkO1xuICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcbn1cbmV4cG9ydCBjb25zdCBQT1BPVkVSX1RSSUdHRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48UG9wb3ZlclRyaWdnZXI+KFxuICAnc3AtcG9wb3Zlci10cmlnZ2VyJ1xuKTtcblxuLy8gVE9ETyhVQy0yNzI4KTogaW1wcm92ZSBldmVudCBoYW5kbGluZyB3aGVuIHJldXNhYmxlIHByZXNzIHV0aWxpdHkgaXMgYWRkZWRcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NwUG9wb3ZlclRyaWdnZXJGb3JdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBQT1BPVkVSX1RSSUdHRVIsIHVzZUV4aXN0aW5nOiBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5pcy1hY3RpdmVdJzogJ2lzT3BlbigpJyxcbiAgICAnW2F0dHIuYXJpYS1leHBhbmRlZF0nOiAnaXNPcGVuKCknLFxuICB9LFxuICBleHBvcnRBczogJ3NwUG9wb3ZlclRyaWdnZXInLFxufSlcbmV4cG9ydCBjbGFzcyBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIFBvcG92ZXJUcmlnZ2VyIHtcbiAgQElucHV0KCdzcFBvcG92ZXJQbGFjZW1lbnQnKVxuICBwdWJsaWMgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tJztcblxuICBASW5wdXQoJ3NwUG9wb3ZlclRyaWdnZXJGb3InKVxuICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgbm90IGJsb2NrIGludGVyYWN0aW9uIHdpdGggYmFja2dyb3VuZC5cbiAgICovXG4gIEBJbnB1dCgnc3BQb3BvdmVyTm9uTW9kYWwnKVxuICBAQ29lcmNlQm9vbGVhblxuICBub25Nb2RhbDogQm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBvcG92ZXIgc2hvdWxkIGJlIG9wZW5lZCBvbiBwcmVzcyBzdGFydC5cbiAgICovXG4gIEBJbnB1dCgnc3BQb3BvdmVyVHJpZ2dlck9wZW5PblByZXNzU3RhcnQnKVxuICBAQ29lcmNlQm9vbGVhblxuICBvcGVuT25QcmVzc1N0YXJ0OiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgYmUgY2xvc2VkIHdoZW4gdGhlIGNvbnRhaW5lciBpcyBzY3JvbGxlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgnc3BQb3BvdmVyVHJpZ2dlckNsb3NlT25TY3JvbGwnKVxuICBAQ29lcmNlQm9vbGVhblxuICBjbG9zZU9uU2Nyb2xsOiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gZGlzYWJsZSB0b2dnbGluZyBwb3BvdmVyIG9uIGNsaWNrcy4gVXNlZnVsIGlmIGBzcFBvcG92ZXJUcmlnZ2VyYFxuICAgKiBpcyBhcHBsaWVkIG9uIGFuIGVsZW1lbnQgd2hpY2ggZG9lc24ndCBzdXBwb3J0IGBkaXNhYmxlZGAgcHJvcGVydHkuXG4gICAqL1xuICBASW5wdXQoJ3NwUG9wb3ZlclRyaWdnZXJEaXNhYmxlZCcpXG4gIEBDb2VyY2VCb29sZWFuXG4gIGRpc2FibGVkOiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICAvKiogRW1pdHMgd2hlbiB0aGUgYXR0YWNoZWQgcG9wb3ZlciBpcyByZXF1ZXN0ZWQgdG8gb3BlbiAqL1xuICBAT3V0cHV0KCdzcFBvcG92ZXJUcmlnZ2VyT3BlbmVkJylcbiAgcmVhZG9ubHkgb3BlbmVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIGF0dGFjaGVkIHBvcG92ZXIgaXMgcmVxdWVzdGVkIHRvIGNsb3NlICovXG4gIEBPdXRwdXQoJ3NwUG9wb3ZlclRyaWdnZXJDbG9zZWQnKVxuICByZWFkb25seSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKiogRW1pdHMgd2hlbiB0aGlzIHRyaWdnZXIgaXMgZGVzdHJveWVkLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKiogQSByZWZlcmVuY2UgdG8gdGhlIG92ZXJsYXkgd2hpY2ggbWFuYWdlcyB0aGUgdHJpZ2dlcmVkIG1lbnUgKi9cbiAgcHJvdGVjdGVkIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGlzQmVpbmdQcmVzc2VkID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtY29udHJvbHMnKVxuICBwdWJsaWMgZ2V0IGdldFBvcG92ZXJJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5UmVmPy5ob3N0RWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbcm9sZT1cImRpYWxvZ1wiXScpPy5pZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgY2RrT3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3lPdmVybGF5KCk7XG5cbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKiBUb2dnbGUgdGhlIGF0dGFjaGVkIHBvcG92ZXIuICovXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzT3BlbigpID8gdGhpcy5jbG9zZSgpIDogdGhpcy5vcGVuKCk7XG4gIH1cblxuICAvKiogT3BlbiB0aGUgYXR0YWNoZWQgcG9wb3Zlci4gKi9cbiAgb3BlbigpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKCkgJiYgdGhpcy50ZW1wbGF0ZVJlZiAhPSBudWxsICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9wZW5lZC5uZXh0KCk7XG4gICAgICBpZiAoIXRoaXMub3ZlcmxheVJlZikge1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLmNka092ZXJsYXkuY3JlYXRlKHRoaXMuZ2V0T3ZlcmxheUNvbmZpZygpKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koXG4gICAgICAgICAgdGhpcy5nZXRPdmVybGF5UG9zaXRpb25TdHJhdGVneSgpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbG9zZWQubmV4dCgpO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwobWVyZ2UodGhpcy5jbG9zZWQsIHRoaXMuZGVzdHJveWVkKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgLy8gSWYgcG9wb3ZlciBpcyBvcGVuZWQgb24gcHJlc3Mgc3RhcnQsIGFuIG91dHNpZGUgcG9pbnRlciBldmVudFxuICAgICAgICAgICAgLy8gaXMgZW1pdHRlZCBhcyB0aGUgbW91c2UgaXMgYmVpbmcgcmVsZWFzZWQsIHdoaWNoIHdvdWxkIGltbWVkaWF0ZWx5XG4gICAgICAgICAgICAvLyBjbG9zZSB0aGUgcG9wb3Zlci4gUHJvYmFibHkgYSBidWcgaW4gQGFuZ3VsYXIvY2RrL292ZXJsYXkuXG4gICAgICAgICAgICAhKHRoaXMub3Blbk9uUHJlc3NTdGFydCAmJiB0aGlzLmlzQmVpbmdQcmVzc2VkKSAmJlxuICAgICAgICAgICAgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMuZ2V0Q29udGVudFBvcnRhbCgpKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZSB0aGUgb3BlbmVkIHBvcG92ZXIuICovXG4gIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBvcGVuLiAqL1xuICBpc09wZW4oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmlzQmVpbmdQcmVzc2VkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5vcGVuT25QcmVzc1N0YXJ0KSB7XG4gICAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gZm9jdXMgdGhlIHRyaWdnZXIgYmVmb3JlIG9wZW5pbmcuIE90aGVyd2lzZSwgdGhlIGZvY3VzIHJlc3RvcmF0aW9uIGxvZ2ljIHdpbGxcbiAgICAgICAgLy8gYmUgbWVzc2VkIHVwLCBzaW5jZSB0aGUgd3JvbmcgZWxlbWVudCB3b3VsZCBoYXZlIHRoZSBmb2N1cyB3aGVuIHRoZSBwb3BvdmVyIGlzIG1vdW50ZWQuXG4gICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuZm9jdXMoKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAnbW91c2V1cCcsXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuaXNCZWluZ1ByZXNzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBvbmNlOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZUNsaWNrKCkge1xuICAgIGlmICghdGhpcy5vcGVuT25QcmVzc1N0YXJ0KSB7XG4gICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGlsZSBvbkZvY3Vzb3V0IHRha2VzIGNhcmUgb2YgY2xvc2luZyB0aGUgcG9wb3ZlciB3aGVuIGZvY3VzIGdvZXMgb3V0LCBpbiB0aGUgcmFyZSBjYXNlc1xuICAgKiB0aGF0IHRoZXJlIGlzIG5vIG1vcmUgZm9jdXNhYmxlIGVsZW1lbnQgYmV0d2VlbiB0aGUgdHJpZ2dlciBhbmQgdGhlIHBvcG92ZXIsIHRoZSBmb2N1cyBjYW5cbiAgICogZ28gdG8gdGhlIHBvcG92ZXIgb24gcHJlc3NpbmcgYFRhYmAuIEJ1dCB0aGUgcG9wb3ZlciBzaG91bGQgYmUgY2xvc2VkIHdoZW4gdGFiYmluZyBvbiB0aGVcbiAgICogdHJpZ2dlci5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24udGFiJylcbiAgcHJpdmF0ZSBoYW5kbGVUYWIoKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIHNvbWUgdXNlIGNhc2VzIChlLmcuIGluIHNlYXJjaGFibGUgc2VsZWN0KSBwb3BvdmVyIHRyaWdnZXIgZ3JhYnMgdGhlIGZvY3VzLCByaWdodCBhZnRlclxuICAgKiB0aGUgcG9wb3ZlciBpcyBvcGVuZWQuIFRoYXQgcmVxdWlyZXMgcG9wb3ZlciB0cmlnZ2VyIHRvIGRldGVjdCB3aGVuIGZvY3VzIGdvZXMgb3V0IG9mIGl0XG4gICAqIGFuZCBjbG9zZSB0aGUgcG9wb3Zlci5cbiAgICogTm90ZTogd2UgY2FuJ3QgdXNlIGBibHVyYCBldmVudCBzaW5jZSBpdCB3b24ndCBidWJibGUgdXAsIGFuZCB0aGUgZm9jdXMgY2FuIGJlIG9uIGFuIGVsZW1lbnRcbiAgICogaW5zaWRlIHRoZSB0cmlnZ2VyLCBidXQgbm90IHRoZSB0cmlnZ2VyIGl0c2VsZi5cbiAgICpcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvbkZvY3Vzb3V0KGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgZXZlbnQucmVsYXRlZFRhcmdldCA9PT0gbnVsbCAmJlxuICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0XG4gICAgKSB7XG4gICAgICAvLyBUaGlzIGhhcHBlbnMgb24gdGFiIHN3aXRjaCwgd2l0aG91dCBmb2N1cyBiZWluZyBhY3R1YWxseSBtb3ZlZC5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZm9jdXNSZWNlaXZpbmdFbGVtZW50ID1cbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50ID8gZXZlbnQucmVsYXRlZFRhcmdldCA6IG51bGw7XG4gICAgaWYgKFxuICAgICAgLy8gZm9jdXMgaXMgZ29pbmcgbm93aGVyZVxuICAgICAgIWZvY3VzUmVjZWl2aW5nRWxlbWVudCB8fFxuICAgICAgLy8gZm9jdXMgaXMgZ29pbmcgYW55d2hlcmUgb3V0c2lkZSBwb3BvdmVyIGFuZCBwb3BvdmVyIHRyaWdnZXJcbiAgICAgICEoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uY29udGFpbnMoZm9jdXNSZWNlaXZpbmdFbGVtZW50KSB8fFxuICAgICAgICAvLyBUaGlzIGlzIHRvIG5vdCBoYXZlIHRoZSBwb3BvdmVyIGNsb3NlZCBhcyBzb29uIGFzIG1vdXNlIGlzIGRvd24gb24gc29tZXRoaW5nIGluc2lkZSB0aGVcbiAgICAgICAgLy8gcG9wb3ZlciwgaWYgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBvbiB0aGUgdHJpZ2dlclxuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/Lm92ZXJsYXlFbGVtZW50Py5jb250YWlucyhmb2N1c1JlY2VpdmluZ0VsZW1lbnQpXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICEodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCkgJiZcbiAgICAgIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnICcpXG4gICAgKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lPdmVybGF5KCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHVzZWQgdG8gY3JlYXRlIHRoZSBvdmVybGF5LiAqL1xuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcoKSB7XG4gICAgcmV0dXJuIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm5vbk1vZGFsXG4gICAgICAgID8gdGhpcy5jbG9zZU9uU2Nyb2xsXG4gICAgICAgICAgPyB0aGlzLmNka092ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5jbG9zZSgpXG4gICAgICAgICAgOiB0aGlzLmNka092ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcbiAgICAgICAgOiB0aGlzLmNka092ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLCAvLyB0byBtYXRjaCB3aGF0IHdlIGhhdmUgaW4gcmVhY3RcblxuICAgICAgLy8gSW5jbHVkaW5nIGEgdHJhbnNwYXJlbnQgYmFja2Ryb3AgYWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QgZGVjaXNpb24gb2YgbWFraW5nIHBvcG92ZXJzIG1vZGFsLlxuICAgICAgaGFzQmFja2Ryb3A6ICF0aGlzLm5vbk1vZGFsLFxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGdldENvbnRlbnRQb3J0YWwoKTogVGVtcGxhdGVQb3J0YWwgfCBudWxsIHtcbiAgICBpZiAodGhpcy50ZW1wbGF0ZVJlZikge1xuICAgICAgcmV0dXJuIG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVJlZixcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBudWxsLFxuICAgICAgICBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUE9QT1ZFUl9UUklHR0VSLCB1c2VWYWx1ZTogdGhpcyB9XSxcbiAgICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheVBvc2l0aW9uU3RyYXRlZ3koKTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICBjb25zdCBwbGFjZW1lbnQgPSB0aGlzLnBsYWNlbWVudCB8fCAnYm90dG9tJztcbiAgICBjb25zdCBoYXNIb3Jpem9udGFsbHlDZW50ZXJlZEFsaWdubWVudCA9XG4gICAgICAhcGxhY2VtZW50LmluY2x1ZGVzKCdzdGFydCcpICYmICFwbGFjZW1lbnQuaW5jbHVkZXMoJ2VuZCcpO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNka092ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50UmVmKVxuICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKClcbiAgICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKClcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc2FibGluZyBwdXNoaW5nLCB0byBmaXggYW4gaXNzdWUgaW4gRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5IHdoZXJlIHRoZVxuICAgICAgICAgKiBvdmVybGF5J3MgYm90dG9tIGdyb3dzIHBhc3QgdGhlIHRvcCBvZiB0aGUgdHJpZ2dlciBlbGVtZW50IChha2Egb3JpZ2luKS5cbiAgICAgICAgICogSS5lLiwgd2hlbiB0aGUgb3ZlcmxheSBpcyBzdXBwb3NlZCB0byBiZSBwbGFjZWQgYWJvdmUgdGhlIHRyaWdnZXIgZWxlbWVudCwgaXQgY2FuXG4gICAgICAgICAqIGdyb3cgaW4gaGVpZ2h0IGFuZCBjb3ZlciB0aGUgdHJpZ2dlciBlbGVtZW50LiBUaGlzIGlzIG1vcmUgb2YgYW4gaXNzdWUgd2hlbiB0aGUgdHJpZ2dlclxuICAgICAgICAgKiBlbGVtZW50IHJlbWFpbnMgaW50ZXJhY3RpdmUgYWZ0ZXIgdGhlIG92ZXJsYXkgaXMgb3BlbmVkLCBzdWNoIGFzIGluIHNlYXJjaGFibGUgc2VsZWN0LlxuICAgICAgICAgKiBOb3RlIHRoYXQgdGhpcyBpcyBub3QgdGhlIGNhc2Ugd2hlbiB0aGUgb3ZlcmxheSBpcyBwbGFjZWQgYWJvdmUgdGhlIHRyaWdnZXIgZWxlbWVudC5cbiAgICAgICAgICogSW4gdGhhdCBjYXNlIHRoZSBvdmVybGF5IHdpbGwgbm90IGVhdCB1cCBhbGwgYXZhaWxhYmxlIHZpZXdwb3J0IGhlaWdodCwgYW5kIGlzIHNpemVkIGluXG4gICAgICAgICAqIGEgd2F5IHRoYXQgcmVzcGVjdHMgdGhlIHByZWZlcnJlZCBwbGFjZW1lbnQgYWJvdmUgdGhlIHRyaWdnZXIgZWxlbWVudC5cbiAgICAgICAgICogRGlzYWJsaW5nIHB1c2ggaXMgbm90IHRoZSBpZGVhbCBzb2x1dGlvbiBidXQgcHJldmVudHMgdGhlIGlzc3VlLlxuICAgICAgICAgKiBwdXNoIGlzIGRpc2FibGVkIG9ubHkgZm9yIG92ZXJsYXlzIHdoZXJlIHRoZSBob3Jpem9udGFsIGFsaWdubWVudCBpcyBhbmNob3JlZCB0byBsZWZ0XG4gICAgICAgICAqIG9yIHJpZ2h0IG9mIHRoZSB0cmlnZ2VyIGVsZW1lbnQsIGJhc2VkIG9uIHRoZSBmYWlyIGFzc3VtcHRpb24gdGhhdCB0aGUgY29ubmVjdGVkXG4gICAgICAgICAqIGVsZW1lbnQgaXMgaXRzZWxmIHdpdGhpbiB0aGUgdmlld3BvcnQsIGFuZCB3ZSB3b24ndCBuZWVkIHRvIHB1c2ggdGhlIG92ZXJsYXkgaG9yaXpvbnRhbGx5XG4gICAgICAgICAqIHRvIGhhdmUgaXQgd2l0aGluIHRoZSB2aWV3cG9ydC4gSXQgc2hvdWxkIGFsc28gYmUgb2sgbm90IHRvIHB1c2ggdmVydGljYWxseSwgc2luY2Ugd2VcbiAgICAgICAgICogYWxsb3cgZm9yIHZlcnRpY2FsIGZsaXBwaW5nIGlmIG5lZWRlZC5cbiAgICAgICAgICoqL1xuICAgICAgICAud2l0aFB1c2goaGFzSG9yaXpvbnRhbGx5Q2VudGVyZWRBbGlnbm1lbnQpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICB0b0Nvbm5lY3RlZFBvc2l0aW9uKHBsYWNlbWVudCksXG4gICAgICAgICAgdG9Db25uZWN0ZWRQb3NpdGlvbihmbGlwKHBsYWNlbWVudCkpLFxuICAgICAgICBdKVxuICAgICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKHBsYWNlbWVudC5pbmNsdWRlcygnZW5kJykgPyAwIDogNilcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvcG9wb3Zlci9zcmMvcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLGFBQWEsR0FFZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLGNBQWMsRUFDZCxRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBYSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBUXRFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDL0Msb0JBQW9CLENBQ3JCLENBQUM7QUFFRiw2RUFBNkU7QUFhN0UsTUFBTSxPQUFPLHVCQUF1QjtJQTZEbEMsSUFDVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRCxZQUNVLGlCQUFvQyxFQUNwQyxVQUFtQixFQUNuQixnQkFBa0MsRUFDbkMsVUFBbUMsRUFDbEMsUUFBa0I7UUFKbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQ25CLHFCQUFn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QjtzQkFGZixLQUFLO3VCQUFDLGtDQUFrQztnQkFVekMsYUFBYTtzQkFGWixLQUFLO3VCQUFDLCtCQUErQjtnQkFVdEMsUUFBUTtzQkFGUCxLQUFLO3VCQUFDLDBCQUEwQjtnQkFVakMseUJBQXlCO3NCQUZ4QixLQUFLO3VCQUFDLG9DQUFvQztnQkFNbEMsTUFBTTtzQkFEZCxNQUFNO3VCQUFDLHdCQUF3QjtnQkFLdkIsTUFBTTtzQkFEZCxNQUFNO3VCQUFDLHdCQUF3QjtnQkFZckIsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBd0V6QixlQUFlO3NCQUR0QixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF3QjdCLFdBQVc7c0JBRGxCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWN6QixTQUFTO3NCQURoQixZQUFZO3VCQUFDLGFBQWE7Z0JBY25CLFVBQVU7c0JBRGpCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJCNUIsYUFBYTtzQkFEcEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGZsaXAsIFBsYWNlbWVudCwgdG9Db25uZWN0ZWRQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9wbGFjZW1lbnQnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvZXJjZUJvb2xlYW4gfSBmcm9tICcuLi8uLi9jb21tb24vY29lcmNlLWJvb2xlYW4uZGVjb3JhdG9yJztcblxuZXhwb3J0IGludGVyZmFjZSBQb3BvdmVyVHJpZ2dlciB7XG4gIHRvZ2dsZSgpOiB2b2lkO1xuICBvcGVuKCk6IHZvaWQ7XG4gIGNsb3NlKCk6IHZvaWQ7XG4gIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xufVxuZXhwb3J0IGNvbnN0IFBPUE9WRVJfVFJJR0dFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQb3BvdmVyVHJpZ2dlcj4oXG4gICdzcC1wb3BvdmVyLXRyaWdnZXInXG4pO1xuXG4vLyBUT0RPKFVDLTI3MjgpOiBpbXByb3ZlIGV2ZW50IGhhbmRsaW5nIHdoZW4gcmV1c2FibGUgcHJlc3MgdXRpbGl0eSBpcyBhZGRlZFxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc3BQb3BvdmVyVHJpZ2dlckZvcl0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IFBPUE9WRVJfVFJJR0dFUiwgdXNlRXhpc3Rpbmc6IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLWFjdGl2ZV0nOiAnaXNPcGVuKCknLFxuICAgICdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6ICdpc09wZW4oKScsXG4gIH0sXG4gIGV4cG9ydEFzOiAnc3BQb3BvdmVyVHJpZ2dlcicsXG59KVxuZXhwb3J0IGNsYXNzIFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgUG9wb3ZlclRyaWdnZXIge1xuICBASW5wdXQoJ3NwUG9wb3ZlclBsYWNlbWVudCcpXG4gIHB1YmxpYyBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICdib3R0b20nO1xuXG4gIEBJbnB1dCgnc3BQb3BvdmVyVHJpZ2dlckZvcicpXG4gIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBub3QgYmxvY2sgaW50ZXJhY3Rpb24gd2l0aCBiYWNrZ3JvdW5kLlxuICAgKi9cbiAgQElucHV0KCdzcFBvcG92ZXJOb25Nb2RhbCcpXG4gIEBDb2VyY2VCb29sZWFuXG4gIG5vbk1vZGFsOiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgYmUgb3BlbmVkIG9uIHByZXNzIHN0YXJ0LlxuICAgKi9cbiAgQElucHV0KCdzcFBvcG92ZXJUcmlnZ2VyT3Blbk9uUHJlc3NTdGFydCcpXG4gIEBDb2VyY2VCb29sZWFuXG4gIG9wZW5PblByZXNzU3RhcnQ6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBiZSBjbG9zZWQgd2hlbiB0aGUgY29udGFpbmVyIGlzIHNjcm9sbGVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCdzcFBvcG92ZXJUcmlnZ2VyQ2xvc2VPblNjcm9sbCcpXG4gIEBDb2VyY2VCb29sZWFuXG4gIGNsb3NlT25TY3JvbGw6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgdXNlZCB0byBkaXNhYmxlIHRvZ2dsaW5nIHBvcG92ZXIgb24gY2xpY2tzLiBVc2VmdWwgaWYgYHNwUG9wb3ZlclRyaWdnZXJgXG4gICAqIGlzIGFwcGxpZWQgb24gYW4gZWxlbWVudCB3aGljaCBkb2Vzbid0IHN1cHBvcnQgYGRpc2FibGVkYCBwcm9wZXJ0eS5cbiAgICovXG4gIEBJbnB1dCgnc3BQb3BvdmVyVHJpZ2dlckRpc2FibGVkJylcbiAgQENvZXJjZUJvb2xlYW5cbiAgZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgcG9wb3ZlciBzaG91bGQgYmUgcHVzaGVkIGFyb3VuZCB3aGVuZXZlciBpdCBkb2Vzbid0IGZpdCB0aGUgdmlld3BvcnRcbiAgICogd2l0aCB0aGUgcHJvdmlkZWQgcGxhY2VtZW50LlxuICAgKi9cbiAgQElucHV0KCdzcFBvcG92ZXJEaXNhYmxlUHVzaEluc2lkZVZpZXdwb3J0JylcbiAgQENvZXJjZUJvb2xlYW5cbiAgZGlzYWJsZVB1c2hJbnNpZGVWaWV3cG9ydDogQm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIGF0dGFjaGVkIHBvcG92ZXIgaXMgcmVxdWVzdGVkIHRvIG9wZW4gKi9cbiAgQE91dHB1dCgnc3BQb3BvdmVyVHJpZ2dlck9wZW5lZCcpXG4gIHJlYWRvbmx5IG9wZW5lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBhdHRhY2hlZCBwb3BvdmVyIGlzIHJlcXVlc3RlZCB0byBjbG9zZSAqL1xuICBAT3V0cHV0KCdzcFBvcG92ZXJUcmlnZ2VyQ2xvc2VkJylcbiAgcmVhZG9ubHkgY2xvc2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhpcyB0cmlnZ2VyIGlzIGRlc3Ryb3llZC4gKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3llZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqIEEgcmVmZXJlbmNlIHRvIHRoZSBvdmVybGF5IHdoaWNoIG1hbmFnZXMgdGhlIHRyaWdnZXJlZCBtZW51ICovXG4gIHByb3RlY3RlZCBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBpc0JlaW5nUHJlc3NlZCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWNvbnRyb2xzJylcbiAgcHVibGljIGdldCBnZXRQb3BvdmVySWQoKSB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheVJlZj8uaG9zdEVsZW1lbnQucXVlcnlTZWxlY3RvcignW3JvbGU9XCJkaWFsb2dcIl0nKT8uaWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGNka092ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogVG9nZ2xlIHRoZSBhdHRhY2hlZCBwb3BvdmVyLiAqL1xuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc09wZW4oKSA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICB9XG5cbiAgLyoqIE9wZW4gdGhlIGF0dGFjaGVkIHBvcG92ZXIuICovXG4gIG9wZW4oKSB7XG4gICAgaWYgKCF0aGlzLmlzT3BlbigpICYmIHRoaXMudGVtcGxhdGVSZWYgIT0gbnVsbCAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vcGVuZWQubmV4dCgpO1xuICAgICAgaWYgKCF0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jZGtPdmVybGF5LmNyZWF0ZSh0aGlzLmdldE92ZXJsYXlDb25maWcoKSk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KFxuICAgICAgICAgIHRoaXMuZ2V0T3ZlcmxheVBvc2l0aW9uU3RyYXRlZ3koKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2xvc2VkLm5leHQoKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgICAgLm91dHNpZGVQb2ludGVyRXZlbnRzKClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKG1lcmdlKHRoaXMuY2xvc2VkLCB0aGlzLmRlc3Ryb3llZCkpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIElmIHBvcG92ZXIgaXMgb3BlbmVkIG9uIHByZXNzIHN0YXJ0LCBhbiBvdXRzaWRlIHBvaW50ZXIgZXZlbnRcbiAgICAgICAgICAgIC8vIGlzIGVtaXR0ZWQgYXMgdGhlIG1vdXNlIGlzIGJlaW5nIHJlbGVhc2VkLCB3aGljaCB3b3VsZCBpbW1lZGlhdGVseVxuICAgICAgICAgICAgLy8gY2xvc2UgdGhlIHBvcG92ZXIuIFByb2JhYmx5IGEgYnVnIGluIEBhbmd1bGFyL2Nkay9vdmVybGF5LlxuICAgICAgICAgICAgISh0aGlzLm9wZW5PblByZXNzU3RhcnQgJiYgdGhpcy5pc0JlaW5nUHJlc3NlZCkgJiZcbiAgICAgICAgICAgICF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0aGlzLmdldENvbnRlbnRQb3J0YWwoKSk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xvc2UgdGhlIG9wZW5lZCBwb3BvdmVyLiAqL1xuICBjbG9zZSgpIHtcbiAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgdGhpcy5vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgaXMgb3Blbi4gKi9cbiAgaXNPcGVuKCkge1xuICAgIHJldHVybiAhIXRoaXMub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgaGFuZGxlTW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5pc0JlaW5nUHJlc3NlZCA9IHRydWU7XG4gICAgaWYgKHRoaXMub3Blbk9uUHJlc3NTdGFydCkge1xuICAgICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIGZvY3VzIHRoZSB0cmlnZ2VyIGJlZm9yZSBvcGVuaW5nLiBPdGhlcndpc2UsIHRoZSBmb2N1cyByZXN0b3JhdGlvbiBsb2dpYyB3aWxsXG4gICAgICAgIC8vIGJlIG1lc3NlZCB1cCwgc2luY2UgdGhlIHdyb25nIGVsZW1lbnQgd291bGQgaGF2ZSB0aGUgZm9jdXMgd2hlbiB0aGUgcG9wb3ZlciBpcyBtb3VudGVkLlxuICAgICAgICBldmVudC5jdXJyZW50VGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgJ21vdXNldXAnLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmlzQmVpbmdQcmVzc2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgb25jZTogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBoYW5kbGVDbGljaygpIHtcbiAgICBpZiAoIXRoaXMub3Blbk9uUHJlc3NTdGFydCkge1xuICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hpbGUgb25Gb2N1c291dCB0YWtlcyBjYXJlIG9mIGNsb3NpbmcgdGhlIHBvcG92ZXIgd2hlbiBmb2N1cyBnb2VzIG91dCwgaW4gdGhlIHJhcmUgY2FzZXNcbiAgICogdGhhdCB0aGVyZSBpcyBubyBtb3JlIGZvY3VzYWJsZSBlbGVtZW50IGJldHdlZW4gdGhlIHRyaWdnZXIgYW5kIHRoZSBwb3BvdmVyLCB0aGUgZm9jdXMgY2FuXG4gICAqIGdvIHRvIHRoZSBwb3BvdmVyIG9uIHByZXNzaW5nIGBUYWJgLiBCdXQgdGhlIHBvcG92ZXIgc2hvdWxkIGJlIGNsb3NlZCB3aGVuIHRhYmJpbmcgb24gdGhlXG4gICAqIHRyaWdnZXIuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnRhYicpXG4gIHByaXZhdGUgaGFuZGxlVGFiKCkge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBzb21lIHVzZSBjYXNlcyAoZS5nLiBpbiBzZWFyY2hhYmxlIHNlbGVjdCkgcG9wb3ZlciB0cmlnZ2VyIGdyYWJzIHRoZSBmb2N1cywgcmlnaHQgYWZ0ZXJcbiAgICogdGhlIHBvcG92ZXIgaXMgb3BlbmVkLiBUaGF0IHJlcXVpcmVzIHBvcG92ZXIgdHJpZ2dlciB0byBkZXRlY3Qgd2hlbiBmb2N1cyBnb2VzIG91dCBvZiBpdFxuICAgKiBhbmQgY2xvc2UgdGhlIHBvcG92ZXIuXG4gICAqIE5vdGU6IHdlIGNhbid0IHVzZSBgYmx1cmAgZXZlbnQgc2luY2UgaXQgd29uJ3QgYnViYmxlIHVwLCBhbmQgdGhlIGZvY3VzIGNhbiBiZSBvbiBhbiBlbGVtZW50XG4gICAqIGluc2lkZSB0aGUgdHJpZ2dlciwgYnV0IG5vdCB0aGUgdHJpZ2dlciBpdHNlbGYuXG4gICAqXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25Gb2N1c291dChldmVudDogRm9jdXNFdmVudCkge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnJlbGF0ZWRUYXJnZXQgPT09IG51bGwgJiZcbiAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldFxuICAgICkge1xuICAgICAgLy8gVGhpcyBoYXBwZW5zIG9uIHRhYiBzd2l0Y2gsIHdpdGhvdXQgZm9jdXMgYmVpbmcgYWN0dWFsbHkgbW92ZWQuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvY3VzUmVjZWl2aW5nRWxlbWVudCA9XG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCA/IGV2ZW50LnJlbGF0ZWRUYXJnZXQgOiBudWxsO1xuICAgIGlmIChcbiAgICAgIC8vIGZvY3VzIGlzIGdvaW5nIG5vd2hlcmVcbiAgICAgICFmb2N1c1JlY2VpdmluZ0VsZW1lbnQgfHxcbiAgICAgIC8vIGZvY3VzIGlzIGdvaW5nIGFueXdoZXJlIG91dHNpZGUgcG9wb3ZlciBhbmQgcG9wb3ZlciB0cmlnZ2VyXG4gICAgICAhKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKGZvY3VzUmVjZWl2aW5nRWxlbWVudCkgfHxcbiAgICAgICAgLy8gVGhpcyBpcyB0byBub3QgaGF2ZSB0aGUgcG9wb3ZlciBjbG9zZWQgYXMgc29vbiBhcyBtb3VzZSBpcyBkb3duIG9uIHNvbWV0aGluZyBpbnNpZGUgdGhlXG4gICAgICAgIC8vIHBvcG92ZXIsIGlmIHRoZSBmb2N1cyBpcyBjdXJyZW50bHkgb24gdGhlIHRyaWdnZXJcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5vdmVybGF5RWxlbWVudD8uY29udGFpbnMoZm9jdXNSZWNlaXZpbmdFbGVtZW50KVxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICBldmVudC50YXJnZXQgPT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAhKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpICYmXG4gICAgICAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKVxuICAgICkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95T3ZlcmxheSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKiogR2V0IHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB1c2VkIHRvIGNyZWF0ZSB0aGUgb3ZlcmxheS4gKi9cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKCkge1xuICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5ub25Nb2RhbFxuICAgICAgICA/IHRoaXMuY2xvc2VPblNjcm9sbFxuICAgICAgICAgID8gdGhpcy5jZGtPdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKVxuICAgICAgICAgIDogdGhpcy5jZGtPdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXG4gICAgICAgIDogdGhpcy5jZGtPdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSwgLy8gdG8gbWF0Y2ggd2hhdCB3ZSBoYXZlIGluIHJlYWN0XG5cbiAgICAgIC8vIEluY2x1ZGluZyBhIHRyYW5zcGFyZW50IGJhY2tkcm9wIGFjY29yZGluZyB0byB0aGUgbGF0ZXN0IGRlY2lzaW9uIG9mIG1ha2luZyBwb3BvdmVycyBtb2RhbC5cbiAgICAgIGhhc0JhY2tkcm9wOiAhdGhpcy5ub25Nb2RhbCxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRDb250ZW50UG9ydGFsKCk6IFRlbXBsYXRlUG9ydGFsIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMudGVtcGxhdGVSZWYpIHtcbiAgICAgIHJldHVybiBuZXcgVGVtcGxhdGVQb3J0YWwoXG4gICAgICAgIHRoaXMudGVtcGxhdGVSZWYsXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgbnVsbCxcbiAgICAgICAgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFBPUE9WRVJfVFJJR0dFUiwgdXNlVmFsdWU6IHRoaXMgfV0sXG4gICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldE92ZXJsYXlQb3NpdGlvblN0cmF0ZWd5KCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gICAgY29uc3QgcGxhY2VtZW50ID0gdGhpcy5wbGFjZW1lbnQgfHwgJ2JvdHRvbSc7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY2RrT3ZlcmxheVxuICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmVsZW1lbnRSZWYpXG4gICAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24oKVxuICAgICAgICAud2l0aEdyb3dBZnRlck9wZW4oKVxuICAgICAgICAvKipcbiAgICAgICAgICogRGlzYWJsaW5nIHB1c2hpbmcsIHRvIGZpeCBhbiBpc3N1ZSBpbiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kgd2hlcmUgdGhlXG4gICAgICAgICAqIG92ZXJsYXkncyBib3R0b20gZ3Jvd3MgcGFzdCB0aGUgdG9wIG9mIHRoZSB0cmlnZ2VyIGVsZW1lbnQgKGFrYSBvcmlnaW4pLlxuICAgICAgICAgKiBJLmUuLCB3aGVuIHRoZSBvdmVybGF5IGlzIHN1cHBvc2VkIHRvIGJlIHBsYWNlZCBhYm92ZSB0aGUgdHJpZ2dlciBlbGVtZW50LCBpdCBjYW5cbiAgICAgICAgICogZ3JvdyBpbiBoZWlnaHQgYW5kIGNvdmVyIHRoZSB0cmlnZ2VyIGVsZW1lbnQuIFRoaXMgaXMgbW9yZSBvZiBhbiBpc3N1ZSB3aGVuIHRoZSB0cmlnZ2VyXG4gICAgICAgICAqIGVsZW1lbnQgcmVtYWlucyBpbnRlcmFjdGl2ZSBhZnRlciB0aGUgb3ZlcmxheSBpcyBvcGVuZWQsIHN1Y2ggYXMgaW4gc2VhcmNoYWJsZSBzZWxlY3QuXG4gICAgICAgICAqIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCB0aGUgY2FzZSB3aGVuIHRoZSBvdmVybGF5IGlzIHBsYWNlZCBhYm92ZSB0aGUgdHJpZ2dlciBlbGVtZW50LlxuICAgICAgICAgKiBJbiB0aGF0IGNhc2UgdGhlIG92ZXJsYXkgd2lsbCBub3QgZWF0IHVwIGFsbCBhdmFpbGFibGUgdmlld3BvcnQgaGVpZ2h0LCBhbmQgaXMgc2l6ZWQgaW5cbiAgICAgICAgICogYSB3YXkgdGhhdCByZXNwZWN0cyB0aGUgcHJlZmVycmVkIHBsYWNlbWVudCBhYm92ZSB0aGUgdHJpZ2dlciBlbGVtZW50LlxuICAgICAgICAgKiBEaXNhYmxpbmcgcHVzaCBpcyBub3QgdGhlIGlkZWFsIHNvbHV0aW9uIGJ1dCBwcmV2ZW50cyB0aGUgaXNzdWUuXG4gICAgICAgICAqIHB1c2ggaXMgZGlzYWJsZWQgb25seSBmb3Igb3ZlcmxheXMgd2hlcmUgdGhlIGhvcml6b250YWwgYWxpZ25tZW50IGlzIGFuY2hvcmVkIHRvIGxlZnRcbiAgICAgICAgICogb3IgcmlnaHQgb2YgdGhlIHRyaWdnZXIgZWxlbWVudCwgYmFzZWQgb24gdGhlIGZhaXIgYXNzdW1wdGlvbiB0aGF0IHRoZSBjb25uZWN0ZWRcbiAgICAgICAgICogZWxlbWVudCBpcyBpdHNlbGYgd2l0aGluIHRoZSB2aWV3cG9ydCwgYW5kIHdlIHdvbid0IG5lZWQgdG8gcHVzaCB0aGUgb3ZlcmxheSBob3Jpem9udGFsbHlcbiAgICAgICAgICogdG8gaGF2ZSBpdCB3aXRoaW4gdGhlIHZpZXdwb3J0LiBJdCBzaG91bGQgYWxzbyBiZSBvayBub3QgdG8gcHVzaCB2ZXJ0aWNhbGx5LCBzaW5jZSB3ZVxuICAgICAgICAgKiBhbGxvdyBmb3IgdmVydGljYWwgZmxpcHBpbmcgaWYgbmVlZGVkLlxuICAgICAgICAgKiovXG4gICAgICAgIC53aXRoUHVzaCghdGhpcy5kaXNhYmxlUHVzaEluc2lkZVZpZXdwb3J0KVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgdG9Db25uZWN0ZWRQb3NpdGlvbihwbGFjZW1lbnQpLFxuICAgICAgICAgIHRvQ29ubmVjdGVkUG9zaXRpb24oZmxpcChwbGFjZW1lbnQpKSxcbiAgICAgICAgXSlcbiAgICAgICAgLndpdGhWaWV3cG9ydE1hcmdpbihwbGFjZW1lbnQuaW5jbHVkZXMoJ2VuZCcpID8gMCA6IDYpXG4gICAgKTtcbiAgfVxufVxuIl19
|