@jvsoft/components 0.0.13-alpha.3 → 1.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/jvsoft-components-dialog-flotante.mjs +3 -3
- package/fesm2022/jvsoft-components-dialog-flotante.mjs.map +1 -1
- package/fesm2022/jvsoft-components-lista-arbol.mjs +3 -3
- package/fesm2022/jvsoft-components-lista-arbol.mjs.map +1 -1
- package/fesm2022/jvsoft-components-luces-navidad.mjs +3 -3
- package/fesm2022/jvsoft-components-luces-navidad.mjs.map +1 -1
- package/fesm2022/jvsoft-components-mat-suffix-search-button.mjs +3 -3
- package/fesm2022/jvsoft-components-mat-suffix-search-button.mjs.map +1 -1
- package/fesm2022/jvsoft-components-menu.mjs +3 -3
- package/fesm2022/jvsoft-components-menu.mjs.map +1 -1
- package/fesm2022/jvsoft-components-tabla-mantenimiento-components-progress-bar.mjs +3 -3
- package/fesm2022/jvsoft-components-tabla-mantenimiento-components-progress-bar.mjs.map +1 -1
- package/fesm2022/jvsoft-components-tabla-mantenimiento.mjs +54 -54
- package/fesm2022/jvsoft-components-tabla-mantenimiento.mjs.map +1 -1
- package/fesm2022/jvsoft-components.mjs +69 -69
- package/fesm2022/jvsoft-components.mjs.map +1 -1
- package/package.json +13 -14
- package/src/styles/base-jvsoft-components.css +4 -4
|
@@ -65,10 +65,10 @@ class MenuComponent {
|
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
69
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", type: MenuComponent, isStandalone: true, selector: "jvs-menu", inputs: { cssBoton: "cssBoton", title: "title", disabled: "disabled", itemSeleccion: "itemSeleccion", menu: "menu" }, outputs: { action: "action" }, viewQueries: [{ propertyName: "matmenus", predicate: MatMenu, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"yet\">\n <button matRipple [matMenuTriggerFor]=\"matmenus.first\"\n [disabled]=\"disabled\"\n type=\"button\" [class]=\"cssBoton ?? 'boton-circular boton-circular-red border-0'\"\n (click)=\"$event.preventDefault(); $event.stopImmediatePropagation()\"\n [matTooltip]=\"title\"\n >\n <ng-content></ng-content>\n </button>\n</ng-container>\n\n<!--<pre class=\"text-indigo-900\">{{_submenus | json}}</pre>-->\n<ng-container *ngFor=\"let menu of _submenus\">\n <!--<pre class=\"text-red-700\">{{menu | json}}</pre>-->\n <mat-menu xPosition=\"before\" yPosition=\"below\" class=\"max-w-none\">\n <ng-container *ngFor=\"let item of menu\">\n <!--<pre *ngIf=\"menu$\" class=\"text-orange-700\">{{item | json}}</pre>-->\n <!--<span>{{ [item.label, item.idxOpcionCalc!=-1 , yet , (!item.esVisible || item.esVisible({itemMenu: item, archivo: itemSeleccion})), [!item.esVisible , (item.esVisible ? item.esVisible({itemMenu: item, archivo: itemSeleccion}) : 'NO HAY')]] | json }}</span>-->\n <button mat-menu-item *ngIf=\"item.idxOpcionCalc!=-1 && yet && (!item.esVisible || item.esVisible({itemMenu: item, archivo: itemSeleccion}))\"\n class=\"flex items-center justify-items-center uppercase w-full rounded-none px-2 \"\n [matMenuTriggerFor]=\"getMenu(item.idxOpcionCalc)\">\n <mat-icon *ngIf=\"item.icono\"\n class=\"flex-none flex items-center justify-center !text-red-700 !mr-1 icon-2xs\"\n [svgIcon]=\"item.icono ?? 'fa5sFileSignature'\"\n ></mat-icon>\n <span class=\"grow text-2xs\" [innerHTML]=\"item.label\">{{item.label}}</span>\n </button>\n <button mat-menu-item *ngIf=\"item.idxOpcionCalc==-1 && (!item.esVisible || item.esVisible(item))\" (click)=\"onClick(item.valorSeleccion)\"\n class=\"flex items-center justify-items-center uppercase w-full rounded-none px-2 \"\n >\n <mat-icon *ngIf=\"item.icono\"\n class=\"flex-none flex items-center justify-center !text-red-700 !mr-1 icon-2xs\"\n [svgIcon]=\"item.icono ?? 'fa5sFileSignature'\"\n ></mat-icon>\n <span class=\"grow text-2xs\" [innerHTML]=\"item.label\">{{item.label}} </span>\n </button>\n\n </ng-container>\n </mat-menu>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
|
|
70
70
|
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: MenuComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
73
73
|
args: [{ selector: 'jvs-menu', standalone: true, imports: [
|
|
74
74
|
CommonModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jvsoft-components-menu.mjs","sources":["../../../projects/components/menu/menu.component.ts","../../../projects/components/menu/menu.component.html","../../../projects/components/menu/jvsoft-components-menu.ts"],"sourcesContent":["import {AfterViewInit, Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatMenu, MatMenuModule} from '@angular/material/menu';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatRippleModule} from '@angular/material/core';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {BotonMenu} from './menu.interface';\n\n@Component({\n selector: 'jvs-menu',\n standalone: true,\n imports: [\n CommonModule,\n MatMenuModule,\n MatIconModule,\n MatRippleModule,\n MatTooltipModule,\n ],\n templateUrl: './menu.component.html',\n})\nexport class MenuComponent implements OnInit, AfterViewInit {\n @Input() cssBoton?: string;\n @Input() title?: string;\n @Input() disabled: boolean = false;\n @Input() itemSeleccion?: string;\n @Input() menu: BotonMenu[] = [];\n @Output() action: EventEmitter<string> = new EventEmitter<string>();\n\n @ViewChildren(MatMenu) matmenus!: QueryList<MatMenu>;\n\n menuItems: string[] = [];\n yet: boolean = false;\n _submenus: BotonMenu[][] = []; // 🔥 Tipo explícito como Array de Array de BotonMenu\n\n get submenus(): BotonMenu[][] {\n return this._submenus.filter(() => true); // Mantiene la estructura, aunque no hace filtro real\n }\n\n ngOnInit(): void {\n this.createSubmenus(this.menu, 's0', 1);\n this.reindex();\n }\n\n ngAfterViewInit(): void {\n // Previene errores de Angular al repintar el menú\n setTimeout(() => {\n this.yet = true;\n });\n }\n\n onClick(value: string): void {\n this.action.emit(value);\n }\n\n getMenu(index: number): MatMenu | null {\n return index >= 0 && this.matmenus ? this.matmenus.get(index) ?? null:null;\n }\n\n reindex(): void {\n // Asigna el índice del ítem del menú\n this._submenus.forEach((menu: BotonMenu[]) => {\n menu.forEach((item: BotonMenu) => {\n if (item.idxOpcionCalc !== -1) {\n item.idxOpcionCalc = this.menuItems.indexOf(item.valorSeleccion ?? '');\n }\n });\n });\n }\n\n createSubmenus(menu: BotonMenu[], prefix: string, count: number): void {\n this.menuItems.push(prefix);\n\n this._submenus.push(\n menu.map((item, index): BotonMenu => ({\n ...item,\n valorSeleccion: item.subItems ? `${prefix}${index}`:item.valorSeleccion,\n idxOpcionCalc: item.subItems ? 0:-1,\n }))\n );\n\n // Llamada recursiva para crear submenús\n menu.forEach((item, index) => {\n if (item.subItems) {\n this.createSubmenus(item.subItems, `${prefix}${index}`, count + 1);\n }\n });\n }\n}\n","<ng-container *ngIf=\"yet\">\n <button matRipple [matMenuTriggerFor]=\"matmenus.first\"\n [disabled]=\"disabled\"\n type=\"button\" [class]=\"cssBoton ?? 'boton-circular boton-circular-red border-0'\"\n (click)=\"$event.preventDefault(); $event.stopImmediatePropagation()\"\n [matTooltip]=\"title\"\n >\n <ng-content></ng-content>\n </button>\n</ng-container>\n\n<!--<pre class=\"text-indigo-900\">{{_submenus | json}}</pre>-->\n<ng-container *ngFor=\"let menu of _submenus\">\n <!--<pre class=\"text-red-700\">{{menu | json}}</pre>-->\n <mat-menu xPosition=\"before\" yPosition=\"below\" class=\"max-w-none\">\n <ng-container *ngFor=\"let item of menu\">\n <!--<pre *ngIf=\"menu$\" class=\"text-orange-700\">{{item | json}}</pre>-->\n <!--<span>{{ [item.label, item.idxOpcionCalc!=-1 , yet , (!item.esVisible || item.esVisible({itemMenu: item, archivo: itemSeleccion})), [!item.esVisible , (item.esVisible ? item.esVisible({itemMenu: item, archivo: itemSeleccion}) : 'NO HAY')]] | json }}</span>-->\n <button mat-menu-item *ngIf=\"item.idxOpcionCalc!=-1 && yet && (!item.esVisible || item.esVisible({itemMenu: item, archivo: itemSeleccion}))\"\n class=\"flex items-center justify-items-center uppercase w-full rounded-none px-2 \"\n [matMenuTriggerFor]=\"getMenu(item.idxOpcionCalc)\">\n <mat-icon *ngIf=\"item.icono\"\n class=\"flex-none flex items-center justify-center !text-red-700 !mr-1 icon-2xs\"\n [svgIcon]=\"item.icono ?? 'fa5sFileSignature'\"\n ></mat-icon>\n <span class=\"grow text-2xs\" [innerHTML]=\"item.label\">{{item.label}}</span>\n </button>\n <button mat-menu-item *ngIf=\"item.idxOpcionCalc==-1 && (!item.esVisible || item.esVisible(item))\" (click)=\"onClick(item.valorSeleccion)\"\n class=\"flex items-center justify-items-center uppercase w-full rounded-none px-2 \"\n >\n <mat-icon *ngIf=\"item.icono\"\n class=\"flex-none flex items-center justify-center !text-red-700 !mr-1 icon-2xs\"\n [svgIcon]=\"item.icono ?? 'fa5sFileSignature'\"\n ></mat-icon>\n <span class=\"grow text-2xs\" [innerHTML]=\"item.label\">{{item.label}} </span>\n </button>\n\n </ng-container>\n </mat-menu>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;MAoBa,aAAa,CAAA;AACb,IAAA,QAAQ;AACR,IAAA,KAAK;IACL,QAAQ,GAAY,KAAK;AACzB,IAAA,aAAa;IACb,IAAI,GAAgB,EAAE;AACrB,IAAA,MAAM,GAAyB,IAAI,YAAY,EAAU;AAE5C,IAAA,QAAQ;IAE/B,SAAS,GAAa,EAAE;IACxB,GAAG,GAAY,KAAK;AACpB,IAAA,SAAS,GAAkB,EAAE,CAAC;AAE9B,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"jvsoft-components-menu.mjs","sources":["../../../projects/components/menu/menu.component.ts","../../../projects/components/menu/menu.component.html","../../../projects/components/menu/jvsoft-components-menu.ts"],"sourcesContent":["import {AfterViewInit, Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MatMenu, MatMenuModule} from '@angular/material/menu';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatRippleModule} from '@angular/material/core';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {BotonMenu} from './menu.interface';\n\n@Component({\n selector: 'jvs-menu',\n standalone: true,\n imports: [\n CommonModule,\n MatMenuModule,\n MatIconModule,\n MatRippleModule,\n MatTooltipModule,\n ],\n templateUrl: './menu.component.html',\n})\nexport class MenuComponent implements OnInit, AfterViewInit {\n @Input() cssBoton?: string;\n @Input() title?: string;\n @Input() disabled: boolean = false;\n @Input() itemSeleccion?: string;\n @Input() menu: BotonMenu[] = [];\n @Output() action: EventEmitter<string> = new EventEmitter<string>();\n\n @ViewChildren(MatMenu) matmenus!: QueryList<MatMenu>;\n\n menuItems: string[] = [];\n yet: boolean = false;\n _submenus: BotonMenu[][] = []; // 🔥 Tipo explícito como Array de Array de BotonMenu\n\n get submenus(): BotonMenu[][] {\n return this._submenus.filter(() => true); // Mantiene la estructura, aunque no hace filtro real\n }\n\n ngOnInit(): void {\n this.createSubmenus(this.menu, 's0', 1);\n this.reindex();\n }\n\n ngAfterViewInit(): void {\n // Previene errores de Angular al repintar el menú\n setTimeout(() => {\n this.yet = true;\n });\n }\n\n onClick(value: string): void {\n this.action.emit(value);\n }\n\n getMenu(index: number): MatMenu | null {\n return index >= 0 && this.matmenus ? this.matmenus.get(index) ?? null:null;\n }\n\n reindex(): void {\n // Asigna el índice del ítem del menú\n this._submenus.forEach((menu: BotonMenu[]) => {\n menu.forEach((item: BotonMenu) => {\n if (item.idxOpcionCalc !== -1) {\n item.idxOpcionCalc = this.menuItems.indexOf(item.valorSeleccion ?? '');\n }\n });\n });\n }\n\n createSubmenus(menu: BotonMenu[], prefix: string, count: number): void {\n this.menuItems.push(prefix);\n\n this._submenus.push(\n menu.map((item, index): BotonMenu => ({\n ...item,\n valorSeleccion: item.subItems ? `${prefix}${index}`:item.valorSeleccion,\n idxOpcionCalc: item.subItems ? 0:-1,\n }))\n );\n\n // Llamada recursiva para crear submenús\n menu.forEach((item, index) => {\n if (item.subItems) {\n this.createSubmenus(item.subItems, `${prefix}${index}`, count + 1);\n }\n });\n }\n}\n","<ng-container *ngIf=\"yet\">\n <button matRipple [matMenuTriggerFor]=\"matmenus.first\"\n [disabled]=\"disabled\"\n type=\"button\" [class]=\"cssBoton ?? 'boton-circular boton-circular-red border-0'\"\n (click)=\"$event.preventDefault(); $event.stopImmediatePropagation()\"\n [matTooltip]=\"title\"\n >\n <ng-content></ng-content>\n </button>\n</ng-container>\n\n<!--<pre class=\"text-indigo-900\">{{_submenus | json}}</pre>-->\n<ng-container *ngFor=\"let menu of _submenus\">\n <!--<pre class=\"text-red-700\">{{menu | json}}</pre>-->\n <mat-menu xPosition=\"before\" yPosition=\"below\" class=\"max-w-none\">\n <ng-container *ngFor=\"let item of menu\">\n <!--<pre *ngIf=\"menu$\" class=\"text-orange-700\">{{item | json}}</pre>-->\n <!--<span>{{ [item.label, item.idxOpcionCalc!=-1 , yet , (!item.esVisible || item.esVisible({itemMenu: item, archivo: itemSeleccion})), [!item.esVisible , (item.esVisible ? item.esVisible({itemMenu: item, archivo: itemSeleccion}) : 'NO HAY')]] | json }}</span>-->\n <button mat-menu-item *ngIf=\"item.idxOpcionCalc!=-1 && yet && (!item.esVisible || item.esVisible({itemMenu: item, archivo: itemSeleccion}))\"\n class=\"flex items-center justify-items-center uppercase w-full rounded-none px-2 \"\n [matMenuTriggerFor]=\"getMenu(item.idxOpcionCalc)\">\n <mat-icon *ngIf=\"item.icono\"\n class=\"flex-none flex items-center justify-center !text-red-700 !mr-1 icon-2xs\"\n [svgIcon]=\"item.icono ?? 'fa5sFileSignature'\"\n ></mat-icon>\n <span class=\"grow text-2xs\" [innerHTML]=\"item.label\">{{item.label}}</span>\n </button>\n <button mat-menu-item *ngIf=\"item.idxOpcionCalc==-1 && (!item.esVisible || item.esVisible(item))\" (click)=\"onClick(item.valorSeleccion)\"\n class=\"flex items-center justify-items-center uppercase w-full rounded-none px-2 \"\n >\n <mat-icon *ngIf=\"item.icono\"\n class=\"flex-none flex items-center justify-center !text-red-700 !mr-1 icon-2xs\"\n [svgIcon]=\"item.icono ?? 'fa5sFileSignature'\"\n ></mat-icon>\n <span class=\"grow text-2xs\" [innerHTML]=\"item.label\">{{item.label}} </span>\n </button>\n\n </ng-container>\n </mat-menu>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -56,10 +56,10 @@ class ProgressBarComponent {
|
|
|
56
56
|
}
|
|
57
57
|
return objData.sort((a, b) => (a[propiedad] > b[propiedad]) ? 1 : ((b[propiedad] > a[propiedad]) ? -1 : 0));
|
|
58
58
|
}
|
|
59
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
60
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
59
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.16", type: ProgressBarComponent, isStandalone: true, selector: "jvs-progress-bar", inputs: { objThis: "objThis", porcentaje: "porcentaje", textoCentrado: "textoCentrado", textoMostrar: "textoMostrar", formatoNumero: "formatoNumero", coloresValor: "coloresValor" }, host: { classAttribute: "jvs-progress-bar" }, ngImport: i0, template: "<div class=\"w-full bg-gray-200 text-gray-700 rounded-full\" [class.text-center]=\"textoCentrado\">\n\t<div class=\"text-xxs font-medium text-center p-1 leading-none rounded-full\"\n\t\t [ngClass]=\"colorEstilo().class ? colorEstilo().class : 'bg-blue-600 text-blue-100'\"\n\t\t [style]=\"colorEstilo().style ? colorEstilo().style : ''\"\n\t\t [style.width]=\"(textoCentrado ? 100 : porcentaje) + '%'\"\n\t>\n <span *ngIf=\"textoMostrar else defaultText;\" class=\"whitespace-nowrap\">{{ textoMostrar }}</span>\n <ng-template #defaultText>{{ porcentaje | number: formatoNumero }}%</ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }] });
|
|
61
61
|
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
64
|
args: [{ selector: 'jvs-progress-bar', imports: [
|
|
65
65
|
CommonModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jvsoft-components-tabla-mantenimiento-components-progress-bar.mjs","sources":["../../../projects/components/tabla-mantenimiento/components/progress-bar/progress-bar.component.ts","../../../projects/components/tabla-mantenimiento/components/progress-bar/progress-bar.component.html","../../../projects/components/tabla-mantenimiento/components/progress-bar/public-api.ts","../../../projects/components/tabla-mantenimiento/components/progress-bar/jvsoft-components-tabla-mantenimiento-components-progress-bar.ts"],"sourcesContent":["import {Component, Input, OnInit} from '@angular/core';\nimport {CommonModule, DecimalPipe} from '@angular/common';\n\nexport interface EstilosBarra {\n\tvalorMaximo: number;\n\tclass?: string;\n\tstyle?: string;\n}\n\n@Component({\n selector: 'jvs-progress-bar',\n templateUrl: './progress-bar.component.html',\n imports: [\n CommonModule,\n DecimalPipe\n ],\n host: {\n class: 'jvs-progress-bar',\n }\n})\nexport class ProgressBarComponent implements OnInit {\n\n\t@Input() objThis: any;\n\t@Input() porcentaje = 0;\n\t@Input() textoCentrado = false;\n\n private _textoMostrar: string = '';\n get textoMostrar(): string { return this._textoMostrar; }\n\t@Input() set textoMostrar(val: string) { this._textoMostrar = val; }\n\n private _formatoNumero: string = '';\n get formatoNumero(): string { return this._formatoNumero; }\n\t@Input() set formatoNumero(val: string | undefined) { this._formatoNumero = val ?? '1.0-0'; }\n\n private _coloresValor: EstilosBarra[] = [];\n get coloresValor(): EstilosBarra[] { return this._coloresValor; }\n @Input() set coloresValor(val: EstilosBarra[] | undefined ) {\n if (!val || !Array.isArray(val)) {\n this._coloresValor = [\n {valorMaximo: 1, class: 'p-0'},\n {valorMaximo: 40, class: 'bg-red-400 text-red-900'},\n // {valorMaximo: 35, class: 'bg-red-600 text-red-100'},\n {valorMaximo: 80, class: 'bg-yellow-600 text-yellow-100'},\n {valorMaximo: 100, class: 'bg-green-600 text-green-100'},\n ];\n }\n else {\n this._coloresValor = val;\n }\n }\n\n\tconstructor() { }\n\n\tngOnInit(): void {\n\t}\n\n\tcolorEstilo(): {style: string, class: string} {\n\t\tlet estiloFin = null;\n\t\tlet claseFin = null;\n\t\tlet encontro = false;\n\n\t\tthis.coloresValor = this.ordenarPorPropiedad(this.coloresValor, 'valorMaximo');\n\n\t\tthis.coloresValor.forEach(estilo => {\n\t\t\tif (!encontro && (this.porcentaje <= estilo.valorMaximo)) {\n\t\t\t\t// console.log(this.porcentaje, estilo, (this.porcentaje < estilo.valorMaximo));\n\t\t\t\tencontro = true;\n\t\t\t\testiloFin = estilo.style;\n\t\t\t\tclaseFin = estilo.class;\n\t\t\t}\n\t\t});\n\t\treturn {\n\t\t\tstyle: estiloFin ?? '',\n\t\t\tclass: claseFin ?? '',\n\t\t};\n\t}\n\n ordenarPorPropiedad(objData: any[], propiedad: string, numeros = false) {\n if (numeros) {\n return objData.sort((a, b) => a[propiedad] - b[propiedad]);\n }\n return objData.sort((a, b) => (a[propiedad] > b[propiedad]) ? 1:((b[propiedad] > a[propiedad]) ? -1:0));\n }\n\n}\n","<div class=\"w-full bg-gray-200 text-gray-700 rounded-full\" [class.text-center]=\"textoCentrado\">\n\t<div class=\"text-xxs font-medium text-center p-1 leading-none rounded-full\"\n\t\t [ngClass]=\"colorEstilo().class ? colorEstilo().class : 'bg-blue-600 text-blue-100'\"\n\t\t [style]=\"colorEstilo().style ? colorEstilo().style : ''\"\n\t\t [style.width]=\"(textoCentrado ? 100 : porcentaje) + '%'\"\n\t>\n <span *ngIf=\"textoMostrar else defaultText;\" class=\"whitespace-nowrap\">{{ textoMostrar }}</span>\n <ng-template #defaultText>{{ porcentaje | number: formatoNumero }}%</ng-template>\n </div>\n</div>\n","export * from './progress-bar.component';\n// export * from './progress-spinner.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAoBa,oBAAoB,CAAA;AAEvB,IAAA,OAAO;IACP,UAAU,GAAG,CAAC;IACd,aAAa,GAAG,KAAK;IAEnB,aAAa,GAAW,EAAE;IAClC,IAAI,YAAY,KAAa,OAAO,IAAI,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"jvsoft-components-tabla-mantenimiento-components-progress-bar.mjs","sources":["../../../projects/components/tabla-mantenimiento/components/progress-bar/progress-bar.component.ts","../../../projects/components/tabla-mantenimiento/components/progress-bar/progress-bar.component.html","../../../projects/components/tabla-mantenimiento/components/progress-bar/public-api.ts","../../../projects/components/tabla-mantenimiento/components/progress-bar/jvsoft-components-tabla-mantenimiento-components-progress-bar.ts"],"sourcesContent":["import {Component, Input, OnInit} from '@angular/core';\nimport {CommonModule, DecimalPipe} from '@angular/common';\n\nexport interface EstilosBarra {\n\tvalorMaximo: number;\n\tclass?: string;\n\tstyle?: string;\n}\n\n@Component({\n selector: 'jvs-progress-bar',\n templateUrl: './progress-bar.component.html',\n imports: [\n CommonModule,\n DecimalPipe\n ],\n host: {\n class: 'jvs-progress-bar',\n }\n})\nexport class ProgressBarComponent implements OnInit {\n\n\t@Input() objThis: any;\n\t@Input() porcentaje = 0;\n\t@Input() textoCentrado = false;\n\n private _textoMostrar: string = '';\n get textoMostrar(): string { return this._textoMostrar; }\n\t@Input() set textoMostrar(val: string) { this._textoMostrar = val; }\n\n private _formatoNumero: string = '';\n get formatoNumero(): string { return this._formatoNumero; }\n\t@Input() set formatoNumero(val: string | undefined) { this._formatoNumero = val ?? '1.0-0'; }\n\n private _coloresValor: EstilosBarra[] = [];\n get coloresValor(): EstilosBarra[] { return this._coloresValor; }\n @Input() set coloresValor(val: EstilosBarra[] | undefined ) {\n if (!val || !Array.isArray(val)) {\n this._coloresValor = [\n {valorMaximo: 1, class: 'p-0'},\n {valorMaximo: 40, class: 'bg-red-400 text-red-900'},\n // {valorMaximo: 35, class: 'bg-red-600 text-red-100'},\n {valorMaximo: 80, class: 'bg-yellow-600 text-yellow-100'},\n {valorMaximo: 100, class: 'bg-green-600 text-green-100'},\n ];\n }\n else {\n this._coloresValor = val;\n }\n }\n\n\tconstructor() { }\n\n\tngOnInit(): void {\n\t}\n\n\tcolorEstilo(): {style: string, class: string} {\n\t\tlet estiloFin = null;\n\t\tlet claseFin = null;\n\t\tlet encontro = false;\n\n\t\tthis.coloresValor = this.ordenarPorPropiedad(this.coloresValor, 'valorMaximo');\n\n\t\tthis.coloresValor.forEach(estilo => {\n\t\t\tif (!encontro && (this.porcentaje <= estilo.valorMaximo)) {\n\t\t\t\t// console.log(this.porcentaje, estilo, (this.porcentaje < estilo.valorMaximo));\n\t\t\t\tencontro = true;\n\t\t\t\testiloFin = estilo.style;\n\t\t\t\tclaseFin = estilo.class;\n\t\t\t}\n\t\t});\n\t\treturn {\n\t\t\tstyle: estiloFin ?? '',\n\t\t\tclass: claseFin ?? '',\n\t\t};\n\t}\n\n ordenarPorPropiedad(objData: any[], propiedad: string, numeros = false) {\n if (numeros) {\n return objData.sort((a, b) => a[propiedad] - b[propiedad]);\n }\n return objData.sort((a, b) => (a[propiedad] > b[propiedad]) ? 1:((b[propiedad] > a[propiedad]) ? -1:0));\n }\n\n}\n","<div class=\"w-full bg-gray-200 text-gray-700 rounded-full\" [class.text-center]=\"textoCentrado\">\n\t<div class=\"text-xxs font-medium text-center p-1 leading-none rounded-full\"\n\t\t [ngClass]=\"colorEstilo().class ? colorEstilo().class : 'bg-blue-600 text-blue-100'\"\n\t\t [style]=\"colorEstilo().style ? colorEstilo().style : ''\"\n\t\t [style.width]=\"(textoCentrado ? 100 : porcentaje) + '%'\"\n\t>\n <span *ngIf=\"textoMostrar else defaultText;\" class=\"whitespace-nowrap\">{{ textoMostrar }}</span>\n <ng-template #defaultText>{{ porcentaje | number: formatoNumero }}%</ng-template>\n </div>\n</div>\n","export * from './progress-bar.component';\n// export * from './progress-spinner.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|