@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.
Files changed (99) hide show
  1. package/README.md +25 -0
  2. package/esm2020/lib/alert/alert.component.mjs +164 -0
  3. package/esm2020/lib/alert/index.mjs +8 -0
  4. package/esm2020/lib/alert/module.mjs +41 -0
  5. package/esm2020/lib/badge/badge.component.mjs +27 -0
  6. package/esm2020/lib/badge/index.mjs +8 -0
  7. package/esm2020/lib/badge/module.mjs +24 -0
  8. package/esm2020/lib/bao.module.mjs +87 -0
  9. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +36 -0
  10. package/esm2020/lib/breadcrumb/index.mjs +8 -0
  11. package/esm2020/lib/breadcrumb/module.mjs +25 -0
  12. package/esm2020/lib/button/button.component.mjs +100 -0
  13. package/esm2020/lib/button/index.mjs +8 -0
  14. package/esm2020/lib/button/module.mjs +25 -0
  15. package/esm2020/lib/card/card.component.mjs +94 -0
  16. package/esm2020/lib/card/index.mjs +8 -0
  17. package/esm2020/lib/card/module.mjs +38 -0
  18. package/esm2020/lib/checkbox/checkbox-group.component.mjs +59 -0
  19. package/esm2020/lib/checkbox/checkbox.component.mjs +305 -0
  20. package/esm2020/lib/checkbox/index.mjs +9 -0
  21. package/esm2020/lib/checkbox/module.mjs +35 -0
  22. package/esm2020/lib/common-components/error-text/errorText.component.mjs +16 -0
  23. package/esm2020/lib/common-components/guiding-text/guidingText.component.mjs +16 -0
  24. package/esm2020/lib/common-components/index.mjs +10 -0
  25. package/esm2020/lib/common-components/legend-text/legendText.component.mjs +22 -0
  26. package/esm2020/lib/common-components/module.mjs +32 -0
  27. package/esm2020/lib/core/colors.mjs +42 -0
  28. package/esm2020/lib/header-info/header-info.component.mjs +104 -0
  29. package/esm2020/lib/header-info/index.mjs +8 -0
  30. package/esm2020/lib/header-info/module.mjs +41 -0
  31. package/esm2020/lib/icon/bao-icon-registry.mjs +44 -0
  32. package/esm2020/lib/icon/icon.component.mjs +160 -0
  33. package/esm2020/lib/icon/icons-dictionary.mjs +123 -0
  34. package/esm2020/lib/icon/index.mjs +8 -0
  35. package/esm2020/lib/icon/module.mjs +24 -0
  36. package/esm2020/lib/list/index.mjs +8 -0
  37. package/esm2020/lib/list/list.component.mjs +73 -0
  38. package/esm2020/lib/list/module.mjs +38 -0
  39. package/esm2020/lib/radio/index.mjs +9 -0
  40. package/esm2020/lib/radio/module.mjs +56 -0
  41. package/esm2020/lib/radio/radio-group.component.mjs +250 -0
  42. package/esm2020/lib/radio/radio.component.mjs +292 -0
  43. package/esm2020/lib/tag/index.mjs +8 -0
  44. package/esm2020/lib/tag/module.mjs +24 -0
  45. package/esm2020/lib/tag/tag.component.mjs +75 -0
  46. package/esm2020/public-api.mjs +19 -0
  47. package/esm2020/villedemontreal-angular-ui.mjs +5 -0
  48. package/fesm2015/villedemontreal-angular-ui.mjs +2461 -0
  49. package/fesm2015/villedemontreal-angular-ui.mjs.map +1 -0
  50. package/fesm2020/villedemontreal-angular-ui.mjs +2455 -0
  51. package/fesm2020/villedemontreal-angular-ui.mjs.map +1 -0
  52. package/global.scss +6 -0
  53. package/lib/alert/alert.component.d.ts +77 -0
  54. package/lib/alert/index.d.ts +2 -0
  55. package/lib/alert/module.d.ts +10 -0
  56. package/lib/badge/badge.component.d.ts +6 -0
  57. package/lib/badge/index.d.ts +2 -0
  58. package/lib/badge/module.d.ts +8 -0
  59. package/lib/bao.module.d.ts +17 -0
  60. package/lib/breadcrumb/breadcrumb.component.d.ts +12 -0
  61. package/lib/breadcrumb/index.d.ts +2 -0
  62. package/lib/breadcrumb/module.d.ts +9 -0
  63. package/lib/button/button.component.d.ts +47 -0
  64. package/lib/button/index.d.ts +2 -0
  65. package/lib/button/module.d.ts +9 -0
  66. package/lib/card/card.component.d.ts +44 -0
  67. package/lib/card/index.d.ts +2 -0
  68. package/lib/card/module.d.ts +8 -0
  69. package/lib/checkbox/checkbox-group.component.d.ts +25 -0
  70. package/lib/checkbox/checkbox.component.d.ts +152 -0
  71. package/lib/checkbox/index.d.ts +3 -0
  72. package/lib/checkbox/module.d.ts +11 -0
  73. package/lib/common-components/error-text/errorText.component.d.ts +5 -0
  74. package/lib/common-components/guiding-text/guidingText.component.d.ts +5 -0
  75. package/lib/common-components/index.d.ts +4 -0
  76. package/lib/common-components/legend-text/legendText.component.d.ts +6 -0
  77. package/lib/common-components/module.d.ts +10 -0
  78. package/lib/core/colors.d.ts +12 -0
  79. package/lib/header-info/header-info.component.d.ts +39 -0
  80. package/lib/header-info/index.d.ts +2 -0
  81. package/lib/header-info/module.d.ts +8 -0
  82. package/lib/icon/bao-icon-registry.d.ts +12 -0
  83. package/lib/icon/icon.component.d.ts +43 -0
  84. package/lib/icon/icons-dictionary.d.ts +3 -0
  85. package/lib/icon/index.d.ts +2 -0
  86. package/lib/icon/module.d.ts +8 -0
  87. package/lib/list/index.d.ts +2 -0
  88. package/lib/list/list.component.d.ts +21 -0
  89. package/lib/list/module.d.ts +8 -0
  90. package/lib/radio/index.d.ts +3 -0
  91. package/lib/radio/module.d.ts +13 -0
  92. package/lib/radio/radio-group.component.d.ts +110 -0
  93. package/lib/radio/radio.component.d.ts +112 -0
  94. package/lib/tag/index.d.ts +2 -0
  95. package/lib/tag/module.d.ts +8 -0
  96. package/lib/tag/tag.component.d.ts +25 -0
  97. package/package.json +33 -0
  98. package/public-api.d.ts +13 -0
  99. 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=