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]
67 lines • 9.05 kB
JavaScript
import { Component, Input } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { Color, mixinDisable, mixinFocus } from '../../core';
import * as i0 from "@angular/core";
import * as i1 from "./radio-button.component";
import * as i2 from "@angular/common";
import * as i3 from "@angular/forms";
const SbRadioButtonGroupCore = mixinDisable(mixinFocus(class {
}));
export class SbRadioButtonGroupComponent extends SbRadioButtonGroupCore {
constructor() {
super(...arguments);
this.color = Color.PRIMARY;
this.name = '';
this.options = new Array();
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(); }
}
SbRadioButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbRadioButtonGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
SbRadioButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: SbRadioButtonGroupComponent, selector: "sb-radio-button-group", inputs: { disabled: "disabled", color: "color", name: "name", options: "options" }, outputs: { focus: "focus", blur: "blur" }, providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: SbRadioButtonGroupComponent,
multi: true
}], usesInheritance: true, ngImport: i0, template: "<div>\n <sb-radio-button\n *ngFor=\"let option of options\"\n [color]=\"color\"\n [(ngModel)]=\"value\"\n [name]=\"name\"\n [label]=\"option\"\n (focus)=\"setFocusedState(true)\"\n (blur)=\"setFocusedState(false)\"\n [disabled]=\"disabled\">\n </sb-radio-button>\n</div>\n", components: [{ type: i1.SbRadioButtonComponent, selector: "sb-radio-button", inputs: ["size", "color", "disabled", "name", "label"], outputs: ["focus", "blur"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbRadioButtonGroupComponent, decorators: [{
type: Component,
args: [{ selector: 'sb-radio-button-group', inputs: [
'disabled'
], outputs: [
'focus',
'blur'
], providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: SbRadioButtonGroupComponent,
multi: true
}], template: "<div>\n <sb-radio-button\n *ngFor=\"let option of options\"\n [color]=\"color\"\n [(ngModel)]=\"value\"\n [name]=\"name\"\n [label]=\"option\"\n (focus)=\"setFocusedState(true)\"\n (blur)=\"setFocusedState(false)\"\n [disabled]=\"disabled\">\n </sb-radio-button>\n</div>\n" }]
}], propDecorators: { color: [{
type: Input
}], name: [{
type: Input
}], options: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NiLWVsZW1lbnQvc3JjL2xpYi9mb3Jtcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NiLWVsZW1lbnQvc3JjL2xpYi9mb3Jtcy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7O0FBRTdELE1BQU0sc0JBQXNCLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQztDQUFRLENBQUMsQ0FBQyxDQUFDO0FBa0JsRSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsc0JBQXNCO0lBaEJ2RTs7UUFtQlMsVUFBSyxHQUFXLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFHOUIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUdsQixZQUFPLEdBQWtCLElBQUksS0FBSyxFQUFVLENBQUM7UUFFNUMsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUN6QixZQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRXhCLGVBQVUsR0FBdUIsU0FBUyxDQUFDO0tBeUJwRDtJQXZCQyxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksS0FBSyxJQUFJLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3hCOztZQUFNLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBYTtRQUM3QixJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzlELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQU8sSUFBVSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsRUFBTyxJQUFVLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBLENBQUMsQ0FBQztJQUN0RCxNQUFNLEtBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBLENBQUMsQ0FBQzs7d0hBckM3QiwyQkFBMkI7NEdBQTNCLDJCQUEyQiwrS0FOM0IsQ0FBQztZQUNWLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLDJCQUEyQjtZQUN4QyxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsaURDcEJKLDRTQVlBOzJGRFVhLDJCQUEyQjtrQkFoQnZDLFNBQVM7K0JBQ0UsdUJBQXVCLFVBRXpCO3dCQUNOLFVBQVU7cUJBQ1gsV0FDUTt3QkFDUCxPQUFPO3dCQUNQLE1BQU07cUJBQ1AsYUFDVSxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsNkJBQTZCOzRCQUN4QyxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDOzhCQUtLLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29sb3IsIG1peGluRGlzYWJsZSwgbWl4aW5Gb2N1cyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuXG5jb25zdCBTYlJhZGlvQnV0dG9uR3JvdXBDb3JlID0gbWl4aW5EaXNhYmxlKG1peGluRm9jdXMoY2xhc3Mge30pKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItcmFkaW8tYnV0dG9uLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWJ1dHRvbi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCdcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICdmb2N1cycsXG4gICAgJ2JsdXInXG4gIF0sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogU2JSYWRpb0J1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIFNiUmFkaW9CdXR0b25Hcm91cENvbXBvbmVudCBleHRlbmRzIFNiUmFkaW9CdXR0b25Hcm91cENvcmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBzdHJpbmcgPSBDb2xvci5QUklNQVJZO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9uczogQXJyYXk8c3RyaW5nPiA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBpbm5lclZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgPT0gJycgfHwgdmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH0gZWxzZSByZXR1cm4gJyc7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlID09ICcnIHx8IHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuIH1cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vblRvdWNoID0gZm4gfVxuICBwdWJsaWMgb25CbHVyKCk6IHZvaWQgeyB0aGlzLm9uVG91Y2goKSB9XG5cbn1cbiIsIjxkaXY+XG4gIDxzYi1yYWRpby1idXR0b25cbiAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW2xhYmVsXT1cIm9wdGlvblwiXG4gICAgKGZvY3VzKT1cInNldEZvY3VzZWRTdGF0ZSh0cnVlKVwiXG4gICAgKGJsdXIpPVwic2V0Rm9jdXNlZFN0YXRlKGZhbHNlKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIDwvc2ItcmFkaW8tYnV0dG9uPlxuPC9kaXY+XG4iXX0=