UNPKG

@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
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