@skyux/forms 11.0.0-alpha.0 → 11.0.0-alpha.10

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 (107) hide show
  1. package/documentation.json +4498 -4939
  2. package/esm2022/index.mjs +14 -11
  3. package/esm2022/lib/modules/character-counter/character-counter-indicator.component.mjs +3 -3
  4. package/esm2022/lib/modules/character-counter/character-counter-screen-reader.pipe.mjs +3 -3
  5. package/esm2022/lib/modules/character-counter/character-counter.directive.mjs +3 -3
  6. package/esm2022/lib/modules/character-counter/character-counter.module.mjs +4 -4
  7. package/esm2022/lib/modules/checkbox/checkbox-group.component.mjs +18 -15
  8. package/esm2022/lib/modules/checkbox/checkbox-label-text-label.component.mjs +4 -4
  9. package/esm2022/lib/modules/checkbox/checkbox-label.component.mjs +3 -3
  10. package/esm2022/lib/modules/checkbox/checkbox.component.mjs +27 -34
  11. package/esm2022/lib/modules/checkbox/checkbox.module.mjs +4 -4
  12. package/esm2022/lib/modules/field-group/field-group.component.mjs +9 -6
  13. package/esm2022/lib/modules/field-group/field-group.module.mjs +4 -4
  14. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-change.mjs +2 -0
  15. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-click.mjs +2 -0
  16. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.mjs +22 -0
  17. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-label.component.mjs +32 -0
  18. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.component.mjs +485 -0
  19. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.module.mjs +24 -0
  20. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.service.mjs +103 -0
  21. package/esm2022/lib/modules/file-attachment/file-attachments.module.mjs +12 -75
  22. package/esm2022/lib/modules/file-attachment/file-drop/file-drop-change.mjs +2 -0
  23. package/esm2022/lib/modules/file-attachment/file-drop/file-drop.component.mjs +336 -0
  24. package/esm2022/lib/modules/file-attachment/file-drop/file-drop.module.mjs +18 -0
  25. package/esm2022/lib/modules/file-attachment/file-drop/file-item.component.mjs +163 -0
  26. package/esm2022/lib/modules/file-attachment/file-drop/file-link.mjs +2 -0
  27. package/esm2022/lib/modules/file-attachment/shared/file-item-error-type.mjs +2 -0
  28. package/esm2022/lib/modules/file-attachment/shared/file-item.mjs +2 -0
  29. package/esm2022/lib/modules/file-attachment/shared/file-item.service.mjs +71 -0
  30. package/esm2022/lib/modules/file-attachment/shared/file-size.pipe.mjs +61 -0
  31. package/esm2022/lib/modules/file-attachment/shared/file-validate-function.mjs +2 -0
  32. package/esm2022/lib/modules/form-error/form-error.component.mjs +3 -3
  33. package/esm2022/lib/modules/form-error/form-error.module.mjs +4 -4
  34. package/esm2022/lib/modules/form-error/form-errors.component.mjs +5 -5
  35. package/esm2022/lib/modules/form-error/form-errors.module.mjs +4 -4
  36. package/esm2022/lib/modules/input-box/input-box-adapter.service.mjs +3 -3
  37. package/esm2022/lib/modules/input-box/input-box-control.directive.mjs +3 -3
  38. package/esm2022/lib/modules/input-box/input-box-hint-text.pipe.mjs +3 -3
  39. package/esm2022/lib/modules/input-box/input-box-host.service.mjs +7 -4
  40. package/esm2022/lib/modules/input-box/input-box.component.mjs +22 -26
  41. package/esm2022/lib/modules/input-box/input-box.module.mjs +4 -4
  42. package/esm2022/lib/modules/radio/radio-group-id.service.mjs +3 -3
  43. package/esm2022/lib/modules/radio/radio-group.component.mjs +41 -48
  44. package/esm2022/lib/modules/radio/radio-label.component.mjs +3 -3
  45. package/esm2022/lib/modules/radio/radio.component.mjs +23 -30
  46. package/esm2022/lib/modules/radio/radio.module.mjs +4 -4
  47. package/esm2022/lib/modules/required-state/required-state.directive.mjs +3 -3
  48. package/esm2022/lib/modules/selection-box/selection-box-adapter.service.mjs +3 -3
  49. package/esm2022/lib/modules/selection-box/selection-box-description.component.mjs +3 -3
  50. package/esm2022/lib/modules/selection-box/selection-box-grid.component.mjs +4 -4
  51. package/esm2022/lib/modules/selection-box/selection-box-header.component.mjs +3 -3
  52. package/esm2022/lib/modules/selection-box/selection-box.component.mjs +3 -3
  53. package/esm2022/lib/modules/selection-box/selection-box.module.mjs +4 -4
  54. package/esm2022/lib/modules/shared/form-field-label-text-required.directive.mjs +37 -0
  55. package/esm2022/lib/modules/shared/form-field-label-text-required.service.mjs +9 -7
  56. package/esm2022/lib/modules/shared/sky-forms-resources.module.mjs +11 -13
  57. package/esm2022/lib/modules/toggle-switch/toggle-switch-label.component.mjs +3 -3
  58. package/esm2022/lib/modules/toggle-switch/toggle-switch.component.mjs +16 -23
  59. package/esm2022/lib/modules/toggle-switch/toggle-switch.module.mjs +4 -4
  60. package/esm2022/testing/checkbox/checkbox-harness.mjs +5 -4
  61. package/fesm2022/skyux-forms-testing.mjs +4 -3
  62. package/fesm2022/skyux-forms-testing.mjs.map +1 -1
  63. package/fesm2022/skyux-forms.mjs +506 -474
  64. package/fesm2022/skyux-forms.mjs.map +1 -1
  65. package/index.d.ts +21 -18
  66. package/lib/modules/checkbox/checkbox-group.component.d.ts +2 -2
  67. package/lib/modules/checkbox/checkbox.component.d.ts +6 -6
  68. package/lib/modules/file-attachment/{types → file-attachment}/file-attachment-change.d.ts +1 -1
  69. package/lib/modules/file-attachment/{types → file-attachment}/file-attachment-click.d.ts +1 -1
  70. package/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.d.ts +11 -0
  71. package/lib/modules/file-attachment/{file-attachment-label.component.d.ts → file-attachment/file-attachment-label.component.d.ts} +7 -5
  72. package/lib/modules/file-attachment/{file-attachment.component.d.ts → file-attachment/file-attachment.component.d.ts} +24 -18
  73. package/lib/modules/file-attachment/file-attachment/file-attachment.module.d.ts +9 -0
  74. package/lib/modules/file-attachment/{file-attachment.service.d.ts → file-attachment/file-attachment.service.d.ts} +2 -2
  75. package/lib/modules/file-attachment/file-attachments.module.d.ts +6 -15
  76. package/lib/modules/file-attachment/{types → file-drop}/file-drop-change.d.ts +1 -1
  77. package/lib/modules/file-attachment/{file-drop.component.d.ts → file-drop/file-drop.component.d.ts} +12 -8
  78. package/lib/modules/file-attachment/file-drop/file-drop.module.d.ts +9 -0
  79. package/lib/modules/file-attachment/{file-item.component.d.ts → file-drop/file-item.component.d.ts} +3 -3
  80. package/lib/modules/file-attachment/{file-size.pipe.d.ts → shared/file-size.pipe.d.ts} +3 -4
  81. package/lib/modules/input-box/input-box-host.service.d.ts +1 -0
  82. package/lib/modules/input-box/input-box.component.d.ts +3 -3
  83. package/lib/modules/radio/radio-group.component.d.ts +11 -10
  84. package/lib/modules/radio/radio.component.d.ts +6 -6
  85. package/lib/modules/shared/form-field-label-text-required.directive.d.ts +14 -0
  86. package/lib/modules/shared/form-field-label-text-required.service.d.ts +2 -1
  87. package/lib/modules/toggle-switch/toggle-switch.component.d.ts +4 -5
  88. package/package.json +14 -14
  89. package/esm2022/lib/modules/file-attachment/file-attachment-label.component.mjs +0 -28
  90. package/esm2022/lib/modules/file-attachment/file-attachment.component.mjs +0 -478
  91. package/esm2022/lib/modules/file-attachment/file-attachment.service.mjs +0 -93
  92. package/esm2022/lib/modules/file-attachment/file-drop.component.mjs +0 -325
  93. package/esm2022/lib/modules/file-attachment/file-item-error-type.mjs +0 -2
  94. package/esm2022/lib/modules/file-attachment/file-item.component.mjs +0 -155
  95. package/esm2022/lib/modules/file-attachment/file-item.mjs +0 -2
  96. package/esm2022/lib/modules/file-attachment/file-item.service.mjs +0 -70
  97. package/esm2022/lib/modules/file-attachment/file-link.mjs +0 -2
  98. package/esm2022/lib/modules/file-attachment/file-size.pipe.mjs +0 -58
  99. package/esm2022/lib/modules/file-attachment/file-validate-function.mjs +0 -2
  100. package/esm2022/lib/modules/file-attachment/types/file-attachment-change.mjs +0 -2
  101. package/esm2022/lib/modules/file-attachment/types/file-attachment-click.mjs +0 -2
  102. package/esm2022/lib/modules/file-attachment/types/file-drop-change.mjs +0 -2
  103. /package/lib/modules/file-attachment/{file-link.d.ts → file-drop/file-link.d.ts} +0 -0
  104. /package/lib/modules/file-attachment/{file-item-error-type.d.ts → shared/file-item-error-type.d.ts} +0 -0
  105. /package/lib/modules/file-attachment/{file-item.d.ts → shared/file-item.d.ts} +0 -0
  106. /package/lib/modules/file-attachment/{file-item.service.d.ts → shared/file-item.service.d.ts} +0 -0
  107. /package/lib/modules/file-attachment/{file-validate-function.d.ts → shared/file-validate-function.d.ts} +0 -0
@@ -1,14 +1,15 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, booleanAttribute, forwardRef, inject, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, booleanAttribute, forwardRef, inject, } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { SkyFormsUtility, SkyIdService, SkyLogService } from '@skyux/core';
3
+ import { SkyIdService, SkyLogService } from '@skyux/core';
4
4
  import { Subject } from 'rxjs';
5
- import { SkyFormFieldLabelTextRequiredService } from '../shared/form-field-label-text-required.service';
5
+ import { SkyFormFieldLabelTextRequiredDirective } from '../shared/form-field-label-text-required.directive';
6
6
  import { SkyRadioGroupIdService } from './radio-group-id.service';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- import * as i2 from "@skyux/help-inline";
10
- import * as i3 from "@skyux/icon";
11
- import * as i4 from "@skyux/core";
8
+ import * as i1 from "../shared/form-field-label-text-required.directive";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@skyux/help-inline";
11
+ import * as i4 from "@skyux/icon";
12
+ import * as i5 from "@skyux/core";
12
13
  /**
13
14
  * Provider Expression that allows sky-radio to register as a ControlValueAccessor.
14
15
  * This allows it to support [(ngModel)].
@@ -48,10 +49,9 @@ export class SkyRadioComponent {
48
49
  * @default false
49
50
  */
