UNPKG

@junte/ui

Version:

Quality Angular UI components kit

110 lines 11.6 kB
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