@villedemontreal/angular-ui 17.0.0 → 17.1.1

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.
@@ -0,0 +1,217 @@
1
+ /*
2
+ * Copyright (c) 2025 Ville de Montreal. All rights reserved.
3
+ * Licensed under the MIT license.
4
+ * See LICENSE file in the project root for full license information.
5
+ */
6
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "../icon/icon.component";
10
+ import * as i3 from "@angular/forms";
11
+ export class BaoPaginationComponent {
12
+ constructor(cdr) {
13
+ this.cdr = cdr;
14
+ /**
15
+ * The number of items per page as selected.
16
+ */
17
+ this.itemsPerPage = 10;
18
+ /**
19
+ * The current page number.
20
+ */
21
+ this.currentPage = 1;
22
+ /**
23
+ * The different page size options.
24
+ */
25
+ this.pageSizeOptions = [10, 25, 50, 100];
26
+ /**
27
+ * The label for the type of items that are displayed on the page
28
+ */
29
+ this.itemLabel = 'items';
30
+ /**
31
+ * If selector for number of items per page should be displayed or not
32
+ */
33
+ this.showItemsPerPageSelector = true;
34
+ /**
35
+ * EventEmitter that triggers when there is a page change and emits page number (index adjusted)
36
+ */
37
+ this.pageChanged = new EventEmitter();
38
+ /**
39
+ * EventEmitter that triggers when the number of items per page is changed.
40
+ */
41
+ this.itemsPerPageChanged = new EventEmitter();
42
+ /**
43
+ * Max number of pages to display
44
+ */
45
+ this._maxPages = 5;
46
+ this.displayedPages = [];
47
+ }
48
+ get totalPages() {
49
+ return this._totalPages;
50
+ }
51
+ set totalPages(value) {
52
+ this._totalPages = value;
53
+ }
54
+ get startItem() {
55
+ return this._startItem;
56
+ }
57
+ set startItem(value) {
58
+ this._startItem = value;
59
+ }
60
+ get endItem() {
61
+ return this._endItem;
62
+ }
63
+ set endItem(value) {
64
+ this._endItem = value;
65
+ }
66
+ get rangeLabel() {
67
+ return `${this.startItem} à ${this.endItem} sur ${this.totalItems} ${this.itemLabel}`;
68
+ }
69
+ /**
70
+ * Flag that indicates if a previous page exists for the current list
71
+ */
72
+ get hasPrevious() {
73
+ return this.currentPage !== 1;
74
+ }
75
+ /**
76
+ * Flag that indicates if a next page exists for the current list
77
+ */
78
+ get hasNext() {
79
+ return this.currentPage < this.totalPages;
80
+ }
81
+ ngOnInit() {
82
+ this.startItem = this.updateStartItem();
83
+ this.endItem = this.updateEndItem();
84
+ this.totalPages = this.updateTotalPages();
85
+ this.displayedPages = this.buildPageNumbers();
86
+ this.cdr.detectChanges();
87
+ }
88
+ /**
89
+ * Update list of displayed pages when current page is changed.
90
+ */
91
+ ngOnChanges(changes) {
92
+ if (changes.hasOwnProperty('currentPage')) {
93
+ this.displayedPages = this.buildPageNumbers();
94
+ }
95
+ if (changes.hasOwnProperty('totalItems')) {
96
+ this.startItem = this.updateStartItem();
97
+ this.endItem = this.updateEndItem();
98
+ this.totalPages = this.updateTotalPages();
99
+ this.displayedPages = this.buildPageNumbers();
100
+ }
101
+ }
102
+ /**
103
+ * Navigate to specific page
104
+ */
105
+ goTo(page) {
106
+ this.currentPage = page;
107
+ this.startItem = this.updateStartItem();
108
+ this.endItem = this.updateEndItem();
109
+ this.displayedPages = this.buildPageNumbers();
110
+ this.pageChanged.emit(page - 1);
111
+ }
112
+ /**
113
+ * Navigate to previous page
114
+ */
115
+ handlePreviousClick() {
116
+ if (this.hasPrevious) {
117
+ this.goTo(this.currentPage - 1);
118
+ }
119
+ }
120
+ /**
121
+ * Navigate to next page
122
+ */
123
+ handleNextClick() {
124
+ if (this.hasNext) {
125
+ this.goTo(this.currentPage + 1);
126
+ }
127
+ }
128
+ /**
129
+ * Update all required variables whenever the number of items displayed per page is changed.
130
+ * @param value New amount of items per page
131
+ */
132
+ handlePageSizeChange(value) {
133
+ this.currentPage = 1;
134
+ this.startItem = this.updateStartItem();
135
+ this.endItem = this.updateEndItem();
136
+ this.totalPages = this.updateTotalPages();
137
+ this.displayedPages = this.buildPageNumbers();
138
+ this.itemsPerPageChanged.emit(value);
139
+ }
140
+ updateTotalPages() {
141
+ return Math.ceil(this.totalItems / this.itemsPerPage);
142
+ }
143
+ updateStartItem() {
144
+ const startItem = Math.min((this.currentPage - 1) * this.itemsPerPage + 1, Math.floor(this.totalItems / 10) * 10);
145
+ return startItem || 1;
146
+ }
147
+ updateEndItem() {
148
+ return Math.min(this.startItem + Number(this.itemsPerPage) - 1, this.totalItems);
149
+ }
150
+ /**
151
+ * Generate series of page numbers to display. The list always starts with page 1
152
+ * and ends with last page.
153
+ * Adds negative numbers for ellipsis.
154
+ */
155
+ buildPageNumbers() {
156
+ const pages = [];
157
+ // If total pages are 5 or less, include all pages
158
+ if (this.totalPages <= this._maxPages) {
159
+ for (let i = 1; i <= this.totalPages; i++) {
160
+ pages.push(i);
161
+ }
162
+ }
163
+ else {
164
+ pages.push(1);
165
+ // Determine middle pages
166
+ let middlePages = [];
167
+ if (this.currentPage <= 3) {
168
+ middlePages = [2, 3, 4, -1];
169
+ }
170
+ else if (this.currentPage >= this.totalPages - 2) {
171
+ middlePages = [
172
+ -1,
173
+ this.totalPages - 3,
174
+ this.totalPages - 2,
175
+ this.totalPages - 1
176
+ ];
177
+ }
178
+ else {
179
+ middlePages = [
180
+ -1,
181
+ this.currentPage - 1,
182
+ this.currentPage,
183
+ this.currentPage + 1,
184
+ -1
185
+ ];
186
+ }
187
+ pages.push(...middlePages);
188
+ pages.push(this.totalPages);
189
+ }
190
+ return pages;
191
+ }
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaoPaginationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BaoPaginationComponent, selector: "bao-pagination", inputs: { totalItems: "totalItems", itemsPerPage: "itemsPerPage", currentPage: "currentPage", pageSizeOptions: "pageSizeOptions", itemLabel: "itemLabel", showItemsPerPageSelector: "showItemsPerPageSelector" }, outputs: { pageChanged: "pageChanged", itemsPerPageChanged: "itemsPerPageChanged" }, host: { classAttribute: "bao-pagination" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"items-diplayed-controls\">\n <span class=\"range-display\">\n {{ rangeLabel }}\n </span>\n <div *ngIf=\"showItemsPerPageSelector\" class=\"items-per-page\">\n <label for=\"items-per-page-select\" class=\"select-label\"\n >Items par page\n </label>\n <select\n [(ngModel)]=\"itemsPerPage\"\n (ngModelChange)=\"handlePageSizeChange($event)\"\n name=\"items-per-page\"\n id=\"items-per-page-select\"\n class=\"dropdown-select\"\n >\n <option *ngFor=\"let size of pageSizeOptions\" [value]=\"size\">\n {{ size }}\n </option>\n </select>\n </div>\n</div>\n<nav aria-label=\"Pagination\" class=\"page-controls\">\n <ul>\n <li\n class=\"page-item\"\n [ngClass]=\"{ disabled: !hasPrevious }\"\n [attr.aria-disabled]=\"!hasPrevious ? 'true' : null\"\n >\n <a\n class=\"page-link\"\n (click)=\"$event.preventDefault(); handlePreviousClick()\"\n (keydown.enter)=\"$event.preventDefault(); handlePreviousClick()\"\n (keydown.space)=\"$event.preventDefault(); handlePreviousClick()\"\n tabindex=\"0\"\n >\n <bao-icon title=\"Page pr\u00E9c\u00E9dente\" svgIcon=\"icon-chevron-left\"></bao-icon\n ></a>\n </li>\n <li\n class=\"page-item\"\n *ngFor=\"let page of displayedPages\"\n [ngClass]=\"{ active: page === currentPage }\"\n [attr.aria-current]=\"page === currentPage ? 'page' : null\"\n >\n <ng-container *ngIf=\"page > 0; else ellipsis\">\n <span class=\"sr-only\">{{ page }}</span>\n <a\n class=\"page-link\"\n (click)=\"$event.preventDefault(); goTo(page)\"\n (keydown.enter)=\"$event.preventDefault(); goTo(page)\"\n (keydown.space)=\"$event.preventDefault(); goTo(page)\"\n tabindex=\"0\"\n >{{ page }}</a\n >\n </ng-container>\n <ng-template #ellipsis>\n <span class=\"page-link ellipsis\" aria-hidden=\"true\">...</span>\n </ng-template>\n </li>\n\n <li\n class=\"page-item\"\n [ngClass]=\"{ disabled: !hasNext }\"\n [attr.aria-disabled]=\"!hasNext ? 'true' : null\"\n >\n <a\n class=\"page-link\"\n (click)=\"$event.preventDefault(); handleNextClick()\"\n (keydown.enter)=\"$event.preventDefault(); handleNextClick()\"\n (keydown.space)=\"$event.preventDefault(); handleNextClick()\"\n tabindex=\"0\"\n >\n <bao-icon title=\"Page suivante\" svgIcon=\"icon-chevron-right\"></bao-icon\n ></a>\n </li>\n </ul>\n</nav>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.bao-pagination{display:flex;flex-direction:column;justify-content:center}@media (min-width: 768px){.bao-pagination{justify-content:flex-start}}.bao-pagination>.items-diplayed-controls{display:flex;flex-direction:column;justify-content:center;align-self:center}@media (min-width: 768px){.bao-pagination>.items-diplayed-controls{flex-direction:row;justify-content:space-between;align-self:auto;margin-bottom:1rem}}.bao-pagination>.items-diplayed-controls .range-display{font-weight:700;font-size:.875rem;line-height:1.25rem;margin-bottom:1rem}@media (min-width: 768px){.bao-pagination>.items-diplayed-controls .range-display{margin-bottom:0rem}}.bao-pagination>.items-diplayed-controls>.items-per-page{display:flex;align-items:baseline;margin-bottom:2rem}@media (min-width: 768px){.bao-pagination>.items-diplayed-controls>.items-per-page{margin-bottom:0rem}}.bao-pagination>.items-diplayed-controls>.items-per-page>.select-label{font-weight:700;font-size:.875rem;line-height:1.25rem;color:#637381;margin-right:1rem}.bao-pagination>.items-diplayed-controls>.items-per-page>.dropdown-select{background-color:#fff;border-radius:.25rem;border-color:#ced4da;border-style:solid;border-width:thin;padding:.4375rem 2.4375rem .4375rem .4375rem;font-weight:400;font-size:1rem;line-height:1.5rem;color:#212529;appearance:none;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='%23adb2bd' d='M12 12.586l3.293-3.293a1 1 0 011.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L12 12.586z'/%3e%3c/svg%3e\") right .4375rem center/24px 24px no-repeat}.bao-pagination .page-controls{align-self:center}.bao-pagination .page-controls>ul{display:flex;padding-left:0;margin-bottom:0}.bao-pagination .page-controls>ul>.page-item.disabled>.page-link>.bao-icon{color:#adb2bd}.bao-pagination .page-controls>ul>.page-item>.page-link{border-style:none}.bao-pagination .page-controls>ul>.page-item.active>.page-link{background-color:#eefaf8;border:1px solid #097d6c;border-radius:.25rem}.bao-pagination .page-controls>ul>.page-item>.page-link{font-size:.875rem}.bao-pagination .page-controls>ul>.page-item>.page-link:focus{box-shadow:inset 0 0 0 2px #0079c4}.bao-pagination .page-controls>ul>.page-item>.ellipsis{font-weight:700}.bao-pagination .page-controls>ul>.page-item>.ellipsis:hover{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.BaoIconComponent, selector: "bao-icon", inputs: ["color", "size", "svgIcon", "title"], exportAs: ["baoIcon"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
194
+ }
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaoPaginationComponent, decorators: [{
196
+ type: Component,
197
+ args: [{ selector: 'bao-pagination', encapsulation: ViewEncapsulation.None, host: {
198
+ class: 'bao-pagination'
199
+ }, template: "<div class=\"items-diplayed-controls\">\n <span class=\"range-display\">\n {{ rangeLabel }}\n </span>\n <div *ngIf=\"showItemsPerPageSelector\" class=\"items-per-page\">\n <label for=\"items-per-page-select\" class=\"select-label\"\n >Items par page\n </label>\n <select\n [(ngModel)]=\"itemsPerPage\"\n (ngModelChange)=\"handlePageSizeChange($event)\"\n name=\"items-per-page\"\n id=\"items-per-page-select\"\n class=\"dropdown-select\"\n >\n <option *ngFor=\"let size of pageSizeOptions\" [value]=\"size\">\n {{ size }}\n </option>\n </select>\n </div>\n</div>\n<nav aria-label=\"Pagination\" class=\"page-controls\">\n <ul>\n <li\n class=\"page-item\"\n [ngClass]=\"{ disabled: !hasPrevious }\"\n [attr.aria-disabled]=\"!hasPrevious ? 'true' : null\"\n >\n <a\n class=\"page-link\"\n (click)=\"$event.preventDefault(); handlePreviousClick()\"\n (keydown.enter)=\"$event.preventDefault(); handlePreviousClick()\"\n (keydown.space)=\"$event.preventDefault(); handlePreviousClick()\"\n tabindex=\"0\"\n >\n <bao-icon title=\"Page pr\u00E9c\u00E9dente\" svgIcon=\"icon-chevron-left\"></bao-icon\n ></a>\n </li>\n <li\n class=\"page-item\"\n *ngFor=\"let page of displayedPages\"\n [ngClass]=\"{ active: page === currentPage }\"\n [attr.aria-current]=\"page === currentPage ? 'page' : null\"\n >\n <ng-container *ngIf=\"page > 0; else ellipsis\">\n <span class=\"sr-only\">{{ page }}</span>\n <a\n class=\"page-link\"\n (click)=\"$event.preventDefault(); goTo(page)\"\n (keydown.enter)=\"$event.preventDefault(); goTo(page)\"\n (keydown.space)=\"$event.preventDefault(); goTo(page)\"\n tabindex=\"0\"\n >{{ page }}</a\n >\n </ng-container>\n <ng-template #ellipsis>\n <span class=\"page-link ellipsis\" aria-hidden=\"true\">...</span>\n </ng-template>\n </li>\n\n <li\n class=\"page-item\"\n [ngClass]=\"{ disabled: !hasNext }\"\n [attr.aria-disabled]=\"!hasNext ? 'true' : null\"\n >\n <a\n class=\"page-link\"\n (click)=\"$event.preventDefault(); handleNextClick()\"\n (keydown.enter)=\"$event.preventDefault(); handleNextClick()\"\n (keydown.space)=\"$event.preventDefault(); handleNextClick()\"\n tabindex=\"0\"\n >\n <bao-icon title=\"Page suivante\" svgIcon=\"icon-chevron-right\"></bao-icon\n ></a>\n </li>\n </ul>\n</nav>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.bao-pagination{display:flex;flex-direction:column;justify-content:center}@media (min-width: 768px){.bao-pagination{justify-content:flex-start}}.bao-pagination>.items-diplayed-controls{display:flex;flex-direction:column;justify-content:center;align-self:center}@media (min-width: 768px){.bao-pagination>.items-diplayed-controls{flex-direction:row;justify-content:space-between;align-self:auto;margin-bottom:1rem}}.bao-pagination>.items-diplayed-controls .range-display{font-weight:700;font-size:.875rem;line-height:1.25rem;margin-bottom:1rem}@media (min-width: 768px){.bao-pagination>.items-diplayed-controls .range-display{margin-bottom:0rem}}.bao-pagination>.items-diplayed-controls>.items-per-page{display:flex;align-items:baseline;margin-bottom:2rem}@media (min-width: 768px){.bao-pagination>.items-diplayed-controls>.items-per-page{margin-bottom:0rem}}.bao-pagination>.items-diplayed-controls>.items-per-page>.select-label{font-weight:700;font-size:.875rem;line-height:1.25rem;color:#637381;margin-right:1rem}.bao-pagination>.items-diplayed-controls>.items-per-page>.dropdown-select{background-color:#fff;border-radius:.25rem;border-color:#ced4da;border-style:solid;border-width:thin;padding:.4375rem 2.4375rem .4375rem .4375rem;font-weight:400;font-size:1rem;line-height:1.5rem;color:#212529;appearance:none;background:#fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='%23adb2bd' d='M12 12.586l3.293-3.293a1 1 0 011.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L12 12.586z'/%3e%3c/svg%3e\") right .4375rem center/24px 24px no-repeat}.bao-pagination .page-controls{align-self:center}.bao-pagination .page-controls>ul{display:flex;padding-left:0;margin-bottom:0}.bao-pagination .page-controls>ul>.page-item.disabled>.page-link>.bao-icon{color:#adb2bd}.bao-pagination .page-controls>ul>.page-item>.page-link{border-style:none}.bao-pagination .page-controls>ul>.page-item.active>.page-link{background-color:#eefaf8;border:1px solid #097d6c;border-radius:.25rem}.bao-pagination .page-controls>ul>.page-item>.page-link{font-size:.875rem}.bao-pagination .page-controls>ul>.page-item>.page-link:focus{box-shadow:inset 0 0 0 2px #0079c4}.bao-pagination .page-controls>ul>.page-item>.ellipsis{font-weight:700}.bao-pagination .page-controls>ul>.page-item>.ellipsis:hover{background-color:#fff}\n"] }]
200
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { totalItems: [{
201
+ type: Input
202
+ }], itemsPerPage: [{
203
+ type: Input
204
+ }], currentPage: [{
205
+ type: Input
206
+ }], pageSizeOptions: [{
207
+ type: Input
208
+ }], itemLabel: [{
209
+ type: Input
210
+ }], showItemsPerPageSelector: [{
211
+ type: Input
212
+ }], pageChanged: [{
213
+ type: Output
214
+ }], itemsPerPageChanged: [{
215
+ type: Output
216
+ }] } });
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7OztBQVd2QixNQUFNLE9BQU8sc0JBQXNCO0lBOERqQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXhEMUM7O1dBRUc7UUFFSSxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUNqQzs7V0FFRztRQUVJLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQy9COztXQUVHO1FBRUksb0JBQWUsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3JEOztXQUVHO1FBRUksY0FBUyxHQUFXLE9BQU8sQ0FBQztRQUNuQzs7V0FFRztRQUVJLDZCQUF3QixHQUFZLElBQUksQ0FBQztRQUNoRDs7V0FFRztRQUVJLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoRDs7V0FFRztRQUVJLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFLeEQ7O1dBRUc7UUFDSyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBZTVCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFF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LElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBbE9VLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhaQzFCbkMsbWlGQTZFQTs7NEZEbkRhLHNCQUFzQjtrQkFUbEMsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsZ0JBQWdCO3FCQUN4QjtzRkFPTSxVQUFVO3NCQURoQixLQUFLO2dCQU1DLFlBQVk7c0JBRGxCLEtBQUs7Z0JBTUMsV0FBVztzQkFEakIsS0FBSztnQkFNQyxlQUFlO3NCQURyQixLQUFLO2dCQU1DLFNBQVM7c0JBRGYsS0FBSztnQkFNQyx3QkFBd0I7c0JBRDlCLEtBQUs7Z0JBTUMsV0FBVztzQkFEakIsTUFBTTtnQkFNQSxtQkFBbUI7c0JBRHpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI1IFZpbGxlIGRlIE1vbnRyZWFsLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYW8tcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdiYW8tcGFnaW5hdGlvbidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBCYW9QYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIGFzIHNlbGVjdGVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW1zUGVyUGFnZTogbnVtYmVyID0gMTA7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBwYWdlIG51bWJlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgLyoqXG4gICAqIFRoZSBkaWZmZXJlbnQgcGFnZSBzaXplIG9wdGlvbnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuICAvKipcbiAgICogVGhlIGxhYmVsIGZvciB0aGUgdHlwZSBvZiBpdGVtcyB0aGF0IGFyZSBkaXNwbGF5ZWQgb24gdGhlIHBhZ2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtTGFiZWw6IHN0cmluZyA9ICdpdGVtcyc7XG4gIC8qKlxuICAgKiBJZiBzZWxlY3RvciBmb3IgbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIHNob3VsZCBiZSBkaXNwbGF5ZWQgb3Igbm90XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0l0ZW1zUGVyUGFnZVNlbGVjdG9yOiBib29sZWFuID0gdHJ1ZTtcbiAgLyoqXG4gICAqIEV2ZW50RW1pdHRlciB0aGF0IHRyaWdnZXJzIHdoZW4gdGhlcmUgaXMgYSBwYWdlIGNoYW5nZSBhbmQgZW1pdHMgcGFnZSBudW1iZXIgKGluZGV4IGFkanVzdGVkKVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAvKipcbiAgICogRXZlbnRFbWl0dGVyIHRoYXQgdHJpZ2dlcnMgd2hlbiB0aGUgbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIGlzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGl0ZW1zUGVyUGFnZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgLyoqXG4gICAqIFBhZ2UgbnVtYmVyIGxpc3QgdG8gZGlzcGxheVxuICAgKi9cbiAgcHVibGljIGRpc3BsYXllZFBhZ2VzOiBudW1iZXJbXTtcbiAgLyoqXG4gICAqIE1heCBudW1iZXIgb2YgcGFnZXMgdG8gZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBfbWF4UGFnZXM6IG51bWJlciA9IDU7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcGFnZXMgaW4gdG90YWwuXG4gICAqL1xuICBwcml2YXRlIF90b3RhbFBhZ2VzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBvZiBmaXJzdCBpdGVtIGJlaW5nIGRpc3BsYXllZCBvbiBjdXJyZW50IHBhZ2UuXG4gICAqL1xuICBwcml2YXRlIF9zdGFydEl0ZW06IG51bWJlcjtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIG9mIGxhc3QgaXRlbSBiZWluZyBkaXNwbGF5ZWQgb24gY3VycmVudCBwYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZW5kSXRlbTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuZGlzcGxheWVkUGFnZXMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG90YWxQYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90b3RhbFBhZ2VzO1xuICB9XG5cbiAgcHVibGljIHNldCB0b3RhbFBhZ2VzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl90b3RhbFBhZ2VzID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXJ0SXRlbSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zdGFydEl0ZW07XG4gIH1cblxuICBwdWJsaWMgc2V0IHN0YXJ0SXRlbSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fc3RhcnRJdGVtID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVuZEl0ZW0oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kSXRlbTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZW5kSXRlbSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fZW5kSXRlbSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCByYW5nZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuc3RhcnRJdGVtfSDDoCAke3RoaXMuZW5kSXRlbX0gc3VyICR7dGhpcy50b3RhbEl0ZW1zfSAke3RoaXMuaXRlbUxhYmVsfWA7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyB0aGF0IGluZGljYXRlcyBpZiBhIHByZXZpb3VzIHBhZ2UgZXhpc3RzIGZvciB0aGUgY3VycmVudCBsaXN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IGhhc1ByZXZpb3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlICE9PSAxO1xuICB9XG4gIC8qKlxuICAgKiBGbGFnIHRoYXQgaW5kaWNhdGVzIGlmIGEgbmV4dCBwYWdlIGV4aXN0cyBmb3IgdGhlIGN1cnJlbnQgbGlzdFxuICAgKi9cbiAgcHVibGljIGdldCBoYXNOZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlIDwgdGhpcy50b3RhbFBhZ2VzO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnRJdGVtID0gdGhpcy51cGRhdGVTdGFydEl0ZW0oKTtcbiAgICB0aGlzLmVuZEl0ZW0gPSB0aGlzLnVwZGF0ZUVuZEl0ZW0oKTtcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSB0aGlzLnVwZGF0ZVRvdGFsUGFnZXMoKTtcbiAgICB0aGlzLmRpc3BsYXllZFBhZ2VzID0gdGhpcy5idWlsZFBhZ2VOdW1iZXJzKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBsaXN0IG9mIGRpc3BsYXllZCBwYWdlcyB3aGVuIGN1cnJlbnQgcGFnZSBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnY3VycmVudFBhZ2UnKSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRQYWdlcyA9IHRoaXMuYnVpbGRQYWdlTnVtYmVycygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgndG90YWxJdGVtcycpKSB7XG4gICAgICB0aGlzLnN0YXJ0SXRlbSA9IHRoaXMudXBkYXRlU3RhcnRJdGVtKCk7XG4gICAgICB0aGlzLmVuZEl0ZW0gPSB0aGlzLnVwZGF0ZUVuZEl0ZW0oKTtcbiAgICAgIHRoaXMudG90YWxQYWdlcyA9IHRoaXMudXBkYXRlVG90YWxQYWdlcygpO1xuICAgICAgdGhpcy5kaXNwbGF5ZWRQYWdlcyA9IHRoaXMuYnVpbGRQYWdlTnVtYmVycygpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogTmF2aWdhdGUgdG8gc3BlY2lmaWMgcGFnZVxuICAgKi9cbiAgcHVibGljIGdvVG8ocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgdGhpcy5zdGFydEl0ZW0gPSB0aGlzLnVwZGF0ZVN0YXJ0SXRlbSgpO1xuICAgIHRoaXMuZW5kSXRlbSA9IHRoaXMudXBkYXRlRW5kSXRlbSgpO1xuICAgIHRoaXMuZGlzcGxheWVkUGFnZXMgPSB0aGlzLmJ1aWxkUGFnZU51bWJlcnMoKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQocGFnZSAtIDEpO1xuICB9XG4gIC8qKlxuICAgKiBOYXZpZ2F0ZSB0byBwcmV2aW91cyBwYWdlXG4gICAqL1xuICBwdWJsaWMgaGFuZGxlUHJldmlvdXNDbGljaygpIHtcbiAgICBpZiAodGhpcy5oYXNQcmV2aW91cykge1xuICAgICAgdGhpcy5nb1RvKHRoaXMuY3VycmVudFBhZ2UgLSAxKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIE5hdmlnYXRlIHRvIG5leHQgcGFnZVxuICAgKi9cbiAgcHVibGljIGhhbmRsZU5leHRDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNOZXh0KSB7XG4gICAgICB0aGlzLmdvVG8odGhpcy5jdXJyZW50UGFnZSArIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYWxsIHJlcXVpcmVkIHZhcmlhYmxlcyB3aGVuZXZlciB0aGUgbnVtYmVyIG9mIGl0ZW1zIGRpc3BsYXllZCBwZXIgcGFnZSBpcyBjaGFuZ2VkLlxuICAgKiBAcGFyYW0gdmFsdWUgTmV3IGFtb3VudCBvZiBpdGVtcyBwZXIgcGFnZVxuICAgKi9cbiAgcHVibGljIGhhbmRsZVBhZ2VTaXplQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnN0YXJ0SXRlbSA9IHRoaXMudXBkYXRlU3RhcnRJdGVtKCk7XG4gICAgdGhpcy5lbmRJdGVtID0gdGhpcy51cGRhdGVFbmRJdGVtKCk7XG4gICAgdGhpcy50b3RhbFBhZ2VzID0gdGhpcy51cGRhdGVUb3RhbFBhZ2VzKCk7XG4gICAgdGhpcy5kaXNwbGF5ZWRQYWdlcyA9IHRoaXMuYnVpbGRQYWdlTnVtYmVycygpO1xuICAgIHRoaXMuaXRlbXNQZXJQYWdlQ2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVG90YWxQYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5pdGVtc1BlclBhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGFydEl0ZW0oKTogbnVtYmVyIHtcbiAgICBjb25zdCBzdGFydEl0ZW0gPSBNYXRoLm1pbihcbiAgICAgICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZSArIDEsXG4gICAgICBNYXRoLmZsb29yKHRoaXMudG90YWxJdGVtcyAvIDEwKSAqIDEwXG4gICAgKTtcbiAgICByZXR1cm4gc3RhcnRJdGVtIHx8IDE7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVuZEl0ZW0oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5taW4oXG4gICAgICB0aGlzLnN0YXJ0SXRlbSArIE51bWJlcih0aGlzLml0ZW1zUGVyUGFnZSkgLSAxLFxuICAgICAgdGhpcy50b3RhbEl0ZW1zXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBzZXJpZXMgb2YgcGFnZSBudW1iZXJzIHRvIGRpc3BsYXkuIFRoZSBsaXN0IGFsd2F5cyBzdGFydHMgd2l0aCBwYWdlIDFcbiAgICogYW5kIGVuZHMgd2l0aCBsYXN0IHBhZ2UuXG4gICAqIEFkZHMgbmVnYXRpdmUgbnVtYmVycyBmb3IgZWxsaXBzaXMuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkUGFnZU51bWJlcnMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHBhZ2VzID0gW107XG4gICAgLy8gSWYgdG90YWwgcGFnZXMgYXJlIDUgb3IgbGVzcywgaW5jbHVkZSBhbGwgcGFnZXNcbiAgICBpZiAodGhpcy50b3RhbFBhZ2VzIDw9IHRoaXMuX21heFBhZ2VzKSB7XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB0aGlzLnRvdGFsUGFnZXM7IGkrKykge1xuICAgICAgICBwYWdlcy5wdXNoKGkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYWdlcy5wdXNoKDEpO1xuICAgICAgLy8gRGV0ZXJtaW5lIG1pZGRsZSBwYWdlc1xuICAgICAgbGV0IG1pZGRsZVBhZ2VzID0gW107XG4gICAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA8PSAzKSB7XG4gICAgICAgIG1pZGRsZVBhZ2VzID0gWzIsIDMsIDQsIC0xXTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50UGFnZSA+PSB0aGlzLnRvdGFsUGFnZXMgLSAyKSB7XG4gICAgICAgIG1pZGRsZVBhZ2VzID0gW1xuICAgICAgICAgIC0xLFxuICAgICAgICAgIHRoaXMudG90YWxQYWdlcyAtIDMsXG4gICAgICAgICAgdGhpcy50b3RhbFBhZ2VzIC0gMixcbiAgICAgICAgICB0aGlzLnRvdGFsUGFnZXMgLSAxXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtaWRkbGVQYWdlcyA9IFtcbiAgICAgICAgICAtMSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlIC0gMSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgKyAxLFxuICAgICAgICAgIC0xXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgICBwYWdlcy5wdXNoKC4uLm1pZGRsZVBhZ2VzKTtcbiAgICAgIHBhZ2VzLnB1c2godGhpcy50b3RhbFBhZ2VzKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhZ2VzO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaXRlbXMtZGlwbGF5ZWQtY29udHJvbHNcIj5cbiAgPHNwYW4gY2xhc3M9XCJyYW5nZS1kaXNwbGF5XCI+XG4gICAge3sgcmFuZ2VMYWJlbCB9fVxuICA8L3NwYW4+XG4gIDxkaXYgKm5nSWY9XCJzaG93SXRlbXNQZXJQYWdlU2VsZWN0b3JcIiBjbGFzcz1cIml0ZW1zLXBlci1wYWdlXCI+XG4gICAgPGxhYmVsIGZvcj1cIml0ZW1zLXBlci1wYWdlLXNlbGVjdFwiIGNsYXNzPVwic2VsZWN0LWxhYmVsXCJcbiAgICAgID5JdGVtcyBwYXIgcGFnZVxuICAgIDwvbGFiZWw+XG4gICAgPHNlbGVjdFxuICAgICAgWyhuZ01vZGVsKV09XCJpdGVtc1BlclBhZ2VcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBuYW1lPVwiaXRlbXMtcGVyLXBhZ2VcIlxuICAgICAgaWQ9XCJpdGVtcy1wZXItcGFnZS1zZWxlY3RcIlxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1zZWxlY3RcIlxuICAgID5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHNpemUgb2YgcGFnZVNpemVPcHRpb25zXCIgW3ZhbHVlXT1cInNpemVcIj5cbiAgICAgICAge3sgc2l6ZSB9fVxuICAgICAgPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmF2IGFyaWEtbGFiZWw9XCJQYWdpbmF0aW9uXCIgY2xhc3M9XCJwYWdlLWNvbnRyb2xzXCI+XG4gIDx1bD5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwicGFnZS1pdGVtXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6ICFoYXNQcmV2aW91cyB9XCJcbiAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiIWhhc1ByZXZpb3VzID8gJ3RydWUnIDogbnVsbFwiXG4gICAgPlxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJwYWdlLWxpbmtcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGhhbmRsZVByZXZpb3VzQ2xpY2soKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBoYW5kbGVQcmV2aW91c0NsaWNrKClcIlxuICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgaGFuZGxlUHJldmlvdXNDbGljaygpXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgID5cbiAgICAgICAgPGJhby1pY29uIHRpdGxlPVwiUGFnZSBwcsOpY8OpZGVudGVcIiBzdmdJY29uPVwiaWNvbi1jaGV2cm9uLWxlZnRcIj48L2Jhby1pY29uXG4gICAgICA+PC9hPlxuICAgIDwvbGk+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cInBhZ2UtaXRlbVwiXG4gICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBkaXNwbGF5ZWRQYWdlc1wiXG4gICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogcGFnZSA9PT0gY3VycmVudFBhZ2UgfVwiXG4gICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwicGFnZSA9PT0gY3VycmVudFBhZ2UgPyAncGFnZScgOiBudWxsXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFnZSA+IDA7IGVsc2UgZWxsaXBzaXNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgcGFnZSB9fTwvc3Bhbj5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cInBhZ2UtbGlua1wiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBnb1RvKHBhZ2UpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgZ29UbyhwYWdlKVwiXG4gICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGdvVG8ocGFnZSlcIlxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgPnt7IHBhZ2UgfX08L2FcbiAgICAgICAgPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2VsbGlwc2lzPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2UtbGluayBlbGxpcHNpc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPi4uLjwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cblxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJwYWdlLWl0ZW1cIlxuICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogIWhhc05leHQgfVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIiFoYXNOZXh0ID8gJ3RydWUnIDogbnVsbFwiXG4gICAgPlxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJwYWdlLWxpbmtcIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGhhbmRsZU5leHRDbGljaygpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGhhbmRsZU5leHRDbGljaygpXCJcbiAgICAgICAgKGtleWRvd24uc3BhY2UpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGhhbmRsZU5leHRDbGljaygpXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgID5cbiAgICAgICAgPGJhby1pY29uIHRpdGxlPVwiUGFnZSBzdWl2YW50ZVwiIHN2Z0ljb249XCJpY29uLWNoZXZyb24tcmlnaHRcIj48L2Jhby1pY29uXG4gICAgICA+PC9hPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L25hdj5cbiJdfQ==
@@ -3,28 +3,29 @@
3
3
  * Licensed under the MIT license.
