@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
80 lines • 10.4 kB
JavaScript
import { Directive, forwardRef } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
/**
* Implementation of ControlValueAccessor for sme-form-field
* The selector for this directive must match @see FormFieldComponent.selector. see FormFieldComponent for details.
*/
export class FormFieldAccessorDirective {
/**
* Constructs a new instance of FormInputBaseComponent
*/
constructor() {
// Initialize Values.
this.onChange = MsftSme.noop;
this.onTouched = MsftSme.noop;
this.disabled = false;
this.disabledChange = new Subject();
}
ngOnDestroy() {
this.disabledChange.complete();
}
/**
* Implementation of ControlValueAccessor interface.
* Registers a callback function that should be called when the control's value changes in the UI.
* @param fn the onChange function to call when the control should propagated changes to the view
*/
registerOnChange(fn) {
this.onChange = fn;
}
/**
* Implementation of ControlValueAccessor interface.
* Registers a callback function that should be called when the control receives a blur event.
* @param fn the onTouched function to call when the control should be considered blurred
*/
registerOnTouched(fn) {
this.onTouched = fn;
}
/**
* Implementation of ControlValueAccessor interface.
* Called when the controls status changes to or from "DISABLED"
* @param isDisabled Indicates if the control should be disabled.
*/
setDisabledState(isDisabled) {
this.disabled = isDisabled;
this.disabledChange.next(this.disabled);
}
/**
* Implementation of ControlValueAccessor interface.
* This method will be called by the forms API to write to the view when programmatic (model -> view) changes are requested.
* @param value The new value of the model for this form control
*/
writeValue(value, triggerChange = false) {
this.value = value;
if (triggerChange) {
this.onChange(value);
}
}
/**
* Safety wrapper around value. Value should only be changed from writeValue method
*/
getValue() {
return this.value;
}
}
/** @nocollapse */ FormFieldAccessorDirective.ɵfac = function FormFieldAccessorDirective_Factory(t) { return new (t || FormFieldAccessorDirective)(); };
/** @nocollapse */ FormFieldAccessorDirective.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: FormFieldAccessorDirective, selectors: [["sme-form-field"]], features: [i0.ɵɵProvidersFeature([
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => FormFieldAccessorDirective)), multi: true }
])] });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormFieldAccessorDirective, [{
type: Directive,
args: [{
// eslint-disable-next-line @angular-eslint/directive-selector
selector: 'sme-form-field',
providers: [
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => FormFieldAccessorDirective)), multi: true }
]
}]
}], function () { return []; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1hY2Nlc3Nvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1hY2Nlc3Nvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRS9COzs7R0FHRztBQVFILE1BQU0sT0FBTywwQkFBMEI7SUEyQm5DOztPQUVHO0lBQ0g7UUFDSSxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDakQsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsRUFBMkI7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxpQkFBaUIsQ0FBQyxFQUFrQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxLQUFhLEVBQUUsZ0JBQXlCLEtBQUs7UUFDM0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxhQUFhLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDOzt1SEF2RlEsMEJBQTBCOzRHQUExQiwwQkFBMEIsb0VBSnhCO1lBQ1AsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsRUFBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7U0FDekc7dUZBRVEsMEJBQTBCO2NBUHRDLFNBQVM7ZUFBQztnQkFDUCw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFNBQVMsRUFBRTtvQkFDUCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSwyQkFBMkIsRUFBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7aUJBQ3pHO2FBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciBmb3Igc21lLWZvcm0tZmllbGRcclxuICogVGhlIHNlbGVjdG9yIGZvciB0aGlzIGRpcmVjdGl2ZSBtdXN0IG1hdGNoIEBzZWUgRm9ybUZpZWxkQ29tcG9uZW50LnNlbGVjdG9yLiBzZWUgRm9ybUZpZWxkQ29tcG9uZW50IGZvciBkZXRhaWxzLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxyXG4gICAgc2VsZWN0b3I6ICdzbWUtZm9ybS1maWVsZCcsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb3JtRmllbGRBY2Nlc3NvckRpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZEFjY2Vzc29yRGlyZWN0aXZlPFRNb2RlbD4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGF0IHRoaXMgZm9ybSBjb250cm9sIGlzIGRpc2FibGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpc2FibGVkIGNoYW5nZWQgc3ViamVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGlzYWJsZWRDaGFuZ2U6IFN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQbGFjZWhvbGRlciBmb3IgdGhlIG9uQ2hhbmdlIGNhbGxiYWNrIHRoYXQgaXMgcmVnaXN0ZXJlZCBieSB0aGUgRm9ybXMgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkNoYW5nZTogTXNmdFNtZS5BY3Rpb24xPFRNb2RlbD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQbGFjZWhvbGRlciBmb3IgdGhlIG9uVG91Y2hlZCBjYWxsYmFjayB0aGF0IGlzIHJlZ2lzdGVyZWQgYnkgdGhlIEZvcm1zIEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25Ub3VjaGVkOiBNc2Z0U21lLkFjdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBmb3JtIGNvbnRyb2xzIGFjdHVhbCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHZhbHVlOiBUTW9kZWw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIEZvcm1JbnB1dEJhc2VDb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBWYWx1ZXMuXHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IE1zZnRTbWUubm9vcDtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IE1zZnRTbWUubm9vcDtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZENoYW5nZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWRDaGFuZ2UuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcGxlbWVudGF0aW9uIG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZS5cclxuICAgICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcyBpbiB0aGUgVUkuXHJcbiAgICAgKiBAcGFyYW0gZm4gdGhlIG9uQ2hhbmdlIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgY29udHJvbCBzaG91bGQgcHJvcGFnYXRlZCBjaGFuZ2VzIHRvIHRoZSB2aWV3XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBNc2Z0U21lLkFjdGlvbjE8VE1vZGVsPikge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcGxlbWVudGF0aW9uIG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZS5cclxuICAgICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgYmx1ciBldmVudC5cclxuICAgICAqIEBwYXJhbSBmbiB0aGUgb25Ub3VjaGVkIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgY29udHJvbCBzaG91bGQgYmUgY29uc2lkZXJlZCBibHVycmVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogTXNmdFNtZS5BY3Rpb24pIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wbGVtZW50YXRpb24gb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlLlxyXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGNvbnRyb2xzIHN0YXR1cyBjaGFuZ2VzIHRvIG9yIGZyb20gXCJESVNBQkxFRFwiXHJcbiAgICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRyb2wgc2hvdWxkIGJlIGRpc2FibGVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZENoYW5nZS5uZXh0KHRoaXMuZGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wbGVtZW50YXRpb24gb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlLlxyXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGZvcm1zIEFQSSB0byB3cml0ZSB0byB0aGUgdmlldyB3aGVuIHByb2dyYW1tYXRpYyAobW9kZWwgLT4gdmlldykgY2hhbmdlcyBhcmUgcmVxdWVzdGVkLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBuZXcgdmFsdWUgb2YgdGhlIG1vZGVsIGZvciB0aGlzIGZvcm0gY29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVE1vZGVsLCB0cmlnZ2VyQ2hhbmdlOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHRyaWdnZXJDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2FmZXR5IHdyYXBwZXIgYXJvdW5kIHZhbHVlLiBWYWx1ZSBzaG91bGQgb25seSBiZSBjaGFuZ2VkIGZyb20gd3JpdGVWYWx1ZSBtZXRob2RcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFZhbHVlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==