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]
66 lines • 9.56 kB
JavaScript
import { Component, ViewEncapsulation } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { Color, mixinClassName, mixinColor, mixinDisable, mixinFocus, mixinSize, mixinTabindex, Size } from '../../core';
import * as i0 from "@angular/core";
import * as i1 from "../../core";
import * as i2 from "@angular/common";
const SbToggleSwitchCore = mixinFocus(mixinDisable(mixinTabindex(mixinSize(mixinColor(mixinClassName(class {
constructor(_elementRef, _themeService) {
this._elementRef = _elementRef;
this._themeService = _themeService;
}
}, 'sb-toggle-switch'), Color.PRIMARY), Size.MEDIUM), 0)));
export class SbToggleSwitchComponent extends SbToggleSwitchCore {
constructor(elementRef, themeService) {
super(elementRef, themeService);
this.onChange = () => { };
this.onTouch = () => { };
this.innerValue = false;
}
toggle() {
this.value = !this.value;
}
set value(value) {
if (value !== this.innerValue && !this.disabled) {
this.innerValue = value;
this.onChange(value);
}
}
get value() {
return this.innerValue;
}
writeValue(value) {
if (value !== this.innerValue && !this.disabled) {
this.innerValue = value;
}
}
registerOnChange(fn) { this.onChange = fn; }
registerOnTouched(fn) { this.onTouch = fn; }
onBlur() { this.onTouch(); }
}
SbToggleSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbToggleSwitchComponent, deps: [{ token: i0.ElementRef }, { token: i1.SbThemeService }], target: i0.ɵɵFactoryTarget.Component });
SbToggleSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: SbToggleSwitchComponent, selector: "sb-toggle[type=switch]", inputs: { size: "size", color: "color", disabled: "disabled" }, host: { listeners: { "click": "toggle()", "focus": "setFocusedState(true)", "blur": "setFocusedState(false)" }, properties: { "class.on": "value", "class.off": "!value", "class.disabled": "disabled" } }, providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: SbToggleSwitchComponent,
multi: true
}], usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"className + '__toggle'\"></div>\n", directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: SbToggleSwitchComponent, decorators: [{
type: Component,
args: [{ selector: 'sb-toggle[type=switch]', encapsulation: ViewEncapsulation.None, host: {
'[class.on]': 'value',
'[class.off]': '!value',
'[class.disabled]': 'disabled',
'(click)': 'toggle()',
'(focus)': 'setFocusedState(true)',
'(blur)': 'setFocusedState(false)'
}, inputs: [
'size',
'color',
'disabled'
], providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: SbToggleSwitchComponent,
multi: true
}], template: "<div [ngClass]=\"className + '__toggle'\"></div>\n" }]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SbThemeService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zYi1lbGVtZW50L3NyYy9saWIvZm9ybXMvdG9nZ2xlLXN3aXRjaC90b2dnbGUtc3dpdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NiLWVsZW1lbnQvc3JjL2xpYi9mb3Jtcy90b2dnbGUtc3dpdGNoL3RvZ2dsZS1zd2l0Y2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWtCLE1BQU0sWUFBWSxDQUFDOzs7O0FBRXpJLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUNuQyxZQUFZLENBQ1YsYUFBYSxDQUNYLFNBQVMsQ0FDUCxVQUFVLENBQ1IsY0FBYyxDQUNaO0lBQ0UsWUFDUyxXQUF1QixFQUN2QixhQUE2QjtRQUQ3QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7SUFBRyxDQUFDO0NBQzNDLEVBQUUsa0JBQWtCLENBQ3RCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FDakIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUNmLEVBQUUsQ0FBQyxDQUNMLENBQ0YsQ0FDRixDQUFDO0FBeUJGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxrQkFBa0I7SUFzQjdELFlBQ0UsVUFBc0IsRUFDdEIsWUFBNEI7UUFFNUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQXBCMUIsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUN6QixZQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRXhCLGVBQVUsR0FBWSxLQUFLLENBQUM7SUFrQnBDLENBQUM7SUF6Qk0sTUFBTTtRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFPRCxJQUFJLEtBQUssQ0FBQyxLQUFjO1FBQ3RCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFVTSxVQUFVLENBQUMsS0FBYztRQUM5QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFPLElBQVUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBQ3RELGlCQUFpQixDQUFDLEVBQU8sSUFBVSxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFDdEQsTUFBTSxLQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQSxDQUFDLENBQUM7O29IQXRDN0IsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNlRBTnZCLENBQUM7WUFDVixPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSx1QkFBdUI7WUFDcEMsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLGlEQzNDSixvREFDQTsyRkQ0Q2EsdUJBQXVCO2tCQXZCbkMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBRW5CLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osWUFBWSxFQUFFLE9BQU87d0JBQ3JCLGFBQWEsRUFBRSxRQUFRO3dCQUN2QixrQkFBa0IsRUFBRSxVQUFVO3dCQUM5QixTQUFTLEVBQUUsVUFBVTt3QkFDckIsU0FBUyxFQUFFLHVCQUF1Qjt3QkFDbEMsUUFBUSxFQUFFLHdCQUF3QjtxQkFDbkMsVUFDTzt3QkFDTixNQUFNO3dCQUNOLE9BQU87d0JBQ1AsVUFBVTtxQkFDWCxhQUNVLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx5QkFBeUI7NEJBQ3BDLEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xvciwgbWl4aW5DbGFzc05hbWUsIG1peGluQ29sb3IsIG1peGluRGlzYWJsZSwgbWl4aW5Gb2N1cywgbWl4aW5TaXplLCBtaXhpblRhYmluZGV4LCBTaXplLCBTYlRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuXG5jb25zdCBTYlRvZ2dsZVN3aXRjaENvcmUgPSBtaXhpbkZvY3VzKFxuICBtaXhpbkRpc2FibGUoXG4gICAgbWl4aW5UYWJpbmRleChcbiAgICAgIG1peGluU2l6ZShcbiAgICAgICAgbWl4aW5Db2xvcihcbiAgICAgICAgICBtaXhpbkNsYXNzTmFtZShcbiAgICAgICAgICAgIGNsYXNzIHtcbiAgICAgICAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICAgICAgcHVibGljIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIHB1YmxpYyBfdGhlbWVTZXJ2aWNlOiBTYlRoZW1lU2VydmljZSkge31cbiAgICAgICAgICAgIH0sICdzYi10b2dnbGUtc3dpdGNoJ1xuICAgICAgICAgICksIENvbG9yLlBSSU1BUllcbiAgICAgICAgKSwgU2l6ZS5NRURJVU1cbiAgICAgICksIDBcbiAgICApXG4gIClcbik7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXRvZ2dsZVt0eXBlPXN3aXRjaF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLXN3aXRjaC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLm9uXSc6ICd2YWx1ZScsXG4gICAgJ1tjbGFzcy5vZmZdJzogJyF2YWx1ZScsXG4gICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICcoY2xpY2spJzogJ3RvZ2dsZSgpJyxcbiAgICAnKGZvY3VzKSc6ICdzZXRGb2N1c2VkU3RhdGUodHJ1ZSknLFxuICAgICcoYmx1ciknOiAnc2V0Rm9jdXNlZFN0YXRlKGZhbHNlKSdcbiAgfSxcbiAgaW5wdXRzOiBbXG4gICAgJ3NpemUnLFxuICAgICdjb2xvcicsXG4gICAgJ2Rpc2FibGVkJ1xuICBdLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IFNiVG9nZ2xlU3dpdGNoQ29tcG9uZW50LFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIFNiVG9nZ2xlU3dpdGNoQ29tcG9uZW50IGV4dGVuZHMgU2JUb2dnbGVTd2l0Y2hDb3JlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICF0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBpbm5lclZhbHVlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2V0IHZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHRoZW1lU2VydmljZTogU2JUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgdGhlbWVTZXJ2aWNlKTtcbiAgfVxuXG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuaW5uZXJWYWx1ZSAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uQ2hhbmdlID0gZm4gfVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQgeyB0aGlzLm9uVG91Y2ggPSBmbiB9XG4gIHB1YmxpYyBvbkJsdXIoKTogdm9pZCB7IHRoaXMub25Ub3VjaCgpIH1cblxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJjbGFzc05hbWUgKyAnX190b2dnbGUnXCI+PC9kaXY+XG4iXX0=