@villedemontreal/angular-ui 2.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/README.md +25 -0
- package/esm2020/lib/alert/alert.component.mjs +164 -0
- package/esm2020/lib/alert/index.mjs +8 -0
- package/esm2020/lib/alert/module.mjs +41 -0
- package/esm2020/lib/badge/badge.component.mjs +27 -0
- package/esm2020/lib/badge/index.mjs +8 -0
- package/esm2020/lib/badge/module.mjs +24 -0
- package/esm2020/lib/bao.module.mjs +87 -0
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +36 -0
- package/esm2020/lib/breadcrumb/index.mjs +8 -0
- package/esm2020/lib/breadcrumb/module.mjs +25 -0
- package/esm2020/lib/button/button.component.mjs +100 -0
- package/esm2020/lib/button/index.mjs +8 -0
- package/esm2020/lib/button/module.mjs +25 -0
- package/esm2020/lib/card/card.component.mjs +94 -0
- package/esm2020/lib/card/index.mjs +8 -0
- package/esm2020/lib/card/module.mjs +38 -0
- package/esm2020/lib/checkbox/checkbox-group.component.mjs +59 -0
- package/esm2020/lib/checkbox/checkbox.component.mjs +305 -0
- package/esm2020/lib/checkbox/index.mjs +9 -0
- package/esm2020/lib/checkbox/module.mjs +35 -0
- package/esm2020/lib/common-components/error-text/errorText.component.mjs +16 -0
- package/esm2020/lib/common-components/guiding-text/guidingText.component.mjs +16 -0
- package/esm2020/lib/common-components/index.mjs +10 -0
- package/esm2020/lib/common-components/legend-text/legendText.component.mjs +22 -0
- package/esm2020/lib/common-components/module.mjs +32 -0
- package/esm2020/lib/core/colors.mjs +42 -0
- package/esm2020/lib/header-info/header-info.component.mjs +104 -0
- package/esm2020/lib/header-info/index.mjs +8 -0
- package/esm2020/lib/header-info/module.mjs +41 -0
- package/esm2020/lib/icon/bao-icon-registry.mjs +44 -0
- package/esm2020/lib/icon/icon.component.mjs +160 -0
- package/esm2020/lib/icon/icons-dictionary.mjs +123 -0
- package/esm2020/lib/icon/index.mjs +8 -0
- package/esm2020/lib/icon/module.mjs +24 -0
- package/esm2020/lib/list/index.mjs +8 -0
- package/esm2020/lib/list/list.component.mjs +73 -0
- package/esm2020/lib/list/module.mjs +38 -0
- package/esm2020/lib/radio/index.mjs +9 -0
- package/esm2020/lib/radio/module.mjs +56 -0
- package/esm2020/lib/radio/radio-group.component.mjs +250 -0
- package/esm2020/lib/radio/radio.component.mjs +292 -0
- package/esm2020/lib/tag/index.mjs +8 -0
- package/esm2020/lib/tag/module.mjs +24 -0
- package/esm2020/lib/tag/tag.component.mjs +75 -0
- package/esm2020/public-api.mjs +19 -0
- package/esm2020/villedemontreal-angular-ui.mjs +5 -0
- package/fesm2015/villedemontreal-angular-ui.mjs +2461 -0
- package/fesm2015/villedemontreal-angular-ui.mjs.map +1 -0
- package/fesm2020/villedemontreal-angular-ui.mjs +2455 -0
- package/fesm2020/villedemontreal-angular-ui.mjs.map +1 -0
- package/global.scss +6 -0
- package/lib/alert/alert.component.d.ts +77 -0
- package/lib/alert/index.d.ts +2 -0
- package/lib/alert/module.d.ts +10 -0
- package/lib/badge/badge.component.d.ts +6 -0
- package/lib/badge/index.d.ts +2 -0
- package/lib/badge/module.d.ts +8 -0
- package/lib/bao.module.d.ts +17 -0
- package/lib/breadcrumb/breadcrumb.component.d.ts +12 -0
- package/lib/breadcrumb/index.d.ts +2 -0
- package/lib/breadcrumb/module.d.ts +9 -0
- package/lib/button/button.component.d.ts +47 -0
- package/lib/button/index.d.ts +2 -0
- package/lib/button/module.d.ts +9 -0
- package/lib/card/card.component.d.ts +44 -0
- package/lib/card/index.d.ts +2 -0
- package/lib/card/module.d.ts +8 -0
- package/lib/checkbox/checkbox-group.component.d.ts +25 -0
- package/lib/checkbox/checkbox.component.d.ts +152 -0
- package/lib/checkbox/index.d.ts +3 -0
- package/lib/checkbox/module.d.ts +11 -0
- package/lib/common-components/error-text/errorText.component.d.ts +5 -0
- package/lib/common-components/guiding-text/guidingText.component.d.ts +5 -0
- package/lib/common-components/index.d.ts +4 -0
- package/lib/common-components/legend-text/legendText.component.d.ts +6 -0
- package/lib/common-components/module.d.ts +10 -0
- package/lib/core/colors.d.ts +12 -0
- package/lib/header-info/header-info.component.d.ts +39 -0
- package/lib/header-info/index.d.ts +2 -0
- package/lib/header-info/module.d.ts +8 -0
- package/lib/icon/bao-icon-registry.d.ts +12 -0
- package/lib/icon/icon.component.d.ts +43 -0
- package/lib/icon/icons-dictionary.d.ts +3 -0
- package/lib/icon/index.d.ts +2 -0
- package/lib/icon/module.d.ts +8 -0
- package/lib/list/index.d.ts +2 -0
- package/lib/list/list.component.d.ts +21 -0
- package/lib/list/module.d.ts +8 -0
- package/lib/radio/index.d.ts +3 -0
- package/lib/radio/module.d.ts +13 -0
- package/lib/radio/radio-group.component.d.ts +110 -0
- package/lib/radio/radio.component.d.ts +112 -0
- package/lib/tag/index.d.ts +2 -0
- package/lib/tag/module.d.ts +8 -0
- package/lib/tag/tag.component.d.ts +25 -0
- package/package.json +33 -0
- package/public-api.d.ts +13 -0
- package/villedemontreal-angular-ui.d.ts +5 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022 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
|
+
}
|
|
22
|
+
BaoRadioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaoRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
+
BaoRadioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaoRadioModule, declarations: [BaoRadioButtonComponent,
|
|
24
|
+
BaoRadioDescription,
|
|
25
|
+
BaoRadioButtonGroupComponent], imports: [CommonModule,
|
|
26
|
+
FormsModule,
|
|
27
|
+
ReactiveFormsModule,
|
|
28
|
+
BaoCommonComponentsModule,
|
|
29
|
+
BaoButtonModule,
|
|
30
|
+
ObserversModule], exports: [BaoRadioButtonComponent,
|
|
31
|
+
BaoRadioDescription,
|
|
32
|
+
BaoRadioButtonGroupComponent] });
|
|
33
|
+
BaoRadioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaoRadioModule, imports: [[
|
|
34
|
+
CommonModule,
|
|
35
|
+
FormsModule,
|
|
36
|
+
ReactiveFormsModule,
|
|
37
|
+
BaoCommonComponentsModule,
|
|
38
|
+
BaoButtonModule,
|
|
39
|
+
ObserversModule
|
|
40
|
+
]] });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaoRadioModule, decorators: [{
|
|
42
|
+
type: NgModule,
|
|
43
|
+
args: [{
|
|
44
|
+
imports: [
|
|
45
|
+
CommonModule,
|
|
46
|
+
FormsModule,
|
|
47
|
+
ReactiveFormsModule,
|
|
48
|
+
BaoCommonComponentsModule,
|
|
49
|
+
BaoButtonModule,
|
|
50
|
+
ObserversModule
|
|
51
|
+
],
|
|
52
|
+
declarations: RADIO_DIRECTIVES,
|
|
53
|
+
exports: RADIO_DIRECTIVES
|
|
54
|
+
}]
|
|
55
|
+
}] });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL3JhZGlvL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ3BCLE1BQU0sbUJBQW1CLENBQUM7O0FBRTNCLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQiw0QkFBNEI7Q0FDN0IsQ0FBQztBQWNGLE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBakJ6Qix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLDRCQUE0QixhQUsxQixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQix5QkFBeUI7UUFDekIsZUFBZTtRQUNmLGVBQWUsYUFaakIsdUJBQXVCO1FBQ3ZCLG1CQUFtQjtRQUNuQiw0QkFBNEI7NEdBZWpCLGNBQWMsWUFYaEI7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsZUFBZTtZQUNmLGVBQWU7U0FDaEI7MkZBSVUsY0FBYztrQkFaMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIseUJBQXlCO3dCQUN6QixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCO29CQUNELFlBQVksRUFBRSxnQkFBZ0I7b0JBQzlCLE9BQU8sRUFBRSxnQkFBZ0I7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMiBWaWxsZSBkZSBNb250cmVhbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5pbXBvcnQgeyBPYnNlcnZlcnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYW9CdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xuaW1wb3J0IHsgQmFvQ29tbW9uQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJy4uL2NvbW1vbi1jb21wb25lbnRzL21vZHVsZSc7XG5pbXBvcnQgeyBCYW9SYWRpb0J1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQmFvUmFkaW9CdXR0b25Db21wb25lbnQsXG4gIEJhb1JhZGlvRGVzY3JpcHRpb25cbn0gZnJvbSAnLi9yYWRpby5jb21wb25lbnQnO1xuXG5jb25zdCBSQURJT19ESVJFQ1RJVkVTID0gW1xuICBCYW9SYWRpb0J1dHRvbkNvbXBvbmVudCxcbiAgQmFvUmFkaW9EZXNjcmlwdGlvbixcbiAgQmFvUmFkaW9CdXR0b25Hcm91cENvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEJhb0NvbW1vbkNvbXBvbmVudHNNb2R1bGUsXG4gICAgQmFvQnV0dG9uTW9kdWxlLFxuICAgIE9ic2VydmVyc01vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFJBRElPX0RJUkVDVElWRVMsXG4gIGV4cG9ydHM6IFJBRElPX0RJUkVDVElWRVNcbn0pXG5leHBvcnQgY2xhc3MgQmFvUmFkaW9Nb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022 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
|
+
this._value = null;
|
|
24
|
+
this._name = null;
|
|
25
|
+
this._selected = null;
|
|
26
|
+
this._isInitialized = false;
|
|
27
|
+
this._disabled = false;
|
|
28
|
+
this._required = false;
|
|
29
|
+
this._uniqueId = `bao-checkbox-group-${++radioGroupNextUniqueId}`;
|
|
30
|
+
/**
|
|
31
|
+
* The checkbox group ID. It is set dynamically with an unique ID by default
|
|
32
|
+
*/
|
|
33
|
+
this.id = this._uniqueId;
|
|
34
|
+
/**
|
|
35
|
+
* Emit the value of the selected radio button
|
|
36
|
+
*/
|
|
37
|
+
this.change = new EventEmitter();
|
|
38
|
+
/**
|
|
39
|
+
* The aria-describedby for web accessibilty
|
|
40
|
+
*/
|
|
41
|
+
this.ariaDescribedby = null;
|
|
42
|
+
this.onModelChange = () => undefined;
|
|
43
|
+
this.onTouch = () => undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Define the name property of all radio buttons. Default : null
|
|
47
|
+
*/
|
|
48
|
+
get name() {
|
|
49
|
+
return this._name;
|
|
50
|
+
}
|
|
51
|
+
set name(value) {
|
|
52
|
+
this._name = value;
|
|
53
|
+
this.updateRadioButtonNames();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Define the value of the selected radio button. Default : null
|
|
57
|
+
*/
|
|
58
|
+
get value() {
|
|
59
|
+
return this._value;
|
|
60
|
+
}
|
|
61
|
+
set value(newValue) {
|
|
62
|
+
if (this._value !== newValue) {
|
|
63
|
+
this._value = newValue;
|
|
64
|
+
this.updateSelectedRadioFromValue();
|
|
65
|
+
this.checkSelectedRadioButton();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Define which radio button is selected. Default : null
|
|
70
|
+
*/
|
|
71
|
+
get selected() {
|
|
72
|
+
return this._selected;
|
|
73
|
+
}
|
|
74
|
+
set selected(selected) {
|
|
75
|
+
this._selected = selected;
|
|
76
|
+
this.value = selected ? selected.value : null;
|
|
77
|
+
this.checkSelectedRadioButton();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Whether the radio button groupd is disabled. Default : false
|
|
81
|
+
*/
|
|
82
|
+
get disabled() {
|
|
83
|
+
return this._disabled;
|
|
84
|
+
}
|
|
85
|
+
set disabled(value) {
|
|
86
|
+
this._disabled = coerceBooleanProperty(value);
|
|
87
|
+
this.markRadiosForCheck();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Whether the radio button groupd is required. Default : false
|
|
91
|
+
*/
|
|
92
|
+
get required() {
|
|
93
|
+
return this._required;
|
|
94
|
+
}
|
|
95
|
+
set required(value) {
|
|
96
|
+
this._required = coerceBooleanProperty(value);
|
|
97
|
+
this.markRadiosForCheck();
|
|
98
|
+
}
|
|
99
|
+
ngAfterContentInit() {
|
|
100
|
+
this._isInitialized = true;
|
|
101
|
+
}
|
|
102
|
+
ngAfterViewInit() {
|
|
103
|
+
this.setAriaDescribedByToDescription();
|
|
104
|
+
this.cdr.detectChanges();
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Implement ControlValueAccessor
|
|
108
|
+
*/
|
|
109
|
+
writeValue(value) {
|
|
110
|
+
this.value = value;
|
|
111
|
+
this.cdr.markForCheck();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Implement ControlValueAccessor
|
|
115
|
+
*/
|
|
116
|
+
registerOnChange(fn) {
|
|
117
|
+
this.onModelChange = fn;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Implement ControlValueAccessor
|
|
121
|
+
*/
|
|
122
|
+
registerOnTouched(fn) {
|
|
123
|
+
this.onTouch = fn;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Implement ControlValueAccessor
|
|
127
|
+
*/
|
|
128
|
+
setDisabledState(isDisabled) {
|
|
129
|
+
this.disabled = isDisabled;
|
|
130
|
+
this.cdr.markForCheck();
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* onTouch() called from the button children
|
|
134
|
+
*/
|
|
135
|
+
onGroupTouch() {
|
|
136
|
+
if (this.onTouch) {
|
|
137
|
+
this.onTouch();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Update all radio button name
|
|
142
|
+
*/
|
|
143
|
+
updateRadioButtonNames() {
|
|
144
|
+
if (this._radios) {
|
|
145
|
+
this._radios.forEach((radio) => {
|
|
146
|
+
radio.name = this.name;
|
|
147
|
+
radio.markForCheck();
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Define which radio button is selected.
|
|
153
|
+
*/
|
|
154
|
+
updateSelectedRadioFromValue() {
|
|
155
|
+
const isAlreadySelected = this._selected !== null && this._selected.value === this._value;
|
|
156
|
+
if (this._radios && !isAlreadySelected) {
|
|
157
|
+
this._selected = null;
|
|
158
|
+
this._radios.forEach((radio) => {
|
|
159
|
+
radio.checked = this.value === radio.value;
|
|
160
|
+
if (radio.checked) {
|
|
161
|
+
this._selected = radio;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Update checked property on selected radio button
|
|
168
|
+
*/
|
|
169
|
+
checkSelectedRadioButton() {
|
|
170
|
+
if (this._selected && !this._selected.checked) {
|
|
171
|
+
this._selected.checked = true;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Emit the value of the new selected radio button
|
|
176
|
+
*/
|
|
177
|
+
emitChangeEvent() {
|
|
178
|
+
if (this._isInitialized) {
|
|
179
|
+
this.change.emit(this.value);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Call markForCheck function on all radio buttons since one of the parent inputs could't have change meanwhile. Prevent change detection error.
|
|
184
|
+
*/
|
|
185
|
+
markRadiosForCheck() {
|
|
186
|
+
if (this._radios) {
|
|
187
|
+
this._radios.forEach((radio) => radio.markForCheck());
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
onContentChange() {
|
|
191
|
+
this.setAriaDescribedByToDescription();
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Set the aria-describedby property to bao-guiding-text if available
|
|
195
|
+
*/
|
|
196
|
+
setAriaDescribedByToDescription() {
|
|
197
|
+
const children = Array.from(this.staticContainer.nativeElement.children);
|
|
198
|
+
if (children.length === 0) {
|
|
199
|
+
this.showAriaDescribedBy(false);
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
this.showAriaDescribedBy(true);
|
|
203
|
+
}
|
|
204
|
+
showAriaDescribedBy(value) {
|
|
205
|
+
this.ariaDescribedby = value ? `${this.id}-ariadescribedby` : null;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
BaoRadioButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaoRadioButtonGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
209
|
+
BaoRadioButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", 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: [
|
|
210
|
+
{
|
|
211
|
+
provide: NG_VALUE_ACCESSOR,
|
|
212
|
+
useExisting: forwardRef(() => BaoRadioButtonGroupComponent),
|
|
213
|
+
multi: true
|
|
214
|
+
},
|
|
215
|
+
{ provide: BAO_RADIO_GROUP, useExisting: BaoRadioButtonGroupComponent }
|
|
216
|
+
], queries: [{ propertyName: "_radios", predicate: i0.forwardRef(function () { return BaoRadioButtonComponent; }), descendants: true }], viewQueries: [{ propertyName: "staticContainer", first: true, predicate: ["container"], descendants: true }], 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"], directives: [{ type: i1.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaoRadioButtonGroupComponent, decorators: [{
|
|
218
|
+
type: Component,
|
|
219
|
+
args: [{ selector: 'bao-radio-button-group, [bao-radio-button-group], [baoRadioButtonGroup]', exportAs: 'baoRadioGroup', encapsulation: ViewEncapsulation.None, providers: [
|
|
220
|
+
{
|
|
221
|
+
provide: NG_VALUE_ACCESSOR,
|
|
222
|
+
useExisting: forwardRef(() => BaoRadioButtonGroupComponent),
|
|
223
|
+
multi: true
|
|
224
|
+
},
|
|
225
|
+
{ provide: BAO_RADIO_GROUP, useExisting: BaoRadioButtonGroupComponent }
|
|
226
|
+
], 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"] }]
|
|
227
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _radios: [{
|
|
228
|
+
type: ContentChildren,
|
|
229
|
+
args: [forwardRef(() => BaoRadioButtonComponent), {
|
|
230
|
+
descendants: true
|
|
231
|
+
}]
|
|
232
|
+
}], id: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}], name: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], value: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], selected: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], disabled: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], required: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], change: [{
|
|
245
|
+
type: Output
|
|
246
|
+
}], staticContainer: [{
|
|
247
|
+
type: ViewChild,
|
|
248
|
+
args: ['container', { static: false }]
|
|
249
|
+
}] } });
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL3JhZGlvL3JhZGlvLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUlMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFVBQVUsRUFDVixjQUFjLEVBQ2QsS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxHQUFHLENBQUM7OztBQUU1Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDL0MscUJBQXFCLENBQ3RCLENBQUM7QUFDRjs7R0FFRztBQUNILElBQUksc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0FBa0IvQixNQUFNLE9BQU8sNEJBQTRCO0lBbUd2QyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVGbEMsV0FBTSxHQUFrQixJQUFJLENBQUM7UUFDN0IsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDNUIsY0FBUyxHQUFtQyxJQUFJLENBQUM7UUFDakQsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGNBQVMsR0FBRyxzQkFBc0IsRUFB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MUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztZQUMzRCxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRTtLQUN4RSxxRkFLaUMsdUJBQXVCLCtMQ3ZEM0Qsa2RBa0JBOzJGRGtDYSw0QkFBNEI7a0JBaEJ4QyxTQUFTOytCQUVOLHlFQUF5RSxZQUNqRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNkJBQTZCLENBQUM7NEJBQzNELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLDhCQUE4QixFQUFFO3FCQUN4RTt3R0FRTyxPQUFPO3NCQUhkLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7d0JBQzFELFdBQVcsRUFBRSxJQUFJO3FCQUNsQjtnQkFjZSxFQUFFO3NCQUFqQixLQUFLO2dCQU1GLElBQUk7c0JBRFAsS0FBSztnQkFhRixLQUFLO3NCQURSLEtBQUs7Z0JBZ0JGLFFBQVE7c0JBRFgsS0FBSztnQkFjRixRQUFRO3NCQURYLEtBQUs7Z0JBYUYsUUFBUTtzQkFEWCxLQUFLO2dCQVlvQixNQUFNO3NCQUEvQixNQUFNO2dCQVNDLGVBQWU7c0JBRHRCLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFvUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuJztcblxuLyoqXG4gKiBXZSBoYXZlIHRvIGluamVjdCB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGFuZCBhbGwgaXRzIGNoaWxkcmVuIHRvIGVhY2ggY2hpbGQuXG4gKi9cbmV4cG9ydCBjb25zdCBCQU9fUkFESU9fR1JPVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48QmFvUmFkaW9CdXR0b25Hcm91cENvbXBvbmVudD4oXG4gICdCYW9SYWRpb0J1dHRvbkdyb3VwJ1xuKTtcbi8qKlxuICogVW5pcXVlIElEIGZvciBlYWNoIHJhZGlvIGdyb3VwIGNvdW50ZXJcbiAqL1xubGV0IHJhZGlvR3JvdXBOZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6XG4gICAgJ2Jhby1yYWRpby1idXR0b24tZ3JvdXAsIFtiYW8tcmFkaW8tYnV0dG9uLWdyb3VwXSwgW2Jhb1JhZGlvQnV0dG9uR3JvdXBdJyxcbiAgZXhwb3J0QXM6ICdiYW9SYWRpb0dyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCYW9SYWRpb0J1dHRvbkdyb3VwQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IEJBT19SQURJT19HUk9VUCwgdXNlRXhpc3Rpbmc6IEJhb1JhZGlvQnV0dG9uR3JvdXBDb21wb25lbnQgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJhb1JhZGlvQnV0dG9uR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdFxue1xuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gQmFvUmFkaW9CdXR0b25Db21wb25lbnQpLCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWVcbiAgfSlcbiAgcHJpdmF0ZSBfcmFkaW9zOiBRdWVyeUxpc3Q8QmFvUmFkaW9CdXR0b25Db21wb25lbnQ+O1xuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX25hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zZWxlY3RlZDogQmFvUmFkaW9CdXR0b25Db21wb25lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3VuaXF1ZUlkID0gYGJhby1jaGVja2JveC1ncm91cC0keysrcmFkaW9Hcm91cE5leHRVbmlxdWVJZH1gO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hlY2tib3ggZ3JvdXAgSUQuIEl0IGlzIHNldCBkeW5hbWljYWxseSB3aXRoIGFuIHVuaXF1ZSBJRCBieSBkZWZhdWx0XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZyA9IHRoaXMuX3VuaXF1ZUlkO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIG5hbWUgcHJvcGVydHkgb2YgYWxsIHJhZGlvIGJ1dHRvbnMuIERlZmF1bHQgOiBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgfVxuICBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX25hbWUgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVJhZGlvQnV0dG9uTmFtZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCByYWRpbyBidXR0b24uIERlZmF1bHQgOiBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHNldCB2YWx1ZShuZXdWYWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkUmFkaW9Gcm9tVmFsdWUoKTtcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZFJhZGlvQnV0dG9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB3aGljaCByYWRpbyBidXR0b24gaXMgc2VsZWN0ZWQuIERlZmF1bHQgOiBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICB9XG4gIHNldCBzZWxlY3RlZChzZWxlY3RlZDogQmFvUmFkaW9CdXR0b25Db21wb25lbnQgfCBudWxsKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWQgPyBzZWxlY3RlZC52YWx1ZSA6IG51bGw7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkUmFkaW9CdXR0b24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gZ3JvdXBkIGlzIGRpc2FibGVkLiBEZWZhdWx0IDogZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMubWFya1JhZGlvc0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwZCBpcyByZXF1aXJlZC4gRGVmYXVsdCA6IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLm1hcmtSYWRpb3NGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCByYWRpbyBidXR0b25cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBhcmlhLWRlc2NyaWJlZGJ5IGZvciB3ZWIgYWNjZXNzaWJpbHR5XG4gICAqL1xuICBwdWJsaWMgYXJpYURlc2NyaWJlZGJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJpdmF0ZSBzdGF0aWNDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5faXNJbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0QXJpYURlc2NyaWJlZEJ5VG9EZXNjcmlwdGlvbigpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnQgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnQgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogb25Ub3VjaCgpIGNhbGxlZCBmcm9tIHRoZSBidXR0b24gY2hpbGRyZW5cbiAgICovXG4gIHB1YmxpYyBvbkdyb3VwVG91Y2goKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaCkge1xuICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbGwgcmFkaW8gYnV0dG9uIG5hbWVcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yYWRpb3MpIHtcbiAgICAgIHRoaXMuX3JhZGlvcy5mb3JFYWNoKChyYWRpbzogQmFvUmFkaW9CdXR0b25Db21wb25lbnQpID0+IHtcbiAgICAgICAgcmFkaW8ubmFtZSA9IHRoaXMubmFtZTtcbiAgICAgICAgcmFkaW8ubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHdoaWNoIHJhZGlvIGJ1dHRvbiBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVTZWxlY3RlZFJhZGlvRnJvbVZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzQWxyZWFkeVNlbGVjdGVkID1cbiAgICAgIHRoaXMuX3NlbGVjdGVkICE9PSBudWxsICYmIHRoaXMuX3NlbGVjdGVkLnZhbHVlID09PSB0aGlzLl92YWx1ZTtcbiAgICBpZiAodGhpcy5fcmFkaW9zICYmICFpc0FscmVhZHlTZWxlY3RlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBudWxsO1xuICAgICAgdGhpcy5fcmFkaW9zLmZvckVhY2goKHJhZGlvOiBCYW9SYWRpb0J1dHRvbkNvbXBvbmVudCkgPT4ge1xuICAgICAgICByYWRpby5jaGVja2VkID0gdGhpcy52YWx1ZSA9PT0gcmFkaW8udmFsdWU7XG4gICAgICAgIGlmIChyYWRpby5jaGVja2VkKSB7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSByYWRpbztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjaGVja2VkIHByb3BlcnR5IG9uIHNlbGVjdGVkIHJhZGlvIGJ1dHRvblxuICAgKi9cbiAgcHVibGljIGNoZWNrU2VsZWN0ZWRSYWRpb0J1dHRvbigpIHtcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWQgJiYgIXRoaXMuX3NlbGVjdGVkLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkLmNoZWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0IHRoZSB2YWx1ZSBvZiB0aGUgbmV3IHNlbGVjdGVkIHJhZGlvIGJ1dHRvblxuICAgKi9cbiAgcHVibGljIGVtaXRDaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faXNJbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbCBtYXJrRm9yQ2hlY2sgZnVuY3Rpb24gb24gYWxsIHJhZGlvIGJ1dHRvbnMgc2luY2Ugb25lIG9mIHRoZSBwYXJlbnQgaW5wdXRzIGNvdWxkJ3QgaGF2ZSBjaGFuZ2UgbWVhbndoaWxlLiBQcmV2ZW50IGNoYW5nZSBkZXRlY3Rpb24gZXJyb3IuXG4gICAqL1xuICBwdWJsaWMgbWFya1JhZGlvc0ZvckNoZWNrKCkge1xuICAgIGlmICh0aGlzLl9yYWRpb3MpIHtcbiAgICAgIHRoaXMuX3JhZGlvcy5mb3JFYWNoKChyYWRpbzogQmFvUmFkaW9CdXR0b25Db21wb25lbnQpID0+XG4gICAgICAgIHJhZGlvLm1hcmtGb3JDaGVjaygpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNvbnRlbnRDaGFuZ2UoKSB7XG4gICAgdGhpcy5zZXRBcmlhRGVzY3JpYmVkQnlUb0Rlc2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgb25Nb2RlbENoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgYXJpYS1kZXNjcmliZWRieSBwcm9wZXJ0eSB0byBiYW8tZ3VpZGluZy10ZXh0IGlmIGF2YWlsYWJsZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRBcmlhRGVzY3JpYmVkQnlUb0Rlc2NyaXB0aW9uKCkge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuZnJvbSh0aGlzLnN0YXRpY0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKTtcbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNob3dBcmlhRGVzY3JpYmVkQnkoZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd0FyaWFEZXNjcmliZWRCeSh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FyaWFEZXNjcmliZWRCeSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuYXJpYURlc2NyaWJlZGJ5ID0gdmFsdWUgPyBgJHt0aGlzLmlkfS1hcmlhZGVzY3JpYmVkYnlgIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gYW55ID0gKCkgPT4gdW5kZWZpbmVkO1xufVxuIiwiPGZpZWxkc2V0XG4gIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgY2xhc3M9XCJiYW8tcmFkaW8tYnV0dG9uLWdyb3VwXCJcbiAgW2lkXT1cImlkXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxkaXZcbiAgICBjbGFzcz1cImJhby1yYWRpby1idXR0b24tZ3JvdXAtZGVzY3JpcHRpb25cIlxuICAgIFthdHRyLmlkXT1cImFyaWFEZXNjcmliZWRieVwiXG4gICAgI2NvbnRhaW5lclxuICAgIChjZGtPYnNlcnZlQ29udGVudCk9XCJvbkNvbnRlbnRDaGFuZ2UoKVwiXG4gID5cbiAgICA8bmctY29udGVudFxuICAgICAgc2VsZWN0PVwiYmFvLWVycm9yLCBbYmFvLWVycm9yXSwgYmFvLWd1aWRpbmctdGV4dCwgW2Jhby1ndWlkaW5nLXRleHRdXCJcbiAgICA+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZmllbGRzZXQ+XG4iXX0=
|