@junte/ui
Version:
Quality Angular UI components kit
71 lines • 8.26 kB
JavaScript
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==