UNPKG

@junte/ui

Version:

Quality Angular UI components kit

71 lines 8.26 kB
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'; var ThemeSwitcherComponent = /** @class */ (function () { function ThemeSwitcherComponent(logger, fb) { var _this = this; 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 = function () { return _this.logger.error('value accessor is not registered'); }; this.onTouched = function () { return _this.logger.error('value accessor is not registered'); }; this.registerOnChange = function (fn) { return _this.onChange = fn; }; this.registerOnTouched = function (fn) { return _this.onTouched = fn; }; this.onBlur = function () { return _this.onTouched(); }; } ThemeSwitcherComponent_1 = ThemeSwitcherComponent; ThemeSwitcherComponent.prototype.ngOnInit = function () { var _this = this; this.themeControl.valueChanges.subscribe(function (checked) { _this.theme = checked ? Theme.light : Theme.dark; _this.onChange(_this.theme); }); }; ThemeSwitcherComponent.prototype.writeValue = function (value) { this.themeControl.setValue(!value || value === Theme.light, { emitEvent: false }); }; var ThemeSwitcherComponent_1; ThemeSwitcherComponent.ctorParameters = function () { return [ { 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(function () { return ThemeSwitcherComponent_1; }), multi: true } ] }), __metadata("design:paramtypes", [NGXLogger, FormBuilder]) ], ThemeSwitcherComponent); return ThemeSwitcherComponent; }()); export { ThemeSwitcherComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3dpdGNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGp1bnRlL3VpLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC90aGVtZS1zd2l0Y2hlci90aGVtZS1zd2l0Y2hlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFhekM7SUFrQkUsZ0NBQW9CLE1BQWlCLEVBQ2pCLEVBQWU7UUFEbkMsaUJBRUM7UUFGbUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBakJBLFNBQUksR0FBRyx5QkFBeUIsQ0FBQztRQUV6QyxVQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUUvQyxPQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsaUJBQVksR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDekIsQ0FBQyxDQUFDO1FBRUgsYUFBUSxHQUF5QixjQUFNLE9BQUEsS0FBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsRUFBckQsQ0FBcUQsQ0FBQztRQUM3RixjQUFTLEdBQWUsY0FBTSxPQUFBLEtBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLEVBQXJELENBQXFELENBQUM7UUFDcEYscUJBQWdCLEdBQUcsVUFBQSxFQUFFLElBQUksT0FBQSxLQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsRUFBbEIsQ0FBa0IsQ0FBQztRQUM1QyxzQkFBaUIsR0FBRyxVQUFBLEVBQUUsSUFBSSxPQUFBLEtBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxFQUFuQixDQUFtQixDQUFDO1FBQ3hCLFdBQU0sR0FBRyxjQUFNLE9BQUEsS0FBSSxDQUFDLFNBQVMsRUFBRSxFQUFoQixDQUFnQixDQUFDO0lBSXRELENBQUM7K0JBcEJVLHNCQUFzQjtJQXNCakMseUNBQVEsR0FBUjtRQUFBLGlCQUtDO1FBSkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQUEsT0FBTztZQUM5QyxLQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNoRCxLQUFJLENBQUMsUUFBUSxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCwyQ0FBVSxHQUFWLFVBQVcsS0FBSztRQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQzs7O2dCQWIyQixTQUFTO2dCQUNiLFdBQVc7O0lBakJUO1FBQXpCLFdBQVcsQ0FBQyxXQUFXLENBQUM7O3dEQUEyQztJQUV6QztRQUExQixXQUFXLENBQUMsWUFBWSxDQUFDOzt5REFBcUI7SUFZekI7UUFBckIsWUFBWSxDQUFDLE1BQU0sQ0FBQzs7MERBQWlDO0lBaEIzQyxzQkFBc0I7UUFYbEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixnVUFBaUQ7WUFDakQsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHdCQUFzQixFQUF0QixDQUFzQixDQUFDO29CQUNyRCxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQzt5Q0FtQjRCLFNBQVM7WUFDYixXQUFXO09BbkJ4QixzQkFBc0IsQ0FnQ2xDO0lBQUQsNkJBQUM7Q0FBQSxBQWhDRCxJQWdDQztTQWhDWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOR1hMb2dnZXIgfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSAnLi4vLi4vY29yZS9lbnVtcy90aGVtZSc7XG5pbXBvcnQgeyBVSSB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMvdWknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdqbnQtdGhlbWUtc3dpdGNoZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGhlbWUtc3dpdGNoZXIuZW5jYXBzdWxhdGVkLmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoZW1lU3dpdGNoZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVTd2l0Y2hlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5ob3N0JykgcmVhZG9ubHkgaG9zdCA9ICdqbnQtdGhlbWUtc3dpdGNoZXItaG9zdCc7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRoZW1lJykgdGhlbWUgPSBUaGVtZS5saWdodDtcblxuICB1aSA9IFVJO1xuICB0aGVtZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgc3dpdGNoZXIgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB0aGVtZTogdGhpcy50aGVtZUNvbnRyb2xcbiAgfSk7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4gdGhpcy5sb2dnZXIuZXJyb3IoJ3ZhbHVlIGFjY2Vzc29yIGlzIG5vdCByZWdpc3RlcmVkJyk7XG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMubG9nZ2VyLmVycm9yKCd2YWx1ZSBhY2Nlc3NvciBpcyBub3QgcmVnaXN0ZXJlZCcpO1xuICByZWdpc3Rlck9uQ2hhbmdlID0gZm4gPT4gdGhpcy5vbkNoYW5nZSA9IGZuO1xuICByZWdpc3Rlck9uVG91Y2hlZCA9IGZuID0+IHRoaXMub25Ub3VjaGVkID0gZm47XG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBvbkJsdXIgPSAoKSA9PiB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRoZW1lQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoZWNrZWQgPT4ge1xuICAgICAgdGhpcy50aGVtZSA9IGNoZWNrZWQgPyBUaGVtZS5saWdodCA6IFRoZW1lLmRhcms7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudGhlbWUpO1xuICAgIH0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMudGhlbWVDb250cm9sLnNldFZhbHVlKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gVGhlbWUubGlnaHQsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gIH1cbn1cbiJdfQ==