@ni/nimble-angular 12.1.0 → 12.1.2

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.
@@ -1,5 +1,5 @@
1
1
  import { ElementRef, Injector, OnInit, Renderer2 } from '@angular/core';
2
- import { RadioControlValueAccessor, ɵangular_packages_forms_forms_r } from '@angular/forms';
2
+ import { RadioControlValueAccessor, RadioControlRegistry } from '../../thirdparty/directives/radio_control_value_accessor';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Control Value Accessor implementation for the radio group.
@@ -8,7 +8,7 @@ export declare class NimbleRadioControlValueAccessorDirective extends RadioContr
8
8
  private readonly elementRef;
9
9
  private static _nextOpenId;
10
10
  private _privateOnChange?;
11
- constructor(renderer: Renderer2, elementRef: ElementRef, _registry: ɵangular_packages_forms_forms_r, _injector: Injector);
11
+ constructor(renderer: Renderer2, elementRef: ElementRef, _registry: RadioControlRegistry, _injector: Injector);
12
12
  private static allocateId;
13
13
  ngOnInit(): void;
14
14
  /**
@@ -2,8 +2,9 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./nimble-radio-control-value-accessor.directive";
3
3
  import * as i2 from "./nimble-radio.directive";
4
4
  import * as i3 from "@angular/common";
5
+ import * as i4 from "../../thirdparty/directives/radio_control_value_accessor";
5
6
  export declare class NimbleRadioModule {
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<NimbleRadioModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<NimbleRadioModule, [typeof i1.NimbleRadioControlValueAccessorDirective, typeof i2.NimbleRadioDirective], [typeof i3.CommonModule], [typeof i1.NimbleRadioControlValueAccessorDirective, typeof i2.NimbleRadioDirective]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NimbleRadioModule, [typeof i1.NimbleRadioControlValueAccessorDirective, typeof i2.NimbleRadioDirective], [typeof i3.CommonModule, typeof i4.RadioControlRegistryModule], [typeof i1.NimbleRadioControlValueAccessorDirective, typeof i2.NimbleRadioDirective]>;
8
9
  static ɵinj: i0.ɵɵInjectorDeclaration<NimbleRadioModule>;
9
10
  }
@@ -1,15 +1,14 @@
1
1
  import { Directive, forwardRef } from '@angular/core';
2
2
  // eslint-disable-next-line camelcase
3
- import { NG_VALUE_ACCESSOR, RadioControlValueAccessor } from '@angular/forms';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { RadioGroup } from '@ni/nimble-components/dist/esm/radio-group';
5
+ import { RadioControlValueAccessor } from '../../thirdparty/directives/radio_control_value_accessor';
5
6
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
+ import * as i1 from "../../thirdparty/directives/radio_control_value_accessor";
7
8
  /**
8
9
  * Control Value Accessor implementation for the radio group.
9
10
  */
10
11
  export class NimbleRadioControlValueAccessorDirective extends RadioControlValueAccessor {
11
- // Type ɵangular_packages_forms_forms_r from base class isn't in camelcase
12
- // eslint-disable-next-line camelcase
13
12
  constructor(renderer, elementRef, _registry, _injector) {
14
13
  super(renderer, elementRef, _registry, _injector);
15
14
  this.elementRef = elementRef;
@@ -20,6 +19,7 @@ export class NimbleRadioControlValueAccessorDirective extends RadioControlValueA
20
19
  return id;
21
20
  }
22
21
  ngOnInit() {
22
+ super.ngOnInit();
23
23
  // We need each button element to have a unique string value, because the FAST radio group looks at
24
24
  // these values when trying to manage the checked state.
25
25
  this.elementRef.nativeElement.value = NimbleRadioControlValueAccessorDirective.allocateId();
@@ -63,7 +63,7 @@ export class NimbleRadioControlValueAccessorDirective extends RadioControlValueA
63
63
  }
64
64
  }
65
65
  NimbleRadioControlValueAccessorDirective._nextOpenId = 0;
66
- NimbleRadioControlValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NimbleRadioControlValueAccessorDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.ɵangular_packages_forms_forms_r }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
66
+ NimbleRadioControlValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NimbleRadioControlValueAccessorDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.RadioControlRegistry }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
67
67
  NimbleRadioControlValueAccessorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", type: NimbleRadioControlValueAccessorDirective, selector: "nimble-radio[formControlName],nimble-radio[formControl],nimble-radio[ngModel]", host: { listeners: { "change": "nimbleOnChange($event.target.checked)", "blur": "onTouched()" } }, providers: [{
68
68
  provide: NG_VALUE_ACCESSOR,
69
69
  useExisting: forwardRef(() => NimbleRadioControlValueAccessorDirective),
@@ -82,5 +82,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
82
82
  multi: true
83
83
  }]
84
84
  }]
