@douglas-serena/ng-inputs
Version:
angular entry library
113 lines • 15 kB
JavaScript
import { Component, ElementRef, forwardRef, HostBinding, Input, Renderer2, ViewChild, } from '@angular/core';
import { CheckboxControlValueAccessor, ControlContainer, FormControlDirective, NG_VALUE_ACCESSOR, } from '@angular/forms';
import { NgInputConfigService } from './../core/ng-input-config.service';
export class NgCheckboxComponent extends CheckboxControlValueAccessor {
constructor(controlContainer, elementRef, renderer, configService) {
super(renderer, elementRef);
this.controlContainer = controlContainer;
this.elementRef = elementRef;
this.renderer = renderer;
this.configService = configService;
this.label = 'Sem label: ';
this.type = 'checkbox';
this.line = false;
this.required = false;
this.errors = {};
this.suffix = '';
this.prefix = '';
this._cols = {
default: 12,
};
this.readonly = false;
}
set cols(cols) {
this._cols = Object.assign(Object.assign({}, this._cols), cols);
}
get classCols() {
let className = this.configService.theme === 'bootstrap'
? `col-${this._cols.default}`
: `col`;
if (this._cols.lg)
className +=
this.configService.theme === 'bootstrap'
? ` col-lg-${this._cols.lg}`
: ` l${this._cols.lg}`;
if (this._cols.md)
className +=
this.configService.theme === 'bootstrap'
? ` col-md-${this._cols.md}`
: ` m${this._cols.md}`;
if (this._cols.sm)
className +=
this.configService.theme === 'bootstrap'
? ` col-sm-${this._cols.sm}`
: ` s${this._cols.sm}`;
return className;
}
ngOnInit() { }
get control() {
var _a, _b;
return (this.formControl ||
((_b = (_a = this.controlContainer) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.get(this.formControlName)));
}
getKeys(errors) {
return Object.keys(errors);
}
getError(key) {
var _a, _b, _c;
return ((_b = (_a = this.control) === null || _a === void 0 ? void 0 : _a.errors) === null || _b === void 0 ? void 0 : _b[key]) && ((_c = this.control) === null || _c === void 0 ? void 0 : _c.touched);
}
writeValue(value) {
this.renderer.setProperty(this.elementRef.nativeElement, 'checked', value);
}
registerOnChange(fn) {
this.onChange = fn;
}
registerOnTouched(fn) {
this.onTouched = fn;
}
setDisabledState(isDisabled) {
this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);
}
}
NgCheckboxComponent.decorators = [
{ type: Component, args: [{
selector: 'dss-checkbox',
template: "<div\r\n class=\"form-group form-control-checkbox\"\r\n [class.form-switch]=\"type === 'switch'\"\r\n [class.form-check-inline]=\"line\"\r\n [ngClass]=\"{\r\n invalid: control.invalid && control.touched,\r\n valid: control.valid && control.touched\r\n }\"\r\n>\r\n <div\r\n class=\"form-content\"\r\n [class.switch]=\"type === 'switch' || type === 'button-switch'\"\r\n >\r\n <label\r\n class=\"form-check-label\"\r\n [class]=\"\r\n type === 'button-checkbox' || type === 'button-switch'\r\n ? 'btn btn-light w-100'\r\n : ''\r\n \"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input filled-in\"\r\n [formControl]=\"control\"\r\n [readonly]=\"readonly\"\r\n [class.is-invalid]=\"!readonly && control.invalid && control.touched\"\r\n [class.readonly]=\"readonly\"\r\n />\r\n <span [class.lever]=\"type === 'switch'\"> </span>\r\n {{ label }}\r\n </label>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let error of getKeys(errors)\">\r\n <!-- MESSAGE ERROR -->\r\n <div *ngIf=\"getError(error)\" class=\"message error\">\r\n {{ errors[error] }}\r\n </div>\r\n </ng-container>\r\n\r\n <!-- MESSAGE HELp -->\r\n <div *ngIf=\"!!help\" class=\"message\">\r\n {{ help }}\r\n </div>\r\n</div>\r\n",
host: {
'(change)': 'onChange($event.target.checked)',
'(blur)': 'onTouched()',
},
providers: [
{
provide: NG_VALUE_ACCESSOR,
multi: true,
useExisting: forwardRef(() => NgCheckboxComponent),
},
],
styles: [""]
},] }
];
NgCheckboxComponent.ctorParameters = () => [
{ type: ControlContainer },
{ type: ElementRef },
{ type: Renderer2 },
{ type: NgInputConfigService }
];
NgCheckboxComponent.propDecorators = {
label: [{ type: Input }],
type: [{ type: Input }],
line: [{ type: Input }],
readonly: [{ type: Input }],
required: [{ type: Input }],
help: [{ type: Input }],
errors: [{ type: Input }],
suffix: [{ type: Input }],
prefix: [{ type: Input }],
cols: [{ type: Input }],
classCols: [{ type: HostBinding, args: ['class',] }],
formControlDirective: [{ type: ViewChild, args: [FormControlDirective, { static: true },] }],
formControl: [{ type: Input }],
formControlName: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaW5wdXRzL3NyYy9saWIvbmctY2hlY2tib3gvbmctY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixnQkFBZ0IsRUFFaEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBcUJ6RSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsNEJBQTRCO0lBaURuRSxZQUNVLGdCQUFrQyxFQUNsQyxVQUFzQixFQUN0QixRQUFtQixFQUNwQixhQUFtQztRQUUxQyxLQUFLLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBTHBCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3BCLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQXBEbkMsVUFBSyxHQUFXLGFBQWEsQ0FBQztRQUM5QixTQUFJLEdBQ1gsVUFBVSxDQUFDO1FBQ0osU0FBSSxHQUFZLEtBQUssQ0FBQztRQUd0QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFFckIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBRTdCLFVBQUssR0FBK0Q7WUFDbEUsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBdUNBLElBQUksQ0FBQyxR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eEI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7cUJBQ25EO2lCQUNGOzthQUNGOzs7WUF6QkMsZ0JBQWdCO1lBVGhCLFVBQVU7WUFJVixTQUFTO1lBVUYsb0JBQW9COzs7b0JBc0IxQixLQUFLO21CQUNMLEtBQUs7bUJBRUwsS0FBSzt1QkFFTCxLQUFLO3VCQUNMLEtBQUs7bUJBQ0wsS0FBSztxQkFFTCxLQUFLO3FCQUVMLEtBQUs7cUJBQ0wsS0FBSzttQkFLTCxLQUFLO3dCQVFMLFdBQVcsU0FBQyxPQUFPO21DQXlDbkIsU0FBUyxTQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTswQkFFaEQsS0FBSzs4QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBDb250cm9sQ29udGFpbmVyLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Db250cm9sRGlyZWN0aXZlLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdJbnB1dENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLy4uL2NvcmUvbmctaW5wdXQtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuaW50ZXJmYWNlIElPYmplY3Qge1xyXG4gIFtrZXk6IHN0cmluZ106IHN0cmluZztcclxufVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rzcy1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25nLWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZy1jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQpJyxcclxuICAgICcoYmx1ciknOiAnb25Ub3VjaGVkKCknLFxyXG4gIH0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmdDaGVja2JveENvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ0NoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgQ2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdTZW0gbGFiZWw6ICc7XHJcbiAgQElucHV0KCkgdHlwZTogJ2NoZWNrYm94JyB8ICdzd2l0Y2gnIHwgJ2J1dHRvbi1jaGVja2JveCcgfCAnYnV0dG9uLXN3aXRjaCcgPVxyXG4gICAgJ2NoZWNrYm94JztcclxuICBASW5wdXQoKSBsaW5lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGVscD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZXJyb3JzOiBJT2JqZWN0ID0ge307XHJcblxyXG4gIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgcHJlZml4OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgX2NvbHM6IHsgZGVmYXVsdDogbnVtYmVyOyBsZz86IG51bWJlcjsgbWQ/OiBudW1iZXI7IHNtPzogbnVtYmVyIH0gPSB7XHJcbiAgICBkZWZhdWx0OiAxMixcclxuICB9O1xyXG4gIEBJbnB1dCgpIHNldCBjb2xzKGNvbHM6IHtcclxuICAgIGRlZmF1bHQ/OiBudW1iZXI7XHJcbiAgICBsZz86IG51bWJlcjtcclxuICAgIG1kPzogbnVtYmVyO1xyXG4gICAgc20/OiBudW1iZXI7XHJcbiAgfSkge1xyXG4gICAgdGhpcy5fY29scyA9IHsgLi4udGhpcy5fY29scywgLi4uY29scyB9O1xyXG4gIH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzQ29scygpIHtcclxuICAgIGxldCBjbGFzc05hbWUgPVxyXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UudGhlbWUgPT09ICdib290c3RyYXAnXHJcbiAgICAgICAgPyBgY29sLSR7dGhpcy5fY29scy5kZWZhdWx0fWBcclxuICAgICAgICA6IGBjb2xgO1xyXG4gICAgaWYgKHRoaXMuX2NvbHMubGcpXHJcbiAgICAgIGNsYXNzTmFtZSArPVxyXG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS50aGVtZSA9PT0gJ2Jvb3RzdHJhcCdcclxuICAgICAgICAgID8gYCBjb2wtbGctJHt0aGlzLl9jb2xzLmxnfWBcclxuICAgICAgICAgIDogYCBsJHt0aGlzLl9jb2xzLmxnfWA7XHJcbiAgICBpZiAodGhpcy5fY29scy5tZClcclxuICAgICAgY2xhc3NOYW1lICs9XHJcbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnRoZW1lID09PSAnYm9vdHN0cmFwJ1xyXG4gICAgICAgICAgPyBgIGNvbC1tZC0ke3RoaXMuX2NvbHMubWR9YFxyXG4gICAgICAgICAgOiBgIG0ke3RoaXMuX2NvbHMubWR9YDtcclxuICAgIGlmICh0aGlzLl9jb2xzLnNtKVxyXG4gICAgICBjbGFzc05hbWUgKz1cclxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UudGhlbWUgPT09ICdib290c3RyYXAnXHJcbiAgICAgICAgICA/IGAgY29sLXNtLSR7dGhpcy5fY29scy5zbX1gXHJcbiAgICAgICAgICA6IGAgcyR7dGhpcy5fY29scy5zbX1gO1xyXG4gICAgcmV0dXJuIGNsYXNzTmFtZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IE5nSW5wdXRDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihyZW5kZXJlciwgZWxlbWVudFJlZik7XHJcbiAgICB0aGlzLnJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIC8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gIC8vIEFUVFJJQlVURSBBTkQgTUVUSE9EUyBDT05UUk9MXHJcblxyXG4gIC8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gIEBWaWV3Q2hpbGQoRm9ybUNvbnRyb2xEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgZm9ybUNvbnRyb2xEaXJlY3RpdmU6IEZvcm1Db250cm9sRGlyZWN0aXZlO1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcclxuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWU6IHN0cmluZztcclxuXHJcbiAgZ2V0IGNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm1Db250cm9sIHx8XHJcbiAgICAgIHRoaXMuY29udHJvbENvbnRhaW5lcj8uY29udHJvbD8uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKSkgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXRLZXlzKGVycm9yczogSU9iamVjdCkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycyk7XHJcbiAgfVxyXG4gIGdldEVycm9yKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5lcnJvcnM/LltrZXldICYmIHRoaXMuY29udHJvbD8udG91Y2hlZDtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NoZWNrZWQnLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIG9uQ2hhbmdlOiAoXzogYW55KSA9PiB7fTtcclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICBvblRvdWNoZWQ6ICgpID0+IHt9O1xyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShcclxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICdkaXNhYmxlZCcsXHJcbiAgICAgIGlzRGlzYWJsZWRcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==