UNPKG

sb-element

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.0.1. It is a component library constructed around the SCSS library [Sb-Theming](https://github.com/SeverinBuchser/SbTheming) and supports [Angular Schematics]

71 lines 10.5 kB
import { Component, Input, ViewEncapsulation } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { Color, mixinClassName, mixinColor, mixinDisable, mixinFocus } from '../../core'; import * as i0 from "@angular/core"; import * as i1 from "../../core"; import * as i2 from "@angular/forms"; const SbRadioButtonCore = mixinDisable(mixinFocus(mixinColor(mixinClassName(class { constructor(_elementRef, _themeService) { this._elementRef = _elementRef; this._themeService = _themeService; } }, 'sb-radio'), Color.PRIMARY))); export class SbRadioButtonComponent extends SbRadioButtonCore { constructor(elementRef, themeService) { super(elementRef, themeService); this.name = ''; this.label = ''; this.onChange = () => { }; this.onTouch = () => { }; this.innerValue = undefined; } set value(value) { if (value == '' || value !== this.innerValue && !this.disabled) { this.innerValue = value; this.onChange(value); } } get value() { if (this.innerValue) { return this.innerValue; } else return ''; } writeValue(value) { if (value == '' || value !== this.innerValue && !this.disabled) { this.innerValue = value; } } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouch = fn; } onBlur() { this.onTouch(); } } SbRadioButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbRadioButtonComponent, deps: [{ token: i0.ElementRef }, { token: i1.SbThemeService }], target: i0.ɵɵFactoryTarget.Component }); SbRadioButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: SbRadioButtonComponent, selector: "sb-radio-button", inputs: { size: "size", color: "color", disabled: "disabled", name: "name", label: "label" }, outputs: { focus: "focus", blur: "blur" }, host: { properties: { "class.disabled": "disabled" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SbRadioButtonComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<label>\n <input\n type=\"radio\"\n [attr.name]=\"name\"\n [value]=\"label\"\n [(ngModel)]=\"value\"\n (focus)=\"setFocusedState(true)\"\n (blur)=\"setFocusedState(false)\"\n [disabled]=\"disabled\"/>\n <span>{{ label }}</span>\n</label>\n", directives: [{ type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbRadioButtonComponent, decorators: [{ type: Component, args: [{ selector: 'sb-radio-button', encapsulation: ViewEncapsulation.None, host: { '[class.disabled]': 'disabled' }, inputs: [ 'size', 'color', 'disabled' ], outputs: [ 'focus', 'blur' ], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SbRadioButtonComponent, multi: true }], template: "<label>\n <input\n type=\"radio\"\n [attr.name]=\"name\"\n [value]=\"label\"\n [(ngModel)]=\"value\"\n (focus)=\"setFocusedState(true)\"\n (blur)=\"setFocusedState(false)\"\n [disabled]=\"disabled\"/>\n <span>{{ label }}</span>\n</label>\n" }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SbThemeService }]; }, propDecorators: { name: [{ type: Input }], label: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NiLWVsZW1lbnQvc3JjL2xpYi9mb3Jtcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NiLWVsZW1lbnQvc3JjL2xpYi9mb3Jtcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBa0IsTUFBTSxZQUFZLENBQUM7Ozs7QUFFekcsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQ3BDLFVBQVUsQ0FDUixVQUFVLENBQ1IsY0FBYyxDQUNaO0lBQ0UsWUFDUyxXQUF1QixFQUN2QixhQUE2QjtRQUQ3QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7SUFBRyxDQUFDO0NBQzNDLEVBQUUsVUFBVSxDQUNkLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FDakIsQ0FDRixDQUNGLENBQUM7QUF3QkYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGlCQUFpQjtJQTBCM0QsWUFDRSxVQUFzQixFQUN0QixZQUE0QjtRQUU1QixLQUFLLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBM0IzQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBR2xCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFbEIsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUN6QixZQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRXhCLGVBQVUsR0FBdUIsU0FBUyxDQUFDO0lBb0JuRCxDQUFDO0lBbEJELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDeEI7O1lBQU0sT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQVVNLFVBQVUsQ0FBQyxLQUFhO1FBQzdCLElBQUksS0FBSyxJQUFJLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBTyxJQUFVLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBLENBQUMsQ0FBQztJQUN0RCxpQkFBaUIsQ0FBQyxFQUFPLElBQVUsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sS0FBVyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUEsQ0FBQyxDQUFDOzttSEExQzdCLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDJPQU50QixDQUFDO1lBQ1YsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxpREN0Q0osd1FBV0E7MkZENkJhLHNCQUFzQjtrQkF0QmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGlCQUVaLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osa0JBQWtCLEVBQUUsVUFBVTtxQkFDL0IsVUFDTzt3QkFDTixNQUFNO3dCQUNOLE9BQU87d0JBQ1AsVUFBVTtxQkFDWCxXQUNRO3dCQUNQLE9BQU87d0JBQ1AsTUFBTTtxQkFDUCxhQUNVLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx3QkFBd0I7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUM7OEhBS0ssSUFBSTtzQkFEVixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xvciwgbWl4aW5DbGFzc05hbWUsIG1peGluQ29sb3IsIG1peGluRGlzYWJsZSwgbWl4aW5Gb2N1cywgU2JUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlJztcblxuY29uc3QgU2JSYWRpb0J1dHRvbkNvcmUgPSBtaXhpbkRpc2FibGUoXG4gIG1peGluRm9jdXMoXG4gICAgbWl4aW5Db2xvcihcbiAgICAgIG1peGluQ2xhc3NOYW1lKFxuICAgICAgICBjbGFzcyB7XG4gICAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICBwdWJsaWMgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICBwdWJsaWMgX3RoZW1lU2VydmljZTogU2JUaGVtZVNlcnZpY2UpIHt9XG4gICAgICAgIH0sICdzYi1yYWRpbydcbiAgICAgICksIENvbG9yLlBSSU1BUllcbiAgICApXG4gIClcbik7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXJhZGlvLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnXG4gIH0sXG4gIGlucHV0czogW1xuICAgICdzaXplJyxcbiAgICAnY29sb3InLFxuICAgICdkaXNhYmxlZCdcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICdmb2N1cycsXG4gICAgJ2JsdXInXG4gIF0sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogU2JSYWRpb0J1dHRvbkNvbXBvbmVudCxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBTYlJhZGlvQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgU2JSYWRpb0J1dHRvbkNvcmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBpbm5lclZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgPT0gJycgfHwgdmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH0gZWxzZSByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHRoZW1lU2VydmljZTogU2JUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgdGhlbWVTZXJ2aWNlKTtcbiAgfVxuXG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSA9PSAnJyB8fCB2YWx1ZSAhPT0gdGhpcy5pbm5lclZhbHVlICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7IHRoaXMub25DaGFuZ2UgPSBmbiB9XG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IHRoaXMub25Ub3VjaCA9IGZuIH1cbiAgcHVibGljIG9uQmx1cigpOiB2b2lkIHsgdGhpcy5vblRvdWNoKCkgfVxuXG59XG4iLCI8bGFiZWw+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICBbdmFsdWVdPVwibGFiZWxcIlxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIChmb2N1cyk9XCJzZXRGb2N1c2VkU3RhdGUodHJ1ZSlcIlxuICAgIChibHVyKT1cInNldEZvY3VzZWRTdGF0ZShmYWxzZSlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiLz5cbiAgPHNwYW4+e3sgbGFiZWwgfX08L3NwYW4+XG48L2xhYmVsPlxuIl19