50
51
  set disabled(value) {
51
- const coercedValue = SkyFormsUtility.coerceBooleanProperty(value);
52
- if (coercedValue !== this.disabled) {
53
- this.#_disabled = coercedValue;
54
- this.disabledChange.next(coercedValue);
52
+ if (value !== this.disabled) {
53
+ this.#_disabled = value;
54
+ this.disabledChange.next(value);
55
55
  this.#changeDetector.markForCheck();
56
56
  }
57
57
  }
@@ -215,7 +215,6 @@ export class SkyRadioComponent {
215
215
  #defaultId;
216
216
  #radioGroupIdSvc;
217
217
  #logger;
218
- #labelTextRequired;
219
218
  constructor() {
220
219
  /**
221
220
  * Fires when users focus off a radio button.
@@ -247,9 +246,6 @@ export class SkyRadioComponent {
247
246
  this.#defaultId = inject(SkyIdService).generateId();
248
247
  this.#radioGroupIdSvc = inject(SkyRadioGroupIdService, { optional: true });
249
248
  this.#logger = inject(SkyLogService);
250
- this.#labelTextRequired = inject(SkyFormFieldLabelTextRequiredService, {
251
- optional: true,
252
- });
253
249
  // eslint-disable-next-line @typescript-eslint/no-empty-function
254
250
  this.#removeUniqueSelectionListener = () => { };
255
251
  // eslint-disable-next-line @typescript-eslint/no-empty-function
@@ -258,12 +254,6 @@ export class SkyRadioComponent {
258
254
  this.#onTouchedCallback = () => { };
259
255
  this.id = this.#defaultId;
260
256
  }
261
- ngOnInit() {
262
- if (this.#labelTextRequired && !this.labelText) {
263
- this.display = 'none';
264
- }
265
- this.#labelTextRequired?.validateLabelText(this.labelText);
266
- }
267
257
  ngOnDestroy() {
268
258
  this.#radioGroupIdSvc?.unregister(this.#defaultId);
269
259
  this.#removeUniqueSelectionListener();
@@ -317,16 +307,22 @@ export class SkyRadioComponent {
317
307
  #onChangeCallback;
318
308
  // eslint-disable-next-line @typescript-eslint/no-empty-function
319
309
  #onTouchedCallback;
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkyRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.5", type: SkyRadioComponent, selector: "sky-radio", inputs: { checked: "checked", disabled: "disabled", id: "id", label: "label", labelledBy: "labelledBy", name: "name", tabindex: "tabindex", value: "value", helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", icon: "icon", radioType: "radioType", labelText: "labelText", labelHidden: ["labelHidden", "labelHidden", booleanAttribute], hintText: "hintText", helpKey: "helpKey" }, outputs: { change: "change", checkedChange: "checkedChange", disabledChange: "disabledChange" }, host: { properties: { "style.display": "this.display" } }, providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<span class=\"sky-radio-outer-wrapper\">\n <label\n class=\"sky-radio-wrapper sky-switch\"\n [ngClass]=\"{ 'sky-switch-disabled': disabled || radioGroupDisabled }\"\n >\n <input\n class=\"sky-radio-input sky-switch-input\"\n type=\"radio\"\n [attr.aria-label]=\"labelText || label\"\n [attr.aria-labelledby]=\"labelText ? undefined : labelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [checked]=\"checked\"\n [disabled]=\"disabled || radioGroupDisabled\"\n [id]=\"inputId\"\n [name]=\"name\"\n [tabIndex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onInputFocusChange()\"\n (change)=\"onInputChange($event)\"\n />\n <span\n class=\"sky-switch-control\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-rounded-corners': icon,\n 'sky-rounded-circle': !icon,\n 'sky-switch-control-info': icon && radioType === 'info',\n 'sky-switch-control-success': icon && radioType === 'success',\n 'sky-switch-control-warning': icon && radioType === 'warning',\n 'sky-switch-control-danger': icon && radioType === 'danger'\n }\"\n >\n <sky-icon *ngIf=\"icon\" [fixedWidth]=\"true\" [icon]=\"icon\" />\n </span>\n <ng-container *ngIf=\"labelText; else labelElement\">\n <span *ngIf=\"!labelHidden\" class=\"sky-switch-label\">{{ labelText }}</span>\n </ng-container>\n <ng-template #labelElement>\n <ng-content select=\"sky-radio-label\" />\n </ng-template>\n </label>\n <sky-help-inline\n *ngIf=\"(helpPopoverContent || helpKey) && labelText\"\n class=\"sky-radio-help-inline\"\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n</span>\n<div skyId #hintTextEl=\"skyId\">\n <div *ngIf=\"hintText\" class=\"sky-font-deemphasized sky-radio-hint-text\">\n {{ hintText }}\n </div>\n</div>\n", styles: [":host{display:inline-block}.sky-radio-outer-wrapper,.sky-radio-help-inline{display:inline-flex}.sky-switch-label:not(.sky-theme-modern *){margin-right:var(--sky-margin-inline-xs)}:host-context(.sky-theme-modern) .sky-switch-label{margin-right:var(--sky-margin-inline-xs)}.sky-switch-control:not(.sky-switch-control-icon) sky-icon{font-size:70%}.sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{content:\"\";display:inline-block;width:10px;height:10px;background:#000;border-radius:50%}.sky-radio-hint-text{margin:var(--sky-margin-stacked-xs) 0 0 calc(var(--sky-switch-size) + var(--sky-switch-margin))}:host-context(.sky-theme-modern) .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870b8}:host-context(.sky-theme-modern) .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}.sky-theme-modern .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870b8}.sky-theme-modern .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i4.λ2, selector: "[skyId]", exportAs: ["skyId"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
310
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
311
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.2", type: SkyRadioComponent, selector: "sky-radio", inputs: { checked: "checked", disabled: ["disabled", "disabled", booleanAttribute], id: "id", label: "label", labelledBy: "labelledBy", name: "name", tabindex: "tabindex", value: "value", helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", icon: "icon", radioType: "radioType", labelText: "labelText", labelHidden: ["labelHidden", "labelHidden", booleanAttribute], hintText: "hintText", helpKey: "helpKey" }, outputs: { change: "change", checkedChange: "checkedChange", disabledChange: "disabledChange" }, providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR], hostDirectives: [{ directive: i1.SkyFormFieldLabelTextRequiredDirective, inputs: ["labelText", "labelText"] }], ngImport: i0, template: "<span class=\"sky-radio-outer-wrapper\">\n <label\n class=\"sky-radio-wrapper sky-switch\"\n [ngClass]=\"{ 'sky-switch-disabled': disabled || radioGroupDisabled }\"\n >\n <input\n class=\"sky-radio-input sky-switch-input\"\n type=\"radio\"\n [attr.aria-label]=\"labelText || label\"\n [attr.aria-labelledby]=\"labelText ? undefined : labelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [checked]=\"checked\"\n [disabled]=\"disabled || radioGroupDisabled\"\n [id]=\"inputId\"\n [name]=\"name\"\n [tabIndex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onInputFocusChange()\"\n (change)=\"onInputChange($event)\"\n />\n <span\n class=\"sky-switch-control\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-rounded-corners': icon,\n 'sky-rounded-circle': !icon,\n 'sky-switch-control-info': icon && radioType === 'info',\n 'sky-switch-control-success': icon && radioType === 'success',\n 'sky-switch-control-warning': icon && radioType === 'warning',\n 'sky-switch-control-danger': icon && radioType === 'danger'\n }\"\n >\n <sky-icon *ngIf=\"icon\" [fixedWidth]=\"true\" [icon]=\"icon\" />\n </span>\n <ng-container *ngIf=\"labelText; else labelElement\">\n <span *ngIf=\"!labelHidden\" class=\"sky-switch-label\">{{ labelText }}</span>\n </ng-container>\n <ng-template #labelElement>\n <ng-content select=\"sky-radio-label\" />\n </ng-template>\n </label>\n <sky-help-inline\n *ngIf=\"(helpPopoverContent || helpKey) && labelText\"\n class=\"sky-radio-help-inline\"\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n</span>\n<div skyId #hintTextEl=\"skyId\">\n <div *ngIf=\"hintText\" class=\"sky-font-deemphasized sky-radio-hint-text\">\n {{ hintText }}\n </div>\n</div>\n", styles: [":host{display:inline-block}.sky-radio-outer-wrapper,.sky-radio-help-inline{display:inline-flex}.sky-switch-label:not(.sky-theme-modern *){margin-right:var(--sky-margin-inline-xs)}:is(.sky-theme-modern .sky-switch-label){margin-right:var(--sky-margin-inline-xs)}.sky-switch-control:not(.sky-switch-control-icon) sky-icon{font-size:70%}.sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{content:\"\";display:inline-block;width:10px;height:10px;background:#000;border-radius:50%}.sky-radio-hint-text{margin:var(--sky-margin-stacked-xs) 0 0 calc(var(--sky-switch-size) + var(--sky-switch-margin))}:host-context(.sky-theme-modern) .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870b8}:host-context(.sky-theme-modern) .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}.sky-theme-modern .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870b8}.sky-theme-modern .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "component", type: i4.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i5.λ2, selector: "[skyId]", exportAs: ["skyId"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
322
312
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkyRadioComponent, decorators: [{
313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioComponent, decorators: [{
324
314
  type: Component,
325
- args: [{ selector: 'sky-radio', providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"sky-radio-outer-wrapper\">\n <label\n class=\"sky-radio-wrapper sky-switch\"\n [ngClass]=\"{ 'sky-switch-disabled': disabled || radioGroupDisabled }\"\n >\n <input\n class=\"sky-radio-input sky-switch-input\"\n type=\"radio\"\n [attr.aria-label]=\"labelText || label\"\n [attr.aria-labelledby]=\"labelText ? undefined : labelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [checked]=\"checked\"\n [disabled]=\"disabled || radioGroupDisabled\"\n [id]=\"inputId\"\n [name]=\"name\"\n [tabIndex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onInputFocusChange()\"\n (change)=\"onInputChange($event)\"\n />\n <span\n class=\"sky-switch-control\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-rounded-corners': icon,\n 'sky-rounded-circle': !icon,\n 'sky-switch-control-info': icon && radioType === 'info',\n 'sky-switch-control-success': icon && radioType === 'success',\n 'sky-switch-control-warning': icon && radioType === 'warning',\n 'sky-switch-control-danger': icon && radioType === 'danger'\n }\"\n >\n <sky-icon *ngIf=\"icon\" [fixedWidth]=\"true\" [icon]=\"icon\" />\n </span>\n <ng-container *ngIf=\"labelText; else labelElement\">\n <span *ngIf=\"!labelHidden\" class=\"sky-switch-label\">{{ labelText }}</span>\n </ng-container>\n <ng-template #labelElement>\n <ng-content select=\"sky-radio-label\" />\n </ng-template>\n </label>\n <sky-help-inline\n *ngIf=\"(helpPopoverContent || helpKey) && labelText\"\n class=\"sky-radio-help-inline\"\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n</span>\n<div skyId #hintTextEl=\"skyId\">\n <div *ngIf=\"hintText\" class=\"sky-font-deemphasized sky-radio-hint-text\">\n {{ hintText }}\n </div>\n</div>\n", styles: [":host{display:inline-block}.sky-radio-outer-wrapper,.sky-radio-help-inline{display:inline-flex}.sky-switch-label:not(.sky-theme-modern *){margin-right:var(--sky-margin-inline-xs)}:host-context(.sky-theme-modern) .sky-switch-label{margin-right:var(--sky-margin-inline-xs)}.sky-switch-control:not(.sky-switch-control-icon) sky-icon{font-size:70%}.sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{content:\"\";display:inline-block;width:10px;height:10px;background:#000;border-radius:50%}.sky-radio-hint-text{margin:var(--sky-margin-stacked-xs) 0 0 calc(var(--sky-switch-size) + var(--sky-switch-margin))}:host-context(.sky-theme-modern) .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870b8}:host-context(.sky-theme-modern) .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}.sky-theme-modern .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870b8}.sky-theme-modern .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}\n"] }]
315
+ args: [{ selector: 'sky-radio', hostDirectives: [
316
+ {
317
+ directive: SkyFormFieldLabelTextRequiredDirective,
318
+ inputs: ['labelText'],
319
+ },
320
+ ], providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"sky-radio-outer-wrapper\">\n <label\n class=\"sky-radio-wrapper sky-switch\"\n [ngClass]=\"{ 'sky-switch-disabled': disabled || radioGroupDisabled }\"\n >\n <input\n class=\"sky-radio-input sky-switch-input\"\n type=\"radio\"\n [attr.aria-label]=\"labelText || label\"\n [attr.aria-labelledby]=\"labelText ? undefined : labelledBy\"\n [attr.aria-describedby]=\"hintText ? hintTextEl.id : undefined\"\n [checked]=\"checked\"\n [disabled]=\"disabled || radioGroupDisabled\"\n [id]=\"inputId\"\n [name]=\"name\"\n [tabIndex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onInputFocusChange()\"\n (change)=\"onInputChange($event)\"\n />\n <span\n class=\"sky-switch-control\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-rounded-corners': icon,\n 'sky-rounded-circle': !icon,\n 'sky-switch-control-info': icon && radioType === 'info',\n 'sky-switch-control-success': icon && radioType === 'success',\n 'sky-switch-control-warning': icon && radioType === 'warning',\n 'sky-switch-control-danger': icon && radioType === 'danger'\n }\"\n >\n <sky-icon *ngIf=\"icon\" [fixedWidth]=\"true\" [icon]=\"icon\" />\n </span>\n <ng-container *ngIf=\"labelText; else labelElement\">\n <span *ngIf=\"!labelHidden\" class=\"sky-switch-label\">{{ labelText }}</span>\n </ng-container>\n <ng-template #labelElement>\n <ng-content select=\"sky-radio-label\" />\n </ng-template>\n </label>\n <sky-help-inline\n *ngIf=\"(helpPopoverContent || helpKey) && labelText\"\n class=\"sky-radio-help-inline\"\n [helpKey]=\"helpKey\"\n [labelText]=\"labelText\"\n [popoverTitle]=\"helpPopoverTitle\"\n [popoverContent]=\"helpPopoverContent\"\n />\n</span>\n<div skyId #hintTextEl=\"skyId\">\n <div *ngIf=\"hintText\" class=\"sky-font-deemphasized sky-radio-hint-text\">\n {{ hintText }}\n </div>\n</div>\n", styles: [":host{display:inline-block}.sky-radio-outer-wrapper,.sky-radio-help-inline{display:inline-flex}.sky-switch-label:not(.sky-theme-modern *){margin-right:var(--sky-margin-inline-xs)}:is(.sky-theme-modern .sky-switch-label){margin-right:var(--sky-margin-inline-xs)}.sky-switch-control:not(.sky-switch-control-icon) sky-icon{font-size:70%}.sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{content:\"\";display:inline-block;width:10px;height:10px;background:#000;border-radius:50%}.sky-radio-hint-text{margin:var(--sky-margin-stacked-xs) 0 0 calc(var(--sky-switch-size) + var(--sky-switch-margin))}:host-context(.sky-theme-modern) .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870b8}:host-context(.sky-theme-modern) .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}.sky-theme-modern .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870b8}.sky-theme-modern .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}\n"] }]
326
321
  }], ctorParameters: () => [], propDecorators: { checked: [{
327
322
  type: Input
328
323
  }], disabled: [{
329
- type: Input
324
+ type: Input,
325
+ args: [{ transform: booleanAttribute }]
330
326
  }], id: [{
331
327
  type: Input
332
328
  }], label: [{
@@ -362,8 +358,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImpor
362
358
  type: Output
363
359
  }], disabledChange: [{
364
360
  type: Output
365
- }], display: [{
366
- type: HostBinding,
367
- args: ['style.display']
368
361
  }] } });
369
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBR04sZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRXhHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFJbEU7OztHQUdHO0FBQ0gsTUFBTSxnQ0FBZ0MsR0FBYTtJQUNqRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUY7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyxpQkFBaUI7SUFRNUI7OztPQUdHO0lBQ0gsSUFDVyxPQUFPLENBQUMsS0FBMEI7UUFDM0MsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFD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SUFBSTtzQkFEVixLQUFLO2dCQWFLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBa0JDLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVEvQixRQUFRO3NCQURkLEtBQUs7Z0JBU0MsT0FBTztzQkFEYixLQUFLO2dCQVFDLE1BQU07c0JBRlosTUFBTTtnQkFRQSxhQUFhO3NCQURuQixNQUFNO2dCQU9BLGNBQWM7c0JBRHBCLE1BQU07Z0JBSUEsT0FBTztzQkFEYixXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFByb3ZpZGVyLFxuICBUZW1wbGF0ZVJlZixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUZvcm1zVXRpbGl0eSwgU2t5SWRTZXJ2aWNlLCBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9mb3JtLWZpZWxkLWxhYmVsLXRleHQtcmVxdWlyZWQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreVJhZGlvR3JvdXBJZFNlcnZpY2UgfSBmcm9tICcuL3JhZGlvLWdyb3VwLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmFkaW9DaGFuZ2UgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lSYWRpb1R5cGUgfSBmcm9tICcuL3R5cGVzL3JhZGlvLXR5cGUnO1xuXG4vKipcbiAqIFByb3ZpZGVyIEV4cHJlc3Npb24gdGhhdCBhbGxvd3Mgc2t5LXJhZGlvIHRvIHJlZ2lzdGVyIGFzIGEgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gKiBUaGlzIGFsbG93cyBpdCB0byBzdXBwb3J0IFsobmdNb2RlbCldLlxuICovXG5jb25zdCBTS1lfUkFESU9fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lSYWRpb0NvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuLyoqXG4gKiBSZW5kZXJzIGEgU0tZIFVYLXRoZW1lZCByZXBsYWNlbWVudCBmb3IgYW4gSFRNTCBgaW5wdXRgIGVsZW1lbnRcbiAqIHdpdGggYHR5cGU9XCJyYWRpb1wiYC4gV2hlbiB1c2VycyBzZWxlY3QgYSByYWRpbyBidXR0b24sIGl0cyB2YWx1ZSBpcyBkcml2ZW4gdGhyb3VnaCBhblxuICogYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIHRoZSBgc2t5LXJhZGlvYCBlbGVtZW50IG9yIHRoZSBwYXJlbnQgYHNreS1yYWRpby1ncm91cGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU0tZX1JBRElPX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UmFkaW9Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgZm9jdXMgb2ZmIGEgcmFkaW8gYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGJsdXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgc2VsZWN0ZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBuZXdDaGVja2VkU3RhdGUgPSAhIXZhbHVlO1xuXG4gICAgaWYgKHRoaXMuI19jaGVja2VkICE9PSBuZXdDaGVja2VkU3RhdGUpIHtcbiAgICAgIHRoaXMuI19jaGVja2VkID0gbmV3Q2hlY2tlZFN0YXRlO1xuICAgICAgdGhpcy5jaGVja2VkQ2hhbmdlLm5leHQobmV3Q2hlY2tlZFN0YXRlKTtcblxuICAgICAgaWYgKG5ld0NoZWNrZWRTdGF0ZSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfY2hlY2tlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGlucHV0IG9uIHRlbXBsYXRlLWRyaXZlbiBmb3Jtcy4gRG9uJ3QgdXNlIHRoaXMgaW5wdXQgb24gcmVhY3RpdmUgZm9ybXMgYmVjYXVzZSB0aGV5IG1heSBvdmVyd3JpdGUgdGhlIGlucHV0IG9yIGxlYXZlIHRoZSBjb250cm9sIG91dCBvZiBzeW5jLlxuICAgKiBUbyBzZXQgdGhlIGRpc2FibGVkIHN0YXRlIG9uIHJlYWN0aXZlIGZvcm1zLCB1c2UgdGhlIGBGb3JtQ29udHJvbGAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBTa3lGb3Jtc1V0aWxpdHkuY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAoY29lcmNlZFZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLiNfZGlzYWJsZWQgPSBjb2VyY2VkVmFsdWU7XG4gICAgICB0aGlzLmRpc2FibGVkQ2hhbmdlLm5leHQoY29lcmNlZFZhbHVlKTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgSUQgZm9yIHRoZSByYWRpbyBidXR0b24uXG4gICAqIElmIGEgdmFsdWUgaXMgbm90IHByb3ZpZGVkLCBhbiBhdXRvZ2VuZXJhdGVkIElEIGlzIHVzZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXRJZCA9IGBza3ktcmFkaW8tJHt2YWx1ZX0taW5wdXRgO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlucHV0SWQgPSBgc2t5LXJhZGlvLSR7dGhpcy4jZGVmYXVsdElkfS1pbnB1dGA7XG4gICAgfVxuICAgIHRoaXMuI3JhZGlvR3JvdXBJZFN2Yz8ucmVnaXN0ZXIodGhpcy4jZGVmYXVsdElkLCB0aGlzLmlucHV0SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUklBIGxhYmVsIGZvciB0aGUgcmFkaW8gYnV0dG9uLiBUaGlzIHNldHMgdGhlIHJhZGlvIGJ1dHRvbidzIGBhcmlhLWxhYmVsYFxuICAgKiBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3Igc2NyZWVuIHJlYWRlcnMgW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KVxuICAgKiB3aGVuIHRoZSByYWRpbyBidXR0b24gZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwuIFlvdSBtdXN0IHNldCB0aGlzIHByb3BlcnR5IGZvciBpY29uXG4gICAqIHJhZGlvIGJ1dHRvbnMuIElmIHRoZSByYWRpbyBidXR0b24gaW5jbHVkZXMgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWwpLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGxhYmVsVGV4dGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGFiZWwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19sYWJlbCA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNsb2dnZXIuZGVwcmVjYXRlZCgnU2t5UmFkaW9Db21wb25lbnQubGFiZWwnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiAxMCxcbiAgICAgICAgcmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbjogJ1VzZSB0aGUgYGxhYmVsVGV4dGAgaW5wdXQgaW5zdGVhZC4nLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBsYWJlbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEhUTUwgZWxlbWVudCBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IGxhYmVsc1xuICAgKiB0aGUgcmFkaW8gYnV0dG9uLiBUaGlzIHNldHMgdGhlIHJhZGlvIGJ1dHRvbidzIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVyc1xuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgcmFkaW8gYnV0dG9uIGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsYCBpbnN0ZWFkLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWxsZWRieSkuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgbGFiZWxUZXh0YCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsYWJlbGxlZEJ5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbGFiZWxsZWRCeSA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNsb2dnZXIuZGVwcmVjYXRlZCgnU2t5UmFkaW9Db21wb25lbnQubGFiZWxsZWRCeScsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDEwLFxuICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOiAnVXNlIHRoZSBgbGFiZWxUZXh0YCBpbnB1dCBpbnN0ZWFkLicsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxhYmVsbGVkQnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2xhYmVsbGVkQnk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHRoZSBgbmFtZWAgcHJvcGVydHkgb24gdGhlIGBza3ktcmFkaW8tZ3JvdXAgZWxlbWVudGAuXG4gICAqIFdlIHJlY29tbWVuZCB1c2luZyB0aGUgYHNreS1yYWRpby1ncm91cGAgZWxlbWVudCB3aXRoIGFsbCByYWRpbyBidXR0b25zLCBidXQgaWYgeW91IG9wdCBub3QgdG8sXG4gICAqIHRoZW4gdGhpcyBwcm9wZXJ0eSBzcGVjaWZpZXMgYSBuYW1lIGZvciBhIGdyb3VwIG9mIHJhZGlvIGJ1dHRvbnMuXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG5hbWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19uYW1lID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX25hbWU7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mXG4gICAqIHRoZSBgdGFiSW5kZXhgIHByb3BlcnR5IG9uIHRoZSBgc2t5LXJhZGlvLWdyb3VwYCBlbGVtZW50LiBJdCBzcGVjaWZpZXMgYW4gaW5kZXggZm9yIHRoZSByYWRpb1xuICAgKiBidXR0b24uIElmIHRoZSBpbmRleCBpcyBub3QgZGVmaW5lZCwgaXQgaXMgc2V0IHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgcmFkaW8gYnV0dG9uIG9uIGxvYWQuXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRhYmluZGV4KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICAnVGhlIHNreS1yYWRpbyBgdGFiaW5kZXhgIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdGhlIGB0YWJpbmRleGAgcHJvcGVydHkgb24gdGhlIHNreS1yYWRpby1ncm91cCBjb21wb25lbnQuJyxcbiAgICApO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jX3RhYmluZGV4ID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI190YWJpbmRleCA9IDA7XG4gICAgfVxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIHB1YmxpYyBnZXQgdGFiaW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX3RhYmluZGV4O1xuICB9XG5cbiAgLy8gRm9yIHNldHRpbmcgdGhlIHRhYmluZGV4IGZyb20gdGhlIHJhZGlvIGdyb3VwXG4gIHB1YmxpYyBzZXQgZ3JvdXBUYWJJbmRleCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNfdGFiaW5kZXggPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX3RhYmluZGV4ID0gMDtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgYm91bmQgdG8gdGhlIHJhZGlvIGJ1dHRvbidzIGB2YWx1ZWAgcHJvcGVydHkuIFRoZSB2YWx1ZSB1c3VhbGx5XG4gICAqIGNvcnJlc3BvbmRzIHRvIHRoZSByYWRpbyBidXR0b24ncyBsYWJlbCwgd2hpY2ggeW91IHNwZWNpZnkgd2l0aCB0aGUgYHNreS1yYWRpby1sYWJlbGBcbiAgICogY29tcG9uZW50LlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI192YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUgJiYgdGhpcy5zZWxlY3RlZFZhbHVlID09PSB0aGlzLiNfdmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuI29uQ2hhbmdlQ2FsbGJhY2sodGhpcy5zZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgdGhpcy4jb25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy4jX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuI192YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCBhbG9uZyB3aXRoIGBsYWJlbFRleHRgLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgYWRkZWQgdG8gcmFkaW8gYnV0dG9uLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIHRvIGRpc3BsYXkgaW4gcGxhY2Ugb2YgdGhlIHJhZGlvIGJ1dHRvbi4gVG8gZ3JvdXAgcmFkaW8gYnV0dG9ucyBsaWtlIGluXG4gICAqIHRoZSBkZW1vIGFib3ZlLCBwbGFjZSB0aGUgYHNreS1zd2l0Y2gtaWNvbi1ncm91cGAgY2xhc3Mgb24gdGhlIGRpcmVjdCBwYXJlbnQgZWxlbWVudCBvZiB0aGVcbiAgICogcmFkaW8gYnV0dG9ucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIHR5cGUgYWZ0ZXIgdXNlcnMgc2VsZWN0IGFuIGljb24gcmFkaW8gYnV0dG9uLlxuICAgKiBUaGUgdmFsaWQgb3B0aW9ucyBjb3JyZXNwb25kXG4gICAqIFt0aGUgbGFiZWwgY29tcG9uZW50J3NdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9sYWJlbClcbiAgICogbGFiZWwgdHlwZXMuIGBkYW5nZXJgIGNyZWF0ZXMgYSByZWQgYmFja2dyb3VuZCwgYGluZm9gIGNyZWF0ZXMgYSBibHVlIGJhY2tncm91bmQsXG4gICAqIGBzdWNjZXNzYCBjcmVhdGVzIGEgZ3JlZW4gYmFja2dyb3VuZCwgYW5kIGB3YXJuaW5nYCBjcmVhdGVzIGFuIG9yYW5nZSBiYWNrZ3JvdW5kLlxuICAgKiBAZGVmYXVsdCBcImluZm9cIlxuICAgKiBAZGVwcmVjYXRlZCByYWRpb1R5cGUgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByYWRpb1R5cGUoKTogU2t5UmFkaW9UeXBlIHtcbiAgICByZXR1cm4gdGhpcy4jX3JhZGlvVHlwZTtcbiAgfVxuICBwdWJsaWMgc2V0IHJhZGlvVHlwZSh2YWx1ZTogU2t5UmFkaW9UeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNsb2dnZXIuZGVwcmVjYXRlZCgnU2t5UmFkaW9Db21wb25lbnQucmFkaW9UeXBlJywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogNyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuI19yYWRpb1R5cGUgPSB2YWx1ZSA/PyAnaW5mbyc7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBhcyB0aGUgcmFkaW8gYnV0dG9uJ3MgbGFiZWwuIFVzZSB0aGlzIGluc3RlYWQgb2YgdGhlIGBza3ktcmFkaW8tbGFiZWxgIHdoZW4gdGhlIGxhYmVsIGlzIHRleHQtb25seS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gaGlkZSB0aGUgYGxhYmVsVGV4dGAuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGxhYmVsSGlkZGVuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFtQZXJzaXN0ZW50IGlubGluZSBoZWxwIHRleHRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvZGVzaWduL2d1aWRlbGluZXMvdXNlci1hc3Npc3RhbmNlI2lubGluZS1oZWxwKSB0aGF0IHByb3ZpZGVzXG4gICAqIGFkZGl0aW9uYWwgY29udGV4dCB0byB0aGUgdXNlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaW50VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGhlbHAga2V5IHRoYXQgaWRlbnRpZmllcyB0aGUgZ2xvYmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5LiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIHBsYWNlZCBiZXNpZGUgdGhlIHJhZGlvIGJ1dHRvbiBsYWJlbC4gQ2xpY2tpbmcgdGhlIGJ1dHRvbiBpbnZva2VzIFtnbG9iYWwgaGVscF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9kZXZlbG9wL2dsb2JhbC1oZWxwKVxuICAgKiBhcyBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IGEgcmFkaW8gYnV0dG9uLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBwdWJsaWMgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lSYWRpb0NoYW5nZT4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZGlzYWJsZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgcHVibGljIGRpc3BsYXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2V0IHNlbGVjdGVkVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX3NlbGVjdGVkVmFsdWUpIHtcbiAgICAgIHRoaXMuI19zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLiNfc2VsZWN0ZWRWYWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByYWRpb0dyb3VwRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgaW5wdXRJZCA9ICcnO1xuXG4gICNfY2hlY2tlZCA9IGZhbHNlO1xuICAjX2Rpc2FibGVkID0gZmFsc2U7XG4gICNfbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjX3JhZGlvVHlwZTogU2t5UmFkaW9UeXBlID0gJ2luZm8nO1xuICAjX3NlbGVjdGVkVmFsdWU6IHVua25vd247XG4gICNfdGFiaW5kZXggPSAwO1xuICAjX3ZhbHVlOiBhbnk7XG4gICNfbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI19sYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2RlZmF1bHRJZCA9IGluamVjdChTa3lJZFNlcnZpY2UpLmdlbmVyYXRlSWQoKTtcbiAgI3JhZGlvR3JvdXBJZFN2YyA9IGluamVjdChTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAjbG9nZ2VyID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5ICNsYWJlbFRleHRSZXF1aXJlZCA9IGluamVjdChTa3lGb3JtRmllbGRMYWJlbFRleHRSZXF1aXJlZFNlcnZpY2UsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pZCA9IHRoaXMuI2RlZmF1bHRJZDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jbGFiZWxUZXh0UmVxdWlyZWQgJiYgIXRoaXMubGFiZWxUZXh0KSB7XG4gICAgICB0aGlzLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICAgIHRoaXMuI2xhYmVsVGV4dFJlcXVpcmVkPy52YWxpZGF0ZUxhYmVsVGV4dCh0aGlzLmxhYmVsVGV4dCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jcmFkaW9Hcm91cElkU3ZjPy51bnJlZ2lzdGVyKHRoaXMuI2RlZmF1bHRJZCk7XG4gICAgdGhpcy4jcmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXIoKTtcbiAgICB0aGlzLmNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuY2hlY2tlZENoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGlzYWJsZWRDaGFuZ2UuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkVmFsdWU7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBjb250cm9sLiBJbXBsZW1lbnRlZCBhcyBhIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0R3JvdXBEaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJhZGlvR3JvdXBEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmNoYW5nZS5uZXh0KHtcbiAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5vbklucHV0Rm9jdXNDaGFuZ2UoKTtcbiAgICAgIHRoaXMuI29uQ2hhbmdlQ2FsbGJhY2sodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSW5wdXRGb2N1c0NoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuYmx1ci5uZXh0KCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNyZW1vdmVVbmlxdWVTZWxlY3Rpb25MaXN0ZW5lciA9ICgpOiB2b2lkID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNvbkNoYW5nZUNhbGxiYWNrID0gKHZhbHVlOiBhbnkpOiB2b2lkID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNvblRvdWNoZWRDYWxsYmFjayA9ICgpOiB2b2lkID0+IHt9O1xufVxuIiwiPHNwYW4gY2xhc3M9XCJza3ktcmFkaW8tb3V0ZXItd3JhcHBlclwiPlxuICA8bGFiZWxcbiAgICBjbGFzcz1cInNreS1yYWRpby13cmFwcGVyIHNreS1zd2l0Y2hcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3NreS1zd2l0Y2gtZGlzYWJsZWQnOiBkaXNhYmxlZCB8fCByYWRpb0dyb3VwRGlzYWJsZWQgfVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIGNsYXNzPVwic2t5LXJhZGlvLWlucHV0IHNreS1zd2l0Y2gtaW5wdXRcIlxuICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxUZXh0IHx8IGxhYmVsXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbFRleHQgPyB1bmRlZmluZWQgOiBsYWJlbGxlZEJ5XCJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaGludFRleHQgPyBoaW50VGV4dEVsLmlkIDogdW5kZWZpbmVkXCJcbiAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJhZGlvR3JvdXBEaXNhYmxlZFwiXG4gICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgKGJsdXIpPVwib25JbnB1dEZvY3VzQ2hhbmdlKClcIlxuICAgICAgKGNoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIC8+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2t5LXN3aXRjaC1jb250cm9sXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1pY29uJzogaWNvbixcbiAgICAgICAgJ3NreS1yb3VuZGVkLWNvcm5lcnMnOiBpY29uLFxuICAgICAgICAnc2t5LXJvdW5kZWQtY2lyY2xlJzogIWljb24sXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtaW5mbyc6IGljb24gJiYgcmFkaW9UeXBlID09PSAnaW5mbycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtc3VjY2Vzcyc6IGljb24gJiYgcmFkaW9UeXBlID09PSAnc3VjY2VzcycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtd2FybmluZyc6IGljb24gJiYgcmFkaW9UeXBlID09PSAnd2FybmluZycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtZGFuZ2VyJzogaWNvbiAmJiByYWRpb1R5cGUgPT09ICdkYW5nZXInXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gKm5nSWY9XCJpY29uXCIgW2ZpeGVkV2lkdGhdPVwidHJ1ZVwiIFtpY29uXT1cImljb25cIiAvPlxuICAgIDwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxUZXh0OyBlbHNlIGxhYmVsRWxlbWVudFwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhbGFiZWxIaWRkZW5cIiBjbGFzcz1cInNreS1zd2l0Y2gtbGFiZWxcIj57eyBsYWJlbFRleHQgfX08L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNsYWJlbEVsZW1lbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktcmFkaW8tbGFiZWxcIiAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbGFiZWw+XG4gIDxza3ktaGVscC1pbmxpbmVcbiAgICAqbmdJZj1cIihoZWxwUG9wb3ZlckNvbnRlbnQgfHwgaGVscEtleSkgJiYgbGFiZWxUZXh0XCJcbiAgICBjbGFzcz1cInNreS1yYWRpby1oZWxwLWlubGluZVwiXG4gICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gIC8+XG48L3NwYW4+XG48ZGl2IHNreUlkICNoaW50VGV4dEVsPVwic2t5SWRcIj5cbiAgPGRpdiAqbmdJZj1cImhpbnRUZXh0XCIgY2xhc3M9XCJza3ktZm9udC1kZWVtcGhhc2l6ZWQgc2t5LXJhZGlvLWhpbnQtdGV4dFwiPlxuICAgIHt7IGhpbnRUZXh0IH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUU1RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUlsRTs7O0dBR0c7QUFDSCxNQUFNLGdDQUFnQyxHQUFhO0lBQ2pELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztJQUNoRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7OztHQUlHO0FBY0gsTUFBTSxPQUFPLGlCQUFpQjtJQU01Qjs7O09BR0c7SUFDSCxJQUNXLE9BQU8sQ0FBQyxLQUEwQjtRQUMzQyxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQztZQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUV6QyxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDVyxRQUFRLENBQUMsS0FBYztRQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csRUFBRSxDQUFDLEtBQXlCO1FBQ3JDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsS0FBSyxRQUFRLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsSUFBSSxDQUFDLFVBQVUsUUFBUSxDQUFDO1FBQ3RELENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFDVyxLQUFLLENBQUMsS0FBeUI7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFckIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLHlCQUF5QixFQUFFO2dCQUNqRCx1QkFBdUIsRUFBRSxFQUFFO2dCQUMzQix5QkFBeUIsRUFBRSxvQ0FBb0M7YUFDaEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUNXLFVBQVUsQ0FBQyxLQUF5QjtRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUUxQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsOEJBQThCLEVBQUU7Z0JBQ3RELHVCQUF1QixFQUFFLEVBQUU7Z0JBQzNCLHlCQUF5QixFQUFFLG9DQUFvQzthQUNoRSxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFDVyxJQUFJLENBQUMsS0FBeUI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQXlCO1FBQzNDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsdUhBQXVILENBQ3hILENBQUM7UUFDRixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELElBQVcsYUFBYSxDQUFDLEtBQXlCO1FBQ2hELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQVU7UUFDekIsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzlELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBeUJEOzs7Ozs7OztPQVFHO0lBQ0gsSUFDVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxTQUFTLENBQUMsS0FBK0I7UUFDbEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLDZCQUE2QixFQUFFO2dCQUNyRCx1QkFBdUIsRUFBRSxDQUFDO2FBQzNCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUM7SUFDckMsQ0FBQztJQWdERCxJQUFXLGFBQWEsQ0FBQyxLQUFVO1FBQ2pDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQU1ELFNBQVMsQ0FBUztJQUNsQixVQUFVLENBQVM7SUFDbkIsTUFBTSxDQUFxQjtJQUMzQixXQUFXLENBQXdCO0lBQ25DLGVBQWUsQ0FBVTtJQUN6QixVQUFVLENBQUs7SUFDZixPQUFPLENBQU07SUFDYixPQUFPLENBQXFCO0lBQzVCLFlBQVksQ0FBcUI7SUFFakMsZUFBZSxDQUE2QjtJQUM1QyxVQUFVLENBQXFDO0lBQy9DLGdCQUFnQixDQUFzRDtJQUN0RSxPQUFPLENBQXlCO0lBRWhDO1FBaFRBOztXQUVHO1FBQ0ksU0FBSSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUF5T2xDOztXQUVHO1FBRUksZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFpQjNCOztXQUVHO1FBR0ksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBRW5EOztXQUVHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRW5EOztXQUVHO1FBRUksbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBVzdDLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUV4QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRXZCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixnQkFBVyxHQUFpQixNQUFNLENBQUM7UUFFbkMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUtmLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBaUVoQyxnRUFBZ0U7UUFDaEUsbUNBQThCLEdBQUcsR0FBUyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ2hELGdFQUFnRTtRQUNoRSxzQkFBaUIsR0FBRyxDQUFDLEtBQVUsRUFBUSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzdDLGdFQUFnRTtRQUNoRSx1QkFBa0IsR0FBRyxHQUFTLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFuRWxDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUM1QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUVqRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRU0scUJBQXFCLENBQUMsVUFBbUI7UUFDOUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQU87UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQVk7UUFDL0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ2xCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLDhCQUE4QixDQUFrQjtJQUNoRCxnRUFBZ0U7SUFDaEUsaUJBQWlCLENBQTRCO0lBQzdDLGdFQUFnRTtJQUNoRSxrQkFBa0IsQ0FBa0I7OEdBclh6QixpQkFBaUI7a0dBQWpCLGlCQUFpQiwwRkFtQ1IsZ0JBQWdCLHFTQTZNaEIsZ0JBQWdCLDJKQW5QekIsQ0FBQyxnQ0FBZ0MsQ0FBQywwSUNsRC9DLHE5REF1REE7OzJGREZhLGlCQUFpQjtrQkFiN0IsU0FBUzsrQkFDRSxXQUFXLGtCQUdMO3dCQUNkOzRCQUNFLFNBQVMsRUFBRSxzQ0FBc0M7NEJBQ2pELE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQzt5QkFDdEI7cUJBQ0YsYUFDVSxDQUFDLGdDQUFnQyxDQUFDLG1CQUM1Qix1QkFBdUIsQ0FBQyxNQUFNO3dEQWFwQyxPQUFPO3NCQURqQixLQUFLO2dCQTBCSyxRQUFRO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWtCM0IsRUFBRTtzQkFEWixLQUFLO2dCQW1CSyxLQUFLO3NCQURmLEtBQUs7Z0JBeUJLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBdUJLLElBQUk7c0JBRGQsS0FBSztnQkFpQkssUUFBUTtzQkFEbEIsS0FBSztnQkFrQ0ssS0FBSztzQkFEZixLQUFLO2dCQTBCQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBUUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVNDLElBQUk7c0JBRFYsS0FBSztnQkFhSyxTQUFTO3NCQURuQixLQUFLO2dCQWtCQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRL0IsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLE9BQU87c0JBRGIsS0FBSztnQkFRQyxNQUFNO3NCQUZaLE1BQU07Z0JBUUEsYUFBYTtzQkFEbkIsTUFBTTtnQkFPQSxjQUFjO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBQcm92aWRlcixcbiAgVGVtcGxhdGVSZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZFNlcnZpY2UsIFNreUxvZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5Rm9ybUZpZWxkTGFiZWxUZXh0UmVxdWlyZWREaXJlY3RpdmUgfSBmcm9tICcuLi9zaGFyZWQvZm9ybS1maWVsZC1sYWJlbC10ZXh0LXJlcXVpcmVkLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IFNreVJhZGlvR3JvdXBJZFNlcnZpY2UgfSBmcm9tICcuL3JhZGlvLWdyb3VwLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmFkaW9DaGFuZ2UgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lSYWRpb1R5cGUgfSBmcm9tICcuL3R5cGVzL3JhZGlvLXR5cGUnO1xuXG4vKipcbiAqIFByb3ZpZGVyIEV4cHJlc3Npb24gdGhhdCBhbGxvd3Mgc2t5LXJhZGlvIHRvIHJlZ2lzdGVyIGFzIGEgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gKiBUaGlzIGFsbG93cyBpdCB0byBzdXBwb3J0IFsobmdNb2RlbCldLlxuICovXG5jb25zdCBTS1lfUkFESU9fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lSYWRpb0NvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuLyoqXG4gKiBSZW5kZXJzIGEgU0tZIFVYLXRoZW1lZCByZXBsYWNlbWVudCBmb3IgYW4gSFRNTCBgaW5wdXRgIGVsZW1lbnRcbiAqIHdpdGggYHR5cGU9XCJyYWRpb1wiYC4gV2hlbiB1c2VycyBzZWxlY3QgYSByYWRpbyBidXR0b24sIGl0cyB2YWx1ZSBpcyBkcml2ZW4gdGhyb3VnaCBhblxuICogYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIHRoZSBgc2t5LXJhZGlvYCBlbGVtZW50IG9yIHRoZSBwYXJlbnQgYHNreS1yYWRpby1ncm91cGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IFNreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkRGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ2xhYmVsVGV4dCddLFxuICAgIH0sXG4gIF0sXG4gIHByb3ZpZGVyczogW1NLWV9SQURJT19DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreVJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIGZvY3VzIG9mZiBhIHJhZGlvIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBibHVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGlzIHNlbGVjdGVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbmV3Q2hlY2tlZFN0YXRlID0gISF2YWx1ZTtcblxuICAgIGlmICh0aGlzLiNfY2hlY2tlZCAhPT0gbmV3Q2hlY2tlZFN0YXRlKSB7XG4gICAgICB0aGlzLiNfY2hlY2tlZCA9IG5ld0NoZWNrZWRTdGF0ZTtcbiAgICAgIHRoaXMuY2hlY2tlZENoYW5nZS5uZXh0KG5ld0NoZWNrZWRTdGF0ZSk7XG5cbiAgICAgIGlmIChuZXdDaGVja2VkU3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoZWNrZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBpbnB1dCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy4jX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgICB0aGlzLmRpc2FibGVkQ2hhbmdlLm5leHQodmFsdWUpO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBmb3IgdGhlIHJhZGlvIGJ1dHRvbi5cbiAgICogSWYgYSB2YWx1ZSBpcyBub3QgcHJvdmlkZWQsIGFuIGF1dG9nZW5lcmF0ZWQgSUQgaXMgdXNlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dElkID0gYHNreS1yYWRpby0ke3ZhbHVlfS1pbnB1dGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXRJZCA9IGBza3ktcmFkaW8tJHt0aGlzLiNkZWZhdWx0SWR9LWlucHV0YDtcbiAgICB9XG4gICAgdGhpcy4jcmFkaW9Hcm91cElkU3ZjPy5yZWdpc3Rlcih0aGlzLiNkZWZhdWx0SWQsIHRoaXMuaW5wdXRJZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSSUEgbGFiZWwgZm9yIHRoZSByYWRpbyBidXR0b24uIFRoaXMgc2V0cyB0aGUgcmFkaW8gYnV0dG9uJ3MgYGFyaWEtbGFiZWxgXG4gICAqIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVycyBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpXG4gICAqIHdoZW4gdGhlIHJhZGlvIGJ1dHRvbiBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbC4gWW91IG11c3Qgc2V0IHRoaXMgcHJvcGVydHkgZm9yIGljb25cbiAgICogcmFkaW8gYnV0dG9ucy4gSWYgdGhlIHJhZGlvIGJ1dHRvbiBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgbGFiZWxUZXh0YCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsYWJlbCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2xhYmVsID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lSYWRpb0NvbXBvbmVudC5sYWJlbCcsIHtcbiAgICAgICAgZGVwcmVjYXRpb25NYWpvclZlcnNpb246IDEwLFxuICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOiAnVXNlIHRoZSBgbGFiZWxUZXh0YCBpbnB1dCBpbnN0ZWFkLicsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxhYmVsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19sYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgSFRNTCBlbGVtZW50IElEIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzXG4gICAqIHRoZSByYWRpbyBidXR0b24uIFRoaXMgc2V0cyB0aGUgcmFkaW8gYnV0dG9uJ3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSByYWRpbyBidXR0b24gZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxgIGluc3RlYWQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbGxlZGJ5KS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBsYWJlbFRleHRgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxhYmVsbGVkQnkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19sYWJlbGxlZEJ5ID0gdmFsdWU7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lSYWRpb0NvbXBvbmVudC5sYWJlbGxlZEJ5Jywge1xuICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogMTAsXG4gICAgICAgIHJlcGxhY2VtZW50UmVjb21tZW5kYXRpb246ICdVc2UgdGhlIGBsYWJlbFRleHRgIGlucHV0IGluc3RlYWQuJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGFiZWxsZWRCeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbGFiZWxsZWRCeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlIGBuYW1lYCBwcm9wZXJ0eSBvbiB0aGUgYHNreS1yYWRpby1ncm91cCBlbGVtZW50YC5cbiAgICogV2UgcmVjb21tZW5kIHVzaW5nIHRoZSBgc2t5LXJhZGlvLWdyb3VwYCBlbGVtZW50IHdpdGggYWxsIHJhZGlvIGJ1dHRvbnMsIGJ1dCBpZiB5b3Ugb3B0IG5vdCB0byxcbiAgICogdGhlbiB0aGlzIHByb3BlcnR5IHNwZWNpZmllcyBhIG5hbWUgZm9yIGEgZ3JvdXAgb2YgcmFkaW8gYnV0dG9ucy5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX25hbWUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2ZcbiAgICogdGhlIGB0YWJJbmRleGAgcHJvcGVydHkgb24gdGhlIGBza3ktcmFkaW8tZ3JvdXBgIGVsZW1lbnQuIEl0IHNwZWNpZmllcyBhbiBpbmRleCBmb3IgdGhlIHJhZGlvXG4gICAqIGJ1dHRvbi4gSWYgdGhlIGluZGV4IGlzIG5vdCBkZWZpbmVkLCBpdCBpcyBzZXQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSByYWRpbyBidXR0b24gb24gbG9hZC5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiaW5kZXgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdUaGUgc2t5LXJhZGlvIGB0YWJpbmRleGAgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSB0aGUgYHRhYmluZGV4YCBwcm9wZXJ0eSBvbiB0aGUgc2t5LXJhZGlvLWdyb3VwIGNvbXBvbmVudC4nLFxuICAgICk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNfdGFiaW5kZXggPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX3RhYmluZGV4ID0gMDtcbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgcHVibGljIGdldCB0YWJpbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfdGFiaW5kZXg7XG4gIH1cblxuICAvLyBGb3Igc2V0dGluZyB0aGUgdGFiaW5kZXggZnJvbSB0aGUgcmFkaW8gZ3JvdXBcbiAgcHVibGljIHNldCBncm91cFRhYkluZGV4KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI190YWJpbmRleCA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfdGFiaW5kZXggPSAwO1xuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBib3VuZCB0byB0aGUgcmFkaW8gYnV0dG9uJ3MgYHZhbHVlYCBwcm9wZXJ0eS4gVGhlIHZhbHVlIHVzdWFsbHlcbiAgICogY29ycmVzcG9uZHMgdG8gdGhlIHJhZGlvIGJ1dHRvbidzIGxhYmVsLCB3aGljaCB5b3Ugc3BlY2lmeSB3aXRoIHRoZSBgc2t5LXJhZGlvLWxhYmVsYFxuICAgKiBjb21wb25lbnQuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jX3ZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSAmJiB0aGlzLnNlbGVjdGVkVmFsdWUgPT09IHRoaXMuI192YWx1ZSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy4jb25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgICAgICB0aGlzLiNvblRvdWNoZWRDYWxsYmFjaygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNfdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy4jX3ZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkIGFsb25nIHdpdGggYGxhYmVsVGV4dGAsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byByYWRpbyBidXR0b24uIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGljb24gdG8gZGlzcGxheSBpbiBwbGFjZSBvZiB0aGUgcmFkaW8gYnV0dG9uLiBUbyBncm91cCByYWRpbyBidXR0b25zIGxpa2UgaW5cbiAgICogdGhlIGRlbW8gYWJvdmUsIHBsYWNlIHRoZSBgc2t5LXN3aXRjaC1pY29uLWdyb3VwYCBjbGFzcyBvbiB0aGUgZGlyZWN0IHBhcmVudCBlbGVtZW50IG9mIHRoZVxuICAgKiByYWRpbyBidXR0b25zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGJhY2tncm91bmQgY29sb3IgdHlwZSBhZnRlciB1c2VycyBzZWxlY3QgYW4gaWNvbiByYWRpbyBidXR0b24uXG4gICAqIFRoZSB2YWxpZCBvcHRpb25zIGNvcnJlc3BvbmRcbiAgICogW3RoZSBsYWJlbCBjb21wb25lbnQnc10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2xhYmVsKVxuICAgKiBsYWJlbCB0eXBlcy4gYGRhbmdlcmAgY3JlYXRlcyBhIHJlZCBiYWNrZ3JvdW5kLCBgaW5mb2AgY3JlYXRlcyBhIGJsdWUgYmFja2dyb3VuZCxcbiAgICogYHN1Y2Nlc3NgIGNyZWF0ZXMgYSBncmVlbiBiYWNrZ3JvdW5kLCBhbmQgYHdhcm5pbmdgIGNyZWF0ZXMgYW4gb3JhbmdlIGJhY2tncm91bmQuXG4gICAqIEBkZWZhdWx0IFwiaW5mb1wiXG4gICAqIEBkZXByZWNhdGVkIHJhZGlvVHlwZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJhZGlvVHlwZSgpOiBTa3lSYWRpb1R5cGUge1xuICAgIHJldHVybiB0aGlzLiNfcmFkaW9UeXBlO1xuICB9XG4gIHB1YmxpYyBzZXQgcmFkaW9UeXBlKHZhbHVlOiBTa3lSYWRpb1R5cGUgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTa3lSYWRpb0NvbXBvbmVudC5yYWRpb1R5cGUnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA3LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy4jX3JhZGlvVHlwZSA9IHZhbHVlID8/ICdpbmZvJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IGFzIHRoZSByYWRpbyBidXR0b24ncyBsYWJlbC4gVXNlIHRoaXMgaW5zdGVhZCBvZiB0aGUgYHNreS1yYWRpby1sYWJlbGAgd2hlbiB0aGUgbGFiZWwgaXMgdGV4dC1vbmx5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBoaWRlIHRoZSBgbGFiZWxUZXh0YC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbGFiZWxIaWRkZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogW1BlcnNpc3RlbnQgaW5saW5lIGhlbHAgdGV4dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vZ3VpZGVsaW5lcy91c2VyLWFzc2lzdGFuY2UjaW5saW5lLWhlbHApIHRoYXQgcHJvdmlkZXNcbiAgICogYWRkaXRpb25hbCBjb250ZXh0IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpbnRUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEEgaGVscCBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBnbG9iYWwgaGVscCBjb250ZW50IHRvIGRpc3BsYXkuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgcGxhY2VkIGJlc2lkZSB0aGUgcmFkaW8gYnV0dG9uIGxhYmVsLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgYSByYWRpbyBidXR0b24uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIHB1YmxpYyBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVJhZGlvQ2hhbmdlPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBzZWxlY3RlZCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjaGVja2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBzZWxlY3RlZCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgc2V0IHNlbGVjdGVkVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX3NlbGVjdGVkVmFsdWUpIHtcbiAgICAgIHRoaXMuI19zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRWYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLiNfc2VsZWN0ZWRWYWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByYWRpb0dyb3VwRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgaW5wdXRJZCA9ICcnO1xuXG4gICNfY2hlY2tlZCA9IGZhbHNlO1xuICAjX2Rpc2FibGVkID0gZmFsc2U7XG4gICNfbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjX3JhZGlvVHlwZTogU2t5UmFkaW9UeXBlID0gJ2luZm8nO1xuICAjX3NlbGVjdGVkVmFsdWU6IHVua25vd247XG4gICNfdGFiaW5kZXggPSAwO1xuICAjX3ZhbHVlOiBhbnk7XG4gICNfbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI19sYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2RlZmF1bHRJZCA9IGluamVjdChTa3lJZFNlcnZpY2UpLmdlbmVyYXRlSWQoKTtcbiAgI3JhZGlvR3JvdXBJZFN2YyA9IGluamVjdChTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAjbG9nZ2VyID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB0aGlzLiNkZWZhdWx0SWQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jcmFkaW9Hcm91cElkU3ZjPy51bnJlZ2lzdGVyKHRoaXMuI2RlZmF1bHRJZCk7XG4gICAgdGhpcy4jcmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXIoKTtcbiAgICB0aGlzLmNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuY2hlY2tlZENoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGlzYWJsZWRDaGFuZ2UuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkVmFsdWU7XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBjb250cm9sLiBJbXBsZW1lbnRlZCBhcyBhIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0R3JvdXBEaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJhZGlvR3JvdXBEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmNoYW5nZS5uZXh0KHtcbiAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5vbklucHV0Rm9jdXNDaGFuZ2UoKTtcbiAgICAgIHRoaXMuI29uQ2hhbmdlQ2FsbGJhY2sodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSW5wdXRGb2N1c0NoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuYmx1ci5uZXh0KCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNyZW1vdmVVbmlxdWVTZWxlY3Rpb25MaXN0ZW5lciA9ICgpOiB2b2lkID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNvbkNoYW5nZUNhbGxiYWNrID0gKHZhbHVlOiBhbnkpOiB2b2lkID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICNvblRvdWNoZWRDYWxsYmFjayA9ICgpOiB2b2lkID0+IHt9O1xufVxuIiwiPHNwYW4gY2xhc3M9XCJza3ktcmFkaW8tb3V0ZXItd3JhcHBlclwiPlxuICA8bGFiZWxcbiAgICBjbGFzcz1cInNreS1yYWRpby13cmFwcGVyIHNreS1zd2l0Y2hcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3NreS1zd2l0Y2gtZGlzYWJsZWQnOiBkaXNhYmxlZCB8fCByYWRpb0dyb3VwRGlzYWJsZWQgfVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIGNsYXNzPVwic2t5LXJhZGlvLWlucHV0IHNreS1zd2l0Y2gtaW5wdXRcIlxuICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxUZXh0IHx8IGxhYmVsXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbFRleHQgPyB1bmRlZmluZWQgOiBsYWJlbGxlZEJ5XCJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaGludFRleHQgPyBoaW50VGV4dEVsLmlkIDogdW5kZWZpbmVkXCJcbiAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJhZGlvR3JvdXBEaXNhYmxlZFwiXG4gICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgKGJsdXIpPVwib25JbnB1dEZvY3VzQ2hhbmdlKClcIlxuICAgICAgKGNoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIC8+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2t5LXN3aXRjaC1jb250cm9sXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1pY29uJzogaWNvbixcbiAgICAgICAgJ3NreS1yb3VuZGVkLWNvcm5lcnMnOiBpY29uLFxuICAgICAgICAnc2t5LXJvdW5kZWQtY2lyY2xlJzogIWljb24sXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtaW5mbyc6IGljb24gJiYgcmFkaW9UeXBlID09PSAnaW5mbycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtc3VjY2Vzcyc6IGljb24gJiYgcmFkaW9UeXBlID09PSAnc3VjY2VzcycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtd2FybmluZyc6IGljb24gJiYgcmFkaW9UeXBlID09PSAnd2FybmluZycsXG4gICAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtZGFuZ2VyJzogaWNvbiAmJiByYWRpb1R5cGUgPT09ICdkYW5nZXInXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gKm5nSWY9XCJpY29uXCIgW2ZpeGVkV2lkdGhdPVwidHJ1ZVwiIFtpY29uXT1cImljb25cIiAvPlxuICAgIDwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxUZXh0OyBlbHNlIGxhYmVsRWxlbWVudFwiPlxuICAgICAgPHNwYW4gKm5nSWY9XCIhbGFiZWxIaWRkZW5cIiBjbGFzcz1cInNreS1zd2l0Y2gtbGFiZWxcIj57eyBsYWJlbFRleHQgfX08L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNsYWJlbEVsZW1lbnQ+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktcmFkaW8tbGFiZWxcIiAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbGFiZWw+XG4gIDxza3ktaGVscC1pbmxpbmVcbiAgICAqbmdJZj1cIihoZWxwUG9wb3ZlckNvbnRlbnQgfHwgaGVscEtleSkgJiYgbGFiZWxUZXh0XCJcbiAgICBjbGFzcz1cInNreS1yYWRpby1oZWxwLWlubGluZVwiXG4gICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gIC8+XG48L3NwYW4+XG48ZGl2IHNreUlkICNoaW50VGV4dEVsPVwic2t5SWRcIj5cbiAgPGRpdiAqbmdJZj1cImhpbnRUZXh0XCIgY2xhc3M9XCJza3ktZm9udC1kZWVtcGhhc2l6ZWQgc2t5LXJhZGlvLWhpbnQtdGV4dFwiPlxuICAgIHt7IGhpbnRUZXh0IH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -12,8 +12,8 @@ import { SkyRadioLabelComponent } from './radio-label.component';
12
12
  import { SkyRadioComponent } from './radio.component';
13
13
  import * as i0 from "@angular/core";
14
14
  export class SkyRadioModule {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: SkyRadioModule, declarations: [SkyRadioComponent,
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioModule, declarations: [SkyRadioComponent,
17
17
  SkyRadioGroupComponent,
18
18
  SkyRadioLabelComponent], imports: [CommonModule,
19
19
  FormsModule,
@@ -27,7 +27,7 @@ export class SkyRadioModule {
27
27
  SkyRadioComponent,
28
28
  SkyRadioGroupComponent,
29
29
  SkyRadioLabelComponent] }); }
30
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkyRadioModule, imports: [CommonModule,
30
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioModule, imports: [CommonModule,
31
31
  FormsModule,
32
32
  SkyFormErrorModule,
33
33
  SkyFormErrorsModule,
@@ -37,7 +37,7 @@ export class SkyRadioModule {
37
37
  SkyFormsResourcesModule,
38
38
  SkyTrimModule, SkyFormErrorModule] }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkyRadioModule, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRadioModule, decorators: [{
41
41
  type: NgModule,
42
42
  args: [{
43
43
  declarations: [
@@ -19,10 +19,10 @@ export class SkyRequiredStateDirective {
19
19
  !!this.#ngControl?.control?.hasValidator(Validators.required));
20
20
  }
21
21
  #ngControl;
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkyRequiredStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.5", type: SkyRequiredStateDirective, isStandalone: true, inputs: { required: ["required", "required", booleanAttribute] }, ngImport: i0 }); }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRequiredStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: SkyRequiredStateDirective, isStandalone: true, inputs: { required: ["required", "required", booleanAttribute] }, ngImport: i0 }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkyRequiredStateDirective, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyRequiredStateDirective, decorators: [{
26
26
  type: Directive,
27
27
  args: [{
28
28
  standalone: true,
@@ -119,10 +119,10 @@ export class SkySelectionBoxAdapterService {
119
119
  const el = element.nativeElement;
120
120
  el.tabIndex = tabIndex;
121
121
  }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxAdapterService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
123
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxAdapterService }); }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxAdapterService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
123
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxAdapterService }); }
124
124
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxAdapterService, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxAdapterService, decorators: [{
126
126
  type: Injectable
127
127
  }], ctorParameters: () => [{ type: i1.SkyCoreAdapterService }, { type: i0.RendererFactory2 }] });
128
128
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJveC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdGlvbi1ib3gvc2VsZWN0aW9uLWJveC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFVBQVUsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXlCLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFFekUsTUFBTSxtQkFBbUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM3RCxNQUFNLG1CQUFtQixHQUFHLGdDQUFnQyxDQUFDO0FBQzdELE1BQU0sbUJBQW1CLEdBQUcsZ0NBQWdDLENBQUM7QUFDN0QsTUFBTSxtQkFBbUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUU3RCxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUNyQyxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQztBQUV0Qzs7R0FFRztBQUVILE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsbUJBQW1CLENBQXdCO0lBQzNDLFNBQVMsQ0FBWTtJQUVyQixZQUNFLGtCQUF5QyxFQUN6QyxlQUFpQztRQUVqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsRUFBYztRQUN6QixFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsRUFBYztRQUM5QixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7O09BR0c7SUFDSSxxQkFBcUIsQ0FBQyxLQUF5QjtRQUNwRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxLQUFLLElBQUksd0JBQXdCLEVBQUUsQ0FBQztZQUN0QyxPQUFPLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFDTCxLQUFLLElBQUksd0JBQXdCO1lBQ2pDLEtBQUssSUFBSSx3QkFBd0IsRUFDakMsQ0FBQztZQUNELE9BQU8sbUJBQW1CLENBQUMsRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxJQUNMLEtBQUssSUFBSSx3QkFBd0I7WUFDakMsS0FBSyxJQUFJLHdCQUF3QixFQUNqQyxDQUFDO1lBQ0QsT0FBTyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksY0FBYyxDQUFDLE9BQW1CO1FBQ3ZDLE9BQ0UsT0FBTyxDQUFDLGFBQ1QsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLFFBQW9CLEVBQUUsT0FBb0I7UUFDNUQsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUIsQ0FBQyxPQUFtQixFQUFFLFFBQWdCO1FBQzlELE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDakMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLEVBQUUsRUFBRTtZQUNyRSxnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCLENBQUMsQ0FBQztRQUNILElBQUksS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2YsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLGtCQUFrQixDQUN2QixPQUFtQixFQUNuQixVQUErQjtRQUUvQixNQUFNLFFBQVEsR0FBZ0IsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUVwRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUUxRCxJQUFJLFFBQWdCLENBQUM7UUFFckIsUUFBUSxVQUFVLEVBQUUsQ0FBQztZQUNuQixLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFtQixFQUFFLFFBQWdCO1FBQ3RELE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFFakMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDekIsQ0FBQzs4R0FoSVUsNkJBQTZCO2tIQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLCBTa3lNZWRpYUJyZWFrcG9pbnRzIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5jb25zdCBSRVNQT05TSVZFX0NMQVNTX1hTID0gJ3NreS1zZWxlY3Rpb24tYm94LWNvbnRhaW5lci14cyc7XG5jb25zdCBSRVNQT05TSVZFX0NMQVNTX1NNID0gJ3NreS1zZWxlY3Rpb24tYm94LWNvbnRhaW5lci1zbSc7XG5jb25zdCBSRVNQT05TSVZFX0NMQVNTX01EID0gJ3NreS1zZWxlY3Rpb24tYm94LWNvbnRhaW5lci1tZCc7XG5jb25zdCBSRVNQT05TSVZFX0NMQVNTX0xHID0gJ3NreS1zZWxlY3Rpb24tYm94LWNvbnRhaW5lci1sZyc7XG5cbmNvbnN0IEJSRUFLUE9JTlRfWFNfTUFYX1BJWEVMUyA9IDc2NztcbmNvbnN0IEJSRUFLUE9JTlRfU01fTUlOX1BJWEVMUyA9IDc2ODtcbmNvbnN0IEJSRUFLUE9JTlRfU01fTUFYX1BJWEVMUyA9IDk5MTtcbmNvbnN0IEJSRUFLUE9JTlRfTURfTUlOX1BJWEVMUyA9IDk5MjtcbmNvbnN0IEJSRUFLUE9JTlRfTURfTUFYX1BJWEVMUyA9IDE0Mzk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lTZWxlY3Rpb25Cb3hBZGFwdGVyU2VydmljZSB7XG4gICNjb3JlQWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICApIHtcbiAgICB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UgPSBjb3JlQWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGZvY3VzIG9uIHRoZSBzcGVjaWZpZWQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBmb2N1cyhlbDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIGVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY2hpbGQgZWxlbWVudCB3aXRoIHRoZSBgLnNreS1zd2l0Y2hgIGNsYXNzLlxuICAgKiBVc2VmdWwgZm9yIGdldHRpbmcgU0tZIFVYLXRoZW1lZCByYWRpbyBidXR0b25zIG9yIGNoZWNrYm94ZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29udHJvbChlbDogRWxlbWVudFJlZik6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LXN3aXRjaCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBicmVha3BvaW50IGJhc2VkIG9uIHRoZSB3aWR0aC5cbiAgICogQHBhcmFtIHdpZHRoIFdpZHRoIG9mIHRoZSBlbGVtZW50IGluIHBpeGVscy5cbiAgICovXG4gIHB1YmxpYyBnZXRCcmVha3BvaW50Rm9yV2lkdGgod2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCk6IFNreU1lZGlhQnJlYWtwb2ludHMge1xuICAgIGlmICghd2lkdGgpIHtcbiAgICAgIHJldHVybiBTa3lNZWRpYUJyZWFrcG9pbnRzLmxnO1xuICAgIH1cblxuICAgIGlmICh3aWR0aCA8PSBCUkVBS1BPSU5UX1hTX01BWF9QSVhFTFMpIHtcbiAgICAgIHJldHVybiBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB3aWR0aCA+PSBCUkVBS1BPSU5UX1NNX01JTl9QSVhFTFMgJiZcbiAgICAgIHdpZHRoIDw9IEJSRUFLUE9JTlRfU01fTUFYX1BJWEVMU1xuICAgICkge1xuICAgICAgcmV0dXJuIFNreU1lZGlhQnJlYWtwb2ludHMuc207XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHdpZHRoID49IEJSRUFLUE9JTlRfTURfTUlOX1BJWEVMUyAmJlxuICAgICAgd2lkdGggPD0gQlJFQUtQT0lOVF9NRF9NQVhfUElYRUxTXG4gICAgKSB7XG4gICAgICByZXR1cm4gU2t5TWVkaWFCcmVha3BvaW50cy5tZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFNreU1lZGlhQnJlYWtwb2ludHMubGc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHdpZHRoIG9mIHRoZSBgcGFyZW50Tm9kZWAgb2YgdGhlIHByb3ZpZGVkIGBlbGVtZW50YC5cbiAgICovXG4gIHB1YmxpYyBnZXRQYXJlbnRXaWR0aChlbGVtZW50OiBFbGVtZW50UmVmKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gKFxuICAgICAgZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkXG4gICAgKT8ucGFyZW50RWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LndpZHRoO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBgY2hpbGRFbGAgaXMgYSBkZXNjZW5kYW50IG9mIHRoZSBgcGFyZW50RWxgLlxuICAgKi9cbiAgcHVibGljIGlzRGVzY2VuZGFudChwYXJlbnRFbDogRWxlbWVudFJlZiwgY2hpbGRFbDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGFyZW50RWwubmF0aXZlRWxlbWVudC5jb250YWlucyhjaGlsZEVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBgdGFiSW5kZXhgIG9mIGFsbCBmb2N1c2FibGUgY2hpbGRyZW4gb2YgdGhlIGBlbGVtZW50YCB0byB0aGUgcHJvdmlkZWQgYHRhYkluZGV4YC5cbiAgICovXG4gIHB1YmxpYyBzZXRDaGlsZHJlblRhYkluZGV4KGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IGVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBmb2N1c2FibGVFbHMgPSB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oZWwsIHtcbiAgICAgIGlnbm9yZVZpc2liaWxpdHk6IHRydWUsXG4gICAgfSk7XG4gICAgbGV0IGluZGV4ID0gZm9jdXNhYmxlRWxzLmxlbmd0aDtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgZm9jdXNhYmxlRWxzW2luZGV4XS50YWJJbmRleCA9IHRhYkluZGV4O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzcG9uc2l2ZSBDU1MgY2xhc3Mgb24gdGhlIHByb3ZpZGVkIGVsZW1lbnQgYmFzZWQgb24gaXRzIGN1cnJlbnQgd2lkdGguXG4gICAqL1xuICBwdWJsaWMgc2V0UmVzcG9uc2l2ZUNsYXNzKFxuICAgIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgbmF0aXZlRWw6IEhUTUxFbGVtZW50ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsIFJFU1BPTlNJVkVfQ0xBU1NfWFMpO1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCBSRVNQT05TSVZFX0NMQVNTX1NNKTtcbiAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgUkVTUE9OU0lWRV9DTEFTU19NRCk7XG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsIFJFU1BPTlNJVkVfQ0xBU1NfTEcpO1xuXG4gICAgbGV0IG5ld0NsYXNzOiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKGJyZWFrcG9pbnQpIHtcbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy54czoge1xuICAgICAgICBuZXdDbGFzcyA9IFJFU1BPTlNJVkVfQ0xBU1NfWFM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIG5ld0NsYXNzID0gUkVTUE9OU0lWRV9DTEFTU19TTTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNreU1lZGlhQnJlYWtwb2ludHMubWQ6IHtcbiAgICAgICAgbmV3Q2xhc3MgPSBSRVNQT05TSVZFX0NMQVNTX01EO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgU2t5TWVkaWFCcmVha3BvaW50cy5sZzoge1xuICAgICAgICBuZXdDbGFzcyA9IFJFU1BPTlNJVkVfQ0xBU1NfTEc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKG5hdGl2ZUVsLCBuZXdDbGFzcyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYHRhYkluZGV4YCBvZiB0aGUgYGVsZW1lbnRgIHRvIHRoZSBwcm92aWRlZCBgdGFiSW5kZXhgLlxuICAgKi9cbiAgcHVibGljIHNldFRhYkluZGV4KGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IGVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgIGVsLnRhYkluZGV4ID0gdGFiSW5kZXg7XG4gIH1cbn1cbiJdfQ==
@@ -4,10 +4,10 @@ import * as i0 from "@angular/core";
4
4
  * Specifies the description to display in a selection box.
5
5
  */
6
6
  export class SkySelectionBoxDescriptionComponent {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: SkySelectionBoxDescriptionComponent, selector: "sky-selection-box-description", ngImport: i0, template: "<ng-content />\n" }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: SkySelectionBoxDescriptionComponent, selector: "sky-selection-box-description", ngImport: i0, template: "<ng-content />\n" }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxDescriptionComponent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxDescriptionComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'sky-selection-box-description', template: "<ng-content />\n" }]
