@anjuna/angular-core
Version:
<p align="center"> <img src="//cdn.zuora.com/theme/0.6.0/assets/anjuna/anjuna-logo.svg"/> <br/><br/> </p>
106 lines • 11.8 kB
JavaScript
import { __decorate, __metadata, __param } from "tslib";
import { ChangeDetectorRef, ElementRef, EventEmitter, HostBinding, HostListener, Injector, AfterViewInit, Optional, Output, OnDestroy, Type, Directive } from '@angular/core';
import { ControlValueAccessor, FormControl, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
var ValueAccessor = /** @class */ (function () {
function ValueAccessor(element, parentForm, parentGroup, injector, changeRef) {
this.element = element;
this.injector = injector;
this.changeRef = changeRef;
/**
* Enable two-way binding
*/
this.valueChange = new EventEmitter();
this.onChange = function () { };
this.onTouched = function () { };
this.parent = parentForm ? parentForm : parentGroup ? parentGroup : null;
}
Object.defineProperty(ValueAccessor.prototype, "isInvalid", {
get: function () {
if (!this.ngControl) {
return false;
}
var isSubmitted = (this.parent && this.parent.submitted);
return this.ngControl.invalid && (this.ngControl.touched || isSubmitted);
},
enumerable: true,
configurable: true
});
ValueAccessor.prototype.ngAfterViewInit = function () {
var _this = this;
var control = this.injector.get(NgControl, null);
if (control) {
this.ngControl = control.control;
this.element.nativeElement.validationStrategy = this;
}
if (this.parent && this.parent.statusChanges) {
this.parentSubscription = this.parent.statusChanges.subscribe({
next: function () {
_this.changeRef.markForCheck();
}
});
}
};
ValueAccessor.prototype.ngOnDestroy = function () {
if (this.parentSubscription) {
this.parentSubscription.unsubscribe();
}
};
ValueAccessor.prototype.onAnjBlur = function () {
this.onTouched();
};
ValueAccessor.prototype.writeValue = function (value) {
this.element.nativeElement.value = this.lastValue = value == null ? '' : value;
};
ValueAccessor.prototype.onChangeEvent = function (value) {
if (value !== this.lastValue) {
this.lastValue = value;
this.onChange(value);
this.valueChange.emit(value);
}
};
ValueAccessor.prototype.registerOnChange = function (fn) {
this.onChange = fn;
};
ValueAccessor.prototype.registerOnTouched = function (fn) {
this.onTouched = fn;
};
ValueAccessor.prototype.setDisabledState = function (isDisabled) {
this.element.nativeElement.disabled = isDisabled;
};
// Called by Anjuna Element, so needs to exist, but Angular does all the hoof-work
ValueAccessor.prototype.onValidChange = function () { };
ValueAccessor.ctorParameters = function () { return [
{ type: ElementRef },
{ type: NgForm },
{ type: FormGroupDirective },
{ type: Injector },
{ type: ChangeDetectorRef, decorators: [{ type: Optional }] }
]; };
__decorate([
HostBinding('attr.invalid'),
__metadata("design:type", Boolean),
__metadata("design:paramtypes", [])
], ValueAccessor.prototype, "isInvalid", null);
__decorate([
Output(),
__metadata("design:type", EventEmitter)
], ValueAccessor.prototype, "valueChange", void 0);
__decorate([
HostListener('anjBlur'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], ValueAccessor.prototype, "onAnjBlur", null);
ValueAccessor = __decorate([
Directive(),
__param(4, Optional()),
__metadata("design:paramtypes", [ElementRef,
NgForm,
FormGroupDirective,
Injector,
ChangeDetectorRef])
], ValueAccessor);
return ValueAccessor;
}());
export { ValueAccessor };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5qdW5hL2FuZ3VsYXItY29yZS8iLCJzb3VyY2VzIjpbImxpYi9mb3Jtcy9kaXJlY3RpdmVzL3ZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQzdELFlBQVksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUc7SUF1QkksdUJBQ2MsT0FBbUIsRUFDN0IsVUFBa0IsRUFDbEIsV0FBK0IsRUFDckIsUUFBa0IsRUFDTixTQUE0QjtRQUp4QyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBR25CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDTixjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQWpCdEQ7O1dBRUc7UUFDdUIsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQU0zRSxhQUFRLEdBQXlCLGNBQVcsQ0FBQyxDQUFDO1FBQ3RELGNBQVMsR0FBZSxjQUFXLENBQUMsQ0FBQztRQVE3QixJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pGLENBQUM7SUE1QjRCLHNCQUFJLG9DQUFTO2FBQWI7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2pCLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsSUFBTSxXQUFXLEdBQUcsQ0FB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QXRGRCxJQXNGQztTQXRGWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgQWZ0ZXJWaWV3SW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgT25EZXN0cm95LCBUeXBlLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0NvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBWYWx1ZUFjY2Vzc29yIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaW52YWxpZCcpIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzU3VibWl0dGVkID0gKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LnN1Ym1pdHRlZCk7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5pbnZhbGlkICYmICh0aGlzLm5nQ29udHJvbC50b3VjaGVkIHx8IGlzU3VibWl0dGVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGUgdHdvLXdheSBiaW5kaW5nXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByb3RlY3RlZCBuZ0NvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHByb3RlY3RlZCBsYXN0VmFsdWU6IGFueTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudDogTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlIHwgbnVsbDtcbiAgICBwcml2YXRlIHBhcmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4gey8qKi99O1xuICAgIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHsvKiovfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgICAgICBwYXJlbnRHcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgICAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnRGb3JtID8gcGFyZW50Rm9ybSA6IHBhcmVudEdyb3VwID8gcGFyZW50R3JvdXAgOiBudWxsO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgY29uc3QgY29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQ8TmdDb250cm9sPihOZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBUeXBlPE5nQ29udHJvbD4sIG51bGwpO1xuXG4gICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbCA9IGNvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbGlkYXRpb25TdHJhdGVneSA9IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQuc3RhdHVzQ2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRTdWJzY3JpcHRpb24gPSB0aGlzLnBhcmVudC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdhbmpCbHVyJylcbiAgICBvbkFuakJsdXIoKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZSA9PSBudWxsID8gJycgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZUV2ZW50KHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLmxhc3RWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gQ2FsbGVkIGJ5IEFuanVuYSBFbGVtZW50LCBzbyBuZWVkcyB0byBleGlzdCwgYnV0IEFuZ3VsYXIgZG9lcyBhbGwgdGhlIGhvb2Ytd29ya1xuICAgIG9uVmFsaWRDaGFuZ2UoKSB7IC8qKi8gfVxufVxuIl19