@junte/ui
Version:
Quality Angular UI components kit
122 lines • 12.7 kB
JavaScript
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';
var SwitchComponent = /** @class */ (function () {
function SwitchComponent(logger, fb) {
var _this = this;
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 = 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(); };
}
SwitchComponent_1 = SwitchComponent;
Object.defineProperty(SwitchComponent.prototype, "checked", {
get: function () {
return this.switchControl.value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(SwitchComponent.prototype, "size", {
set: function (size) {
this._size = size || Size.normal;
},
enumerable: true,
configurable: true
});
SwitchComponent.prototype.ngOnInit = function () {
var _this = this;
this.switchControl.valueChanges
.subscribe(function (value) { return _this.onChange(value); });
};
SwitchComponent.prototype.writeValue = function (value) {
this.switchControl.setValue(value, { emitEvent: false });
};
SwitchComponent.prototype.setDisabledState = function (disabled) {
disabled ? this.switchControl.disable({ emitEvent: false }) : this.switchControl.enable({ emitEvent: false });
};
var SwitchComponent_1;
SwitchComponent.ctorParameters = function () { return [
{ 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(function () { return SwitchComponent_1; }),
multi: true
}
]
}),
__metadata("design:paramtypes", [NGXLogger,
FormBuilder])
], SwitchComponent);
return SwitchComponent;
}());
export { SwitchComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BqdW50ZS91aS8iLCJzb3VyY2VzIjpbImxpYi9mb3Jtcy9zd2l0Y2gvc3dpdGNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFhekM7SUFzREUseUJBQW9CLE1BQWlCLEVBQ2pCLEVBQWU7UUFEbkMsaUJBRUM7UUFGbUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBckRBLFNBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUU1RCxPQUFFLEdBQUcsRUFBRSxDQUFDO1FBRVIsa0JBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxTQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQzNCLENBQUMsQ0FBQztRQUdILFVBQUssR0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBb0MxQixhQUFRLEdBQXlCLGNBQU0sT0FBQSxLQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFyRCxDQUFxRCxDQUFDO1FBQzdG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TSxPQUFBLGlCQUFlLEVBQWYsQ0FBZSxDQUFDO29CQUM5QyxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQzt5Q0F1RDRCLFNBQVM7WUFDYixXQUFXO09BdkR4QixlQUFlLENBdUUzQjtJQUFELHNCQUFDO0NBQUEsQUF2RUQsSUF1RUM7U0F2RVksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5HWExvZ2dlciB9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHsgUHJvcGVydHlBcGkgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMvYXBpJztcbmltcG9ydCB7IFNpemUgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL3NpemUnO1xuaW1wb3J0IHsgVUkgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL3VpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnam50LXN3aXRjaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zd2l0Y2guZW5jYXBzdWxhdGVkLmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN3aXRjaENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaG9zdCcpIHJlYWRvbmx5IGhvc3QgPSAnam50LXN3aXRjaC1ob3N0JztcblxuICB1aSA9IFVJO1xuXG4gIHN3aXRjaENvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2woZmFsc2UpO1xuICBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgc3dpdGNoOiB0aGlzLnN3aXRjaENvbnRyb2xcbiAgfSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gIF9zaXplOiBTaXplID0gU2l6ZS5ub3JtYWw7XG5cbiAgZ2V0IGNoZWNrZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3dpdGNoQ29udHJvbC52YWx1ZTtcbiAgfVxuXG4gIEBQcm9wZXJ0eUFwaSh7XG4gICAgZGVzY3JpcHRpb246ICdMYWJlbCBmb3Igc3dpdGNoJyxcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgfSlcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICBAUHJvcGVydHlBcGkoe1xuICAgIGRlc2NyaXB0aW9uOiAnSWNvbnMgZm9yIHN0YXRlcycsXG4gICAgdHlwZTogJ3tvbjogc3RyaW5nLCBvZmY6IHN0cmluZ30nLFxuICB9KVxuICBASW5wdXQoKVxuICBpY29uczogeyBvbj86IHN0cmluZywgb2ZmPzogc3RyaW5nIH07XG5cbiAgQFByb3BlcnR5QXBpKHtcbiAgICBkZXNjcmlwdGlvbjogJ1RhZ3MgZm9yIHN0YXRlcycsXG4gICAgdHlwZTogJ3tvbjogc3RyaW5nLCBvZmY6IHN0cmluZ30nLFxuICB9KVxuICBASW5wdXQoKVxuICB0YWdzOiB7IG9uPzogc3RyaW5nLCBvZmY/OiBzdHJpbmcgfTtcblxuICBAUHJvcGVydHlBcGkoe1xuICAgIGRlc2NyaXB0aW9uOiAnU3dpdGNoIHNpemUnLFxuICAgIHBhdGg6ICd1aS5zaXplJyxcbiAgICBkZWZhdWx0OiBTaXplLm5vcm1hbCxcbiAgICBvcHRpb25zOiBbU2l6ZS50aW55LCBTaXplLnNtYWxsLCBTaXplLm5vcm1hbCwgU2l6ZS5sYXJnZV1cbiAgfSlcbiAgQElucHV0KCkgc2V0IHNpemUoc2l6ZTogU2l6ZSkge1xuICAgIHRoaXMuX3NpemUgPSBzaXplIHx8IFNpemUubm9ybWFsO1xuICB9XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4gdGhpcy5sb2dnZXIuZXJyb3IoJ3ZhbHVlIGFjY2Vzc29yIGlzIG5vdCByZWdpc3RlcmVkJyk7XG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMubG9nZ2VyLmVycm9yKCd2YWx1ZSBhY2Nlc3NvciBpcyBub3QgcmVnaXN0ZXJlZCcpO1xuICByZWdpc3Rlck9uQ2hhbmdlID0gZm4gPT4gdGhpcy5vbkNoYW5nZSA9IGZuO1xuICByZWdpc3Rlck9uVG91Y2hlZCA9IGZuID0+IHRoaXMub25Ub3VjaGVkID0gZm47XG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKSBvbkJsdXIgPSAoKSA9PiB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN3aXRjaENvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMub25DaGFuZ2UodmFsdWUpKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWUpIHtcbiAgICB0aGlzLnN3aXRjaENvbnRyb2wuc2V0VmFsdWUodmFsdWUsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgZGlzYWJsZWQgPyB0aGlzLnN3aXRjaENvbnRyb2wuZGlzYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pIDogdGhpcy5zd2l0Y2hDb250cm9sLmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICB9XG5cbn1cbiJdfQ==