13
13
  }] });
@@ -113,12 +113,12 @@ export class SkySelectionBoxGridComponent {
113
113
  this.#coreAdapterService.syncMaxHeight(this.containerElementRef, SKY_SELECTION_BOX_CLASS_NAME);
114
114
  }
115
115
  }
116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxGridComponent, deps: [{ token: i1.SkyCoreAdapterService }, { token: i2.SkySelectionBoxAdapterService }, { token: i0.ElementRef }, { token: i1.SkyMutationObserverService }, { token: i0.NgZone }, { token: i3.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: SkySelectionBoxGridComponent, selector: "sky-selection-box-grid", inputs: { alignItems: "alignItems" }, host: { listeners: { "window:resize": "onWindowResize()" } }, queries: [{ propertyName: "selectionBoxes", predicate: SkySelectionBoxComponent, read: SkySelectionBoxComponent }], viewQueries: [{ propertyName: "containerElementRef", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div\n class=\"sky-selection-box-grid\"\n [ngClass]=\"'sky-selection-box-grid-align-' + alignItems\"\n #container\n>\n <ng-content select=\"sky-selection-box\" />\n</div>\n", styles: [":host{display:block}.sky-selection-box-grid{display:flex;flex-flow:row wrap;padding:0 7.5px;margin:0 auto var(--sky-compat-selection-box-grid-margin-bottom, -15px) auto}.sky-selection-box-grid.sky-selection-box-grid-align-center{justify-content:center}.sky-selection-box-grid.sky-selection-box-grid-align-left{justify-content:flex-start}.sky-selection-box-grid>sky-selection-box{margin:0 7.5px 15px;height:100%}.sky-selection-box-grid.sky-selection-box-container-xs{max-width:374px}.sky-selection-box-grid.sky-selection-box-container-xs>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box{padding:15px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-header{font-size:20px;font-weight:400}.sky-selection-box-grid.sky-selection-box-container-sm{max-width:733px}.sky-selection-box-grid.sky-selection-box-container-sm>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box{padding:15px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-header{font-size:20px;font-weight:400}.sky-selection-box-grid.sky-selection-box-container-md{max-width:937px}.sky-selection-box-grid.sky-selection-box-container-md>sky-selection-box{flex:0 1 446px}.sky-selection-box-grid.sky-selection-box-container-lg{max-width:1398px}.sky-selection-box-grid.sky-selection-box-container-lg>sky-selection-box{flex:0 1 446px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxGridComponent, deps: [{ token: i1.SkyCoreAdapterService }, { token: i2.SkySelectionBoxAdapterService }, { token: i0.ElementRef }, { token: i1.SkyMutationObserverService }, { token: i0.NgZone }, { token: i3.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: SkySelectionBoxGridComponent, selector: "sky-selection-box-grid", inputs: { alignItems: "alignItems" }, host: { listeners: { "window:resize": "onWindowResize()" } }, queries: [{ propertyName: "selectionBoxes", predicate: SkySelectionBoxComponent, read: SkySelectionBoxComponent }], viewQueries: [{ propertyName: "containerElementRef", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div\n class=\"sky-selection-box-grid\"\n [ngClass]=\"'sky-selection-box-grid-align-' + alignItems\"\n #container\n>\n <ng-content select=\"sky-selection-box\" />\n</div>\n", styles: [":host{display:block}.sky-selection-box-grid{display:flex;flex-flow:row wrap;padding:0 7.5px;margin:0 auto -15px}.sky-selection-box-grid.sky-selection-box-grid-align-center{justify-content:center}.sky-selection-box-grid.sky-selection-box-grid-align-left{justify-content:flex-start}.sky-selection-box-grid>sky-selection-box{margin:0 7.5px 15px;height:100%}.sky-selection-box-grid.sky-selection-box-container-xs{max-width:374px}.sky-selection-box-grid.sky-selection-box-container-xs>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box{padding:15px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-header{font-size:20px;font-weight:400}.sky-selection-box-grid.sky-selection-box-container-sm{max-width:733px}.sky-selection-box-grid.sky-selection-box-container-sm>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box{padding:15px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-header{font-size:20px;font-weight:400}.sky-selection-box-grid.sky-selection-box-container-md{max-width:937px}.sky-selection-box-grid.sky-selection-box-container-md>sky-selection-box{flex:0 1 446px}.sky-selection-box-grid.sky-selection-box-container-lg{max-width:1398px}.sky-selection-box-grid.sky-selection-box-container-lg>sky-selection-box{flex:0 1 446px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxGridComponent, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxGridComponent, decorators: [{
120
120
  type: Component,
121
- args: [{ selector: 'sky-selection-box-grid', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-selection-box-grid\"\n [ngClass]=\"'sky-selection-box-grid-align-' + alignItems\"\n #container\n>\n <ng-content select=\"sky-selection-box\" />\n</div>\n", styles: [":host{display:block}.sky-selection-box-grid{display:flex;flex-flow:row wrap;padding:0 7.5px;margin:0 auto var(--sky-compat-selection-box-grid-margin-bottom, -15px) auto}.sky-selection-box-grid.sky-selection-box-grid-align-center{justify-content:center}.sky-selection-box-grid.sky-selection-box-grid-align-left{justify-content:flex-start}.sky-selection-box-grid>sky-selection-box{margin:0 7.5px 15px;height:100%}.sky-selection-box-grid.sky-selection-box-container-xs{max-width:374px}.sky-selection-box-grid.sky-selection-box-container-xs>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box{padding:15px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-header{font-size:20px;font-weight:400}.sky-selection-box-grid.sky-selection-box-container-sm{max-width:733px}.sky-selection-box-grid.sky-selection-box-container-sm>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box{padding:15px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-header{font-size:20px;font-weight:400}.sky-selection-box-grid.sky-selection-box-container-md{max-width:937px}.sky-selection-box-grid.sky-selection-box-container-md>sky-selection-box{flex:0 1 446px}.sky-selection-box-grid.sky-selection-box-container-lg{max-width:1398px}.sky-selection-box-grid.sky-selection-box-container-lg>sky-selection-box{flex:0 1 446px}\n"] }]
121
+ args: [{ selector: 'sky-selection-box-grid', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"sky-selection-box-grid\"\n [ngClass]=\"'sky-selection-box-grid-align-' + alignItems\"\n #container\n>\n <ng-content select=\"sky-selection-box\" />\n</div>\n", styles: [":host{display:block}.sky-selection-box-grid{display:flex;flex-flow:row wrap;padding:0 7.5px;margin:0 auto -15px}.sky-selection-box-grid.sky-selection-box-grid-align-center{justify-content:center}.sky-selection-box-grid.sky-selection-box-grid-align-left{justify-content:flex-start}.sky-selection-box-grid>sky-selection-box{margin:0 7.5px 15px;height:100%}.sky-selection-box-grid.sky-selection-box-container-xs{max-width:374px}.sky-selection-box-grid.sky-selection-box-container-xs>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box{padding:15px}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-xs .sky-selection-box .sky-selection-box-header{font-size:20px;font-weight:400}.sky-selection-box-grid.sky-selection-box-container-sm{max-width:733px}.sky-selection-box-grid.sky-selection-box-container-sm>sky-selection-box{flex:0 1 344px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box{padding:15px}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-icon{display:none}.sky-selection-box-grid.sky-selection-box-container-sm .sky-selection-box .sky-selection-box-header{font-size:20px;font-weight:400}.sky-selection-box-grid.sky-selection-box-container-md{max-width:937px}.sky-selection-box-grid.sky-selection-box-container-md>sky-selection-box{flex:0 1 446px}.sky-selection-box-grid.sky-selection-box-container-lg{max-width:1398px}.sky-selection-box-grid.sky-selection-box-container-lg>sky-selection-box{flex:0 1 446px}\n"] }]
122
122
  }], ctorParameters: () => [{ type: i1.SkyCoreAdapterService }, { type: i2.SkySelectionBoxAdapterService }, { type: i0.ElementRef }, { type: i1.SkyMutationObserverService }, { type: i0.NgZone }, { type: i3.SkyThemeService, decorators: [{
123
123
  type: Optional
124
124
  }] }], propDecorators: { alignItems: [{
@@ -4,10 +4,10 @@ import * as i0 from "@angular/core";
4
4
  * Specifies the header to display in a selection box.
5
5
  */
6
6
  export class SkySelectionBoxHeaderComponent {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: SkySelectionBoxHeaderComponent, selector: "sky-selection-box-header", ngImport: i0, template: "<ng-content />\n" }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: SkySelectionBoxHeaderComponent, selector: "sky-selection-box-header", ngImport: i0, template: "<ng-content />\n" }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxHeaderComponent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxHeaderComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'sky-selection-box-header', template: "<ng-content />\n" }]
13
13
  }] });
