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]

66 lines 9.56 kB
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=