85
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.ɵangular_packages_forms_forms_r }, { type: i0.Injector }]; } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLXJhZGlvLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmkvbmltYmxlLWFuZ3VsYXIvc3JjL2RpcmVjdGl2ZXMvcmFkaW8vbmltYmxlLXJhZGlvLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUMvRixxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixFQUFtQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7O0FBR3hFOztHQUVHO0FBYUgsTUFBTSxPQUFPLHdDQUF5QyxTQUFRLHlCQUF5QjtJQUluRiwwRUFBMEU7SUFDMUUscUNBQXFDO0lBQ3JDLFlBQW1CLFFBQW1CLEVBQW1CLFVBQXNCLEVBQUUsU0FBMEMsRUFBRSxTQUFtQjtRQUM1SSxLQUFLLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFERyxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBRS9FLENBQUM7SUFFTyxNQUFNLENBQUMsVUFBVTtRQUNyQixNQUFNLEVBQUUsR0FBRyx3Q0FBd0MsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0Usd0NBQXdDLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUMxRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxRQUFRO1FBQ1gsbUdBQW1HO1FBQ25HLHdEQUF3RDtRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQXVCLENBQUMsS0FBSyxHQUFHLHdDQUF3QyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNHLENBQUM7SUFFRDs7O09BR0c7SUFDYSxVQUFVLENBQUMsS0FBYztRQUNyQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sV0FBVyxHQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBdUIsQ0FBQyxhQUFhLENBQUM7UUFDM0UsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssSUFBSSxXQUFXLElBQUksV0FBVyxZQUFZLFVBQVUsRUFBRTtZQUMxRSwyRkFBMkY7WUFDM0YsOEZBQThGO1lBQzlGLDBGQUEwRjtZQUMxRix1RkFBdUY7WUFDdkYsd0VBQXdFO1lBQ3hFLHlGQUF5RjtZQUN6RiwyRkFBMkY7WUFDM0YsZ0VBQWdFO1lBQ2hFLFdBQVcsQ0FBQyxLQUFLLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUF1QixDQUFDLEtBQUssQ0FBQztTQUN0RTtJQUNMLENBQUM7SUFFRCx1RkFBdUY7SUFDdkYsa0dBQWtHO0lBQ2xHLG1HQUFtRztJQUNuRyxnQ0FBZ0M7SUFDaEMsRUFBRTtJQUNGLG9HQUFvRztJQUNwRyxzR0FBc0c7SUFDdEcsMkNBQTJDO0lBQ3BDLGNBQWMsQ0FBQyxPQUFnQjtRQUNsQyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRWUsZ0JBQWdCLENBQUMsRUFBOEM7UUFDM0UsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBUyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7O0FBM0RjLG9EQUFXLEdBQUcsQ0FBQyxDQUFDO3FJQUR0Qix3Q0FBd0M7eUhBQXhDLHdDQUF3QywyTUFOdEMsQ0FBQztZQUNSLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQztZQUN2RSxLQUFLLEVBQUUsSUFBSTtTQUNkLENBQUM7MkZBRU8sd0NBQXdDO2tCQVpwRCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFDSiwrRUFBK0U7b0JBQ25GLDJFQUEyRTtvQkFDM0UscUVBQXFFO29CQUNyRSxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsdUNBQXVDLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRTtvQkFDdEYsU0FBUyxFQUFFLENBQUM7NEJBQ1IsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUNBQXlDLENBQUM7NEJBQ3ZFLEtBQUssRUFBRSxJQUFJO3lCQUNkLENBQUM7aUJBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEluamVjdG9yLCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IsIMm1YW5ndWxhcl9wYWNrYWdlc19mb3Jtc19mb3Jtc19yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmFkaW9Hcm91cCB9IGZyb20gJ0BuaS9uaW1ibGUtY29tcG9uZW50cy9kaXN0L2VzbS9yYWRpby1ncm91cCc7XG5pbXBvcnQgdHlwZSB7IFJhZGlvIH0gZnJvbSAnQG5pL25pbWJsZS1jb21wb25lbnRzL2Rpc3QvZXNtL3JhZGlvJztcblxuLyoqXG4gKiBDb250cm9sIFZhbHVlIEFjY2Vzc29yIGltcGxlbWVudGF0aW9uIGZvciB0aGUgcmFkaW8gZ3JvdXAuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOlxuICAgICAgICAnbmltYmxlLXJhZGlvW2Zvcm1Db250cm9sTmFtZV0sbmltYmxlLXJhZGlvW2Zvcm1Db250cm9sXSxuaW1ibGUtcmFkaW9bbmdNb2RlbF0nLFxuICAgIC8vIFRoZSBmb2xsb3dpbmcgaG9zdCBtZXRhZGF0YSBpcyBkdXBsaWNhdGVkIGZyb20gUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICAgIGhvc3Q6IHsgJyhjaGFuZ2UpJzogJ25pbWJsZU9uQ2hhbmdlKCRldmVudC50YXJnZXQuY2hlY2tlZCknLCAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyB9LFxuICAgIHByb3ZpZGVyczogW3tcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE5pbWJsZVJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUpLFxuICAgICAgICBtdWx0aTogdHJ1ZVxuICAgIH1dXG59KVxuZXhwb3J0IGNsYXNzIE5pbWJsZVJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgZXh0ZW5kcyBSYWRpb0NvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHN0YXRpYyBfbmV4dE9wZW5JZCA9IDA7XG4gICAgcHJpdmF0ZSBfcHJpdmF0ZU9uQ2hhbmdlPzogKCkgPT4gdm9pZDtcblxuICAgIC8vIFR5cGUgybVhbmd1bGFyX3BhY2thZ2VzX2Zvcm1zX2Zvcm1zX3IgZnJvbSBiYXNlIGNsYXNzIGlzbid0IGluIGNhbWVsY2FzZVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2VcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBfcmVnaXN0cnk6IMm1YW5ndWxhcl9wYWNrYWdlc19mb3Jtc19mb3Jtc19yLCBfaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKHJlbmRlcmVyLCBlbGVtZW50UmVmLCBfcmVnaXN0cnksIF9pbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYWxsb2NhdGVJZCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpZCA9IE5pbWJsZVJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUuX25leHRPcGVuSWQudG9TdHJpbmcoKTtcbiAgICAgICAgTmltYmxlUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZS5fbmV4dE9wZW5JZCArPSAxO1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBXZSBuZWVkIGVhY2ggYnV0dG9uIGVsZW1lbnQgdG8gaGF2ZSBhIHVuaXF1ZSBzdHJpbmcgdmFsdWUsIGJlY2F1c2UgdGhlIEZBU1QgcmFkaW8gZ3JvdXAgbG9va3MgYXRcbiAgICAgICAgLy8gdGhlc2UgdmFsdWVzIHdoZW4gdHJ5aW5nIHRvIG1hbmFnZSB0aGUgY2hlY2tlZCBzdGF0ZS5cbiAgICAgICAgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIFJhZGlvKS52YWx1ZSA9IE5pbWJsZVJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUuYWxsb2NhdGVJZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIFwiY2hlY2tlZFwiIHByb3BlcnR5IHZhbHVlIG9uIHRoZSByYWRpbyBpbnB1dCBlbGVtZW50LlxuICAgICAqIEBub2RvY1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICBjb25zdCBwYXJlbnRHcm91cCA9ICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBSYWRpbykucGFyZW50RWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IHZhbHVlICYmIHBhcmVudEdyb3VwICYmIHBhcmVudEdyb3VwIGluc3RhbmNlb2YgUmFkaW9Hcm91cCkge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHdvcmthcm91bmQgdG8gYSBwcm9ibGVtIHdoZXJlIGFsbCBvZiB0aGUgYnV0dG9ucyBhcmUgaW5pdGlhbGl6ZWQgYXMgdW5jaGVja2VkLlxuICAgICAgICAgICAgLy8gVGhlIHJhZGlvIGdyb3VwIHRyaWVzIHRvIHN5bmNocm9uaXplIGl0cyB2YWx1ZSBhbmQgdGhlIGNoZWNrZWQgc3RhdGVzIG9mIHRoZSByYWRpbyBidXR0b25zLlxuICAgICAgICAgICAgLy8gSW4gcmVzcG9uc2UgdG8gdGhlIHNsb3RjaGFuZ2UgRE9NIGV2ZW50LCB0aGUgcmFkaW8gZ3JvdXAgc2V0cyB0aGUgY2hlY2tlZCBzdGF0ZSBvZiBlYWNoXG4gICAgICAgICAgICAvLyBuZXdseSBzbG90dGVkIGJ1dHRvbiwgYmFzZWQgb24gd2hldGhlciB0aGUgYnV0dG9uJ3MgdmFsdWUgbWF0Y2hlcyB0aGUgZ3JvdXAncyB2YWx1ZS5cbiAgICAgICAgICAgIC8vIElmIHRoZSBncm91cCdzIHZhbHVlIGlzIHVuaW5pdGlhbGl6ZWQsIGl0IHVuY2hlY2tzIGFsbCByYWRpbyBidXR0b25zLlxuICAgICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwgdGhpcyBvY2N1cnMgX2FmdGVyXyB0aGUgQ1ZBIGluaXRpYWxpemVzIHRoZSBjaGVja2VkIHN0YXRlIG9mIGVhY2ggcmFkaW9cbiAgICAgICAgICAgIC8vIGJ1dHRvbiwgbWVhbmluZyB0aGUgaW5pdGlhbGx5IGNoZWNrZWQgYnV0dG9uIGdldHMgdW5jaGVja2VkIGJ5IHRoZSBncm91cC4gVG8gYXZvaWQgdGhpcyxcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gc2V0IHRoZSBncm91cCdzIHZhbHVlIHRvIG1hdGNoIHRoZSBjaGVja2VkIGJ1dHRvbi5cbiAgICAgICAgICAgIHBhcmVudEdyb3VwLnZhbHVlID0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIFJhZGlvKS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIEZBU1QgKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmFzdC9pc3N1ZXMvNjM4MSkgdGhhdCBwcmV2ZW50c1xuICAgIC8vIFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IgZnJvbSB3b3JraW5nIHByb3Blcmx5LiBUaGUgZGVmYXVsdCBvbkNoYW5nZSBoYW5kbGVyIGlzIHN1cHBvc2VkIHRvIGJlXG4gICAgLy8gY2FsbGVkIF9vbmx5XyB3aGVuIHJhZGlvIGJ1dHRvbnMgYXJlIGNoZWNrZWQsIGJ1dCB0aGUgRkFTVCBidWcgY2F1c2VzIGl0IHRvIGJlIGNhbGxlZCB3aGVuIHJhZGlvXG4gICAgLy8gYnV0dG9ucyBhcmUgX3VuY2hlY2tlZF8sIHRvby5cbiAgICAvL1xuICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHdlIGVmZmVjdGl2ZWx5IGRpc2FibGUgdGhlIGJhc2UgY2xhc3MncyBvbkNoYW5nZSBoYW5kbGVyIGFuZCByZXBsYWNlIGl0IHdpdGhcbiAgICAvLyBvdXIgb3duIG5pbWJsZU9uQ2hhbmdlLiBOaW1ibGVPbkNoYW5nZSBjYWxscyB0aGUgb3JpZ2luYWwgb25DaGFuZ2UgKG5vdyBjYWNoZWQgYXMgX3ByaXZhdGVPbkNoYW5nZSlcbiAgICAvLyBvbmx5IGlmIHRoZSBjaGFuZ2VkIGl0ZW0gYmVjYW1lIGNoZWNrZWQuXG4gICAgcHVibGljIG5pbWJsZU9uQ2hhbmdlKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoZWNrZWQgJiYgdGhpcy5fcHJpdmF0ZU9uQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9wcml2YXRlT25DaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogdW5rbm93bikgPT4geyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0pOiB2b2lkIHtcbiAgICAgICAgc3VwZXIucmVnaXN0ZXJPbkNoYW5nZShmbik7XG4gICAgICAgIHRoaXMuX3ByaXZhdGVPbkNoYW5nZSA9IHRoaXMub25DaGFuZ2U7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSAoKTogdm9pZCA9PiB7fTtcbiAgICB9XG59Il19
85
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.RadioControlRegistry }, { type: i0.Injector }]; } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLXJhZGlvLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmkvbmltYmxlLWFuZ3VsYXIvc3JjL2RpcmVjdGl2ZXMvcmFkaW8vbmltYmxlLXJhZGlvLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUMvRixxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBd0IsTUFBTSwwREFBMEQsQ0FBQzs7O0FBRTNIOztHQUVHO0FBYUgsTUFBTSxPQUFPLHdDQUF5QyxTQUFRLHlCQUF5QjtJQUluRixZQUFtQixRQUFtQixFQUFtQixVQUFzQixFQUFFLFNBQStCLEVBQUUsU0FBbUI7UUFDakksS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBREcsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUUvRSxDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVU7UUFDckIsTUFBTSxFQUFFLEdBQUcsd0NBQXdDLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNFLHdDQUF3QyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRWUsUUFBUTtRQUNwQixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsbUdBQW1HO1FBQ25HLHdEQUF3RDtRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQXVCLENBQUMsS0FBSyxHQUFHLHdDQUF3QyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNHLENBQUM7SUFFRDs7O09BR0c7SUFDYSxVQUFVLENBQUMsS0FBYztRQUNyQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sV0FBVyxHQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBdUIsQ0FBQyxhQUFhLENBQUM7UUFDM0UsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssSUFBSSxXQUFXLElBQUksV0FBVyxZQUFZLFVBQVUsRUFBRTtZQUMxRSwyRkFBMkY7WUFDM0YsOEZBQThGO1lBQzlGLDBGQUEwRjtZQUMxRix1RkFBdUY7WUFDdkYsd0VBQXdFO1lBQ3hFLHlGQUF5RjtZQUN6RiwyRkFBMkY7WUFDM0YsZ0VBQWdFO1lBQ2hFLFdBQVcsQ0FBQyxLQUFLLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUF1QixDQUFDLEtBQUssQ0FBQztTQUN0RTtJQUNMLENBQUM7SUFFRCx1RkFBdUY7SUFDdkYsa0dBQWtHO0lBQ2xHLG1HQUFtRztJQUNuRyxnQ0FBZ0M7SUFDaEMsRUFBRTtJQUNGLG9HQUFvRztJQUNwRyxzR0FBc0c7SUFDdEcsMkNBQTJDO0lBQ3BDLGNBQWMsQ0FBQyxPQUFnQjtRQUNsQyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRWUsZ0JBQWdCLENBQUMsRUFBOEM7UUFDM0UsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBUyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7O0FBMURjLG9EQUFXLEdBQUcsQ0FBQyxDQUFDO3FJQUR0Qix3Q0FBd0M7eUhBQXhDLHdDQUF3QywyTUFOdEMsQ0FBQztZQUNSLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQztZQUN2RSxLQUFLLEVBQUUsSUFBSTtTQUNkLENBQUM7MkZBRU8sd0NBQXdDO2tCQVpwRCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFDSiwrRUFBK0U7b0JBQ25GLDJFQUEyRTtvQkFDM0UscUVBQXFFO29CQUNyRSxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsdUNBQXVDLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRTtvQkFDdEYsU0FBUyxFQUFFLENBQUM7NEJBQ1IsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUNBQXlDLENBQUM7NEJBQ3ZFLEtBQUssRUFBRSxJQUFJO3lCQUNkLENBQUM7aUJBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEluamVjdG9yLCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSYWRpb0dyb3VwIH0gZnJvbSAnQG5pL25pbWJsZS1jb21wb25lbnRzL2Rpc3QvZXNtL3JhZGlvLWdyb3VwJztcbmltcG9ydCB0eXBlIHsgUmFkaW8gfSBmcm9tICdAbmkvbmltYmxlLWNvbXBvbmVudHMvZGlzdC9lc20vcmFkaW8nO1xuaW1wb3J0IHsgUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciwgUmFkaW9Db250cm9sUmVnaXN0cnkgfSBmcm9tICcuLi8uLi90aGlyZHBhcnR5L2RpcmVjdGl2ZXMvcmFkaW9fY29udHJvbF92YWx1ZV9hY2Nlc3Nvcic7XG5cbi8qKlxuICogQ29udHJvbCBWYWx1ZSBBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIHJhZGlvIGdyb3VwLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjpcbiAgICAgICAgJ25pbWJsZS1yYWRpb1tmb3JtQ29udHJvbE5hbWVdLG5pbWJsZS1yYWRpb1tmb3JtQ29udHJvbF0sbmltYmxlLXJhZGlvW25nTW9kZWxdJyxcbiAgICAvLyBUaGUgZm9sbG93aW5nIGhvc3QgbWV0YWRhdGEgaXMgZHVwbGljYXRlZCBmcm9tIFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgICBob3N0OiB7ICcoY2hhbmdlKSc6ICduaW1ibGVPbkNoYW5nZSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQpJywgJyhibHVyKSc6ICdvblRvdWNoZWQoKScgfSxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOaW1ibGVSYWRpb0NvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlKSxcbiAgICAgICAgbXVsdGk6IHRydWVcbiAgICB9XVxufSlcbmV4cG9ydCBjbGFzcyBOaW1ibGVSYWRpb0NvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIGV4dGVuZHMgUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX25leHRPcGVuSWQgPSAwO1xuICAgIHByaXZhdGUgX3ByaXZhdGVPbkNoYW5nZT86ICgpID0+IHZvaWQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBfcmVnaXN0cnk6IFJhZGlvQ29udHJvbFJlZ2lzdHJ5LCBfaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKHJlbmRlcmVyLCBlbGVtZW50UmVmLCBfcmVnaXN0cnksIF9pbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYWxsb2NhdGVJZCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBpZCA9IE5pbWJsZVJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUuX25leHRPcGVuSWQudG9TdHJpbmcoKTtcbiAgICAgICAgTmltYmxlUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZS5fbmV4dE9wZW5JZCArPSAxO1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICAvLyBXZSBuZWVkIGVhY2ggYnV0dG9uIGVsZW1lbnQgdG8gaGF2ZSBhIHVuaXF1ZSBzdHJpbmcgdmFsdWUsIGJlY2F1c2UgdGhlIEZBU1QgcmFkaW8gZ3JvdXAgbG9va3MgYXRcbiAgICAgICAgLy8gdGhlc2UgdmFsdWVzIHdoZW4gdHJ5aW5nIHRvIG1hbmFnZSB0aGUgY2hlY2tlZCBzdGF0ZS5cbiAgICAgICAgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIFJhZGlvKS52YWx1ZSA9IE5pbWJsZVJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUuYWxsb2NhdGVJZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIFwiY2hlY2tlZFwiIHByb3BlcnR5IHZhbHVlIG9uIHRoZSByYWRpbyBpbnB1dCBlbGVtZW50LlxuICAgICAqIEBub2RvY1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICBjb25zdCBwYXJlbnRHcm91cCA9ICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBSYWRpbykucGFyZW50RWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IHZhbHVlICYmIHBhcmVudEdyb3VwICYmIHBhcmVudEdyb3VwIGluc3RhbmNlb2YgUmFkaW9Hcm91cCkge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHdvcmthcm91bmQgdG8gYSBwcm9ibGVtIHdoZXJlIGFsbCBvZiB0aGUgYnV0dG9ucyBhcmUgaW5pdGlhbGl6ZWQgYXMgdW5jaGVja2VkLlxuICAgICAgICAgICAgLy8gVGhlIHJhZGlvIGdyb3VwIHRyaWVzIHRvIHN5bmNocm9uaXplIGl0cyB2YWx1ZSBhbmQgdGhlIGNoZWNrZWQgc3RhdGVzIG9mIHRoZSByYWRpbyBidXR0b25zLlxuICAgICAgICAgICAgLy8gSW4gcmVzcG9uc2UgdG8gdGhlIHNsb3RjaGFuZ2UgRE9NIGV2ZW50LCB0aGUgcmFkaW8gZ3JvdXAgc2V0cyB0aGUgY2hlY2tlZCBzdGF0ZSBvZiBlYWNoXG4gICAgICAgICAgICAvLyBuZXdseSBzbG90dGVkIGJ1dHRvbiwgYmFzZWQgb24gd2hldGhlciB0aGUgYnV0dG9uJ3MgdmFsdWUgbWF0Y2hlcyB0aGUgZ3JvdXAncyB2YWx1ZS5cbiAgICAgICAgICAgIC8vIElmIHRoZSBncm91cCdzIHZhbHVlIGlzIHVuaW5pdGlhbGl6ZWQsIGl0IHVuY2hlY2tzIGFsbCByYWRpbyBidXR0b25zLlxuICAgICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwgdGhpcyBvY2N1cnMgX2FmdGVyXyB0aGUgQ1ZBIGluaXRpYWxpemVzIHRoZSBjaGVja2VkIHN0YXRlIG9mIGVhY2ggcmFkaW9cbiAgICAgICAgICAgIC8vIGJ1dHRvbiwgbWVhbmluZyB0aGUgaW5pdGlhbGx5IGNoZWNrZWQgYnV0dG9uIGdldHMgdW5jaGVja2VkIGJ5IHRoZSBncm91cC4gVG8gYXZvaWQgdGhpcyxcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gc2V0IHRoZSBncm91cCdzIHZhbHVlIHRvIG1hdGNoIHRoZSBjaGVja2VkIGJ1dHRvbi5cbiAgICAgICAgICAgIHBhcmVudEdyb3VwLnZhbHVlID0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIFJhZGlvKS52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIEZBU1QgKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvZmFzdC9pc3N1ZXMvNjM4MSkgdGhhdCBwcmV2ZW50c1xuICAgIC8vIFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IgZnJvbSB3b3JraW5nIHByb3Blcmx5LiBUaGUgZGVmYXVsdCBvbkNoYW5nZSBoYW5kbGVyIGlzIHN1cHBvc2VkIHRvIGJlXG4gICAgLy8gY2FsbGVkIF9vbmx5XyB3aGVuIHJhZGlvIGJ1dHRvbnMgYXJlIGNoZWNrZWQsIGJ1dCB0aGUgRkFTVCBidWcgY2F1c2VzIGl0IHRvIGJlIGNhbGxlZCB3aGVuIHJhZGlvXG4gICAgLy8gYnV0dG9ucyBhcmUgX3VuY2hlY2tlZF8sIHRvby5cbiAgICAvL1xuICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHdlIGVmZmVjdGl2ZWx5IGRpc2FibGUgdGhlIGJhc2UgY2xhc3MncyBvbkNoYW5nZSBoYW5kbGVyIGFuZCByZXBsYWNlIGl0IHdpdGhcbiAgICAvLyBvdXIgb3duIG5pbWJsZU9uQ2hhbmdlLiBOaW1ibGVPbkNoYW5nZSBjYWxscyB0aGUgb3JpZ2luYWwgb25DaGFuZ2UgKG5vdyBjYWNoZWQgYXMgX3ByaXZhdGVPbkNoYW5nZSlcbiAgICAvLyBvbmx5IGlmIHRoZSBjaGFuZ2VkIGl0ZW0gYmVjYW1lIGNoZWNrZWQuXG4gICAgcHVibGljIG5pbWJsZU9uQ2hhbmdlKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoZWNrZWQgJiYgdGhpcy5fcHJpdmF0ZU9uQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9wcml2YXRlT25DaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogdW5rbm93bikgPT4geyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0pOiB2b2lkIHtcbiAgICAgICAgc3VwZXIucmVnaXN0ZXJPbkNoYW5nZShmbik7XG4gICAgICAgIHRoaXMuX3ByaXZhdGVPbkNoYW5nZSA9IHRoaXMub25DaGFuZ2U7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSAoKTogdm9pZCA9PiB7fTtcbiAgICB9XG59Il19
@@ -2,18 +2,19 @@ import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NimbleRadioControlValueAccessorDirective } from './nimble-radio-control-value-accessor.directive';
4
4
  import { NimbleRadioDirective } from './nimble-radio.directive';
