UNPKG

@junte/ui

Version:

Quality Angular UI components kit

67 lines 7.64 kB
var ThemeSwitcherComponent_1; import { __decorate, __metadata } from "tslib"; import { Component, forwardRef, HostBinding, HostListener } from '@angular/core'; import { ControlValueAccessor, FormBuilder, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms'; import { NGXLogger } from 'ngx-logger'; import { Theme } from '../../core/enums/theme'; import { UI } from '../../core/enums/ui'; let ThemeSwitcherComponent = ThemeSwitcherComponent_1 = class ThemeSwitcherComponent { constructor(logger, fb) { this.logger = logger; this.fb = fb; this.host = 'jnt-theme-switcher-host'; this.theme = Theme.light; this.ui = UI; this.themeControl = new FormControl(); this.switcher = this.fb.group({ theme: this.themeControl }); 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(); } ngOnInit() { this.themeControl.valueChanges.subscribe(checked => { this.theme = checked ? Theme.light : Theme.dark; this.onChange(this.theme); }); } writeValue(value) { this.themeControl.setValue(!value || value === Theme.light, { emitEvent: false }); } }; ThemeSwitcherComponent.ctorParameters = () => [ { type: NGXLogger }, { type: FormBuilder } ]; __decorate([ HostBinding('attr.host'), __metadata("design:type", Object) ], ThemeSwitcherComponent.prototype, "host", void 0); __decorate([ HostBinding('attr.theme'), __metadata("design:type", Object) ], ThemeSwitcherComponent.prototype, "theme", void 0); __decorate([ HostListener('blur'), __metadata("design:type", Object) ], ThemeSwitcherComponent.prototype, "onBlur", void 0); ThemeSwitcherComponent = ThemeSwitcherComponent_1 = __decorate([ Component({ selector: 'jnt-theme-switcher', template: "<form child-of=\"jnt-theme-switcher-host\" [formGroup]=\"switcher\">\n <jnt-switch child-of=\"jnt-theme-switcher-host\" data-switch formControlName=\"theme\"\n [icons]=\"{on: ui.icons.solar, off: ui.icons.moon}\"\n [tags]=\"{on: 'Light', off: 'Dark'}\">\n\n </jnt-switch>\n</form>", providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ThemeSwitcherComponent_1), multi: true } ] }), __metadata("design:paramtypes", [NGXLogger, FormBuilder]) ], ThemeSwitcherComponent); export { ThemeSwitcherComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3dpdGNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGp1bnRlL3VpLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC90aGVtZS1zd2l0Y2hlci90aGVtZS1zd2l0Y2hlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBYXpDLElBQWEsc0JBQXNCLDhCQUFuQyxNQUFhLHNCQUFzQjtJQWtCakMsWUFBb0IsTUFBaUIsRUFDakIsRUFBZTtRQURmLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQWpCQSxTQUFJLEdBQUcseUJBQXlCLENBQUM7UUFFekMsVUFBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFFL0MsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLGlCQUFZLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ3pCLENBQUMsQ0FBQztRQUVILGFBQVEsR0FBeUIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUM3RixjQUFTLEdBQWUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUNwRixxQkFBZ0IsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQzVDLHNCQUFpQixHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDeEIsV0FBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUl0RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqRCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNGLENBQUE7O1lBZDZCLFNBQVM7WUFDYixXQUFXOztBQWpCVDtJQUF6QixXQUFXLENBQUMsV0FBVyxDQUFDOztvREFBMkM7QUFFekM7SUFBMUIsV0FBVyxDQUFDLFlBQVksQ0FBQzs7cURBQXFCO0FBWXpCO0lBQXJCLFlBQVksQ0FBQyxNQUFNLENBQUM7O3NEQUFpQztBQWhCM0Msc0JBQXNCO0lBWGxDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxvQkFBb0I7UUFDOUIsZ1VBQWlEO1FBQ2pELFNBQVMsRUFBRTtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXNCLENBQUM7Z0JBQ3JELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjtLQUNGLENBQUM7cUNBbUI0QixTQUFTO1FBQ2IsV0FBVztHQW5CeEIsc0JBQXNCLENBZ0NsQztTQWhDWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOR1hMb2dnZXIgfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSAnLi4vLi4vY29yZS9lbnVtcy90aGVtZSc7XG5pbXBvcnQgeyBVSSB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMvdWknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdqbnQtdGhlbWUtc3dpdGNoZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGhlbWUtc3dpdGNoZXIuZW5jYXBzdWxhdGVkLmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoZW1lU3dpdGNoZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVTd2l0Y2hlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5ob3N0JykgcmVhZG9ubHkgaG9zdCA9ICdqbnQtdGhlbWUtc3dpdGNoZXItaG9zdCc7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRoZW1lJykgdGhlbWUgPSBUaGVtZS5saWdodDtcblxuICB1aSA9IFVJO1xuICB0aGVtZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgc3dpdGNoZXIgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB0aGVtZTogdGhpcy50aGVtZUNvbnRyb2xcbiAgfSk7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4gdGhpcy5sb2dnZXIuZXJyb3IoJ3ZhbHVlIGFjY2Vzc29yIGlzIG5vdCByZWdpc3RlcmVkJyk7XG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMubG9nZ2VyLmVycm9yKCd2YWx1ZSBhY2Nlc3NvciBpcyBub3QgcmVnaXN0ZXJlZCcpO1xuICByZWdpc3Rlck9uQ2hhbmdlID0gZm4gPT4gdGhpcy5vbkNoYW5nZSA9IGZuO1xuICByZWdpc3Rlck9uVG91Y2hlZCA9IGZuID0+IHRoaXMub25Ub3VjaGVkID0gZm47XG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBvbkJsdXIgPSAoKSA9PiB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRoZW1lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoZWNrZWQgPT4ge1xuICAgICAgdGhpcy50aGVtZSA9IGNoZWNrZWQgPyBUaGVtZS5saWdodCA6IFRoZW1lLmRhcms7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudGhlbWUpO1xuICAgIH0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMudGhlbWVDb250cm9sLnNldFZhbHVlKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gVGhlbWUubGlnaHQsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gIH1cbn1cbiJdfQ==