4
4
  * See LICENSE file in the project root for full license information.
5
5
  */
6
- export * from './lib/bao.module';
7
- export * from './lib/button/index';
8
- export * from './lib/icon/index';
9
6
  export * from './lib/alert/index';
7
+ export * from './lib/avatar';
8
+ export * from './lib/badge/index';
9
+ export * from './lib/bao.module';
10
10
  export * from './lib/breadcrumb/index';
11
+ export * from './lib/button/index';
11
12
  export * from './lib/card/index';
12
- export * from './lib/badge/index';
13
- export * from './lib/tag/index';
14
- export * from './lib/header-info/index';
15
- export * from './lib/list/index';
16
13
  export * from './lib/checkbox/index';
17
- export * from './lib/radio/index';
18
14
  export * from './lib/common-components/index';
19
- export * from './lib/summary/index';
20
- export * from './lib/shared';
21
- export * from './lib/avatar';
22
- export * from './lib/tabs';
23
- export * from './lib/modal';
24
- export * from './lib/hyperlink';
25
15
  export * from './lib/dropdown-menu';
26
16
  export * from './lib/file';
17
+ export * from './lib/header-info/index';
18
+ export * from './lib/hyperlink';
19
+ export * from './lib/icon/index';
20
+ export * from './lib/list/index';
21
+ export * from './lib/message-bar';
22
+ export * from './lib/modal';
23
+ export * from './lib/pagination/index';
24
+ export * from './lib/radio/index';
25
+ export * from './lib/shared';
27
26
  export * from './lib/snack-bar';
27
+ export * from './lib/summary/index';
28
28
  export * from './lib/system-header';
29
- export * from './lib/message-bar';
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI1IFZpbGxlIGRlIE1vbnRyZWFsLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhby5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWxlcnQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJlYWRjcnVtYi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JhZGdlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWFkZXItaW5mby9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saXN0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoZWNrYm94L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JhZGlvL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi1jb21wb25lbnRzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1bW1hcnkvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F2YXRhcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2h5cGVybGluayc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi1tZW51JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc25hY2stYmFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N5c3RlbS1oZWFkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzc2FnZS1iYXInO1xuIl19
29
+ export * from './lib/tabs';
30
+ export * from './lib/tag/index';
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWxlcnQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXZhdGFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JhZGdlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhby5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJlYWRjcnVtYi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9idXR0b24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGVja2JveC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24tY29tcG9uZW50cy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi1tZW51JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyLWluZm8vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaHlwZXJsaW5rJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlLWJhcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdpbmF0aW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JhZGlvL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbmFjay1iYXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3VtbWFyeS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zeXN0ZW0taGVhZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFnL2luZGV4JztcbiJdfQ==