@masterkeymaterial/ui 0.0.9 → 0.1.1
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.
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, computed, model, input, output, effect, Component, HostBinding, viewChild, ElementRef, inject, HostListener, Pipe } from '@angular/core';
|
|
2
|
+
import { signal, computed, model, input, output, effect, Component, HostBinding, viewChild, ElementRef, inject, HostListener, Pipe, InjectionToken, Injectable, Injector, ViewContainerRef, ChangeDetectionStrategy, Optional, Inject } from '@angular/core';
|
|
3
3
|
import { autoUpdate, computePosition, offset, flip, shift } from '@floating-ui/dom';
|
|
4
4
|
import { NgComponentOutlet } from '@angular/common';
|
|
5
5
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
|
+
import * as i1 from '@angular/cdk/drag-drop';
|
|
7
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
6
8
|
|
|
7
9
|
////////////////////////////////////
|
|
8
10
|
// CONSOLES: LOG - WARN - ERR ...
|
|
@@ -6448,11 +6450,1071 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
6448
6450
|
args: [{ selector: 'ui-single-values', imports: [], template: "<div [class]=\"modo()\" [class.showEntidade]=\"true\">\n\n\n\t@for (dado of dadosAExibir(); track $index) {\n\t<div class=\"linhaDado\" [class.isEspecial]=\"dado.isEspecial\">\n\t\t<div class=\"titulo\" [innerHTML]=\"dado.label\"></div>\n\t\t<div class=\"conteudo\" [innerHTML]=\"dado.value\"></div>\n\t</div>\n\t}\n\n</div>", styles: [".showEntidade{margin-top:5px}.linhaDado{border:1px solid transparent;border-bottom:1px dotted var(--sys-primary-15)}.titulo{font-weight:600}.linhaDado.isEspecial .titulo{color:var(--sys-secondary)}.conteudo{color:color-mix(in srgb,var(--sys-secondary) 50%,var(--sys-on-background) 50%)}.linhaDado:hover{border-bottom:1px solid var(--sys-secondary)}.showEntidade.cantos .linhaDado{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:calc(var(--sys-gap) / 2)}.showEntidade.centro .linhaDado{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--sys-gap) / 2)}.showEntidade.centro .titulo{text-align:end}.showEntidade.esquerda .linhaDado{display:grid;grid-template-columns:auto 1fr;gap:calc(var(--sys-gap) / 2)}.showEntidade.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:calc(var(--sys-gap) / 4)}.showEntidade.grid .linhaDado{display:flex;flex-direction:column;flex-wrap:wrap;border:1px solid var(--sys-primary-15);border-radius:var(--sys-border-radius);padding:calc(var(--sys-gap) / 2)}.showEntidade.grid .linhaDado:hover{border:1px solid var(--sys-secondary)}.showEntidade.wrap{display:flex;flex-wrap:wrap;gap:calc(var(--sys-gap) / 2)}.showEntidade.wrap .linhaDado{display:flex;flex-direction:column;flex-wrap:wrap;border:1px solid var(--sys-primary-15);border-radius:var(--sys-border-radius);padding:calc(var(--sys-gap) / 2)}.showEntidade.wrap .linhaDado:hover{border:1px solid var(--sys-secondary)}\n"] }]
|
|
6449
6451
|
}], propDecorators: { dados: [{ type: i0.Input, args: [{ isSignal: true, alias: "dados", required: false }] }], modo: [{ type: i0.Input, args: [{ isSignal: true, alias: "modo", required: false }] }, { type: i0.Output, args: ["modoChange"] }], especialKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "especialKeys", required: false }] }] } });
|
|
6450
6452
|
|
|
6453
|
+
// ─── ScreenMode (definido localmente — sem dependência do LayoutCoreService) ──────
|
|
6454
|
+
var ScreenMode;
|
|
6455
|
+
(function (ScreenMode) {
|
|
6456
|
+
ScreenMode["Mobile"] = "Mobile";
|
|
6457
|
+
ScreenMode["Desktop"] = "Desktop";
|
|
6458
|
+
ScreenMode["Tablet"] = "Tablet";
|
|
6459
|
+
})(ScreenMode || (ScreenMode = {}));
|
|
6460
|
+
const GRID_PARAMS_TOKEN = new InjectionToken('GRID_PARAMS');
|
|
6461
|
+
var IGridFilterType;
|
|
6462
|
+
(function (IGridFilterType) {
|
|
6463
|
+
IGridFilterType["Exato"] = "exact";
|
|
6464
|
+
IGridFilterType["Como"] = "like";
|
|
6465
|
+
IGridFilterType["MaiorQue"] = "bigger";
|
|
6466
|
+
IGridFilterType["MenorQue"] = "smaller";
|
|
6467
|
+
IGridFilterType["Entre"] = "between";
|
|
6468
|
+
IGridFilterType["Column"] = "column";
|
|
6469
|
+
})(IGridFilterType || (IGridFilterType = {}));
|
|
6470
|
+
const PAGINATION_OPTIONS = [
|
|
6471
|
+
{ k: 5, v: "5" },
|
|
6472
|
+
{ k: 10, v: "10" },
|
|
6473
|
+
{ k: 25, v: "25" },
|
|
6474
|
+
{ k: 50, v: "50" },
|
|
6475
|
+
{ k: 100, v: "100" },
|
|
6476
|
+
{ k: 1000, v: "1000" },
|
|
6477
|
+
];
|
|
6478
|
+
|
|
6479
|
+
class GridCellService {
|
|
6480
|
+
gridParams = signal(undefined, ...(ngDevMode ? [{ debugName: "gridParams" }] : /* istanbul ignore next */ []));
|
|
6481
|
+
updateGridParams(params) {
|
|
6482
|
+
this.gridParams.set(params);
|
|
6483
|
+
}
|
|
6484
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridCellService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6485
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridCellService });
|
|
6486
|
+
}
|
|
6487
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridCellService, decorators: [{
|
|
6488
|
+
type: Injectable
|
|
6489
|
+
}] });
|
|
6490
|
+
|
|
6491
|
+
const PROP_CONTROLE_ATIVO$1 = 'is_ativo';
|
|
6492
|
+
class GridCellHandler {
|
|
6493
|
+
parentInjector = inject(Injector);
|
|
6494
|
+
sanitizer = inject(DomSanitizer);
|
|
6495
|
+
servico = inject(GridCellService);
|
|
6496
|
+
lista = input.required(...(ngDevMode ? [{ debugName: "lista" }] : /* istanbul ignore next */ []));
|
|
6497
|
+
linha = input.required(...(ngDevMode ? [{ debugName: "linha" }] : /* istanbul ignore next */ []));
|
|
6498
|
+
config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
|
|
6499
|
+
localColuna = input.required(...(ngDevMode ? [{ debugName: "localColuna" }] : /* istanbul ignore next */ []));
|
|
6500
|
+
localColunas = input.required(...(ngDevMode ? [{ debugName: "localColunas" }] : /* istanbul ignore next */ []));
|
|
6501
|
+
inputSearchText = input.required(...(ngDevMode ? [{ debugName: "inputSearchText" }] : /* istanbul ignore next */ []));
|
|
6502
|
+
ativo = signal(true, ...(ngDevMode ? [{ debugName: "ativo" }] : /* istanbul ignore next */ []));
|
|
6503
|
+
gridParams;
|
|
6504
|
+
vcr = viewChild('cellComponent', { ...(ngDevMode ? { debugName: "vcr" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
|
|
6505
|
+
componenteRef;
|
|
6506
|
+
valueToRender = "";
|
|
6507
|
+
ngOnInit() {
|
|
6508
|
+
this.gridParams = this.getGridParams();
|
|
6509
|
+
if (!this.localColuna().cellComponent) {
|
|
6510
|
+
this.valueToRender = this.getRenderer();
|
|
6511
|
+
}
|
|
6512
|
+
}
|
|
6513
|
+
ngOnDestroy() {
|
|
6514
|
+
if (this.componenteRef) {
|
|
6515
|
+
this.componenteRef.destroy();
|
|
6516
|
+
this.componenteRef = undefined;
|
|
6517
|
+
}
|
|
6518
|
+
}
|
|
6519
|
+
ngAfterViewInit() {
|
|
6520
|
+
this.createComponente();
|
|
6521
|
+
}
|
|
6522
|
+
ngOnChanges(changes) {
|
|
6523
|
+
this.valueToRender = this.getRenderer();
|
|
6524
|
+
this.gridParams = this.getGridParams();
|
|
6525
|
+
if (changes['linha'] && this.servico) {
|
|
6526
|
+
this.servico.updateGridParams(this.gridParams);
|
|
6527
|
+
}
|
|
6528
|
+
}
|
|
6529
|
+
getRenderer() {
|
|
6530
|
+
let data = "";
|
|
6531
|
+
let prop = this.localColuna().prop;
|
|
6532
|
+
if (LibUtil.classof(prop) == "string" && prop.includes(".")) {
|
|
6533
|
+
const props = prop.split(".");
|
|
6534
|
+
const lastObj = LibUtil.getV(props.slice(0, -1).join("."), this.linha());
|
|
6535
|
+
this.ativo.set(!!lastObj?.[PROP_CONTROLE_ATIVO$1]);
|
|
6536
|
+
}
|
|
6537
|
+
if (this.localColuna().prop)
|
|
6538
|
+
data = LibUtil.getV(this.localColuna().prop, this.linha());
|
|
6539
|
+
if (this.localColuna().mask) {
|
|
6540
|
+
data = LibUtil.mascarar(data, this.localColuna().mask) ?? data;
|
|
6541
|
+
}
|
|
6542
|
+
if (this.localColuna().capitalize) {
|
|
6543
|
+
data = LibUtil.capitalize(data);
|
|
6544
|
+
}
|
|
6545
|
+
if (this.localColuna().cellRenderer) {
|
|
6546
|
+
const html = this.localColuna().cellRenderer(this.getGridParams())
|
|
6547
|
+
?? data
|
|
6548
|
+
?? '';
|
|
6549
|
+
return this.sanitizer.bypassSecurityTrustHtml(html);
|
|
6550
|
+
}
|
|
6551
|
+
data = data?.toString() ?? '';
|
|
6552
|
+
let words = this.inputSearchText().trim().split(" ").filter(t => t != "").map(p => LibUtil.removeEspecias(p).toLowerCase());
|
|
6553
|
+
if (words.length > 0) {
|
|
6554
|
+
for (let w of words) {
|
|
6555
|
+
let preparedData = LibUtil.removeAcentos(data).toLowerCase();
|
|
6556
|
+
if (w != "" && preparedData.includes(w)) {
|
|
6557
|
+
let regexTag = new RegExp(`<[^>]*${w}[^>]*>`, 'i');
|
|
6558
|
+
if (regexTag.test(preparedData.toString())) {
|
|
6559
|
+
continue;
|
|
6560
|
+
}
|
|
6561
|
+
let pos = preparedData.toString().toLowerCase().indexOf(w.toLowerCase());
|
|
6562
|
+
data = data.slice(0, pos)
|
|
6563
|
+
+ "<mark>"
|
|
6564
|
+
+ data.slice(pos, pos + w.length)
|
|
6565
|
+
+ "</mark>"
|
|
6566
|
+
+ data.slice(pos + w.length);
|
|
6567
|
+
data = data.replaceAll("</mark><mark>", "");
|
|
6568
|
+
}
|
|
6569
|
+
}
|
|
6570
|
+
;
|
|
6571
|
+
}
|
|
6572
|
+
return data ?? '';
|
|
6573
|
+
}
|
|
6574
|
+
createComponente() {
|
|
6575
|
+
if (this.localColuna().cellComponent) {
|
|
6576
|
+
this.vcr()?.clear();
|
|
6577
|
+
this.componenteRef = this.vcr()?.createComponent(this.localColuna().cellComponent.component, {
|
|
6578
|
+
injector: Injector.create({
|
|
6579
|
+
parent: this.parentInjector,
|
|
6580
|
+
providers: [
|
|
6581
|
+
{ provide: GRID_PARAMS_TOKEN, useValue: this.gridParams },
|
|
6582
|
+
{ provide: 'GRID_PARAMS', useValue: this.gridParams }
|
|
6583
|
+
]
|
|
6584
|
+
})
|
|
6585
|
+
});
|
|
6586
|
+
}
|
|
6587
|
+
}
|
|
6588
|
+
getGridParams() {
|
|
6589
|
+
let value = "";
|
|
6590
|
+
if (this.localColuna().prop)
|
|
6591
|
+
value = LibUtil.getV(this.localColuna().prop, this.linha());
|
|
6592
|
+
return {
|
|
6593
|
+
coluna: this.localColuna(),
|
|
6594
|
+
colunas: this.localColunas(),
|
|
6595
|
+
data: this.linha(),
|
|
6596
|
+
lista: this.lista(),
|
|
6597
|
+
params: this.localColuna().cellComponent?.input ?? this.localColuna().cellRendererParams,
|
|
6598
|
+
servicoParams: this.servico,
|
|
6599
|
+
value,
|
|
6600
|
+
};
|
|
6601
|
+
}
|
|
6602
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridCellHandler, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6603
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: GridCellHandler, isStandalone: true, selector: "lib-grid-cell-handler", inputs: { lista: { classPropertyName: "lista", publicName: "lista", isSignal: true, isRequired: true, transformFunction: null }, linha: { classPropertyName: "linha", publicName: "linha", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, localColuna: { classPropertyName: "localColuna", publicName: "localColuna", isSignal: true, isRequired: true, transformFunction: null }, localColunas: { classPropertyName: "localColunas", publicName: "localColunas", isSignal: true, isRequired: true, transformFunction: null }, inputSearchText: { classPropertyName: "inputSearchText", publicName: "inputSearchText", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.table-inativo": "!ativo()" } }, viewQueries: [{ propertyName: "vcr", first: true, predicate: ["cellComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@if(localColuna().cellComponent){\n<div class=\"d-none\" #cellComponent></div>\n} @else {\n<div [innerHTML]=\"valueToRender\"></div>\n}", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center}:host>div{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6604
|
+
}
|
|
6605
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridCellHandler, decorators: [{
|
|
6606
|
+
type: Component,
|
|
6607
|
+
args: [{ selector: 'lib-grid-cell-handler', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
6608
|
+
'[class.table-inativo]': '!ativo()'
|
|
6609
|
+
}, template: "@if(localColuna().cellComponent){\n<div class=\"d-none\" #cellComponent></div>\n} @else {\n<div [innerHTML]=\"valueToRender\"></div>\n}", styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center}:host>div{display:contents}\n"] }]
|
|
6610
|
+
}], propDecorators: { lista: [{ type: i0.Input, args: [{ isSignal: true, alias: "lista", required: true }] }], linha: [{ type: i0.Input, args: [{ isSignal: true, alias: "linha", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], localColuna: [{ type: i0.Input, args: [{ isSignal: true, alias: "localColuna", required: true }] }], localColunas: [{ type: i0.Input, args: [{ isSignal: true, alias: "localColunas", required: true }] }], inputSearchText: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputSearchText", required: true }] }], vcr: [{ type: i0.ViewChild, args: ['cellComponent', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
|
|
6611
|
+
|
|
6612
|
+
class GridCellActions {
|
|
6613
|
+
config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
|
|
6614
|
+
dadosDaLinha = input.required(...(ngDevMode ? [{ debugName: "dadosDaLinha" }] : /* istanbul ignore next */ []));
|
|
6615
|
+
mobileHeader = input(false, ...(ngDevMode ? [{ debugName: "mobileHeader" }] : /* istanbul ignore next */ []));
|
|
6616
|
+
compact = input(false, ...(ngDevMode ? [{ debugName: "compact" }] : /* istanbul ignore next */ []));
|
|
6617
|
+
action = output();
|
|
6618
|
+
onClickAction(action, dadosDaLinha) {
|
|
6619
|
+
if (action?.action) {
|
|
6620
|
+
this.action.emit({ action, dadosDaLinha });
|
|
6621
|
+
}
|
|
6622
|
+
return;
|
|
6623
|
+
}
|
|
6624
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridCellActions, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6625
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: GridCellActions, isStandalone: true, selector: "lib-grid-cell-actions", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, dadosDaLinha: { classPropertyName: "dadosDaLinha", publicName: "dadosDaLinha", isSignal: true, isRequired: true, transformFunction: null }, mobileHeader: { classPropertyName: "mobileHeader", publicName: "mobileHeader", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { action: "action" }, ngImport: i0, template: "@if(!compact()){\n@for (action of dadosDaLinha().actions; track $index;) {\n@if(action.showAction && action.inmenu !== true){\n<ui-button [tipo]=\"mobileHeader() ? 'fill' : 'icon'\" [tema]=\"action?.tema ?? 'primary'\" [title]=\"action.display\"\n\t(click)=\"onClickAction(action, dadosDaLinha())\" [icone]=\"action.icon\"\n\t[style.--ui-height]=\"compact() ? '20px' : '40px'\"></ui-button>\n}\n}\n}\n\n@if(dadosDaLinha().hasActionMenu || compact()){\n<ui-menu>\n\t<ui-button slot=\"botao\" tipo=\"icon\" tema=\"primary\" [title]=\"config().actionsLineConfig.menuDisplay\"\n\t\t[icone]=\"config().actionsLineConfig.showMenuIcon ? 'bi bi-three-dots-vertical' : undefined\">\n\t\t{{ config().actionsLineConfig.menuDisplay }}\n\t</ui-button>\n\n\t@for (action of dadosDaLinha().actions; track $index;let last = $last) {\n\t@if(action.showAction && (action.inmenu !== false || compact())){\n\t<ui-button tipo=\"menu-item\" [tema]=\"action?.tema ?? 'primary'\" (click)=\"onClickAction(action, dadosDaLinha())\"\n\t\t[icone]=\"action?.showIcon ? action?.icon : 'bi bi-dot'\" [style.--ui-padding]=\"'0 16px'\">\n\t\t{{ action?.display ?? '' }}\n\t</ui-button>\n\t}\n\t}\n\n</ui-menu>\n}", styles: [":host{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;height:auto}.listaAcoesTabela button:not(:first-child){border:0px;border-top:1px solid var(--mk-grid-outline)}\n"], dependencies: [{ kind: "component", type: UiButton, selector: "ui-button", inputs: ["icone", "iconeAntes", "iconeDepois", "iconeCategory", "disabled", "eventPropagation", "radiusTabFormat", "tabindex", "tipo", "tema", "classes", "ativo"], outputs: ["iconeChange", "iconeAntesChange", "iconeDepoisChange", "iconeCategoryChange", "clicked", "temaChange"] }, { kind: "component", type: UiMenu, selector: "ui-menu", inputs: ["disabled", "icone", "autoCloseInCascade", "posicao", "isOpened"], outputs: ["autoCloseInCascadeChange", "posicaoChange", "isOpenedChange"] }] });
|
|
6626
|
+
}
|
|
6627
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridCellActions, decorators: [{
|
|
6628
|
+
type: Component,
|
|
6629
|
+
args: [{ selector: 'lib-grid-cell-actions', imports: [UiButton, UiMenu], template: "@if(!compact()){\n@for (action of dadosDaLinha().actions; track $index;) {\n@if(action.showAction && action.inmenu !== true){\n<ui-button [tipo]=\"mobileHeader() ? 'fill' : 'icon'\" [tema]=\"action?.tema ?? 'primary'\" [title]=\"action.display\"\n\t(click)=\"onClickAction(action, dadosDaLinha())\" [icone]=\"action.icon\"\n\t[style.--ui-height]=\"compact() ? '20px' : '40px'\"></ui-button>\n}\n}\n}\n\n@if(dadosDaLinha().hasActionMenu || compact()){\n<ui-menu>\n\t<ui-button slot=\"botao\" tipo=\"icon\" tema=\"primary\" [title]=\"config().actionsLineConfig.menuDisplay\"\n\t\t[icone]=\"config().actionsLineConfig.showMenuIcon ? 'bi bi-three-dots-vertical' : undefined\">\n\t\t{{ config().actionsLineConfig.menuDisplay }}\n\t</ui-button>\n\n\t@for (action of dadosDaLinha().actions; track $index;let last = $last) {\n\t@if(action.showAction && (action.inmenu !== false || compact())){\n\t<ui-button tipo=\"menu-item\" [tema]=\"action?.tema ?? 'primary'\" (click)=\"onClickAction(action, dadosDaLinha())\"\n\t\t[icone]=\"action?.showIcon ? action?.icon : 'bi bi-dot'\" [style.--ui-padding]=\"'0 16px'\">\n\t\t{{ action?.display ?? '' }}\n\t</ui-button>\n\t}\n\t}\n\n</ui-menu>\n}", styles: [":host{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;height:auto}.listaAcoesTabela button:not(:first-child){border:0px;border-top:1px solid var(--mk-grid-outline)}\n"] }]
|
|
6630
|
+
}], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], dadosDaLinha: [{ type: i0.Input, args: [{ isSignal: true, alias: "dadosDaLinha", required: true }] }], mobileHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileHeader", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], action: [{ type: i0.Output, args: ["action"] }] } });
|
|
6631
|
+
|
|
6632
|
+
class GridRowRenderer {
|
|
6633
|
+
dadosLinha = input.required(...(ngDevMode ? [{ debugName: "dadosLinha" }] : /* istanbul ignore next */ []));
|
|
6634
|
+
config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
|
|
6635
|
+
colunas = input.required(...(ngDevMode ? [{ debugName: "colunas" }] : /* istanbul ignore next */ []));
|
|
6636
|
+
colunasOrdenadas = input.required(...(ngDevMode ? [{ debugName: "colunasOrdenadas" }] : /* istanbul ignore next */ []));
|
|
6637
|
+
lista = input.required(...(ngDevMode ? [{ debugName: "lista" }] : /* istanbul ignore next */ []));
|
|
6638
|
+
inputSearchText = input.required(...(ngDevMode ? [{ debugName: "inputSearchText" }] : /* istanbul ignore next */ []));
|
|
6639
|
+
hasSeletor = input(false, ...(ngDevMode ? [{ debugName: "hasSeletor" }] : /* istanbul ignore next */ []));
|
|
6640
|
+
hasVerticalLine = input(false, ...(ngDevMode ? [{ debugName: "hasVerticalLine" }] : /* istanbul ignore next */ []));
|
|
6641
|
+
isCompacted = input(false, ...(ngDevMode ? [{ debugName: "isCompacted" }] : /* istanbul ignore next */ []));
|
|
6642
|
+
hasGrid = input(false, ...(ngDevMode ? [{ debugName: "hasGrid" }] : /* istanbul ignore next */ []));
|
|
6643
|
+
rowIndex = input(0, ...(ngDevMode ? [{ debugName: "rowIndex" }] : /* istanbul ignore next */ []));
|
|
6644
|
+
actionTriggered = output();
|
|
6645
|
+
rowClicked = output();
|
|
6646
|
+
onRowAction(event) {
|
|
6647
|
+
this.actionTriggered.emit(event);
|
|
6648
|
+
}
|
|
6649
|
+
onRowClick() {
|
|
6650
|
+
this.rowClicked.emit(this.dadosLinha());
|
|
6651
|
+
}
|
|
6652
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridRowRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6653
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: GridRowRenderer, isStandalone: true, selector: "lib-grid-row-renderer", inputs: { dadosLinha: { classPropertyName: "dadosLinha", publicName: "dadosLinha", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, colunas: { classPropertyName: "colunas", publicName: "colunas", isSignal: true, isRequired: true, transformFunction: null }, colunasOrdenadas: { classPropertyName: "colunasOrdenadas", publicName: "colunasOrdenadas", isSignal: true, isRequired: true, transformFunction: null }, lista: { classPropertyName: "lista", publicName: "lista", isSignal: true, isRequired: true, transformFunction: null }, inputSearchText: { classPropertyName: "inputSearchText", publicName: "inputSearchText", isSignal: true, isRequired: true, transformFunction: null }, hasSeletor: { classPropertyName: "hasSeletor", publicName: "hasSeletor", isSignal: true, isRequired: false, transformFunction: null }, hasVerticalLine: { classPropertyName: "hasVerticalLine", publicName: "hasVerticalLine", isSignal: true, isRequired: false, transformFunction: null }, isCompacted: { classPropertyName: "isCompacted", publicName: "isCompacted", isSignal: true, isRequired: false, transformFunction: null }, hasGrid: { classPropertyName: "hasGrid", publicName: "hasGrid", isSignal: true, isRequired: false, transformFunction: null }, rowIndex: { classPropertyName: "rowIndex", publicName: "rowIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionTriggered: "actionTriggered", rowClicked: "rowClicked" }, ngImport: i0, template: "@if(hasVerticalLine()) {\n<div class=\"table-header table-formated table-vertical-line\">{{ dadosLinha().ordem }}</div>\n}\n\n@if(hasSeletor() && config().selectionMode != 'none') {\n<div class=\"table-item table-formated table-item-seletor\" [class.table-bg-error]=\"dadosLinha().inativo\"\n\t[class.odd]=\"rowIndex() % 2 !== 0\" [class.even]=\"rowIndex() % 2 === 0\" [class.hashue]=\"dadosLinha().hue !== undefined\"\n\t[class.table-border-left]=\"hasGrid()\" [style.--bghue]=\"dadosLinha().hue != 0 ? dadosLinha().hue : null\"\n\t(click)=\"onRowClick()\">\n\t<ui-check-box [(value)]=\"dadosLinha().selecionado\" [single]=\"config().selectionMode == 'single'\"\n\t\t[style.--ui-size]=\"isCompacted() ? '15px' : undefined\" [disabled]=\"dadosLinha().isSelecionando\"></ui-check-box>\n</div>\n}\n\n@for (coluna of colunas(); track $index; let j = $index) {\n@if (coluna.visivel !== false) {\n<lib-grid-cell-handler class=\"table-item table-dados {{ coluna.classeCell }}\" [class.odd]=\"rowIndex() % 2 !== 0\"\n\t[class.even]=\"rowIndex() % 2 === 0\" [class.table-first-col]=\"j === 0\" [class.hashue]=\"dadosLinha().hue !== undefined\"\n\t[style.--bghue]=\"dadosLinha().hue != 0 ? dadosLinha().hue : null\" [style.overflow]=\"coluna.overflow ?? 'hidden'\"\n\t[style.textOverflow]=\"coluna.textOverflow ?? 'ellipsis'\" [linha]=\"dadosLinha().dados\" [localColuna]=\"coluna\"\n\t[lista]=\"lista()\" [config]=\"config()\" [localColunas]=\"colunasOrdenadas()\"\n\t[class.table-bg-error]=\"dadosLinha().inativo\" (click)=\"onRowClick()\" [inputSearchText]=\"inputSearchText()\"\n\t[class.table-border-left]=\"hasGrid()\" [class.table-border-right]=\"$last && hasGrid() && !config().showActionsLine\"\n\t[attr.ordem]=\"coluna.ordem\"></lib-grid-cell-handler>\n}\n}\n\n@if(config().showActionsLine) {\n<lib-grid-cell-actions class=\"table-item table-formated table-item-action\" [class.odd]=\"rowIndex() % 2 !== 0\"\n\t[class.even]=\"rowIndex() % 2 === 0\" [class.hashue]=\"dadosLinha().hue !== undefined\"\n\t[style.--bghue]=\"dadosLinha().hue != 0 ? dadosLinha().hue : null\" [config]=\"config()\" [dadosDaLinha]=\"dadosLinha()\"\n\t[class.table-border-right-error]=\"dadosLinha().inativo\" [class.table-bg-error]=\"dadosLinha().inativo\"\n\t(action)=\"onRowAction($event)\" [compact]=\"isCompacted()\" [class.table-border-left]=\"hasGrid()\"\n\t[class.table-border-right]=\"hasGrid()\"></lib-grid-cell-actions>\n}", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: UiCheckBox, selector: "ui-check-box", inputs: ["value", "disabled", "focused", "focus", "single", "hasDash"], outputs: ["valueChange", "focusedChange", "changed"] }, { kind: "component", type: GridCellHandler, selector: "lib-grid-cell-handler", inputs: ["lista", "linha", "config", "localColuna", "localColunas", "inputSearchText"] }, { kind: "component", type: GridCellActions, selector: "lib-grid-cell-actions", inputs: ["config", "dadosDaLinha", "mobileHeader", "compact"], outputs: ["action"] }] });
|
|
6654
|
+
}
|
|
6655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridRowRenderer, decorators: [{
|
|
6656
|
+
type: Component,
|
|
6657
|
+
args: [{ selector: 'lib-grid-row-renderer', imports: [UiCheckBox, GridCellHandler, GridCellActions], template: "@if(hasVerticalLine()) {\n<div class=\"table-header table-formated table-vertical-line\">{{ dadosLinha().ordem }}</div>\n}\n\n@if(hasSeletor() && config().selectionMode != 'none') {\n<div class=\"table-item table-formated table-item-seletor\" [class.table-bg-error]=\"dadosLinha().inativo\"\n\t[class.odd]=\"rowIndex() % 2 !== 0\" [class.even]=\"rowIndex() % 2 === 0\" [class.hashue]=\"dadosLinha().hue !== undefined\"\n\t[class.table-border-left]=\"hasGrid()\" [style.--bghue]=\"dadosLinha().hue != 0 ? dadosLinha().hue : null\"\n\t(click)=\"onRowClick()\">\n\t<ui-check-box [(value)]=\"dadosLinha().selecionado\" [single]=\"config().selectionMode == 'single'\"\n\t\t[style.--ui-size]=\"isCompacted() ? '15px' : undefined\" [disabled]=\"dadosLinha().isSelecionando\"></ui-check-box>\n</div>\n}\n\n@for (coluna of colunas(); track $index; let j = $index) {\n@if (coluna.visivel !== false) {\n<lib-grid-cell-handler class=\"table-item table-dados {{ coluna.classeCell }}\" [class.odd]=\"rowIndex() % 2 !== 0\"\n\t[class.even]=\"rowIndex() % 2 === 0\" [class.table-first-col]=\"j === 0\" [class.hashue]=\"dadosLinha().hue !== undefined\"\n\t[style.--bghue]=\"dadosLinha().hue != 0 ? dadosLinha().hue : null\" [style.overflow]=\"coluna.overflow ?? 'hidden'\"\n\t[style.textOverflow]=\"coluna.textOverflow ?? 'ellipsis'\" [linha]=\"dadosLinha().dados\" [localColuna]=\"coluna\"\n\t[lista]=\"lista()\" [config]=\"config()\" [localColunas]=\"colunasOrdenadas()\"\n\t[class.table-bg-error]=\"dadosLinha().inativo\" (click)=\"onRowClick()\" [inputSearchText]=\"inputSearchText()\"\n\t[class.table-border-left]=\"hasGrid()\" [class.table-border-right]=\"$last && hasGrid() && !config().showActionsLine\"\n\t[attr.ordem]=\"coluna.ordem\"></lib-grid-cell-handler>\n}\n}\n\n@if(config().showActionsLine) {\n<lib-grid-cell-actions class=\"table-item table-formated table-item-action\" [class.odd]=\"rowIndex() % 2 !== 0\"\n\t[class.even]=\"rowIndex() % 2 === 0\" [class.hashue]=\"dadosLinha().hue !== undefined\"\n\t[style.--bghue]=\"dadosLinha().hue != 0 ? dadosLinha().hue : null\" [config]=\"config()\" [dadosDaLinha]=\"dadosLinha()\"\n\t[class.table-border-right-error]=\"dadosLinha().inativo\" [class.table-bg-error]=\"dadosLinha().inativo\"\n\t(action)=\"onRowAction($event)\" [compact]=\"isCompacted()\" [class.table-border-left]=\"hasGrid()\"\n\t[class.table-border-right]=\"hasGrid()\"></lib-grid-cell-actions>\n}", styles: [":host{display:contents}\n"] }]
|
|
6658
|
+
}], propDecorators: { dadosLinha: [{ type: i0.Input, args: [{ isSignal: true, alias: "dadosLinha", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], colunas: [{ type: i0.Input, args: [{ isSignal: true, alias: "colunas", required: true }] }], colunasOrdenadas: [{ type: i0.Input, args: [{ isSignal: true, alias: "colunasOrdenadas", required: true }] }], lista: [{ type: i0.Input, args: [{ isSignal: true, alias: "lista", required: true }] }], inputSearchText: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputSearchText", required: true }] }], hasSeletor: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasSeletor", required: false }] }], hasVerticalLine: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasVerticalLine", required: false }] }], isCompacted: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCompacted", required: false }] }], hasGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasGrid", required: false }] }], rowIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowIndex", required: false }] }], actionTriggered: [{ type: i0.Output, args: ["actionTriggered"] }], rowClicked: [{ type: i0.Output, args: ["rowClicked"] }] } });
|
|
6659
|
+
|
|
6660
|
+
class GridHeaderRow {
|
|
6661
|
+
colunas = input.required(...(ngDevMode ? [{ debugName: "colunas" }] : /* istanbul ignore next */ []));
|
|
6662
|
+
ordenacoes = input.required(...(ngDevMode ? [{ debugName: "ordenacoes" }] : /* istanbul ignore next */ []));
|
|
6663
|
+
todosSelecionados = input.required(...(ngDevMode ? [{ debugName: "todosSelecionados" }] : /* istanbul ignore next */ []));
|
|
6664
|
+
config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
|
|
6665
|
+
hasSeletor = input(false, ...(ngDevMode ? [{ debugName: "hasSeletor" }] : /* istanbul ignore next */ []));
|
|
6666
|
+
hasVerticalLine = input(false, ...(ngDevMode ? [{ debugName: "hasVerticalLine" }] : /* istanbul ignore next */ []));
|
|
6667
|
+
hasGrid = input(false, ...(ngDevMode ? [{ debugName: "hasGrid" }] : /* istanbul ignore next */ []));
|
|
6668
|
+
isCompacted = input(false, ...(ngDevMode ? [{ debugName: "isCompacted" }] : /* istanbul ignore next */ []));
|
|
6669
|
+
isSelectingAll = input(false, ...(ngDevMode ? [{ debugName: "isSelectingAll" }] : /* istanbul ignore next */ []));
|
|
6670
|
+
columnSort = output();
|
|
6671
|
+
selectAll = output();
|
|
6672
|
+
columnResizeStart = output();
|
|
6673
|
+
columnResizeDoubleClick = output();
|
|
6674
|
+
getOrdenacaoDirecao(coluna) {
|
|
6675
|
+
const ordenacao = this.ordenacoes().find(o => o.coluna === coluna);
|
|
6676
|
+
return ordenacao ? ordenacao.direcao : null;
|
|
6677
|
+
}
|
|
6678
|
+
onColumnSort(coluna) {
|
|
6679
|
+
this.columnSort.emit(coluna);
|
|
6680
|
+
}
|
|
6681
|
+
onSelectAll(value) {
|
|
6682
|
+
this.selectAll.emit(value);
|
|
6683
|
+
}
|
|
6684
|
+
onResizeStart(event, coluna) {
|
|
6685
|
+
this.columnResizeStart.emit({ event, coluna });
|
|
6686
|
+
}
|
|
6687
|
+
onResizeDoubleClick(event, coluna) {
|
|
6688
|
+
this.columnResizeDoubleClick.emit({ event, coluna });
|
|
6689
|
+
}
|
|
6690
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridHeaderRow, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6691
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: GridHeaderRow, isStandalone: true, selector: "lib-grid-header-row", inputs: { colunas: { classPropertyName: "colunas", publicName: "colunas", isSignal: true, isRequired: true, transformFunction: null }, ordenacoes: { classPropertyName: "ordenacoes", publicName: "ordenacoes", isSignal: true, isRequired: true, transformFunction: null }, todosSelecionados: { classPropertyName: "todosSelecionados", publicName: "todosSelecionados", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, hasSeletor: { classPropertyName: "hasSeletor", publicName: "hasSeletor", isSignal: true, isRequired: false, transformFunction: null }, hasVerticalLine: { classPropertyName: "hasVerticalLine", publicName: "hasVerticalLine", isSignal: true, isRequired: false, transformFunction: null }, hasGrid: { classPropertyName: "hasGrid", publicName: "hasGrid", isSignal: true, isRequired: false, transformFunction: null }, isCompacted: { classPropertyName: "isCompacted", publicName: "isCompacted", isSignal: true, isRequired: false, transformFunction: null }, isSelectingAll: { classPropertyName: "isSelectingAll", publicName: "isSelectingAll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { columnSort: "columnSort", selectAll: "selectAll", columnResizeStart: "columnResizeStart", columnResizeDoubleClick: "columnResizeDoubleClick" }, host: { styleAttribute: "display: contents" }, ngImport: i0, template: "@if(hasVerticalLine()) {\n<div class=\"table-header table-vertical-line\"></div>\n}\n\n@if(hasSeletor()) {\n<div class=\"table-header table-header-seletor\">\n\t@if(config().selectionMode == 'multiple') {\n\t<ui-check-box [single]=\"false\" [value]=\"todosSelecionados()\" (changed)=\"onSelectAll($event)\"\n\t\t[style.--ui-color]=\"'var(--sys-on-primary)'\" [style.--ui-outline]=\"'var(--sys-on-primary)'\"\n\t\t[disabled]=\"isSelectingAll()\" [style.--ui-size]=\"isCompacted() ? '15px' : undefined\"\n\t\t[hasDash]=\"true\"></ui-check-box>\n\t}\n</div>\n}\n\n@for (coluna of colunas(); track $index) {\n@if (coluna.visivel !== false) {\n<div class=\"table-header\" [class.table-border-left-darker]=\"hasGrid() && $index === 0\"\n\t[class.header-last-col]=\"$last && !config().showActionsLine\" [class.table-border-right-darker]=\"hasGrid()\"\n\t[class.sortable]=\"coluna.sortable !== false\" [class.sorted-asc]=\"getOrdenacaoDirecao(coluna.prop) === 'asc'\"\n\t[class.sorted-desc]=\"getOrdenacaoDirecao(coluna.prop) === 'desc'\" [class.textVertical]=\"coluna.textVertical\">\n\t<div cdkDrag [cdkDragData]=\"coluna\" cdkDragLockAxis=\"x\"\n\t\tclass=\"table-header-text table-drag-container drop-option {{ coluna.classeHeader }}\" [title]=\"coluna.titulo\"\n\t\t[innerHTML]=\"coluna.tituloReduzido ?? coluna.titulo\" [attr.ordem]=\"coluna.ordem\"\n\t\t(click)=\"coluna.sortable !== false && onColumnSort(coluna.prop)\">\n\t</div>\n\t<div class=\"table-header-controls\" (dblclick)=\"onResizeDoubleClick($event, coluna)\"\n\t\t(mousedown)=\"onResizeStart($event, coluna)\">\n\t\t@if (coluna.sortable !== false) {\n\t\t<span class=\"table-ico-sort\">\n\t\t\t@if (getOrdenacaoDirecao(coluna.prop) === 'asc') {\n\t\t\t<i class=\"fa fa-sort-up asc\"></i>\n\t\t\t} @else if (getOrdenacaoDirecao(coluna.prop) === 'desc') {\n\t\t\t<i class=\"fa fa-sort-down desc\"></i>\n\t\t\t}\n\t\t</span>\n\t\t}\n\t</div>\n</div>\n}\n}\n\n@if(config().showActionsLine) {\n<div class=\"table-header table-action-line header-last-col\" [class.table-border-right-darker]=\"hasGrid()\"\n\t[innerHTML]=\"!isCompacted() ? config().actionsLineConfig.headerDisplayMore : ''\"></div>\n}", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: UiCheckBox, selector: "ui-check-box", inputs: ["value", "disabled", "focused", "focus", "single", "hasDash"], outputs: ["valueChange", "focusedChange", "changed"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6692
|
+
}
|
|
6693
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridHeaderRow, decorators: [{
|
|
6694
|
+
type: Component,
|
|
6695
|
+
args: [{ selector: 'lib-grid-header-row', changeDetection: ChangeDetectionStrategy.OnPush, host: { style: 'display: contents' }, imports: [UiCheckBox, DragDropModule], template: "@if(hasVerticalLine()) {\n<div class=\"table-header table-vertical-line\"></div>\n}\n\n@if(hasSeletor()) {\n<div class=\"table-header table-header-seletor\">\n\t@if(config().selectionMode == 'multiple') {\n\t<ui-check-box [single]=\"false\" [value]=\"todosSelecionados()\" (changed)=\"onSelectAll($event)\"\n\t\t[style.--ui-color]=\"'var(--sys-on-primary)'\" [style.--ui-outline]=\"'var(--sys-on-primary)'\"\n\t\t[disabled]=\"isSelectingAll()\" [style.--ui-size]=\"isCompacted() ? '15px' : undefined\"\n\t\t[hasDash]=\"true\"></ui-check-box>\n\t}\n</div>\n}\n\n@for (coluna of colunas(); track $index) {\n@if (coluna.visivel !== false) {\n<div class=\"table-header\" [class.table-border-left-darker]=\"hasGrid() && $index === 0\"\n\t[class.header-last-col]=\"$last && !config().showActionsLine\" [class.table-border-right-darker]=\"hasGrid()\"\n\t[class.sortable]=\"coluna.sortable !== false\" [class.sorted-asc]=\"getOrdenacaoDirecao(coluna.prop) === 'asc'\"\n\t[class.sorted-desc]=\"getOrdenacaoDirecao(coluna.prop) === 'desc'\" [class.textVertical]=\"coluna.textVertical\">\n\t<div cdkDrag [cdkDragData]=\"coluna\" cdkDragLockAxis=\"x\"\n\t\tclass=\"table-header-text table-drag-container drop-option {{ coluna.classeHeader }}\" [title]=\"coluna.titulo\"\n\t\t[innerHTML]=\"coluna.tituloReduzido ?? coluna.titulo\" [attr.ordem]=\"coluna.ordem\"\n\t\t(click)=\"coluna.sortable !== false && onColumnSort(coluna.prop)\">\n\t</div>\n\t<div class=\"table-header-controls\" (dblclick)=\"onResizeDoubleClick($event, coluna)\"\n\t\t(mousedown)=\"onResizeStart($event, coluna)\">\n\t\t@if (coluna.sortable !== false) {\n\t\t<span class=\"table-ico-sort\">\n\t\t\t@if (getOrdenacaoDirecao(coluna.prop) === 'asc') {\n\t\t\t<i class=\"fa fa-sort-up asc\"></i>\n\t\t\t} @else if (getOrdenacaoDirecao(coluna.prop) === 'desc') {\n\t\t\t<i class=\"fa fa-sort-down desc\"></i>\n\t\t\t}\n\t\t</span>\n\t\t}\n\t</div>\n</div>\n}\n}\n\n@if(config().showActionsLine) {\n<div class=\"table-header table-action-line header-last-col\" [class.table-border-right-darker]=\"hasGrid()\"\n\t[innerHTML]=\"!isCompacted() ? config().actionsLineConfig.headerDisplayMore : ''\"></div>\n}", styles: [":host{display:contents}\n"] }]
|
|
6696
|
+
}], propDecorators: { colunas: [{ type: i0.Input, args: [{ isSignal: true, alias: "colunas", required: true }] }], ordenacoes: [{ type: i0.Input, args: [{ isSignal: true, alias: "ordenacoes", required: true }] }], todosSelecionados: [{ type: i0.Input, args: [{ isSignal: true, alias: "todosSelecionados", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], hasSeletor: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasSeletor", required: false }] }], hasVerticalLine: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasVerticalLine", required: false }] }], hasGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasGrid", required: false }] }], isCompacted: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCompacted", required: false }] }], isSelectingAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSelectingAll", required: false }] }], columnSort: [{ type: i0.Output, args: ["columnSort"] }], selectAll: [{ type: i0.Output, args: ["selectAll"] }], columnResizeStart: [{ type: i0.Output, args: ["columnResizeStart"] }], columnResizeDoubleClick: [{ type: i0.Output, args: ["columnResizeDoubleClick"] }] } });
|
|
6697
|
+
|
|
6698
|
+
class GridPagination {
|
|
6699
|
+
paginacao = input.required(...(ngDevMode ? [{ debugName: "paginacao" }] : /* istanbul ignore next */ []));
|
|
6700
|
+
totalPaginas = input.required(...(ngDevMode ? [{ debugName: "totalPaginas" }] : /* istanbul ignore next */ []));
|
|
6701
|
+
pageChange = output();
|
|
6702
|
+
onPreviousPage() {
|
|
6703
|
+
const atual = this.paginacao().paginaAtual;
|
|
6704
|
+
if (atual > 1) {
|
|
6705
|
+
this.pageChange.emit(atual - 1);
|
|
6706
|
+
}
|
|
6707
|
+
}
|
|
6708
|
+
onNextPage() {
|
|
6709
|
+
const atual = this.paginacao().paginaAtual;
|
|
6710
|
+
if (atual < this.totalPaginas()) {
|
|
6711
|
+
this.pageChange.emit(atual + 1);
|
|
6712
|
+
}
|
|
6713
|
+
}
|
|
6714
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridPagination, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6715
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: GridPagination, isStandalone: true, selector: "lib-grid-pagination", inputs: { paginacao: { classPropertyName: "paginacao", publicName: "paginacao", isSignal: true, isRequired: true, transformFunction: null }, totalPaginas: { classPropertyName: "totalPaginas", publicName: "totalPaginas", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "@if(paginacao()) {\n<div class=\"table-pagination\">\n\t<div class=\"pagination-info\">\n\t\t<span>P\u00E1gina {{ paginacao().paginaAtual }} de {{ totalPaginas() }}</span>\n\t\t<span>| Total: {{ paginacao().totalItens }} itens</span>\n\t</div>\n\n\t<div class=\"pagination-controls\">\n\t\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onPreviousPage()\" [disabled]=\"paginacao().paginaAtual === 1\"\n\t\t\ticone=\"bi bi-chevron-left\">\n\t\t\tAnterior\n\t\t</ui-button>\n\n\t\t<span class=\"pagination-current\">{{ paginacao().paginaAtual }}</span>\n\n\t\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onNextPage()\"\n\t\t\t[disabled]=\"paginacao().paginaAtual >= totalPaginas()\" icone=\"bi bi-chevron-right\">\n\t\t\tPr\u00F3ximo\n\t\t</ui-button>\n\t</div>\n</div>\n}", styles: [".table-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-top:1px solid var(--mk-grid-border, #ccc)}.pagination-info{font-size:.875rem;color:var(--mk-grid-text, #666)}.pagination-controls{display:flex;align-items:center;gap:.5rem}.pagination-current{padding:.5rem 1rem;border:1px solid var(--mk-grid-border, #ccc);border-radius:4px;min-width:50px;text-align:center}.items-per-page{display:flex;align-items:center;gap:.5rem;font-size:.875rem}\n"], dependencies: [{ kind: "component", type: UiButton, selector: "ui-button", inputs: ["icone", "iconeAntes", "iconeDepois", "iconeCategory", "disabled", "eventPropagation", "radiusTabFormat", "tabindex", "tipo", "tema", "classes", "ativo"], outputs: ["iconeChange", "iconeAntesChange", "iconeDepoisChange", "iconeCategoryChange", "clicked", "temaChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6716
|
+
}
|
|
6717
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridPagination, decorators: [{
|
|
6718
|
+
type: Component,
|
|
6719
|
+
args: [{ selector: 'lib-grid-pagination', imports: [UiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(paginacao()) {\n<div class=\"table-pagination\">\n\t<div class=\"pagination-info\">\n\t\t<span>P\u00E1gina {{ paginacao().paginaAtual }} de {{ totalPaginas() }}</span>\n\t\t<span>| Total: {{ paginacao().totalItens }} itens</span>\n\t</div>\n\n\t<div class=\"pagination-controls\">\n\t\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onPreviousPage()\" [disabled]=\"paginacao().paginaAtual === 1\"\n\t\t\ticone=\"bi bi-chevron-left\">\n\t\t\tAnterior\n\t\t</ui-button>\n\n\t\t<span class=\"pagination-current\">{{ paginacao().paginaAtual }}</span>\n\n\t\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onNextPage()\"\n\t\t\t[disabled]=\"paginacao().paginaAtual >= totalPaginas()\" icone=\"bi bi-chevron-right\">\n\t\t\tPr\u00F3ximo\n\t\t</ui-button>\n\t</div>\n</div>\n}", styles: [".table-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-top:1px solid var(--mk-grid-border, #ccc)}.pagination-info{font-size:.875rem;color:var(--mk-grid-text, #666)}.pagination-controls{display:flex;align-items:center;gap:.5rem}.pagination-current{padding:.5rem 1rem;border:1px solid var(--mk-grid-border, #ccc);border-radius:4px;min-width:50px;text-align:center}.items-per-page{display:flex;align-items:center;gap:.5rem;font-size:.875rem}\n"] }]
|
|
6720
|
+
}], propDecorators: { paginacao: [{ type: i0.Input, args: [{ isSignal: true, alias: "paginacao", required: true }] }], totalPaginas: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPaginas", required: true }] }], pageChange: [{ type: i0.Output, args: ["pageChange"] }] } });
|
|
6721
|
+
|
|
6722
|
+
class GridFilterBar {
|
|
6723
|
+
config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
|
|
6724
|
+
colunasDefinidas = input.required(...(ngDevMode ? [{ debugName: "colunasDefinidas" }] : /* istanbul ignore next */ []));
|
|
6725
|
+
colAgrupadoAtual = input.required(...(ngDevMode ? [{ debugName: "colAgrupadoAtual" }] : /* istanbul ignore next */ []));
|
|
6726
|
+
isAgrupado = input.required(...(ngDevMode ? [{ debugName: "isAgrupado" }] : /* istanbul ignore next */ []));
|
|
6727
|
+
filterCollapsed = input(false, ...(ngDevMode ? [{ debugName: "filterCollapsed" }] : /* istanbul ignore next */ []));
|
|
6728
|
+
searchInput = output();
|
|
6729
|
+
actionTriggered = output();
|
|
6730
|
+
filterToggle = output();
|
|
6731
|
+
groupByColumn = output();
|
|
6732
|
+
clearGroups = output();
|
|
6733
|
+
collapseGroups = output();
|
|
6734
|
+
expandGroups = output();
|
|
6735
|
+
outsideMenuActionsTop = computed(() => {
|
|
6736
|
+
return this.config().actionsTop.filter(a => a.inmenu == false && a.showAction);
|
|
6737
|
+
}, ...(ngDevMode ? [{ debugName: "outsideMenuActionsTop" }] : /* istanbul ignore next */ []));
|
|
6738
|
+
menuActionsTop = computed(() => {
|
|
6739
|
+
return this.config().actionsTop.filter(a => a.inmenu != false && a.showAction);
|
|
6740
|
+
}, ...(ngDevMode ? [{ debugName: "menuActionsTop" }] : /* istanbul ignore next */ []));
|
|
6741
|
+
Math = Math;
|
|
6742
|
+
onInputSearch(text) {
|
|
6743
|
+
this.searchInput.emit(text);
|
|
6744
|
+
}
|
|
6745
|
+
onClickOpenCloseFilterZone() {
|
|
6746
|
+
this.filterToggle.emit();
|
|
6747
|
+
}
|
|
6748
|
+
onClickAction(action) {
|
|
6749
|
+
if (action) {
|
|
6750
|
+
this.actionTriggered.emit(action);
|
|
6751
|
+
}
|
|
6752
|
+
}
|
|
6753
|
+
onAgruparPor(coluna) {
|
|
6754
|
+
this.groupByColumn.emit(coluna);
|
|
6755
|
+
}
|
|
6756
|
+
onClearGroups() {
|
|
6757
|
+
this.clearGroups.emit();
|
|
6758
|
+
}
|
|
6759
|
+
onRecolherGroups() {
|
|
6760
|
+
this.collapseGroups.emit();
|
|
6761
|
+
}
|
|
6762
|
+
onExpandirGroups() {
|
|
6763
|
+
this.expandGroups.emit();
|
|
6764
|
+
}
|
|
6765
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridFilterBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6766
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: GridFilterBar, isStandalone: true, selector: "lib-grid-filter-bar", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, colunasDefinidas: { classPropertyName: "colunasDefinidas", publicName: "colunasDefinidas", isSignal: true, isRequired: true, transformFunction: null }, colAgrupadoAtual: { classPropertyName: "colAgrupadoAtual", publicName: "colAgrupadoAtual", isSignal: true, isRequired: true, transformFunction: null }, isAgrupado: { classPropertyName: "isAgrupado", publicName: "isAgrupado", isSignal: true, isRequired: true, transformFunction: null }, filterCollapsed: { classPropertyName: "filterCollapsed", publicName: "filterCollapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchInput: "searchInput", actionTriggered: "actionTriggered", filterToggle: "filterToggle", groupByColumn: "groupByColumn", clearGroups: "clearGroups", collapseGroups: "collapseGroups", expandGroups: "expandGroups" }, ngImport: i0, template: "@if(config().showControlBar) {\n<div class=\"table-topo-container table-styles\">\n\n\t@if(config().showActionsTop) {\n\t<div class=\"table-actions-outside\">\n\t\t@for (action of outsideMenuActionsTop(); track $index;) {\n\t\t<ui-button tipo=\"fill\" tema=\"primary\" [title]=\"action.display\" (click)=\"onClickAction(action)\"\n\t\t\t[icone]=\"action.icon\">\n\t\t\t{{ action?.display ?? '' }}\n\t\t</ui-button>\n\t\t}\n\t</div>\n\t}\n\n\t<div class=\"table-top-right-container table-conjunto-actions\">\n\t\t@if(config().showSearch) {\n\t\t<div class=\"table-conjunto-actions-item table-pesquisar\">\n\t\t\t<ui-procurar (inputed)=\"onInputSearch($event)\" [autoColapse]=\"true\"></ui-procurar>\n\t\t</div>\n\t\t}\n\n\t\t@if(config().showFilterBar) {\n\t\t<div class=\"table-conjunto-actions-item\">\n\t\t\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onClickOpenCloseFilterZone()\" icone=\"bi bi-funnel\"\n\t\t\t\t[style.--ui-border-radius]=\"'0px'\">\n\t\t\t\t<span class=\"table-collapse-ico\" [class.ativo]=\"!filterCollapsed()\"><i class=\"bi bi-caret-down\"></i></span>\n\t\t\t</ui-button>\n\t\t</div>\n\t\t}\n\n\t\t@if(config().showGridMenu != false) {\n\t\t<div class=\"table-conjunto-actions-item\">\n\t\t\t<ui-menu [autoCloseInCascade]=\"false\">\n\t\t\t\t<ui-button slot=\"botao\" tipo=\"nofill\" tema=\"primary\" class=\"filtro-menu\"\n\t\t\t\t\t[title]=\"config().actionsTopConfig.menuDisplay\" [style.--ui-border-radius]=\"'0px'\"\n\t\t\t\t\t[icone]=\"config().actionsTopConfig.showMenuIcon ? config().actionsTopConfig.menuIcon : undefined\">\n\t\t\t\t\t{{ config().actionsTopConfig.menuDisplay }}\n\t\t\t\t</ui-button>\n\t\t\t\t<div class=\"menu-title\">\n\t\t\t\t\tOp\u00E7\u00F5es da Listagem\n\t\t\t\t</div>\n\n\t\t\t\t@for (action of menuActionsTop(); track $index;) {\n\t\t\t\t@if(action.actions != null) {\n\t\t\t\t<ui-menu [autoCloseInCascade]=\"false\">\n\t\t\t\t\t<ui-button slot=\"botao\" tipo=\"menu-item-category\" tema=\"primary\" [title]=\"action.display\"\n\t\t\t\t\t\t[style.--ui-border-radius]=\"'0px'\" [icone]=\"action.icon\">\n\t\t\t\t\t\t{{ action?.display ?? '' }}\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t<div class=\"menu-title\">\n\t\t\t\t\t\t{{ action?.display ?? '' }}\n\t\t\t\t\t</div>\n\t\t\t\t\t@for(subAction of action.actions; track $index) {\n\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onClickAction(subAction)\"\n\t\t\t\t\t\t[icone]=\"subAction?.showIcon ? (subAction?.icon ?? 'bi bi-dot') : undefined\">\n\t\t\t\t\t\t{{ subAction?.display ?? '' }}\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t}\n\t\t\t\t</ui-menu>\n\t\t\t\t} @else {\n\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onClickAction(action)\"\n\t\t\t\t\t[icone]=\"action?.showIcon ? (action?.icon ?? 'bi bi-dot') : undefined\">\n\t\t\t\t\t{{ action?.display ?? '' }}\n\t\t\t\t</ui-button>\n\t\t\t\t}\n\t\t\t\t}@empty {\n\t\t\t\t<div class=\"p-2 text-center text-muted\">\n\t\t\t\t\tNenhuma a\u00E7\u00E3o dispon\u00EDvel.\n\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t<ui-menu [autoCloseInCascade]=\"false\">\n\t\t\t\t\t<ui-button slot=\"botao\" tipo=\"menu-item-category\" tema=\"primary\" icone=\"fa fa-object-group\">\n\t\t\t\t\t\tAgrupamento\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t<div class=\"menu-title\">\n\t\t\t\t\t\tAgrupamento\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<ui-menu [autoCloseInCascade]=\"false\">\n\t\t\t\t\t\t<ui-button slot=\"botao\" tipo=\"menu-item-category\" tema=\"primary\">\n\t\t\t\t\t\t\tAgrupar Por\n\t\t\t\t\t\t</ui-button>\n\t\t\t\t\t\t<div class=\"menu-sub-title\">\n\t\t\t\t\t\t\tAgrupar por\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t@for (coluna of colunasDefinidas(); track $index) {\n\t\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onAgruparPor(coluna)\"\n\t\t\t\t\t\t\t[icone]=\"isAgrupado() && colAgrupadoAtual()?.prop === coluna.prop ? 'bi bi-check2-square' : 'bi bi-square'\">\n\t\t\t\t\t\t\t{{ coluna.titulo }}\n\t\t\t\t\t\t</ui-button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</ui-menu>\n\n\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onClearGroups()\" icone=\"fa fa-object-ungroup\"\n\t\t\t\t\t\t[disabled]=\"!isAgrupado()\">\n\t\t\t\t\t\tDesagrupar\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onRecolherGroups()\" icone=\"bi bi-arrows-collapse\">\n\t\t\t\t\t\tRecolher Todos\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onExpandirGroups()\" icone=\"bi bi-arrows-expand\">\n\t\t\t\t\t\tExpandir Todos\n\t\t\t\t\t</ui-button>\n\t\t\t\t</ui-menu>\n\t\t\t</ui-menu>\n\t\t</div>\n\t\t}\n\t</div>\n\n</div>\n}", styles: [":host{--mk-grid-border-radius: var(--sys-border-radius, 10px);--mk-grid-gap: var(--sys-gap, 8px);--mk-grid-lum-10: var(--sys-lum-10, 95%);--mk-grid-card: var(--sys-card, hsl(216 22% 96%));--mk-grid-background: var(--sys-background, hsl(0 0% 100%));--mk-grid-bg-card: var(--mk-grid-card);--mk-grid-bg: var(--mk-grid-background);--mk-grid-outline: var(--sys-outline, hsl(220 15% 86%));--mk-grid-primary: var(--sys-primary, hsl(224 74% 53%));--mk-grid-on-primary: var(--sys-on-primary, hsl(0 0% 100%));--mk-grid-secondary: var(--sys-secondary, hsl(221 44% 49%));--mk-grid-error: var(--sys-error, hsl(0 66% 47%));--mk-grid-info: var(--sys-info, hsl(210 79% 46%));--mk-grid-high: var(--sys-high, hsl(221 100% 97%));--mk-grid-on-high: var(--sys-on-high, hsl(222 35% 16%));--mk-grid-on-card: var(--sys-on-card, hsl(221 27% 16%));--mk-grid-on-card-variant: var(--sys-on-card-variant, hsl(222 15% 43%));--mk-grid-on-background: var(--sys-on-background, hsl(222 20% 20%));--mk-grid-primary-15: var(--sys-primary-15, hsl(224 74% 53% / 15%))}:host .drag-container{cursor:grab}:host .drag-container:active{cursor:grabbing}:host-context(body:has(.cdk-drag-preview)) .drop-option{outline:1px dashed var(--mk-grid-outline)}:host-context(body:has(.cdk-drag-preview)) .drop-option:hover{outline:1px solid var(--mk-grid-outline);background-color:var(--mk-grid-high)}:host ui-menu>ui-button{border-bottom:1px solid var(--ui-outline-color, var(--mk-grid-outline))}:host .menu-title{font-size:1.2rem;font-weight:600;padding:0 calc(var(--mk-grid-gap) / 2) var(--mk-grid-gap) calc(var(--mk-grid-gap) / 2);border-bottom:1px solid var(--mk-grid-outline);display:flex;justify-content:space-between;align-items:center;gap:var(--mk-grid-gap)}:host .menu-sub-title{font-size:14px;font-weight:500;display:flex;justify-content:flex-start;align-items:center;gap:var(--mk-grid-gap);padding-left:calc(var(--mk-grid-gap) / 2);min-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .menu-sub-value{font-size:14px;font-weight:400;display:flex;justify-content:flex-end;align-items:center;gap:calc(var(--mk-grid-gap) / 2);padding-right:calc(var(--mk-grid-gap) / 2);min-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host{display:flex;flex-direction:column}.table-overflow{display:grid;overflow:auto;margin-top:10px;padding:0;position:relative}.table-overflow.compacted{justify-content:center}.table-overflow.mobile{border-radius:calc(var(--mk-grid-border-radius) / 2)}.table-overflow.mobile{overflow:hidden}.table-table-mobile,.table-table{display:grid;font-size:13px}.table-table-mobile{grid-template-columns:1fr 1fr}.table-header,.table-header-mobile{background:var(--mk-grid-primary);color:var(--mk-grid-on-primary);transition:background-color .2s ease;display:flex;flex-wrap:wrap;align-items:center;align-content:stretch;justify-content:center;-webkit-user-select:none;user-select:none;min-height:var(--table-min-height)}.table-header-mobile{padding:0 5px}.table-header-mobile-space{flex:1;height:100%;display:flex;align-items:center;justify-content:center}.table-header-mobile-text,.table-header-text{flex:1;font-weight:600;text-align:center;display:block;align-content:center}.table-header-mobile-text{text-align:start}.table-header-text{height:100%;border-radius:var(--mk-grid-border-radius);position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-drag-preview{font-size:14px!important;background:var(--mk-grid-high);color:var(--mk-grid-on-high);opacity:.6}.cdk-drop-list-receiving:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--mk-grid-info);filter:opacity(.5)}.cdk-drag-placeholder:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--mk-grid-primary)}.textVertical .table-header-text{writing-mode:vertical-lr;text-orientation:upright;letter-spacing:-5px;padding-bottom:5px;text-align:right;align-self:end;display:flex;justify-content:center;align-items:center;flex-wrap:wrap}.table-header-controls{width:6px;min-width:6px;max-width:6px;cursor:col-resize;height:100%;display:flex;align-items:center;justify-content:center}.table-ico-sort{font-size:10px;color:color-mix(in srgb,var(--mk-grid-secondary) 50%,var(--mk-grid-on-primary) 50%)}.table-ico-sort .asc{animation:aniSortUp 1s infinite cubic-bezier(.175,.885,.32,1.275)}.table-ico-sort .desc{animation:aniSortDown 1s infinite cubic-bezier(.175,.885,.32,1.275)}@keyframes aniSortUp{0%{transform:translateY(0) scale(1)}20%{transform:translateY(0) scale(1)}80%{transform:translateY(-3px) scale(1.1)}to{transform:translateY(0) scale(1)}}@keyframes aniSortDown{0%{transform:translateY(0) scale(1)}20%{transform:translateY(0) scale(1)}80%{transform:translateY(3px) scale(1.1)}to{transform:translateY(0) scale(1)}}.table-row,.table-row-mobile{display:flex;justify-content:space-between;align-items:center}.table-row{background:color-mix(in srgb,var(--mk-grid-primary) 10%,var(--mk-grid-background) 90%)}.table-row-mobile{margin-top:10px}.table-group{border-top-right-radius:calc(var(--mk-grid-border-radius) / 2);border-top-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-group:has(.table-group-collapse){border-bottom-right-radius:calc(var(--mk-grid-border-radius) / 2);border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-group.table-formated{padding-left:10px}.table-group-items-area{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;font-style:italic;color:color-mix(in srgb,var(--mk-grid-on-background) 60%,var(--mk-grid-background) 40%);overflow:hidden}.table-group-items-ico{transition:transform .3s ease;transform:rotate(180deg)}.table-group-name{flex:1;height:100%;display:flex;align-items:center}.table-group-collapse .table-group-items-ico{transition:transform .3s ease;transform:rotate(0);color:color-mix(in srgb,var(--mk-grid-primary) 60%,var(--mk-grid-background) 40%)}.table-formated{min-height:var(--table-min-height);padding:1px 2px;font-size:14px}.table-dados{min-height:var(--table-min-height);padding:1px 2px}.table-item{cursor:pointer}.table-item,.table-header{border-left:0px solid transparent;border-right:0px solid transparent}.table-header:first-child{border-top-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-item:last-child{border-bottom-right-radius:calc(var(--mk-grid-border-radius) / 2)}.header-last-col{border-top-right-radius:calc(var(--mk-grid-border-radius) / 2)}.table-table:not(.table-has-vertical-line) .table-item:nth-last-child(-n+1 of div.table-item-seletor){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-table:not(.table-has-vertical-line,.table-has-seletor) .table-dados:nth-last-child(-n+1 of.table-first-col){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-header:nth-last-child(-n+1 of div.table-vertical-line){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-header-mobile.table-vertical-line,.table-header.table-vertical-line,.table-item.table-vertical-line{background:var(--mk-grid-primary);color:var(--mk-grid-on-primary);display:flex;justify-content:center;align-items:center}.table-grupo-seletor,.table-item-seletor{display:flex;justify-content:center;align-items:center}.table-header-mobile.sortable .table-header-text,.table-header.sortable .table-header-text{cursor:pointer;-webkit-user-select:none;user-select:none}.table-header-mobile.sortable:hover,.table-header.sortable:hover,.table-header-mobile.sorted-asc,.table-header-mobile.sorted-desc,.table-header.sorted-asc,.table-header.sorted-desc{background:color-mix(in srgb,var(--mk-grid-secondary) 30%,var(--mk-grid-primary) 70%);color:var(--mk-grid-on-primary)}.table-row.table-errors,.table-row.table-loader{justify-content:center}.table-border-bottom-card{border-bottom:1px solid var(--mk-grid-card)}.table-border-left-darker{border-left:1px solid color-mix(in srgb,var(--mk-grid-card) 20%,transparent 80%)}.table-border-right-darker{border-right:1px solid color-mix(in srgb,var(--mk-grid-card) 20%,transparent 80%)}.table-border-left{border-left:1px solid var(--mk-grid-background)}.table-border-right{border-right:1px solid var(--mk-grid-background)}.table-item-mobile,.table-item{transition:background-color .2s cubic-bezier(.075,.82,.165,1);border-bottom:1px solid var(--mk-grid-background);position:relative}.table-item.hashue{background-color:hsl(var(--bghue) 100 var(--mk-grid-lum-10))}.table-item-mobile.odd:before,.table-item.odd:before,.table-item-mobile.even:before,.table-item.even:before,.table-item.table-bg-error:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;z-index:0;pointer-events:none;background:var(--mk-grid-background)}.table-item-mobile.odd:before,.table-item.odd:before{opacity:.2}.table-item-mobile.even:before,.table-item.even:before{opacity:.1}.table-item.table-bg-error:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;z-index:0;pointer-events:none;outline-offset:0px;outline:2px solid var(--mk-grid-error);background-color:var(--mk-grid-error);opacity:.04}.table-border-right-error{border-right:1px dashed color-mix(in srgb,var(--mk-grid-error) 50%,transparent 50%)}.table-styles{color:var(--mk-grid-on-card);background:color-mix(in srgb,var(--mk-grid-outline) 20%,var(--mk-grid-card) 80%);border-radius:calc(var(--mk-grid-border-radius) / 2)}.table-show-error{display:flex;justify-content:center;align-items:center;padding:16px;margin-top:10px}.table-topo-container{display:flex;flex-wrap:wrap;align-items:center;font-size:14px;padding:8px;gap:1rem}.table-actions-outside{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:8px}.table-top-right-container{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;flex:1}.table-collapse-ico{display:inline-block;transition:transform .3s}.table-collapse-ico.ativo{transition:transform .3s ease-in-out;transform:rotate(-180deg)}.table-filter-content{font-size:14px;padding:8px;overflow:hidden;transition:all .3s cubic-bezier(.075,.82,.165,1);position:relative;opacity:1}.table-filter-content.table-filter-hide{padding:0;opacity:0;margin-top:calc(var(--filter-height) * -1);transition:all .3s cubic-bezier(.075,.82,.165,1)}.table-filter-container:has(.table-filter-hide){pointer-events:none;-webkit-user-select:none;user-select:none}.table-conjunto-actions{position:relative;display:flex;align-items:stretch}.table-conjunto-actions>*{outline:1px solid var(--mk-grid-outline);outline-offset:-1px}.table-conjunto-actions>:first-child{border-radius:var(--mk-grid-border-radius);border-top-right-radius:0;border-bottom-right-radius:0}.table-conjunto-actions>:last-child{border-radius:0 7px 7px 0}.table-conjunto-actions-item{display:flex;align-items:center;justify-content:center;padding:0;min-height:40px}.table-inativo{color:var(--mk-grid-error)}.table-pagination-overflow{display:grid;align-items:center;overflow:auto;margin-top:10px}.table-pagination-overflow.compacted{margin-top:2px;justify-content:center}.table-pagination-container{display:flex;align-items:center;justify-content:space-between;padding:16px;flex-wrap:wrap;gap:16px;flex:1}.table-pagination-overflow.compacted .table-pagination-container{padding:2px 4px;gap:4px}.table-pagination-overflow.compacted.table-has-pages .table-pagination-controls{border-left:1px solid var(--mk-grid-card);border-right:1px solid var(--mk-grid-card)}.table-pagination-info{display:flex;flex-direction:column;color:var(--mk-grid-on-card-variant);font-size:12px}.table-pagination-controls{display:flex;align-items:center;gap:4px}.table-pagination-show{border-radius:var(--mk-grid-border-radius);min-width:47px;min-height:38px;display:flex;justify-content:center;align-items:center;font-size:12px}.table-pagination-per-page{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mk-grid-on-card-variant);flex-wrap:nowrap;white-space:nowrap}.table-pagination-per-page-select{--ui-width: 50px;font-size:12px;text-align:center}.table-performance{font-size:10px;font-style:italic}.compacted .table-pagination-range{display:none}.compacted .table-pagination-totais{font-size:10px}.compacted .table-performance{display:none}.table-empty{display:flex;justify-content:center;align-items:center;padding:16px}.table-info-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;border-left:4px solid var(--mk-grid-primary);padding:12px 16px;margin-top:10px}@media(max-width:768px){.table-pagination-container{flex-direction:column;align-items:stretch;padding:2px}.table-pagination-overflow.compacted .table-pagination-container{padding:0}.table-pagination-controls{justify-content:center}.table-pagination-info{flex-direction:row;justify-content:space-around;gap:10px}.table-pagination-per-page{justify-content:center}}@media(max-width:480px){.table-topo-container{flex-direction:column;align-items:stretch}.table-pagination-container{flex-wrap:wrap;justify-content:space-evenly}.table-small-screen-hide{display:none}}\n", ":host{display:block}\n"], dependencies: [{ kind: "component", type: UiButton, selector: "ui-button", inputs: ["icone", "iconeAntes", "iconeDepois", "iconeCategory", "disabled", "eventPropagation", "radiusTabFormat", "tabindex", "tipo", "tema", "classes", "ativo"], outputs: ["iconeChange", "iconeAntesChange", "iconeDepoisChange", "iconeCategoryChange", "clicked", "temaChange"] }, { kind: "component", type: UiMenu, selector: "ui-menu", inputs: ["disabled", "icone", "autoCloseInCascade", "posicao", "isOpened"], outputs: ["autoCloseInCascadeChange", "posicaoChange", "isOpenedChange"] }, { kind: "component", type: UiProcurar, selector: "ui-procurar", inputs: ["value", "colapsed", "autoColapse", "name", "placeholder", "disabled"], outputs: ["inputed", "changed", "valueChange", "colapsedChange", "autoColapseChange"] }] });
|
|
6767
|
+
}
|
|
6768
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridFilterBar, decorators: [{
|
|
6769
|
+
type: Component,
|
|
6770
|
+
args: [{ selector: 'lib-grid-filter-bar', imports: [UiButton, UiMenu, UiProcurar], template: "@if(config().showControlBar) {\n<div class=\"table-topo-container table-styles\">\n\n\t@if(config().showActionsTop) {\n\t<div class=\"table-actions-outside\">\n\t\t@for (action of outsideMenuActionsTop(); track $index;) {\n\t\t<ui-button tipo=\"fill\" tema=\"primary\" [title]=\"action.display\" (click)=\"onClickAction(action)\"\n\t\t\t[icone]=\"action.icon\">\n\t\t\t{{ action?.display ?? '' }}\n\t\t</ui-button>\n\t\t}\n\t</div>\n\t}\n\n\t<div class=\"table-top-right-container table-conjunto-actions\">\n\t\t@if(config().showSearch) {\n\t\t<div class=\"table-conjunto-actions-item table-pesquisar\">\n\t\t\t<ui-procurar (inputed)=\"onInputSearch($event)\" [autoColapse]=\"true\"></ui-procurar>\n\t\t</div>\n\t\t}\n\n\t\t@if(config().showFilterBar) {\n\t\t<div class=\"table-conjunto-actions-item\">\n\t\t\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onClickOpenCloseFilterZone()\" icone=\"bi bi-funnel\"\n\t\t\t\t[style.--ui-border-radius]=\"'0px'\">\n\t\t\t\t<span class=\"table-collapse-ico\" [class.ativo]=\"!filterCollapsed()\"><i class=\"bi bi-caret-down\"></i></span>\n\t\t\t</ui-button>\n\t\t</div>\n\t\t}\n\n\t\t@if(config().showGridMenu != false) {\n\t\t<div class=\"table-conjunto-actions-item\">\n\t\t\t<ui-menu [autoCloseInCascade]=\"false\">\n\t\t\t\t<ui-button slot=\"botao\" tipo=\"nofill\" tema=\"primary\" class=\"filtro-menu\"\n\t\t\t\t\t[title]=\"config().actionsTopConfig.menuDisplay\" [style.--ui-border-radius]=\"'0px'\"\n\t\t\t\t\t[icone]=\"config().actionsTopConfig.showMenuIcon ? config().actionsTopConfig.menuIcon : undefined\">\n\t\t\t\t\t{{ config().actionsTopConfig.menuDisplay }}\n\t\t\t\t</ui-button>\n\t\t\t\t<div class=\"menu-title\">\n\t\t\t\t\tOp\u00E7\u00F5es da Listagem\n\t\t\t\t</div>\n\n\t\t\t\t@for (action of menuActionsTop(); track $index;) {\n\t\t\t\t@if(action.actions != null) {\n\t\t\t\t<ui-menu [autoCloseInCascade]=\"false\">\n\t\t\t\t\t<ui-button slot=\"botao\" tipo=\"menu-item-category\" tema=\"primary\" [title]=\"action.display\"\n\t\t\t\t\t\t[style.--ui-border-radius]=\"'0px'\" [icone]=\"action.icon\">\n\t\t\t\t\t\t{{ action?.display ?? '' }}\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t<div class=\"menu-title\">\n\t\t\t\t\t\t{{ action?.display ?? '' }}\n\t\t\t\t\t</div>\n\t\t\t\t\t@for(subAction of action.actions; track $index) {\n\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onClickAction(subAction)\"\n\t\t\t\t\t\t[icone]=\"subAction?.showIcon ? (subAction?.icon ?? 'bi bi-dot') : undefined\">\n\t\t\t\t\t\t{{ subAction?.display ?? '' }}\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t}\n\t\t\t\t</ui-menu>\n\t\t\t\t} @else {\n\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onClickAction(action)\"\n\t\t\t\t\t[icone]=\"action?.showIcon ? (action?.icon ?? 'bi bi-dot') : undefined\">\n\t\t\t\t\t{{ action?.display ?? '' }}\n\t\t\t\t</ui-button>\n\t\t\t\t}\n\t\t\t\t}@empty {\n\t\t\t\t<div class=\"p-2 text-center text-muted\">\n\t\t\t\t\tNenhuma a\u00E7\u00E3o dispon\u00EDvel.\n\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t<ui-menu [autoCloseInCascade]=\"false\">\n\t\t\t\t\t<ui-button slot=\"botao\" tipo=\"menu-item-category\" tema=\"primary\" icone=\"fa fa-object-group\">\n\t\t\t\t\t\tAgrupamento\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t<div class=\"menu-title\">\n\t\t\t\t\t\tAgrupamento\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<ui-menu [autoCloseInCascade]=\"false\">\n\t\t\t\t\t\t<ui-button slot=\"botao\" tipo=\"menu-item-category\" tema=\"primary\">\n\t\t\t\t\t\t\tAgrupar Por\n\t\t\t\t\t\t</ui-button>\n\t\t\t\t\t\t<div class=\"menu-sub-title\">\n\t\t\t\t\t\t\tAgrupar por\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t@for (coluna of colunasDefinidas(); track $index) {\n\t\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onAgruparPor(coluna)\"\n\t\t\t\t\t\t\t[icone]=\"isAgrupado() && colAgrupadoAtual()?.prop === coluna.prop ? 'bi bi-check2-square' : 'bi bi-square'\">\n\t\t\t\t\t\t\t{{ coluna.titulo }}\n\t\t\t\t\t\t</ui-button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</ui-menu>\n\n\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onClearGroups()\" icone=\"fa fa-object-ungroup\"\n\t\t\t\t\t\t[disabled]=\"!isAgrupado()\">\n\t\t\t\t\t\tDesagrupar\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onRecolherGroups()\" icone=\"bi bi-arrows-collapse\">\n\t\t\t\t\t\tRecolher Todos\n\t\t\t\t\t</ui-button>\n\t\t\t\t\t<ui-button tipo=\"menu-item\" tema=\"primary\" (click)=\"onExpandirGroups()\" icone=\"bi bi-arrows-expand\">\n\t\t\t\t\t\tExpandir Todos\n\t\t\t\t\t</ui-button>\n\t\t\t\t</ui-menu>\n\t\t\t</ui-menu>\n\t\t</div>\n\t\t}\n\t</div>\n\n</div>\n}", styles: [":host{--mk-grid-border-radius: var(--sys-border-radius, 10px);--mk-grid-gap: var(--sys-gap, 8px);--mk-grid-lum-10: var(--sys-lum-10, 95%);--mk-grid-card: var(--sys-card, hsl(216 22% 96%));--mk-grid-background: var(--sys-background, hsl(0 0% 100%));--mk-grid-bg-card: var(--mk-grid-card);--mk-grid-bg: var(--mk-grid-background);--mk-grid-outline: var(--sys-outline, hsl(220 15% 86%));--mk-grid-primary: var(--sys-primary, hsl(224 74% 53%));--mk-grid-on-primary: var(--sys-on-primary, hsl(0 0% 100%));--mk-grid-secondary: var(--sys-secondary, hsl(221 44% 49%));--mk-grid-error: var(--sys-error, hsl(0 66% 47%));--mk-grid-info: var(--sys-info, hsl(210 79% 46%));--mk-grid-high: var(--sys-high, hsl(221 100% 97%));--mk-grid-on-high: var(--sys-on-high, hsl(222 35% 16%));--mk-grid-on-card: var(--sys-on-card, hsl(221 27% 16%));--mk-grid-on-card-variant: var(--sys-on-card-variant, hsl(222 15% 43%));--mk-grid-on-background: var(--sys-on-background, hsl(222 20% 20%));--mk-grid-primary-15: var(--sys-primary-15, hsl(224 74% 53% / 15%))}:host .drag-container{cursor:grab}:host .drag-container:active{cursor:grabbing}:host-context(body:has(.cdk-drag-preview)) .drop-option{outline:1px dashed var(--mk-grid-outline)}:host-context(body:has(.cdk-drag-preview)) .drop-option:hover{outline:1px solid var(--mk-grid-outline);background-color:var(--mk-grid-high)}:host ui-menu>ui-button{border-bottom:1px solid var(--ui-outline-color, var(--mk-grid-outline))}:host .menu-title{font-size:1.2rem;font-weight:600;padding:0 calc(var(--mk-grid-gap) / 2) var(--mk-grid-gap) calc(var(--mk-grid-gap) / 2);border-bottom:1px solid var(--mk-grid-outline);display:flex;justify-content:space-between;align-items:center;gap:var(--mk-grid-gap)}:host .menu-sub-title{font-size:14px;font-weight:500;display:flex;justify-content:flex-start;align-items:center;gap:var(--mk-grid-gap);padding-left:calc(var(--mk-grid-gap) / 2);min-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .menu-sub-value{font-size:14px;font-weight:400;display:flex;justify-content:flex-end;align-items:center;gap:calc(var(--mk-grid-gap) / 2);padding-right:calc(var(--mk-grid-gap) / 2);min-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host{display:flex;flex-direction:column}.table-overflow{display:grid;overflow:auto;margin-top:10px;padding:0;position:relative}.table-overflow.compacted{justify-content:center}.table-overflow.mobile{border-radius:calc(var(--mk-grid-border-radius) / 2)}.table-overflow.mobile{overflow:hidden}.table-table-mobile,.table-table{display:grid;font-size:13px}.table-table-mobile{grid-template-columns:1fr 1fr}.table-header,.table-header-mobile{background:var(--mk-grid-primary);color:var(--mk-grid-on-primary);transition:background-color .2s ease;display:flex;flex-wrap:wrap;align-items:center;align-content:stretch;justify-content:center;-webkit-user-select:none;user-select:none;min-height:var(--table-min-height)}.table-header-mobile{padding:0 5px}.table-header-mobile-space{flex:1;height:100%;display:flex;align-items:center;justify-content:center}.table-header-mobile-text,.table-header-text{flex:1;font-weight:600;text-align:center;display:block;align-content:center}.table-header-mobile-text{text-align:start}.table-header-text{height:100%;border-radius:var(--mk-grid-border-radius);position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-drag-preview{font-size:14px!important;background:var(--mk-grid-high);color:var(--mk-grid-on-high);opacity:.6}.cdk-drop-list-receiving:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--mk-grid-info);filter:opacity(.5)}.cdk-drag-placeholder:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--mk-grid-primary)}.textVertical .table-header-text{writing-mode:vertical-lr;text-orientation:upright;letter-spacing:-5px;padding-bottom:5px;text-align:right;align-self:end;display:flex;justify-content:center;align-items:center;flex-wrap:wrap}.table-header-controls{width:6px;min-width:6px;max-width:6px;cursor:col-resize;height:100%;display:flex;align-items:center;justify-content:center}.table-ico-sort{font-size:10px;color:color-mix(in srgb,var(--mk-grid-secondary) 50%,var(--mk-grid-on-primary) 50%)}.table-ico-sort .asc{animation:aniSortUp 1s infinite cubic-bezier(.175,.885,.32,1.275)}.table-ico-sort .desc{animation:aniSortDown 1s infinite cubic-bezier(.175,.885,.32,1.275)}@keyframes aniSortUp{0%{transform:translateY(0) scale(1)}20%{transform:translateY(0) scale(1)}80%{transform:translateY(-3px) scale(1.1)}to{transform:translateY(0) scale(1)}}@keyframes aniSortDown{0%{transform:translateY(0) scale(1)}20%{transform:translateY(0) scale(1)}80%{transform:translateY(3px) scale(1.1)}to{transform:translateY(0) scale(1)}}.table-row,.table-row-mobile{display:flex;justify-content:space-between;align-items:center}.table-row{background:color-mix(in srgb,var(--mk-grid-primary) 10%,var(--mk-grid-background) 90%)}.table-row-mobile{margin-top:10px}.table-group{border-top-right-radius:calc(var(--mk-grid-border-radius) / 2);border-top-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-group:has(.table-group-collapse){border-bottom-right-radius:calc(var(--mk-grid-border-radius) / 2);border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-group.table-formated{padding-left:10px}.table-group-items-area{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;font-style:italic;color:color-mix(in srgb,var(--mk-grid-on-background) 60%,var(--mk-grid-background) 40%);overflow:hidden}.table-group-items-ico{transition:transform .3s ease;transform:rotate(180deg)}.table-group-name{flex:1;height:100%;display:flex;align-items:center}.table-group-collapse .table-group-items-ico{transition:transform .3s ease;transform:rotate(0);color:color-mix(in srgb,var(--mk-grid-primary) 60%,var(--mk-grid-background) 40%)}.table-formated{min-height:var(--table-min-height);padding:1px 2px;font-size:14px}.table-dados{min-height:var(--table-min-height);padding:1px 2px}.table-item{cursor:pointer}.table-item,.table-header{border-left:0px solid transparent;border-right:0px solid transparent}.table-header:first-child{border-top-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-item:last-child{border-bottom-right-radius:calc(var(--mk-grid-border-radius) / 2)}.header-last-col{border-top-right-radius:calc(var(--mk-grid-border-radius) / 2)}.table-table:not(.table-has-vertical-line) .table-item:nth-last-child(-n+1 of div.table-item-seletor){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-table:not(.table-has-vertical-line,.table-has-seletor) .table-dados:nth-last-child(-n+1 of.table-first-col){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-header:nth-last-child(-n+1 of div.table-vertical-line){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-header-mobile.table-vertical-line,.table-header.table-vertical-line,.table-item.table-vertical-line{background:var(--mk-grid-primary);color:var(--mk-grid-on-primary);display:flex;justify-content:center;align-items:center}.table-grupo-seletor,.table-item-seletor{display:flex;justify-content:center;align-items:center}.table-header-mobile.sortable .table-header-text,.table-header.sortable .table-header-text{cursor:pointer;-webkit-user-select:none;user-select:none}.table-header-mobile.sortable:hover,.table-header.sortable:hover,.table-header-mobile.sorted-asc,.table-header-mobile.sorted-desc,.table-header.sorted-asc,.table-header.sorted-desc{background:color-mix(in srgb,var(--mk-grid-secondary) 30%,var(--mk-grid-primary) 70%);color:var(--mk-grid-on-primary)}.table-row.table-errors,.table-row.table-loader{justify-content:center}.table-border-bottom-card{border-bottom:1px solid var(--mk-grid-card)}.table-border-left-darker{border-left:1px solid color-mix(in srgb,var(--mk-grid-card) 20%,transparent 80%)}.table-border-right-darker{border-right:1px solid color-mix(in srgb,var(--mk-grid-card) 20%,transparent 80%)}.table-border-left{border-left:1px solid var(--mk-grid-background)}.table-border-right{border-right:1px solid var(--mk-grid-background)}.table-item-mobile,.table-item{transition:background-color .2s cubic-bezier(.075,.82,.165,1);border-bottom:1px solid var(--mk-grid-background);position:relative}.table-item.hashue{background-color:hsl(var(--bghue) 100 var(--mk-grid-lum-10))}.table-item-mobile.odd:before,.table-item.odd:before,.table-item-mobile.even:before,.table-item.even:before,.table-item.table-bg-error:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;z-index:0;pointer-events:none;background:var(--mk-grid-background)}.table-item-mobile.odd:before,.table-item.odd:before{opacity:.2}.table-item-mobile.even:before,.table-item.even:before{opacity:.1}.table-item.table-bg-error:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;z-index:0;pointer-events:none;outline-offset:0px;outline:2px solid var(--mk-grid-error);background-color:var(--mk-grid-error);opacity:.04}.table-border-right-error{border-right:1px dashed color-mix(in srgb,var(--mk-grid-error) 50%,transparent 50%)}.table-styles{color:var(--mk-grid-on-card);background:color-mix(in srgb,var(--mk-grid-outline) 20%,var(--mk-grid-card) 80%);border-radius:calc(var(--mk-grid-border-radius) / 2)}.table-show-error{display:flex;justify-content:center;align-items:center;padding:16px;margin-top:10px}.table-topo-container{display:flex;flex-wrap:wrap;align-items:center;font-size:14px;padding:8px;gap:1rem}.table-actions-outside{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:8px}.table-top-right-container{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;flex:1}.table-collapse-ico{display:inline-block;transition:transform .3s}.table-collapse-ico.ativo{transition:transform .3s ease-in-out;transform:rotate(-180deg)}.table-filter-content{font-size:14px;padding:8px;overflow:hidden;transition:all .3s cubic-bezier(.075,.82,.165,1);position:relative;opacity:1}.table-filter-content.table-filter-hide{padding:0;opacity:0;margin-top:calc(var(--filter-height) * -1);transition:all .3s cubic-bezier(.075,.82,.165,1)}.table-filter-container:has(.table-filter-hide){pointer-events:none;-webkit-user-select:none;user-select:none}.table-conjunto-actions{position:relative;display:flex;align-items:stretch}.table-conjunto-actions>*{outline:1px solid var(--mk-grid-outline);outline-offset:-1px}.table-conjunto-actions>:first-child{border-radius:var(--mk-grid-border-radius);border-top-right-radius:0;border-bottom-right-radius:0}.table-conjunto-actions>:last-child{border-radius:0 7px 7px 0}.table-conjunto-actions-item{display:flex;align-items:center;justify-content:center;padding:0;min-height:40px}.table-inativo{color:var(--mk-grid-error)}.table-pagination-overflow{display:grid;align-items:center;overflow:auto;margin-top:10px}.table-pagination-overflow.compacted{margin-top:2px;justify-content:center}.table-pagination-container{display:flex;align-items:center;justify-content:space-between;padding:16px;flex-wrap:wrap;gap:16px;flex:1}.table-pagination-overflow.compacted .table-pagination-container{padding:2px 4px;gap:4px}.table-pagination-overflow.compacted.table-has-pages .table-pagination-controls{border-left:1px solid var(--mk-grid-card);border-right:1px solid var(--mk-grid-card)}.table-pagination-info{display:flex;flex-direction:column;color:var(--mk-grid-on-card-variant);font-size:12px}.table-pagination-controls{display:flex;align-items:center;gap:4px}.table-pagination-show{border-radius:var(--mk-grid-border-radius);min-width:47px;min-height:38px;display:flex;justify-content:center;align-items:center;font-size:12px}.table-pagination-per-page{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mk-grid-on-card-variant);flex-wrap:nowrap;white-space:nowrap}.table-pagination-per-page-select{--ui-width: 50px;font-size:12px;text-align:center}.table-performance{font-size:10px;font-style:italic}.compacted .table-pagination-range{display:none}.compacted .table-pagination-totais{font-size:10px}.compacted .table-performance{display:none}.table-empty{display:flex;justify-content:center;align-items:center;padding:16px}.table-info-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;border-left:4px solid var(--mk-grid-primary);padding:12px 16px;margin-top:10px}@media(max-width:768px){.table-pagination-container{flex-direction:column;align-items:stretch;padding:2px}.table-pagination-overflow.compacted .table-pagination-container{padding:0}.table-pagination-controls{justify-content:center}.table-pagination-info{flex-direction:row;justify-content:space-around;gap:10px}.table-pagination-per-page{justify-content:center}}@media(max-width:480px){.table-topo-container{flex-direction:column;align-items:stretch}.table-pagination-container{flex-wrap:wrap;justify-content:space-evenly}.table-small-screen-hide{display:none}}\n", ":host{display:block}\n"] }]
|
|
6771
|
+
}], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], colunasDefinidas: [{ type: i0.Input, args: [{ isSignal: true, alias: "colunasDefinidas", required: true }] }], colAgrupadoAtual: [{ type: i0.Input, args: [{ isSignal: true, alias: "colAgrupadoAtual", required: true }] }], isAgrupado: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAgrupado", required: true }] }], filterCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterCollapsed", required: false }] }], searchInput: [{ type: i0.Output, args: ["searchInput"] }], actionTriggered: [{ type: i0.Output, args: ["actionTriggered"] }], filterToggle: [{ type: i0.Output, args: ["filterToggle"] }], groupByColumn: [{ type: i0.Output, args: ["groupByColumn"] }], clearGroups: [{ type: i0.Output, args: ["clearGroups"] }], collapseGroups: [{ type: i0.Output, args: ["collapseGroups"] }], expandGroups: [{ type: i0.Output, args: ["expandGroups"] }] } });
|
|
6772
|
+
|
|
6773
|
+
class GridEmptyList {
|
|
6774
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridEmptyList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6775
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: GridEmptyList, isStandalone: true, selector: "lib-grid-empty-list", ngImport: i0, template: "<div class=\"microPos5 p-2\">\n\t<div class=\"flex gap-2 f-s-16 text-center nenhumRegistro\">\n\t\t<i class=\"bi bi-database-fill-check\"></i>\n\t\tNenhum registro no filtro aplicado.\n\t</div>\n</div>", styles: [".nenhumRegistro{border-radius:10px;outline:1px solid var(--mk-grid-primary-15);box-shadow:1px 1px 5px var(--mk-grid-secondary),inset -1px -1px 5px var(--mk-grid-primary-15);padding:.4rem .75rem}\n"] });
|
|
6776
|
+
}
|
|
6777
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridEmptyList, decorators: [{
|
|
6778
|
+
type: Component,
|
|
6779
|
+
args: [{ selector: 'lib-grid-empty-list', imports: [], template: "<div class=\"microPos5 p-2\">\n\t<div class=\"flex gap-2 f-s-16 text-center nenhumRegistro\">\n\t\t<i class=\"bi bi-database-fill-check\"></i>\n\t\tNenhum registro no filtro aplicado.\n\t</div>\n</div>", styles: [".nenhumRegistro{border-radius:10px;outline:1px solid var(--mk-grid-primary-15);box-shadow:1px 1px 5px var(--mk-grid-secondary),inset -1px -1px 5px var(--mk-grid-primary-15);padding:.4rem .75rem}\n"] }]
|
|
6780
|
+
}] });
|
|
6781
|
+
|
|
6782
|
+
const PROP_CONTROLE_ATIVO = 'is_ativo';
|
|
6783
|
+
class MkGrid {
|
|
6784
|
+
lista = input.required(...(ngDevMode ? [{ debugName: "lista" }] : /* istanbul ignore next */ []));
|
|
6785
|
+
config = input.required(...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
|
|
6786
|
+
filtro = input(...(ngDevMode ? [undefined, { debugName: "filtro" }] : /* istanbul ignore next */ []));
|
|
6787
|
+
colunasDefinidas = signal([], ...(ngDevMode ? [{ debugName: "colunasDefinidas" }] : /* istanbul ignore next */ []));
|
|
6788
|
+
colunasFiltradas = signal([], ...(ngDevMode ? [{ debugName: "colunasFiltradas" }] : /* istanbul ignore next */ []));
|
|
6789
|
+
colunasOrdenadas = signal([], ...(ngDevMode ? [{ debugName: "colunasOrdenadas" }] : /* istanbul ignore next */ []));
|
|
6790
|
+
colunasExibir = signal([], ...(ngDevMode ? [{ debugName: "colunasExibir" }] : /* istanbul ignore next */ []));
|
|
6791
|
+
gridTemplateColumns = signal('auto', ...(ngDevMode ? [{ debugName: "gridTemplateColumns" }] : /* istanbul ignore next */ []));
|
|
6792
|
+
inputSearchText = signal('', ...(ngDevMode ? [{ debugName: "inputSearchText" }] : /* istanbul ignore next */ []));
|
|
6793
|
+
selectedRows = signal([], ...(ngDevMode ? [{ debugName: "selectedRows" }] : /* istanbul ignore next */ []));
|
|
6794
|
+
selecionandoLinhas = signal([], ...(ngDevMode ? [{ debugName: "selecionandoLinhas" }] : /* istanbul ignore next */ []));
|
|
6795
|
+
gruposColapsed = signal([], ...(ngDevMode ? [{ debugName: "gruposColapsed" }] : /* istanbul ignore next */ []));
|
|
6796
|
+
isAgrupado = signal(false, ...(ngDevMode ? [{ debugName: "isAgrupado" }] : /* istanbul ignore next */ []));
|
|
6797
|
+
isAgrupadoLimpo = signal(false, ...(ngDevMode ? [{ debugName: "isAgrupadoLimpo" }] : /* istanbul ignore next */ []));
|
|
6798
|
+
gruposEncontrados = {
|
|
6799
|
+
itens: new Set()
|
|
6800
|
+
};
|
|
6801
|
+
numOrdemPrimeiroExibido = signal(1, ...(ngDevMode ? [{ debugName: "numOrdemPrimeiroExibido" }] : /* istanbul ignore next */ []));
|
|
6802
|
+
numOrdemUltimoExibido = signal(1, ...(ngDevMode ? [{ debugName: "numOrdemUltimoExibido" }] : /* istanbul ignore next */ []));
|
|
6803
|
+
pxVerticalLine = signal('', ...(ngDevMode ? [{ debugName: "pxVerticalLine" }] : /* istanbul ignore next */ []));
|
|
6804
|
+
pxSelector = signal('', ...(ngDevMode ? [{ debugName: "pxSelector" }] : /* istanbul ignore next */ []));
|
|
6805
|
+
pxColunas = signal('', ...(ngDevMode ? [{ debugName: "pxColunas" }] : /* istanbul ignore next */ []));
|
|
6806
|
+
pxActions = signal('', ...(ngDevMode ? [{ debugName: "pxActions" }] : /* istanbul ignore next */ []));
|
|
6807
|
+
totalColsVisivel = signal(0, ...(ngDevMode ? [{ debugName: "totalColsVisivel" }] : /* istanbul ignore next */ []));
|
|
6808
|
+
colAgrupadoAtual = signal(null, ...(ngDevMode ? [{ debugName: "colAgrupadoAtual" }] : /* istanbul ignore next */ []));
|
|
6809
|
+
colMovingX = 0;
|
|
6810
|
+
minLineHeight = model('20px', ...(ngDevMode ? [{ debugName: "minLineHeight" }] : /* istanbul ignore next */ []));
|
|
6811
|
+
isCompacted = model(false, ...(ngDevMode ? [{ debugName: "isCompacted" }] : /* istanbul ignore next */ []));
|
|
6812
|
+
hasGrid = model(false, ...(ngDevMode ? [{ debugName: "hasGrid" }] : /* istanbul ignore next */ []));
|
|
6813
|
+
hasVerticalLine = model(false, ...(ngDevMode ? [{ debugName: "hasVerticalLine" }] : /* istanbul ignore next */ []));
|
|
6814
|
+
hasSeletor = model(false, ...(ngDevMode ? [{ debugName: "hasSeletor" }] : /* istanbul ignore next */ []));
|
|
6815
|
+
todosSelecionados = signal(false, ...(ngDevMode ? [{ debugName: "todosSelecionados" }] : /* istanbul ignore next */ []));
|
|
6816
|
+
isSelectingAll = signal(false, ...(ngDevMode ? [{ debugName: "isSelectingAll" }] : /* istanbul ignore next */ []));
|
|
6817
|
+
devMode = false;
|
|
6818
|
+
maxActionsInLine = 0;
|
|
6819
|
+
eHost = inject(ElementRef);
|
|
6820
|
+
gridSize = viewChild('gridSize', { ...(ngDevMode ? { debugName: "gridSize" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
6821
|
+
gridfiltro = viewChild('gridfiltro', { ...(ngDevMode ? { debugName: "gridfiltro" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
6822
|
+
Math = Math;
|
|
6823
|
+
filtroCollapsed = signal(false, ...(ngDevMode ? [{ debugName: "filtroCollapsed" }] : /* istanbul ignore next */ []));
|
|
6824
|
+
gridId = LibUtil.uuid();
|
|
6825
|
+
ordenacoesSignal = signal([], ...(ngDevMode ? [{ debugName: "ordenacoesSignal" }] : /* istanbul ignore next */ []));
|
|
6826
|
+
paginacaoSignal = signal({
|
|
6827
|
+
paginaAtual: 1,
|
|
6828
|
+
totalItens: 0,
|
|
6829
|
+
totalagrupado: 0,
|
|
6830
|
+
}, ...(ngDevMode ? [{ debugName: "paginacaoSignal" }] : /* istanbul ignore next */ []));
|
|
6831
|
+
itensPorPagina = computed(() => this.config().itensPorPagina?.() ?? 10, ...(ngDevMode ? [{ debugName: "itensPorPagina" }] : /* istanbul ignore next */ []));
|
|
6832
|
+
constructor() {
|
|
6833
|
+
effect(() => {
|
|
6834
|
+
this.iniciarSelectedRows(this.lista());
|
|
6835
|
+
});
|
|
6836
|
+
effect(() => {
|
|
6837
|
+
const totalItens = this.listaOrdenada().length;
|
|
6838
|
+
const totalagrupado = this.listaAgrupada().length;
|
|
6839
|
+
this.paginacaoSignal.update(pag => ({ ...pag, totalItens, totalagrupado }));
|
|
6840
|
+
});
|
|
6841
|
+
effect(() => {
|
|
6842
|
+
const agrupada = this.listaAgrupada();
|
|
6843
|
+
const isAgrupado = this.isAgrupado();
|
|
6844
|
+
if (this.gruposEncontrados.itens.size > 1) {
|
|
6845
|
+
this.isAgrupado.set(true);
|
|
6846
|
+
}
|
|
6847
|
+
else {
|
|
6848
|
+
this.isAgrupado.set(false);
|
|
6849
|
+
}
|
|
6850
|
+
});
|
|
6851
|
+
effect(() => {
|
|
6852
|
+
const _ = this.filtro();
|
|
6853
|
+
this.irParaPagina(1);
|
|
6854
|
+
});
|
|
6855
|
+
effect(() => {
|
|
6856
|
+
const el = this.filterContainer()?.nativeElement;
|
|
6857
|
+
if (!el)
|
|
6858
|
+
return;
|
|
6859
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
6860
|
+
for (let entry of entries) {
|
|
6861
|
+
if (entry.target === el) {
|
|
6862
|
+
this.filterHeight.set(entry.contentRect.height);
|
|
6863
|
+
}
|
|
6864
|
+
}
|
|
6865
|
+
});
|
|
6866
|
+
resizeObserver.observe(el);
|
|
6867
|
+
return () => resizeObserver.disconnect();
|
|
6868
|
+
});
|
|
6869
|
+
effect(() => {
|
|
6870
|
+
let listaExibindo = this.listaExibir();
|
|
6871
|
+
let numeroPrimeiro = listaExibindo?.reduce((min, item) => Math.min(min, item.ordem ?? Infinity), Infinity);
|
|
6872
|
+
let numeroUltimo = listaExibindo?.reduce((max, item) => Math.max(max, item.ordem ?? -Infinity), -Infinity);
|
|
6873
|
+
if (numeroPrimeiro == Infinity)
|
|
6874
|
+
numeroPrimeiro = 0;
|
|
6875
|
+
if (numeroUltimo == -Infinity)
|
|
6876
|
+
numeroUltimo = 0;
|
|
6877
|
+
this.numOrdemPrimeiroExibido.set(numeroPrimeiro);
|
|
6878
|
+
this.numOrdemUltimoExibido.set(numeroUltimo);
|
|
6879
|
+
});
|
|
6880
|
+
effect(() => {
|
|
6881
|
+
const isSelected = this.config().isSelected();
|
|
6882
|
+
if (isSelected === false) {
|
|
6883
|
+
this.unselectAll();
|
|
6884
|
+
}
|
|
6885
|
+
});
|
|
6886
|
+
}
|
|
6887
|
+
ngOnInit() {
|
|
6888
|
+
this.filtroCollapsed.set(this.config().filterBarStartCollapsed ?? false);
|
|
6889
|
+
this.hasVerticalLine.set(this.config().hasVerticalLine ?? false);
|
|
6890
|
+
this.hasSeletor.set(this.config().hasSeletor ?? false);
|
|
6891
|
+
this.hasGrid.set(this.config().hasGrid ?? false);
|
|
6892
|
+
this.isCompacted.set(this.config().isCompacted ?? false);
|
|
6893
|
+
this.minLineHeight.set(this.config().minLineHeight ?? '20px');
|
|
6894
|
+
this.definirColunas();
|
|
6895
|
+
this.atualizarColunas();
|
|
6896
|
+
}
|
|
6897
|
+
ngOnDestroy() { }
|
|
6898
|
+
ngAfterViewInit() {
|
|
6899
|
+
setTimeout(() => {
|
|
6900
|
+
this.calcularAltura();
|
|
6901
|
+
this.calcularColunasExibir();
|
|
6902
|
+
this.observerResize();
|
|
6903
|
+
}, 0);
|
|
6904
|
+
}
|
|
6905
|
+
iniciarSelectedRows(lista) {
|
|
6906
|
+
let fnGetSelect = this.config().startSelected;
|
|
6907
|
+
if (!fnGetSelect || !lista) {
|
|
6908
|
+
this.unselectAll();
|
|
6909
|
+
return;
|
|
6910
|
+
}
|
|
6911
|
+
let selecionados = lista.filter(item => fnGetSelect ? fnGetSelect(item) : false)
|
|
6912
|
+
.map(item => LibUtil.getV(this.config().primarykey, item)?.toString() ?? '')
|
|
6913
|
+
.filter(id => id != '');
|
|
6914
|
+
if (selecionados.length === 0) {
|
|
6915
|
+
this.todosSelecionados.set(false);
|
|
6916
|
+
}
|
|
6917
|
+
else if (lista.length > 0 && selecionados.length === lista.length) {
|
|
6918
|
+
this.todosSelecionados.set(true);
|
|
6919
|
+
}
|
|
6920
|
+
else {
|
|
6921
|
+
this.todosSelecionados.set(false);
|
|
6922
|
+
}
|
|
6923
|
+
this.selectedRows.set(selecionados);
|
|
6924
|
+
}
|
|
6925
|
+
definirColunas() {
|
|
6926
|
+
let colunasInicialConfig = this.config().colunas.map((col, index) => {
|
|
6927
|
+
return {
|
|
6928
|
+
...col,
|
|
6929
|
+
widthNum: col.width ? parseInt(col.width.replaceAll('px', '').replaceAll('auto', '50')) : 50,
|
|
6930
|
+
tituloReduzido: col.titulo,
|
|
6931
|
+
ordem: index,
|
|
6932
|
+
};
|
|
6933
|
+
});
|
|
6934
|
+
let primeiraPropAgrupadaInicial = colunasInicialConfig.find(c => c.iniciaAgrupado)?.prop;
|
|
6935
|
+
let colunasAgrupada = colunasInicialConfig.find(c => c.prop === primeiraPropAgrupadaInicial);
|
|
6936
|
+
if (colunasAgrupada) {
|
|
6937
|
+
this.colAgrupadoAtual.set(colunasAgrupada);
|
|
6938
|
+
}
|
|
6939
|
+
else {
|
|
6940
|
+
this.colAgrupadoAtual.set(null);
|
|
6941
|
+
}
|
|
6942
|
+
this.colunasDefinidas.set(colunasInicialConfig);
|
|
6943
|
+
}
|
|
6944
|
+
filtrarColunas() {
|
|
6945
|
+
let agrupada = this.colAgrupadoAtual();
|
|
6946
|
+
let colunasFiltradas = this.colunasDefinidas().filter(c => {
|
|
6947
|
+
return (c.visivel !== false) && (agrupada?.prop !== c.prop);
|
|
6948
|
+
});
|
|
6949
|
+
this.colunasFiltradas.set(colunasFiltradas);
|
|
6950
|
+
}
|
|
6951
|
+
ordenarColunas() {
|
|
6952
|
+
this.colunasOrdenadas.set(this.colunasFiltradas().sort((a, b) => a.ordem - b.ordem));
|
|
6953
|
+
}
|
|
6954
|
+
colunasKVDefinidas = computed(() => {
|
|
6955
|
+
return this.colunasDefinidas().map(c => ({ k: LibUtil.classof(c.prop) == 'string' ? c.prop : c.prop[0], v: c.titulo }));
|
|
6956
|
+
}, ...(ngDevMode ? [{ debugName: "colunasKVDefinidas" }] : /* istanbul ignore next */ []));
|
|
6957
|
+
outsideMenuActionsTop = computed(() => {
|
|
6958
|
+
return this.config().actionsTop.filter(a => a.inmenu == false && a.showAction);
|
|
6959
|
+
}, ...(ngDevMode ? [{ debugName: "outsideMenuActionsTop" }] : /* istanbul ignore next */ []));
|
|
6960
|
+
menuActionsTop = computed(() => {
|
|
6961
|
+
return this.config().actionsTop.filter(a => a.inmenu != false && a.showAction);
|
|
6962
|
+
}, ...(ngDevMode ? [{ debugName: "menuActionsTop" }] : /* istanbul ignore next */ []));
|
|
6963
|
+
filterContainer = viewChild('filterContainer', { ...(ngDevMode ? { debugName: "filterContainer" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
6964
|
+
filterHeight = signal(2000, ...(ngDevMode ? [{ debugName: "filterHeight" }] : /* istanbul ignore next */ []));
|
|
6965
|
+
listaOrdenada = computed(() => {
|
|
6966
|
+
const listaDefinida = this.lista() ?? [];
|
|
6967
|
+
if (LibUtil.classof(listaDefinida) !== 'array') {
|
|
6968
|
+
this.config().hasError = true;
|
|
6969
|
+
return [];
|
|
6970
|
+
}
|
|
6971
|
+
let words = this.inputSearchText().trim().split(" ").filter(t => t != "");
|
|
6972
|
+
let agrupadaAtual = this.colAgrupadoAtual();
|
|
6973
|
+
let propriedadeAgrupada = agrupadaAtual?.prop;
|
|
6974
|
+
let listaFiltrada = listaDefinida.map((o, i) => {
|
|
6975
|
+
let id = LibUtil.getV(this.config().primarykey, o)?.toString() ?? String(i);
|
|
6976
|
+
let dadosDaLinha = {
|
|
6977
|
+
id,
|
|
6978
|
+
dados: o,
|
|
6979
|
+
inativo: this.config().InativeRule(o),
|
|
6980
|
+
groupName: propriedadeAgrupada ? LibUtil.getV(propriedadeAgrupada, o) : '',
|
|
6981
|
+
selecionado: this.selectedRows().includes(id),
|
|
6982
|
+
isSelecionando: this.selecionandoLinhas().includes(id),
|
|
6983
|
+
hue: this.config().backgroundHue ? this.config().backgroundHue?.(o) : undefined,
|
|
6984
|
+
actions: this.config().actionsLine.map(a => {
|
|
6985
|
+
if (a.showAction == true)
|
|
6986
|
+
return { ...a, showAction: a.showLineAction ? a.showLineAction(o) : true };
|
|
6987
|
+
else
|
|
6988
|
+
return { ...a, showAction: false };
|
|
6989
|
+
}),
|
|
6990
|
+
ordem: i + 1,
|
|
6991
|
+
};
|
|
6992
|
+
dadosDaLinha.hasActionMenu = dadosDaLinha.actions?.some(a => a.showAction == true && a.inmenu == true) ?? false;
|
|
6993
|
+
this.maxActionsInLine = Math.max(this.maxActionsInLine, dadosDaLinha.actions?.filter(a => a.showAction == true && a.inmenu == false).length ?? 0);
|
|
6994
|
+
return dadosDaLinha;
|
|
6995
|
+
}).filter(dadosLinha => {
|
|
6996
|
+
if (words.length === 0)
|
|
6997
|
+
return true;
|
|
6998
|
+
for (const w of words) {
|
|
6999
|
+
let encontrado = false;
|
|
7000
|
+
for (const coluna of this.config().colunas) {
|
|
7001
|
+
const valorColuna = LibUtil.getV(coluna.prop, dadosLinha.dados);
|
|
7002
|
+
if (valorColuna != null && LibUtil.contem(valorColuna, w)) {
|
|
7003
|
+
encontrado = true;
|
|
7004
|
+
}
|
|
7005
|
+
}
|
|
7006
|
+
if (!encontrado)
|
|
7007
|
+
return false;
|
|
7008
|
+
}
|
|
7009
|
+
return true;
|
|
7010
|
+
});
|
|
7011
|
+
const ordenacoes = this.ordenacoesSignal();
|
|
7012
|
+
if (!ordenacoes.length)
|
|
7013
|
+
return listaFiltrada;
|
|
7014
|
+
let ordenado = [...listaFiltrada].sort((a, b) => {
|
|
7015
|
+
for (const ordenacao of ordenacoes) {
|
|
7016
|
+
if (Array.isArray(ordenacao.coluna)) {
|
|
7017
|
+
for (const prop of ordenacao.coluna) {
|
|
7018
|
+
const resultado = this.compararValores(LibUtil.getV(prop, a.dados), LibUtil.getV(prop, b.dados), ordenacao.direcao);
|
|
7019
|
+
if (resultado !== 0)
|
|
7020
|
+
return resultado;
|
|
7021
|
+
}
|
|
7022
|
+
}
|
|
7023
|
+
else {
|
|
7024
|
+
const resultado = this.compararValores(LibUtil.getV(ordenacao.coluna, a.dados), LibUtil.getV(ordenacao.coluna, b.dados), ordenacao.direcao);
|
|
7025
|
+
if (resultado !== 0)
|
|
7026
|
+
return resultado;
|
|
7027
|
+
}
|
|
7028
|
+
}
|
|
7029
|
+
return 0;
|
|
7030
|
+
});
|
|
7031
|
+
return ordenado.map((item, index) => ({ ...item, ordem: index + 1 }));
|
|
7032
|
+
}, ...(ngDevMode ? [{ debugName: "listaOrdenada" }] : /* istanbul ignore next */ []));
|
|
7033
|
+
listaAgrupada = computed(() => {
|
|
7034
|
+
const listaOrdenada = this.listaOrdenada();
|
|
7035
|
+
if (this.isAgrupado() == false) {
|
|
7036
|
+
if (this.isAgrupadoLimpo() == false) {
|
|
7037
|
+
listaOrdenada.forEach(item => {
|
|
7038
|
+
this.gruposEncontrados.itens.add(item.groupName);
|
|
7039
|
+
});
|
|
7040
|
+
}
|
|
7041
|
+
return listaOrdenada;
|
|
7042
|
+
}
|
|
7043
|
+
let listaComGrupos = [];
|
|
7044
|
+
let c = 1;
|
|
7045
|
+
let colAgrupadaAtual = this.colAgrupadoAtual()?.prop ?? '';
|
|
7046
|
+
for (const grupo of Array.from(this.gruposEncontrados.itens)) {
|
|
7047
|
+
let firstFound = listaOrdenada.filter(i => i.groupName === grupo)[0];
|
|
7048
|
+
let inativo = listaOrdenada.filter(i => i.groupName === grupo).some(i => this.getObjetoInativo(colAgrupadaAtual, i.dados));
|
|
7049
|
+
listaComGrupos.push({
|
|
7050
|
+
dados: firstFound?.dados,
|
|
7051
|
+
inativo: inativo,
|
|
7052
|
+
groupName: grupo,
|
|
7053
|
+
selecionado: false,
|
|
7054
|
+
isGroup: true,
|
|
7055
|
+
isFullLine: {
|
|
7056
|
+
visible: true,
|
|
7057
|
+
colapsed: this.gruposColapsed().includes(grupo),
|
|
7058
|
+
colapsedCount: listaOrdenada.filter(i => i.groupName === grupo).length,
|
|
7059
|
+
showIco: true,
|
|
7060
|
+
},
|
|
7061
|
+
isColapsed: false,
|
|
7062
|
+
});
|
|
7063
|
+
listaOrdenada.map(item => {
|
|
7064
|
+
if (item.groupName === grupo) {
|
|
7065
|
+
listaComGrupos.push({
|
|
7066
|
+
...item,
|
|
7067
|
+
ordem: c++,
|
|
7068
|
+
isColapsed: this.gruposColapsed().includes(grupo)
|
|
7069
|
+
});
|
|
7070
|
+
}
|
|
7071
|
+
});
|
|
7072
|
+
}
|
|
7073
|
+
;
|
|
7074
|
+
return listaComGrupos.filter(i => !i.isColapsed);
|
|
7075
|
+
}, ...(ngDevMode ? [{ debugName: "listaAgrupada" }] : /* istanbul ignore next */ []));
|
|
7076
|
+
listaExibir = computed(() => {
|
|
7077
|
+
const listaOrdenada = this.listaAgrupada();
|
|
7078
|
+
const paginacao = this.paginacaoSignal();
|
|
7079
|
+
const inicio = (paginacao.paginaAtual - 1) * this.itensPorPagina();
|
|
7080
|
+
const fim = inicio + this.itensPorPagina();
|
|
7081
|
+
const listaExibindo = listaOrdenada.slice(inicio, fim);
|
|
7082
|
+
return listaExibindo;
|
|
7083
|
+
}, ...(ngDevMode ? [{ debugName: "listaExibir" }] : /* istanbul ignore next */ []));
|
|
7084
|
+
numeroPrimeiroItemExibido = computed(() => {
|
|
7085
|
+
return (this.paginacaoSignal().paginaAtual - 1) * this.itensPorPagina() + 1;
|
|
7086
|
+
}, ...(ngDevMode ? [{ debugName: "numeroPrimeiroItemExibido" }] : /* istanbul ignore next */ []));
|
|
7087
|
+
numeroUltimoItemExibido = computed(() => {
|
|
7088
|
+
const paginacao = this.paginacaoSignal();
|
|
7089
|
+
return Math.min(paginacao.paginaAtual * this.itensPorPagina(), paginacao.totalItens);
|
|
7090
|
+
}, ...(ngDevMode ? [{ debugName: "numeroUltimoItemExibido" }] : /* istanbul ignore next */ []));
|
|
7091
|
+
onDropColuna(ev) {
|
|
7092
|
+
let colunaOrigem = ev.item.data;
|
|
7093
|
+
let colTarget = ev.event.target.closest('.table-header-text');
|
|
7094
|
+
let cellTarget = ev.event.target.closest('.table-item');
|
|
7095
|
+
let novaOrdem = null;
|
|
7096
|
+
if (colTarget) {
|
|
7097
|
+
novaOrdem = colTarget.getAttribute('ordem');
|
|
7098
|
+
}
|
|
7099
|
+
if (cellTarget) {
|
|
7100
|
+
novaOrdem = cellTarget.getAttribute('ordem');
|
|
7101
|
+
}
|
|
7102
|
+
if (novaOrdem && colunaOrigem) {
|
|
7103
|
+
this.colunasOrdenadas.update(cols => {
|
|
7104
|
+
const semColuna = cols.filter(c => c.ordem !== colunaOrigem.ordem);
|
|
7105
|
+
semColuna.splice(novaOrdem, 0, colunaOrigem);
|
|
7106
|
+
return semColuna.map((col, index) => ({ ...col, ordem: index }));
|
|
7107
|
+
});
|
|
7108
|
+
this.calcularColunasExibir();
|
|
7109
|
+
}
|
|
7110
|
+
}
|
|
7111
|
+
getObjetoInativo(nomeColuna, linha) {
|
|
7112
|
+
if (LibUtil.classof(nomeColuna) == "string" && nomeColuna.includes(".")) {
|
|
7113
|
+
const props = nomeColuna.split(".");
|
|
7114
|
+
const lastObj = LibUtil.getV(props.slice(0, -1).join("."), linha);
|
|
7115
|
+
return lastObj?.[PROP_CONTROLE_ATIVO] == false;
|
|
7116
|
+
}
|
|
7117
|
+
return false;
|
|
7118
|
+
}
|
|
7119
|
+
observerResize() {
|
|
7120
|
+
const el = this.eHost?.nativeElement;
|
|
7121
|
+
if (!el)
|
|
7122
|
+
return;
|
|
7123
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
7124
|
+
this.calcularColunasExibir();
|
|
7125
|
+
});
|
|
7126
|
+
resizeObserver.observe(el);
|
|
7127
|
+
return () => resizeObserver.disconnect();
|
|
7128
|
+
}
|
|
7129
|
+
calcularColunasExibir() {
|
|
7130
|
+
let colunasAExibir = this.colunasOrdenadas().map(c => ({ ...c }));
|
|
7131
|
+
let compacted = this.isCompacted();
|
|
7132
|
+
let wVerticalLine = this.hasVerticalLine() ? (compacted ? 30 : 40) : 0;
|
|
7133
|
+
let wSelector = this.hasSeletor() ? (compacted ? 30 : 40) : 0;
|
|
7134
|
+
let wActions = this.config().showActionsLine ? (compacted ? 42 : 130) : 0;
|
|
7135
|
+
let wDisponivel = this.gridSize()?.nativeElement?.offsetWidth - (wVerticalLine + wSelector + wActions);
|
|
7136
|
+
let totalFixo = (wVerticalLine > 0 ? 1 : 0) + (wSelector > 0 ? 1 : 0) + (wActions > 0 ? 1 : 0);
|
|
7137
|
+
let wFixo = wVerticalLine + wSelector + wActions;
|
|
7138
|
+
while (colunasAExibir.length > 0) {
|
|
7139
|
+
let wColunas = colunasAExibir.reduce((a, b) => a + b.widthNum, 0);
|
|
7140
|
+
let somado = wFixo + wColunas;
|
|
7141
|
+
if (somado <= wDisponivel)
|
|
7142
|
+
break;
|
|
7143
|
+
colunasAExibir.pop();
|
|
7144
|
+
}
|
|
7145
|
+
this.colunasExibir.set(colunasAExibir);
|
|
7146
|
+
this.totalColsVisivel.set(colunasAExibir.length + totalFixo);
|
|
7147
|
+
let wColsCentrais = '';
|
|
7148
|
+
for (let col of colunasAExibir) {
|
|
7149
|
+
col.width = col.width ?? 'auto';
|
|
7150
|
+
wColsCentrais += `${col.width} `;
|
|
7151
|
+
}
|
|
7152
|
+
this.pxVerticalLine.set(wVerticalLine > 0 ? (`${wVerticalLine}px `) : '');
|
|
7153
|
+
this.pxSelector.set(wSelector > 0 ? (`${wSelector}px `) : '');
|
|
7154
|
+
this.pxActions.set(wActions > 0 ? (`${wActions}px `) : '');
|
|
7155
|
+
this.pxColunas.set(wColsCentrais);
|
|
7156
|
+
}
|
|
7157
|
+
calcularAltura() {
|
|
7158
|
+
const elementoConteiner = this.filterContainer();
|
|
7159
|
+
if (!elementoConteiner)
|
|
7160
|
+
return;
|
|
7161
|
+
const firstChild = elementoConteiner.nativeElement.firstElementChild;
|
|
7162
|
+
if (!firstChild)
|
|
7163
|
+
return;
|
|
7164
|
+
const height = firstChild.scrollHeight;
|
|
7165
|
+
this.filterHeight.set(height);
|
|
7166
|
+
}
|
|
7167
|
+
getState() {
|
|
7168
|
+
return {
|
|
7169
|
+
colunaAgrupadaAtual: this.colAgrupadoAtual(),
|
|
7170
|
+
colunas: this.colunasDefinidas() ?? [],
|
|
7171
|
+
colunasExibir: this.colunasExibir() ?? [],
|
|
7172
|
+
config: this.config(),
|
|
7173
|
+
filtros: this.filtro() ?? {},
|
|
7174
|
+
gruposColapsed: this.gruposColapsed(),
|
|
7175
|
+
gruposEncontrados: this.gruposEncontrados,
|
|
7176
|
+
isAgrupado: this.isAgrupado(),
|
|
7177
|
+
isAgrupadoLimpo: this.isAgrupadoLimpo(),
|
|
7178
|
+
listaExibindo: this.listaExibir(),
|
|
7179
|
+
listaOrdenada: this.listaOrdenada(),
|
|
7180
|
+
ordenacoes: this.ordenacoesSignal(),
|
|
7181
|
+
paginacao: {
|
|
7182
|
+
paginas: this.totalPaginas(),
|
|
7183
|
+
paginaAtual: this.paginacaoSignal().paginaAtual,
|
|
7184
|
+
itensPorPagina: this.itensPorPagina(),
|
|
7185
|
+
},
|
|
7186
|
+
selecionados: this.selectedRows(),
|
|
7187
|
+
selecionandoLinhas: this.selecionandoLinhas(),
|
|
7188
|
+
tempoRequisicao: this.config().timeRequest,
|
|
7189
|
+
totais: {
|
|
7190
|
+
totalDefinida: this.lista()?.length ?? 0,
|
|
7191
|
+
totalOrdenada: this.listaOrdenada().length,
|
|
7192
|
+
totalExibindo: this.listaExibir().length,
|
|
7193
|
+
},
|
|
7194
|
+
ultimaAcao: this.config().lastGridEventAPI,
|
|
7195
|
+
};
|
|
7196
|
+
}
|
|
7197
|
+
totalPaginas = computed(() => {
|
|
7198
|
+
const paginacao = this.paginacaoSignal();
|
|
7199
|
+
return Math.ceil(paginacao.totalagrupado / this.itensPorPagina());
|
|
7200
|
+
}, ...(ngDevMode ? [{ debugName: "totalPaginas" }] : /* istanbul ignore next */ []));
|
|
7201
|
+
alternarOrdenacao(coluna) {
|
|
7202
|
+
const ordenacoes = this.ordenacoesSignal();
|
|
7203
|
+
const index = ordenacoes.findIndex(o => o.coluna === coluna);
|
|
7204
|
+
if (index >= 0) {
|
|
7205
|
+
const novaDirecao = ordenacoes[index].direcao === 'asc' ? 'desc' : 'asc';
|
|
7206
|
+
if (novaDirecao == "asc") {
|
|
7207
|
+
const novasOrdenacoes = [...ordenacoes.filter(o => o.coluna != coluna)];
|
|
7208
|
+
this.ordenacoesSignal.set(novasOrdenacoes);
|
|
7209
|
+
}
|
|
7210
|
+
else {
|
|
7211
|
+
const novasOrdenacoes = [...ordenacoes];
|
|
7212
|
+
novasOrdenacoes[index] = { coluna, direcao: novaDirecao };
|
|
7213
|
+
this.ordenacoesSignal.set(novasOrdenacoes);
|
|
7214
|
+
}
|
|
7215
|
+
}
|
|
7216
|
+
else {
|
|
7217
|
+
this.ordenacoesSignal.set([...ordenacoes, { coluna, direcao: 'asc' }]);
|
|
7218
|
+
}
|
|
7219
|
+
}
|
|
7220
|
+
obterDirecaoOrdenacao(coluna) {
|
|
7221
|
+
const ordenacao = this.ordenacoesSignal().find(o => o.coluna === coluna);
|
|
7222
|
+
return ordenacao ? ordenacao.direcao : null;
|
|
7223
|
+
}
|
|
7224
|
+
irParaPagina(pagina) {
|
|
7225
|
+
if (pagina >= 1 && pagina <= this.totalPaginas()) {
|
|
7226
|
+
this.paginacaoSignal.update(pag => ({ ...pag, paginaAtual: pagina }));
|
|
7227
|
+
}
|
|
7228
|
+
}
|
|
7229
|
+
proximaPagina() {
|
|
7230
|
+
const atual = this.paginacaoSignal().paginaAtual;
|
|
7231
|
+
this.irParaPagina(atual + 1);
|
|
7232
|
+
}
|
|
7233
|
+
paginaAnterior() {
|
|
7234
|
+
const atual = this.paginacaoSignal().paginaAtual;
|
|
7235
|
+
this.irParaPagina(atual - 1);
|
|
7236
|
+
}
|
|
7237
|
+
limparOrdenacao() {
|
|
7238
|
+
this.ordenacoesSignal.set([]);
|
|
7239
|
+
}
|
|
7240
|
+
async onOrdenarPor(coluna) {
|
|
7241
|
+
if (!coluna)
|
|
7242
|
+
return;
|
|
7243
|
+
if (coluna.ordem == null)
|
|
7244
|
+
return;
|
|
7245
|
+
this.alternarOrdenacao(coluna.prop);
|
|
7246
|
+
}
|
|
7247
|
+
getColDisplay(nomeCampo) {
|
|
7248
|
+
return this.colunasDefinidas()?.find(o => o.prop == nomeCampo)?.titulo ?? '???';
|
|
7249
|
+
}
|
|
7250
|
+
getOrdenacaoTexto() {
|
|
7251
|
+
const ordenacoes = this.ordenacoesSignal();
|
|
7252
|
+
if (!ordenacoes.length)
|
|
7253
|
+
return '';
|
|
7254
|
+
return ordenacoes.map(o => `${this.getColDisplay(o.coluna)} (${o.direcao})`).join(', ');
|
|
7255
|
+
}
|
|
7256
|
+
onClickClearInfo() {
|
|
7257
|
+
this.limparOrdenacao();
|
|
7258
|
+
}
|
|
7259
|
+
atualizarColunas() {
|
|
7260
|
+
this.filtrarColunas();
|
|
7261
|
+
this.ordenarColunas();
|
|
7262
|
+
this.calcularColunasExibir();
|
|
7263
|
+
}
|
|
7264
|
+
onClickCellAction(evento) {
|
|
7265
|
+
if (evento.action?.action) {
|
|
7266
|
+
evento.action.action(this._getGridEvent(evento.action, evento.dadosDaLinha?.dados));
|
|
7267
|
+
}
|
|
7268
|
+
}
|
|
7269
|
+
onClickAction(action, linha) {
|
|
7270
|
+
if (action?.action) {
|
|
7271
|
+
return action.action(this._getGridEvent(action, linha));
|
|
7272
|
+
}
|
|
7273
|
+
return;
|
|
7274
|
+
}
|
|
7275
|
+
_getGridEvent(action, linha) {
|
|
7276
|
+
let pk = this.config().primarykey;
|
|
7277
|
+
let id = undefined;
|
|
7278
|
+
if (pk != null && linha != null) {
|
|
7279
|
+
id = linha[pk];
|
|
7280
|
+
}
|
|
7281
|
+
let evento = { id, linha, action };
|
|
7282
|
+
this.config().lastGridEventAPI = evento;
|
|
7283
|
+
return evento;
|
|
7284
|
+
}
|
|
7285
|
+
compararValores(a, b, direcao) {
|
|
7286
|
+
let resultado = 0;
|
|
7287
|
+
if (a === null || a === undefined)
|
|
7288
|
+
a = '';
|
|
7289
|
+
if (b === null || b === undefined)
|
|
7290
|
+
b = '';
|
|
7291
|
+
if (typeof a === 'number' && typeof b === 'number') {
|
|
7292
|
+
resultado = a - b;
|
|
7293
|
+
}
|
|
7294
|
+
else if (a instanceof Date && b instanceof Date) {
|
|
7295
|
+
resultado = a.getTime() - b.getTime();
|
|
7296
|
+
}
|
|
7297
|
+
else {
|
|
7298
|
+
resultado = String(a).localeCompare(String(b));
|
|
7299
|
+
}
|
|
7300
|
+
return direcao === 'asc' ? resultado : -resultado;
|
|
7301
|
+
}
|
|
7302
|
+
onClickGridMenu(action) {
|
|
7303
|
+
if (action?.action) {
|
|
7304
|
+
return action.action(this._getGridEvent(action));
|
|
7305
|
+
}
|
|
7306
|
+
}
|
|
7307
|
+
onInputSearch(text) {
|
|
7308
|
+
this.inputSearchText.set(text);
|
|
7309
|
+
}
|
|
7310
|
+
onClickOpenCloseFilterZone() {
|
|
7311
|
+
this.filtroCollapsed.update(v => !v);
|
|
7312
|
+
}
|
|
7313
|
+
async onChangeTodosSelecionados(todosSelecionados) {
|
|
7314
|
+
this.isSelectingAll.set(true);
|
|
7315
|
+
if (!todosSelecionados) {
|
|
7316
|
+
for (const linha of this.listaOrdenada()) {
|
|
7317
|
+
await this.desselecionarLinha(linha);
|
|
7318
|
+
}
|
|
7319
|
+
}
|
|
7320
|
+
else {
|
|
7321
|
+
for (const linha of this.listaOrdenada()) {
|
|
7322
|
+
await this.selectLinha(linha);
|
|
7323
|
+
}
|
|
7324
|
+
}
|
|
7325
|
+
await LibUtil.wait(100);
|
|
7326
|
+
this.isSelectingAll.set(false);
|
|
7327
|
+
}
|
|
7328
|
+
async onClickRow(linha) {
|
|
7329
|
+
if (!linha)
|
|
7330
|
+
return;
|
|
7331
|
+
if (!linha.dados)
|
|
7332
|
+
return;
|
|
7333
|
+
if (linha.isSelecionando)
|
|
7334
|
+
return;
|
|
7335
|
+
if (this.selectedRows().includes(linha.id)) {
|
|
7336
|
+
this.desselecionarLinha(linha);
|
|
7337
|
+
}
|
|
7338
|
+
else {
|
|
7339
|
+
this.selectLinha(linha);
|
|
7340
|
+
}
|
|
7341
|
+
}
|
|
7342
|
+
unselectAll() {
|
|
7343
|
+
this.selectedRows.set([]);
|
|
7344
|
+
}
|
|
7345
|
+
async selectLinha(linha) {
|
|
7346
|
+
if (this.selectedRows().includes(linha.id))
|
|
7347
|
+
return;
|
|
7348
|
+
this.selecionandoLinhas.set([...this.selecionandoLinhas(), linha.id]);
|
|
7349
|
+
let allowedSelection = await this.config().ruleSelectRow?.(linha.dados, this.selectedRows()) ?? true;
|
|
7350
|
+
if (!allowedSelection)
|
|
7351
|
+
return;
|
|
7352
|
+
if (this.config().selectionMode == 'single') {
|
|
7353
|
+
this.unselectAll();
|
|
7354
|
+
}
|
|
7355
|
+
this.selectedRows.set([...this.selectedRows(), linha.id]);
|
|
7356
|
+
this.config().onSelected?.(linha.dados, this.selectedRows());
|
|
7357
|
+
this.config().onSelectionChanged?.(linha.dados, this.selectedRows());
|
|
7358
|
+
this.config().isSelected.set(true);
|
|
7359
|
+
this.selecionandoLinhas.set([...this.selecionandoLinhas().filter(i => i !== linha.id)]);
|
|
7360
|
+
}
|
|
7361
|
+
async desselecionarLinha(linha) {
|
|
7362
|
+
if (!this.selectedRows().includes(linha.id))
|
|
7363
|
+
return;
|
|
7364
|
+
this.selecionandoLinhas.set([...this.selecionandoLinhas(), linha.id]);
|
|
7365
|
+
let allowedUnSelection = await this.config().ruleUnSelectRow?.(linha.dados, this.selectedRows()) ?? true;
|
|
7366
|
+
if (!allowedUnSelection)
|
|
7367
|
+
return;
|
|
7368
|
+
this.selectedRows.set(this.selectedRows().filter(i => i !== linha.id));
|
|
7369
|
+
this.config().onUnselected?.(linha.dados, this.selectedRows());
|
|
7370
|
+
this.config().onSelectionChanged?.(linha.dados, this.selectedRows());
|
|
7371
|
+
await LibUtil.wait(100);
|
|
7372
|
+
this.selecionandoLinhas.set([...this.selecionandoLinhas().filter(i => i !== linha.id)]);
|
|
7373
|
+
}
|
|
7374
|
+
onClickGroup(dadosDaLinha) {
|
|
7375
|
+
this.gruposColapsed.update(g => {
|
|
7376
|
+
if (g.includes(dadosDaLinha.groupName)) {
|
|
7377
|
+
return g.filter(grupo => grupo != dadosDaLinha.groupName);
|
|
7378
|
+
}
|
|
7379
|
+
else {
|
|
7380
|
+
return [...g, dadosDaLinha.groupName];
|
|
7381
|
+
}
|
|
7382
|
+
});
|
|
7383
|
+
}
|
|
7384
|
+
onRecolherGroups() {
|
|
7385
|
+
this.gruposColapsed.set(Array.from(this.gruposEncontrados.itens));
|
|
7386
|
+
}
|
|
7387
|
+
onExpandirGroups() {
|
|
7388
|
+
this.gruposColapsed.set([]);
|
|
7389
|
+
}
|
|
7390
|
+
async onAgruparPor(coluna) {
|
|
7391
|
+
this.colAgrupadoAtual.set(null);
|
|
7392
|
+
this.gruposEncontrados.itens.clear();
|
|
7393
|
+
this.isAgrupadoLimpo.set(false);
|
|
7394
|
+
this.colAgrupadoAtual.set(coluna);
|
|
7395
|
+
this.atualizarColunas();
|
|
7396
|
+
}
|
|
7397
|
+
async onChangedAgrupamento(event) {
|
|
7398
|
+
let propAgrupamento = event.optionChanged?.k;
|
|
7399
|
+
let colAgrupada = this.colunasDefinidas().find(c => c.prop === propAgrupamento) ?? null;
|
|
7400
|
+
this.onAgruparPor(colAgrupada);
|
|
7401
|
+
}
|
|
7402
|
+
onClearGroups() {
|
|
7403
|
+
this.isAgrupadoLimpo.set(true);
|
|
7404
|
+
this.gruposEncontrados.itens.clear();
|
|
7405
|
+
this.isAgrupado.set(false);
|
|
7406
|
+
this.colAgrupadoAtual.set(null);
|
|
7407
|
+
this.atualizarColunas();
|
|
7408
|
+
}
|
|
7409
|
+
onChangeLineNumber() {
|
|
7410
|
+
this.hasVerticalLine.update(v => !v);
|
|
7411
|
+
this.calcularColunasExibir();
|
|
7412
|
+
}
|
|
7413
|
+
onChangeSeletor() {
|
|
7414
|
+
this.hasSeletor.update(v => !v);
|
|
7415
|
+
this.calcularColunasExibir();
|
|
7416
|
+
}
|
|
7417
|
+
onChangeCompacted() {
|
|
7418
|
+
this.isCompacted.update(v => !v);
|
|
7419
|
+
}
|
|
7420
|
+
onChangeHasGrid() {
|
|
7421
|
+
this.hasGrid.update(v => !v);
|
|
7422
|
+
}
|
|
7423
|
+
onResizeStart(event, coluna) {
|
|
7424
|
+
this.colMovingX = event.clientX;
|
|
7425
|
+
event.preventDefault();
|
|
7426
|
+
let eColuna = event.target.closest('.table-header');
|
|
7427
|
+
let computedWidth = parseInt(window.getComputedStyle(eColuna).width.replaceAll('px', ''), 10);
|
|
7428
|
+
const onMouseMove = (moveEvent) => {
|
|
7429
|
+
const delta = moveEvent.clientX - this.colMovingX;
|
|
7430
|
+
let widthNum = Math.max(30, (computedWidth + delta));
|
|
7431
|
+
this.colunasOrdenadas.update(cols => {
|
|
7432
|
+
return cols.map(c => {
|
|
7433
|
+
if (c.ordem === coluna.ordem) {
|
|
7434
|
+
return { ...c, widthNum, width: `${widthNum}px` };
|
|
7435
|
+
}
|
|
7436
|
+
return c;
|
|
7437
|
+
});
|
|
7438
|
+
});
|
|
7439
|
+
};
|
|
7440
|
+
const onMouseUp = () => {
|
|
7441
|
+
this.calcularColunasExibir();
|
|
7442
|
+
document.removeEventListener('mousemove', onMouseMove);
|
|
7443
|
+
document.removeEventListener('mouseup', onMouseUp);
|
|
7444
|
+
};
|
|
7445
|
+
document.addEventListener('mousemove', onMouseMove);
|
|
7446
|
+
document.addEventListener('mouseup', onMouseUp);
|
|
7447
|
+
}
|
|
7448
|
+
onDoubleClickControls(event, coluna) {
|
|
7449
|
+
let getColunaDefinina = this.colunasDefinidas().find(c => c.ordem === coluna.ordem);
|
|
7450
|
+
let getWidth = getColunaDefinina?.width ? getColunaDefinina.width : 'auto';
|
|
7451
|
+
this.colunasOrdenadas.update(cols => {
|
|
7452
|
+
return cols.map(c => {
|
|
7453
|
+
if (c.ordem === coluna.ordem) {
|
|
7454
|
+
return { ...c, width: getWidth };
|
|
7455
|
+
}
|
|
7456
|
+
return c;
|
|
7457
|
+
});
|
|
7458
|
+
});
|
|
7459
|
+
this.calcularColunasExibir();
|
|
7460
|
+
}
|
|
7461
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MkGrid, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7462
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: MkGrid, isStandalone: true, selector: "lib-mk-grid", inputs: { lista: { classPropertyName: "lista", publicName: "lista", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, filtro: { classPropertyName: "filtro", publicName: "filtro", isSignal: true, isRequired: false, transformFunction: null }, minLineHeight: { classPropertyName: "minLineHeight", publicName: "minLineHeight", isSignal: true, isRequired: false, transformFunction: null }, isCompacted: { classPropertyName: "isCompacted", publicName: "isCompacted", isSignal: true, isRequired: false, transformFunction: null }, hasGrid: { classPropertyName: "hasGrid", publicName: "hasGrid", isSignal: true, isRequired: false, transformFunction: null }, hasVerticalLine: { classPropertyName: "hasVerticalLine", publicName: "hasVerticalLine", isSignal: true, isRequired: false, transformFunction: null }, hasSeletor: { classPropertyName: "hasSeletor", publicName: "hasSeletor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { minLineHeight: "minLineHeightChange", isCompacted: "isCompactedChange", hasGrid: "hasGridChange", hasVerticalLine: "hasVerticalLineChange", hasSeletor: "hasSeletorChange" }, viewQueries: [{ propertyName: "gridSize", first: true, predicate: ["gridSize"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "gridfiltro", first: true, predicate: ["gridfiltro"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "filterContainer", first: true, predicate: ["filterContainer"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<lib-grid-filter-bar [config]=\"config()\" [colunasDefinidas]=\"$any(colunasDefinidas())\"\n\t[colAgrupadoAtual]=\"colAgrupadoAtual()\" [isAgrupado]=\"isAgrupado()\" [filterCollapsed]=\"filtroCollapsed()\"\n\t(searchInput)=\"onInputSearch($event)\" (filterToggle)=\"onClickOpenCloseFilterZone()\"\n\t(actionTriggered)=\"onClickAction($event)\" (groupByColumn)=\"onAgruparPor($any($event))\" (clearGroups)=\"onClearGroups()\"\n\t(collapseGroups)=\"onRecolherGroups()\" (expandGroups)=\"onExpandirGroups()\">\n</lib-grid-filter-bar>\n\n@if(config().showFilterBar) {\n<div class=\"table-filter-container table-styles\" [style.--filter-height.px]=\"filterHeight()\">\n\t<div #filterContainer class=\"table-filter-content\" [class.table-filter-hide]=\"filtroCollapsed()\">\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n}\n\n@if(config().screen() == \"Mobile\"){\n<!-- MOBILE INICIO -->\n\n@for (dadosLinha of listaExibir(); track $index;let i = $index) {\n@if( dadosLinha.isColapsed !== true){\n\n@if(dadosLinha.isFullLine?.visible){\n<!-- MOBILE GRUPO LINHA PR\u00D3PRIA -->\n<div class=\"table-row-mobile table-formated table-group table-styles\" (click)=\"onClickGroup(dadosLinha)\">\n\t<div>{{ dadosLinha.groupName }}</div>\n\t<div class=\"table-group-items-area\" [class.table-group-collapse]=\"dadosLinha.isFullLine?.colapsed === true\">\n\t\t{{ dadosLinha.isFullLine?.colapsedCount ?? 0 }} item(s)\n\t\t<div class=\"table-group-items-ico\">\n\t\t\t<i class=\"bi bi-caret-down\"></i>\n\t\t</div>\n\t</div>\n</div>\n} @else {\n\n<div class=\"table-overflow mobile\" [style.--table-min-height]=\"isCompacted() ? '20px' : minLineHeight()\">\n\t<div class=\"table-table-mobile\" [class.selected]=\"dadosLinha.selecionado\">\n\n\t\t<!-- MOBILE DADOS -->\n\t\t@if(config().showActionsLine){\n\t\t<div class=\"table-header-mobile\" [style.gridArea]=\"'auto / auto / auto / span 2'\">\n\t\t\t@if(hasVerticalLine()){\n\t\t\t<!-- MOBILE VERTICAL DIV -->\n\t\t\t<div class=\"table-header-mobile table-formated table-vertical-line\" (click)=\"onClickRow(dadosLinha)\">\n\t\t\t\t{{ dadosLinha.ordem }}\n\t\t\t</div>\n\t\t\t}\n\t\t\t@if(hasSeletor()){\n\t\t\t<!-- MOBILE SELECTOR DIV -->\n\t\t\t<div class=\"table-header-mobile table-formated table-item-seletor\" (click)=\"onClickRow(dadosLinha)\">\n\t\t\t\t<ui-check-box [(value)]=\"dadosLinha.selecionado\" [style.--ui-color]=\"'var(--sys-on-primary)'\"\n\t\t\t\t\t[style.--ui-outline]=\"'var(--sys-on-primary)'\" [single]=\"this.config().selectionMode == 'single'\"\n\t\t\t\t\t[style.--ui-size]=\"isCompacted() ? '15px' : undefined\"></ui-check-box>\n\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"table-header-mobile-space\" (click)=\"onClickRow(dadosLinha)\"></div>\n\t\t\t<lib-grid-cell-actions [config]=\"config()\" [dadosDaLinha]=\"dadosLinha\" [mobileHeader]=\"true\"\n\t\t\t\t(action)=\"onClickCellAction($event)\" [compact]=\"isCompacted()\"></lib-grid-cell-actions>\n\t\t</div>\n\t\t}\n\n\t\t<!-- MOBILE LINHA -->\n\t\t@for (localColuna of colunasOrdenadas(); track $index;) {\n\t\t<div class=\"table-header-mobile\" [class.sortable]=\"localColuna.sortable !== false\"\n\t\t\t[class.sorted-asc]=\"obterDirecaoOrdenacao(localColuna.prop) === 'asc'\"\n\t\t\t[class.sorted-desc]=\"obterDirecaoOrdenacao(localColuna.prop) === 'desc'\"\n\t\t\t(click)=\"localColuna.sortable !== false && alternarOrdenacao(localColuna.prop)\" [style]=\"localColuna.styleHeader\">\n\t\t\t<div class=\"table-header-mobile-text\" [title]=\"localColuna.titulo\"\n\t\t\t\t[innerHTML]=\"localColuna.tituloReduzido ?? localColuna.titulo\">\n\t\t\t</div>\n\t\t\t<div class=\"table-header-controls\">\n\t\t\t\t@if (localColuna.sortable !== false) {\n\t\t\t\t<span class=\"table-ico-sort\">\n\t\t\t\t\t@if (obterDirecaoOrdenacao(localColuna.prop) === 'asc') {\n\t\t\t\t\t<i class=\"fa fa-sort-up asc\"></i>\n\t\t\t\t\t} @else if (obterDirecaoOrdenacao(localColuna.prop) === 'desc') {\n\t\t\t\t\t<i class=\"fa fa-sort-down desc\"></i>\n\t\t\t\t\t}\n\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t<lib-grid-cell-handler class=\"table-item-mobile table-formated\" [class.odd]=\"i % 2 !== 0\" [class.even]=\"i % 2 === 0\"\n\t\t\t[linha]=\"dadosLinha.dados\" [localColuna]=\"localColuna\" [lista]=\"lista()!\" [config]=\"config()\"\n\t\t\t[localColunas]=\"colunasOrdenadas()\" [inputSearchText]=\"inputSearchText()\"></lib-grid-cell-handler>\n\t\t}\n\t</div>\n</div>\n}\n}\n} @empty {\n<!-- LINHA DE SEM DADOS -->\n<div class=\"table-styles\"><lib-grid-empty-list></lib-grid-empty-list></div>\n}\n<!-- MOBILE FIM -->\n\n\n} @else {\n<!-- DESKTOP INICIO -->\n<div #gridSize class=\"table-overflow\" [class.compacted]=\"isCompacted()\"\n\t[style.--table-min-height]=\"isCompacted() ? '40px' : minLineHeight()\">\n\t<div class=\"table-table\" [class.table-has-vertical-line]=\"hasVerticalLine()\" [class.table-has-seletor]=\"hasSeletor()\"\n\t\tcdkDropList (cdkDropListDropped)=\"onDropColuna($event)\" [cdkDropListData]=\"colunasExibir()\"\n\t\t[style.gridTemplateColumns]=\"`${this.pxVerticalLine()}${this.pxSelector()}` + this.pxColunas() + this.pxActions()\">\n\t\t<!-- DESKTOP HEADER -->\n\t\t<lib-grid-header-row [colunas]=\"colunasExibir()\" [ordenacoes]=\"ordenacoesSignal()\"\n\t\t\t[todosSelecionados]=\"todosSelecionados()\" [config]=\"config()\" [hasSeletor]=\"hasSeletor()\"\n\t\t\t[hasVerticalLine]=\"hasVerticalLine()\" [hasGrid]=\"hasGrid()\" [isCompacted]=\"isCompacted()\"\n\t\t\t[isSelectingAll]=\"isSelectingAll()\" (columnSort)=\"alternarOrdenacao($event)\"\n\t\t\t(selectAll)=\"onChangeTodosSelecionados($event)\"\n\t\t\t(columnResizeStart)=\"onResizeStart($event.event, $any($event.coluna))\"\n\t\t\t(columnResizeDoubleClick)=\"onDoubleClickControls($event.event, $any($event.coluna))\">\n\t\t</lib-grid-header-row>\n\n\t\t<!-- DESKTOP LINHAS DE DADOS -->\n\t\t@for (dadosLinha of listaExibir(); track $index; let i = $index) {@if( dadosLinha.isColapsed !== true){\n\n\t\t@if(dadosLinha.isFullLine?.visible){\n\n\t\t<!-- DESKTOP FULL LINE (COLSPAN HORIZONTAL) -->\n\t\t@if(hasVerticalLine()){\n\t\t<!-- DESKTOP HEADER VERTICAL FULL LINE -->\n\t\t<div class=\"table-header table-formated table-vertical-line\">\n\t\t\t{{ dadosLinha.ordem }}\n\t\t</div>\n\t\t}\n\t\t<!-- DESKTOP GRUPO: ROW -->\n\t\t@if(dadosLinha.isGroup){\n\n\t\t<div class=\"table-row table-formated table-group table-border-bottom-card\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\t<div class=\"table-group-name\" [class.table-inativo]=\"dadosLinha.inativo\">\n\t\t\t\t<lib-grid-cell-handler class=\"table-item table-dados {{ colAgrupadoAtual()?.classeCell }}\"\n\t\t\t\t\t[linha]=\"dadosLinha.dados\" [localColuna]=\"colAgrupadoAtual()!\" [lista]=\"lista()!\" [config]=\"config()\"\n\t\t\t\t\t[localColunas]=\"colunasDefinidas()\" [inputSearchText]=\"inputSearchText()\"></lib-grid-cell-handler>\n\t\t\t</div>\n\t\t\t<ui-button tipo=\"nofill\" (click)=\"onClickGroup(dadosLinha)\">\n\t\t\t\t<div class=\"table-group-items-area\" [class.table-group-collapse]=\"dadosLinha.isFullLine?.colapsed === true\">\n\t\t\t\t\t{{ dadosLinha.isFullLine?.colapsedCount ?? 0 }} item(s)\n\t\t\t\t\t<div class=\"table-group-items-ico\">\n\t\t\t\t\t\t<i [class]=\"dadosLinha.isFullLine?.colapsed ? 'bi bi-caret-down-fill' : 'bi bi-caret-down'\"></i>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ui-button>\n\t\t</div>\n\n\t\t} @else {\n\t\t<div class=\"table-row table-formated table-others\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\tNada a exibir nesta linha\n\t\t</div>\n\t\t}\n\n\t\t} @else {\n\n\t\t<!-- LINHA NORMAL via GridRowRenderer -->\n\t\t<lib-grid-row-renderer [dadosLinha]=\"dadosLinha\" [config]=\"config()\" [colunas]=\"colunasExibir()\"\n\t\t\t[colunasOrdenadas]=\"colunasOrdenadas()\" [lista]=\"lista()!\" [inputSearchText]=\"inputSearchText()\"\n\t\t\t[hasSeletor]=\"hasSeletor()\" [hasVerticalLine]=\"hasVerticalLine()\" [isCompacted]=\"isCompacted()\"\n\t\t\t[hasGrid]=\"hasGrid()\" [rowIndex]=\"i\" (actionTriggered)=\"onClickCellAction($event)\"\n\t\t\t(rowClicked)=\"onClickRow($event)\">\n\t\t</lib-grid-row-renderer>\n\n\t\t}}\n\n\t\t<!-- POSSIBILIDADES SEM DADOS -->\n\t\t} @empty {\n\n\t\t<!-- ERRO -->\n\t\t@if(config().hasError) {\n\t\t<div class=\"table-row table-formated table-errors\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\t<ng-content select=\"[mkGridError]\"></ng-content>\n\t\t</div>\n\n\t\t<!-- LOADING -->\n\t\t} @else if(!config().isLoaded) {\n\t\t<div class=\"table-row table-formated table-loader\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\t<ng-content select=\"[mkGridLoading]\"></ng-content>\n\t\t</div>\n\n\t\t} @else {\n\n\t\t<div class=\"table-row table-empty\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\t<lib-grid-empty-list></lib-grid-empty-list>\n\t\t</div>\n\t\t}\n\n\t\t}\n\n\t\t<!-- FIM DA LINHA NORMAL -->\n\n\n\t</div>\n</div>\n<!-- DESKTOP FIM -->\n}\n\n\n@if(config().showPagination){\n<lib-grid-pagination [paginacao]=\"paginacaoSignal()\" [totalPaginas]=\"totalPaginas()\"\n\t(pageChange)=\"irParaPagina($event)\">\n</lib-grid-pagination>\n}\n\n\n\n\n@if(config().showInfoBar){\n<!-- Informa\u00E7\u00F5es de Ordena\u00E7\u00E3o -->\n@if (ordenacoesSignal().length > 0) {\n<div class=\"table-info-row table-styles\">\n\t@if (ordenacoesSignal().length > 0) {\n\t<div>Ordenado por: {{ getOrdenacaoTexto() }}</div>\n\t}\n\t<div class=\"f-1\"></div>\n\t<ui-button tipo=\"outlined\" tema=\"primary\" (click)=\"onClickClearInfo()\" icone=\"bi bi-x-lg\"></ui-button>\n</div>\n}\n<!-- Informa\u00E7\u00F5es de Agrupamento -->\n@if (this.isAgrupado()) {\n<div class=\"table-info-row table-styles\">\n\t<i class=\"fa fa-object-group\"></i>\n\t<div class=\"flex flex-wrap gap-1 f-t-b\">\n\t\tAgrupado por {{ colAgrupadoAtual()?.titulo }} (h\u00E1 {{ gruposEncontrados.itens.size }} grupos)\n\t\t<div class=\"campoSemForm\">\n\t\t\t<ui-select [value]=\"colAgrupadoAtual()?.prop\" [options]=\"this.colunasKVDefinidas()\"\n\t\t\t\t(changed)=\"onChangedAgrupamento($event)\"></ui-select>\n\t\t</div>\n\n\t</div>\n\t<div class=\"f-1\"></div>\n\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onRecolherGroups()\" icone=\"bi bi-arrows-collapse\">\n\t\tRecolher Todos\n\t</ui-button>\n\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onExpandirGroups()\" icone=\"bi bi-arrows-expand\">\n\t\tExpandir Todos\n\t</ui-button>\n\t<ui-button tipo=\"outlined\" tema=\"primary\" (click)=\"onClearGroups()\" icone=\"fa fa-object-ungroup\">\n\t\tDesagrupar\n\t</ui-button>\n</div>\n}\n}\n\n\n@if(devMode){\n<!-- MODO DESENVOLVIMENTO -->\n<div class=\"table-info-row table-styles\">\n\t<i class=\"fa fa-microscope\"></i>\n\t<div>Fun\u00E7\u00F5es extras</div>\n\t<div class=\"f-1\"></div>\n\t<ui-button tipo=\"icon\" tema=\"primary\" [ativo]=\"hasGrid()\" (click)=\"onChangeHasGrid()\" icone='bi bi-grid-3x3'\n\t\ttitle=\"Grid\"></ui-button>\n\t<ui-button tipo=\"icon\" tema=\"primary\" [ativo]=\"isCompacted()\" (click)=\"onChangeCompacted()\"\n\t\ticone='fa fa-arrows-to-circle' title=\"Compactar\"></ui-button>\n\t<ui-button tipo=\"icon\" tema=\"primary\" [ativo]=\"hasVerticalLine()\" (click)=\"onChangeLineNumber()\"\n\t\ticone='bi bi-layout-sidebar' title=\"Linha Vertical\"></ui-button>\n\t<ui-button tipo=\"icon\" tema=\"primary\" [ativo]=\"hasSeletor()\" (click)=\"onChangeSeletor()\" icone='fa fa-check-double'\n\t\ttitle=\"Seletor\"></ui-button>\n</div>\n}", styles: [":host{--mk-grid-border-radius: var(--sys-border-radius, 10px);--mk-grid-gap: var(--sys-gap, 8px);--mk-grid-lum-10: var(--sys-lum-10, 95%);--mk-grid-card: var(--sys-card, hsl(216 22% 96%));--mk-grid-background: var(--sys-background, hsl(0 0% 100%));--mk-grid-bg-card: var(--mk-grid-card);--mk-grid-bg: var(--mk-grid-background);--mk-grid-outline: var(--sys-outline, hsl(220 15% 86%));--mk-grid-primary: var(--sys-primary, hsl(224 74% 53%));--mk-grid-on-primary: var(--sys-on-primary, hsl(0 0% 100%));--mk-grid-secondary: var(--sys-secondary, hsl(221 44% 49%));--mk-grid-error: var(--sys-error, hsl(0 66% 47%));--mk-grid-info: var(--sys-info, hsl(210 79% 46%));--mk-grid-high: var(--sys-high, hsl(221 100% 97%));--mk-grid-on-high: var(--sys-on-high, hsl(222 35% 16%));--mk-grid-on-card: var(--sys-on-card, hsl(221 27% 16%));--mk-grid-on-card-variant: var(--sys-on-card-variant, hsl(222 15% 43%));--mk-grid-on-background: var(--sys-on-background, hsl(222 20% 20%));--mk-grid-primary-15: var(--sys-primary-15, hsl(224 74% 53% / 15%))}:host .drag-container{cursor:grab}:host .drag-container:active{cursor:grabbing}:host-context(body:has(.cdk-drag-preview)) .drop-option{outline:1px dashed var(--mk-grid-outline)}:host-context(body:has(.cdk-drag-preview)) .drop-option:hover{outline:1px solid var(--mk-grid-outline);background-color:var(--mk-grid-high)}:host ui-menu>ui-button{border-bottom:1px solid var(--ui-outline-color, var(--mk-grid-outline))}:host .menu-title{font-size:1.2rem;font-weight:600;padding:0 calc(var(--mk-grid-gap) / 2) var(--mk-grid-gap) calc(var(--mk-grid-gap) / 2);border-bottom:1px solid var(--mk-grid-outline);display:flex;justify-content:space-between;align-items:center;gap:var(--mk-grid-gap)}:host .menu-sub-title{font-size:14px;font-weight:500;display:flex;justify-content:flex-start;align-items:center;gap:var(--mk-grid-gap);padding-left:calc(var(--mk-grid-gap) / 2);min-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .menu-sub-value{font-size:14px;font-weight:400;display:flex;justify-content:flex-end;align-items:center;gap:calc(var(--mk-grid-gap) / 2);padding-right:calc(var(--mk-grid-gap) / 2);min-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host{display:flex;flex-direction:column}.table-overflow{display:grid;overflow:auto;margin-top:10px;padding:0;position:relative}.table-overflow.compacted{justify-content:center}.table-overflow.mobile{border-radius:calc(var(--mk-grid-border-radius) / 2)}.table-overflow.mobile{overflow:hidden}.table-table-mobile,.table-table{display:grid;font-size:13px}.table-table-mobile{grid-template-columns:1fr 1fr}.table-header,.table-header-mobile{background:var(--mk-grid-primary);color:var(--mk-grid-on-primary);transition:background-color .2s ease;display:flex;flex-wrap:wrap;align-items:center;align-content:stretch;justify-content:center;-webkit-user-select:none;user-select:none;min-height:var(--table-min-height)}.table-header-mobile{padding:0 5px}.table-header-mobile-space{flex:1;height:100%;display:flex;align-items:center;justify-content:center}.table-header-mobile-text,.table-header-text{flex:1;font-weight:600;text-align:center;display:block;align-content:center}.table-header-mobile-text{text-align:start}.table-header-text{height:100%;border-radius:var(--mk-grid-border-radius);position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-drag-preview{font-size:14px!important;background:var(--mk-grid-high);color:var(--mk-grid-on-high);opacity:.6}.cdk-drop-list-receiving:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--mk-grid-info);filter:opacity(.5)}.cdk-drag-placeholder:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--mk-grid-primary)}.textVertical .table-header-text{writing-mode:vertical-lr;text-orientation:upright;letter-spacing:-5px;padding-bottom:5px;text-align:right;align-self:end;display:flex;justify-content:center;align-items:center;flex-wrap:wrap}.table-header-controls{width:6px;min-width:6px;max-width:6px;cursor:col-resize;height:100%;display:flex;align-items:center;justify-content:center}.table-ico-sort{font-size:10px;color:color-mix(in srgb,var(--mk-grid-secondary) 50%,var(--mk-grid-on-primary) 50%)}.table-ico-sort .asc{animation:aniSortUp 1s infinite cubic-bezier(.175,.885,.32,1.275)}.table-ico-sort .desc{animation:aniSortDown 1s infinite cubic-bezier(.175,.885,.32,1.275)}@keyframes aniSortUp{0%{transform:translateY(0) scale(1)}20%{transform:translateY(0) scale(1)}80%{transform:translateY(-3px) scale(1.1)}to{transform:translateY(0) scale(1)}}@keyframes aniSortDown{0%{transform:translateY(0) scale(1)}20%{transform:translateY(0) scale(1)}80%{transform:translateY(3px) scale(1.1)}to{transform:translateY(0) scale(1)}}.table-row,.table-row-mobile{display:flex;justify-content:space-between;align-items:center}.table-row{background:color-mix(in srgb,var(--mk-grid-primary) 10%,var(--mk-grid-background) 90%)}.table-row-mobile{margin-top:10px}.table-group{border-top-right-radius:calc(var(--mk-grid-border-radius) / 2);border-top-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-group:has(.table-group-collapse){border-bottom-right-radius:calc(var(--mk-grid-border-radius) / 2);border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-group.table-formated{padding-left:10px}.table-group-items-area{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;font-style:italic;color:color-mix(in srgb,var(--mk-grid-on-background) 60%,var(--mk-grid-background) 40%);overflow:hidden}.table-group-items-ico{transition:transform .3s ease;transform:rotate(180deg)}.table-group-name{flex:1;height:100%;display:flex;align-items:center}.table-group-collapse .table-group-items-ico{transition:transform .3s ease;transform:rotate(0);color:color-mix(in srgb,var(--mk-grid-primary) 60%,var(--mk-grid-background) 40%)}.table-formated{min-height:var(--table-min-height);padding:1px 2px;font-size:14px}.table-dados{min-height:var(--table-min-height);padding:1px 2px}.table-item{cursor:pointer}.table-item,.table-header{border-left:0px solid transparent;border-right:0px solid transparent}.table-header:first-child{border-top-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-item:last-child{border-bottom-right-radius:calc(var(--mk-grid-border-radius) / 2)}.header-last-col{border-top-right-radius:calc(var(--mk-grid-border-radius) / 2)}.table-table:not(.table-has-vertical-line) .table-item:nth-last-child(-n+1 of div.table-item-seletor){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-table:not(.table-has-vertical-line,.table-has-seletor) .table-dados:nth-last-child(-n+1 of.table-first-col){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-header:nth-last-child(-n+1 of div.table-vertical-line){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-header-mobile.table-vertical-line,.table-header.table-vertical-line,.table-item.table-vertical-line{background:var(--mk-grid-primary);color:var(--mk-grid-on-primary);display:flex;justify-content:center;align-items:center}.table-grupo-seletor,.table-item-seletor{display:flex;justify-content:center;align-items:center}.table-header-mobile.sortable .table-header-text,.table-header.sortable .table-header-text{cursor:pointer;-webkit-user-select:none;user-select:none}.table-header-mobile.sortable:hover,.table-header.sortable:hover,.table-header-mobile.sorted-asc,.table-header-mobile.sorted-desc,.table-header.sorted-asc,.table-header.sorted-desc{background:color-mix(in srgb,var(--mk-grid-secondary) 30%,var(--mk-grid-primary) 70%);color:var(--mk-grid-on-primary)}.table-row.table-errors,.table-row.table-loader{justify-content:center}.table-border-bottom-card{border-bottom:1px solid var(--mk-grid-card)}.table-border-left-darker{border-left:1px solid color-mix(in srgb,var(--mk-grid-card) 20%,transparent 80%)}.table-border-right-darker{border-right:1px solid color-mix(in srgb,var(--mk-grid-card) 20%,transparent 80%)}.table-border-left{border-left:1px solid var(--mk-grid-background)}.table-border-right{border-right:1px solid var(--mk-grid-background)}.table-item-mobile,.table-item{transition:background-color .2s cubic-bezier(.075,.82,.165,1);border-bottom:1px solid var(--mk-grid-background);position:relative}.table-item.hashue{background-color:hsl(var(--bghue) 100 var(--mk-grid-lum-10))}.table-item-mobile.odd:before,.table-item.odd:before,.table-item-mobile.even:before,.table-item.even:before,.table-item.table-bg-error:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;z-index:0;pointer-events:none;background:var(--mk-grid-background)}.table-item-mobile.odd:before,.table-item.odd:before{opacity:.2}.table-item-mobile.even:before,.table-item.even:before{opacity:.1}.table-item.table-bg-error:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;z-index:0;pointer-events:none;outline-offset:0px;outline:2px solid var(--mk-grid-error);background-color:var(--mk-grid-error);opacity:.04}.table-border-right-error{border-right:1px dashed color-mix(in srgb,var(--mk-grid-error) 50%,transparent 50%)}.table-styles{color:var(--mk-grid-on-card);background:color-mix(in srgb,var(--mk-grid-outline) 20%,var(--mk-grid-card) 80%);border-radius:calc(var(--mk-grid-border-radius) / 2)}.table-show-error{display:flex;justify-content:center;align-items:center;padding:16px;margin-top:10px}.table-topo-container{display:flex;flex-wrap:wrap;align-items:center;font-size:14px;padding:8px;gap:1rem}.table-actions-outside{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:8px}.table-top-right-container{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;flex:1}.table-collapse-ico{display:inline-block;transition:transform .3s}.table-collapse-ico.ativo{transition:transform .3s ease-in-out;transform:rotate(-180deg)}.table-filter-content{font-size:14px;padding:8px;overflow:hidden;transition:all .3s cubic-bezier(.075,.82,.165,1);position:relative;opacity:1}.table-filter-content.table-filter-hide{padding:0;opacity:0;margin-top:calc(var(--filter-height) * -1);transition:all .3s cubic-bezier(.075,.82,.165,1)}.table-filter-container:has(.table-filter-hide){pointer-events:none;-webkit-user-select:none;user-select:none}.table-conjunto-actions{position:relative;display:flex;align-items:stretch}.table-conjunto-actions>*{outline:1px solid var(--mk-grid-outline);outline-offset:-1px}.table-conjunto-actions>:first-child{border-radius:var(--mk-grid-border-radius);border-top-right-radius:0;border-bottom-right-radius:0}.table-conjunto-actions>:last-child{border-radius:0 7px 7px 0}.table-conjunto-actions-item{display:flex;align-items:center;justify-content:center;padding:0;min-height:40px}.table-inativo{color:var(--mk-grid-error)}.table-pagination-overflow{display:grid;align-items:center;overflow:auto;margin-top:10px}.table-pagination-overflow.compacted{margin-top:2px;justify-content:center}.table-pagination-container{display:flex;align-items:center;justify-content:space-between;padding:16px;flex-wrap:wrap;gap:16px;flex:1}.table-pagination-overflow.compacted .table-pagination-container{padding:2px 4px;gap:4px}.table-pagination-overflow.compacted.table-has-pages .table-pagination-controls{border-left:1px solid var(--mk-grid-card);border-right:1px solid var(--mk-grid-card)}.table-pagination-info{display:flex;flex-direction:column;color:var(--mk-grid-on-card-variant);font-size:12px}.table-pagination-controls{display:flex;align-items:center;gap:4px}.table-pagination-show{border-radius:var(--mk-grid-border-radius);min-width:47px;min-height:38px;display:flex;justify-content:center;align-items:center;font-size:12px}.table-pagination-per-page{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mk-grid-on-card-variant);flex-wrap:nowrap;white-space:nowrap}.table-pagination-per-page-select{--ui-width: 50px;font-size:12px;text-align:center}.table-performance{font-size:10px;font-style:italic}.compacted .table-pagination-range{display:none}.compacted .table-pagination-totais{font-size:10px}.compacted .table-performance{display:none}.table-empty{display:flex;justify-content:center;align-items:center;padding:16px}.table-info-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;border-left:4px solid var(--mk-grid-primary);padding:12px 16px;margin-top:10px}@media(max-width:768px){.table-pagination-container{flex-direction:column;align-items:stretch;padding:2px}.table-pagination-overflow.compacted .table-pagination-container{padding:0}.table-pagination-controls{justify-content:center}.table-pagination-info{flex-direction:row;justify-content:space-around;gap:10px}.table-pagination-per-page{justify-content:center}}@media(max-width:480px){.table-topo-container{flex-direction:column;align-items:stretch}.table-pagination-container{flex-wrap:wrap;justify-content:space-evenly}.table-small-screen-hide{display:none}}\n"], dependencies: [{ kind: "component", type: GridEmptyList, selector: "lib-grid-empty-list" }, { kind: "component", type: UiButton, selector: "ui-button", inputs: ["icone", "iconeAntes", "iconeDepois", "iconeCategory", "disabled", "eventPropagation", "radiusTabFormat", "tabindex", "tipo", "tema", "classes", "ativo"], outputs: ["iconeChange", "iconeAntesChange", "iconeDepoisChange", "iconeCategoryChange", "clicked", "temaChange"] }, { kind: "component", type: UiSelect, selector: "ui-select", inputs: ["value", "options", "name", "placeholder", "disabled", "multiple", "canUnselect", "textEmpty"], outputs: ["valueChange", "changed"] }, { kind: "component", type: UiCheckBox, selector: "ui-check-box", inputs: ["value", "disabled", "focused", "focus", "single", "hasDash"], outputs: ["valueChange", "focusedChange", "changed"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: GridFilterBar, selector: "lib-grid-filter-bar", inputs: ["config", "colunasDefinidas", "colAgrupadoAtual", "isAgrupado", "filterCollapsed"], outputs: ["searchInput", "actionTriggered", "filterToggle", "groupByColumn", "clearGroups", "collapseGroups", "expandGroups"] }, { kind: "component", type: GridPagination, selector: "lib-grid-pagination", inputs: ["paginacao", "totalPaginas"], outputs: ["pageChange"] }, { kind: "component", type: GridHeaderRow, selector: "lib-grid-header-row", inputs: ["colunas", "ordenacoes", "todosSelecionados", "config", "hasSeletor", "hasVerticalLine", "hasGrid", "isCompacted", "isSelectingAll"], outputs: ["columnSort", "selectAll", "columnResizeStart", "columnResizeDoubleClick"] }, { kind: "component", type: GridRowRenderer, selector: "lib-grid-row-renderer", inputs: ["dadosLinha", "config", "colunas", "colunasOrdenadas", "lista", "inputSearchText", "hasSeletor", "hasVerticalLine", "isCompacted", "hasGrid", "rowIndex"], outputs: ["actionTriggered", "rowClicked"] }, { kind: "component", type: GridCellHandler, selector: "lib-grid-cell-handler", inputs: ["lista", "linha", "config", "localColuna", "localColunas", "inputSearchText"] }, { kind: "component", type: GridCellActions, selector: "lib-grid-cell-actions", inputs: ["config", "dadosDaLinha", "mobileHeader", "compact"], outputs: ["action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7463
|
+
}
|
|
7464
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MkGrid, decorators: [{
|
|
7465
|
+
type: Component,
|
|
7466
|
+
args: [{ selector: 'lib-mk-grid', imports: [
|
|
7467
|
+
GridEmptyList,
|
|
7468
|
+
UiButton,
|
|
7469
|
+
UiSelect,
|
|
7470
|
+
UiCheckBox,
|
|
7471
|
+
DragDropModule,
|
|
7472
|
+
GridFilterBar,
|
|
7473
|
+
GridPagination,
|
|
7474
|
+
GridHeaderRow,
|
|
7475
|
+
GridRowRenderer,
|
|
7476
|
+
GridCellHandler,
|
|
7477
|
+
GridCellActions
|
|
7478
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<lib-grid-filter-bar [config]=\"config()\" [colunasDefinidas]=\"$any(colunasDefinidas())\"\n\t[colAgrupadoAtual]=\"colAgrupadoAtual()\" [isAgrupado]=\"isAgrupado()\" [filterCollapsed]=\"filtroCollapsed()\"\n\t(searchInput)=\"onInputSearch($event)\" (filterToggle)=\"onClickOpenCloseFilterZone()\"\n\t(actionTriggered)=\"onClickAction($event)\" (groupByColumn)=\"onAgruparPor($any($event))\" (clearGroups)=\"onClearGroups()\"\n\t(collapseGroups)=\"onRecolherGroups()\" (expandGroups)=\"onExpandirGroups()\">\n</lib-grid-filter-bar>\n\n@if(config().showFilterBar) {\n<div class=\"table-filter-container table-styles\" [style.--filter-height.px]=\"filterHeight()\">\n\t<div #filterContainer class=\"table-filter-content\" [class.table-filter-hide]=\"filtroCollapsed()\">\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n}\n\n@if(config().screen() == \"Mobile\"){\n<!-- MOBILE INICIO -->\n\n@for (dadosLinha of listaExibir(); track $index;let i = $index) {\n@if( dadosLinha.isColapsed !== true){\n\n@if(dadosLinha.isFullLine?.visible){\n<!-- MOBILE GRUPO LINHA PR\u00D3PRIA -->\n<div class=\"table-row-mobile table-formated table-group table-styles\" (click)=\"onClickGroup(dadosLinha)\">\n\t<div>{{ dadosLinha.groupName }}</div>\n\t<div class=\"table-group-items-area\" [class.table-group-collapse]=\"dadosLinha.isFullLine?.colapsed === true\">\n\t\t{{ dadosLinha.isFullLine?.colapsedCount ?? 0 }} item(s)\n\t\t<div class=\"table-group-items-ico\">\n\t\t\t<i class=\"bi bi-caret-down\"></i>\n\t\t</div>\n\t</div>\n</div>\n} @else {\n\n<div class=\"table-overflow mobile\" [style.--table-min-height]=\"isCompacted() ? '20px' : minLineHeight()\">\n\t<div class=\"table-table-mobile\" [class.selected]=\"dadosLinha.selecionado\">\n\n\t\t<!-- MOBILE DADOS -->\n\t\t@if(config().showActionsLine){\n\t\t<div class=\"table-header-mobile\" [style.gridArea]=\"'auto / auto / auto / span 2'\">\n\t\t\t@if(hasVerticalLine()){\n\t\t\t<!-- MOBILE VERTICAL DIV -->\n\t\t\t<div class=\"table-header-mobile table-formated table-vertical-line\" (click)=\"onClickRow(dadosLinha)\">\n\t\t\t\t{{ dadosLinha.ordem }}\n\t\t\t</div>\n\t\t\t}\n\t\t\t@if(hasSeletor()){\n\t\t\t<!-- MOBILE SELECTOR DIV -->\n\t\t\t<div class=\"table-header-mobile table-formated table-item-seletor\" (click)=\"onClickRow(dadosLinha)\">\n\t\t\t\t<ui-check-box [(value)]=\"dadosLinha.selecionado\" [style.--ui-color]=\"'var(--sys-on-primary)'\"\n\t\t\t\t\t[style.--ui-outline]=\"'var(--sys-on-primary)'\" [single]=\"this.config().selectionMode == 'single'\"\n\t\t\t\t\t[style.--ui-size]=\"isCompacted() ? '15px' : undefined\"></ui-check-box>\n\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"table-header-mobile-space\" (click)=\"onClickRow(dadosLinha)\"></div>\n\t\t\t<lib-grid-cell-actions [config]=\"config()\" [dadosDaLinha]=\"dadosLinha\" [mobileHeader]=\"true\"\n\t\t\t\t(action)=\"onClickCellAction($event)\" [compact]=\"isCompacted()\"></lib-grid-cell-actions>\n\t\t</div>\n\t\t}\n\n\t\t<!-- MOBILE LINHA -->\n\t\t@for (localColuna of colunasOrdenadas(); track $index;) {\n\t\t<div class=\"table-header-mobile\" [class.sortable]=\"localColuna.sortable !== false\"\n\t\t\t[class.sorted-asc]=\"obterDirecaoOrdenacao(localColuna.prop) === 'asc'\"\n\t\t\t[class.sorted-desc]=\"obterDirecaoOrdenacao(localColuna.prop) === 'desc'\"\n\t\t\t(click)=\"localColuna.sortable !== false && alternarOrdenacao(localColuna.prop)\" [style]=\"localColuna.styleHeader\">\n\t\t\t<div class=\"table-header-mobile-text\" [title]=\"localColuna.titulo\"\n\t\t\t\t[innerHTML]=\"localColuna.tituloReduzido ?? localColuna.titulo\">\n\t\t\t</div>\n\t\t\t<div class=\"table-header-controls\">\n\t\t\t\t@if (localColuna.sortable !== false) {\n\t\t\t\t<span class=\"table-ico-sort\">\n\t\t\t\t\t@if (obterDirecaoOrdenacao(localColuna.prop) === 'asc') {\n\t\t\t\t\t<i class=\"fa fa-sort-up asc\"></i>\n\t\t\t\t\t} @else if (obterDirecaoOrdenacao(localColuna.prop) === 'desc') {\n\t\t\t\t\t<i class=\"fa fa-sort-down desc\"></i>\n\t\t\t\t\t}\n\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t<lib-grid-cell-handler class=\"table-item-mobile table-formated\" [class.odd]=\"i % 2 !== 0\" [class.even]=\"i % 2 === 0\"\n\t\t\t[linha]=\"dadosLinha.dados\" [localColuna]=\"localColuna\" [lista]=\"lista()!\" [config]=\"config()\"\n\t\t\t[localColunas]=\"colunasOrdenadas()\" [inputSearchText]=\"inputSearchText()\"></lib-grid-cell-handler>\n\t\t}\n\t</div>\n</div>\n}\n}\n} @empty {\n<!-- LINHA DE SEM DADOS -->\n<div class=\"table-styles\"><lib-grid-empty-list></lib-grid-empty-list></div>\n}\n<!-- MOBILE FIM -->\n\n\n} @else {\n<!-- DESKTOP INICIO -->\n<div #gridSize class=\"table-overflow\" [class.compacted]=\"isCompacted()\"\n\t[style.--table-min-height]=\"isCompacted() ? '40px' : minLineHeight()\">\n\t<div class=\"table-table\" [class.table-has-vertical-line]=\"hasVerticalLine()\" [class.table-has-seletor]=\"hasSeletor()\"\n\t\tcdkDropList (cdkDropListDropped)=\"onDropColuna($event)\" [cdkDropListData]=\"colunasExibir()\"\n\t\t[style.gridTemplateColumns]=\"`${this.pxVerticalLine()}${this.pxSelector()}` + this.pxColunas() + this.pxActions()\">\n\t\t<!-- DESKTOP HEADER -->\n\t\t<lib-grid-header-row [colunas]=\"colunasExibir()\" [ordenacoes]=\"ordenacoesSignal()\"\n\t\t\t[todosSelecionados]=\"todosSelecionados()\" [config]=\"config()\" [hasSeletor]=\"hasSeletor()\"\n\t\t\t[hasVerticalLine]=\"hasVerticalLine()\" [hasGrid]=\"hasGrid()\" [isCompacted]=\"isCompacted()\"\n\t\t\t[isSelectingAll]=\"isSelectingAll()\" (columnSort)=\"alternarOrdenacao($event)\"\n\t\t\t(selectAll)=\"onChangeTodosSelecionados($event)\"\n\t\t\t(columnResizeStart)=\"onResizeStart($event.event, $any($event.coluna))\"\n\t\t\t(columnResizeDoubleClick)=\"onDoubleClickControls($event.event, $any($event.coluna))\">\n\t\t</lib-grid-header-row>\n\n\t\t<!-- DESKTOP LINHAS DE DADOS -->\n\t\t@for (dadosLinha of listaExibir(); track $index; let i = $index) {@if( dadosLinha.isColapsed !== true){\n\n\t\t@if(dadosLinha.isFullLine?.visible){\n\n\t\t<!-- DESKTOP FULL LINE (COLSPAN HORIZONTAL) -->\n\t\t@if(hasVerticalLine()){\n\t\t<!-- DESKTOP HEADER VERTICAL FULL LINE -->\n\t\t<div class=\"table-header table-formated table-vertical-line\">\n\t\t\t{{ dadosLinha.ordem }}\n\t\t</div>\n\t\t}\n\t\t<!-- DESKTOP GRUPO: ROW -->\n\t\t@if(dadosLinha.isGroup){\n\n\t\t<div class=\"table-row table-formated table-group table-border-bottom-card\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\t<div class=\"table-group-name\" [class.table-inativo]=\"dadosLinha.inativo\">\n\t\t\t\t<lib-grid-cell-handler class=\"table-item table-dados {{ colAgrupadoAtual()?.classeCell }}\"\n\t\t\t\t\t[linha]=\"dadosLinha.dados\" [localColuna]=\"colAgrupadoAtual()!\" [lista]=\"lista()!\" [config]=\"config()\"\n\t\t\t\t\t[localColunas]=\"colunasDefinidas()\" [inputSearchText]=\"inputSearchText()\"></lib-grid-cell-handler>\n\t\t\t</div>\n\t\t\t<ui-button tipo=\"nofill\" (click)=\"onClickGroup(dadosLinha)\">\n\t\t\t\t<div class=\"table-group-items-area\" [class.table-group-collapse]=\"dadosLinha.isFullLine?.colapsed === true\">\n\t\t\t\t\t{{ dadosLinha.isFullLine?.colapsedCount ?? 0 }} item(s)\n\t\t\t\t\t<div class=\"table-group-items-ico\">\n\t\t\t\t\t\t<i [class]=\"dadosLinha.isFullLine?.colapsed ? 'bi bi-caret-down-fill' : 'bi bi-caret-down'\"></i>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ui-button>\n\t\t</div>\n\n\t\t} @else {\n\t\t<div class=\"table-row table-formated table-others\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\tNada a exibir nesta linha\n\t\t</div>\n\t\t}\n\n\t\t} @else {\n\n\t\t<!-- LINHA NORMAL via GridRowRenderer -->\n\t\t<lib-grid-row-renderer [dadosLinha]=\"dadosLinha\" [config]=\"config()\" [colunas]=\"colunasExibir()\"\n\t\t\t[colunasOrdenadas]=\"colunasOrdenadas()\" [lista]=\"lista()!\" [inputSearchText]=\"inputSearchText()\"\n\t\t\t[hasSeletor]=\"hasSeletor()\" [hasVerticalLine]=\"hasVerticalLine()\" [isCompacted]=\"isCompacted()\"\n\t\t\t[hasGrid]=\"hasGrid()\" [rowIndex]=\"i\" (actionTriggered)=\"onClickCellAction($event)\"\n\t\t\t(rowClicked)=\"onClickRow($event)\">\n\t\t</lib-grid-row-renderer>\n\n\t\t}}\n\n\t\t<!-- POSSIBILIDADES SEM DADOS -->\n\t\t} @empty {\n\n\t\t<!-- ERRO -->\n\t\t@if(config().hasError) {\n\t\t<div class=\"table-row table-formated table-errors\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\t<ng-content select=\"[mkGridError]\"></ng-content>\n\t\t</div>\n\n\t\t<!-- LOADING -->\n\t\t} @else if(!config().isLoaded) {\n\t\t<div class=\"table-row table-formated table-loader\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\t<ng-content select=\"[mkGridLoading]\"></ng-content>\n\t\t</div>\n\n\t\t} @else {\n\n\t\t<div class=\"table-row table-empty\"\n\t\t\t[style.gridArea]=\"'auto / auto / auto / span ' + (totalColsVisivel() - (hasVerticalLine() ? 1 : 0))\">\n\t\t\t<lib-grid-empty-list></lib-grid-empty-list>\n\t\t</div>\n\t\t}\n\n\t\t}\n\n\t\t<!-- FIM DA LINHA NORMAL -->\n\n\n\t</div>\n</div>\n<!-- DESKTOP FIM -->\n}\n\n\n@if(config().showPagination){\n<lib-grid-pagination [paginacao]=\"paginacaoSignal()\" [totalPaginas]=\"totalPaginas()\"\n\t(pageChange)=\"irParaPagina($event)\">\n</lib-grid-pagination>\n}\n\n\n\n\n@if(config().showInfoBar){\n<!-- Informa\u00E7\u00F5es de Ordena\u00E7\u00E3o -->\n@if (ordenacoesSignal().length > 0) {\n<div class=\"table-info-row table-styles\">\n\t@if (ordenacoesSignal().length > 0) {\n\t<div>Ordenado por: {{ getOrdenacaoTexto() }}</div>\n\t}\n\t<div class=\"f-1\"></div>\n\t<ui-button tipo=\"outlined\" tema=\"primary\" (click)=\"onClickClearInfo()\" icone=\"bi bi-x-lg\"></ui-button>\n</div>\n}\n<!-- Informa\u00E7\u00F5es de Agrupamento -->\n@if (this.isAgrupado()) {\n<div class=\"table-info-row table-styles\">\n\t<i class=\"fa fa-object-group\"></i>\n\t<div class=\"flex flex-wrap gap-1 f-t-b\">\n\t\tAgrupado por {{ colAgrupadoAtual()?.titulo }} (h\u00E1 {{ gruposEncontrados.itens.size }} grupos)\n\t\t<div class=\"campoSemForm\">\n\t\t\t<ui-select [value]=\"colAgrupadoAtual()?.prop\" [options]=\"this.colunasKVDefinidas()\"\n\t\t\t\t(changed)=\"onChangedAgrupamento($event)\"></ui-select>\n\t\t</div>\n\n\t</div>\n\t<div class=\"f-1\"></div>\n\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onRecolherGroups()\" icone=\"bi bi-arrows-collapse\">\n\t\tRecolher Todos\n\t</ui-button>\n\t<ui-button tipo=\"nofill\" tema=\"primary\" (click)=\"onExpandirGroups()\" icone=\"bi bi-arrows-expand\">\n\t\tExpandir Todos\n\t</ui-button>\n\t<ui-button tipo=\"outlined\" tema=\"primary\" (click)=\"onClearGroups()\" icone=\"fa fa-object-ungroup\">\n\t\tDesagrupar\n\t</ui-button>\n</div>\n}\n}\n\n\n@if(devMode){\n<!-- MODO DESENVOLVIMENTO -->\n<div class=\"table-info-row table-styles\">\n\t<i class=\"fa fa-microscope\"></i>\n\t<div>Fun\u00E7\u00F5es extras</div>\n\t<div class=\"f-1\"></div>\n\t<ui-button tipo=\"icon\" tema=\"primary\" [ativo]=\"hasGrid()\" (click)=\"onChangeHasGrid()\" icone='bi bi-grid-3x3'\n\t\ttitle=\"Grid\"></ui-button>\n\t<ui-button tipo=\"icon\" tema=\"primary\" [ativo]=\"isCompacted()\" (click)=\"onChangeCompacted()\"\n\t\ticone='fa fa-arrows-to-circle' title=\"Compactar\"></ui-button>\n\t<ui-button tipo=\"icon\" tema=\"primary\" [ativo]=\"hasVerticalLine()\" (click)=\"onChangeLineNumber()\"\n\t\ticone='bi bi-layout-sidebar' title=\"Linha Vertical\"></ui-button>\n\t<ui-button tipo=\"icon\" tema=\"primary\" [ativo]=\"hasSeletor()\" (click)=\"onChangeSeletor()\" icone='fa fa-check-double'\n\t\ttitle=\"Seletor\"></ui-button>\n</div>\n}", styles: [":host{--mk-grid-border-radius: var(--sys-border-radius, 10px);--mk-grid-gap: var(--sys-gap, 8px);--mk-grid-lum-10: var(--sys-lum-10, 95%);--mk-grid-card: var(--sys-card, hsl(216 22% 96%));--mk-grid-background: var(--sys-background, hsl(0 0% 100%));--mk-grid-bg-card: var(--mk-grid-card);--mk-grid-bg: var(--mk-grid-background);--mk-grid-outline: var(--sys-outline, hsl(220 15% 86%));--mk-grid-primary: var(--sys-primary, hsl(224 74% 53%));--mk-grid-on-primary: var(--sys-on-primary, hsl(0 0% 100%));--mk-grid-secondary: var(--sys-secondary, hsl(221 44% 49%));--mk-grid-error: var(--sys-error, hsl(0 66% 47%));--mk-grid-info: var(--sys-info, hsl(210 79% 46%));--mk-grid-high: var(--sys-high, hsl(221 100% 97%));--mk-grid-on-high: var(--sys-on-high, hsl(222 35% 16%));--mk-grid-on-card: var(--sys-on-card, hsl(221 27% 16%));--mk-grid-on-card-variant: var(--sys-on-card-variant, hsl(222 15% 43%));--mk-grid-on-background: var(--sys-on-background, hsl(222 20% 20%));--mk-grid-primary-15: var(--sys-primary-15, hsl(224 74% 53% / 15%))}:host .drag-container{cursor:grab}:host .drag-container:active{cursor:grabbing}:host-context(body:has(.cdk-drag-preview)) .drop-option{outline:1px dashed var(--mk-grid-outline)}:host-context(body:has(.cdk-drag-preview)) .drop-option:hover{outline:1px solid var(--mk-grid-outline);background-color:var(--mk-grid-high)}:host ui-menu>ui-button{border-bottom:1px solid var(--ui-outline-color, var(--mk-grid-outline))}:host .menu-title{font-size:1.2rem;font-weight:600;padding:0 calc(var(--mk-grid-gap) / 2) var(--mk-grid-gap) calc(var(--mk-grid-gap) / 2);border-bottom:1px solid var(--mk-grid-outline);display:flex;justify-content:space-between;align-items:center;gap:var(--mk-grid-gap)}:host .menu-sub-title{font-size:14px;font-weight:500;display:flex;justify-content:flex-start;align-items:center;gap:var(--mk-grid-gap);padding-left:calc(var(--mk-grid-gap) / 2);min-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .menu-sub-value{font-size:14px;font-weight:400;display:flex;justify-content:flex-end;align-items:center;gap:calc(var(--mk-grid-gap) / 2);padding-right:calc(var(--mk-grid-gap) / 2);min-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host{display:flex;flex-direction:column}.table-overflow{display:grid;overflow:auto;margin-top:10px;padding:0;position:relative}.table-overflow.compacted{justify-content:center}.table-overflow.mobile{border-radius:calc(var(--mk-grid-border-radius) / 2)}.table-overflow.mobile{overflow:hidden}.table-table-mobile,.table-table{display:grid;font-size:13px}.table-table-mobile{grid-template-columns:1fr 1fr}.table-header,.table-header-mobile{background:var(--mk-grid-primary);color:var(--mk-grid-on-primary);transition:background-color .2s ease;display:flex;flex-wrap:wrap;align-items:center;align-content:stretch;justify-content:center;-webkit-user-select:none;user-select:none;min-height:var(--table-min-height)}.table-header-mobile{padding:0 5px}.table-header-mobile-space{flex:1;height:100%;display:flex;align-items:center;justify-content:center}.table-header-mobile-text,.table-header-text{flex:1;font-weight:600;text-align:center;display:block;align-content:center}.table-header-mobile-text{text-align:start}.table-header-text{height:100%;border-radius:var(--mk-grid-border-radius);position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdk-drag-preview{font-size:14px!important;background:var(--mk-grid-high);color:var(--mk-grid-on-high);opacity:.6}.cdk-drop-list-receiving:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--mk-grid-info);filter:opacity(.5)}.cdk-drag-placeholder:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--mk-grid-primary)}.textVertical .table-header-text{writing-mode:vertical-lr;text-orientation:upright;letter-spacing:-5px;padding-bottom:5px;text-align:right;align-self:end;display:flex;justify-content:center;align-items:center;flex-wrap:wrap}.table-header-controls{width:6px;min-width:6px;max-width:6px;cursor:col-resize;height:100%;display:flex;align-items:center;justify-content:center}.table-ico-sort{font-size:10px;color:color-mix(in srgb,var(--mk-grid-secondary) 50%,var(--mk-grid-on-primary) 50%)}.table-ico-sort .asc{animation:aniSortUp 1s infinite cubic-bezier(.175,.885,.32,1.275)}.table-ico-sort .desc{animation:aniSortDown 1s infinite cubic-bezier(.175,.885,.32,1.275)}@keyframes aniSortUp{0%{transform:translateY(0) scale(1)}20%{transform:translateY(0) scale(1)}80%{transform:translateY(-3px) scale(1.1)}to{transform:translateY(0) scale(1)}}@keyframes aniSortDown{0%{transform:translateY(0) scale(1)}20%{transform:translateY(0) scale(1)}80%{transform:translateY(3px) scale(1.1)}to{transform:translateY(0) scale(1)}}.table-row,.table-row-mobile{display:flex;justify-content:space-between;align-items:center}.table-row{background:color-mix(in srgb,var(--mk-grid-primary) 10%,var(--mk-grid-background) 90%)}.table-row-mobile{margin-top:10px}.table-group{border-top-right-radius:calc(var(--mk-grid-border-radius) / 2);border-top-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-group:has(.table-group-collapse){border-bottom-right-radius:calc(var(--mk-grid-border-radius) / 2);border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-group.table-formated{padding-left:10px}.table-group-items-area{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;font-style:italic;color:color-mix(in srgb,var(--mk-grid-on-background) 60%,var(--mk-grid-background) 40%);overflow:hidden}.table-group-items-ico{transition:transform .3s ease;transform:rotate(180deg)}.table-group-name{flex:1;height:100%;display:flex;align-items:center}.table-group-collapse .table-group-items-ico{transition:transform .3s ease;transform:rotate(0);color:color-mix(in srgb,var(--mk-grid-primary) 60%,var(--mk-grid-background) 40%)}.table-formated{min-height:var(--table-min-height);padding:1px 2px;font-size:14px}.table-dados{min-height:var(--table-min-height);padding:1px 2px}.table-item{cursor:pointer}.table-item,.table-header{border-left:0px solid transparent;border-right:0px solid transparent}.table-header:first-child{border-top-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-item:last-child{border-bottom-right-radius:calc(var(--mk-grid-border-radius) / 2)}.header-last-col{border-top-right-radius:calc(var(--mk-grid-border-radius) / 2)}.table-table:not(.table-has-vertical-line) .table-item:nth-last-child(-n+1 of div.table-item-seletor){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-table:not(.table-has-vertical-line,.table-has-seletor) .table-dados:nth-last-child(-n+1 of.table-first-col){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-header:nth-last-child(-n+1 of div.table-vertical-line){border-bottom-left-radius:calc(var(--mk-grid-border-radius) / 2)}.table-header-mobile.table-vertical-line,.table-header.table-vertical-line,.table-item.table-vertical-line{background:var(--mk-grid-primary);color:var(--mk-grid-on-primary);display:flex;justify-content:center;align-items:center}.table-grupo-seletor,.table-item-seletor{display:flex;justify-content:center;align-items:center}.table-header-mobile.sortable .table-header-text,.table-header.sortable .table-header-text{cursor:pointer;-webkit-user-select:none;user-select:none}.table-header-mobile.sortable:hover,.table-header.sortable:hover,.table-header-mobile.sorted-asc,.table-header-mobile.sorted-desc,.table-header.sorted-asc,.table-header.sorted-desc{background:color-mix(in srgb,var(--mk-grid-secondary) 30%,var(--mk-grid-primary) 70%);color:var(--mk-grid-on-primary)}.table-row.table-errors,.table-row.table-loader{justify-content:center}.table-border-bottom-card{border-bottom:1px solid var(--mk-grid-card)}.table-border-left-darker{border-left:1px solid color-mix(in srgb,var(--mk-grid-card) 20%,transparent 80%)}.table-border-right-darker{border-right:1px solid color-mix(in srgb,var(--mk-grid-card) 20%,transparent 80%)}.table-border-left{border-left:1px solid var(--mk-grid-background)}.table-border-right{border-right:1px solid var(--mk-grid-background)}.table-item-mobile,.table-item{transition:background-color .2s cubic-bezier(.075,.82,.165,1);border-bottom:1px solid var(--mk-grid-background);position:relative}.table-item.hashue{background-color:hsl(var(--bghue) 100 var(--mk-grid-lum-10))}.table-item-mobile.odd:before,.table-item.odd:before,.table-item-mobile.even:before,.table-item.even:before,.table-item.table-bg-error:before{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;z-index:0;pointer-events:none;background:var(--mk-grid-background)}.table-item-mobile.odd:before,.table-item.odd:before{opacity:.2}.table-item-mobile.even:before,.table-item.even:before{opacity:.1}.table-item.table-bg-error:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;z-index:0;pointer-events:none;outline-offset:0px;outline:2px solid var(--mk-grid-error);background-color:var(--mk-grid-error);opacity:.04}.table-border-right-error{border-right:1px dashed color-mix(in srgb,var(--mk-grid-error) 50%,transparent 50%)}.table-styles{color:var(--mk-grid-on-card);background:color-mix(in srgb,var(--mk-grid-outline) 20%,var(--mk-grid-card) 80%);border-radius:calc(var(--mk-grid-border-radius) / 2)}.table-show-error{display:flex;justify-content:center;align-items:center;padding:16px;margin-top:10px}.table-topo-container{display:flex;flex-wrap:wrap;align-items:center;font-size:14px;padding:8px;gap:1rem}.table-actions-outside{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:8px}.table-top-right-container{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;flex:1}.table-collapse-ico{display:inline-block;transition:transform .3s}.table-collapse-ico.ativo{transition:transform .3s ease-in-out;transform:rotate(-180deg)}.table-filter-content{font-size:14px;padding:8px;overflow:hidden;transition:all .3s cubic-bezier(.075,.82,.165,1);position:relative;opacity:1}.table-filter-content.table-filter-hide{padding:0;opacity:0;margin-top:calc(var(--filter-height) * -1);transition:all .3s cubic-bezier(.075,.82,.165,1)}.table-filter-container:has(.table-filter-hide){pointer-events:none;-webkit-user-select:none;user-select:none}.table-conjunto-actions{position:relative;display:flex;align-items:stretch}.table-conjunto-actions>*{outline:1px solid var(--mk-grid-outline);outline-offset:-1px}.table-conjunto-actions>:first-child{border-radius:var(--mk-grid-border-radius);border-top-right-radius:0;border-bottom-right-radius:0}.table-conjunto-actions>:last-child{border-radius:0 7px 7px 0}.table-conjunto-actions-item{display:flex;align-items:center;justify-content:center;padding:0;min-height:40px}.table-inativo{color:var(--mk-grid-error)}.table-pagination-overflow{display:grid;align-items:center;overflow:auto;margin-top:10px}.table-pagination-overflow.compacted{margin-top:2px;justify-content:center}.table-pagination-container{display:flex;align-items:center;justify-content:space-between;padding:16px;flex-wrap:wrap;gap:16px;flex:1}.table-pagination-overflow.compacted .table-pagination-container{padding:2px 4px;gap:4px}.table-pagination-overflow.compacted.table-has-pages .table-pagination-controls{border-left:1px solid var(--mk-grid-card);border-right:1px solid var(--mk-grid-card)}.table-pagination-info{display:flex;flex-direction:column;color:var(--mk-grid-on-card-variant);font-size:12px}.table-pagination-controls{display:flex;align-items:center;gap:4px}.table-pagination-show{border-radius:var(--mk-grid-border-radius);min-width:47px;min-height:38px;display:flex;justify-content:center;align-items:center;font-size:12px}.table-pagination-per-page{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mk-grid-on-card-variant);flex-wrap:nowrap;white-space:nowrap}.table-pagination-per-page-select{--ui-width: 50px;font-size:12px;text-align:center}.table-performance{font-size:10px;font-style:italic}.compacted .table-pagination-range{display:none}.compacted .table-pagination-totais{font-size:10px}.compacted .table-performance{display:none}.table-empty{display:flex;justify-content:center;align-items:center;padding:16px}.table-info-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;border-left:4px solid var(--mk-grid-primary);padding:12px 16px;margin-top:10px}@media(max-width:768px){.table-pagination-container{flex-direction:column;align-items:stretch;padding:2px}.table-pagination-overflow.compacted .table-pagination-container{padding:0}.table-pagination-controls{justify-content:center}.table-pagination-info{flex-direction:row;justify-content:space-around;gap:10px}.table-pagination-per-page{justify-content:center}}@media(max-width:480px){.table-topo-container{flex-direction:column;align-items:stretch}.table-pagination-container{flex-wrap:wrap;justify-content:space-evenly}.table-small-screen-hide{display:none}}\n"] }]
|
|
7479
|
+
}], ctorParameters: () => [], propDecorators: { lista: [{ type: i0.Input, args: [{ isSignal: true, alias: "lista", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], filtro: [{ type: i0.Input, args: [{ isSignal: true, alias: "filtro", required: false }] }], minLineHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minLineHeight", required: false }] }, { type: i0.Output, args: ["minLineHeightChange"] }], isCompacted: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCompacted", required: false }] }, { type: i0.Output, args: ["isCompactedChange"] }], hasGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasGrid", required: false }] }, { type: i0.Output, args: ["hasGridChange"] }], hasVerticalLine: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasVerticalLine", required: false }] }, { type: i0.Output, args: ["hasVerticalLineChange"] }], hasSeletor: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasSeletor", required: false }] }, { type: i0.Output, args: ["hasSeletorChange"] }], gridSize: [{ type: i0.ViewChild, args: ['gridSize', { ...{ read: ElementRef }, isSignal: true }] }], gridfiltro: [{ type: i0.ViewChild, args: ['gridfiltro', { ...{ read: ElementRef }, isSignal: true }] }], filterContainer: [{ type: i0.ViewChild, args: ['filterContainer', { ...{ read: ElementRef }, isSignal: true }] }] } });
|
|
7480
|
+
|
|
7481
|
+
class GridCell {
|
|
7482
|
+
params;
|
|
7483
|
+
_masterCellService;
|
|
7484
|
+
constructor(inputToken, legacyInput) {
|
|
7485
|
+
const input = inputToken ?? legacyInput ?? undefined;
|
|
7486
|
+
this.params = signal(input, ...(ngDevMode ? [{ debugName: "params" }] : /* istanbul ignore next */ []));
|
|
7487
|
+
this._masterCellService = input?.servicoParams;
|
|
7488
|
+
if (this._masterCellService) {
|
|
7489
|
+
effect(() => { this.params.set(this._masterCellService?.gridParams() ?? input); });
|
|
7490
|
+
}
|
|
7491
|
+
}
|
|
7492
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridCell, deps: [{ token: GRID_PARAMS_TOKEN, optional: true }, { token: 'GRID_PARAMS', optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
7493
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: GridCell, isStandalone: true, selector: "lib-grid-cell", ngImport: i0, template: '', isInline: true });
|
|
7494
|
+
}
|
|
7495
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: GridCell, decorators: [{
|
|
7496
|
+
type: Component,
|
|
7497
|
+
args: [{
|
|
7498
|
+
selector: 'lib-grid-cell',
|
|
7499
|
+
template: '',
|
|
7500
|
+
}]
|
|
7501
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
7502
|
+
type: Optional
|
|
7503
|
+
}, {
|
|
7504
|
+
type: Inject,
|
|
7505
|
+
args: [GRID_PARAMS_TOKEN]
|
|
7506
|
+
}] }, { type: undefined, decorators: [{
|
|
7507
|
+
type: Optional
|
|
7508
|
+
}, {
|
|
7509
|
+
type: Inject,
|
|
7510
|
+
args: ['GRID_PARAMS']
|
|
7511
|
+
}] }] });
|
|
7512
|
+
|
|
6451
7513
|
// Tipos mais específicos, enuns, interfaces e funções uteis.
|
|
6452
7514
|
|
|
6453
7515
|
/**
|
|
6454
7516
|
* Generated bundle index. Do not edit.
|
|
6455
7517
|
*/
|
|
6456
7518
|
|
|
6457
|
-
export { BaseFieldsForm, BaseFieldsValues, CampoDe, FieldsGeneric, FiltroDe, FormAction, FormFilter, FormNoAction, FormatedValues, Formulario, IField, IRegraTipo, LibUtil, Regra, SingleValues, UiButton, UiCheckBox, UiChip, UiDropZone, UiFileList, UiListErrors, UiLoading, UiMenu, UiProcurar, UiProgress, UiSelect, UiSlide };
|
|
7519
|
+
export { BaseFieldsForm, BaseFieldsValues, CampoDe, FieldsGeneric, FiltroDe, FormAction, FormFilter, FormNoAction, FormatedValues, Formulario, GRID_PARAMS_TOKEN, GridCell, IField, IGridFilterType, IRegraTipo, LibUtil, MkGrid, PAGINATION_OPTIONS, Regra, ScreenMode, SingleValues, UiButton, UiCheckBox, UiChip, UiDropZone, UiFileList, UiListErrors, UiLoading, UiMenu, UiProcurar, UiProgress, UiSelect, UiSlide };
|
|
6458
7520
|
//# sourceMappingURL=masterkeymaterial-ui.mjs.map
|