nsrtm-gestionarchivo-npm-prueba2
Version:
Proyecto de Libreria Frontend para la Gestión de Archivos
118 lines • 13.5 kB
JavaScript
/**
* @description componente boton usando las clases de bootstrap
* @version 1.0.0
*/
import { Component, Input, ChangeDetectionStrategy, HostBinding, } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class NsrtmButtonComponent {
constructor() {
this.texto = 'Aceptar';
this.disabled = false;
this.loading = false;
this.loadingTexto = 'Guardado...';
this.esIcono = false;
this.icon = 'save'; // icono feather
this.color = 'primary'; // por ahora estos colores
this.variant = 'flat'; // variantes del boton
this.size = 'medium';
this.classes = ''; // clases adicionales
this.block = false; // ajusta el width al 100% de su contenedor
}
get pEvents() {
if (this.disabled) {
return 'none';
}
return 'auto';
}
get pDisplay() {
if (this.block) {
return 'block';
}
return 'inline-block';
}
getClasses() {
const classes = ['btn'];
// clase para variant
const classVariant = this.getClassVariantColor(this.variant);
if (classVariant)
classes.push(classVariant);
// clase para size
const classSize = this.getClassSize(this.size);
if (classSize)
classes.push(classSize);
if (this.esIcono)
classes.push('btn-icon');
if (this.block)
classes.push('w-100 d-flex');
if (this.classes.trim().length > 0)
classes.push(this.classes);
return classes.join(' ');
}
getClassVariantColor(variant) {
if (variant === 'outlined') {
return `btn-outline-${this.color}`;
}
// flat variant
return `btn-${this.color}`;
}
getClassSize(size) {
switch (size) {
case 'small':
return 'btn-sm';
case 'large':
return 'btn-lg';
default:
return '';
}
}
get localTexto() {
if (this.esIcono)
return '';
return this.texto;
}
get isDisabled() {
return this.loading || this.disabled;
}
get isIcon() {
return typeof this.icon === 'string' && this.icon.trim().length > 0;
}
get localDisabled() {
return this.loading;
}
}
NsrtmButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NsrtmButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
NsrtmButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NsrtmButtonComponent, selector: "nsrtm-button", inputs: { texto: "texto", disabled: "disabled", loading: "loading", loadingTexto: "loadingTexto", esIcono: "esIcono", icon: "icon", color: "color", variant: "variant", size: "size", classes: "classes", block: "block" }, host: { properties: { "style.pointer-events": "this.pEvents", "style.display": "this.pDisplay" } }, ngImport: i0, template: "<button type=\"button\" [class]=\"getClasses()\" [disabled]=\"isDisabled\">\r\n\t<span *ngIf=\"isIcon\" [class]=\"['feather', 'icon-' + icon]\"></span>\r\n\r\n\t<span [class]=\"{ 'ms-1': localTexto }\">{{\r\n\t\tloading ? loadingTexto : localTexto\r\n\t}}</span>\r\n\r\n\t<ng-container *ngIf=\"loading\">\r\n\t\t<span class=\"spinner-border spinner-border-sm ms-1\" role=\"status\"></span>\r\n\t</ng-container>\r\n</button>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NsrtmButtonComponent, decorators: [{
type: Component,
args: [{ selector: 'nsrtm-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button type=\"button\" [class]=\"getClasses()\" [disabled]=\"isDisabled\">\r\n\t<span *ngIf=\"isIcon\" [class]=\"['feather', 'icon-' + icon]\"></span>\r\n\r\n\t<span [class]=\"{ 'ms-1': localTexto }\">{{\r\n\t\tloading ? loadingTexto : localTexto\r\n\t}}</span>\r\n\r\n\t<ng-container *ngIf=\"loading\">\r\n\t\t<span class=\"spinner-border spinner-border-sm ms-1\" role=\"status\"></span>\r\n\t</ng-container>\r\n</button>\r\n" }]
}], propDecorators: { texto: [{
type: Input
}], disabled: [{
type: Input
}], loading: [{
type: Input
}], loadingTexto: [{
type: Input
}], esIcono: [{
type: Input
}], icon: [{
type: Input
}], color: [{
type: Input
}], variant: [{
type: Input
}], size: [{
type: Input
}], classes: [{
type: Input
}], block: [{
type: Input
}], pEvents: [{
type: HostBinding,
args: ['style.pointer-events']
}], pDisplay: [{
type: HostBinding,
args: ['style.display']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnNydG0tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2FyY2hpdm8vbnNydG0tZ2VzdGlvbmFyY2hpdm8tbnBtL3NyYy9hcHAvc2hhcmVkL3VpL25zcnRtLWJ1dHRvbi9uc3J0bS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vYXJjaGl2by9uc3J0bS1nZXN0aW9uYXJjaGl2by1ucG0vc3JjL2FwcC9zaGFyZWQvdWkvbnNydG0tYnV0dG9uL25zcnRtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsV0FBVyxHQUNYLE1BQU0sZUFBZSxDQUFDOzs7QUFxQnZCLE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFNVSxVQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixpQkFBWSxHQUFHLGFBQWEsQ0FBQztRQUM3QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxnQkFBZ0I7UUFDL0IsVUFBSyxHQUFXLFNBQVMsQ0FBQyxDQUFDLDBCQUEwQjtRQUNyRCxZQUFPLEdBQWEsTUFBTSxDQUFDLENBQUMsc0JBQXNCO1FBQ2xELFNBQUksR0FBVSxRQUFRLENBQUM7UUFDdkIsWUFBTyxHQUFXLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQjtRQUMzQyxVQUFLLEdBQVksS0FBSyxDQUFDLENBQUMsMkNBQTJDO0tBeUU1RTtJQXZFQSxJQUF5QyxPQUFPO1FBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPLE1BQU0sQ0FBQztTQUNkO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFD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O3NCQUF6QyxXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGRlc2NyaXB0aW9uIGNvbXBvbmVudGUgYm90b24gdXNhbmRvIGxhcyBjbGFzZXMgZGUgYm9vdHN0cmFwXHJcbiAqIEB2ZXJzaW9uIDEuMC4wXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0SW5wdXQsXHJcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcblx0SG9zdEJpbmRpbmcsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG50eXBlIElDb2xvciA9XHJcblx0fCAncHJpbWFyeSdcclxuXHR8ICdzZWNvbmRhcnknXHJcblx0fCAnc3VjY2VzcydcclxuXHR8ICd3YXJuaW5nJ1xyXG5cdHwgJ2RhbmdlcidcclxuXHR8ICdpbmZvJ1xyXG5cdHwgJ2xpZ2h0J1xyXG5cdHwgJ2RhcmsnO1xyXG5cclxudHlwZSBJVmFyaWFudCA9ICdmbGF0JyB8ICdvdXRsaW5lZCc7XHJcblxyXG50eXBlIElTaXplID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbnNydG0tYnV0dG9uJyxcclxuXHR0ZW1wbGF0ZVVybDogJ25zcnRtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOc3J0bUJ1dHRvbkNvbXBvbmVudCB7XHJcblx0QElucHV0KCkgdGV4dG8gPSAnQWNlcHRhcic7XHJcblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcblx0QElucHV0KCkgbG9hZGluZ1RleHRvID0gJ0d1YXJkYWRvLi4uJztcclxuXHRASW5wdXQoKSBlc0ljb25vID0gZmFsc2U7XHJcblx0QElucHV0KCkgaWNvbiA9ICdzYXZlJzsgLy8gaWNvbm8gZmVhdGhlclxyXG5cdEBJbnB1dCgpIGNvbG9yOiBJQ29sb3IgPSAncHJpbWFyeSc7IC8vIHBvciBhaG9yYSBlc3RvcyBjb2xvcmVzXHJcblx0QElucHV0KCkgdmFyaWFudDogSVZhcmlhbnQgPSAnZmxhdCc7IC8vIHZhcmlhbnRlcyBkZWwgYm90b25cclxuXHRASW5wdXQoKSBzaXplOiBJU2l6ZSA9ICdtZWRpdW0nO1xyXG5cdEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZyA9ICcnOyAvLyBjbGFzZXMgYWRpY2lvbmFsZXNcclxuXHRASW5wdXQoKSBibG9jazogYm9vbGVhbiA9IGZhbHNlOyAvLyBhanVzdGEgZWwgd2lkdGggYWwgMTAwJSBkZSBzdSBjb250ZW5lZG9yXHJcblxyXG5cdEBIb3N0QmluZGluZygnc3R5bGUucG9pbnRlci1ldmVudHMnKSBnZXQgcEV2ZW50cygpOiBzdHJpbmcge1xyXG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuXHRcdFx0cmV0dXJuICdub25lJztcclxuXHRcdH1cclxuXHRcdHJldHVybiAnYXV0byc7XHJcblx0fVxyXG5cclxuXHRASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBnZXQgcERpc3BsYXkoKTogc3RyaW5nIHtcclxuXHRcdGlmICh0aGlzLmJsb2NrKSB7XHJcblx0XHRcdHJldHVybiAnYmxvY2snO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuICdpbmxpbmUtYmxvY2snO1xyXG5cdH1cclxuXHJcblx0Z2V0Q2xhc3NlcygpIHtcclxuXHRcdGNvbnN0IGNsYXNzZXMgPSBbJ2J0biddO1xyXG5cclxuXHRcdC8vIGNsYXNlIHBhcmEgdmFyaWFudFxyXG5cdFx0Y29uc3QgY2xhc3NWYXJpYW50ID0gdGhpcy5nZXRDbGFzc1ZhcmlhbnRDb2xvcih0aGlzLnZhcmlhbnQpO1xyXG5cdFx0aWYgKGNsYXNzVmFyaWFudCkgY2xhc3Nlcy5wdXNoKGNsYXNzVmFyaWFudCk7XHJcblxyXG5cdFx0Ly8gY2xhc2UgcGFyYSBzaXplXHJcblx0XHRjb25zdCBjbGFzc1NpemUgPSB0aGlzLmdldENsYXNzU2l6ZSh0aGlzLnNpemUpO1xyXG5cdFx0aWYgKGNsYXNzU2l6ZSkgY2xhc3Nlcy5wdXNoKGNsYXNzU2l6ZSk7XHJcblxyXG5cdFx0aWYgKHRoaXMuZXNJY29ubykgY2xhc3Nlcy5wdXNoKCdidG4taWNvbicpO1xyXG5cclxuXHRcdGlmICh0aGlzLmJsb2NrKSBjbGFzc2VzLnB1c2goJ3ctMTAwIGQtZmxleCcpO1xyXG5cclxuXHRcdGlmICh0aGlzLmNsYXNzZXMudHJpbSgpLmxlbmd0aCA+IDApIGNsYXNzZXMucHVzaCh0aGlzLmNsYXNzZXMpO1xyXG5cclxuXHRcdHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0Q2xhc3NWYXJpYW50Q29sb3IodmFyaWFudDogSVZhcmlhbnQpOiBzdHJpbmcge1xyXG5cdFx0aWYgKHZhcmlhbnQgPT09ICdvdXRsaW5lZCcpIHtcclxuXHRcdFx0cmV0dXJuIGBidG4tb3V0bGluZS0ke3RoaXMuY29sb3J9YDtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBmbGF0IHZhcmlhbnRcclxuXHRcdHJldHVybiBgYnRuLSR7dGhpcy5jb2xvcn1gO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBnZXRDbGFzc1NpemUoc2l6ZTogSVNpemUpIHtcclxuXHRcdHN3aXRjaCAoc2l6ZSkge1xyXG5cdFx0XHRjYXNlICdzbWFsbCc6XHJcblx0XHRcdFx0cmV0dXJuICdidG4tc20nO1xyXG5cdFx0XHRjYXNlICdsYXJnZSc6XHJcblx0XHRcdFx0cmV0dXJuICdidG4tbGcnO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiAnJztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGdldCBsb2NhbFRleHRvKCkge1xyXG5cdFx0aWYgKHRoaXMuZXNJY29ubykgcmV0dXJuICcnO1xyXG5cclxuXHRcdHJldHVybiB0aGlzLnRleHRvO1xyXG5cdH1cclxuXHJcblx0Z2V0IGlzRGlzYWJsZWQoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5sb2FkaW5nIHx8IHRoaXMuZGlzYWJsZWQ7XHJcblx0fVxyXG5cclxuXHRnZXQgaXNJY29uKCkge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB0aGlzLmljb24gPT09ICdzdHJpbmcnICYmIHRoaXMuaWNvbi50cmltKCkubGVuZ3RoID4gMDtcclxuXHR9XHJcblxyXG5cdGdldCBsb2NhbERpc2FibGVkKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMubG9hZGluZztcclxuXHR9XHJcbn1cclxuIiwiPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2NsYXNzXT1cImdldENsYXNzZXMoKVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCI+XHJcblx0PHNwYW4gKm5nSWY9XCJpc0ljb25cIiBbY2xhc3NdPVwiWydmZWF0aGVyJywgJ2ljb24tJyArIGljb25dXCI+PC9zcGFuPlxyXG5cclxuXHQ8c3BhbiBbY2xhc3NdPVwieyAnbXMtMSc6IGxvY2FsVGV4dG8gfVwiPnt7XHJcblx0XHRsb2FkaW5nID8gbG9hZGluZ1RleHRvIDogbG9jYWxUZXh0b1xyXG5cdH19PC9zcGFuPlxyXG5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSBtcy0xXCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9idXR0b24+XHJcbiJdfQ==