@@ -108,10 +108,10 @@ export class SkySelectionBoxComponent {
108
108
  });
109
109
  }
110
110
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkySelectionBoxAdapterService }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: SkySelectionBoxComponent, selector: "sky-selection-box", inputs: { control: "control" }, viewQueries: [{ propertyName: "controlEl", first: true, predicate: ["control"], descendants: true, read: ElementRef }, { propertyName: "selectionBoxEl", first: true, predicate: ["selectionBox"], descendants: true, read: ElementRef }], ngImport: i0, template: "<label\n class=\"sky-selection-box sky-rounded-corners sky-btn sky-btn-default\"\n [attr.disabled]=\"disabled ? true : null\"\n [ngClass]=\"{\n 'sky-selection-box-selected': checked,\n 'sky-selection-box-disabled': disabled\n }\"\n [skyThemeClass]=\"{\n 'sky-shadow': 'default',\n 'sky-box sky-elevation-1': 'modern'\n }\"\n (keydown)=\"onKeydown($event)\"\n #selectionBox\n>\n <div\n class=\"sky-selection-box-icon\"\n [ngStyle]=\"{\n display: !icon.innerHTML.trim() ? 'none' : ''\n }\"\n #icon\n >\n <ng-content select=\"sky-icon\" />\n </div>\n\n <div class=\"sky-selection-box-content\">\n <div\n class=\"sky-selection-box-header\"\n [ngClass]=\"{\n 'sky-font-heading-2': icon.innerHTML.trim(),\n 'sky-font-heading-3': !icon.innerHTML.trim()\n }\"\n >\n <ng-content select=\"sky-selection-box-header\" />\n </div>\n <div\n class=\"sky-selection-box-description\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n <ng-content select=\"sky-selection-box-description\" />\n </div>\n </div>\n\n <div class=\"sky-selection-box-control\" #control>\n <ng-content select=\"sky-radio\" />\n <ng-content select=\"sky-checkbox\" />\n </div>\n</label>\n", styles: [".sky-selection-box{display:flex;flex-flow:row nowrap;padding:15px;text-align:left}.sky-selection-box:hover{background:#fff;box-shadow:0 0 5px #0000004d,inset 0 0 0 1px #00b4f1}.sky-selection-box:hover .sky-switch-control{border:solid 1px #00b4f1}.sky-selection-box:focus .sky-switch-control{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-selection-box.sky-selection-box-selected{background:#f1eef6}.sky-selection-box.sky-selection-box-disabled{background:#eeeeef}.sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{color:#686c73}.sky-selection-box .sky-selection-box-icon{color:#0974a1;margin:0 10px 0 0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-selection-box .sky-selection-box-icon .sky-icon{font-size:24px!important}.sky-selection-box .sky-selection-box-content{flex:1 1 auto;margin:0 10px 0 0;white-space:initial}.sky-selection-box .sky-selection-box-header{padding-top:3px}.sky-selection-box .sky-selection-box-control{flex:0 0 auto;padding-top:5px}:host-context(.sky-theme-modern) .sky-selection-box{padding:30px}:host-context(.sky-theme-modern) .sky-selection-box:hover{box-shadow:0 1px 3px #0000004d,inset 0 0 0 1px #1870b8}:host-context(.sky-theme-modern) .sky-selection-box:hover .sky-switch-control{border:solid 1px #1870B8}:host-context(.sky-theme-modern) .sky-selection-box:focus .sky-switch-input:not(:disabled):checked+.sky-switch-control{border:none}:host-context(.sky-theme-modern) .sky-selection-box:focus .sky-switch-control{outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8}:host-context(.sky-theme-modern) .sky-selection-box.sky-selection-box-selected,:host-context(.sky-theme-modern) .sky-selection-box:focus.sky-selection-box-selected{background:var(--sky-background-color-item-selected);box-shadow:inset 0 0 0 2px #1870b8,0 1px 8px #0000004d,inset 6px 0 #0974a1}:host-context(.sky-theme-modern) .sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{background:#d2d2d2;color:#686c73}:host-context(.sky-theme-modern) .sky-selection-box .sky-selection-box-icon{color:#0974a1;background:#ebfbff;margin:0 15px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}:host-context(.sky-theme-modern) .sky-selection-box .sky-selection-box-content{margin:0 30px 0 0}:host-context(.sky-theme-modern) .sky-selection-box .sky-selection-box-description{margin:3px 0 0}.sky-theme-modern .sky-selection-box{padding:30px}.sky-theme-modern .sky-selection-box:hover{box-shadow:0 1px 3px #0000004d,inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-selection-box:hover .sky-switch-control{border:solid 1px #1870B8}.sky-theme-modern .sky-selection-box:focus .sky-switch-input:not(:disabled):checked+.sky-switch-control{border:none}.sky-theme-modern .sky-selection-box:focus .sky-switch-control{outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-selection-box.sky-selection-box-selected,.sky-theme-modern .sky-selection-box:focus.sky-selection-box-selected{background:var(--sky-background-color-item-selected);box-shadow:inset 0 0 0 2px #1870b8,0 1px 8px #0000004d,inset 6px 0 #0974a1}.sky-theme-modern .sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{background:#d2d2d2;color:#686c73}.sky-theme-modern .sky-selection-box .sky-selection-box-icon{color:#0974a1;background:#ebfbff;margin:0 15px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-theme-modern .sky-selection-box .sky-selection-box-content{margin:0 30px 0 0}.sky-theme-modern .sky-selection-box .sky-selection-box-description{margin:3px 0 0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkySelectionBoxAdapterService }], target: i0.ɵɵFactoryTarget.Component }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: SkySelectionBoxComponent, selector: "sky-selection-box", inputs: { control: "control" }, viewQueries: [{ propertyName: "controlEl", first: true, predicate: ["control"], descendants: true, read: ElementRef }, { propertyName: "selectionBoxEl", first: true, predicate: ["selectionBox"], descendants: true, read: ElementRef }], ngImport: i0, template: "<label\n class=\"sky-selection-box sky-rounded-corners sky-btn sky-btn-default\"\n [attr.disabled]=\"disabled ? true : null\"\n [ngClass]=\"{\n 'sky-selection-box-selected': checked,\n 'sky-selection-box-disabled': disabled\n }\"\n [skyThemeClass]=\"{\n 'sky-shadow': 'default',\n 'sky-box sky-elevation-1': 'modern'\n }\"\n (keydown)=\"onKeydown($event)\"\n #selectionBox\n>\n <div\n class=\"sky-selection-box-icon\"\n [ngStyle]=\"{\n display: !icon.innerHTML.trim() ? 'none' : ''\n }\"\n #icon\n >\n <ng-content select=\"sky-icon\" />\n </div>\n\n <div class=\"sky-selection-box-content\">\n <div\n class=\"sky-selection-box-header\"\n [ngClass]=\"{\n 'sky-font-heading-2': icon.innerHTML.trim(),\n 'sky-font-heading-3': !icon.innerHTML.trim()\n }\"\n >\n <ng-content select=\"sky-selection-box-header\" />\n </div>\n <div\n class=\"sky-selection-box-description\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n <ng-content select=\"sky-selection-box-description\" />\n </div>\n </div>\n\n <div class=\"sky-selection-box-control\" #control>\n <ng-content select=\"sky-radio\" />\n <ng-content select=\"sky-checkbox\" />\n </div>\n</label>\n", styles: [".sky-selection-box{display:flex;flex-flow:row nowrap;padding:15px;text-align:left}.sky-selection-box:hover{background:#fff;box-shadow:0 0 5px #0000004d,inset 0 0 0 1px #00b4f1}.sky-selection-box:hover .sky-switch-control{border:solid 1px #00b4f1}.sky-selection-box:focus .sky-switch-control{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-selection-box.sky-selection-box-selected{background:#f1eef6}.sky-selection-box.sky-selection-box-disabled{background:#eeeeef}.sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{color:#686c73}.sky-selection-box .sky-selection-box-icon{color:#0974a1;margin:0 10px 0 0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-selection-box .sky-selection-box-icon .sky-icon{font-size:24px!important}.sky-selection-box .sky-selection-box-content{flex:1 1 auto;margin:0 10px 0 0;white-space:initial}.sky-selection-box .sky-selection-box-header{padding-top:3px}.sky-selection-box .sky-selection-box-control{flex:0 0 auto;padding-top:5px}:host-context(.sky-theme-modern) .sky-selection-box{padding:30px}:host-context(.sky-theme-modern) .sky-selection-box:hover{box-shadow:0 1px 3px #0000004d,inset 0 0 0 1px #1870b8}:host-context(.sky-theme-modern) .sky-selection-box:hover .sky-switch-control{border:solid 1px #1870B8}:host-context(.sky-theme-modern) .sky-selection-box:focus .sky-switch-input:not(:disabled):checked+.sky-switch-control{border:none}:host-context(.sky-theme-modern) .sky-selection-box:focus .sky-switch-control{outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8}:host-context(.sky-theme-modern) .sky-selection-box.sky-selection-box-selected,:host-context(.sky-theme-modern) .sky-selection-box:focus.sky-selection-box-selected{background:var(--sky-background-color-item-selected);box-shadow:inset 0 0 0 2px #1870b8,0 1px 8px #0000004d,inset 6px 0 #0974a1}:host-context(.sky-theme-modern) .sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{background:#d2d2d2;color:#686c73}:host-context(.sky-theme-modern) .sky-selection-box .sky-selection-box-icon{color:#0974a1;background:#ebfbff;margin:0 15px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}:host-context(.sky-theme-modern) .sky-selection-box .sky-selection-box-content{margin:0 30px 0 0}:host-context(.sky-theme-modern) .sky-selection-box .sky-selection-box-description{margin:3px 0 0}.sky-theme-modern .sky-selection-box{padding:30px}.sky-theme-modern .sky-selection-box:hover{box-shadow:0 1px 3px #0000004d,inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-selection-box:hover .sky-switch-control{border:solid 1px #1870B8}.sky-theme-modern .sky-selection-box:focus .sky-switch-input:not(:disabled):checked+.sky-switch-control{border:none}.sky-theme-modern .sky-selection-box:focus .sky-switch-control{outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-selection-box.sky-selection-box-selected,.sky-theme-modern .sky-selection-box:focus.sky-selection-box-selected{background:var(--sky-background-color-item-selected);box-shadow:inset 0 0 0 2px #1870b8,0 1px 8px #0000004d,inset 6px 0 #0974a1}.sky-theme-modern .sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{background:#d2d2d2;color:#686c73}.sky-theme-modern .sky-selection-box .sky-selection-box-icon{color:#0974a1;background:#ebfbff;margin:0 15px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-theme-modern .sky-selection-box .sky-selection-box-content{margin:0 30px 0 0}.sky-theme-modern .sky-selection-box .sky-selection-box-description{margin:3px 0 0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
113
113
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxComponent, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxComponent, decorators: [{
115
115
  type: Component,
116
116
  args: [{ selector: 'sky-selection-box', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<label\n class=\"sky-selection-box sky-rounded-corners sky-btn sky-btn-default\"\n [attr.disabled]=\"disabled ? true : null\"\n [ngClass]=\"{\n 'sky-selection-box-selected': checked,\n 'sky-selection-box-disabled': disabled\n }\"\n [skyThemeClass]=\"{\n 'sky-shadow': 'default',\n 'sky-box sky-elevation-1': 'modern'\n }\"\n (keydown)=\"onKeydown($event)\"\n #selectionBox\n>\n <div\n class=\"sky-selection-box-icon\"\n [ngStyle]=\"{\n display: !icon.innerHTML.trim() ? 'none' : ''\n }\"\n #icon\n >\n <ng-content select=\"sky-icon\" />\n </div>\n\n <div class=\"sky-selection-box-content\">\n <div\n class=\"sky-selection-box-header\"\n [ngClass]=\"{\n 'sky-font-heading-2': icon.innerHTML.trim(),\n 'sky-font-heading-3': !icon.innerHTML.trim()\n }\"\n >\n <ng-content select=\"sky-selection-box-header\" />\n </div>\n <div\n class=\"sky-selection-box-description\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n <ng-content select=\"sky-selection-box-description\" />\n </div>\n </div>\n\n <div class=\"sky-selection-box-control\" #control>\n <ng-content select=\"sky-radio\" />\n <ng-content select=\"sky-checkbox\" />\n </div>\n</label>\n", styles: [".sky-selection-box{display:flex;flex-flow:row nowrap;padding:15px;text-align:left}.sky-selection-box:hover{background:#fff;box-shadow:0 0 5px #0000004d,inset 0 0 0 1px #00b4f1}.sky-selection-box:hover .sky-switch-control{border:solid 1px #00b4f1}.sky-selection-box:focus .sky-switch-control{outline:thin dotted;outline:-webkit-focus-ring-color auto 5px}.sky-selection-box.sky-selection-box-selected{background:#f1eef6}.sky-selection-box.sky-selection-box-disabled{background:#eeeeef}.sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{color:#686c73}.sky-selection-box .sky-selection-box-icon{color:#0974a1;margin:0 10px 0 0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-selection-box .sky-selection-box-icon .sky-icon{font-size:24px!important}.sky-selection-box .sky-selection-box-content{flex:1 1 auto;margin:0 10px 0 0;white-space:initial}.sky-selection-box .sky-selection-box-header{padding-top:3px}.sky-selection-box .sky-selection-box-control{flex:0 0 auto;padding-top:5px}:host-context(.sky-theme-modern) .sky-selection-box{padding:30px}:host-context(.sky-theme-modern) .sky-selection-box:hover{box-shadow:0 1px 3px #0000004d,inset 0 0 0 1px #1870b8}:host-context(.sky-theme-modern) .sky-selection-box:hover .sky-switch-control{border:solid 1px #1870B8}:host-context(.sky-theme-modern) .sky-selection-box:focus .sky-switch-input:not(:disabled):checked+.sky-switch-control{border:none}:host-context(.sky-theme-modern) .sky-selection-box:focus .sky-switch-control{outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8}:host-context(.sky-theme-modern) .sky-selection-box.sky-selection-box-selected,:host-context(.sky-theme-modern) .sky-selection-box:focus.sky-selection-box-selected{background:var(--sky-background-color-item-selected);box-shadow:inset 0 0 0 2px #1870b8,0 1px 8px #0000004d,inset 6px 0 #0974a1}:host-context(.sky-theme-modern) .sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{background:#d2d2d2;color:#686c73}:host-context(.sky-theme-modern) .sky-selection-box .sky-selection-box-icon{color:#0974a1;background:#ebfbff;margin:0 15px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}:host-context(.sky-theme-modern) .sky-selection-box .sky-selection-box-content{margin:0 30px 0 0}:host-context(.sky-theme-modern) .sky-selection-box .sky-selection-box-description{margin:3px 0 0}.sky-theme-modern .sky-selection-box{padding:30px}.sky-theme-modern .sky-selection-box:hover{box-shadow:0 1px 3px #0000004d,inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-selection-box:hover .sky-switch-control{border:solid 1px #1870B8}.sky-theme-modern .sky-selection-box:focus .sky-switch-input:not(:disabled):checked+.sky-switch-control{border:none}.sky-theme-modern .sky-selection-box:focus .sky-switch-control{outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-selection-box.sky-selection-box-selected,.sky-theme-modern .sky-selection-box:focus.sky-selection-box-selected{background:var(--sky-background-color-item-selected);box-shadow:inset 0 0 0 2px #1870b8,0 1px 8px #0000004d,inset 6px 0 #0974a1}.sky-theme-modern .sky-selection-box.sky-selection-box-disabled .sky-selection-box-icon{background:#d2d2d2;color:#686c73}.sky-theme-modern .sky-selection-box .sky-selection-box-icon{color:#0974a1;background:#ebfbff;margin:0 15px 0 0;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.sky-theme-modern .sky-selection-box .sky-selection-box-content{margin:0 30px 0 0}.sky-theme-modern .sky-selection-box .sky-selection-box-description{margin:3px 0 0}\n"] }]
117
117
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkySelectionBoxAdapterService }], propDecorators: { control: [{
@@ -8,17 +8,17 @@ import { SkySelectionBoxHeaderComponent } from './selection-box-header.component
8
8
  import { SkySelectionBoxComponent } from './selection-box.component';
9
9
  import * as i0 from "@angular/core";
10
10
  export class SkySelectionBoxModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxModule, declarations: [SkySelectionBoxGridComponent,
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxModule, declarations: [SkySelectionBoxGridComponent,
13
13
  SkySelectionBoxComponent,
14
14
  SkySelectionBoxDescriptionComponent,
15
15
  SkySelectionBoxHeaderComponent], imports: [CommonModule, SkyThemeModule], exports: [SkySelectionBoxGridComponent,
16
16
  SkySelectionBoxComponent,
17
17
  SkySelectionBoxDescriptionComponent,
18
18
  SkySelectionBoxHeaderComponent] }); }
19
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxModule, providers: [SkySelectionBoxAdapterService], imports: [CommonModule, SkyThemeModule] }); }
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxModule, providers: [SkySelectionBoxAdapterService], imports: [CommonModule, SkyThemeModule] }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SkySelectionBoxModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkySelectionBoxModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  declarations: [
@@ -0,0 +1,37 @@
1
+ import { ChangeDetectorRef, Directive, HostBinding, Input, inject, } from '@angular/core';
2
+ import { SkyFormFieldLabelTextRequiredService } from './form-field-label-text-required.service';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Hide form field components of field groups that are missing label text.
6
+ * @internal
7
+ */
8
+ export class SkyFormFieldLabelTextRequiredDirective {
9
+ #changeDetector = inject(ChangeDetectorRef);
10
+ #labelTextRequiredSvc = inject(SkyFormFieldLabelTextRequiredService, {
11
+ optional: true,
12
+ });
13
+ ngOnInit() {
14
+ if (this.#labelTextRequiredSvc) {
15
+ if (this.labelText === undefined) {
16
+ this.display = 'none';
17
+ this.#changeDetector.markForCheck();
18
+ }
19
+ this.#labelTextRequiredSvc.validateLabelText(this.labelText);
20
+ }
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyFormFieldLabelTextRequiredDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: SkyFormFieldLabelTextRequiredDirective, isStandalone: true, selector: "[skyFormFieldLabelTextRequired]", inputs: { labelText: "labelText" }, host: { properties: { "style.display": "this.display" } }, ngImport: i0 }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyFormFieldLabelTextRequiredDirective, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: '[skyFormFieldLabelTextRequired]',
29
+ standalone: true,
30
+ }]
31
+ }], propDecorators: { labelText: [{
32
+ type: Input
33
+ }], display: [{
34
+ type: HostBinding,
35
+ args: ['style.display']
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1sYWJlbC10ZXh0LXJlcXVpcmVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvc2hhcmVkL2Zvcm0tZmllbGQtbGFiZWwtdGV4dC1yZXF1aXJlZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBRWhHOzs7R0FHRztBQUtILE1BQU0sT0FBTyxzQ0FBc0M7SUFPeEMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVDLHFCQUFxQixHQUFHLE1BQU0sQ0FDckMsb0NBQW9DLEVBQ3BDO1FBQ0UsUUFBUSxFQUFFLElBQUk7S0FDZixDQUNGLENBQUM7SUFFSyxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RDLENBQUM7WUFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDOzhHQXhCVSxzQ0FBc0M7a0dBQXRDLHNDQUFzQzs7MkZBQXRDLHNDQUFzQztrQkFKbEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUNBQWlDO29CQUMzQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBR1EsU0FBUztzQkFEZixLQUFLO2dCQUlDLE9BQU87c0JBRGIsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkU2VydmljZSB9IGZyb20gJy4vZm9ybS1maWVsZC1sYWJlbC10ZXh0LXJlcXVpcmVkLnNlcnZpY2UnO1xuXG4vKipcbiAqIEhpZGUgZm9ybSBmaWVsZCBjb21wb25lbnRzIG9mIGZpZWxkIGdyb3VwcyB0aGF0IGFyZSBtaXNzaW5nIGxhYmVsIHRleHQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNreUZvcm1GaWVsZExhYmVsVGV4dFJlcXVpcmVkRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICBwdWJsaWMgZGlzcGxheTogJ25vbmUnIHwgdW5kZWZpbmVkO1xuXG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNsYWJlbFRleHRSZXF1aXJlZFN2YyA9IGluamVjdChcbiAgICBTa3lGb3JtRmllbGRMYWJlbFRleHRSZXF1aXJlZFNlcnZpY2UsXG4gICAge1xuICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgfSxcbiAgKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2xhYmVsVGV4dFJlcXVpcmVkU3ZjKSB7XG4gICAgICBpZiAodGhpcy5sYWJlbFRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNsYWJlbFRleHRSZXF1aXJlZFN2Yy52YWxpZGF0ZUxhYmVsVGV4dCh0aGlzLmxhYmVsVGV4dCk7XG4gICAgfVxuICB9XG59XG4iXX0=