5
+ import { RadioControlRegistryModule } from '../../thirdparty/directives/radio_control_value_accessor';
5
6
  import * as i0 from "@angular/core";
6
7
  export class NimbleRadioModule {
7
8
  }
8
9
  NimbleRadioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NimbleRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- NimbleRadioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NimbleRadioModule, declarations: [NimbleRadioControlValueAccessorDirective, NimbleRadioDirective], imports: [CommonModule], exports: [NimbleRadioControlValueAccessorDirective, NimbleRadioDirective] });
10
- NimbleRadioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NimbleRadioModule, imports: [[CommonModule]] });
10
+ NimbleRadioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NimbleRadioModule, declarations: [NimbleRadioControlValueAccessorDirective, NimbleRadioDirective], imports: [CommonModule, RadioControlRegistryModule], exports: [NimbleRadioControlValueAccessorDirective, NimbleRadioDirective] });
11
+ NimbleRadioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NimbleRadioModule, imports: [[CommonModule, RadioControlRegistryModule]] });
11
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: NimbleRadioModule, decorators: [{
12
13
  type: NgModule,
13
14
  args: [{
14
15
  declarations: [NimbleRadioControlValueAccessorDirective, NimbleRadioDirective],
15
- imports: [CommonModule],
16
+ imports: [CommonModule, RadioControlRegistryModule],
16
17
  exports: [NimbleRadioControlValueAccessorDirective, NimbleRadioDirective]
17
18
  }]
18
19
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLXJhZGlvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pL25pbWJsZS1hbmd1bGFyL3NyYy9kaXJlY3RpdmVzL3JhZGlvL25pbWJsZS1yYWRpby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBT2hFLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFKWCx3Q0FBd0MsRUFBRSxvQkFBb0IsYUFDbkUsWUFBWSxhQUNaLHdDQUF3QyxFQUFFLG9CQUFvQjsrR0FFL0QsaUJBQWlCLFlBSGpCLENBQUMsWUFBWSxDQUFDOzJGQUdkLGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxvQkFBb0IsQ0FBQztvQkFDOUUsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxvQkFBb0IsQ0FBQztpQkFDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5pbWJsZVJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICcuL25pbWJsZS1yYWRpby1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOaW1ibGVSYWRpb0RpcmVjdGl2ZSB9IGZyb20gJy4vbmltYmxlLXJhZGlvLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbTmltYmxlUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSwgTmltYmxlUmFkaW9EaXJlY3RpdmVdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtOaW1ibGVSYWRpb0NvbnRyb2xWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlLCBOaW1ibGVSYWRpb0RpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgTmltYmxlUmFkaW9Nb2R1bGUgeyB9XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmltYmxlLXJhZGlvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pL25pbWJsZS1hbmd1bGFyL3NyYy9kaXJlY3RpdmVzL3JhZGlvL25pbWJsZS1yYWRpby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7O0FBT3RHLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFKWCx3Q0FBd0MsRUFBRSxvQkFBb0IsYUFDbkUsWUFBWSxFQUFFLDBCQUEwQixhQUN4Qyx3Q0FBd0MsRUFBRSxvQkFBb0I7K0dBRS9ELGlCQUFpQixZQUhqQixDQUFDLFlBQVksRUFBRSwwQkFBMEIsQ0FBQzsyRkFHMUMsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLHdDQUF3QyxFQUFFLG9CQUFvQixDQUFDO29CQUM5RSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsMEJBQTBCLENBQUM7b0JBQ25ELE9BQU8sRUFBRSxDQUFDLHdDQUF3QyxFQUFFLG9CQUFvQixDQUFDO2lCQUM1RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmltYmxlUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4vbmltYmxlLXJhZGlvLWNvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5pbWJsZVJhZGlvRGlyZWN0aXZlIH0gZnJvbSAnLi9uaW1ibGUtcmFkaW8uZGlyZWN0aXZlJztcbmltcG9ydCB7IFJhZGlvQ29udHJvbFJlZ2lzdHJ5TW9kdWxlIH0gZnJvbSAnLi4vLi4vdGhpcmRwYXJ0eS9kaXJlY3RpdmVzL3JhZGlvX2NvbnRyb2xfdmFsdWVfYWNjZXNzb3InO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW05pbWJsZVJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUsIE5pbWJsZVJhZGlvRGlyZWN0aXZlXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSYWRpb0NvbnRyb2xSZWdpc3RyeU1vZHVsZV0sXG4gICAgZXhwb3J0czogW05pbWJsZVJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUsIE5pbWJsZVJhZGlvRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBOaW1ibGVSYWRpb01vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,215 @@
1
+ /**
2
+ * [Nimble]
3
+ * Copied from https://github.com/angular/angular/blob/14.2.6/packages/forms/src/directives/control_value_accessor.ts
4
+ * with the following modifications:
5
+ * - Commented out ControlValueAccessor which is exported from @angular/forms
6
+ * - Commented out NG_VALUE_ACCESSOR which is exported from @angular/forms
7
+ */
8
+ /**
9
+ * @license
10
+ * Copyright Google LLC All Rights Reserved.
11
+ *
12
+ * Use of this source code is governed by an MIT-style license that can be
13
+ * found in the LICENSE file at https://angular.io/license
14
+ */
15
+ import { Directive } from '@angular/core';
16
+ import * as i0 from "@angular/core";
17
+ /**
18
+ * @description
19
+ * Defines an interface that acts as a bridge between the Angular forms API and a
20
+ * native element in the DOM.
21
+ *
22
+ * Implement this interface to create a custom form control directive
23
+ * that integrates with Angular forms.
24
+ *
25
+ * @see DefaultValueAccessor
26
+ *
27
+ * @publicApi
28
+ */
29
+ /* [Nimble] Commenting out public interface
30
+ export interface ControlValueAccessor {
31
+ /**
32
+ * @description
33
+ * Writes a new value to the element.
34
+ *
35
+ * This method is called by the forms API to write to the view when programmatic
36
+ * changes from model to view are requested.
37
+ *
38
+ * @usageNotes
39
+ * ### Write a value to the element
40
+ *
41
+ * The following example writes a value to the native DOM element.
42
+ *
43
+ * ```ts
44
+ * writeValue(value: any): void {
45
+ * this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);
46
+ * }
47
+ * ```
48
+ *
49
+ * @param obj The new value for the element
50
+ *
51
+ writeValue(obj: any): void;
52
+
53
+ /**
54
+ * @description
55
+ * Registers a callback function that is called when the control's value
56
+ * changes in the UI.
57
+ *
58
+ * This method is called by the forms API on initialization to update the form
59
+ * model when values propagate from the view to the model.
60
+ *
61
+ * When implementing the `registerOnChange` method in your own value accessor,
62
+ * save the given function so your class calls it at the appropriate time.
63
+ *
64
+ * @usageNotes
65
+ * ### Store the change function
66
+ *
67
+ * The following example stores the provided function as an internal method.
68
+ *
69
+ * ```ts
70
+ * registerOnChange(fn: (_: any) => void): void {
71
+ * this._onChange = fn;
72
+ * }
73
+ * ```
74
+ *
75
+ * When the value changes in the UI, call the registered
76
+ * function to allow the forms API to update itself:
77
+ *
78
+ * ```ts
79
+ * host: {
80
+ * '(change)': '_onChange($event.target.value)'
81
+ * }
82
+ * ```
83
+ *
84
+ * @param fn The callback function to register
85
+ *
86
+ registerOnChange(fn: any): void;
87
+
88
+ /**
89
+ * @description
90
+ * Registers a callback function that is called by the forms API on initialization
91
+ * to update the form model on blur.
92
+ *
93
+ * When implementing `registerOnTouched` in your own value accessor, save the given
94
+ * function so your class calls it when the control should be considered
95
+ * blurred or "touched".
96
+ *
97
+ * @usageNotes
98
+ * ### Store the callback function
99
+ *
100
+ * The following example stores the provided function as an internal method.
101
+ *
102
+ * ```ts
103
+ * registerOnTouched(fn: any): void {
104
+ * this._onTouched = fn;
105
+ * }
106
+ * ```
107
+ *
108
+ * On blur (or equivalent), your class should call the registered function to allow
109
+ * the forms API to update itself:
110
+ *
111
+ * ```ts
112
+ * host: {
113
+ * '(blur)': '_onTouched()'
114
+ * }
115
+ * ```
116
+ *
117
+ * @param fn The callback function to register
118
+ *
119
+ registerOnTouched(fn: any): void;
120
+
121
+ /**
122
+ * @description
123
+ * Function that is called by the forms API when the control status changes to
124
+ * or from 'DISABLED'. Depending on the status, it enables or disables the
125
+ * appropriate DOM element.
126
+ *
127
+ * @usageNotes
128
+ * The following is an example of writing the disabled property to a native DOM element:
129
+ *
130
+ * ```ts
131
+ * setDisabledState(isDisabled: boolean): void {
132
+ * this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);
133
+ * }
134
+ * ```
135
+ *
136
+ * @param isDisabled The disabled status to set on the element
137
+ *
138
+ setDisabledState?(isDisabled: boolean): void;
139
+ }
140
+ */
141
+ /**
142
+ * Base class for all ControlValueAccessor classes defined in Forms package.
143
+ * Contains common logic and utility functions.
144
+ *
145
+ * Note: this is an *internal-only* class and should not be extended or used directly in
146
+ * applications code.
147
+ */
148
+ export class BaseControlValueAccessor {
149
+ constructor(_renderer, _elementRef) {
150
+ this._renderer = _renderer;
151
+ this._elementRef = _elementRef;
152
+ /**
153
+ * The registered callback function called when a change or input event occurs on the input
154
+ * element.
155
+ * @nodoc
156
+ */
157
+ this.onChange = (_) => { };
158
+ /**
159
+ * The registered callback function called when a blur event occurs on the input element.
160
+ * @nodoc
161
+ */
162
+ this.onTouched = () => { };
163
+ }
164
+ /**
165
+ * Helper method that sets a property on a target element using the current Renderer
166
+ * implementation.
167
+ * @nodoc
168
+ */
169
+ setProperty(key, value) {
170
+ this._renderer.setProperty(this._elementRef.nativeElement, key, value);
171
+ }
172
+ /**
173
+ * Registers a function called when the control is touched.
174
+ * @nodoc
175
+ */
176
+ registerOnTouched(fn) {
177
+ this.onTouched = fn;
178
+ }
179
+ /**
180
+ * Registers a function called when the control value changes.
181
+ * @nodoc
182
+ */
183
+ registerOnChange(fn) {
184
+ this.onChange = fn;
185
+ }
186
+ /**
187
+ * Sets the "disabled" property on the range input element.
188
+ * @nodoc
189
+ */
190
+ setDisabledState(isDisabled) {
191
+ this.setProperty('disabled', isDisabled);
192
+ }
193
+ }
194
+ BaseControlValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: BaseControlValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
195
+ BaseControlValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", type: BaseControlValueAccessor, ngImport: i0 });
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: BaseControlValueAccessor, decorators: [{
197
+ type: Directive
198
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; } });
199
+ /**
200
+ * Base class for all built-in ControlValueAccessor classes (except DefaultValueAccessor, which is
201
+ * used in case no other CVAs can be found). We use this class to distinguish between default CVA,
202
+ * built-in CVAs and custom CVAs, so that Forms logic can recognize built-in CVAs and treat custom
203
+ * ones with higher priority (when both built-in and custom CVAs are present).
204
+ *
205
+ * Note: this is an *internal-only* class and should not be extended or used directly in
206
+ * applications code.
207
+ */
208
+ export class BuiltInControlValueAccessor extends BaseControlValueAccessor {
209
+ }
210
+ BuiltInControlValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: BuiltInControlValueAccessor, deps: null, target: i0.ɵɵFactoryTarget.Directive });
211
+ BuiltInControlValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", type: BuiltInControlValueAccessor, usesInheritance: true, ngImport: i0 });
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: BuiltInControlValueAccessor, decorators: [{
213
+ type: Directive
214
+ }] });
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbF92YWx1ZV9hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pL25pbWJsZS1hbmd1bGFyL3NyYy90aGlyZHBhcnR5L2RpcmVjdGl2ZXMvY29udHJvbF92YWx1ZV9hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUF3QyxNQUFNLGVBQWUsQ0FBQzs7QUFFL0U7Ozs7Ozs7Ozs7O0dBV0c7QUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBK0dFO0FBRUY7Ozs7OztHQU1HO0FBRUgsTUFBTSxPQUFPLHdCQUF3QjtJQWNuQyxZQUFvQixTQUFvQixFQUFVLFdBQXVCO1FBQXJELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQWJ6RTs7OztXQUlHO1FBQ0gsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFMUI7OztXQUdHO1FBQ0gsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUV1RCxDQUFDO0lBRTdFOzs7O09BSUc7SUFDTyxXQUFXLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFrQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7cUhBL0NVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFNBQVM7O0FBbURWOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHdCQUF3Qjs7d0hBQTVELDJCQUEyQjs0R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFtOaW1ibGVdXG4gKiBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTQuMi42L3BhY2thZ2VzL2Zvcm1zL3NyYy9kaXJlY3RpdmVzL2NvbnRyb2xfdmFsdWVfYWNjZXNzb3IudHNcbiAqIHdpdGggdGhlIGZvbGxvd2luZyBtb2RpZmljYXRpb25zOlxuICogLSBDb21tZW50ZWQgb3V0IENvbnRyb2xWYWx1ZUFjY2Vzc29yIHdoaWNoIGlzIGV4cG9ydGVkIGZyb20gQGFuZ3VsYXIvZm9ybXNcbiAqIC0gQ29tbWVudGVkIG91dCBOR19WQUxVRV9BQ0NFU1NPUiB3aGljaCBpcyBleHBvcnRlZCBmcm9tIEBhbmd1bGFyL2Zvcm1zXG4gKi9cblxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIERlZmluZXMgYW4gaW50ZXJmYWNlIHRoYXQgYWN0cyBhcyBhIGJyaWRnZSBiZXR3ZWVuIHRoZSBBbmd1bGFyIGZvcm1zIEFQSSBhbmQgYVxuICogbmF0aXZlIGVsZW1lbnQgaW4gdGhlIERPTS5cbiAqXG4gKiBJbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UgdG8gY3JlYXRlIGEgY3VzdG9tIGZvcm0gY29udHJvbCBkaXJlY3RpdmVcbiAqIHRoYXQgaW50ZWdyYXRlcyB3aXRoIEFuZ3VsYXIgZm9ybXMuXG4gKlxuICogQHNlZSBEZWZhdWx0VmFsdWVBY2Nlc3NvclxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuLyogW05pbWJsZV0gQ29tbWVudGluZyBvdXQgcHVibGljIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBlbGVtZW50LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhlIGZvcm1zIEFQSSB0byB3cml0ZSB0byB0aGUgdmlldyB3aGVuIHByb2dyYW1tYXRpY1xuICAgKiBjaGFuZ2VzIGZyb20gbW9kZWwgdG8gdmlldyBhcmUgcmVxdWVzdGVkLlxuICAgKlxuICAgKiBAdXNhZ2VOb3Rlc1xuICAgKiAjIyMgV3JpdGUgYSB2YWx1ZSB0byB0aGUgZWxlbWVudFxuICAgKlxuICAgKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgd3JpdGVzIGEgdmFsdWUgdG8gdGhlIG5hdGl2ZSBET00gZWxlbWVudC5cbiAgICpcbiAgICogYGBgdHNcbiAgICogd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAqICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCB2YWx1ZSk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBvYmogVGhlIG5ldyB2YWx1ZSBmb3IgdGhlIGVsZW1lbnRcbiAgICpcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWVcbiAgICogY2hhbmdlcyBpbiB0aGUgVUkuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgZm9ybXMgQVBJIG9uIGluaXRpYWxpemF0aW9uIHRvIHVwZGF0ZSB0aGUgZm9ybVxuICAgKiBtb2RlbCB3aGVuIHZhbHVlcyBwcm9wYWdhdGUgZnJvbSB0aGUgdmlldyB0byB0aGUgbW9kZWwuXG4gICAqXG4gICAqIFdoZW4gaW1wbGVtZW50aW5nIHRoZSBgcmVnaXN0ZXJPbkNoYW5nZWAgbWV0aG9kIGluIHlvdXIgb3duIHZhbHVlIGFjY2Vzc29yLFxuICAgKiBzYXZlIHRoZSBnaXZlbiBmdW5jdGlvbiBzbyB5b3VyIGNsYXNzIGNhbGxzIGl0IGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lLlxuICAgKlxuICAgKiBAdXNhZ2VOb3Rlc1xuICAgKiAjIyMgU3RvcmUgdGhlIGNoYW5nZSBmdW5jdGlvblxuICAgKlxuICAgKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgc3RvcmVzIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBhcyBhbiBpbnRlcm5hbCBtZXRob2QuXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICogICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBXaGVuIHRoZSB2YWx1ZSBjaGFuZ2VzIGluIHRoZSBVSSwgY2FsbCB0aGUgcmVnaXN0ZXJlZFxuICAgKiBmdW5jdGlvbiB0byBhbGxvdyB0aGUgZm9ybXMgQVBJIHRvIHVwZGF0ZSBpdHNlbGY6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIGhvc3Q6IHtcbiAgICogICAgJyhjaGFuZ2UpJzogJ19vbkNoYW5nZSgkZXZlbnQudGFyZ2V0LnZhbHVlKSdcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIGZuIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byByZWdpc3RlclxuICAgKlxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgYnkgdGhlIGZvcm1zIEFQSSBvbiBpbml0aWFsaXphdGlvblxuICAgKiB0byB1cGRhdGUgdGhlIGZvcm0gbW9kZWwgb24gYmx1ci5cbiAgICpcbiAgICogV2hlbiBpbXBsZW1lbnRpbmcgYHJlZ2lzdGVyT25Ub3VjaGVkYCBpbiB5b3VyIG93biB2YWx1ZSBhY2Nlc3Nvciwgc2F2ZSB0aGUgZ2l2ZW5cbiAgICogZnVuY3Rpb24gc28geW91ciBjbGFzcyBjYWxscyBpdCB3aGVuIHRoZSBjb250cm9sIHNob3VsZCBiZSBjb25zaWRlcmVkXG4gICAqIGJsdXJyZWQgb3IgXCJ0b3VjaGVkXCIuXG4gICAqXG4gICAqIEB1c2FnZU5vdGVzXG4gICAqICMjIyBTdG9yZSB0aGUgY2FsbGJhY2sgZnVuY3Rpb25cbiAgICpcbiAgICogVGhlIGZvbGxvd2luZyBleGFtcGxlIHN0b3JlcyB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gYXMgYW4gaW50ZXJuYWwgbWV0aG9kLlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAqICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIE9uIGJsdXIgKG9yIGVxdWl2YWxlbnQpLCB5b3VyIGNsYXNzIHNob3VsZCBjYWxsIHRoZSByZWdpc3RlcmVkIGZ1bmN0aW9uIHRvIGFsbG93XG4gICAqIHRoZSBmb3JtcyBBUEkgdG8gdXBkYXRlIGl0c2VsZjpcbiAgICpcbiAgICogYGBgdHNcbiAgICogaG9zdDoge1xuICAgKiAgICAnKGJsdXIpJzogJ19vblRvdWNoZWQoKSdcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIGZuIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byByZWdpc3RlclxuICAgKlxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGJ5IHRoZSBmb3JtcyBBUEkgd2hlbiB0aGUgY29udHJvbCBzdGF0dXMgY2hhbmdlcyB0b1xuICAgKiBvciBmcm9tICdESVNBQkxFRCcuIERlcGVuZGluZyBvbiB0aGUgc3RhdHVzLCBpdCBlbmFibGVzIG9yIGRpc2FibGVzIHRoZVxuICAgKiBhcHByb3ByaWF0ZSBET00gZWxlbWVudC5cbiAgICpcbiAgICogQHVzYWdlTm90ZXNcbiAgICogVGhlIGZvbGxvd2luZyBpcyBhbiBleGFtcGxlIG9mIHdyaXRpbmcgdGhlIGRpc2FibGVkIHByb3BlcnR5IHRvIGEgbmF0aXZlIERPTSBlbGVtZW50OlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICogICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIGlzRGlzYWJsZWQpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBUaGUgZGlzYWJsZWQgc3RhdHVzIHRvIHNldCBvbiB0aGUgZWxlbWVudFxuICAgKlxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZDtcbn1cbiovXG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWxsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGNsYXNzZXMgZGVmaW5lZCBpbiBGb3JtcyBwYWNrYWdlLlxuICogQ29udGFpbnMgY29tbW9uIGxvZ2ljIGFuZCB1dGlsaXR5IGZ1bmN0aW9ucy5cbiAqXG4gKiBOb3RlOiB0aGlzIGlzIGFuICppbnRlcm5hbC1vbmx5KiBjbGFzcyBhbmQgc2hvdWxkIG5vdCBiZSBleHRlbmRlZCBvciB1c2VkIGRpcmVjdGx5IGluXG4gKiBhcHBsaWNhdGlvbnMgY29kZS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqXG4gICAqIFRoZSByZWdpc3RlcmVkIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgY2hhbmdlIG9yIGlucHV0IGV2ZW50IG9jY3VycyBvbiB0aGUgaW5wdXRcbiAgICogZWxlbWVudC5cbiAgICogQG5vZG9jXG4gICAqL1xuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaXN0ZXJlZCBjYWxsYmFjayBmdW5jdGlvbiBjYWxsZWQgd2hlbiBhIGJsdXIgZXZlbnQgb2NjdXJzIG9uIHRoZSBpbnB1dCBlbGVtZW50LlxuICAgKiBAbm9kb2NcbiAgICovXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdGhhdCBzZXRzIGEgcHJvcGVydHkgb24gYSB0YXJnZXQgZWxlbWVudCB1c2luZyB0aGUgY3VycmVudCBSZW5kZXJlclxuICAgKiBpbXBsZW1lbnRhdGlvbi5cbiAgICogQG5vZG9jXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0UHJvcGVydHkoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGtleSwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIGlzIHRvdWNoZWQuXG4gICAqIEBub2RvY1xuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHZhbHVlIGNoYW5nZXMuXG4gICAqIEBub2RvY1xuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4ge30pOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgXCJkaXNhYmxlZFwiIHByb3BlcnR5IG9uIHRoZSByYW5nZSBpbnB1dCBlbGVtZW50LlxuICAgKiBAbm9kb2NcbiAgICovXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2V0UHJvcGVydHkoJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgYnVpbHQtaW4gQ29udHJvbFZhbHVlQWNjZXNzb3IgY2xhc3NlcyAoZXhjZXB0IERlZmF1bHRWYWx1ZUFjY2Vzc29yLCB3aGljaCBpc1xuICogdXNlZCBpbiBjYXNlIG5vIG90aGVyIENWQXMgY2FuIGJlIGZvdW5kKS4gV2UgdXNlIHRoaXMgY2xhc3MgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBkZWZhdWx0IENWQSxcbiAqIGJ1aWx0LWluIENWQXMgYW5kIGN1c3RvbSBDVkFzLCBzbyB0aGF0IEZvcm1zIGxvZ2ljIGNhbiByZWNvZ25pemUgYnVpbHQtaW4gQ1ZBcyBhbmQgdHJlYXQgY3VzdG9tXG4gKiBvbmVzIHdpdGggaGlnaGVyIHByaW9yaXR5ICh3aGVuIGJvdGggYnVpbHQtaW4gYW5kIGN1c3RvbSBDVkFzIGFyZSBwcmVzZW50KS5cbiAqXG4gKiBOb3RlOiB0aGlzIGlzIGFuICppbnRlcm5hbC1vbmx5KiBjbGFzcyBhbmQgc2hvdWxkIG5vdCBiZSBleHRlbmRlZCBvciB1c2VkIGRpcmVjdGx5IGluXG4gKiBhcHBsaWNhdGlvbnMgY29kZS5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQnVpbHRJbkNvbnRyb2xWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgQmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbn1cblxuLyoqXG4gKiBVc2VkIHRvIHByb3ZpZGUgYSBgQ29udHJvbFZhbHVlQWNjZXNzb3JgIGZvciBmb3JtIGNvbnRyb2xzLlxuICpcbiAqIFNlZSBgRGVmYXVsdFZhbHVlQWNjZXNzb3JgIGZvciBob3cgdG8gaW1wbGVtZW50IG9uZS5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbi8qIFtOaW1ibGVdIENvbW1lbnRpbmcgb3V0IHB1YmxpYyBpbmplY3Rpb24gdG9rZW5cbmV4cG9ydCBjb25zdCBOR19WQUxVRV9BQ0NFU1NPUiA9XG4gICAgbmV3IEluamVjdGlvblRva2VuPFJlYWRvbmx5QXJyYXk8Q29udHJvbFZhbHVlQWNjZXNzb3I+PignTmdWYWx1ZUFjY2Vzc29yJyk7XG4qLyJdfQ==
@@ -0,0 +1,197 @@
1
+ /**
2
+ * [Nimble]
3
+ * Copied from https://github.com/angular/angular/blob/14.2.6/packages/forms/src/directives/radio_control_value_accessor.ts
4
+ * with the following modifications:
5
+ * - Changed throwNameError() to throw Error instead of RuntimeError. This makes the file compile with Angular version 12.
6
+ * - Removed now-unused import for RuntimeErrorCode and RuntimeError
7
+ * - Updated import of ControlValueAccessor, NgControl, and NG_VALUE_ACCESSOR to pull from package export
8
+ */
9
+ /**
10
+ * @license
11
+ * Copyright Google LLC All Rights Reserved.
12
+ *
13
+ * Use of this source code is governed by an MIT-style license that can be
14
+ * found in the LICENSE file at https://angular.io/license
15
+ */
16
+ import { Directive, forwardRef, Injectable, Input, NgModule } from '@angular/core';
17
+ import { BuiltInControlValueAccessor } from './control_value_accessor';
18
+ import { NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';
19
+ import * as i0 from "@angular/core";
20
+ export const RADIO_VALUE_ACCESSOR = {
21
+ provide: NG_VALUE_ACCESSOR,
22
+ useExisting: forwardRef(() => RadioControlValueAccessor),
23
+ multi: true
24
+ };
25
+ function throwNameError() {
26
+ /* [Nimble] RuntimeErrorCode is not exported from @angular/forms in version 12; falling back to version 12 behavior
27
+ throw new RuntimeError(RuntimeErrorCode.NAME_AND_FORM_CONTROL_NAME_MUST_MATCH, `
28
+ */
29
+ throw new Error(`
30
+ If you define both a name and a formControlName attribute on your radio button, their values
31
+ must match. Ex: <input type="radio" formControlName="food" name="food">
32
+ `);
33
+ }
34
+ /**
35
+ * Internal-only NgModule that works as a host for the `RadioControlRegistry` tree-shakable
36
+ * provider. Note: the `InternalFormsSharedModule` can not be used here directly, since it's
37
+ * declared *after* the `RadioControlRegistry` class and the `providedIn` doesn't support
38
+ * `forwardRef` logic.
39
+ */
40
+ export class RadioControlRegistryModule {
41
+ }
42
+ RadioControlRegistryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: RadioControlRegistryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
43
+ RadioControlRegistryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: RadioControlRegistryModule });
44
+ RadioControlRegistryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: RadioControlRegistryModule });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: RadioControlRegistryModule, decorators: [{
46
+ type: NgModule
47
+ }] });
48
+ /**
49
+ * @description
50
+ * Class used by Angular to track radio buttons. For internal use only.
51
+ */
52
+ export class RadioControlRegistry {
53
+ constructor() {
54
+ this._accessors = [];
55
+ }
56
+ /**
57
+ * @description
58
+ * Adds a control to the internal registry. For internal use only.
59
+ */
60
+ add(control, accessor) {
61
+ this._accessors.push([control, accessor]);
62
+ }
63
+ /**
64
+ * @description
65
+ * Removes a control from the internal registry. For internal use only.
66
+ */
67
+ remove(accessor) {
68
+ for (let i = this._accessors.length - 1; i >= 0; --i) {
69
+ if (this._accessors[i][1] === accessor) {
70
+ this._accessors.splice(i, 1);
71
+ return;
72
+ }
73
+ }
74
+ }
75
+ /**
76
+ * @description
77
+ * Selects a radio button. For internal use only.
78
+ */
79
+ select(accessor) {
80
+ this._accessors.forEach((c) => {
81
+ if (this._isSameGroup(c, accessor) && c[1] !== accessor) {
82
+ c[1].fireUncheck(accessor.value);
83
+ }
84
+ });
85
+ }
86
+ _isSameGroup(controlPair, accessor) {
87
+ if (!controlPair[0].control)
88
+ return false;
89
+ // @ts-expect-error: [Nimble] Use of internal NgControl member _parent
90
+ return controlPair[0]._parent === accessor._control._parent &&
91
+ controlPair[1].name === accessor.name;
92
+ }
93
+ }
94
+ RadioControlRegistry.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: RadioControlRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
95
+ RadioControlRegistry.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: RadioControlRegistry, providedIn: RadioControlRegistryModule });
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: RadioControlRegistry, decorators: [{
97
+ type: Injectable,
98
+ args: [{ providedIn: RadioControlRegistryModule }]
99
+ }] });
100
+ /**
101
+ * @description
102
+ * The `ControlValueAccessor` for writing radio control values and listening to radio control
103
+ * changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and
104
+ * `NgModel` directives.
105
+ *
106
+ * @usageNotes
107
+ *
108
+ * ### Using radio buttons with reactive form directives
109
+ *
110
+ * The follow example shows how to use radio buttons in a reactive form. When using radio buttons in
111
+ * a reactive form, radio buttons in the same group should have the same `formControlName`.
112
+ * Providing a `name` attribute is optional.
113
+ *
114
+ * {@example forms/ts/reactiveRadioButtons/reactive_radio_button_example.ts region='Reactive'}
115
+ *
116
+ * @ngModule ReactiveFormsModule
117
+ * @ngModule FormsModule
118
+ * @publicApi
119
+ */
120
+ export class RadioControlValueAccessor extends BuiltInControlValueAccessor {
121
+ constructor(renderer, elementRef, _registry, _injector) {
122
+ super(renderer, elementRef);
123
+ this._registry = _registry;
124
+ this._injector = _injector;
125
+ /**
126
+ * The registered callback function called when a change event occurs on the input element.
127
+ * Note: we declare `onChange` here (also used as host listener) as a function with no arguments
128
+ * to override the `onChange` function (which expects 1 argument) in the parent
129
+ * `BaseControlValueAccessor` class.
130
+ * @nodoc
131
+ */
132
+ this.onChange = () => { };
133
+ }
134
+ /** @nodoc */
135
+ ngOnInit() {
136
+ this._control = this._injector.get(NgControl);
137
+ this._checkName();
138
+ this._registry.add(this._control, this);
139
+ }
140
+ /** @nodoc */
141
+ ngOnDestroy() {
142
+ this._registry.remove(this);
143
+ }
144
+ /**
145
+ * Sets the "checked" property value on the radio input element.
146
+ * @nodoc
147
+ */
148
+ writeValue(value) {
149
+ this._state = value === this.value;
150
+ this.setProperty('checked', this._state);
151
+ }
152
+ /**
153
+ * Registers a function called when the control value changes.
154
+ * @nodoc
155
+ */
156
+ registerOnChange(fn) {
157
+ this._fn = fn;
158
+ this.onChange = () => {
159
+ fn(this.value);
160
+ this._registry.select(this);
161
+ };
162
+ }
163
+ /**
164
+ * Sets the "value" on the radio input element and unchecks it.
165
+ *
166
+ * @param value
167
+ */
168
+ fireUncheck(value) {
169
+ this.writeValue(value);
170
+ }
171
+ _checkName() {
172
+ if (this.name && this.formControlName && this.name !== this.formControlName &&
173
+ // @ts-expect-error: [Nimble] ngDevMode is not defined
174
+ (typeof ngDevMode === 'undefined' || ngDevMode)) {
175
+ throwNameError();
176
+ }
177
+ if (!this.name && this.formControlName)
178
+ this.name = this.formControlName;
179
+ }
180
+ }
181
+ RadioControlValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: RadioControlValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: RadioControlRegistry }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
182
+ RadioControlValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", type: RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: { name: "name", formControlName: "formControlName", value: "value" }, host: { listeners: { "change": "onChange()", "blur": "onTouched()" } }, providers: [RADIO_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0 });
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: RadioControlValueAccessor, decorators: [{
184
+ type: Directive,
185
+ args: [{
186
+ selector: 'input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]',
187
+ host: { '(change)': 'onChange()', '(blur)': 'onTouched()' },
188
+ providers: [RADIO_VALUE_ACCESSOR]
189
+ }]
190
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: RadioControlRegistry }, { type: i0.Injector }]; }, propDecorators: { name: [{
191
+ type: Input
192
+ }], formControlName: [{
193
+ type: Input
194
+ }], value: [{
195
+ type: Input
196
+ }] } });
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9fY29udHJvbF92YWx1ZV9hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pL25pbWJsZS1hbmd1bGFyL3NyYy90aGlyZHBhcnR5L2RpcmVjdGl2ZXMvcmFkaW9fY29udHJvbF92YWx1ZV9hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUg7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxVQUFVLEVBQUUsVUFBVSxFQUFZLEtBQUssRUFBRSxRQUFRLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBRXJJLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBdUIsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWxGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFRO0lBQ3ZDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztJQUN4RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixTQUFTLGNBQWM7SUFDckI7O01BRUU7SUFDRixNQUFNLElBQUksS0FBSyxDQUFDOzs7S0FHYixDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sMEJBQTBCOzt1SEFBMUIsMEJBQTBCO3dIQUExQiwwQkFBMEI7d0hBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxRQUFROztBQUlUOzs7R0FHRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFVSxlQUFVLEdBQVUsRUFBRSxDQUFDO0tBMkNoQztJQXpDQzs7O09BR0c7SUFDSCxHQUFHLENBQUMsT0FBa0IsRUFBRSxRQUFtQztRQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsUUFBbUM7UUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNwRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLE9BQU87YUFDUjtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxRQUFtQztRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtnQkFDdkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbEM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZLENBQ2hCLFdBQW1ELEVBQ25ELFFBQW1DO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzFDLHNFQUFzRTtRQUN0RSxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQ3ZELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztJQUM1QyxDQUFDOztpSEEzQ1Usb0JBQW9CO3FIQUFwQixvQkFBb0IsY0FEUiwwQkFBMEI7MkZBQ3RDLG9CQUFvQjtrQkFEaEMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSwwQkFBMEIsRUFBQzs7QUErQ3BEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBT0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDJCQUEyQjtJQTBDeEUsWUFDSSxRQUFtQixFQUFFLFVBQXNCLEVBQVUsU0FBK0IsRUFDNUUsU0FBbUI7UUFDN0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUYyQixjQUFTLEdBQVQsU0FBUyxDQUFzQjtRQUM1RSxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBaEMvQjs7Ozs7O1dBTUc7UUFDTSxhQUFRLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBMkI3QixDQUFDO0lBRUQsYUFBYTtJQUNiLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxhQUFhO0lBQ2IsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ00sZ0JBQWdCLENBQUMsRUFBa0I7UUFDMUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNuQixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGVBQWU7WUFDdkUsc0RBQXNEO1lBQ3RELENBQUMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxFQUFFO1lBQ25ELGNBQWMsRUFBRSxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWU7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDM0UsQ0FBQzs7c0hBakdVLHlCQUF5QixxRUEyQ2dDLG9CQUFvQjswR0EzQzdFLHlCQUF5Qiw2UUFGekIsQ0FBQyxvQkFBb0IsQ0FBQzsyRkFFdEIseUJBQXlCO2tCQU5yQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFDSiw4RkFBOEY7b0JBQ2xHLElBQUksRUFBRSxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBQztvQkFDekQsU0FBUyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ2xDOzJHQTRDcUUsb0JBQW9CLGlEQWpCL0UsSUFBSTtzQkFBWixLQUFLO2dCQVFHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBbTmltYmxlXVxuICogQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzE0LjIuNi9wYWNrYWdlcy9mb3Jtcy9zcmMvZGlyZWN0aXZlcy9yYWRpb19jb250cm9sX3ZhbHVlX2FjY2Vzc29yLnRzXG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcbiAqIC0gQ2hhbmdlZCB0aHJvd05hbWVFcnJvcigpIHRvIHRocm93IEVycm9yIGluc3RlYWQgb2YgUnVudGltZUVycm9yLiBUaGlzIG1ha2VzIHRoZSBmaWxlIGNvbXBpbGUgd2l0aCBBbmd1bGFyIHZlcnNpb24gMTIuXG4gKiAtIFJlbW92ZWQgbm93LXVudXNlZCBpbXBvcnQgZm9yIFJ1bnRpbWVFcnJvckNvZGUgYW5kIFJ1bnRpbWVFcnJvclxuICogLSBVcGRhdGVkIGltcG9ydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBhbmQgTkdfVkFMVUVfQUNDRVNTT1IgdG8gcHVsbCBmcm9tIHBhY2thZ2UgZXhwb3J0XG4gKi9cblxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciwgSW5wdXQsIE5nTW9kdWxlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtCdWlsdEluQ29udHJvbFZhbHVlQWNjZXNzb3J9IGZyb20gJy4vY29udHJvbF92YWx1ZV9hY2Nlc3Nvcic7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBSQURJT19WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciksXG4gIG11bHRpOiB0cnVlXG59O1xuXG5mdW5jdGlvbiB0aHJvd05hbWVFcnJvcigpIHtcbiAgLyogW05pbWJsZV0gUnVudGltZUVycm9yQ29kZSBpcyBub3QgZXhwb3J0ZWQgZnJvbSBAYW5ndWxhci9mb3JtcyBpbiB2ZXJzaW9uIDEyOyBmYWxsaW5nIGJhY2sgdG8gdmVyc2lvbiAxMiBiZWhhdmlvclxuICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFJ1bnRpbWVFcnJvckNvZGUuTkFNRV9BTkRfRk9STV9DT05UUk9MX05BTUVfTVVTVF9NQVRDSCwgYFxuICAqL1xuICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgSWYgeW91IGRlZmluZSBib3RoIGEgbmFtZSBhbmQgYSBmb3JtQ29udHJvbE5hbWUgYXR0cmlidXRlIG9uIHlvdXIgcmFkaW8gYnV0dG9uLCB0aGVpciB2YWx1ZXNcbiAgICAgIG11c3QgbWF0Y2guIEV4OiA8aW5wdXQgdHlwZT1cInJhZGlvXCIgZm9ybUNvbnRyb2xOYW1lPVwiZm9vZFwiIG5hbWU9XCJmb29kXCI+XG4gICAgYCk7XG59XG5cbi8qKlxuICogSW50ZXJuYWwtb25seSBOZ01vZHVsZSB0aGF0IHdvcmtzIGFzIGEgaG9zdCBmb3IgdGhlIGBSYWRpb0NvbnRyb2xSZWdpc3RyeWAgdHJlZS1zaGFrYWJsZVxuICogcHJvdmlkZXIuIE5vdGU6IHRoZSBgSW50ZXJuYWxGb3Jtc1NoYXJlZE1vZHVsZWAgY2FuIG5vdCBiZSB1c2VkIGhlcmUgZGlyZWN0bHksIHNpbmNlIGl0J3NcbiAqIGRlY2xhcmVkICphZnRlciogdGhlIGBSYWRpb0NvbnRyb2xSZWdpc3RyeWAgY2xhc3MgYW5kIHRoZSBgcHJvdmlkZWRJbmAgZG9lc24ndCBzdXBwb3J0XG4gKiBgZm9yd2FyZFJlZmAgbG9naWMuXG4gKi9cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgUmFkaW9Db250cm9sUmVnaXN0cnlNb2R1bGUge1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQ2xhc3MgdXNlZCBieSBBbmd1bGFyIHRvIHRyYWNrIHJhZGlvIGJ1dHRvbnMuIEZvciBpbnRlcm5hbCB1c2Ugb25seS5cbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46IFJhZGlvQ29udHJvbFJlZ2lzdHJ5TW9kdWxlfSlcbmV4cG9ydCBjbGFzcyBSYWRpb0NvbnRyb2xSZWdpc3RyeSB7XG4gIHByaXZhdGUgX2FjY2Vzc29yczogYW55W10gPSBbXTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgYSBjb250cm9sIHRvIHRoZSBpbnRlcm5hbCByZWdpc3RyeS4gRm9yIGludGVybmFsIHVzZSBvbmx5LlxuICAgKi9cbiAgYWRkKGNvbnRyb2w6IE5nQ29udHJvbCwgYWNjZXNzb3I6IFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IpIHtcbiAgICB0aGlzLl9hY2Nlc3NvcnMucHVzaChbY29udHJvbCwgYWNjZXNzb3JdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVtb3ZlcyBhIGNvbnRyb2wgZnJvbSB0aGUgaW50ZXJuYWwgcmVnaXN0cnkuIEZvciBpbnRlcm5hbCB1c2Ugb25seS5cbiAgICovXG4gIHJlbW92ZShhY2Nlc3NvcjogUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcikge1xuICAgIGZvciAobGV0IGkgPSB0aGlzLl9hY2Nlc3NvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgIGlmICh0aGlzLl9hY2Nlc3NvcnNbaV1bMV0gPT09IGFjY2Vzc29yKSB7XG4gICAgICAgIHRoaXMuX2FjY2Vzc29ycy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNlbGVjdHMgYSByYWRpbyBidXR0b24uIEZvciBpbnRlcm5hbCB1c2Ugb25seS5cbiAgICovXG4gIHNlbGVjdChhY2Nlc3NvcjogUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcikge1xuICAgIHRoaXMuX2FjY2Vzc29ycy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBpZiAodGhpcy5faXNTYW1lR3JvdXAoYywgYWNjZXNzb3IpICYmIGNbMV0gIT09IGFjY2Vzc29yKSB7XG4gICAgICAgIGNbMV0uZmlyZVVuY2hlY2soYWNjZXNzb3IudmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNTYW1lR3JvdXAoXG4gICAgICBjb250cm9sUGFpcjogW05nQ29udHJvbCwgUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcl0sXG4gICAgICBhY2Nlc3NvcjogUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcik6IGJvb2xlYW4ge1xuICAgIGlmICghY29udHJvbFBhaXJbMF0uY29udHJvbCkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFtOaW1ibGVdIFVzZSBvZiBpbnRlcm5hbCBOZ0NvbnRyb2wgbWVtYmVyIF9wYXJlbnRcbiAgICByZXR1cm4gY29udHJvbFBhaXJbMF0uX3BhcmVudCA9PT0gYWNjZXNzb3IuX2NvbnRyb2wuX3BhcmVudCAmJlxuICAgICAgICBjb250cm9sUGFpclsxXS5uYW1lID09PSBhY2Nlc3Nvci5uYW1lO1xuICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgYENvbnRyb2xWYWx1ZUFjY2Vzc29yYCBmb3Igd3JpdGluZyByYWRpbyBjb250cm9sIHZhbHVlcyBhbmQgbGlzdGVuaW5nIHRvIHJhZGlvIGNvbnRyb2xcbiAqIGNoYW5nZXMuIFRoZSB2YWx1ZSBhY2Nlc3NvciBpcyB1c2VkIGJ5IHRoZSBgRm9ybUNvbnRyb2xEaXJlY3RpdmVgLCBgRm9ybUNvbnRyb2xOYW1lYCwgYW5kXG4gKiBgTmdNb2RlbGAgZGlyZWN0aXZlcy5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqICMjIyBVc2luZyByYWRpbyBidXR0b25zIHdpdGggcmVhY3RpdmUgZm9ybSBkaXJlY3RpdmVzXG4gKlxuICogVGhlIGZvbGxvdyBleGFtcGxlIHNob3dzIGhvdyB0byB1c2UgcmFkaW8gYnV0dG9ucyBpbiBhIHJlYWN0aXZlIGZvcm0uIFdoZW4gdXNpbmcgcmFkaW8gYnV0dG9ucyBpblxuICogYSByZWFjdGl2ZSBmb3JtLCByYWRpbyBidXR0b25zIGluIHRoZSBzYW1lIGdyb3VwIHNob3VsZCBoYXZlIHRoZSBzYW1lIGBmb3JtQ29udHJvbE5hbWVgLlxuICogUHJvdmlkaW5nIGEgYG5hbWVgIGF0dHJpYnV0ZSBpcyBvcHRpb25hbC5cbiAqXG4gKiB7QGV4YW1wbGUgZm9ybXMvdHMvcmVhY3RpdmVSYWRpb0J1dHRvbnMvcmVhY3RpdmVfcmFkaW9fYnV0dG9uX2V4YW1wbGUudHMgcmVnaW9uPSdSZWFjdGl2ZSd9XG4gKlxuICogQG5nTW9kdWxlIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAqIEBuZ01vZHVsZSBGb3Jtc01vZHVsZVxuICogQHB1YmxpY0FwaVxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6XG4gICAgICAnaW5wdXRbdHlwZT1yYWRpb11bZm9ybUNvbnRyb2xOYW1lXSxpbnB1dFt0eXBlPXJhZGlvXVtmb3JtQ29udHJvbF0saW5wdXRbdHlwZT1yYWRpb11bbmdNb2RlbF0nLFxuICBob3N0OiB7JyhjaGFuZ2UpJzogJ29uQ2hhbmdlKCknLCAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJ30sXG4gIHByb3ZpZGVyczogW1JBRElPX1ZBTFVFX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0NvbnRyb2xWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgQnVpbHRJbkNvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudHNcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBPbkluaXQge1xuICAvKiogQGludGVybmFsICovXG4gIC8vIFRPRE8oaXNzdWUvMjQ1NzEpOiByZW1vdmUgJyEnLlxuICBfc3RhdGUhOiBib29sZWFuO1xuICAvKiogQGludGVybmFsICovXG4gIC8vIFRPRE8oaXNzdWUvMjQ1NzEpOiByZW1vdmUgJyEnLlxuICBfY29udHJvbCE6IE5nQ29udHJvbDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICAvLyBUT0RPKGlzc3VlLzI0NTcxKTogcmVtb3ZlICchJy5cbiAgX2ZuITogRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpc3RlcmVkIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgY2hhbmdlIGV2ZW50IG9jY3VycyBvbiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICogTm90ZTogd2UgZGVjbGFyZSBgb25DaGFuZ2VgIGhlcmUgKGFsc28gdXNlZCBhcyBob3N0IGxpc3RlbmVyKSBhcyBhIGZ1bmN0aW9uIHdpdGggbm8gYXJndW1lbnRzXG4gICAqIHRvIG92ZXJyaWRlIHRoZSBgb25DaGFuZ2VgIGZ1bmN0aW9uICh3aGljaCBleHBlY3RzIDEgYXJndW1lbnQpIGluIHRoZSBwYXJlbnRcbiAgICogYEJhc2VDb250cm9sVmFsdWVBY2Nlc3NvcmAgY2xhc3MuXG4gICAqIEBub2RvY1xuICAgKi9cbiAgb3ZlcnJpZGUgb25DaGFuZ2UgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRyYWNrcyB0aGUgbmFtZSBvZiB0aGUgcmFkaW8gaW5wdXQgZWxlbWVudC5cbiAgICovXG4gIC8vIFRPRE8oaXNzdWUvMjQ1NzEpOiByZW1vdmUgJyEnLlxuICBASW5wdXQoKSBuYW1lITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVHJhY2tzIHRoZSBuYW1lIG9mIHRoZSBgRm9ybUNvbnRyb2xgIGJvdW5kIHRvIHRoZSBkaXJlY3RpdmUuIFRoZSBuYW1lIGNvcnJlc3BvbmRzXG4gICAqIHRvIGEga2V5IGluIHRoZSBwYXJlbnQgYEZvcm1Hcm91cGAgb3IgYEZvcm1BcnJheWAuXG4gICAqL1xuICAvLyBUT0RPKGlzc3VlLzI0NTcxKTogcmVtb3ZlICchJy5cbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVHJhY2tzIHRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gaW5wdXQgZWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgdmFsdWU6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX3JlZ2lzdHJ5OiBSYWRpb0NvbnRyb2xSZWdpc3RyeSxcbiAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKHJlbmRlcmVyLCBlbGVtZW50UmVmKTtcbiAgfVxuXG4gIC8qKiBAbm9kb2MgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fY29udHJvbCA9IHRoaXMuX2luamVjdG9yLmdldChOZ0NvbnRyb2wpO1xuICAgIHRoaXMuX2NoZWNrTmFtZSgpO1xuICAgIHRoaXMuX3JlZ2lzdHJ5LmFkZCh0aGlzLl9jb250cm9sLCB0aGlzKTtcbiAgfVxuXG4gIC8qKiBAbm9kb2MgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fcmVnaXN0cnkucmVtb3ZlKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIFwiY2hlY2tlZFwiIHByb3BlcnR5IHZhbHVlIG9uIHRoZSByYWRpbyBpbnB1dCBlbGVtZW50LlxuICAgKiBAbm9kb2NcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gdmFsdWUgPT09IHRoaXMudmFsdWU7XG4gICAgdGhpcy5zZXRQcm9wZXJ0eSgnY2hlY2tlZCcsIHRoaXMuX3N0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAbm9kb2NcbiAgICovXG4gIG92ZXJyaWRlIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHt9KTogdm9pZCB7XG4gICAgdGhpcy5fZm4gPSBmbjtcbiAgICB0aGlzLm9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgZm4odGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLl9yZWdpc3RyeS5zZWxlY3QodGhpcyk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBcInZhbHVlXCIgb24gdGhlIHJhZGlvIGlucHV0IGVsZW1lbnQgYW5kIHVuY2hlY2tzIGl0LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIGZpcmVVbmNoZWNrKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tOYW1lKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hbWUgJiYgdGhpcy5mb3JtQ29udHJvbE5hbWUgJiYgdGhpcy5uYW1lICE9PSB0aGlzLmZvcm1Db250cm9sTmFtZSAmJlxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBbTmltYmxlXSBuZ0Rldk1vZGUgaXMgbm90IGRlZmluZWRcbiAgICAgICAgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcbiAgICAgIHRocm93TmFtZUVycm9yKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5uYW1lICYmIHRoaXMuZm9ybUNvbnRyb2xOYW1lKSB0aGlzLm5hbWUgPSB0aGlzLmZvcm1Db250cm9sTmFtZTtcbiAgfVxufSJdfQ==