keevo-components 2.0.209 → 2.0.211
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/esm2022/lib/api/base-components/base_enum.mjs +11 -0
- package/esm2022/lib/api/types/kv-sverity.mjs +9 -0
- package/esm2022/lib/api/types/severity.mjs +1 -1
- package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.component.mjs +2 -9
- package/esm2022/lib/components/kv-tags/kv-tags.component.mjs +2 -2
- package/esm2022/public-api.mjs +6 -2
- package/fesm2022/keevo-components.mjs +129 -117
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/lib/api/base-components/base_enum.d.ts +14 -0
- package/lib/api/types/kv-sverity.d.ts +2 -0
- package/lib/components/kv-filter-cards/kv-filter-cards.component.d.ts +2 -3
- package/lib/components/kv-icon/kv-icon.component.d.ts +1 -1
- package/lib/components/kv-tag/kv-tag.component.d.ts +1 -1
- package/lib/components/kv-tags/kv-tags.component.d.ts +1 -1
- package/lib/components/kv-widget-card/kv-widget-card.component.d.ts +2 -2
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
|
@@ -3414,6 +3414,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
3414
3414
|
args: ['window:resize', ['$event']]
|
|
3415
3415
|
}] } });
|
|
3416
3416
|
|
|
3417
|
+
;
|
|
3418
|
+
function createEnumUtils(config) {
|
|
3419
|
+
return {
|
|
3420
|
+
listar: () => Object.values(config),
|
|
3421
|
+
getLabel: (value) => config[value]?.label ?? 'Desconhecido',
|
|
3422
|
+
getSeverity: (value) => config[value]?.severity,
|
|
3423
|
+
getHexColor: (value) => config[value]?.hexColor,
|
|
3424
|
+
isValid: (value) => Object.keys(config).includes(value)
|
|
3425
|
+
};
|
|
3426
|
+
}
|
|
3427
|
+
|
|
3428
|
+
const mapaSeverityColors = {
|
|
3429
|
+
primary: '#0A8765', // Verde
|
|
3430
|
+
secondary: '#0A3A78', // Azul escuro
|
|
3431
|
+
tertiary: '#778599', // Cinza
|
|
3432
|
+
info: '#0091C2', // Azul claro
|
|
3433
|
+
warning: '#E1963D', // Amarelo
|
|
3434
|
+
danger: '#B91C1C', // Laranja
|
|
3435
|
+
};
|
|
3436
|
+
|
|
3417
3437
|
class DocsService {
|
|
3418
3438
|
static validaCpfCnpj(cpfcnpj) {
|
|
3419
3439
|
cpfcnpj = cpfcnpj.replace(/\D/g, '');
|
|
@@ -5629,122 +5649,6 @@ const TIMEOUTS = {
|
|
|
5629
5649
|
autoSave: 3000
|
|
5630
5650
|
};
|
|
5631
5651
|
|
|
5632
|
-
class KvFilterCardsFormatterPipe {
|
|
5633
|
-
transform(value, formato) {
|
|
5634
|
-
if (value == null)
|
|
5635
|
-
return '';
|
|
5636
|
-
switch (formato) {
|
|
5637
|
-
case 'currency':
|
|
5638
|
-
return new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(Number(value));
|
|
5639
|
-
case 'percent':
|
|
5640
|
-
return `${(Number(value) * 100).toFixed(0)}%`;
|
|
5641
|
-
case 'decimal':
|
|
5642
|
-
return new Intl.NumberFormat('pt-BR').format(Number(value));
|
|
5643
|
-
case 'int':
|
|
5644
|
-
return `${Math.round(Number(value))}`;
|
|
5645
|
-
case 'date':
|
|
5646
|
-
return new Intl.DateTimeFormat('pt-BR').format(new Date(value));
|
|
5647
|
-
case 'text':
|
|
5648
|
-
default:
|
|
5649
|
-
return value.toString();
|
|
5650
|
-
}
|
|
5651
|
-
}
|
|
5652
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsFormatterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
5653
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsFormatterPipe, name: "kvFilterCardsFormatter" }); }
|
|
5654
|
-
}
|
|
5655
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsFormatterPipe, decorators: [{
|
|
5656
|
-
type: Pipe,
|
|
5657
|
-
args: [{ name: 'kvFilterCardsFormatter' }]
|
|
5658
|
-
}] });
|
|
5659
|
-
|
|
5660
|
-
class KvFilterCardsComponent {
|
|
5661
|
-
constructor() {
|
|
5662
|
-
// Lista de cards de filtro, cada um com um ícone e valor específico
|
|
5663
|
-
this.cards = input();
|
|
5664
|
-
this.staticCards = input(false);
|
|
5665
|
-
this.cursorPointer = input(true);
|
|
5666
|
-
this.selectedCards = model([]);
|
|
5667
|
-
this.selectedCardsTratado = computed(() => {
|
|
5668
|
-
const cardsSelecionados = this.selectedCards();
|
|
5669
|
-
const cards = this.cards() ?? [];
|
|
5670
|
-
if (!cardsSelecionados || cardsSelecionados.length === 0)
|
|
5671
|
-
return [];
|
|
5672
|
-
// Se for array de number, converte
|
|
5673
|
-
if (typeof cardsSelecionados[0] === 'number') {
|
|
5674
|
-
return cards.filter(c => cardsSelecionados.includes(c.id));
|
|
5675
|
-
}
|
|
5676
|
-
// Já é array de objeto
|
|
5677
|
-
return cardsSelecionados;
|
|
5678
|
-
});
|
|
5679
|
-
this.loadingCards = input(false);
|
|
5680
|
-
// Define se os cards devem ser exibidos em uma linha ou coluna
|
|
5681
|
-
this.wrapCards = input(false);
|
|
5682
|
-
// Define se os cards devem ser centralizados
|
|
5683
|
-
this.alignCardsCenter = input(false);
|
|
5684
|
-
this.onCardClick = output();
|
|
5685
|
-
this.color = computed(() => (card) => {
|
|
5686
|
-
const color = mapaSeverityColors[card.severity];
|
|
5687
|
-
return color ? color : mapaSeverityColors.tertiary;
|
|
5688
|
-
});
|
|
5689
|
-
this.mixedColor = computed(() => (card) => {
|
|
5690
|
-
return this.getTransparentMix(this.color()(card));
|
|
5691
|
-
});
|
|
5692
|
-
}
|
|
5693
|
-
getTransparentMix(baseHex, opacity = 0.3) {
|
|
5694
|
-
const r = parseInt(baseHex.slice(1, 3), 16);
|
|
5695
|
-
const g = parseInt(baseHex.slice(3, 5), 16);
|
|
5696
|
-
const b = parseInt(baseHex.slice(5, 7), 16);
|
|
5697
|
-
return `rgba(${r}, ${g}, ${b}, ${opacity})`;
|
|
5698
|
-
}
|
|
5699
|
-
handleCardClick(card) {
|
|
5700
|
-
this.onCardClick.emit(card);
|
|
5701
|
-
this.selectedCards.update((raw) => {
|
|
5702
|
-
let selected;
|
|
5703
|
-
// Se vier como number[], converter usando this.cards()
|
|
5704
|
-
if (typeof raw[0] === 'number') {
|
|
5705
|
-
const allCards = this.cards() ?? [];
|
|
5706
|
-
selected = allCards.filter(c => raw.includes(c.id));
|
|
5707
|
-
}
|
|
5708
|
-
else {
|
|
5709
|
-
selected = raw;
|
|
5710
|
-
}
|
|
5711
|
-
const exists = selected.some(c => c.id === card.id);
|
|
5712
|
-
const updated = exists
|
|
5713
|
-
? selected.filter(c => c.id !== card.id)
|
|
5714
|
-
: [...selected, card];
|
|
5715
|
-
return updated;
|
|
5716
|
-
});
|
|
5717
|
-
}
|
|
5718
|
-
verificarSeCardEstaSelecionado(card) {
|
|
5719
|
-
return this.selectedCardsTratado()?.find(c => c.id === card.id) !== undefined;
|
|
5720
|
-
}
|
|
5721
|
-
getColorFillPolygon(card) {
|
|
5722
|
-
if (this.staticCards()) {
|
|
5723
|
-
return 'var(--main-color)';
|
|
5724
|
-
}
|
|
5725
|
-
if (!this.selectedCardsTratado()?.includes(card)) {
|
|
5726
|
-
return 'color-mix(in srgb, var(--mixed-color) 40%, white 60%)';
|
|
5727
|
-
}
|
|
5728
|
-
else {
|
|
5729
|
-
return 'color-mix(in srgb, var(--mixed-color) 99%, white 1%)';
|
|
5730
|
-
}
|
|
5731
|
-
}
|
|
5732
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5733
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFilterCardsComponent, selector: "kv-filter-cards", inputs: { cards: { classPropertyName: "cards", publicName: "cards", isSignal: true, isRequired: false, transformFunction: null }, staticCards: { classPropertyName: "staticCards", publicName: "staticCards", isSignal: true, isRequired: false, transformFunction: null }, cursorPointer: { classPropertyName: "cursorPointer", publicName: "cursorPointer", isSignal: true, isRequired: false, transformFunction: null }, selectedCards: { classPropertyName: "selectedCards", publicName: "selectedCards", isSignal: true, isRequired: false, transformFunction: null }, loadingCards: { classPropertyName: "loadingCards", publicName: "loadingCards", isSignal: true, isRequired: false, transformFunction: null }, wrapCards: { classPropertyName: "wrapCards", publicName: "wrapCards", isSignal: true, isRequired: false, transformFunction: null }, alignCardsCenter: { classPropertyName: "alignCardsCenter", publicName: "alignCardsCenter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedCards: "selectedCardsChange", onCardClick: "onCardClick" }, ngImport: i0, template: "<div\r\n id=\"filter-card-container\"\r\n class=\"flex flex-row w-full justify-content-between\"\r\n>\r\n <div\r\n class=\"flex p-fluid formgrid w-full gap-2 overflow-y-hidden\"\r\n [ngClass]=\"[\r\n wrapCards() ? 'flex-wrap' : 'flex-nowrap overflow-x-auto',\r\n alignCardsCenter() ? 'justify-content-center' : 'justify-content-start'\r\n ]\"\r\n #filterCardsContainer\r\n >\r\n @for (card of cards(); track card.id) {\r\n\r\n <div\r\n (click)=\"handleCardClick(card)\"\r\n [style.--main-color]=\"color()(card)\"\r\n [style.--mixed-color]=\"mixedColor()(card)\"\r\n class=\"filter-card\"\r\n [ngClass]=\"[\r\n 'filter-card-size',\r\n verificarSeCardEstaSelecionado(card)\r\n ? 'filter-card-active'\r\n : 'clickable',\r\n staticCards() ? 'filter-card-active' : '',\r\n !staticCards() && !verificarSeCardEstaSelecionado(card)\r\n ? 'filter-card-hover'\r\n : '',\r\n cursorPointer() ? 'cursor-pointer' : ''\r\n ]\"\r\n >\r\n <div class=\"filter-card-content\">\r\n <div class=\"filter-card-title\">\r\n <div class=\"flex flex-column\">\r\n <div\r\n style=\"font-weight: semibold; font-size: 0.75em\"\r\n [style.color]=\"color()(card)\"\r\n >\r\n {{ card?.titulo }}\r\n </div>\r\n\r\n <div class=\"h-1rem\">\r\n @if(loadingCards()){\r\n\r\n <span class=\"loading-spinner\"></span>\r\n\r\n } @else {\r\n\r\n <span\r\n class=\"flex align-items-center\"\r\n [style.color]=\"color()(card)\"\r\n style=\"font-size: 0.825em; font-weight: 600\"\r\n >\r\n {{ card.valor | kvFilterCardsFormatter : card.formato }}\r\n </span>\r\n\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (card.icon) {\r\n\r\n <div class=\"hex-icon-svg\">\r\n <!-- <svg style=\"overflow: visible\" viewBox=\"0 0 100 100\" class=\"hex-bg\">\r\n <polygon\r\n [attr.fill]=\"getColorFillPolygon(card)\"\r\n points=\"93.3 75,50 100,6.7 75,6.7 25,50 0,93.3 25\"\r\n stroke=\"var(--main-color)\"\r\n stroke-width=\"3\"\r\n stroke-linejoin=\"round\"\r\n stroke-linecap=\"round\"\r\n opacity=\"0.8\"\r\n />\r\n </svg> -->\r\n\r\n <div class=\"flex align-items-center justify-content-center p-2 border-round-lg transition-all transition-duration-300\" \r\n [style.backgroundColor]=\"getColorFillPolygon(card)\">\r\n <span\r\n [style.color]=\"'var(--main-color)'\"\r\n class=\"material-symbols-outlined icon\"\r\n >\r\n {{ card?.icon }}\r\n </span>\r\n </div>\r\n\r\n </div>\r\n\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.card,.card-disabled,.filter-card-active{transition:border .3s ease,background-color .3s ease;border:1px solid #cbd5e1}.filter-card{cursor:pointer;transition:all ease-in-out .2s;border:1px solid #cbd5e1;border-radius:.5rem;-webkit-user-select:none;user-select:none}.filter-card-hover:hover{background:#f8fafc;transition:border .3s ease,background-color .3s ease;border:var(--main-color) .5px solid}.filter-card-hover:active{background:#f8fafc;border:var(--main-color) .5px solid}.filter-card-active{border:var(--main-color) .5px solid;background-color:color-mix(in srgb,var(--mixed-color) 10%,white 90%)}p{font-size:.75rem}.select-none{-webkit-user-select:none;user-select:none}.filter-card-content{display:flex;flex-direction:row;align-items:center;padding:.5rem;gap:.5rem}.filter-card-title{flex:1 1 0%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.hex-icon-svg{position:relative;width:1.75rem;height:1.75rem;font-size:1.5rem;display:flex;align-items:center;justify-content:center}.icon{font-weight:500!important;font-size:.75em!important}div.filter-card-hover:hover .hex-icon-svg>svg>polygon{fill:var(--mixed-color)}polygon{transition:all ease-in-out .25s}#filter-card-container{container:filter-card-container/inline-size}.filter-card-size{flex:1 1 auto;padding:0 .25rem;box-sizing:border-box}@container filter-card-container (min-width: 360px){.filter-card-size{width:50%}}@container filter-card-container (min-width: 600px){.filter-card-size{width:33.3333%}}@container filter-card-container (min-width: 900px){.filter-card-size{width:25%}}@container filter-card-container (min-width: 1200px){.filter-card-size{width:16.6667%}}@container filter-card-container (min-width: 1500px){.filter-card-size{width:14.2857%}}@media (min-width: 360px){.filter-card-size{width:50%}}@media (min-width: 600px){.filter-card-size{width:33.3333%}}@media (min-width: 900px){.filter-card-size{width:25%}}@media (min-width: 1200px){.filter-card-size{width:16.6667%}}@media (min-width: 1500px){.filter-card-size{width:14.2857%}}.flex-nowrap.overflow-x-auto{overflow-x:auto;scrollbar-width:thin}.flex-wrap .filter-card-size{flex:1 1 auto}.loading-spinner{width:.85rem;height:.85rem;border:2px solid var(--main-color);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation .8s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: KvFilterCardsFormatterPipe, name: "kvFilterCardsFormatter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5734
|
-
}
|
|
5735
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsComponent, decorators: [{
|
|
5736
|
-
type: Component,
|
|
5737
|
-
args: [{ selector: 'kv-filter-cards', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n id=\"filter-card-container\"\r\n class=\"flex flex-row w-full justify-content-between\"\r\n>\r\n <div\r\n class=\"flex p-fluid formgrid w-full gap-2 overflow-y-hidden\"\r\n [ngClass]=\"[\r\n wrapCards() ? 'flex-wrap' : 'flex-nowrap overflow-x-auto',\r\n alignCardsCenter() ? 'justify-content-center' : 'justify-content-start'\r\n ]\"\r\n #filterCardsContainer\r\n >\r\n @for (card of cards(); track card.id) {\r\n\r\n <div\r\n (click)=\"handleCardClick(card)\"\r\n [style.--main-color]=\"color()(card)\"\r\n [style.--mixed-color]=\"mixedColor()(card)\"\r\n class=\"filter-card\"\r\n [ngClass]=\"[\r\n 'filter-card-size',\r\n verificarSeCardEstaSelecionado(card)\r\n ? 'filter-card-active'\r\n : 'clickable',\r\n staticCards() ? 'filter-card-active' : '',\r\n !staticCards() && !verificarSeCardEstaSelecionado(card)\r\n ? 'filter-card-hover'\r\n : '',\r\n cursorPointer() ? 'cursor-pointer' : ''\r\n ]\"\r\n >\r\n <div class=\"filter-card-content\">\r\n <div class=\"filter-card-title\">\r\n <div class=\"flex flex-column\">\r\n <div\r\n style=\"font-weight: semibold; font-size: 0.75em\"\r\n [style.color]=\"color()(card)\"\r\n >\r\n {{ card?.titulo }}\r\n </div>\r\n\r\n <div class=\"h-1rem\">\r\n @if(loadingCards()){\r\n\r\n <span class=\"loading-spinner\"></span>\r\n\r\n } @else {\r\n\r\n <span\r\n class=\"flex align-items-center\"\r\n [style.color]=\"color()(card)\"\r\n style=\"font-size: 0.825em; font-weight: 600\"\r\n >\r\n {{ card.valor | kvFilterCardsFormatter : card.formato }}\r\n </span>\r\n\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (card.icon) {\r\n\r\n <div class=\"hex-icon-svg\">\r\n <!-- <svg style=\"overflow: visible\" viewBox=\"0 0 100 100\" class=\"hex-bg\">\r\n <polygon\r\n [attr.fill]=\"getColorFillPolygon(card)\"\r\n points=\"93.3 75,50 100,6.7 75,6.7 25,50 0,93.3 25\"\r\n stroke=\"var(--main-color)\"\r\n stroke-width=\"3\"\r\n stroke-linejoin=\"round\"\r\n stroke-linecap=\"round\"\r\n opacity=\"0.8\"\r\n />\r\n </svg> -->\r\n\r\n <div class=\"flex align-items-center justify-content-center p-2 border-round-lg transition-all transition-duration-300\" \r\n [style.backgroundColor]=\"getColorFillPolygon(card)\">\r\n <span\r\n [style.color]=\"'var(--main-color)'\"\r\n class=\"material-symbols-outlined icon\"\r\n >\r\n {{ card?.icon }}\r\n </span>\r\n </div>\r\n\r\n </div>\r\n\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.card,.card-disabled,.filter-card-active{transition:border .3s ease,background-color .3s ease;border:1px solid #cbd5e1}.filter-card{cursor:pointer;transition:all ease-in-out .2s;border:1px solid #cbd5e1;border-radius:.5rem;-webkit-user-select:none;user-select:none}.filter-card-hover:hover{background:#f8fafc;transition:border .3s ease,background-color .3s ease;border:var(--main-color) .5px solid}.filter-card-hover:active{background:#f8fafc;border:var(--main-color) .5px solid}.filter-card-active{border:var(--main-color) .5px solid;background-color:color-mix(in srgb,var(--mixed-color) 10%,white 90%)}p{font-size:.75rem}.select-none{-webkit-user-select:none;user-select:none}.filter-card-content{display:flex;flex-direction:row;align-items:center;padding:.5rem;gap:.5rem}.filter-card-title{flex:1 1 0%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.hex-icon-svg{position:relative;width:1.75rem;height:1.75rem;font-size:1.5rem;display:flex;align-items:center;justify-content:center}.icon{font-weight:500!important;font-size:.75em!important}div.filter-card-hover:hover .hex-icon-svg>svg>polygon{fill:var(--mixed-color)}polygon{transition:all ease-in-out .25s}#filter-card-container{container:filter-card-container/inline-size}.filter-card-size{flex:1 1 auto;padding:0 .25rem;box-sizing:border-box}@container filter-card-container (min-width: 360px){.filter-card-size{width:50%}}@container filter-card-container (min-width: 600px){.filter-card-size{width:33.3333%}}@container filter-card-container (min-width: 900px){.filter-card-size{width:25%}}@container filter-card-container (min-width: 1200px){.filter-card-size{width:16.6667%}}@container filter-card-container (min-width: 1500px){.filter-card-size{width:14.2857%}}@media (min-width: 360px){.filter-card-size{width:50%}}@media (min-width: 600px){.filter-card-size{width:33.3333%}}@media (min-width: 900px){.filter-card-size{width:25%}}@media (min-width: 1200px){.filter-card-size{width:16.6667%}}@media (min-width: 1500px){.filter-card-size{width:14.2857%}}.flex-nowrap.overflow-x-auto{overflow-x:auto;scrollbar-width:thin}.flex-wrap .filter-card-size{flex:1 1 auto}.loading-spinner{width:.85rem;height:.85rem;border:2px solid var(--main-color);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation .8s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
5738
|
-
}] });
|
|
5739
|
-
const mapaSeverityColors = {
|
|
5740
|
-
primary: '#0A8765', // Verde
|
|
5741
|
-
secondary: '#0A3A78', // Azul escuro
|
|
5742
|
-
tertiary: '#778599', // Cinza
|
|
5743
|
-
info: '#0091C2', // Azul claro
|
|
5744
|
-
warning: '#E1963D', // Amarelo
|
|
5745
|
-
danger: '#B91C1C', // Laranja
|
|
5746
|
-
};
|
|
5747
|
-
|
|
5748
5652
|
class KvTagsComponent {
|
|
5749
5653
|
constructor() {
|
|
5750
5654
|
this.tags = input();
|
|
@@ -10886,6 +10790,114 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
10886
10790
|
}]
|
|
10887
10791
|
}] });
|
|
10888
10792
|
|
|
10793
|
+
class KvFilterCardsFormatterPipe {
|
|
10794
|
+
transform(value, formato) {
|
|
10795
|
+
if (value == null)
|
|
10796
|
+
return '';
|
|
10797
|
+
switch (formato) {
|
|
10798
|
+
case 'currency':
|
|
10799
|
+
return new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(Number(value));
|
|
10800
|
+
case 'percent':
|
|
10801
|
+
return `${(Number(value) * 100).toFixed(0)}%`;
|
|
10802
|
+
case 'decimal':
|
|
10803
|
+
return new Intl.NumberFormat('pt-BR').format(Number(value));
|
|
10804
|
+
case 'int':
|
|
10805
|
+
return `${Math.round(Number(value))}`;
|
|
10806
|
+
case 'date':
|
|
10807
|
+
return new Intl.DateTimeFormat('pt-BR').format(new Date(value));
|
|
10808
|
+
case 'text':
|
|
10809
|
+
default:
|
|
10810
|
+
return value.toString();
|
|
10811
|
+
}
|
|
10812
|
+
}
|
|
10813
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsFormatterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
10814
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsFormatterPipe, name: "kvFilterCardsFormatter" }); }
|
|
10815
|
+
}
|
|
10816
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsFormatterPipe, decorators: [{
|
|
10817
|
+
type: Pipe,
|
|
10818
|
+
args: [{ name: 'kvFilterCardsFormatter' }]
|
|
10819
|
+
}] });
|
|
10820
|
+
|
|
10821
|
+
class KvFilterCardsComponent {
|
|
10822
|
+
constructor() {
|
|
10823
|
+
// Lista de cards de filtro, cada um com um ícone e valor específico
|
|
10824
|
+
this.cards = input();
|
|
10825
|
+
this.staticCards = input(false);
|
|
10826
|
+
this.cursorPointer = input(true);
|
|
10827
|
+
this.selectedCards = model([]);
|
|
10828
|
+
this.selectedCardsTratado = computed(() => {
|
|
10829
|
+
const cardsSelecionados = this.selectedCards();
|
|
10830
|
+
const cards = this.cards() ?? [];
|
|
10831
|
+
if (!cardsSelecionados || cardsSelecionados.length === 0)
|
|
10832
|
+
return [];
|
|
10833
|
+
// Se for array de number, converte
|
|
10834
|
+
if (typeof cardsSelecionados[0] === 'number') {
|
|
10835
|
+
return cards.filter(c => cardsSelecionados.includes(c.id));
|
|
10836
|
+
}
|
|
10837
|
+
// Já é array de objeto
|
|
10838
|
+
return cardsSelecionados;
|
|
10839
|
+
});
|
|
10840
|
+
this.loadingCards = input(false);
|
|
10841
|
+
// Define se os cards devem ser exibidos em uma linha ou coluna
|
|
10842
|
+
this.wrapCards = input(false);
|
|
10843
|
+
// Define se os cards devem ser centralizados
|
|
10844
|
+
this.alignCardsCenter = input(false);
|
|
10845
|
+
this.onCardClick = output();
|
|
10846
|
+
this.color = computed(() => (card) => {
|
|
10847
|
+
const color = mapaSeverityColors[card.severity];
|
|
10848
|
+
return color ? color : mapaSeverityColors.tertiary;
|
|
10849
|
+
});
|
|
10850
|
+
this.mixedColor = computed(() => (card) => {
|
|
10851
|
+
return this.getTransparentMix(this.color()(card));
|
|
10852
|
+
});
|
|
10853
|
+
}
|
|
10854
|
+
getTransparentMix(baseHex, opacity = 0.3) {
|
|
10855
|
+
const r = parseInt(baseHex.slice(1, 3), 16);
|
|
10856
|
+
const g = parseInt(baseHex.slice(3, 5), 16);
|
|
10857
|
+
const b = parseInt(baseHex.slice(5, 7), 16);
|
|
10858
|
+
return `rgba(${r}, ${g}, ${b}, ${opacity})`;
|
|
10859
|
+
}
|
|
10860
|
+
handleCardClick(card) {
|
|
10861
|
+
this.onCardClick.emit(card);
|
|
10862
|
+
this.selectedCards.update((raw) => {
|
|
10863
|
+
let selected;
|
|
10864
|
+
// Se vier como number[], converter usando this.cards()
|
|
10865
|
+
if (typeof raw[0] === 'number') {
|
|
10866
|
+
const allCards = this.cards() ?? [];
|
|
10867
|
+
selected = allCards.filter(c => raw.includes(c.id));
|
|
10868
|
+
}
|
|
10869
|
+
else {
|
|
10870
|
+
selected = raw;
|
|
10871
|
+
}
|
|
10872
|
+
const exists = selected.some(c => c.id === card.id);
|
|
10873
|
+
const updated = exists
|
|
10874
|
+
? selected.filter(c => c.id !== card.id)
|
|
10875
|
+
: [...selected, card];
|
|
10876
|
+
return updated;
|
|
10877
|
+
});
|
|
10878
|
+
}
|
|
10879
|
+
verificarSeCardEstaSelecionado(card) {
|
|
10880
|
+
return this.selectedCardsTratado()?.find(c => c.id === card.id) !== undefined;
|
|
10881
|
+
}
|
|
10882
|
+
getColorFillPolygon(card) {
|
|
10883
|
+
if (this.staticCards()) {
|
|
10884
|
+
return 'var(--main-color)';
|
|
10885
|
+
}
|
|
10886
|
+
if (!this.selectedCardsTratado()?.includes(card)) {
|
|
10887
|
+
return 'color-mix(in srgb, var(--mixed-color) 40%, white 60%)';
|
|
10888
|
+
}
|
|
10889
|
+
else {
|
|
10890
|
+
return 'color-mix(in srgb, var(--mixed-color) 99%, white 1%)';
|
|
10891
|
+
}
|
|
10892
|
+
}
|
|
10893
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10894
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFilterCardsComponent, selector: "kv-filter-cards", inputs: { cards: { classPropertyName: "cards", publicName: "cards", isSignal: true, isRequired: false, transformFunction: null }, staticCards: { classPropertyName: "staticCards", publicName: "staticCards", isSignal: true, isRequired: false, transformFunction: null }, cursorPointer: { classPropertyName: "cursorPointer", publicName: "cursorPointer", isSignal: true, isRequired: false, transformFunction: null }, selectedCards: { classPropertyName: "selectedCards", publicName: "selectedCards", isSignal: true, isRequired: false, transformFunction: null }, loadingCards: { classPropertyName: "loadingCards", publicName: "loadingCards", isSignal: true, isRequired: false, transformFunction: null }, wrapCards: { classPropertyName: "wrapCards", publicName: "wrapCards", isSignal: true, isRequired: false, transformFunction: null }, alignCardsCenter: { classPropertyName: "alignCardsCenter", publicName: "alignCardsCenter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedCards: "selectedCardsChange", onCardClick: "onCardClick" }, ngImport: i0, template: "<div\r\n id=\"filter-card-container\"\r\n class=\"flex flex-row w-full justify-content-between\"\r\n>\r\n <div\r\n class=\"flex p-fluid formgrid w-full gap-2 overflow-y-hidden\"\r\n [ngClass]=\"[\r\n wrapCards() ? 'flex-wrap' : 'flex-nowrap overflow-x-auto',\r\n alignCardsCenter() ? 'justify-content-center' : 'justify-content-start'\r\n ]\"\r\n #filterCardsContainer\r\n >\r\n @for (card of cards(); track card.id) {\r\n\r\n <div\r\n (click)=\"handleCardClick(card)\"\r\n [style.--main-color]=\"color()(card)\"\r\n [style.--mixed-color]=\"mixedColor()(card)\"\r\n class=\"filter-card\"\r\n [ngClass]=\"[\r\n 'filter-card-size',\r\n verificarSeCardEstaSelecionado(card)\r\n ? 'filter-card-active'\r\n : 'clickable',\r\n staticCards() ? 'filter-card-active' : '',\r\n !staticCards() && !verificarSeCardEstaSelecionado(card)\r\n ? 'filter-card-hover'\r\n : '',\r\n cursorPointer() ? 'cursor-pointer' : ''\r\n ]\"\r\n >\r\n <div class=\"filter-card-content\">\r\n <div class=\"filter-card-title\">\r\n <div class=\"flex flex-column\">\r\n <div\r\n style=\"font-weight: semibold; font-size: 0.75em\"\r\n [style.color]=\"color()(card)\"\r\n >\r\n {{ card?.titulo }}\r\n </div>\r\n\r\n <div class=\"h-1rem\">\r\n @if(loadingCards()){\r\n\r\n <span class=\"loading-spinner\"></span>\r\n\r\n } @else {\r\n\r\n <span\r\n class=\"flex align-items-center\"\r\n [style.color]=\"color()(card)\"\r\n style=\"font-size: 0.825em; font-weight: 600\"\r\n >\r\n {{ card.valor | kvFilterCardsFormatter : card.formato }}\r\n </span>\r\n\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (card.icon) {\r\n\r\n <div class=\"hex-icon-svg\">\r\n <!-- <svg style=\"overflow: visible\" viewBox=\"0 0 100 100\" class=\"hex-bg\">\r\n <polygon\r\n [attr.fill]=\"getColorFillPolygon(card)\"\r\n points=\"93.3 75,50 100,6.7 75,6.7 25,50 0,93.3 25\"\r\n stroke=\"var(--main-color)\"\r\n stroke-width=\"3\"\r\n stroke-linejoin=\"round\"\r\n stroke-linecap=\"round\"\r\n opacity=\"0.8\"\r\n />\r\n </svg> -->\r\n\r\n <div class=\"flex align-items-center justify-content-center p-2 border-round-lg transition-all transition-duration-300\" \r\n [style.backgroundColor]=\"getColorFillPolygon(card)\">\r\n <span\r\n [style.color]=\"'var(--main-color)'\"\r\n class=\"material-symbols-outlined icon\"\r\n >\r\n {{ card?.icon }}\r\n </span>\r\n </div>\r\n\r\n </div>\r\n\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.card,.card-disabled,.filter-card-active{transition:border .3s ease,background-color .3s ease;border:1px solid #cbd5e1}.filter-card{cursor:pointer;transition:all ease-in-out .2s;border:1px solid #cbd5e1;border-radius:.5rem;-webkit-user-select:none;user-select:none}.filter-card-hover:hover{background:#f8fafc;transition:border .3s ease,background-color .3s ease;border:var(--main-color) .5px solid}.filter-card-hover:active{background:#f8fafc;border:var(--main-color) .5px solid}.filter-card-active{border:var(--main-color) .5px solid;background-color:color-mix(in srgb,var(--mixed-color) 10%,white 90%)}p{font-size:.75rem}.select-none{-webkit-user-select:none;user-select:none}.filter-card-content{display:flex;flex-direction:row;align-items:center;padding:.5rem;gap:.5rem}.filter-card-title{flex:1 1 0%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.hex-icon-svg{position:relative;width:1.75rem;height:1.75rem;font-size:1.5rem;display:flex;align-items:center;justify-content:center}.icon{font-weight:500!important;font-size:.75em!important}div.filter-card-hover:hover .hex-icon-svg>svg>polygon{fill:var(--mixed-color)}polygon{transition:all ease-in-out .25s}#filter-card-container{container:filter-card-container/inline-size}.filter-card-size{flex:1 1 auto;padding:0 .25rem;box-sizing:border-box}@container filter-card-container (min-width: 360px){.filter-card-size{width:50%}}@container filter-card-container (min-width: 600px){.filter-card-size{width:33.3333%}}@container filter-card-container (min-width: 900px){.filter-card-size{width:25%}}@container filter-card-container (min-width: 1200px){.filter-card-size{width:16.6667%}}@container filter-card-container (min-width: 1500px){.filter-card-size{width:14.2857%}}@media (min-width: 360px){.filter-card-size{width:50%}}@media (min-width: 600px){.filter-card-size{width:33.3333%}}@media (min-width: 900px){.filter-card-size{width:25%}}@media (min-width: 1200px){.filter-card-size{width:16.6667%}}@media (min-width: 1500px){.filter-card-size{width:14.2857%}}.flex-nowrap.overflow-x-auto{overflow-x:auto;scrollbar-width:thin}.flex-wrap .filter-card-size{flex:1 1 auto}.loading-spinner{width:.85rem;height:.85rem;border:2px solid var(--main-color);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation .8s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: KvFilterCardsFormatterPipe, name: "kvFilterCardsFormatter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10895
|
+
}
|
|
10896
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsComponent, decorators: [{
|
|
10897
|
+
type: Component,
|
|
10898
|
+
args: [{ selector: 'kv-filter-cards', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n id=\"filter-card-container\"\r\n class=\"flex flex-row w-full justify-content-between\"\r\n>\r\n <div\r\n class=\"flex p-fluid formgrid w-full gap-2 overflow-y-hidden\"\r\n [ngClass]=\"[\r\n wrapCards() ? 'flex-wrap' : 'flex-nowrap overflow-x-auto',\r\n alignCardsCenter() ? 'justify-content-center' : 'justify-content-start'\r\n ]\"\r\n #filterCardsContainer\r\n >\r\n @for (card of cards(); track card.id) {\r\n\r\n <div\r\n (click)=\"handleCardClick(card)\"\r\n [style.--main-color]=\"color()(card)\"\r\n [style.--mixed-color]=\"mixedColor()(card)\"\r\n class=\"filter-card\"\r\n [ngClass]=\"[\r\n 'filter-card-size',\r\n verificarSeCardEstaSelecionado(card)\r\n ? 'filter-card-active'\r\n : 'clickable',\r\n staticCards() ? 'filter-card-active' : '',\r\n !staticCards() && !verificarSeCardEstaSelecionado(card)\r\n ? 'filter-card-hover'\r\n : '',\r\n cursorPointer() ? 'cursor-pointer' : ''\r\n ]\"\r\n >\r\n <div class=\"filter-card-content\">\r\n <div class=\"filter-card-title\">\r\n <div class=\"flex flex-column\">\r\n <div\r\n style=\"font-weight: semibold; font-size: 0.75em\"\r\n [style.color]=\"color()(card)\"\r\n >\r\n {{ card?.titulo }}\r\n </div>\r\n\r\n <div class=\"h-1rem\">\r\n @if(loadingCards()){\r\n\r\n <span class=\"loading-spinner\"></span>\r\n\r\n } @else {\r\n\r\n <span\r\n class=\"flex align-items-center\"\r\n [style.color]=\"color()(card)\"\r\n style=\"font-size: 0.825em; font-weight: 600\"\r\n >\r\n {{ card.valor | kvFilterCardsFormatter : card.formato }}\r\n </span>\r\n\r\n }\r\n </div>\r\n </div>\r\n\r\n @if (card.icon) {\r\n\r\n <div class=\"hex-icon-svg\">\r\n <!-- <svg style=\"overflow: visible\" viewBox=\"0 0 100 100\" class=\"hex-bg\">\r\n <polygon\r\n [attr.fill]=\"getColorFillPolygon(card)\"\r\n points=\"93.3 75,50 100,6.7 75,6.7 25,50 0,93.3 25\"\r\n stroke=\"var(--main-color)\"\r\n stroke-width=\"3\"\r\n stroke-linejoin=\"round\"\r\n stroke-linecap=\"round\"\r\n opacity=\"0.8\"\r\n />\r\n </svg> -->\r\n\r\n <div class=\"flex align-items-center justify-content-center p-2 border-round-lg transition-all transition-duration-300\" \r\n [style.backgroundColor]=\"getColorFillPolygon(card)\">\r\n <span\r\n [style.color]=\"'var(--main-color)'\"\r\n class=\"material-symbols-outlined icon\"\r\n >\r\n {{ card?.icon }}\r\n </span>\r\n </div>\r\n\r\n </div>\r\n\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.card,.card-disabled,.filter-card-active{transition:border .3s ease,background-color .3s ease;border:1px solid #cbd5e1}.filter-card{cursor:pointer;transition:all ease-in-out .2s;border:1px solid #cbd5e1;border-radius:.5rem;-webkit-user-select:none;user-select:none}.filter-card-hover:hover{background:#f8fafc;transition:border .3s ease,background-color .3s ease;border:var(--main-color) .5px solid}.filter-card-hover:active{background:#f8fafc;border:var(--main-color) .5px solid}.filter-card-active{border:var(--main-color) .5px solid;background-color:color-mix(in srgb,var(--mixed-color) 10%,white 90%)}p{font-size:.75rem}.select-none{-webkit-user-select:none;user-select:none}.filter-card-content{display:flex;flex-direction:row;align-items:center;padding:.5rem;gap:.5rem}.filter-card-title{flex:1 1 0%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.hex-icon-svg{position:relative;width:1.75rem;height:1.75rem;font-size:1.5rem;display:flex;align-items:center;justify-content:center}.icon{font-weight:500!important;font-size:.75em!important}div.filter-card-hover:hover .hex-icon-svg>svg>polygon{fill:var(--mixed-color)}polygon{transition:all ease-in-out .25s}#filter-card-container{container:filter-card-container/inline-size}.filter-card-size{flex:1 1 auto;padding:0 .25rem;box-sizing:border-box}@container filter-card-container (min-width: 360px){.filter-card-size{width:50%}}@container filter-card-container (min-width: 600px){.filter-card-size{width:33.3333%}}@container filter-card-container (min-width: 900px){.filter-card-size{width:25%}}@container filter-card-container (min-width: 1200px){.filter-card-size{width:16.6667%}}@container filter-card-container (min-width: 1500px){.filter-card-size{width:14.2857%}}@media (min-width: 360px){.filter-card-size{width:50%}}@media (min-width: 600px){.filter-card-size{width:33.3333%}}@media (min-width: 900px){.filter-card-size{width:25%}}@media (min-width: 1200px){.filter-card-size{width:16.6667%}}@media (min-width: 1500px){.filter-card-size{width:14.2857%}}.flex-nowrap.overflow-x-auto{overflow-x:auto;scrollbar-width:thin}.flex-wrap .filter-card-size{flex:1 1 auto}.loading-spinner{width:.85rem;height:.85rem;border:2px solid var(--main-color);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation .8s linear infinite}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
10899
|
+
}] });
|
|
10900
|
+
|
|
10889
10901
|
// Importação do componente que será declarado neste módulo
|
|
10890
10902
|
class KvFilterCardsModule {
|
|
10891
10903
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFilterCardsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -13999,5 +14011,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
13999
14011
|
* Generated bundle index. Do not edit.
|
|
14000
14012
|
*/
|
|
14001
14013
|
|
|
14002
|
-
export { BaseApiService, BaseChartComponent, BaseComponent, BaseComponentButton, BaseComponentCrud, BaseComponentCrudForm, BaseComponentCrudList, BaseComponentDropDown, BaseComponentDropDownExternal, BaseComponentInput, BaseComponentMultiSelect, BasecomponentTable, BreadcrumbsService, CDN_URLS, CUSTOM_FONTS, CapitalizePipe, ChatService, ComponentProviders, ComponentService, CpfCnpjPipe, DEBOUNCE_TIME, DEFAULT_KV_EDITOR_CONFIG, DEFAULT_QUILL_CONFIG, DocsService, DragDirective, DynamicInputDirective, ERROR_MESSAGES, FONT_SIZES, FormService, ImageCutterService, ImagensService, KeevoComponentsModule, KeevoValidators, KvAvatarComponent, KvAvatarModule, KvButtonComponent, KvButtonModule, KvButtonPersonalizeComponent, KvButtonPopupComponent, KvButtonSecondaryComponent, KvButtonSuccessComponent, KvButtonsModule, KvCardSelectionComponent, KvCardSelectionModule, KvCarouselComponent, KvCarouselModule, KvChartComponent, KvChartModule, KvCheckComponent, KvConfirmationModalComponent, KvConfirmationModalModule, KvContentViewerComponent, KvContentViewerModule, KvDetailedListComponent, KvDropdownComponent, KvEditorComponent, KvEditorMentionService, KvEditorPdfService, KvEditorQuillService, KvEditorRelatorioService, KvErrorComponent, KvFileUploadComponent, KvFileUploadModule, KvFileViewerComponent, KvFileViewerModule, KvFileViewerNovoComponent, KvFileViewerNovoModule, KvFilterCardComponent, KvFilterCardModule, KvFilterCardsComponent, KvFilterCardsModule, KvFilterFieldsetComponent, KvFilterFieldsetModule, KvGIconComponent, KvGIconModule, KvHomeCardComponent, KvHomeCardModule, KvIconComponent, KvIconModule, KvImageUploadComponent, KvImageUploadModule, KvInputCalendarComponent, KvInputMaskComponent, KvInputNumberAddonComponent, KvInputNumberComponent, KvInputPasswordComponent, KvInputTextAddonComponent, KvInputTextCheckboxComponent, KvInputTextComponent, KvInputTextareaComponent, KvInputTimeComponent, KvInputsModule, KvLayoutComponent, KvLayoutModule, KvLoaderComponent, KvLoaderModule, KvLoaderService, KvLoginComponent, KvLoginModule, KvModalComponent, KvModalModule, KvMultiSelectComponent, KvOrgchartComponent, KvOrgchartModule, KvPageFormComponent, KvPageFormModule, KvPageStepperComponent, KvPageStepperodule, KvPickListComponent, KvPickListModule, KvProgressBarAlternativeComponent, KvProgressBarAlternativeModule, KvProgressBarModule, KvRadioGroupComponent, KvReportComponent, KvReportModule, KvSelectButtonComponent, KvSelectButtonsComponent, KvStackedBarChartComponent, KvStepperComponent, KvStepperModule, KvStepsComponent, KvSwitchComponent, KvTableComponent, KvTableDraggableComponent, KvTableDraggableModule, KvTableEditComponent, KvTableEditModule, KvTableExpandableComponent, KvTableExpandableModule, KvTableModule, KvTableViewerComponent, KvTagComponent, KvTagModule, KvTagsComponent, KvTagsModule, KvTimelineComponent, KvTreeEnvironmentComponent, KvTreeMultiSelectComponent, KvTreeViewComponent, KvTreetableComponent, KvTreetableModule, KvWidgetCardComponent, KvWorkspaceModule, KvtreeViewModule, MaskPipe, NoArvoreComponent, NotificationService, ObjectService, OrgChartService, PDF_STYLES, PeriodosChart, PipesModule, PrimeNgModule, ProgressBarComponent, TIMEOUTS, TablePaginate, TelefonePipe, TemplateDirective, TranslatePrimeng, WorkspaceComponent, getOrExecute, kvErrorModule, loading, mapToMenuItem, mapaSeverityColors };
|
|
14014
|
+
export { BaseApiService, BaseChartComponent, BaseComponent, BaseComponentButton, BaseComponentCrud, BaseComponentCrudForm, BaseComponentCrudList, BaseComponentDropDown, BaseComponentDropDownExternal, BaseComponentInput, BaseComponentMultiSelect, BasecomponentTable, BreadcrumbsService, CDN_URLS, CUSTOM_FONTS, CapitalizePipe, ChatService, ComponentProviders, ComponentService, CpfCnpjPipe, DEBOUNCE_TIME, DEFAULT_KV_EDITOR_CONFIG, DEFAULT_QUILL_CONFIG, DocsService, DragDirective, DynamicInputDirective, ERROR_MESSAGES, FONT_SIZES, FormService, ImageCutterService, ImagensService, KeevoComponentsModule, KeevoValidators, KvAvatarComponent, KvAvatarModule, KvButtonComponent, KvButtonModule, KvButtonPersonalizeComponent, KvButtonPopupComponent, KvButtonSecondaryComponent, KvButtonSuccessComponent, KvButtonsModule, KvCardSelectionComponent, KvCardSelectionModule, KvCarouselComponent, KvCarouselModule, KvChartComponent, KvChartModule, KvCheckComponent, KvConfirmationModalComponent, KvConfirmationModalModule, KvContentViewerComponent, KvContentViewerModule, KvDetailedListComponent, KvDropdownComponent, KvEditorComponent, KvEditorMentionService, KvEditorPdfService, KvEditorQuillService, KvEditorRelatorioService, KvErrorComponent, KvFileUploadComponent, KvFileUploadModule, KvFileViewerComponent, KvFileViewerModule, KvFileViewerNovoComponent, KvFileViewerNovoModule, KvFilterCardComponent, KvFilterCardModule, KvFilterCardsComponent, KvFilterCardsModule, KvFilterFieldsetComponent, KvFilterFieldsetModule, KvGIconComponent, KvGIconModule, KvHomeCardComponent, KvHomeCardModule, KvIconComponent, KvIconModule, KvImageUploadComponent, KvImageUploadModule, KvInputCalendarComponent, KvInputMaskComponent, KvInputNumberAddonComponent, KvInputNumberComponent, KvInputPasswordComponent, KvInputTextAddonComponent, KvInputTextCheckboxComponent, KvInputTextComponent, KvInputTextareaComponent, KvInputTimeComponent, KvInputsModule, KvLayoutComponent, KvLayoutModule, KvLoaderComponent, KvLoaderModule, KvLoaderService, KvLoginComponent, KvLoginModule, KvModalComponent, KvModalModule, KvMultiSelectComponent, KvOrgchartComponent, KvOrgchartModule, KvPageFormComponent, KvPageFormModule, KvPageStepperComponent, KvPageStepperodule, KvPickListComponent, KvPickListModule, KvProgressBarAlternativeComponent, KvProgressBarAlternativeModule, KvProgressBarModule, KvRadioGroupComponent, KvReportComponent, KvReportModule, KvSelectButtonComponent, KvSelectButtonsComponent, KvStackedBarChartComponent, KvStepperComponent, KvStepperModule, KvStepsComponent, KvSwitchComponent, KvTableComponent, KvTableDraggableComponent, KvTableDraggableModule, KvTableEditComponent, KvTableEditModule, KvTableExpandableComponent, KvTableExpandableModule, KvTableModule, KvTableViewerComponent, KvTagComponent, KvTagModule, KvTagsComponent, KvTagsModule, KvTimelineComponent, KvTreeEnvironmentComponent, KvTreeMultiSelectComponent, KvTreeViewComponent, KvTreetableComponent, KvTreetableModule, KvWidgetCardComponent, KvWorkspaceModule, KvtreeViewModule, MaskPipe, NoArvoreComponent, NotificationService, ObjectService, OrgChartService, PDF_STYLES, PeriodosChart, PipesModule, PrimeNgModule, ProgressBarComponent, TIMEOUTS, TablePaginate, TelefonePipe, TemplateDirective, TranslatePrimeng, WorkspaceComponent, createEnumUtils, getOrExecute, kvErrorModule, loading, mapToMenuItem, mapaSeverityColors };
|
|
14003
14015
|
//# sourceMappingURL=keevo-components.mjs.map
|