@villedemontreal/angular-ui 18.0.0 → 19.0.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.
- package/fesm2022/villedemontreal-angular-ui.mjs +421 -372
- package/fesm2022/villedemontreal-angular-ui.mjs.map +1 -1
- package/lib/dropdown-menu/dropdown-menu.component.d.ts +16 -9
- package/lib/modal/modal-container.d.ts +1 -1
- package/lib/modal/modal.d.ts +1 -1
- package/package.json +5 -7
- package/esm2022/lib/alert/alert.component.mjs +0 -169
- package/esm2022/lib/alert/index.mjs +0 -8
- package/esm2022/lib/alert/module.mjs +0 -41
- package/esm2022/lib/avatar/avatar.component.mjs +0 -102
- package/esm2022/lib/avatar/index.mjs +0 -8
- package/esm2022/lib/avatar/module.mjs +0 -24
- package/esm2022/lib/badge/badge.component.mjs +0 -27
- package/esm2022/lib/badge/index.mjs +0 -8
- package/esm2022/lib/badge/module.mjs +0 -24
- package/esm2022/lib/bao.module.mjs +0 -124
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -36
- package/esm2022/lib/breadcrumb/index.mjs +0 -8
- package/esm2022/lib/breadcrumb/module.mjs +0 -25
- package/esm2022/lib/button/button.component.mjs +0 -100
- package/esm2022/lib/button/index.mjs +0 -8
- package/esm2022/lib/button/module.mjs +0 -25
- package/esm2022/lib/card/card.component.mjs +0 -94
- package/esm2022/lib/card/index.mjs +0 -8
- package/esm2022/lib/card/module.mjs +0 -38
- package/esm2022/lib/checkbox/checkbox-group.component.mjs +0 -58
- package/esm2022/lib/checkbox/checkbox.component.mjs +0 -304
- package/esm2022/lib/checkbox/index.mjs +0 -9
- package/esm2022/lib/checkbox/module.mjs +0 -35
- package/esm2022/lib/common-components/error-text/errorText.component.mjs +0 -16
- package/esm2022/lib/common-components/guiding-text/guidingText.component.mjs +0 -16
- package/esm2022/lib/common-components/index.mjs +0 -11
- package/esm2022/lib/common-components/label-text/labelText.component.mjs +0 -22
- package/esm2022/lib/common-components/module.mjs +0 -38
- package/esm2022/lib/common-components/title-text/titleText.component.mjs +0 -16
- package/esm2022/lib/core/breakpoints.mjs +0 -13
- package/esm2022/lib/core/colors.mjs +0 -25
- package/esm2022/lib/core/index.mjs +0 -8
- package/esm2022/lib/dropdown-menu/dropdown-menu.component.mjs +0 -573
- package/esm2022/lib/dropdown-menu/index.mjs +0 -8
- package/esm2022/lib/dropdown-menu/module.mjs +0 -47
- package/esm2022/lib/file/file-input.component.mjs +0 -320
- package/esm2022/lib/file/file-intl.mjs +0 -65
- package/esm2022/lib/file/file-preview.component.mjs +0 -96
- package/esm2022/lib/file/index.mjs +0 -10
- package/esm2022/lib/file/module.mjs +0 -56
- package/esm2022/lib/header-info/header-info.component.mjs +0 -104
- package/esm2022/lib/header-info/index.mjs +0 -8
- package/esm2022/lib/header-info/module.mjs +0 -41
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -84
- package/esm2022/lib/hyperlink/index.mjs +0 -8
- package/esm2022/lib/hyperlink/module.mjs +0 -24
- package/esm2022/lib/icon/bao-icon-registry.mjs +0 -47
- package/esm2022/lib/icon/icon.component.mjs +0 -158
- package/esm2022/lib/icon/icons-dictionary.mjs +0 -129
- package/esm2022/lib/icon/index.mjs +0 -8
- package/esm2022/lib/icon/module.mjs +0 -24
- package/esm2022/lib/list/index.mjs +0 -8
- package/esm2022/lib/list/list.component.mjs +0 -73
- package/esm2022/lib/list/module.mjs +0 -38
- package/esm2022/lib/message-bar/index.mjs +0 -8
- package/esm2022/lib/message-bar/message-bar.component.mjs +0 -87
- package/esm2022/lib/message-bar/module.mjs +0 -26
- package/esm2022/lib/modal/index.mjs +0 -12
- package/esm2022/lib/modal/modal-config.mjs +0 -73
- package/esm2022/lib/modal/modal-container.mjs +0 -240
- package/esm2022/lib/modal/modal-directives.mjs +0 -84
- package/esm2022/lib/modal/modal-ref.mjs +0 -226
- package/esm2022/lib/modal/modal.mjs +0 -344
- package/esm2022/lib/modal/module.mjs +0 -29
- package/esm2022/lib/pagination/index.mjs +0 -8
- package/esm2022/lib/pagination/module.mjs +0 -25
- package/esm2022/lib/pagination/pagination.component.mjs +0 -217
- package/esm2022/lib/radio/index.mjs +0 -9
- package/esm2022/lib/radio/module.mjs +0 -54
- package/esm2022/lib/radio/radio-group.component.mjs +0 -247
- package/esm2022/lib/radio/radio.component.mjs +0 -291
- package/esm2022/lib/shared/enum/display-mode.mjs +0 -2
- package/esm2022/lib/shared/index.mjs +0 -7
- package/esm2022/lib/snack-bar/index.mjs +0 -12
- package/esm2022/lib/snack-bar/module.mjs +0 -51
- package/esm2022/lib/snack-bar/simple-snack-bar.component.mjs +0 -92
- package/esm2022/lib/snack-bar/snack-bar-animations.mjs +0 -28
- package/esm2022/lib/snack-bar/snack-bar-config.mjs +0 -37
- package/esm2022/lib/snack-bar/snack-bar-container.mjs +0 -277
- package/esm2022/lib/snack-bar/snack-bar-ref.mjs +0 -75
- package/esm2022/lib/snack-bar/snack-bar.mjs +0 -251
- package/esm2022/lib/summary/index.mjs +0 -9
- package/esm2022/lib/summary/list-summary.component.mjs +0 -30
- package/esm2022/lib/summary/module.mjs +0 -37
- package/esm2022/lib/summary/summary.component.mjs +0 -93
- package/esm2022/lib/system-header/index.mjs +0 -8
- package/esm2022/lib/system-header/module.mjs +0 -33
- package/esm2022/lib/system-header/system-header.component.mjs +0 -130
- package/esm2022/lib/tabs/index.mjs +0 -8
- package/esm2022/lib/tabs/module.mjs +0 -35
- package/esm2022/lib/tabs/tabs.component.mjs +0 -295
- package/esm2022/lib/tag/index.mjs +0 -8
- package/esm2022/lib/tag/module.mjs +0 -24
- package/esm2022/lib/tag/tag.component.mjs +0 -75
- package/esm2022/public-api.mjs +0 -31
- package/esm2022/villedemontreal-angular-ui.mjs +0 -5
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 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: "18.2.14", ngImport: i0, type: BaoPaginationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", 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: "18.2.14", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7OztBQVd2QixNQUFNLE9BQU8sc0JBQXNCO0lBOERqQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXhEMUM7O1dBRUc7UUFFSSxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUN6Qjs7V0FFRztRQUVJLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCOztXQUVHO1FBRUksb0JBQWUsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3JEOztXQUVHO1FBRUksY0FBUyxHQUFHLE9BQU8sQ0FBQztRQUMzQjs7V0FFRztRQUVJLDZCQUF3QixHQUFHLElBQUksQ0FBQztRQUN2Qzs7V0FFRztRQUVJLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoRDs7V0FFRztRQUVJLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFLeEQ7O1dBRUc7UUFDSyxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBZXBCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFF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LElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBbE9VLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhaQzFCbkMsbWlGQTZFQTs7NEZEbkRhLHNCQUFzQjtrQkFUbEMsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsZ0JBQWdCO3FCQUN4QjtzRkFPTSxVQUFVO3NCQURoQixLQUFLO2dCQU1DLFlBQVk7c0JBRGxCLEtBQUs7Z0JBTUMsV0FBVztzQkFEakIsS0FBSztnQkFNQyxlQUFlO3NCQURyQixLQUFLO2dCQU1DLFNBQVM7c0JBRGYsS0FBSztnQkFNQyx3QkFBd0I7c0JBRDlCLEtBQUs7Z0JBTUMsV0FBVztzQkFEakIsTUFBTTtnQkFNQSxtQkFBbUI7c0JBRHpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI2IFZpbGxlIGRlIE1vbnRyZWFsLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYW8tcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdiYW8tcGFnaW5hdGlvbidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBCYW9QYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIGFzIHNlbGVjdGVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW1zUGVyUGFnZSA9IDEwO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnQgcGFnZSBudW1iZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY3VycmVudFBhZ2UgPSAxO1xuICAvKipcbiAgICogVGhlIGRpZmZlcmVudCBwYWdlIHNpemUgb3B0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyNSwgNTAsIDEwMF07XG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgZm9yIHRoZSB0eXBlIG9mIGl0ZW1zIHRoYXQgYXJlIGRpc3BsYXllZCBvbiB0aGUgcGFnZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW1MYWJlbCA9ICdpdGVtcyc7XG4gIC8qKlxuICAgKiBJZiBzZWxlY3RvciBmb3IgbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIHNob3VsZCBiZSBkaXNwbGF5ZWQgb3Igbm90XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0l0ZW1zUGVyUGFnZVNlbGVjdG9yID0gdHJ1ZTtcbiAgLyoqXG4gICAqIEV2ZW50RW1pdHRlciB0aGF0IHRyaWdnZXJzIHdoZW4gdGhlcmUgaXMgYSBwYWdlIGNoYW5nZSBhbmQgZW1pdHMgcGFnZSBudW1iZXIgKGluZGV4IGFkanVzdGVkKVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAvKipcbiAgICogRXZlbnRFbWl0dGVyIHRoYXQgdHJpZ2dlcnMgd2hlbiB0aGUgbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIGlzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGl0ZW1zUGVyUGFnZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgLyoqXG4gICAqIFBhZ2UgbnVtYmVyIGxpc3QgdG8gZGlzcGxheVxuICAgKi9cbiAgcHVibGljIGRpc3BsYXllZFBhZ2VzOiBudW1iZXJbXTtcbiAgLyoqXG4gICAqIE1heCBudW1iZXIgb2YgcGFnZXMgdG8gZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBfbWF4UGFnZXMgPSA1O1xuICAvKipcbiAgICogTnVtYmVyIG9mIHBhZ2VzIGluIHRvdGFsLlxuICAgKi9cbiAgcHJpdmF0ZSBfdG90YWxQYWdlczogbnVtYmVyO1xuICAvKipcbiAgICogUG9zaXRpb24gb2YgZmlyc3QgaXRlbSBiZWluZyBkaXNwbGF5ZWQgb24gY3VycmVudCBwYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBfc3RhcnRJdGVtOiBudW1iZXI7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBvZiBsYXN0IGl0ZW0gYmVpbmcgZGlzcGxheWVkIG9uIGN1cnJlbnQgcGFnZS5cbiAgICovXG4gIHByaXZhdGUgX2VuZEl0ZW06IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmRpc3BsYXllZFBhZ2VzID0gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWxQYWdlcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdG90YWxQYWdlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fdG90YWxQYWdlcyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGFydEl0ZW0oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRJdGVtO1xuICB9XG5cbiAgcHVibGljIHNldCBzdGFydEl0ZW0odmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3N0YXJ0SXRlbSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBlbmRJdGVtKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2VuZEl0ZW07XG4gIH1cblxuICBwdWJsaWMgc2V0IGVuZEl0ZW0odmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2VuZEl0ZW0gPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmFuZ2VMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnN0YXJ0SXRlbX0gw6AgJHt0aGlzLmVuZEl0ZW19IHN1ciAke3RoaXMudG90YWxJdGVtc30gJHt0aGlzLml0ZW1MYWJlbH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgdGhhdCBpbmRpY2F0ZXMgaWYgYSBwcmV2aW91cyBwYWdlIGV4aXN0cyBmb3IgdGhlIGN1cnJlbnQgbGlzdFxuICAgKi9cbiAgcHVibGljIGdldCBoYXNQcmV2aW91cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFnZSAhPT0gMTtcbiAgfVxuICAvKipcbiAgICogRmxhZyB0aGF0IGluZGljYXRlcyBpZiBhIG5leHQgcGFnZSBleGlzdHMgZm9yIHRoZSBjdXJyZW50IGxpc3RcbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzTmV4dCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFnZSA8IHRoaXMudG90YWxQYWdlcztcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0SXRlbSA9IHRoaXMudXBkYXRlU3RhcnRJdGVtKCk7XG4gICAgdGhpcy5lbmRJdGVtID0gdGhpcy51cGRhdGVFbmRJdGVtKCk7XG4gICAgdGhpcy50b3RhbFBhZ2VzID0gdGhpcy51cGRhdGVUb3RhbFBhZ2VzKCk7XG4gICAgdGhpcy5kaXNwbGF5ZWRQYWdlcyA9IHRoaXMuYnVpbGRQYWdlTnVtYmVycygpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgbGlzdCBvZiBkaXNwbGF5ZWQgcGFnZXMgd2hlbiBjdXJyZW50IHBhZ2UgaXMgY2hhbmdlZC5cbiAgICovXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ2N1cnJlbnRQYWdlJykpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkUGFnZXMgPSB0aGlzLmJ1aWxkUGFnZU51bWJlcnMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RvdGFsSXRlbXMnKSkge1xuICAgICAgdGhpcy5zdGFydEl0ZW0gPSB0aGlzLnVwZGF0ZVN0YXJ0SXRlbSgpO1xuICAgICAgdGhpcy5lbmRJdGVtID0gdGhpcy51cGRhdGVFbmRJdGVtKCk7XG4gICAgICB0aGlzLnRvdGFsUGFnZXMgPSB0aGlzLnVwZGF0ZVRvdGFsUGFnZXMoKTtcbiAgICAgIHRoaXMuZGlzcGxheWVkUGFnZXMgPSB0aGlzLmJ1aWxkUGFnZU51bWJlcnMoKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIE5hdmlnYXRlIHRvIHNwZWNpZmljIHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnb1RvKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIHRoaXMuc3RhcnRJdGVtID0gdGhpcy51cGRhdGVTdGFydEl0ZW0oKTtcbiAgICB0aGlzLmVuZEl0ZW0gPSB0aGlzLnVwZGF0ZUVuZEl0ZW0oKTtcbiAgICB0aGlzLmRpc3BsYXllZFBhZ2VzID0gdGhpcy5idWlsZFBhZ2VOdW1iZXJzKCk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KHBhZ2UgLSAxKTtcbiAgfVxuICAvKipcbiAgICogTmF2aWdhdGUgdG8gcHJldmlvdXMgcGFnZVxuICAgKi9cbiAgcHVibGljIGhhbmRsZVByZXZpb3VzQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaGFzUHJldmlvdXMpIHtcbiAgICAgIHRoaXMuZ29Ubyh0aGlzLmN1cnJlbnRQYWdlIC0gMSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBOYXZpZ2F0ZSB0byBuZXh0IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBoYW5kbGVOZXh0Q2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzTmV4dCkge1xuICAgICAgdGhpcy5nb1RvKHRoaXMuY3VycmVudFBhZ2UgKyAxKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGFsbCByZXF1aXJlZCB2YXJpYWJsZXMgd2hlbmV2ZXIgdGhlIG51bWJlciBvZiBpdGVtcyBkaXNwbGF5ZWQgcGVyIHBhZ2UgaXMgY2hhbmdlZC5cbiAgICogQHBhcmFtIHZhbHVlIE5ldyBhbW91bnQgb2YgaXRlbXMgcGVyIHBhZ2VcbiAgICovXG4gIHB1YmxpYyBoYW5kbGVQYWdlU2l6ZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5zdGFydEl0ZW0gPSB0aGlzLnVwZGF0ZVN0YXJ0SXRlbSgpO1xuICAgIHRoaXMuZW5kSXRlbSA9IHRoaXMudXBkYXRlRW5kSXRlbSgpO1xuICAgIHRoaXMudG90YWxQYWdlcyA9IHRoaXMudXBkYXRlVG90YWxQYWdlcygpO1xuICAgIHRoaXMuZGlzcGxheWVkUGFnZXMgPSB0aGlzLmJ1aWxkUGFnZU51bWJlcnMoKTtcbiAgICB0aGlzLml0ZW1zUGVyUGFnZUNoYW5nZWQuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRvdGFsUGFnZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcyAvIHRoaXMuaXRlbXNQZXJQYWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhcnRJdGVtKCk6IG51bWJlciB7XG4gICAgY29uc3Qgc3RhcnRJdGVtID0gTWF0aC5taW4oXG4gICAgICAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgKyAxLFxuICAgICAgTWF0aC5mbG9vcih0aGlzLnRvdGFsSXRlbXMgLyAxMCkgKiAxMFxuICAgICk7XG4gICAgcmV0dXJuIHN0YXJ0SXRlbSB8fCAxO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFbmRJdGVtKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWluKFxuICAgICAgdGhpcy5zdGFydEl0ZW0gKyBOdW1iZXIodGhpcy5pdGVtc1BlclBhZ2UpIC0gMSxcbiAgICAgIHRoaXMudG90YWxJdGVtc1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgc2VyaWVzIG9mIHBhZ2UgbnVtYmVycyB0byBkaXNwbGF5LiBUaGUgbGlzdCBhbHdheXMgc3RhcnRzIHdpdGggcGFnZSAxXG4gICAqIGFuZCBlbmRzIHdpdGggbGFzdCBwYWdlLlxuICAgKiBBZGRzIG5lZ2F0aXZlIG51bWJlcnMgZm9yIGVsbGlwc2lzLlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFBhZ2VOdW1iZXJzKCk6IG51bWJlcltdIHtcbiAgICBjb25zdCBwYWdlcyA9IFtdO1xuICAgIC8vIElmIHRvdGFsIHBhZ2VzIGFyZSA1IG9yIGxlc3MsIGluY2x1ZGUgYWxsIHBhZ2VzXG4gICAgaWYgKHRoaXMudG90YWxQYWdlcyA8PSB0aGlzLl9tYXhQYWdlcykge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy50b3RhbFBhZ2VzOyBpKyspIHtcbiAgICAgICAgcGFnZXMucHVzaChpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGFnZXMucHVzaCgxKTtcbiAgICAgIC8vIERldGVybWluZSBtaWRkbGUgcGFnZXNcbiAgICAgIGxldCBtaWRkbGVQYWdlcyA9IFtdO1xuICAgICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPD0gMykge1xuICAgICAgICBtaWRkbGVQYWdlcyA9IFsyLCAzLCA0LCAtMV07XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudFBhZ2UgPj0gdGhpcy50b3RhbFBhZ2VzIC0gMikge1xuICAgICAgICBtaWRkbGVQYWdlcyA9IFtcbiAgICAgICAgICAtMSxcbiAgICAgICAgICB0aGlzLnRvdGFsUGFnZXMgLSAzLFxuICAgICAgICAgIHRoaXMudG90YWxQYWdlcyAtIDIsXG4gICAgICAgICAgdGhpcy50b3RhbFBhZ2VzIC0gMVxuICAgICAgICBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWlkZGxlUGFnZXMgPSBbXG4gICAgICAgICAgLTEsXG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSAtIDEsXG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlICsgMSxcbiAgICAgICAgICAtMVxuICAgICAgICBdO1xuICAgICAgfVxuICAgICAgcGFnZXMucHVzaCguLi5taWRkbGVQYWdlcyk7XG4gICAgICBwYWdlcy5wdXNoKHRoaXMudG90YWxQYWdlcyk7XG4gICAgfVxuICAgIHJldHVybiBwYWdlcztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIml0ZW1zLWRpcGxheWVkLWNvbnRyb2xzXCI+XG4gIDxzcGFuIGNsYXNzPVwicmFuZ2UtZGlzcGxheVwiPlxuICAgIHt7IHJhbmdlTGFiZWwgfX1cbiAgPC9zcGFuPlxuICA8ZGl2ICpuZ0lmPVwic2hvd0l0ZW1zUGVyUGFnZVNlbGVjdG9yXCIgY2xhc3M9XCJpdGVtcy1wZXItcGFnZVwiPlxuICAgIDxsYWJlbCBmb3I9XCJpdGVtcy1wZXItcGFnZS1zZWxlY3RcIiBjbGFzcz1cInNlbGVjdC1sYWJlbFwiXG4gICAgICA+SXRlbXMgcGFyIHBhZ2VcbiAgICA8L2xhYmVsPlxuICAgIDxzZWxlY3RcbiAgICAgIFsobmdNb2RlbCldPVwiaXRlbXNQZXJQYWdlXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVBhZ2VTaXplQ2hhbmdlKCRldmVudClcIlxuICAgICAgbmFtZT1cIml0ZW1zLXBlci1wYWdlXCJcbiAgICAgIGlkPVwiaXRlbXMtcGVyLXBhZ2Utc2VsZWN0XCJcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24tc2VsZWN0XCJcbiAgICA+XG4gICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBzaXplIG9mIHBhZ2VTaXplT3B0aW9uc1wiIFt2YWx1ZV09XCJzaXplXCI+XG4gICAgICAgIHt7IHNpemUgfX1cbiAgICAgIDwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5hdiBhcmlhLWxhYmVsPVwiUGFnaW5hdGlvblwiIGNsYXNzPVwicGFnZS1jb250cm9sc1wiPlxuICA8dWw+XG4gICAgPGxpXG4gICAgICBjbGFzcz1cInBhZ2UtaXRlbVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiAhaGFzUHJldmlvdXMgfVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIiFoYXNQcmV2aW91cyA/ICd0cnVlJyA6IG51bGxcIlxuICAgID5cbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwicGFnZS1saW5rXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBoYW5kbGVQcmV2aW91c0NsaWNrKClcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgaGFuZGxlUHJldmlvdXNDbGljaygpXCJcbiAgICAgICAgKGtleWRvd24uc3BhY2UpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGhhbmRsZVByZXZpb3VzQ2xpY2soKVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICA+XG4gICAgICAgIDxiYW8taWNvbiB0aXRsZT1cIlBhZ2UgcHLDqWPDqWRlbnRlXCIgc3ZnSWNvbj1cImljb24tY2hldnJvbi1sZWZ0XCI+PC9iYW8taWNvblxuICAgICAgPjwvYT5cbiAgICA8L2xpPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJwYWdlLWl0ZW1cIlxuICAgICAgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgZGlzcGxheWVkUGFnZXNcIlxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IHBhZ2UgPT09IGN1cnJlbnRQYWdlIH1cIlxuICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cInBhZ2UgPT09IGN1cnJlbnRQYWdlID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2UgPiAwOyBlbHNlIGVsbGlwc2lzXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7IHBhZ2UgfX08L3NwYW4+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJwYWdlLWxpbmtcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgZ29UbyhwYWdlKVwiXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGdvVG8ocGFnZSlcIlxuICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBnb1RvKHBhZ2UpXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgID57eyBwYWdlIH19PC9hXG4gICAgICAgID5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbGxpcHNpcz5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLWxpbmsgZWxsaXBzaXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4uLi48L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbGk+XG5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwicGFnZS1pdGVtXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6ICFoYXNOZXh0IH1cIlxuICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCIhaGFzTmV4dCA/ICd0cnVlJyA6IG51bGxcIlxuICAgID5cbiAgICAgIDxhXG4gICAgICAgIGNsYXNzPVwicGFnZS1saW5rXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBoYW5kbGVOZXh0Q2xpY2soKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBoYW5kbGVOZXh0Q2xpY2soKVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBoYW5kbGVOZXh0Q2xpY2soKVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICA+XG4gICAgICAgIDxiYW8taWNvbiB0aXRsZT1cIlBhZ2Ugc3VpdmFudGVcIiBzdmdJY29uPVwiaWNvbi1jaGV2cm9uLXJpZ2h0XCI+PC9iYW8taWNvblxuICAgICAgPjwvYT5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uYXY+XG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 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
|
-
export * from './module';
|
|
7
|
-
export * from './radio.component';
|
|
8
|
-
export * from './radio-group.component';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvcmFkaW8vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1ncm91cC5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 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 { ObserversModule } from '@angular/cdk/observers';
|
|
7
|
-
import { CommonModule } from '@angular/common';
|
|
8
|
-
import { NgModule } from '@angular/core';
|
|
9
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
10
|
-
import { BaoButtonModule } from '../button';
|
|
11
|
-
import { BaoCommonComponentsModule } from '../common-components/module';
|
|
12
|
-
import { BaoRadioButtonGroupComponent } from './radio-group.component';
|
|
13
|
-
import { BaoRadioButtonComponent, BaoRadioDescription } from './radio.component';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
const RADIO_DIRECTIVES = [
|
|
16
|
-
BaoRadioButtonComponent,
|
|
17
|
-
BaoRadioDescription,
|
|
18
|
-
BaoRadioButtonGroupComponent
|
|
19
|
-
];
|
|
20
|
-
export class BaoRadioModule {
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
22
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: BaoRadioModule, declarations: [BaoRadioButtonComponent,
|
|
23
|
-
BaoRadioDescription,
|
|
24
|
-
BaoRadioButtonGroupComponent], imports: [CommonModule,
|
|
25
|
-
FormsModule,
|
|
26
|
-
ReactiveFormsModule,
|
|
27
|
-
BaoCommonComponentsModule,
|
|
28
|
-
BaoButtonModule,
|
|
29
|
-
ObserversModule], exports: [BaoRadioButtonComponent,
|
|
30
|
-
BaoRadioDescription,
|
|
31
|
-
BaoRadioButtonGroupComponent] }); }
|
|
32
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoRadioModule, imports: [CommonModule,
|
|
33
|
-
FormsModule,
|
|
34
|
-
ReactiveFormsModule,
|
|
35
|
-
BaoCommonComponentsModule,
|
|
36
|
-
BaoButtonModule,
|
|
37
|
-
ObserversModule] }); }
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoRadioModule, decorators: [{
|
|
40
|
-
type: NgModule,
|
|
41
|
-
args: [{
|
|
42
|
-
imports: [
|
|
43
|
-
CommonModule,
|
|
44
|
-
FormsModule,
|
|
45
|
-
ReactiveFormsModule,
|
|
46
|
-
BaoCommonComponentsModule,
|
|
47
|
-
BaoButtonModule,
|
|
48
|
-
ObserversModule
|
|
49
|
-
],
|
|
50
|
-
declarations: RADIO_DIRECTIVES,
|
|
51
|
-
exports: RADIO_DIRECTIVES
|
|
52
|
-
}]
|
|
53
|
-
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL3JhZGlvL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ3BCLE1BQU0sbUJBQW1CLENBQUM7O0FBRTNCLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQiw0QkFBNEI7Q0FDN0IsQ0FBQztBQWNGLE1BQU0sT0FBTyxjQUFjOytHQUFkLGNBQWM7Z0hBQWQsY0FBYyxpQkFqQnpCLHVCQUF1QjtZQUN2QixtQkFBbUI7WUFDbkIsNEJBQTRCLGFBSzFCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6QixlQUFlO1lBQ2YsZUFBZSxhQVpqQix1QkFBdUI7WUFDdkIsbUJBQW1CO1lBQ25CLDRCQUE0QjtnSEFlakIsY0FBYyxZQVZ2QixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsZUFBZTtZQUNmLGVBQWU7OzRGQUtOLGNBQWM7a0JBWjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZixlQUFlO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUUsZ0JBQWdCO29CQUM5QixPQUFPLEVBQUUsZ0JBQWdCO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuaW1wb3J0IHsgT2JzZXJ2ZXJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL29ic2VydmVycyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFvQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uJztcbmltcG9ydCB7IEJhb0NvbW1vbkNvbXBvbmVudHNNb2R1bGUgfSBmcm9tICcuLi9jb21tb24tY29tcG9uZW50cy9tb2R1bGUnO1xuaW1wb3J0IHsgQmFvUmFkaW9CdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEJhb1JhZGlvQnV0dG9uQ29tcG9uZW50LFxuICBCYW9SYWRpb0Rlc2NyaXB0aW9uXG59IGZyb20gJy4vcmFkaW8uY29tcG9uZW50JztcblxuY29uc3QgUkFESU9fRElSRUNUSVZFUyA9IFtcbiAgQmFvUmFkaW9CdXR0b25Db21wb25lbnQsXG4gIEJhb1JhZGlvRGVzY3JpcHRpb24sXG4gIEJhb1JhZGlvQnV0dG9uR3JvdXBDb21wb25lbnRcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBCYW9Db21tb25Db21wb25lbnRzTW9kdWxlLFxuICAgIEJhb0J1dHRvbk1vZHVsZSxcbiAgICBPYnNlcnZlcnNNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBSQURJT19ESVJFQ1RJVkVTLFxuICBleHBvcnRzOiBSQURJT19ESVJFQ1RJVkVTXG59KVxuZXhwb3J0IGNsYXNzIEJhb1JhZGlvTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 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 { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
7
|
-
import { Component, ContentChildren, EventEmitter, forwardRef, InjectionToken, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
8
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
9
|
-
import { BaoRadioButtonComponent } from '.';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/cdk/observers";
|
|
12
|
-
/**
|
|
13
|
-
* We have to inject the radio button group and all its children to each child.
|
|
14
|
-
*/
|
|
15
|
-
export const BAO_RADIO_GROUP = new InjectionToken('BaoRadioButtonGroup');
|
|
16
|
-
/**
|
|
17
|
-
* Unique ID for each radio group counter
|
|
18
|
-
*/
|
|
19
|
-
let radioGroupNextUniqueId = 0;
|
|
20
|
-
export class BaoRadioButtonGroupComponent {
|
|
21
|
-
constructor(cdr) {
|
|
22
|
-
this.cdr = cdr;
|
|
23
|
-
/**
|
|
24
|
-
* Emit the value of the selected radio button
|
|
25
|
-
*/
|
|
26
|
-
this.change = new EventEmitter();
|
|
27
|
-
/**
|
|
28
|
-
* The aria-describedby for web accessibilty
|
|
29
|
-
*/
|
|
30
|
-
this.ariaDescribedby = null;
|
|
31
|
-
this._value = null;
|
|
32
|
-
this._name = null;
|
|
33
|
-
this._selected = null;
|
|
34
|
-
this._isInitialized = false;
|
|
35
|
-
this._disabled = false;
|
|
36
|
-
this._required = false;
|
|
37
|
-
this._uniqueId = `bao-checkbox-group-${++radioGroupNextUniqueId}`;
|
|
38
|
-
this.onModelChange = () => undefined;
|
|
39
|
-
this.onTouch = () => undefined;
|
|
40
|
-
if (!this.id) {
|
|
41
|
-
this.id = this._uniqueId;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Define the name property of all radio buttons. Default : null
|
|
46
|
-
*/
|
|
47
|
-
get name() {
|
|
48
|
-
return this._name;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Define the value of the selected radio button. Default : null
|
|
52
|
-
*/
|
|
53
|
-
get value() {
|
|
54
|
-
return this._value;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Define which radio button is selected. Default : null
|
|
58
|
-
*/
|
|
59
|
-
get selected() {
|
|
60
|
-
return this._selected;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Whether the radio button groupd is disabled. Default : false
|
|
64
|
-
*/
|
|
65
|
-
get disabled() {
|
|
66
|
-
return this._disabled;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Whether the radio button groupd is required. Default : false
|
|
70
|
-
*/
|
|
71
|
-
get required() {
|
|
72
|
-
return this._required;
|
|
73
|
-
}
|
|
74
|
-
set name(value) {
|
|
75
|
-
this._name = value;
|
|
76
|
-
this.updateRadioButtonNames();
|
|
77
|
-
}
|
|
78
|
-
set value(newValue) {
|
|
79
|
-
if (this._value !== newValue) {
|
|
80
|
-
this._value = newValue;
|
|
81
|
-
this.updateSelectedRadioFromValue();
|
|
82
|
-
this.checkSelectedRadioButton();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
set selected(selected) {
|
|
86
|
-
this._selected = selected;
|
|
87
|
-
this.value = selected ? selected.value : null;
|
|
88
|
-
this.checkSelectedRadioButton();
|
|
89
|
-
}
|
|
90
|
-
set disabled(value) {
|
|
91
|
-
this._disabled = coerceBooleanProperty(value);
|
|
92
|
-
this.markRadiosForCheck();
|
|
93
|
-
}
|
|
94
|
-
set required(value) {
|
|
95
|
-
this._required = coerceBooleanProperty(value);
|
|
96
|
-
this.markRadiosForCheck();
|
|
97
|
-
}
|
|
98
|
-
ngAfterContentInit() {
|
|
99
|
-
this._isInitialized = true;
|
|
100
|
-
}
|
|
101
|
-
ngAfterViewInit() {
|
|
102
|
-
this.setAriaDescribedByToDescription();
|
|
103
|
-
this.cdr.detectChanges();
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Implement ControlValueAccessor
|
|
107
|
-
*/
|
|
108
|
-
writeValue(value) {
|
|
109
|
-
this.value = value;
|
|
110
|
-
this.cdr.markForCheck();
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Implement ControlValueAccessor
|
|
114
|
-
*/
|
|
115
|
-
registerOnChange(fn) {
|
|
116
|
-
this.onModelChange = fn;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Implement ControlValueAccessor
|
|
120
|
-
*/
|
|
121
|
-
registerOnTouched(fn) {
|
|
122
|
-
this.onTouch = fn;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Implement ControlValueAccessor
|
|
126
|
-
*/
|
|
127
|
-
setDisabledState(isDisabled) {
|
|
128
|
-
this.disabled = isDisabled;
|
|
129
|
-
this.cdr.markForCheck();
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* onTouch() called from the button children
|
|
133
|
-
*/
|
|
134
|
-
onGroupTouch() {
|
|
135
|
-
if (this.onTouch) {
|
|
136
|
-
this.onTouch();
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Update all radio button name
|
|
141
|
-
*/
|
|
142
|
-
updateRadioButtonNames() {
|
|
143
|
-
if (this._radios) {
|
|
144
|
-
this._radios.forEach((radio) => {
|
|
145
|
-
radio.name = this.name;
|
|
146
|
-
radio.markForCheck();
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Define which radio button is selected.
|
|
152
|
-
*/
|
|
153
|
-
updateSelectedRadioFromValue() {
|
|
154
|
-
const isAlreadySelected = this._selected !== null && this._selected.value === this._value;
|
|
155
|
-
if (this._radios && !isAlreadySelected) {
|
|
156
|
-
this._selected = null;
|
|
157
|
-
this._radios.forEach((radio) => {
|
|
158
|
-
radio.checked = this.value === radio.value;
|
|
159
|
-
if (radio.checked) {
|
|
160
|
-
this._selected = radio;
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Update checked property on selected radio button
|
|
167
|
-
*/
|
|
168
|
-
checkSelectedRadioButton() {
|
|
169
|
-
if (this._selected && !this._selected.checked) {
|
|
170
|
-
this._selected.checked = true;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Emit the value of the new selected radio button
|
|
175
|
-
*/
|
|
176
|
-
emitChangeEvent() {
|
|
177
|
-
if (this._isInitialized) {
|
|
178
|
-
this.change.emit(this.value);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Call markForCheck function on all radio buttons since one of the parent inputs could't have change meanwhile. Prevent change detection error.
|
|
183
|
-
*/
|
|
184
|
-
markRadiosForCheck() {
|
|
185
|
-
if (this._radios) {
|
|
186
|
-
this._radios.forEach((radio) => radio.markForCheck());
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
onContentChange() {
|
|
190
|
-
this.setAriaDescribedByToDescription();
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Set the aria-describedby property to bao-guiding-text if available
|
|
194
|
-
*/
|
|
195
|
-
setAriaDescribedByToDescription() {
|
|
196
|
-
const children = Array.from(this.staticContainer.nativeElement.children);
|
|
197
|
-
if (children.length === 0) {
|
|
198
|
-
this.showAriaDescribedBy(false);
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
this.showAriaDescribedBy(true);
|
|
202
|
-
}
|
|
203
|
-
showAriaDescribedBy(value) {
|
|
204
|
-
this.ariaDescribedby = value ? `${this.id}-ariadescribedby` : null;
|
|
205
|
-
}
|
|
206
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoRadioButtonGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
207
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BaoRadioButtonGroupComponent, selector: "bao-radio-button-group, [bao-radio-button-group], [baoRadioButtonGroup]", inputs: { id: "id", name: "name", value: "value", selected: "selected", disabled: "disabled", required: "required" }, outputs: { change: "change" }, providers: [
|
|
208
|
-
{
|
|
209
|
-
provide: NG_VALUE_ACCESSOR,
|
|
210
|
-
useExisting: forwardRef(() => BaoRadioButtonGroupComponent),
|
|
211
|
-
multi: true
|
|
212
|
-
},
|
|
213
|
-
{ provide: BAO_RADIO_GROUP, useExisting: BaoRadioButtonGroupComponent }
|
|
214
|
-
], queries: [{ propertyName: "staticContainer", predicate: i0.forwardRef(() => BaoRadioButtonComponent), descendants: true, read: ViewChild('container', { static: false }) }], exportAs: ["baoRadioGroup"], ngImport: i0, template: "<fieldset\n role=\"radiogroup\"\n class=\"bao-radio-button-group\"\n [id]=\"id\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n>\n <ng-content></ng-content>\n <div\n class=\"bao-radio-button-group-description\"\n [attr.id]=\"ariaDescribedby\"\n #container\n (cdkObserveContent)=\"onContentChange()\"\n >\n <ng-content\n select=\"bao-error, [bao-error], bao-guiding-text, [bao-guiding-text]\"\n ></ng-content>\n </div>\n</fieldset>\n", styles: [".bao-radio-button-group .bao-legend{margin-bottom:.5rem}.bao-radio-button-group .bao-error,.bao-radio-button-group .bao-guiding-text{margin-top:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
215
|
-
}
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoRadioButtonGroupComponent, decorators: [{
|
|
217
|
-
type: Component,
|
|
218
|
-
args: [{ selector: 'bao-radio-button-group, [bao-radio-button-group], [baoRadioButtonGroup]', exportAs: 'baoRadioGroup', encapsulation: ViewEncapsulation.None, providers: [
|
|
219
|
-
{
|
|
220
|
-
provide: NG_VALUE_ACCESSOR,
|
|
221
|
-
useExisting: forwardRef(() => BaoRadioButtonGroupComponent),
|
|
222
|
-
multi: true
|
|
223
|
-
},
|
|
224
|
-
{ provide: BAO_RADIO_GROUP, useExisting: BaoRadioButtonGroupComponent }
|
|
225
|
-
], template: "<fieldset\n role=\"radiogroup\"\n class=\"bao-radio-button-group\"\n [id]=\"id\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n>\n <ng-content></ng-content>\n <div\n class=\"bao-radio-button-group-description\"\n [attr.id]=\"ariaDescribedby\"\n #container\n (cdkObserveContent)=\"onContentChange()\"\n >\n <ng-content\n select=\"bao-error, [bao-error], bao-guiding-text, [bao-guiding-text]\"\n ></ng-content>\n </div>\n</fieldset>\n", styles: [".bao-radio-button-group .bao-legend{margin-bottom:.5rem}.bao-radio-button-group .bao-error,.bao-radio-button-group .bao-guiding-text{margin-top:.5rem}\n"] }]
|
|
226
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
227
|
-
type: Input
|
|
228
|
-
}], change: [{
|
|
229
|
-
type: Output
|
|
230
|
-
}], staticContainer: [{
|
|
231
|
-
type: ContentChildren,
|
|
232
|
-
args: [forwardRef(() => BaoRadioButtonComponent), {
|
|
233
|
-
descendants: true,
|
|
234
|
-
read: ViewChild('container', { static: false })
|
|
235
|
-
}]
|
|
236
|
-
}], name: [{
|
|
237
|
-
type: Input
|
|
238
|
-
}], value: [{
|
|
239
|
-
type: Input
|
|
240
|
-
}], selected: [{
|
|
241
|
-
type: Input
|
|
242
|
-
}], disabled: [{
|
|
243
|
-
type: Input
|
|
244
|
-
}], required: [{
|
|
245
|
-
type: Input
|
|
246
|
-
}] } });
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL3JhZGlvL3JhZGlvLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUlMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFVBQVUsRUFDVixjQUFjLEVBQ2QsS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxHQUFHLENBQUM7OztBQUU1Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDL0MscUJBQXFCLENBQ3RCLENBQUM7QUFDRjs7R0FFRztBQUNILElBQUksc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBa0IvQixNQUFNLE9BQU8sNEJBQTRCO0lBbUN2QyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTNCMUM7O1dBRUc7UUFDdUIsV0FBTSxHQUM5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBUTdCOztXQUVHO1FBQ0ksb0JBQWUsR0FBa0IsSUFBSSxDQUFDO1FBR3JDLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBQzdCLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQzVCLGNBQVMsR0FBbUMsSUFBSSxDQUFDO1FBQ2pELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixjQUFTLEdBQUcsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztRQTJMOUQsa0JBQWEsR0FBeUIsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBbUJyRCxZQUFPLEdBQWMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBM00zQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxLQUFvQjtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsUUFBdUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBd0M7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5QyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsRUFBd0I7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCLENBQUMsRUFBTztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxzQkFBc0I7UUFDM0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUE4QixFQUFFLEVBQUU7Z0JBQ3RELEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDdkIsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLDRCQUE0QjtRQUNqQyxNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2xFLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUE4QixFQUFFLEVBQUU7Z0JBQ3RELEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUMzQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSx3QkFBd0I7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxrQkFBa0I7UUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUE4QixFQUFFLEVBQUUsQ0FDdEQsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUNyQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFJRDs7T0FFRztJQUNLLCtCQUErQjtRQUNyQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pFLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRSxDQUFDOytHQTdPVSw0QkFBNEI7bUdBQTVCLDRCQUE0Qix1UEFUNUI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDRCQUE0QixDQUFDO2dCQUMzRCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRTtTQUN4RSw4RUFnQmlDLHVCQUF1Qiw0QkFFakQsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQywwRENwRW5ELGtkQWtCQTs7NEZEa0NhLDRCQUE0QjtrQkFoQnhDLFNBQVM7K0JBRU4seUVBQXlFLFlBQ2pFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzs0QkFDM0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsOEJBQThCLEVBQUU7cUJBQ3hFO3NGQVFlLEVBQUU7c0JBQWpCLEtBQUs7Z0JBS29CLE1BQU07c0JBQS9CLE1BQU07Z0JBT0MsZUFBZTtzQkFKdEIsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRTt3QkFDMUQsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLElBQUksRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO3FCQUNoRDtnQkE0QkcsSUFBSTtzQkFEUCxLQUFLO2dCQVNGLEtBQUs7c0JBRFIsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFvUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuJztcblxuLyoqXG4gKiBXZSBoYXZlIHRvIGluamVjdCB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGFuZCBhbGwgaXRzIGNoaWxkcmVuIHRvIGVhY2ggY2hpbGQuXG4gKi9cbmV4cG9ydCBjb25zdCBCQU9fUkFESU9fR1JPVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48QmFvUmFkaW9CdXR0b25Hcm91cENvbXBvbmVudD4oXG4gICdCYW9SYWRpb0J1dHRvbkdyb3VwJ1xuKTtcbi8qKlxuICogVW5pcXVlIElEIGZvciBlYWNoIHJhZGlvIGdyb3VwIGNvdW50ZXJcbiAqL1xubGV0IHJhZGlvR3JvdXBOZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6XG4gICAgJ2Jhby1yYWRpby1idXR0b24tZ3JvdXAsIFtiYW8tcmFkaW8tYnV0dG9uLWdyb3VwXSwgW2Jhb1JhZGlvQnV0dG9uR3JvdXBdJyxcbiAgZXhwb3J0QXM6ICdiYW9SYWRpb0dyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCYW9SYWRpb0J1dHRvbkdyb3VwQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IEJBT19SQURJT19HUk9VUCwgdXNlRXhpc3Rpbmc6IEJhb1JhZGlvQnV0dG9uR3JvdXBDb21wb25lbnQgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJhb1JhZGlvQnV0dG9uR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdFxue1xuICAvKipcbiAgICogVGhlIGNoZWNrYm94IGdyb3VwIElELiBJdCBpcyBzZXQgZHluYW1pY2FsbHkgd2l0aCBhbiB1bmlxdWUgSUQgYnkgZGVmYXVsdFxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVtaXQgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCByYWRpbyBidXR0b25cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEJhb1JhZGlvQnV0dG9uQ29tcG9uZW50KSwge1xuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICAgIHJlYWQ6IFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIH0pXG4gIHByaXZhdGUgc3RhdGljQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJpYS1kZXNjcmliZWRieSBmb3Igd2ViIGFjY2Vzc2liaWx0eVxuICAgKi9cbiAgcHVibGljIGFyaWFEZXNjcmliZWRieTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfcmFkaW9zOiBRdWVyeUxpc3Q8QmFvUmFkaW9CdXR0b25Db21wb25lbnQ+O1xuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX25hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zZWxlY3RlZDogQmFvUmFkaW9CdXR0b25Db21wb25lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3VuaXF1ZUlkID0gYGJhby1jaGVja2JveC1ncm91cC0keysrcmFkaW9Hcm91cE5leHRVbmlxdWVJZH1gO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIGlmICghdGhpcy5pZCkge1xuICAgICAgdGhpcy5pZCA9IHRoaXMuX3VuaXF1ZUlkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIG5hbWUgcHJvcGVydHkgb2YgYWxsIHJhZGlvIGJ1dHRvbnMuIERlZmF1bHQgOiBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCByYWRpbyBidXR0b24uIERlZmF1bHQgOiBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB3aGljaCByYWRpbyBidXR0b24gaXMgc2VsZWN0ZWQuIERlZmF1bHQgOiBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBncm91cGQgaXMgZGlzYWJsZWQuIERlZmF1bHQgOiBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gZ3JvdXBkIGlzIHJlcXVpcmVkLiBEZWZhdWx0IDogZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cblxuICBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX25hbWUgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVJhZGlvQnV0dG9uTmFtZXMoKTtcbiAgfVxuXG4gIHNldCB2YWx1ZShuZXdWYWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkUmFkaW9Gcm9tVmFsdWUoKTtcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZFJhZGlvQnV0dG9uKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0IHNlbGVjdGVkKHNlbGVjdGVkOiBCYW9SYWRpb0J1dHRvbkNvbXBvbmVudCB8IG51bGwpIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZCA/IHNlbGVjdGVkLnZhbHVlIDogbnVsbDtcbiAgICB0aGlzLmNoZWNrU2VsZWN0ZWRSYWRpb0J1dHRvbigpO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMubWFya1JhZGlvc0ZvckNoZWNrKCk7XG4gIH1cblxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5tYXJrUmFkaW9zRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5faXNJbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0QXJpYURlc2NyaWJlZEJ5VG9EZXNjcmlwdGlvbigpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnQgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnQgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogb25Ub3VjaCgpIGNhbGxlZCBmcm9tIHRoZSBidXR0b24gY2hpbGRyZW5cbiAgICovXG4gIHB1YmxpYyBvbkdyb3VwVG91Y2goKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaCkge1xuICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbGwgcmFkaW8gYnV0dG9uIG5hbWVcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yYWRpb3MpIHtcbiAgICAgIHRoaXMuX3JhZGlvcy5mb3JFYWNoKChyYWRpbzogQmFvUmFkaW9CdXR0b25Db21wb25lbnQpID0+IHtcbiAgICAgICAgcmFkaW8ubmFtZSA9IHRoaXMubmFtZTtcbiAgICAgICAgcmFkaW8ubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHdoaWNoIHJhZGlvIGJ1dHRvbiBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVTZWxlY3RlZFJhZGlvRnJvbVZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzQWxyZWFkeVNlbGVjdGVkID1cbiAgICAgIHRoaXMuX3NlbGVjdGVkICE9PSBudWxsICYmIHRoaXMuX3NlbGVjdGVkLnZhbHVlID09PSB0aGlzLl92YWx1ZTtcbiAgICBpZiAodGhpcy5fcmFkaW9zICYmICFpc0FscmVhZHlTZWxlY3RlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBudWxsO1xuICAgICAgdGhpcy5fcmFkaW9zLmZvckVhY2goKHJhZGlvOiBCYW9SYWRpb0J1dHRvbkNvbXBvbmVudCkgPT4ge1xuICAgICAgICByYWRpby5jaGVja2VkID0gdGhpcy52YWx1ZSA9PT0gcmFkaW8udmFsdWU7XG4gICAgICAgIGlmIChyYWRpby5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSByYWRpbztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjaGVja2VkIHByb3BlcnR5IG9uIHNlbGVjdGVkIHJhZGlvIGJ1dHRvblxuICAgKi9cbiAgcHVibGljIGNoZWNrU2VsZWN0ZWRSYWRpb0J1dHRvbigpIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWQgJiYgIXRoaXMuX3NlbGVjdGVkLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkLmNoZWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0IHRoZSB2YWx1ZSBvZiB0aGUgbmV3IHNlbGVjdGVkIHJhZGlvIGJ1dHRvblxuICAgKi9cbiAgcHVibGljIGVtaXRDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faXNJbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbCBtYXJrRm9yQ2hlY2sgZnVuY3Rpb24gb24gYWxsIHJhZGlvIGJ1dHRvbnMgc2luY2Ugb25lIG9mIHRoZSBwYXJlbnQgaW5wdXRzIGNvdWxkJ3QgaGF2ZSBjaGFuZ2UgbWVhbndoaWxlLiBQcmV2ZW50IGNoYW5nZSBkZXRlY3Rpb24gZXJyb3IuXG4gICAqL1xuICBwdWJsaWMgbWFya1JhZGlvc0ZvckNoZWNrKCkge1xuICAgIGlmICh0aGlzLl9yYWRpb3MpIHtcbiAgICAgIHRoaXMuX3JhZGlvcy5mb3JFYWNoKChyYWRpbzogQmFvUmFkaW9CdXR0b25Db21wb25lbnQpID0+XG4gICAgICAgIHJhZGlvLm1hcmtGb3JDaGVjaygpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNvbnRlbnRDaGFuZ2UoKSB7XG4gICAgdGhpcy5zZXRBcmlhRGVzY3JpYmVkQnlUb0Rlc2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgb25Nb2RlbENoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYXJpYS1kZXNjcmliZWRieSBwcm9wZXJ0eSB0byBiYW8tZ3VpZGluZy10ZXh0IGlmIGF2YWlsYWJsZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRBcmlhRGVzY3JpYmVkQnlUb0Rlc2NyaXB0aW9uKCkge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuZnJvbSh0aGlzLnN0YXRpY0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKTtcbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNob3dBcmlhRGVzY3JpYmVkQnkoZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd0FyaWFEZXNjcmliZWRCeSh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FyaWFEZXNjcmliZWRCeSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuYXJpYURlc2NyaWJlZGJ5ID0gdmFsdWUgPyBgJHt0aGlzLmlkfS1hcmlhZGVzY3JpYmVkYnlgIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gYW55ID0gKCkgPT4gdW5kZWZpbmVkO1xufVxuIiwiPGZpZWxkc2V0XG4gIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgY2xhc3M9XCJiYW8tcmFkaW8tYnV0dG9uLWdyb3VwXCJcbiAgW2lkXT1cImlkXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxkaXZcbiAgICBjbGFzcz1cImJhby1yYWRpby1idXR0b24tZ3JvdXAtZGVzY3JpcHRpb25cIlxuICAgIFthdHRyLmlkXT1cImFyaWFEZXNjcmliZWRieVwiXG4gICAgI2NvbnRhaW5lclxuICAgIChjZGtPYnNlcnZlQ29udGVudCk9XCJvbkNvbnRlbnRDaGFuZ2UoKVwiXG4gID5cbiAgICA8bmctY29udGVudFxuICAgICAgc2VsZWN0PVwiYmFvLWVycm9yLCBbYmFvLWVycm9yXSwgYmFvLWd1aWRpbmctdGV4dCwgW2Jhby1ndWlkaW5nLXRleHRdXCJcbiAgICA+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZmllbGRzZXQ+XG4iXX0=
|