@junte/ui
Version:
Quality Angular UI components kit
110 lines • 11.6 kB
JavaScript
var SwitchComponent_1;
import { __decorate, __metadata } from "tslib";
import { Component, forwardRef, HostBinding, HostListener, Input } from '@angular/core';
import { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';
import { NGXLogger } from 'ngx-logger';
import { PropertyApi } from '../../core/decorators/api';
import { Size } from '../../core/enums/size';
import { UI } from '../../core/enums/ui';
let SwitchComponent = SwitchComponent_1 = class SwitchComponent {
constructor(logger, fb) {
this.logger = logger;
this.fb = fb;
this.host = 'jnt-switch-host';
this.ui = UI;
this.switchControl = this.fb.control(false);
this.form = this.fb.group({
switch: this.switchControl
});
this._size = Size.normal;
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();
}
get checked() {
return this.switchControl.value;
}
set size(size) {
this._size = size || Size.normal;
}
ngOnInit() {
this.switchControl.valueChanges
.subscribe(value => this.onChange(value));
}
writeValue(value) {
this.switchControl.setValue(value, { emitEvent: false });
}
setDisabledState(disabled) {
disabled ? this.switchControl.disable({ emitEvent: false }) : this.switchControl.enable({ emitEvent: false });
}
};
SwitchComponent.ctorParameters = () => [
{ type: NGXLogger },
{ type: FormBuilder }
];
__decorate([
HostBinding('attr.host'),
__metadata("design:type", Object)
], SwitchComponent.prototype, "host", void 0);
__decorate([
HostBinding('attr.data-size'),
__metadata("design:type", String)
], SwitchComponent.prototype, "_size", void 0);
__decorate([
PropertyApi({
description: 'Label for switch',
type: 'string',
}),
Input(),
__metadata("design:type", String)
], SwitchComponent.prototype, "label", void 0);
__decorate([
PropertyApi({
description: 'Icons for states',
type: '{on: string, off: string}',
}),
Input(),
__metadata("design:type", Object)
], SwitchComponent.prototype, "icons", void 0);
__decorate([
PropertyApi({
description: 'Tags for states',
type: '{on: string, off: string}',
}),
Input(),
__metadata("design:type", Object)
], SwitchComponent.prototype, "tags", void 0);
__decorate([
PropertyApi({
description: 'Switch size',
path: 'ui.size',
default: Size.normal,
options: [Size.tiny, Size.small, Size.normal, Size.large]
}),
Input(),
__metadata("design:type", String),
__metadata("design:paramtypes", [String])
], SwitchComponent.prototype, "size", null);
__decorate([
HostListener('blur'),
__metadata("design:type", Object)
], SwitchComponent.prototype, "onBlur", void 0);
SwitchComponent = SwitchComponent_1 = __decorate([
Component({
selector: 'jnt-switch',
template: "<form child-of=\"jnt-switch-host\" [formGroup]=\"form\">\n <input child-of=\"jnt-switch-host\" type=\"checkbox\" formControlName=\"switch\" />\n <jnt-stack child-of=\"jnt-switch-host\" data-switch [orientation]=\"ui.orientation.horizontal\"\n [gutter]=\"ui.gutter.tiny\"\n [align]=\"ui.align.center\"\n [justify]=\"ui.justify.center\">\n <span child-of=\"jnt-switch-host\" data-on *ngIf=\"tags?.on\">{{tags.on}}</span>\n\n <div child-of=\"jnt-switch-host\" data-slider>\n <jnt-icon child-of=\"jnt-switch-host\" *ngIf=\"icons?.on && checked\"\n [icon]=\"icons.on\"></jnt-icon>\n <jnt-icon child-of=\"jnt-switch-host\" *ngIf=\"icons?.off && !checked\"\n [icon]=\"icons.off\"></jnt-icon>\n\n </div>\n\n <span child-of=\"jnt-switch-host\" data-off *ngIf=\"tags?.off\">{{tags.off}}</span>\n </jnt-stack>\n</form>\n<label child-of=\"jnt-switch-host\" *ngIf=\"label\">{{label}}</label>",
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => SwitchComponent_1),
multi: true
}
]
}),
__metadata("design:paramtypes", [NGXLogger,
FormBuilder])
], SwitchComponent);
export { SwitchComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BqdW50ZS91aS8iLCJzb3VyY2VzIjpbImxpYi9mb3Jtcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBYXpDLElBQWEsZUFBZSx1QkFBNUIsTUFBYSxlQUFlO0lBc0QxQixZQUFvQixNQUFpQixFQUNqQixFQUFlO1FBRGYsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBckRBLFNBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUU1RCxPQUFFLEdBQUcsRUFBRSxDQUFDO1FBRVIsa0JBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxTQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQzNCLENBQUMsQ0FBQztRQUdILFVBQUssR0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBb0MxQixhQUFRLEdBQXlCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENB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QjtTQXZFWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUJ1aWxkZXIsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTkdYTG9nZ2VyIH0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQgeyBQcm9wZXJ0eUFwaSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy9hcGknO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMvc2l6ZSc7XG5pbXBvcnQgeyBVSSB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMvdWknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdqbnQtc3dpdGNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5lbmNhcHN1bGF0ZWQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3dpdGNoQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5ob3N0JykgcmVhZG9ubHkgaG9zdCA9ICdqbnQtc3dpdGNoLWhvc3QnO1xuXG4gIHVpID0gVUk7XG5cbiAgc3dpdGNoQ29udHJvbCA9IHRoaXMuZmIuY29udHJvbChmYWxzZSk7XG4gIGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBzd2l0Y2g6IHRoaXMuc3dpdGNoQ29udHJvbFxuICB9KTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgX3NpemU6IFNpemUgPSBTaXplLm5vcm1hbDtcblxuICBnZXQgY2hlY2tlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zd2l0Y2hDb250cm9sLnZhbHVlO1xuICB9XG5cbiAgQFByb3BlcnR5QXBpKHtcbiAgICBkZXNjcmlwdGlvbjogJ0xhYmVsIGZvciBzd2l0Y2gnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICB9KVxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIEBQcm9wZXJ0eUFwaSh7XG4gICAgZGVzY3JpcHRpb246ICdJY29ucyBmb3Igc3RhdGVzJyxcbiAgICB0eXBlOiAne29uOiBzdHJpbmcsIG9mZjogc3RyaW5nfScsXG4gIH0pXG4gIEBJbnB1dCgpXG4gIGljb25zOiB7IG9uPzogc3RyaW5nLCBvZmY/OiBzdHJpbmcgfTtcblxuICBAUHJvcGVydHlBcGkoe1xuICAgIGRlc2NyaXB0aW9uOiAnVGFncyBmb3Igc3RhdGVzJyxcbiAgICB0eXBlOiAne29uOiBzdHJpbmcsIG9mZjogc3RyaW5nfScsXG4gIH0pXG4gIEBJbnB1dCgpXG4gIHRhZ3M6IHsgb24/OiBzdHJpbmcsIG9mZj86IHN0cmluZyB9O1xuXG4gIEBQcm9wZXJ0eUFwaSh7XG4gICAgZGVzY3JpcHRpb246ICdTd2l0Y2ggc2l6ZScsXG4gICAgcGF0aDogJ3VpLnNpemUnLFxuICAgIGRlZmF1bHQ6IFNpemUubm9ybWFsLFxuICAgIG9wdGlvbnM6IFtTaXplLnRpbnksIFNpemUuc21hbGwsIFNpemUubm9ybWFsLCBTaXplLmxhcmdlXVxuICB9KVxuICBASW5wdXQoKSBzZXQgc2l6ZShzaXplOiBTaXplKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHNpemUgfHwgU2l6ZS5ub3JtYWw7XG4gIH1cblxuICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB0aGlzLmxvZ2dlci5lcnJvcigndmFsdWUgYWNjZXNzb3IgaXMgbm90IHJlZ2lzdGVyZWQnKTtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy5sb2dnZXIuZXJyb3IoJ3ZhbHVlIGFjY2Vzc29yIGlzIG5vdCByZWdpc3RlcmVkJyk7XG4gIHJlZ2lzdGVyT25DaGFuZ2UgPSBmbiA9PiB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIHJlZ2lzdGVyT25Ub3VjaGVkID0gZm4gPT4gdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpIG9uQmx1ciA9ICgpID0+IHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3dpdGNoQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5vbkNoYW5nZSh2YWx1ZSkpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMuc3dpdGNoQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBkaXNhYmxlZCA/IHRoaXMuc3dpdGNoQ29udHJvbC5kaXNhYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSkgOiB0aGlzLnN3aXRjaENvbnRyb2wuZW5hYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gIH1cblxufVxuIl19