UNPKG

@junte/ui

Version:

Quality Angular UI components kit

116 lines 11.4 kB
var RadioComponent_1; import { __decorate, __metadata } from "tslib"; import { Component, ContentChild, forwardRef, HostBinding, HostListener, Input, TemplateRef } from '@angular/core'; import { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms'; import { NGXLogger } from 'ngx-logger'; import { PropertyApi } from '../../core/decorators/api'; import { Size } from '../../core/enums/size'; import { UI } from '../../core/enums/ui'; let RadioComponent = RadioComponent_1 = class RadioComponent { constructor(fb, logger) { this.fb = fb; this.logger = logger; this.ui = UI; this.host = 'jnt-radio-host'; this.radioControl = this.fb.control(false); this.form = this.fb.group({ radio: this.radioControl }); this._size = Size.normal; this.onChange = () => this.logger.error('value accessor is not registered'); this.onTouched = () => this.logger.error('value accessor is not registered'); this.registerOnChange = fn => this.onChange = fn; this.registerOnTouched = fn => this.onTouched = fn; this.onBlur = () => this.onTouched(); } get checked() { return this.radioControl.value; } set size(size) { this._size = size || Size.normal; } ngOnInit() { this.radioControl.valueChanges .subscribe(() => this.onChange(true)); } writeValue(value) { this.radioControl.setValue(value, { emitEvent: false }); } setDisabledState(disabled) { disabled ? this.radioControl.disable({ emitEvent: false }) : this.radioControl.enable({ emitEvent: false }); } }; RadioComponent.ctorParameters = () => [ { type: FormBuilder }, { type: NGXLogger } ]; __decorate([ HostBinding('attr.host'), __metadata("design:type", Object) ], RadioComponent.prototype, "host", void 0); __decorate([ HostBinding('attr.data-checked'), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], RadioComponent.prototype, "checked", null); __decorate([ HostBinding('attr.data-size'), __metadata("design:type", Object) ], RadioComponent.prototype, "_size", void 0); __decorate([ PropertyApi({ description: 'Size for radio button', type: 'string', path: 'ui.size', options: [ Size.tiny, Size.small, Size.normal, Size.large ], default: Size.normal }), Input(), __metadata("design:type", String), __metadata("design:paramtypes", [String]) ], RadioComponent.prototype, "size", null); __decorate([ PropertyApi({ description: 'Label name for radio button', type: 'string' }), Input(), __metadata("design:type", String) ], RadioComponent.prototype, "label", void 0); __decorate([ PropertyApi({ description: 'Value for radio button', type: 'any' }), Input(), __metadata("design:type", Object) ], RadioComponent.prototype, "value", void 0); __decorate([ ContentChild('radioLabelTemplate'), __metadata("design:type", TemplateRef) ], RadioComponent.prototype, "labelTemplate", void 0); __decorate([ HostListener('blur'), __metadata("design:type", Object) ], RadioComponent.prototype, "onBlur", void 0); RadioComponent = RadioComponent_1 = __decorate([ Component({ selector: 'jnt-radio', template: "<form child-of=\"jnt-radio-host\" [formGroup]=\"form\">\n <input child-of=\"jnt-radio-host\" formControlName=\"radio\" type=\"radio\" [attr.custom]=\"!!labelTemplate\" />\n <div child-of=\"jnt-radio-host\" data-switch><span child-of=\"jnt-radio-host\" *ngIf=\"radioControl.value\" data-indicator></span></div>\n <ng-template #labelDefaultTemplate>\n <label child-of=\"jnt-radio-host\" *ngIf=\"label\">{{label}}</label>\n </ng-template>\n <div child-of=\"jnt-radio-host\" label>\n <ng-container *ngTemplateOutlet=\"!!labelTemplate ? labelTemplate : labelDefaultTemplate\"></ng-container>\n </div>\n</form>", providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RadioComponent_1), multi: true }] }), __metadata("design:paramtypes", [FormBuilder, NGXLogger]) ], RadioComponent); export { RadioComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGp1bnRlL3VpLyIsInNvdXJjZXMiOlsibGliL2Zvcm1zL3JhZGlvL3JhZGlvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFXekMsSUFBYSxjQUFjLHNCQUEzQixNQUFhLGNBQWM7SUE0RHpCLFlBQW9CLEVBQWUsRUFDZixNQUFpQjtRQURqQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQTNEckMsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUdDLFNBQUksR0FBRyxnQkFBZ0IsQ0FBQztRQUVqQyxpQkFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDekIsQ0FBQyxDQUFDO1FBUUgsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFvQ3BCLGFBQVEsR0FBeUIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENB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UztHQTdEMUIsY0FBYyxDQTZFMUI7U0E3RVksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5HWExvZ2dlciB9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHsgUHJvcGVydHlBcGkgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMvYXBpJztcbmltcG9ydCB7IFNpemUgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL3NpemUnO1xuaW1wb3J0IHsgVUkgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL3VpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnam50LXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmVuY2Fwc3VsYXRlZC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuXG4gIHVpID0gVUk7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmhvc3QnKVxuICByZWFkb25seSBob3N0ID0gJ2pudC1yYWRpby1ob3N0JztcblxuICByYWRpb0NvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2woZmFsc2UpO1xuICBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgcmFkaW86IHRoaXMucmFkaW9Db250cm9sXG4gIH0pO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWNoZWNrZWQnKVxuICBnZXQgY2hlY2tlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yYWRpb0NvbnRyb2wudmFsdWU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgX3NpemUgPSBTaXplLm5vcm1hbDtcblxuICBAUHJvcGVydHlBcGkoe1xuICAgIGRlc2NyaXB0aW9uOiAnU2l6ZSBmb3IgcmFkaW8gYnV0dG9uJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICBwYXRoOiAndWkuc2l6ZScsXG4gICAgb3B0aW9uczogW1xuICAgICAgU2l6ZS50aW55LFxuICAgICAgU2l6ZS5zbWFsbCxcbiAgICAgIFNpemUubm9ybWFsLFxuICAgICAgU2l6ZS5sYXJnZVxuICAgIF0sXG4gICAgZGVmYXVsdDogU2l6ZS5ub3JtYWxcbiAgfSlcbiAgQElucHV0KClcbiAgc2V0IHNpemUoc2l6ZTogU2l6ZSkge1xuICAgIHRoaXMuX3NpemUgPSBzaXplIHx8IFNpemUubm9ybWFsO1xuICB9XG5cbiAgQFByb3BlcnR5QXBpKHtcbiAgICBkZXNjcmlwdGlvbjogJ0xhYmVsIG5hbWUgZm9yIHJhZGlvIGJ1dHRvbicsXG4gICAgdHlwZTogJ3N0cmluZydcbiAgfSlcbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZztcblxuICBAUHJvcGVydHlBcGkoe1xuICAgIGRlc2NyaXB0aW9uOiAnVmFsdWUgZm9yIHJhZGlvIGJ1dHRvbicsXG4gICAgdHlwZTogJ2FueSdcbiAgfSlcbiAgQElucHV0KClcbiAgdmFsdWU6IGFueTtcblxuICBAQ29udGVudENoaWxkKCdyYWRpb0xhYmVsVGVtcGxhdGUnKVxuICBsYWJlbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHRoaXMubG9nZ2VyLmVycm9yKCd2YWx1ZSBhY2Nlc3NvciBpcyBub3QgcmVnaXN0ZXJlZCcpO1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB0aGlzLmxvZ2dlci5lcnJvcigndmFsdWUgYWNjZXNzb3IgaXMgbm90IHJlZ2lzdGVyZWQnKTtcbiAgcmVnaXN0ZXJPbkNoYW5nZSA9IGZuID0+IHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgcmVnaXN0ZXJPblRvdWNoZWQgPSBmbiA9PiB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICBASG9zdExpc3RlbmVyKCdibHVyJykgb25CbHVyID0gKCkgPT4gdGhpcy5vblRvdWNoZWQoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yYWRpb0NvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub25DaGFuZ2UodHJ1ZSkpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMucmFkaW9Db250cm9sLnNldFZhbHVlKHZhbHVlLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGRpc2FibGVkID8gdGhpcy5yYWRpb0NvbnRyb2wuZGlzYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pXG4gICAgICA6IHRoaXMucmFkaW9Db250cm9sLmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICB9XG59XG4iXX0=