@seniorsistemas/tmsx-angular-components 2.0.0 → 2.1.0

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,2 +1,3 @@
1
1
  export { GridEditableNestedComponent, GridEditableNestedModule } from "./grid-editable-nested/index";
2
2
  export { PainelProcessamentoComponent, PainelProcessamentoModule } from "./painel-processamento/index";
3
+ export { SidebarDinamicaComponent, SidebarDinamicaModule } from "./sidebar-dinamica/index";
@@ -0,0 +1,2 @@
1
+ export { SidebarDinamicaComponent } from "./sidebar-dinamica.component";
2
+ export { SidebarDinamicaModule } from "./sidebar-dinamica.module";
@@ -0,0 +1,40 @@
1
+ import { EventEmitter, OnChanges, TemplateRef } from '@angular/core';
2
+ import { SidebarComponentizadoAction, SidebarComponentizadoActionEvent, SidebarComponentizadoTab } from './sidebar';
3
+ import { ButtonPriority } from '@seniorsistemas/angular-components/button';
4
+ import * as i0 from "@angular/core";
5
+ export declare class SidebarDinamicaComponent implements OnChanges {
6
+ showSidebar: boolean;
7
+ showLoader: boolean;
8
+ serverError: boolean;
9
+ title: string;
10
+ subtitle: string;
11
+ subtitleClass: string;
12
+ closeButtonTitle: string;
13
+ tabs: SidebarComponentizadoTab[];
14
+ activeTabIndex: number;
15
+ showFooter: boolean;
16
+ footerBadgeLabel: string;
17
+ footerBadgeIconClass: string;
18
+ actions: SidebarComponentizadoAction[];
19
+ footerTemplate?: TemplateRef<unknown>;
20
+ errorIconClass: string;
21
+ errorTitle: string;
22
+ errorDescription: string;
23
+ errorRetryLabel: string;
24
+ closeSidebar: EventEmitter<void>;
25
+ retryLoad: EventEmitter<void>;
26
+ actionClick: EventEmitter<SidebarComponentizadoActionEvent>;
27
+ tabChange: EventEmitter<number>;
28
+ ngOnChanges(): void;
29
+ get visibleTabs(): SidebarComponentizadoTab[];
30
+ get visibleActions(): SidebarComponentizadoAction[];
31
+ onCloseClick(): void;
32
+ onRetryClick(): void;
33
+ onTabChange(index: number): void;
34
+ onActionButtonClick(action: SidebarComponentizadoAction): void;
35
+ getButtonPriority(action: SidebarComponentizadoAction): ButtonPriority;
36
+ trackByTabId(index: number, tab: SidebarComponentizadoTab): string;
37
+ trackByActionId(index: number, action: SidebarComponentizadoAction): string;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidebarDinamicaComponent, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidebarDinamicaComponent, "tmsx-sidebar-dinamica", never, { "showSidebar": { "alias": "showSidebar"; "required": false; }; "showLoader": { "alias": "showLoader"; "required": false; }; "serverError": { "alias": "serverError"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "subtitleClass": { "alias": "subtitleClass"; "required": false; }; "closeButtonTitle": { "alias": "closeButtonTitle"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "activeTabIndex": { "alias": "activeTabIndex"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "footerBadgeLabel": { "alias": "footerBadgeLabel"; "required": false; }; "footerBadgeIconClass": { "alias": "footerBadgeIconClass"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "errorIconClass": { "alias": "errorIconClass"; "required": false; }; "errorTitle": { "alias": "errorTitle"; "required": false; }; "errorDescription": { "alias": "errorDescription"; "required": false; }; "errorRetryLabel": { "alias": "errorRetryLabel"; "required": false; }; }, { "closeSidebar": "closeSidebar"; "retryLoad": "retryLoad"; "actionClick": "actionClick"; "tabChange": "tabChange"; }, never, never, false, never>;
40
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./sidebar-dinamica.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@seniorsistemas/angular-components/loading-state";
5
+ import * as i4 from "@seniorsistemas/angular-components/button";
6
+ import * as i5 from "@seniorsistemas/angular-components/empty-state";
7
+ import * as i6 from "primeng/tabview";
8
+ export declare class SidebarDinamicaModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidebarDinamicaModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SidebarDinamicaModule, [typeof i1.SidebarDinamicaComponent], [typeof i2.CommonModule, typeof i3.LoadingStateModule, typeof i4.ButtonModule, typeof i5.EmptyStateModule, typeof i6.TabViewModule], [typeof i1.SidebarDinamicaComponent]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<SidebarDinamicaModule>;
12
+ }
@@ -0,0 +1,21 @@
1
+ import { TemplateRef } from "@angular/core";
2
+ export interface SidebarComponentizadoTab {
3
+ id: string;
4
+ header: string;
5
+ template?: TemplateRef<any>;
6
+ context?: any;
7
+ content?: string;
8
+ disabled?: boolean;
9
+ hidden?: boolean;
10
+ }
11
+ export interface SidebarComponentizadoAction {
12
+ id: string;
13
+ label: string;
14
+ priority?: string;
15
+ iconClass?: string;
16
+ disabled?: boolean;
17
+ hidden?: boolean;
18
+ }
19
+ export interface SidebarComponentizadoActionEvent {
20
+ actionId: string;
21
+ }
@@ -1,3 +1,4 @@
1
1
  export { GridEditableNestedComponent, GridEditableNestedModule } from "./grid-editable-nested/index";
2
2
  export { PainelProcessamentoComponent, PainelProcessamentoModule } from "./painel-processamento/index";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3JjL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBHcmlkRWRpdGFibGVOZXN0ZWRDb21wb25lbnQsIEdyaWRFZGl0YWJsZU5lc3RlZE1vZHVsZSB9IGZyb20gXCIuL2dyaWQtZWRpdGFibGUtbmVzdGVkL2luZGV4XCI7XG5leHBvcnQgeyBQYWluZWxQcm9jZXNzYW1lbnRvQ29tcG9uZW50LCBQYWluZWxQcm9jZXNzYW1lbnRvTW9kdWxlIH0gZnJvbSBcIi4vcGFpbmVsLXByb2Nlc3NhbWVudG8vaW5kZXhcIjtcbiJdfQ==
3
+ export { SidebarDinamicaComponent, SidebarDinamicaModule } from "./sidebar-dinamica/index";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3JjL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBHcmlkRWRpdGFibGVOZXN0ZWRDb21wb25lbnQsIEdyaWRFZGl0YWJsZU5lc3RlZE1vZHVsZSB9IGZyb20gXCIuL2dyaWQtZWRpdGFibGUtbmVzdGVkL2luZGV4XCI7XG5leHBvcnQgeyBQYWluZWxQcm9jZXNzYW1lbnRvQ29tcG9uZW50LCBQYWluZWxQcm9jZXNzYW1lbnRvTW9kdWxlIH0gZnJvbSBcIi4vcGFpbmVsLXByb2Nlc3NhbWVudG8vaW5kZXhcIjtcbmV4cG9ydCB7IFNpZGViYXJEaW5hbWljYUNvbXBvbmVudCwgU2lkZWJhckRpbmFtaWNhTW9kdWxlIH0gZnJvbSBcIi4vc2lkZWJhci1kaW5hbWljYS9pbmRleFwiOyJdfQ==
@@ -0,0 +1,3 @@
1
+ export { SidebarDinamicaComponent } from "./sidebar-dinamica.component";
2
+ export { SidebarDinamicaModule } from "./sidebar-dinamica.module";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvc3JjL2NvbXBvbmVudHMvc2lkZWJhci1kaW5hbWljYS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNpZGViYXJEaW5hbWljYUNvbXBvbmVudCB9IGZyb20gXCIuL3NpZGViYXItZGluYW1pY2EuY29tcG9uZW50XCI7XG5leHBvcnQgeyBTaWRlYmFyRGluYW1pY2FNb2R1bGUgfSBmcm9tIFwiLi9zaWRlYmFyLWRpbmFtaWNhLm1vZHVsZVwiOyJdfQ==
@@ -0,0 +1,116 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@seniorsistemas/angular-components/loading-state";
5
+ import * as i3 from "@seniorsistemas/angular-components/button";
6
+ import * as i4 from "@seniorsistemas/angular-components/empty-state";
7
+ import * as i5 from "primeng/tabview";
8
+ export class SidebarDinamicaComponent {
9
+ showSidebar = false;
10
+ showLoader = false;
11
+ serverError = false;
12
+ title = '';
13
+ subtitle = '';
14
+ subtitleClass = 'chave-acesso sds-readonly';
15
+ closeButtonTitle = 'Fechar';
16
+ tabs = [];
17
+ activeTabIndex = 0;
18
+ showFooter = true;
19
+ footerBadgeLabel = '';
20
+ footerBadgeIconClass = 'fal fa-check-circle';
21
+ actions = [];
22
+ footerTemplate;
23
+ errorIconClass = 'fa fa-exclamation-triangle';
24
+ errorTitle = 'Erro ao carregar dados';
25
+ errorDescription = 'Ocorreu um erro no servidor.';
26
+ errorRetryLabel = 'Tentar novamente';
27
+ closeSidebar = new EventEmitter();
28
+ retryLoad = new EventEmitter();
29
+ actionClick = new EventEmitter();
30
+ tabChange = new EventEmitter();
31
+ ngOnChanges() {
32
+ const lastTabIndex = Math.max(this.visibleTabs.length - 1, 0);
33
+ if (this.activeTabIndex > lastTabIndex) {
34
+ this.activeTabIndex = lastTabIndex;
35
+ }
36
+ }
37
+ get visibleTabs() {
38
+ return this.tabs.filter((tab) => !tab.hidden);
39
+ }
40
+ get visibleActions() {
41
+ return this.actions.filter((action) => !action.hidden);
42
+ }
43
+ onCloseClick() {
44
+ this.closeSidebar.emit();
45
+ }
46
+ onRetryClick() {
47
+ this.retryLoad.emit();
48
+ }
49
+ onTabChange(index) {
50
+ this.activeTabIndex = index;
51
+ this.tabChange.emit(index);
52
+ }
53
+ onActionButtonClick(action) {
54
+ this.actionClick.emit({ actionId: action.id });
55
+ }
56
+ getButtonPriority(action) {
57
+ return action.priority || 'default';
58
+ }
59
+ trackByTabId(index, tab) {
60
+ return tab.id || index.toString();
61
+ }
62
+ trackByActionId(index, action) {
63
+ return action.id || index.toString();
64
+ }
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
66
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SidebarDinamicaComponent, selector: "tmsx-sidebar-dinamica", inputs: { showSidebar: "showSidebar", showLoader: "showLoader", serverError: "serverError", title: "title", subtitle: "subtitle", subtitleClass: "subtitleClass", closeButtonTitle: "closeButtonTitle", tabs: "tabs", activeTabIndex: "activeTabIndex", showFooter: "showFooter", footerBadgeLabel: "footerBadgeLabel", footerBadgeIconClass: "footerBadgeIconClass", actions: "actions", footerTemplate: "footerTemplate", errorIconClass: "errorIconClass", errorTitle: "errorTitle", errorDescription: "errorDescription", errorRetryLabel: "errorRetryLabel" }, outputs: { closeSidebar: "closeSidebar", retryLoad: "retryLoad", actionClick: "actionClick", tabChange: "tabChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"detalhes-drawer\" [class.drawer-open]=\"showSidebar\">\n\n <div class=\"loading\">\n <s-loading-state [loading]=\"showLoader\" [blockWindow]=\"true\"></s-loading-state>\n </div>\n\n <div class=\"drawer-header\">\n <div class=\"drawer-header-info\">\n <h2 class=\"drawer-title\">{{ title }}</h2>\n @if (subtitle) {\n <p [class]=\"subtitleClass\">{{ subtitle }}</p>\n }\n </div>\n <button class=\"drawer-close-btn\" type=\"button\" (click)=\"onCloseClick()\" [title]=\"closeButtonTitle\">\n <i class=\"fal fa-times\"></i>\n </button>\n </div>\n\n @if (serverError && !showLoader) {\n <s-empty-state\n [iconClass]=\"errorIconClass\"\n [title]=\"errorTitle\"\n [primaryActionLabel]=\"errorRetryLabel\"\n (primaryAction)=\"onRetryClick()\"\n [description]=\"errorDescription\">\n </s-empty-state>\n }\n\n @if (!serverError && visibleTabs.length) {\n <p-tabView [(activeIndex)]=\"activeTabIndex\" (onChange)=\"onTabChange($event.index)\">\n @for (tab of visibleTabs; track trackByTabId($index, tab); let i = $index) {\n <p-tabPanel [header]=\"tab.header\" [disabled]=\"!!tab.disabled\">\n @if (tab.template) {\n <ng-container\n [ngTemplateOutlet]=\"tab.template\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.context, context: tab.context, tab: tab, index: i }\">\n </ng-container>\n }\n @if (!tab.template && tab.content) {\n <ng-container>{{ tab.content }}</ng-container>\n }\n </p-tabPanel>\n }\n </p-tabView>\n }\n\n @if (showFooter) {\n <div class=\"drawer-footer\">\n @if (footerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ actions: visibleActions }\">\n </ng-container>\n }\n @if (!footerTemplate && footerBadgeLabel) {\n <span class=\"badge-analisado\">\n @if (footerBadgeIconClass) {\n <i [class]=\"footerBadgeIconClass\"></i>\n }\n {{ footerBadgeLabel }}\n </span>\n }\n\n <div class=\"drawer-footer-actions\">\n @for (action of visibleActions; track trackByActionId($index, action)) {\n <s-button\n type=\"button\"\n [priority]=\"getButtonPriority(action)\"\n [iconClass]=\"action.iconClass || ''\"\n [label]=\"action.label\"\n [disabled]=\"!!action.disabled\"\n (onClick)=\"onActionButtonClick(action)\">\n </s-button>\n }\n </div>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}.loading{position:absolute;margin-top:50%}.detalhes-drawer{position:fixed!important;top:0;right:0;z-index:99999!important;background:#fff;box-shadow:-4px 0 16px #0000001f;width:50vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;transform:translate(100%);transition:transform .3s ease-in-out;padding:16px 20px}.detalhes-drawer.drawer-open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;flex-shrink:0}.drawer-header-info{min-width:0;flex:1}.drawer-title{margin:0 0 4px;font-size:16px;font-weight:600;color:#333}.drawer-close-btn{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:4px;color:#666;font-size:18px;line-height:1;transition:background .15s}.drawer-close-btn:hover{background:#f0f0f0;color:#333}:host ::ng-deep .detalhes-drawer .p-tabview{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;min-height:0}:host ::ng-deep .detalhes-drawer .p-tabview .p-tabview-panels{flex:1 1 auto;overflow-y:auto;padding-bottom:88px}.drawer-footer{flex-shrink:0;border-top:1px solid #e9ecef;padding:12px 0;display:flex;flex-direction:column;gap:10px;position:absolute;bottom:0;width:calc(100% - 40px);background:#fff}.drawer-footer-actions{display:flex;flex-wrap:wrap;gap:8px}.badge-analisado{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:999px;background-color:#e8f7ed;color:#1b7f3b;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading", "progressBarMode", "progressBarValue", "progressBarLabel"] }, { kind: "component", type: i3.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel"], outputs: ["clicked"] }, { kind: "component", type: i4.EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "component", type: i5.TabView, selector: "p-tabView, p-tabview", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i5.TabPanel, selector: "p-tabPanel, p-tabpanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }] });
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaComponent, decorators: [{
69
+ type: Component,
70
+ args: [{ selector: 'tmsx-sidebar-dinamica', template: "<div class=\"detalhes-drawer\" [class.drawer-open]=\"showSidebar\">\n\n <div class=\"loading\">\n <s-loading-state [loading]=\"showLoader\" [blockWindow]=\"true\"></s-loading-state>\n </div>\n\n <div class=\"drawer-header\">\n <div class=\"drawer-header-info\">\n <h2 class=\"drawer-title\">{{ title }}</h2>\n @if (subtitle) {\n <p [class]=\"subtitleClass\">{{ subtitle }}</p>\n }\n </div>\n <button class=\"drawer-close-btn\" type=\"button\" (click)=\"onCloseClick()\" [title]=\"closeButtonTitle\">\n <i class=\"fal fa-times\"></i>\n </button>\n </div>\n\n @if (serverError && !showLoader) {\n <s-empty-state\n [iconClass]=\"errorIconClass\"\n [title]=\"errorTitle\"\n [primaryActionLabel]=\"errorRetryLabel\"\n (primaryAction)=\"onRetryClick()\"\n [description]=\"errorDescription\">\n </s-empty-state>\n }\n\n @if (!serverError && visibleTabs.length) {\n <p-tabView [(activeIndex)]=\"activeTabIndex\" (onChange)=\"onTabChange($event.index)\">\n @for (tab of visibleTabs; track trackByTabId($index, tab); let i = $index) {\n <p-tabPanel [header]=\"tab.header\" [disabled]=\"!!tab.disabled\">\n @if (tab.template) {\n <ng-container\n [ngTemplateOutlet]=\"tab.template\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.context, context: tab.context, tab: tab, index: i }\">\n </ng-container>\n }\n @if (!tab.template && tab.content) {\n <ng-container>{{ tab.content }}</ng-container>\n }\n </p-tabPanel>\n }\n </p-tabView>\n }\n\n @if (showFooter) {\n <div class=\"drawer-footer\">\n @if (footerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ actions: visibleActions }\">\n </ng-container>\n }\n @if (!footerTemplate && footerBadgeLabel) {\n <span class=\"badge-analisado\">\n @if (footerBadgeIconClass) {\n <i [class]=\"footerBadgeIconClass\"></i>\n }\n {{ footerBadgeLabel }}\n </span>\n }\n\n <div class=\"drawer-footer-actions\">\n @for (action of visibleActions; track trackByActionId($index, action)) {\n <s-button\n type=\"button\"\n [priority]=\"getButtonPriority(action)\"\n [iconClass]=\"action.iconClass || ''\"\n [label]=\"action.label\"\n [disabled]=\"!!action.disabled\"\n (onClick)=\"onActionButtonClick(action)\">\n </s-button>\n }\n </div>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}.loading{position:absolute;margin-top:50%}.detalhes-drawer{position:fixed!important;top:0;right:0;z-index:99999!important;background:#fff;box-shadow:-4px 0 16px #0000001f;width:50vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;transform:translate(100%);transition:transform .3s ease-in-out;padding:16px 20px}.detalhes-drawer.drawer-open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;flex-shrink:0}.drawer-header-info{min-width:0;flex:1}.drawer-title{margin:0 0 4px;font-size:16px;font-weight:600;color:#333}.drawer-close-btn{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:4px;color:#666;font-size:18px;line-height:1;transition:background .15s}.drawer-close-btn:hover{background:#f0f0f0;color:#333}:host ::ng-deep .detalhes-drawer .p-tabview{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;min-height:0}:host ::ng-deep .detalhes-drawer .p-tabview .p-tabview-panels{flex:1 1 auto;overflow-y:auto;padding-bottom:88px}.drawer-footer{flex-shrink:0;border-top:1px solid #e9ecef;padding:12px 0;display:flex;flex-direction:column;gap:10px;position:absolute;bottom:0;width:calc(100% - 40px);background:#fff}.drawer-footer-actions{display:flex;flex-wrap:wrap;gap:8px}.badge-analisado{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:999px;background-color:#e8f7ed;color:#1b7f3b;font-weight:600}\n"] }]
71
+ }], propDecorators: { showSidebar: [{
72
+ type: Input
73
+ }], showLoader: [{
74
+ type: Input
75
+ }], serverError: [{
76
+ type: Input
77
+ }], title: [{
78
+ type: Input
79
+ }], subtitle: [{
80
+ type: Input
81
+ }], subtitleClass: [{
82
+ type: Input
83
+ }], closeButtonTitle: [{
84
+ type: Input
85
+ }], tabs: [{
86
+ type: Input
87
+ }], activeTabIndex: [{
88
+ type: Input
89
+ }], showFooter: [{
90
+ type: Input
91
+ }], footerBadgeLabel: [{
92
+ type: Input
93
+ }], footerBadgeIconClass: [{
94
+ type: Input
95
+ }], actions: [{
96
+ type: Input
97
+ }], footerTemplate: [{
98
+ type: Input
99
+ }], errorIconClass: [{
100
+ type: Input
101
+ }], errorTitle: [{
102
+ type: Input
103
+ }], errorDescription: [{
104
+ type: Input
105
+ }], errorRetryLabel: [{
106
+ type: Input
107
+ }], closeSidebar: [{
108
+ type: Output
109
+ }], retryLoad: [{
110
+ type: Output
111
+ }], actionClick: [{
112
+ type: Output
113
+ }], tabChange: [{
114
+ type: Output
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1kaW5hbWljYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvc3JjL2NvbXBvbmVudHMvc2lkZWJhci1kaW5hbWljYS9zaWRlYmFyLWRpbmFtaWNhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYi9zcmMvY29tcG9uZW50cy9zaWRlYmFyLWRpbmFtaWNhL3NpZGViYXItZGluYW1pY2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVMvRixNQUFNLE9BQU8sd0JBQXdCO0lBRTFCLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRXBCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsYUFBYSxHQUFHLDJCQUEyQixDQUFDO0lBQzVDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztJQUU1QixJQUFJLEdBQStCLEVBQUUsQ0FBQztJQUN0QyxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDbEIsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLG9CQUFvQixHQUFHLHFCQUFxQixDQUFDO0lBQzdDLE9BQU8sR0FBa0MsRUFBRSxDQUFDO0lBQzVDLGNBQWMsQ0FBd0I7SUFFdEMsY0FBYyxHQUFHLDRCQUE0QixDQUFDO0lBQzlDLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztJQUN0QyxnQkFBZ0IsR0FBRyw4QkFBOEIsQ0FBQztJQUNsRCxlQUFlLEdBQUcsa0JBQWtCLENBQUM7SUFFcEMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDeEMsU0FBUyxHQUFHLElBQUks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cG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNpZGViYXJDb21wb25lbnRpemFkb0FjdGlvbiwgU2lkZWJhckNvbXBvbmVudGl6YWRvQWN0aW9uRXZlbnQsIFNpZGViYXJDb21wb25lbnRpemFkb1RhYiB9IGZyb20gJy4vc2lkZWJhcic7XG5pbXBvcnQgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG1zeC1zaWRlYmFyLWRpbmFtaWNhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGViYXItZGluYW1pY2EuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaWRlYmFyLWRpbmFtaWNhLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2lkZWJhckRpbmFtaWNhQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBzaG93U2lkZWJhciA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93TG9hZGVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlcnZlckVycm9yID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3VidGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3VidGl0bGVDbGFzcyA9ICdjaGF2ZS1hY2Vzc28gc2RzLXJlYWRvbmx5JztcbiAgQElucHV0KCkgY2xvc2VCdXR0b25UaXRsZSA9ICdGZWNoYXInO1xuXG4gIEBJbnB1dCgpIHRhYnM6IFNpZGViYXJDb21wb25lbnRpemFkb1RhYltdID0gW107XG4gIEBJbnB1dCgpIGFjdGl2ZVRhYkluZGV4ID0gMDtcblxuICBASW5wdXQoKSBzaG93Rm9vdGVyID0gdHJ1ZTtcbiAgQElucHV0KCkgZm9vdGVyQmFkZ2VMYWJlbCA9ICcnO1xuICBASW5wdXQoKSBmb290ZXJCYWRnZUljb25DbGFzcyA9ICdmYWwgZmEtY2hlY2stY2lyY2xlJztcbiAgQElucHV0KCkgYWN0aW9uczogU2lkZWJhckNvbXBvbmVudGl6YWRvQWN0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgZm9vdGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBlcnJvckljb25DbGFzcyA9ICdmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XG4gIEBJbnB1dCgpIGVycm9yVGl0bGUgPSAnRXJybyBhbyBjYXJyZWdhciBkYWRvcyc7XG4gIEBJbnB1dCgpIGVycm9yRGVzY3JpcHRpb24gPSAnT2NvcnJldSB1bSBlcnJvIG5vIHNlcnZpZG9yLic7XG4gIEBJbnB1dCgpIGVycm9yUmV0cnlMYWJlbCA9ICdUZW50YXIgbm92YW1lbnRlJztcblxuICBAT3V0cHV0KCkgY2xvc2VTaWRlYmFyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmV0cnlMb2FkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFNpZGViYXJDb21wb25lbnRpemFkb0FjdGlvbkV2ZW50PigpO1xuICBAT3V0cHV0KCkgdGFiQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGxhc3RUYWJJbmRleCA9IE1hdGgubWF4KHRoaXMudmlzaWJsZVRhYnMubGVuZ3RoIC0gMSwgMCk7XG5cbiAgICBpZiAodGhpcy5hY3RpdmVUYWJJbmRleCA+IGxhc3RUYWJJbmRleCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGxhc3RUYWJJbmRleDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpc2libGVUYWJzKCk6IFNpZGViYXJDb21wb25lbnRpemFkb1RhYltdIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLmZpbHRlcigodGFiKSA9PiAhdGFiLmhpZGRlbik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpc2libGVBY3Rpb25zKCk6IFNpZGViYXJDb21wb25lbnRpemFkb0FjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zLmZpbHRlcigoYWN0aW9uKSA9PiAhYWN0aW9uLmhpZGRlbik7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VTaWRlYmFyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblJldHJ5Q2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXRyeUxvYWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uVGFiQ2hhbmdlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgdGhpcy50YWJDaGFuZ2UuZW1pdChpbmRleCk7XG4gIH1cblxuICBwdWJsaWMgb25BY3Rpb25CdXR0b25DbGljayhhY3Rpb246IFNpZGViYXJDb21wb25lbnRpemFkb0FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IGFjdGlvbklkOiBhY3Rpb24uaWQgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QnV0dG9uUHJpb3JpdHkoYWN0aW9uOiBTaWRlYmFyQ29tcG9uZW50aXphZG9BY3Rpb24pOiBCdXR0b25Qcmlvcml0eSB7XG4gICAgcmV0dXJuIGFjdGlvbi5wcmlvcml0eSBhcyBCdXR0b25Qcmlvcml0eSB8fCAnZGVmYXVsdCcgYXMgQnV0dG9uUHJpb3JpdHk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeVRhYklkKGluZGV4OiBudW1iZXIsIHRhYjogU2lkZWJhckNvbXBvbmVudGl6YWRvVGFiKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGFiLmlkIHx8IGluZGV4LnRvU3RyaW5nKCk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUFjdGlvbklkKGluZGV4OiBudW1iZXIsIGFjdGlvbjogU2lkZWJhckNvbXBvbmVudGl6YWRvQWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWN0aW9uLmlkIHx8IGluZGV4LnRvU3RyaW5nKCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImRldGFsaGVzLWRyYXdlclwiIFtjbGFzcy5kcmF3ZXItb3Blbl09XCJzaG93U2lkZWJhclwiPlxuXG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nXCI+XG4gICAgPHMtbG9hZGluZy1zdGF0ZSBbbG9hZGluZ109XCJzaG93TG9hZGVyXCIgW2Jsb2NrV2luZG93XT1cInRydWVcIj48L3MtbG9hZGluZy1zdGF0ZT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRyYXdlci1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWhlYWRlci1pbmZvXCI+XG4gICAgICA8aDIgY2xhc3M9XCJkcmF3ZXItdGl0bGVcIj57eyB0aXRsZSB9fTwvaDI+XG4gICAgICBAaWYgKHN1YnRpdGxlKSB7XG4gICAgICAgIDxwIFtjbGFzc109XCJzdWJ0aXRsZUNsYXNzXCI+e3sgc3VidGl0bGUgfX08L3A+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImRyYXdlci1jbG9zZS1idG5cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2xvc2VDbGljaygpXCIgW3RpdGxlXT1cImNsb3NlQnV0dG9uVGl0bGVcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmFsIGZhLXRpbWVzXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICBAaWYgKHNlcnZlckVycm9yICYmICFzaG93TG9hZGVyKSB7XG4gICAgPHMtZW1wdHktc3RhdGVcbiAgICAgIFtpY29uQ2xhc3NdPVwiZXJyb3JJY29uQ2xhc3NcIlxuICAgICAgW3RpdGxlXT1cImVycm9yVGl0bGVcIlxuICAgICAgW3ByaW1hcnlBY3Rpb25MYWJlbF09XCJlcnJvclJldHJ5TGFiZWxcIlxuICAgICAgKHByaW1hcnlBY3Rpb24pPVwib25SZXRyeUNsaWNrKClcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cImVycm9yRGVzY3JpcHRpb25cIj5cbiAgICA8L3MtZW1wdHktc3RhdGU+XG4gIH1cblxuICBAaWYgKCFzZXJ2ZXJFcnJvciAmJiB2aXNpYmxlVGFicy5sZW5ndGgpIHtcbiAgICA8cC10YWJWaWV3IFsoYWN0aXZlSW5kZXgpXT1cImFjdGl2ZVRhYkluZGV4XCIgKG9uQ2hhbmdlKT1cIm9uVGFiQ2hhbmdlKCRldmVudC5pbmRleClcIj5cbiAgICAgIEBmb3IgKHRhYiBvZiB2aXNpYmxlVGFiczsgdHJhY2sgdHJhY2tCeVRhYklkKCRpbmRleCwgdGFiKTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPHAtdGFiUGFuZWwgW2hlYWRlcl09XCJ0YWIuaGVhZGVyXCIgW2Rpc2FibGVkXT1cIiEhdGFiLmRpc2FibGVkXCI+XG4gICAgICAgICAgQGlmICh0YWIudGVtcGxhdGUpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0YWIuY29udGV4dCwgY29udGV4dDogdGFiLmNvbnRleHQsIHRhYjogdGFiLCBpbmRleDogaSB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmICghdGFiLnRlbXBsYXRlICYmIHRhYi5jb250ZW50KSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyPnt7IHRhYi5jb250ZW50IH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgfVxuICAgICAgICA8L3AtdGFiUGFuZWw+XG4gICAgICB9XG4gICAgPC9wLXRhYlZpZXc+XG4gIH1cblxuICBAaWYgKHNob3dGb290ZXIpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWZvb3RlclwiPlxuICAgICAgQGlmIChmb290ZXJUZW1wbGF0ZSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGFjdGlvbnM6IHZpc2libGVBY3Rpb25zIH1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgICBAaWYgKCFmb290ZXJUZW1wbGF0ZSAmJiBmb290ZXJCYWRnZUxhYmVsKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UtYW5hbGlzYWRvXCI+XG4gICAgICAgICAgQGlmIChmb290ZXJCYWRnZUljb25DbGFzcykge1xuICAgICAgICAgICAgPGkgW2NsYXNzXT1cImZvb3RlckJhZGdlSWNvbkNsYXNzXCI+PC9pPlxuICAgICAgICAgIH1cbiAgICAgICAgICB7eyBmb290ZXJCYWRnZUxhYmVsIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1mb290ZXItYWN0aW9uc1wiPlxuICAgICAgICBAZm9yIChhY3Rpb24gb2YgdmlzaWJsZUFjdGlvbnM7IHRyYWNrIHRyYWNrQnlBY3Rpb25JZCgkaW5kZXgsIGFjdGlvbikpIHtcbiAgICAgICAgICA8cy1idXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW3ByaW9yaXR5XT1cImdldEJ1dHRvblByaW9yaXR5KGFjdGlvbilcIlxuICAgICAgICAgICAgW2ljb25DbGFzc109XCJhY3Rpb24uaWNvbkNsYXNzIHx8ICcnXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJhY3Rpb24ubGFiZWxcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhYWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uQWN0aW9uQnV0dG9uQ2xpY2soYWN0aW9uKVwiPlxuICAgICAgICAgIDwvcy1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG5cbjwvZGl2PlxuIl19
@@ -0,0 +1,41 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { SidebarDinamicaComponent } from "./sidebar-dinamica.component";
3
+ import { TabViewModule } from 'primeng/tabview';
4
+ import { LoadingStateModule } from "@seniorsistemas/angular-components/loading-state";
5
+ import { CommonModule } from "@angular/common";
6
+ import { ButtonModule } from "@seniorsistemas/angular-components/button";
7
+ import { EmptyStateModule } from "@seniorsistemas/angular-components/empty-state";
8
+ import * as i0 from "@angular/core";
9
+ export class SidebarDinamicaModule {
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, declarations: [SidebarDinamicaComponent], imports: [CommonModule,
12
+ LoadingStateModule,
13
+ ButtonModule,
14
+ EmptyStateModule,
15
+ TabViewModule], exports: [SidebarDinamicaComponent] });
16
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, imports: [CommonModule,
17
+ LoadingStateModule,
18
+ ButtonModule,
19
+ EmptyStateModule,
20
+ TabViewModule] });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, decorators: [{
23
+ type: NgModule,
24
+ args: [{
25
+ imports: [
26
+ CommonModule,
27
+ LoadingStateModule,
28
+ ButtonModule,
29
+ EmptyStateModule,
30
+ TabViewModule
31
+ ],
32
+ declarations: [
33
+ SidebarDinamicaComponent
34
+ ],
35
+ providers: [],
36
+ exports: [
37
+ SidebarDinamicaComponent
38
+ ],
39
+ }]
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1kaW5hbWljYS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvc3JjL2NvbXBvbmVudHMvc2lkZWJhci1kaW5hbWljYS9zaWRlYmFyLWRpbmFtaWNhLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOztBQWtCbEYsTUFBTSxPQUFPLHFCQUFxQjt3R0FBckIscUJBQXFCO3lHQUFyQixxQkFBcUIsaUJBUDFCLHdCQUF3QixhQVB4QixZQUFZO1lBQ2xCLGtCQUFrQjtZQUNaLFlBQVk7WUFDWixnQkFBZ0I7WUFDdEIsYUFBYSxhQU9QLHdCQUF3Qjt5R0FHbkIscUJBQXFCLFlBZDFCLFlBQVk7WUFDbEIsa0JBQWtCO1lBQ1osWUFBWTtZQUNaLGdCQUFnQjtZQUN0QixhQUFhOzs0RkFVRixxQkFBcUI7a0JBaEJqQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNsQixrQkFBa0I7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ3RCLGFBQWE7cUJBQ1Y7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHdCQUF3QjtxQkFDM0I7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxFQUFFO3dCQUNMLHdCQUF3QjtxQkFDM0I7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTaWRlYmFyRGluYW1pY2FDb21wb25lbnQgfSBmcm9tIFwiLi9zaWRlYmFyLWRpbmFtaWNhLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGFiVmlld01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFidmlldyc7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGVNb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2FkaW5nLXN0YXRlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b25cIjtcbmltcG9ydCB7IEVtcHR5U3RhdGVNb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9lbXB0eS1zdGF0ZVwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuXHRcdExvYWRpbmdTdGF0ZU1vZHVsZSxcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgICBFbXB0eVN0YXRlTW9kdWxlLFxuXHRcdFRhYlZpZXdNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBTaWRlYmFyRGluYW1pY2FDb21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW10sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBTaWRlYmFyRGluYW1pY2FDb21wb25lbnRcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTaWRlYmFyRGluYW1pY2FNb2R1bGUge30iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9zcmMvY29tcG9uZW50cy9zaWRlYmFyLWRpbmFtaWNhL3NpZGViYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTaWRlYmFyQ29tcG9uZW50aXphZG9UYWIge1xuICBpZDogc3RyaW5nO1xuICBoZWFkZXI6IHN0cmluZztcbiAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBjb250ZXh0PzogYW55O1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGhpZGRlbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZWJhckNvbXBvbmVudGl6YWRvQWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJpb3JpdHk/OiBzdHJpbmc7XG4gIGljb25DbGFzcz86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBoaWRkZW4/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZGViYXJDb21wb25lbnRpemFkb0FjdGlvbkV2ZW50IHtcbiAgYWN0aW9uSWQ6IHN0cmluZztcbn0iXX0=
@@ -1,6 +1,6 @@
1
1
  export { FieldType } from "./commons/index";
2
- export { GridEditableNestedComponent, GridEditableNestedModule, PainelProcessamentoComponent, PainelProcessamentoModule } from "./components/index";
2
+ export { GridEditableNestedComponent, GridEditableNestedModule, PainelProcessamentoComponent, PainelProcessamentoModule, SidebarDinamicaComponent, SidebarDinamicaModule } from "./components/index";
3
3
  export { fallback } from "./locale/fallback";
4
4
  export { HOST_PROJECT_CONFIGS_INJECTION_TOKEN, TmsxAngularComponentsModule } from "./tmsx-angular-components.module";
5
5
  export { UtilsService } from "./utils/index";
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BKLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0NBQW9DLEVBQXNCLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlVmFsdWUgfSBmcm9tIFwiLi9jb21tb25zL2luZGV4XCI7XG5leHBvcnQgeyBHcmlkRWRpdGFibGVOZXN0ZWRDb21wb25lbnQsIEdyaWRFZGl0YWJsZU5lc3RlZE1vZHVsZSwgUGFpbmVsUHJvY2Vzc2FtZW50b0NvbXBvbmVudCwgUGFpbmVsUHJvY2Vzc2FtZW50b01vZHVsZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvaW5kZXhcIjtcbmV4cG9ydCB7IGZhbGxiYWNrIH0gZnJvbSBcIi4vbG9jYWxlL2ZhbGxiYWNrXCI7XG5leHBvcnQgeyBIT1NUX1BST0pFQ1RfQ09ORklHU19JTkpFQ1RJT05fVE9LRU4sIEhvc3RQcm9qZWN0Q29uZmlncywgVG1zeEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSBcIi4vdG1zeC1hbmd1bGFyLWNvbXBvbmVudHMubW9kdWxlXCI7XG5leHBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi91dGlscy9pbmRleFwiO1xuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JNLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0NBQW9DLEVBQXNCLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlVmFsdWUgfSBmcm9tIFwiLi9jb21tb25zL2luZGV4XCI7XG5leHBvcnQgeyBHcmlkRWRpdGFibGVOZXN0ZWRDb21wb25lbnQsIEdyaWRFZGl0YWJsZU5lc3RlZE1vZHVsZSwgUGFpbmVsUHJvY2Vzc2FtZW50b0NvbXBvbmVudCwgUGFpbmVsUHJvY2Vzc2FtZW50b01vZHVsZSwgU2lkZWJhckRpbmFtaWNhQ29tcG9uZW50LCBTaWRlYmFyRGluYW1pY2FNb2R1bGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL2luZGV4XCI7XG5leHBvcnQgeyBmYWxsYmFjayB9IGZyb20gXCIuL2xvY2FsZS9mYWxsYmFja1wiO1xuZXhwb3J0IHsgSE9TVF9QUk9KRUNUX0NPTkZJR1NfSU5KRUNUSU9OX1RPS0VOLCBIb3N0UHJvamVjdENvbmZpZ3MsIFRtc3hBbmd1bGFyQ29tcG9uZW50c01vZHVsZSB9IGZyb20gXCIuL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLm1vZHVsZVwiO1xuZXhwb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4vdXRpbHMvaW5kZXhcIjtcbiJdfQ==
@@ -35,6 +35,7 @@ import { BreadcrumbModule } from '@seniorsistemas/angular-components/breadcrumb'
35
35
  import { ControlErrorsModule } from '@seniorsistemas/angular-components/control-errors';
36
36
  import { CustomFieldsModule } from '@seniorsistemas/angular-components/custom-fields';
37
37
  import { DynamicFormModule } from '@seniorsistemas/angular-components/dynamic-form';
38
+ import * as i4$1 from '@seniorsistemas/angular-components/empty-state';
38
39
  import { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';
39
40
  import { TokenListModule } from '@seniorsistemas/angular-components/token-list';
40
41
  import * as i2$1 from '@seniorsistemas/angular-components/tooltip';
@@ -45,6 +46,8 @@ import { DropdownModule } from 'primeng/dropdown';
45
46
  import * as i7$1 from 'primeng/panel';
46
47
  import { PanelModule } from 'primeng/panel';
47
48
  import { ToastModule } from 'primeng/toast';
49
+ import * as i5$1 from 'primeng/tabview';
50
+ import { TabViewModule } from 'primeng/tabview';
48
51
 
49
52
  /**
50
53
  * Constante que mapeia os tipos de campo disponíveis no DynamicForm do
@@ -923,6 +926,148 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
923
926
  }]
924
927
  }] });
925
928
 
929
+ class SidebarDinamicaComponent {
930
+ showSidebar = false;
931
+ showLoader = false;
932
+ serverError = false;
933
+ title = '';
934
+ subtitle = '';
935
+ subtitleClass = 'chave-acesso sds-readonly';
936
+ closeButtonTitle = 'Fechar';
937
+ tabs = [];
938
+ activeTabIndex = 0;
939
+ showFooter = true;
940
+ footerBadgeLabel = '';
941
+ footerBadgeIconClass = 'fal fa-check-circle';
942
+ actions = [];
943
+ footerTemplate;
944
+ errorIconClass = 'fa fa-exclamation-triangle';
945
+ errorTitle = 'Erro ao carregar dados';
946
+ errorDescription = 'Ocorreu um erro no servidor.';
947
+ errorRetryLabel = 'Tentar novamente';
948
+ closeSidebar = new EventEmitter();
949
+ retryLoad = new EventEmitter();
950
+ actionClick = new EventEmitter();
951
+ tabChange = new EventEmitter();
952
+ ngOnChanges() {
953
+ const lastTabIndex = Math.max(this.visibleTabs.length - 1, 0);
954
+ if (this.activeTabIndex > lastTabIndex) {
955
+ this.activeTabIndex = lastTabIndex;
956
+ }
957
+ }
958
+ get visibleTabs() {
959
+ return this.tabs.filter((tab) => !tab.hidden);
960
+ }
961
+ get visibleActions() {
962
+ return this.actions.filter((action) => !action.hidden);
963
+ }
964
+ onCloseClick() {
965
+ this.closeSidebar.emit();
966
+ }
967
+ onRetryClick() {
968
+ this.retryLoad.emit();
969
+ }
970
+ onTabChange(index) {
971
+ this.activeTabIndex = index;
972
+ this.tabChange.emit(index);
973
+ }
974
+ onActionButtonClick(action) {
975
+ this.actionClick.emit({ actionId: action.id });
976
+ }
977
+ getButtonPriority(action) {
978
+ return action.priority || 'default';
979
+ }
980
+ trackByTabId(index, tab) {
981
+ return tab.id || index.toString();
982
+ }
983
+ trackByActionId(index, action) {
984
+ return action.id || index.toString();
985
+ }
986
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
987
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SidebarDinamicaComponent, selector: "tmsx-sidebar-dinamica", inputs: { showSidebar: "showSidebar", showLoader: "showLoader", serverError: "serverError", title: "title", subtitle: "subtitle", subtitleClass: "subtitleClass", closeButtonTitle: "closeButtonTitle", tabs: "tabs", activeTabIndex: "activeTabIndex", showFooter: "showFooter", footerBadgeLabel: "footerBadgeLabel", footerBadgeIconClass: "footerBadgeIconClass", actions: "actions", footerTemplate: "footerTemplate", errorIconClass: "errorIconClass", errorTitle: "errorTitle", errorDescription: "errorDescription", errorRetryLabel: "errorRetryLabel" }, outputs: { closeSidebar: "closeSidebar", retryLoad: "retryLoad", actionClick: "actionClick", tabChange: "tabChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"detalhes-drawer\" [class.drawer-open]=\"showSidebar\">\n\n <div class=\"loading\">\n <s-loading-state [loading]=\"showLoader\" [blockWindow]=\"true\"></s-loading-state>\n </div>\n\n <div class=\"drawer-header\">\n <div class=\"drawer-header-info\">\n <h2 class=\"drawer-title\">{{ title }}</h2>\n @if (subtitle) {\n <p [class]=\"subtitleClass\">{{ subtitle }}</p>\n }\n </div>\n <button class=\"drawer-close-btn\" type=\"button\" (click)=\"onCloseClick()\" [title]=\"closeButtonTitle\">\n <i class=\"fal fa-times\"></i>\n </button>\n </div>\n\n @if (serverError && !showLoader) {\n <s-empty-state\n [iconClass]=\"errorIconClass\"\n [title]=\"errorTitle\"\n [primaryActionLabel]=\"errorRetryLabel\"\n (primaryAction)=\"onRetryClick()\"\n [description]=\"errorDescription\">\n </s-empty-state>\n }\n\n @if (!serverError && visibleTabs.length) {\n <p-tabView [(activeIndex)]=\"activeTabIndex\" (onChange)=\"onTabChange($event.index)\">\n @for (tab of visibleTabs; track trackByTabId($index, tab); let i = $index) {\n <p-tabPanel [header]=\"tab.header\" [disabled]=\"!!tab.disabled\">\n @if (tab.template) {\n <ng-container\n [ngTemplateOutlet]=\"tab.template\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.context, context: tab.context, tab: tab, index: i }\">\n </ng-container>\n }\n @if (!tab.template && tab.content) {\n <ng-container>{{ tab.content }}</ng-container>\n }\n </p-tabPanel>\n }\n </p-tabView>\n }\n\n @if (showFooter) {\n <div class=\"drawer-footer\">\n @if (footerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ actions: visibleActions }\">\n </ng-container>\n }\n @if (!footerTemplate && footerBadgeLabel) {\n <span class=\"badge-analisado\">\n @if (footerBadgeIconClass) {\n <i [class]=\"footerBadgeIconClass\"></i>\n }\n {{ footerBadgeLabel }}\n </span>\n }\n\n <div class=\"drawer-footer-actions\">\n @for (action of visibleActions; track trackByActionId($index, action)) {\n <s-button\n type=\"button\"\n [priority]=\"getButtonPriority(action)\"\n [iconClass]=\"action.iconClass || ''\"\n [label]=\"action.label\"\n [disabled]=\"!!action.disabled\"\n (onClick)=\"onActionButtonClick(action)\">\n </s-button>\n }\n </div>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}.loading{position:absolute;margin-top:50%}.detalhes-drawer{position:fixed!important;top:0;right:0;z-index:99999!important;background:#fff;box-shadow:-4px 0 16px #0000001f;width:50vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;transform:translate(100%);transition:transform .3s ease-in-out;padding:16px 20px}.detalhes-drawer.drawer-open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;flex-shrink:0}.drawer-header-info{min-width:0;flex:1}.drawer-title{margin:0 0 4px;font-size:16px;font-weight:600;color:#333}.drawer-close-btn{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:4px;color:#666;font-size:18px;line-height:1;transition:background .15s}.drawer-close-btn:hover{background:#f0f0f0;color:#333}:host ::ng-deep .detalhes-drawer .p-tabview{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;min-height:0}:host ::ng-deep .detalhes-drawer .p-tabview .p-tabview-panels{flex:1 1 auto;overflow-y:auto;padding-bottom:88px}.drawer-footer{flex-shrink:0;border-top:1px solid #e9ecef;padding:12px 0;display:flex;flex-direction:column;gap:10px;position:absolute;bottom:0;width:calc(100% - 40px);background:#fff}.drawer-footer-actions{display:flex;flex-wrap:wrap;gap:8px}.badge-analisado{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:999px;background-color:#e8f7ed;color:#1b7f3b;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i7.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading", "progressBarMode", "progressBarValue", "progressBarLabel"] }, { kind: "component", type: i5.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel"], outputs: ["clicked"] }, { kind: "component", type: i4$1.EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "component", type: i5$1.TabView, selector: "p-tabView, p-tabview", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i5$1.TabPanel, selector: "p-tabPanel, p-tabpanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }] });
988
+ }
989
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaComponent, decorators: [{
990
+ type: Component,
991
+ args: [{ selector: 'tmsx-sidebar-dinamica', template: "<div class=\"detalhes-drawer\" [class.drawer-open]=\"showSidebar\">\n\n <div class=\"loading\">\n <s-loading-state [loading]=\"showLoader\" [blockWindow]=\"true\"></s-loading-state>\n </div>\n\n <div class=\"drawer-header\">\n <div class=\"drawer-header-info\">\n <h2 class=\"drawer-title\">{{ title }}</h2>\n @if (subtitle) {\n <p [class]=\"subtitleClass\">{{ subtitle }}</p>\n }\n </div>\n <button class=\"drawer-close-btn\" type=\"button\" (click)=\"onCloseClick()\" [title]=\"closeButtonTitle\">\n <i class=\"fal fa-times\"></i>\n </button>\n </div>\n\n @if (serverError && !showLoader) {\n <s-empty-state\n [iconClass]=\"errorIconClass\"\n [title]=\"errorTitle\"\n [primaryActionLabel]=\"errorRetryLabel\"\n (primaryAction)=\"onRetryClick()\"\n [description]=\"errorDescription\">\n </s-empty-state>\n }\n\n @if (!serverError && visibleTabs.length) {\n <p-tabView [(activeIndex)]=\"activeTabIndex\" (onChange)=\"onTabChange($event.index)\">\n @for (tab of visibleTabs; track trackByTabId($index, tab); let i = $index) {\n <p-tabPanel [header]=\"tab.header\" [disabled]=\"!!tab.disabled\">\n @if (tab.template) {\n <ng-container\n [ngTemplateOutlet]=\"tab.template\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.context, context: tab.context, tab: tab, index: i }\">\n </ng-container>\n }\n @if (!tab.template && tab.content) {\n <ng-container>{{ tab.content }}</ng-container>\n }\n </p-tabPanel>\n }\n </p-tabView>\n }\n\n @if (showFooter) {\n <div class=\"drawer-footer\">\n @if (footerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ actions: visibleActions }\">\n </ng-container>\n }\n @if (!footerTemplate && footerBadgeLabel) {\n <span class=\"badge-analisado\">\n @if (footerBadgeIconClass) {\n <i [class]=\"footerBadgeIconClass\"></i>\n }\n {{ footerBadgeLabel }}\n </span>\n }\n\n <div class=\"drawer-footer-actions\">\n @for (action of visibleActions; track trackByActionId($index, action)) {\n <s-button\n type=\"button\"\n [priority]=\"getButtonPriority(action)\"\n [iconClass]=\"action.iconClass || ''\"\n [label]=\"action.label\"\n [disabled]=\"!!action.disabled\"\n (onClick)=\"onActionButtonClick(action)\">\n </s-button>\n }\n </div>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}.loading{position:absolute;margin-top:50%}.detalhes-drawer{position:fixed!important;top:0;right:0;z-index:99999!important;background:#fff;box-shadow:-4px 0 16px #0000001f;width:50vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;transform:translate(100%);transition:transform .3s ease-in-out;padding:16px 20px}.detalhes-drawer.drawer-open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;flex-shrink:0}.drawer-header-info{min-width:0;flex:1}.drawer-title{margin:0 0 4px;font-size:16px;font-weight:600;color:#333}.drawer-close-btn{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:4px;color:#666;font-size:18px;line-height:1;transition:background .15s}.drawer-close-btn:hover{background:#f0f0f0;color:#333}:host ::ng-deep .detalhes-drawer .p-tabview{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;min-height:0}:host ::ng-deep .detalhes-drawer .p-tabview .p-tabview-panels{flex:1 1 auto;overflow-y:auto;padding-bottom:88px}.drawer-footer{flex-shrink:0;border-top:1px solid #e9ecef;padding:12px 0;display:flex;flex-direction:column;gap:10px;position:absolute;bottom:0;width:calc(100% - 40px);background:#fff}.drawer-footer-actions{display:flex;flex-wrap:wrap;gap:8px}.badge-analisado{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:999px;background-color:#e8f7ed;color:#1b7f3b;font-weight:600}\n"] }]
992
+ }], propDecorators: { showSidebar: [{
993
+ type: Input
994
+ }], showLoader: [{
995
+ type: Input
996
+ }], serverError: [{
997
+ type: Input
998
+ }], title: [{
999
+ type: Input
1000
+ }], subtitle: [{
1001
+ type: Input
1002
+ }], subtitleClass: [{
1003
+ type: Input
1004
+ }], closeButtonTitle: [{
1005
+ type: Input
1006
+ }], tabs: [{
1007
+ type: Input
1008
+ }], activeTabIndex: [{
1009
+ type: Input
1010
+ }], showFooter: [{
1011
+ type: Input
1012
+ }], footerBadgeLabel: [{
1013
+ type: Input
1014
+ }], footerBadgeIconClass: [{
1015
+ type: Input
1016
+ }], actions: [{
1017
+ type: Input
1018
+ }], footerTemplate: [{
1019
+ type: Input
1020
+ }], errorIconClass: [{
1021
+ type: Input
1022
+ }], errorTitle: [{
1023
+ type: Input
1024
+ }], errorDescription: [{
1025
+ type: Input
1026
+ }], errorRetryLabel: [{
1027
+ type: Input
1028
+ }], closeSidebar: [{
1029
+ type: Output
1030
+ }], retryLoad: [{
1031
+ type: Output
1032
+ }], actionClick: [{
1033
+ type: Output
1034
+ }], tabChange: [{
1035
+ type: Output
1036
+ }] } });
1037
+
1038
+ class SidebarDinamicaModule {
1039
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1040
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, declarations: [SidebarDinamicaComponent], imports: [CommonModule,
1041
+ LoadingStateModule,
1042
+ ButtonModule,
1043
+ EmptyStateModule,
1044
+ TabViewModule], exports: [SidebarDinamicaComponent] });
1045
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, imports: [CommonModule,
1046
+ LoadingStateModule,
1047
+ ButtonModule,
1048
+ EmptyStateModule,
1049
+ TabViewModule] });
1050
+ }
1051
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, decorators: [{
1052
+ type: NgModule,
1053
+ args: [{
1054
+ imports: [
1055
+ CommonModule,
1056
+ LoadingStateModule,
1057
+ ButtonModule,
1058
+ EmptyStateModule,
1059
+ TabViewModule
1060
+ ],
1061
+ declarations: [
1062
+ SidebarDinamicaComponent
1063
+ ],
1064
+ providers: [],
1065
+ exports: [
1066
+ SidebarDinamicaComponent
1067
+ ],
1068
+ }]
1069
+ }] });
1070
+
926
1071
  const fallback = {
927
1072
  "tmsx_fnd.tmsx_angular_components.add": "Adicionar",
928
1073
  "tmsx_fnd.tmsx_angular_components.audit_created_by": "Criado por {{nome}} em {{data}} às {{hora}}.",
@@ -988,5 +1133,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
988
1133
  * Generated bundle index. Do not edit.
989
1134
  */
990
1135
 
991
- export { FieldType, GridEditableNestedComponent, GridEditableNestedModule, HOST_PROJECT_CONFIGS_INJECTION_TOKEN, PainelProcessamentoComponent, PainelProcessamentoModule, TmsxAngularComponentsModule, UtilsService, fallback };
1136
+ export { FieldType, GridEditableNestedComponent, GridEditableNestedModule, HOST_PROJECT_CONFIGS_INJECTION_TOKEN, PainelProcessamentoComponent, PainelProcessamentoModule, SidebarDinamicaComponent, SidebarDinamicaModule, TmsxAngularComponentsModule, UtilsService, fallback };
992
1137
  //# sourceMappingURL=seniorsistemas-tmsx-angular-components.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-tmsx-angular-components.mjs","sources":["../../lib/src/commons/field-type/field-type.ts","../../lib/src/utils/services/utils.service.ts","../../lib/src/components/grid-editable-nested/grid-editable-nested.component.ts","../../lib/src/components/grid-editable-nested/grid-editable-nested.component.html","../../lib/src/components/grid-editable-nested/grid-editable-nested.module.ts","../../lib/src/components/painel-processamento/processamento.ts","../../lib/src/components/painel-processamento/painel-processamento.component.ts","../../lib/src/components/painel-processamento/painel-processamento.component.html","../../lib/src/components/painel-processamento/painel-processamento.module.ts","../../lib/src/locale/fallback.ts","../../lib/src/tmsx-angular-components.module.ts","../../lib/src/seniorsistemas-tmsx-angular-components.ts"],"sourcesContent":["/**\n * Constante que mapeia os tipos de campo disponíveis no DynamicForm do\n * `@seniorsistemas/angular-components`. Substitui o antigo `FieldType` enum\n * que foi removido na v19 em favor de string literals.\n *\n * Uso:\n * ```typescript\n * import { FieldType } from '@tmsx/angular-components';\n *\n * { type: FieldType.String, name: 'nome', ... }\n * { type: FieldType.Enum, name: 'status', ... }\n * { type: FieldType.Lookup, name: 'cidade', ... }\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const FieldType = {\n /** Campo de texto livre padrão. */\n String: 'string',\n /** Campo de texto tratado como dado binário (ex: base64). */\n Binary: 'binary',\n /** Campo de seleção (dropdown/select) com lista de opções. */\n Enum: 'enum',\n /** Campo numérico inteiro (usa NumberInput). */\n Integer: 'integer',\n /** Campo numérico genérico com grande precisão (usa BignumberInput). */\n Number: 'number',\n /** Campo numérico com casas decimais (usa BignumberInput). */\n Double: 'double',\n /** @deprecated Use `Number` ou `Double` com addon. Campo numérico legado. */\n LegacyNumber: 'legacyNumber',\n /** @deprecated Use `Number` ou `Double` com addon. Campo monetário com símbolo de moeda. */\n Money: 'money',\n /** Campo booleano exibido como radio buttons (Sim/Não). */\n Boolean: 'boolean',\n /** Campo booleano exibido como toggle switch. */\n BooleanSwitch: 'booleanSwitch',\n /** Campo de data apenas (dia/mês/ano). */\n Date: 'date',\n /** Campo de data e hora com timezone UTC. */\n DateTime: 'dateTime',\n /** Campo de data e hora sem timezone (local). */\n LocalDateTime: 'localDateTime',\n /** Campo de hora apenas (hora:minuto:segundo). */\n Time: 'time',\n /** Campo de pesquisa avançada com autocompletar e diálogo de busca. */\n Lookup: 'lookup',\n /** Campo de autocompletar simples com sugestões via Observable. */\n Autocomplete: 'autocomplete',\n /** Campo de seleção única com radio buttons. */\n RadioButton: 'radioButton',\n /** Campo de múltipla escolha com checkboxes. */\n Checkbox: 'checkbox',\n /** Campo de entrada de múltiplas tags/chips. */\n Chips: 'chips',\n /** Campo de área de texto multilinha. */\n TextArea: 'textArea',\n /** Campo de área de texto com geração de conteúdo via IA. */\n ContentGenerator: 'contentGenerator',\n /** @deprecated Use `ContentGenerator`. */\n TextAreaIA: 'textAreaIA',\n /** Campo de upload de arquivos binários. */\n Blob: 'blob',\n /** Botão renderizado como campo do formulário. */\n Button: 'button',\n /** Campo de senha com indicador de força. */\n Password: 'password',\n /** Campo de foto de perfil com recorte. */\n ProfilePicture: 'profilePicture',\n /** Campo de controle deslizante (slider). */\n Slider: 'slider',\n /** Campo de avaliação com estrelas. */\n StarRating: 'starRating',\n /** Campo de seleção de país com entrada de telefone. */\n CountryPhonePicker: 'countryPhonePicker',\n} as const;\n\n/** Tipo union com todos os valores possíveis de FieldType. */\nexport type FieldTypeValue = (typeof FieldType)[keyof typeof FieldType];\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FieldConfig, SelectOption } from '@seniorsistemas/angular-components/dynamic-form';\nimport { LocalizedDatePipe } from '@seniorsistemas/angular-components/locale';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n constructor(\n private readonly translate: TranslateService,\n private readonly dataPipe: LocalizedDatePipe\n ) { }\n\n public getAuditCreatedBy(createdBy: string, createdDate: Date): string {\n if (!createdBy || !createdDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(createdDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_created_by', {nome: createdBy, data: date[0], hora: date[1]});\n }\n\n public getAuditModifiedBy(modifiedBy: string, modifiedDate: Date): string {\n if (!modifiedBy || !modifiedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(modifiedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_modified_by', {nome: modifiedBy, data: date[0], hora: date[1]});\n }\n\n public getAuditInactivatedBy(inactivatedBy: string, inactivatedDate: Date): string {\n if (!inactivatedBy || !inactivatedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(inactivatedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_inactivated_by', {nome: inactivatedBy, data: date[0], hora: date[1]});\n }\n\n /* usage: [innerHTML]=\"getProp(rowData, 'nome')\" */\n public getProp(obj: any, path: any, type?: string): string {\n let value = path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n if (value || value === 0) {\n if (type) {\n value = this.formatType(value, type);\n }\n return `<span>${value}</span>`;\n }\n return `<span class=\"empty-grid\">${this.translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_empty_field')}</span>`;\n }\n\n public formatType(value: any, type: string): string {\n if (value) {\n if (type === 'date') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item.split(' '));\n return date[0];\n }\n if (type === 'datetime') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item);\n return date;\n }\n if (type === 'decimal') {\n if (typeof value === 'string') {\n value = Number(value);\n }\n return value.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n }\n if (type === 'currency') {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n if (type === 'cep') {\n return value.replace(/^(\\d{2})(\\d{3})(\\d{3})/, '$1.$2-$3');\n }\n }\n return value;\n }\n\n /* usage: [ngClass]=\"emptyGridClass(value)\" */\n public emptyGridClass(value: string): string {\n if (!value || value === this.translate.instant('tmsx_fnd.replicacao.list_grid_empty_field')) {\n return 'empty-grid';\n }\n return '';\n }\n\n public infoContent(entity?: any) {\n let text = '';\n if (!entity) {\n return this.translate.instant(\"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\");\n }\n text += this.getAuditCreatedBy(entity.createdBy, entity.createdDate);\n if (text) {\n text += '\\n';\n }\n text += this.getAuditModifiedBy(entity.lastModifiedBy, entity.lastModifiedDate);\n return text;\n }\n\n public formatCurrency(value: number): string {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n\n public getAtivoTokenLabel(formField: FieldConfig, value: any, translate: TranslateService) {\n const { name, type, label } = formField as any;\n if (type === 'radio') {\n const labelValue = value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_false');\n return { id: name, label: `${label}: ${labelValue}` };\n }\n return this.createFilterTokens(formField, value, translate);\n }\n\n public getUtilsProp(obj: any, path: any) {\n return path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public createFilterTokens(formField: FieldConfig, value: any, translate: TranslateService) {\n const { name, type, label, searchFields, options } = formField as any;\n const labelValue = this.getLabelValueByType(type, value, searchFields, options, translate);\n return { id: name, label: `${label}: ${labelValue}` };\n }\n\n private getLabelValueByType(\n type: string,\n value: any,\n searchFields: FieldConfig[],\n options: SelectOption[],\n translate: TranslateService\n ): string {\n switch (type) {\n case 'date':\n return this.getDateLabel(value);\n case 'time':\n return this.getTimeFromDate(value);\n case 'localdatetime':\n case 'datetime':\n return this.getDateTimeFromDate(value);\n case 'lookup':\n return this.getLookupLabel(value, searchFields);\n case 'enum':\n return this.getEnumLabel(value, options);\n case 'boolean':\n return this.getBooleanLabel(value, translate);\n default:\n return value;\n }\n }\n\n private getDateLabel(value: any): string {\n const dateObj = value instanceof Date ? value : new Date(value);\n return !isNaN(dateObj.getTime()) ? dateObj.toLocaleDateString('pt-BR') : value;\n }\n\n private getLookupLabel(value: any, searchFields: FieldConfig[]): string {\n return searchFields.map((field: FieldConfig) => this.getUtilsProp(value, field.name)).join(' - ');\n }\n\n private getEnumLabel(value: any, options: SelectOption[]): string {\n const option = options.find((opt: SelectOption) => opt.value === value);\n return option ? option.label : value;\n }\n\n private getBooleanLabel(value: any, translate: TranslateService): string {\n return value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_false');\n }\n\n public getTimeFromDate(value: any) {\n let dateObj: Date;\n if (typeof value === 'string' && /^\\d{2}:\\d{2}(:\\d{2})?$/.test(value)) {\n const [h, m, s = '00'] = value.split(':');\n dateObj = new Date();\n dateObj.setHours(+h, +m, +s, 0);\n } else {\n dateObj = value instanceof Date ? value : new Date(value);\n }\n if (!isNaN(dateObj.getTime())) {\n return dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n }\n return value;\n }\n\n public getDateTimeFromDate(value: any) {\n const dateObj = value instanceof Date ? value : new Date(value);\n if (!isNaN(dateObj.getTime())) {\n const datePart = dateObj.toLocaleDateString('pt-BR'); // DD/MM/AAAA\n const timePart = dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n return `${datePart} ${timePart}`;\n }\n return value;\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Hotkey, HotkeysService } from 'angular2-hotkeys';\nimport { SortMeta } from 'primeng/api';\nimport { Table, TableLazyLoadEvent } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { UtilsService } from '../../utils/services/utils.service';\nimport { FrozenColumn, GridConfig } from './grid.interface';\n\n@Component({\n selector: 'tmsx-grid-editable-nested',\n templateUrl: './grid-editable-nested.component.html',\n styleUrls: ['./grid-editable-nested.component.scss']\n})\nexport class GridEditableNestedComponent implements OnDestroy, OnInit, OnChanges {\n @Input() public config!: GridConfig;\n @Input() nestedFunction!: (listParams: ListParams, rowData: any) => Promise<void>;\n @Output() openDetails = new EventEmitter<any>();\n @Output() paging = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() save = new EventEmitter<any>();\n @Output() add = new EventEmitter<any>();\n\n @ViewChild(\"table\", { static: false }) public table!: Table;\n public clonedData: Record<string, any> = {};\n public gridLoading = true;\n public editing = false;\n public lazy = true;\n public deleteEnabled = false;\n public editEnabled = false;\n public addEnabled = false;\n public detailsEnabled = false;\n public calendarTooltipText = '';\n public currentListParams: ListParams = { page: 0, size: 5, sort: [] };\n\n public gridData: any[] = [];\n public gridColumns: any[] = [];\n public gridTotalRecords = 0;\n public selected: any[] = [];\n\n public nestedGridLoading = false;\n public frozenPosition = 'left';\n public frozenWidth = '200px';\n public frozenColumns: FrozenColumn[] = [];\n\n private readonly ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly translate: TranslateService,\n private readonly utils: UtilsService,\n private readonly hotkeysService: HotkeysService,\n ) {\n this.calendarTooltipText = this.translate.instant('tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required');\n }\n\n ngOnInit(): void {\n this.setGridData();\n this.setHotkeys();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.config) {\n this.setGridData();\n }\n }\n\n public formatData(column: any, value: string) {\n return value;\n }\n\n private setGridData() {\n if (!this.config) {\n return;\n }\n const { data, size, columns, frozenPosition, frozenColumns, editing, lazy,\n deleteActionsEnabled, editEnabled, addEnabled, editActionsEnabled } = this.config;\n\n this.gridData = data ?? [];\n this.gridTotalRecords = size ?? 0;\n this.gridColumns = columns ?? [];\n this.frozenPosition = frozenPosition ?? 'left';\n this.frozenColumns = frozenColumns ?? [];\n this.frozenWidth = this.calculateFrozenWidth(this.frozenColumns);\n\n this.editing = !!editing;\n this.lazy = !!lazy;\n this.deleteEnabled = !!deleteActionsEnabled;\n this.editEnabled = !!editEnabled;\n this.addEnabled = !!addEnabled;\n this.detailsEnabled = !!editActionsEnabled;\n\n this.changeDetectorRef.detectChanges();\n this.nestedGridLoading = false;\n this.gridLoading = false;\n }\n\n private calculateFrozenWidth(frozenColumns: FrozenColumn[]): string {\n const gutter = 120;\n if (!(frozenColumns?.length)) {\n return '120px';\n }\n const totalWidth = frozenColumns.reduce((sum, col) => sum + gutter + (parseInt(col.width, 10) || 0), 0);\n return `${totalWidth}px`;\n }\n\n\n public getActions(data: any): any[] {\n return [\n {\n id: 'edit',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.edit'),\n disabled: !this.detailsEnabled,\n command: () => {\n this.openRowDetails(data.id);\n },\n },\n { separator: true },\n {\n id: 'delete',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.delete'),\n disabled: !this.deleteEnabled,\n command: () => {\n this.onDelete(data.id);\n },\n },\n ];\n }\n\n public updateGridData(event: TableLazyLoadEvent) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n this.gridLoading = true;\n\n if (this.clonedData && Object.keys(this.clonedData).length) {\n this.clonedData = {};\n this.table.editingRowKeys = {};\n }\n\n this.paging.emit({ page, size });\n }\n\n public async updateNestedGridData(event: TableLazyLoadEvent, rowData: any) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n const sort = event.multiSortMeta || [];\n\n rowData.nestedGridLoading = true;\n await this.nestedFunction({ page, size, sort }, rowData);\n }\n\n onTab(event: KeyboardEvent) {\n if (event.key !== 'Tab') {\n return;\n }\n\n event.preventDefault();\n\n const focusables = Array.from(\n document.querySelectorAll<HTMLElement>(\n 'p-cellEditor input, p-cellEditor textarea, p-cellEditor [tabindex=\"0\"]'\n )\n ).filter(el => el.offsetParent !== null);\n\n const currentIndex = focusables.indexOf(event.target as HTMLElement);\n\n let next: HTMLElement | undefined;\n\n if (event.shiftKey) {\n next = focusables[currentIndex - 1] || focusables[focusables.length - 1];\n } else {\n next = focusables[currentIndex + 1] || focusables[0];\n }\n\n if (next) {\n next.focus();\n }\n }\n\n\n public getRowIndex() {\n const page = this.currentListParams.page || 0;\n const size = this.currentListParams.size || 0;\n return page * size;\n }\n\n public getPageSize() {\n return this.currentListParams.size ?? 0;\n }\n\n public openRowDetails(id: string) {\n this.openDetails.emit(id);\n }\n\n public onDelete(id: string) {\n this.delete.emit(id);\n }\n\n public onAdd() {\n this.add.emit();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onEditSave() {\n this.saveAllRows();\n }\n\n public onEditCancel() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n const index = this.gridData.findIndex((row) => row.id === data.id);\n this.gridData[index] = this.clonedData[data.id];\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n }\n\n public initAllRowsEdit() {\n this.gridData.forEach((data) => {\n this.editing = true;\n this.table.initRowEdit(data);\n this.clonedData[data.id] = { ...data };\n });\n }\n\n public saveAllRows() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n this.save.emit(this.gridData);\n }\n\n public formatRowData(field: any) {\n return field;\n }\n\n public filterOptions(event: any) {\n return event;\n }\n\n public getSpanProp(obj: any, path: any, type?: string): string {\n type = type?.toLowerCase();\n const value = this.utils.getProp(obj, path, type);\n if (value === '<span>0</span>' && type === 'decimal') {\n return '<span>0,00</span>';\n }\n if (!obj.tiposDados) {\n return value;\n }\n if ('MONETARIO' === obj.tiposDados[path]) {\n return 'R$ ' + value;\n }\n if ('PERCENTUAL' === obj.tiposDados[path]) {\n return value + ' %';\n }\n return value;\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n 'alt+shift+n',\n () => {\n this.onAdd();\n return false;\n },\n ['INPUT', 'SELECT', 'TEXTAREA']\n )\n );\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","<div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button id=\"add-button\"\n data-cy=\"add-button\"\n priority=\"primary\" type=\"button\"\n [label]=\"'tmsx_fnd.tmsx_angular_components.add' | translate\"\n tooltip=\"{{'tmsx_fnd.tmsx_angular_components.add' | translate}} (Alt + Shift + N)\"\n [disabled]=\"!addEnabled\"\n (click)=\"onAdd()\">\n </s-button>\n @if (!editing) {\n <s-button\n priority=\"primary\"\n iconClass=\"fa fa-edit\"\n label=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n tooltip=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n [disabled]=\"!editEnabled\"\n (click)=\"initAllRowsEdit()\"\n ></s-button>\n }\n @if (editing) {\n <s-button\n priority=\"primary\"\n label=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_salvar' | translate}}\"\n iconClass=\"fa fa-check\"\n [disabled]=\"false\"\n (click)=\"onEditSave()\"\n ></s-button>\n }\n @if (editing) {\n <s-button\n priority=\"default\"\n label=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_cancelar' | translate}}\"\n iconClass=\"fa fa-times\"\n [disabled]=\"false\"\n (click)=\"onEditCancel()\"\n ></s-button>\n }\n <p-table\n selectionMode=\"single\"\n [(selection)]=\"selected\"\n [value]=\"gridData\"\n [columns]=\"gridColumns\"\n dataKey=\"id\"\n [rows]=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n [paginator]=\"true\"\n [totalRecords]=\"gridTotalRecords\"\n [lazy]=\"lazy\"\n (onLazyLoad)=\"updateGridData($event)\"\n *sLoadingState=\"gridLoading\"\n sortMode=\"multiple\"\n [scrollable]=\"true\"\n editMode=\"row\"\n #table\n >\n <ng-template pTemplate=\"frozenbody\" let-rowData let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"col50\" tabindex=\"0\" [sRowToggler]=\"rowData\"\n [attr.aria-label]=\"expanded\n ? ('tmsx_fnd.tmsx_angular_components.collapse_row' | translate)\n : ('tmsx_fnd.tmsx_angular_components.expand_row' | translate)\"\n (keydown.enter)=\"table.toggleRow(rowData, $event)\">\n <i class=\"fa fa-{{ expanded ? 'minus' : 'plus' }}\"\n aria-hidden=\"true\"></i>\n </td>\n @for (col of frozenColumns; track col) {\n <td class=\"colText\"\n tooltipPosition=\"top\" showDelay=\"500\"\n [innerHTML]=\"getSpanProp(rowData, col.field)\">\n </td>\n }\n <td class=\"frozenButton\">\n <s-button\n id=\"edit-button\"\n data-cy=\"edit-button\"\n priority=\"default\"\n type=\"button\"\n size=\"small\"\n [auxiliary]=\"true\"\n [disabled]=\"false\"\n [menuOptions]=\"getActions(rowData)\">\n </s-button>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n @for (col of columns; track col) {\n <col [style.width]=\"col.width\" />\n }\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n @for (col of columns; track col) {\n <th scope=\"col\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n </div>\n </th>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-expanded=\"expanded\" let-columns=\"columns\">\n <tr sNavigation tabindex=\"0\" [pEditableRow]=\"rowData\">\n @for (col of columns; track col) {\n <td\n [ngClass]=\"editing? 'editPadding': ''\"\n pResizableColumn\n [pTooltip]=\"rowData[col.field]\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n tabindex=\"0\"\n class=\"col80 colText\"\n >\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"ui-fluid\">\n @switch (col.type) {\n @case ('Text') {\n <span>{{ rowData[col.field] }}</span>\n }\n @case ('Date') {\n <p-datepicker\n [(ngModel)]=\"rowData[col.field]\"\n appendTo=\"body\"\n [showIcon]=\"true\"\n [required]=\"true\"\n [attr.aria-label]=\"col.header\"\n pTooltip=\"{{ calendarTooltipText }}\"\n tooltipPosition=\"bottom\"\n [tooltipDisabled]=\"rowData[col.field]\"\n ></p-datepicker>\n }\n @case ('Autocomplete') {\n <p-autoComplete\n [(ngModel)]=\"rowData[col.field]\"\n [suggestions]=\"col.options\"\n [attr.aria-label]=\"col.header\"\n appendTo=\"body\"\n (completeMethod)=\"filterOptions($event)\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n ></p-autoComplete>\n }\n @case ('Decimal') {\n <div class=\"ui-inputgroup\">\n @if ('MONETARIO' === rowData.tiposDados[col.field]) {\n <span class=\"ui-inputgroup-addon\"\n >R$</span>\n }\n <input sNumberInput [scale]=\"2\"\n alignTo=\"right\"\n thousandsSeparator=\".\"\n pInputText\n [attr.aria-label]=\"col.header\"\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n @if ('PERCENTUAL' === rowData.tiposDados[col.field]) {\n <span class=\"ui-inputgroup-addon\"\n >%</span>\n }\n </div>\n }\n @default {\n <input pInputText type=\"text\"\n [(ngModel)]=\"rowData[col.field]\"\n [attr.aria-label]=\"col.header\"\n (keydown)=\"onTab($event)\"\n />\n }\n }\n </div>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <div [innerHTML]=\"getSpanProp(rowData, col.field, col.type)\"></div>\n </ng-template>\n </p-cellEditor>\n </td>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"rowexpansion\" let-rowData>\n <tr class=\"sds-expanded-row\">\n <td [attr.colspan]=\"gridColumns.length + 1\">\n <p-table\n [value]=\"rowData.nestedGridData\"\n [columns]=\"rowData.nestedGridColumns\"\n dataKey=\"id\"\n [rows]=\"5\"\n [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\"\n [rowsPerPageOptions]=\"[5, 10, 20, 50]\"\n [paginator]=\"true\"\n [totalRecords]=\"rowData.nestedGridTotalRecords\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n (onLazyLoad)=\"updateNestedGridData($event, rowData)\"\n sortMode=\"multiple\"\n *sLoadingState=\"rowData.nestedGridLoading\"\n >\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n @for (col of columns; track col) {\n <th scope=\"col\"\n [pSortableColumn]=\"col.field\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr [pSelectableRow]=\"rowData\">\n @for (col of columns; track col) {\n <td class=\"colText\">\n {{ formatData(col, rowData[col.field]) }}\n </td>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ rowData.nestedGridTotalRecords }}\n {{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ gridTotalRecords }}\n {{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbModule } from '@seniorsistemas/angular-components/breadcrumb';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { ControlErrorsModule } from '@seniorsistemas/angular-components/control-errors';\nimport { CustomFieldsModule } from '@seniorsistemas/angular-components/custom-fields';\nimport { DynamicFormModule } from '@seniorsistemas/angular-components/dynamic-form';\nimport { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { LocaleModule } from '@seniorsistemas/angular-components/locale';\nimport { NumberInputModule } from '@seniorsistemas/angular-components/number-input';\nimport { TableModule } from '@seniorsistemas/angular-components/table';\nimport { TokenListModule } from '@seniorsistemas/angular-components/token-list';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { SharedModule } from 'primeng/api';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { PanelModule } from 'primeng/panel';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\nimport { ToastModule } from 'primeng/toast';\nimport { TooltipModule as PrimeTooltipModule } from 'primeng/tooltip';\nimport { GridEditableNestedComponent } from './grid-editable-nested.component';\n\n@NgModule({\n imports: [\n CommonModule,\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n ButtonModule,\n TableModule,\n TooltipModule,\n LoadingStateModule,\n NumberInputModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n\n // PrimeNG modules\n ToastModule,\n PrimeTableModule,\n PrimeTooltipModule,\n PanelModule,\n InputTextModule,\n ConfirmDialogModule,\n DatePickerModule,\n DropdownModule,\n SharedModule,\n AutoCompleteModule,\n CheckboxModule,\n\n // Angular modules\n FormsModule,\n ReactiveFormsModule\n ],\n declarations: [\n GridEditableNestedComponent,\n ],\n providers: [],\n exports: [\n GridEditableNestedComponent,\n ],\n})\nexport class GridEditableNestedModule {}\n","import { Observable } from \"rxjs\";\n\nexport interface ProcessamentoInput {\n quantidadeChamadasSimultaneas: number;\n registros: ProcessamentoRegistro[];\n titulo: string;\n}\n\nexport interface ProcessamentoRegistro {\n descricao: string;\n apiEnvio: (data: object) => Observable<any>;\n objEnvio: any;\n}\n\nexport interface ProcessamentoGrid {\n registro: any;\n label: string;\n status: EnumProcessamentoStatus;\n message?: string;\n}\n\nexport enum EnumProcessamentoStatus {\n SUCCESS = \"SUCCESS\",\n FAILED = \"FAILED\",\n PENDING = \"PENDING\",\n PROCESSING = \"PROCESSING\"\n}\n\nexport const ENUM_PROCESSAMENTO_STATUS_TRANSLATION_MAP: Record<EnumProcessamentoStatus, string> = {\n [EnumProcessamentoStatus.SUCCESS]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_success',\n [EnumProcessamentoStatus.FAILED]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed',\n [EnumProcessamentoStatus.PENDING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending',\n [EnumProcessamentoStatus.PROCESSING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing'\n};\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Column, EnumColumnFieldType } from '@seniorsistemas/angular-components/table';\nimport { ENUM_PROCESSAMENTO_STATUS_TRANSLATION_MAP, EnumProcessamentoStatus, ProcessamentoGrid, ProcessamentoInput } from './processamento';\n\n@Component({\n selector: 'tmsx-painel-processamento',\n templateUrl: './painel-processamento.component.html',\n styleUrls: ['./painel-processamento.component.scss']\n})\nexport class PainelProcessamentoComponent implements OnInit {\n\n private static readonly GENERIC_ERR_KEY = 'tmsx_fnd.tmsx_angular_components.painel_processamento_generic_error';\n\n @Input() params: ProcessamentoInput;\n @Output() processado = new EventEmitter();\n @Output() concluido = new EventEmitter();\n\n public gridData: ProcessamentoGrid[];\n public gridColumns: Column[];\n\n public totalRecords = 0;\n public successCount = 0;\n public failedCount = 0;\n public pendingCount = 0;\n public successProgress = '0%';\n public failedProgress = '0%';\n public pendingProgress = '100%';\n public processingProgress = '0%';\n public sortField = 'status';\n public sortOrder = 1;\n\n constructor(\n private readonly translate: TranslateService\n ) { }\n\n ngOnInit() {\n this.initPanel();\n }\n\n initPanel() {\n this.gridColumns = this.getGridColumn();\n this.initGrid();\n this.initProgressBar();\n }\n\n initProgressBar() {\n this.successProgress = '0%';\n this.failedProgress = '0%';\n this.pendingProgress = '100%';\n this.processingProgress = '0%';\n this.totalRecords = this.params.registros.length;\n this.pendingCount = this.totalRecords;\n\n if (this.params.quantidadeChamadasSimultaneas > 1) {\n this.processAllRecordsWithPLimit();\n } else {\n this.syncProcessRecord(0);\n }\n }\n\n initGrid() {\n this.gridData = [];\n this.gridData = this.params.registros.map(registro => ({\n registro,\n status: EnumProcessamentoStatus.PENDING,\n label: registro.descricao\n }));\n }\n\n private getErrorMessage(error: any): string {\n try {\n if (!error) {\n return this.genericErrorMsg;\n }\n if (error?.error?.message) {\n return String(error.error.message);\n }\n if (error?.message?.message) {\n return String(error.message.message);\n }\n return this.genericErrorMsg;\n } catch {\n return this.genericErrorMsg;\n }\n }\n\n private get genericErrorMsg(): string {\n return this.translate.instant(PainelProcessamentoComponent.GENERIC_ERR_KEY);\n }\n\n private updateRowSuccess(row: any): void {\n this.successCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.SUCCESS);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private updateRowError(row: any, index: number, message: string): void {\n this.failedCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.FAILED, message);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private syncProcessRecord(index: number): void {\n if (this.pendingCount < 1) {\n this.concluido.emit('ok');\n return;\n }\n this.updateRowStatus(this.gridData[index], EnumProcessamentoStatus.PROCESSING);\n const record = this.params.registros[index];\n const row = this.gridData.find(item => item.registro === record);\n\n if (record.apiEnvio) {\n record.apiEnvio(record.objEnvio)\n .subscribe(\n () => {\n this.updateRowSuccess(row);\n this.syncProcessRecord(index + 1);\n },\n (error: any) => {\n this.updateRowError(row, index, this.getErrorMessage(error));\n this.syncProcessRecord(index + 1);\n }\n );\n } else {\n this.failedCount = this.pendingCount;\n this.pendingCount = 0;\n this.updateRowStatus(row,\n EnumProcessamentoStatus.FAILED,\n this.translate.instant('tmsx_fnd.tmsx_angular_components.painel_processamento_api_error')\n );\n this.updateProgressBar();\n this.concluido.emit('erro');\n }\n }\n\n async processAllRecordsWithPLimit() {\n const pLimitModule: any = await import('p-limit');\n const pLimit = pLimitModule.default ?? pLimitModule;\n const limit = pLimit(this.params.quantidadeChamadasSimultaneas);\n const promises = this.params.registros.map((record, index) => limit(async () => {\n const row = this.gridData.find(item => item.registro === record);\n this.updateRowStatus(row, EnumProcessamentoStatus.PROCESSING);\n try {\n const result = await record.apiEnvio(record.objEnvio).toPromise();\n this.updateRowSuccess(row);\n return { success: true, record, result };\n } catch (error) {\n this.updateRowError(row, index, this.getErrorMessage(error));\n return { success: false, record, error };\n }\n }));\n const results = await Promise.all(promises);\n this.concluido.emit(results);\n return results;\n }\n\n private updateProgressBar(): void {\n const successWidth = (this.successCount / this.totalRecords) * 100;\n const failedWidth = (this.failedCount / this.totalRecords) * 100;\n const pendingWidth = (this.pendingCount / this.totalRecords) * 100;\n const processedWidth = successWidth + failedWidth;\n\n this.processingProgress = `${processedWidth.toFixed(0)}%`;\n this.successProgress = `${successWidth.toFixed(0)}%`;\n this.failedProgress = `${failedWidth.toFixed(0)}%`;\n this.pendingProgress = `${pendingWidth.toFixed(0)}%`;\n }\n\n public updateRowStatus(row: any, status: EnumProcessamentoStatus, message?: string) {\n row.status = status;\n if (message) {\n row.message = message;\n }\n this.sortGridData();\n }\n\n private sortGridData() {\n this.gridData.sort((a: any, b: any) => {\n const statusOrder = {\n [EnumProcessamentoStatus.FAILED]: 1,\n [EnumProcessamentoStatus.PROCESSING]: 2,\n [EnumProcessamentoStatus.SUCCESS]: 3,\n [EnumProcessamentoStatus.PENDING]: 4\n };\n if (this.sortField === 'status') {\n return (statusOrder[a.status as EnumProcessamentoStatus] - statusOrder[b.status as EnumProcessamentoStatus]) * this.sortOrder;\n } else {\n const valA = a[this.sortField] || '';\n const valB = b[this.sortField] || '';\n return valA.localeCompare(valB) * this.sortOrder;\n }\n });\n }\n\n public getData(rowData: any, field: string) {\n if (field === 'status') {\n let text = this.translate.instant(ENUM_PROCESSAMENTO_STATUS_TRANSLATION_MAP[rowData.status as EnumProcessamentoStatus]);\n if (rowData.message) {\n text += `: ${rowData.message}`;\n }\n return text;\n }\n return rowData[field];\n }\n\n public getClassStatus(rowData: any, field: string) {\n if (field !== 'status') {\n return '';\n }\n return `status ${rowData[field].toLowerCase()}`;\n }\n\n public getGridColumn(): Column[] {\n return [\n {\n field: 'label',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.registro'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n {\n field: 'status',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.status'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n ];\n }\n}\n","<p-panel>\n <p-header>{{ this.params.titulo }} ({{processingProgress }})</p-header>\n\n <div class=\"progressbar\"\n [attr.aria-label]=\"'tmsx_fnd.tmsx_angular_components.progress' | translate\">\n <div class=\"success\"\n [ngClass]=\"successProgress === '0%' ? '' : 'visible'\"\n [ngStyle]=\"{'width': successProgress }\"\n [sTooltip]=\"successProgress\"\n [escape]=\"false\"\n mobileBehavior=\"tap\"></div>\n <div class=\"failed\"\n [ngClass]=\"failedProgress === '0%' ? '' : 'visible'\"\n [ngStyle]=\"{'width': failedProgress }\"\n [sTooltip]=\"failedProgress\"\n [escape]=\"false\"\n mobileBehavior=\"tap\"></div>\n <div class=\"pending\"\n [ngClass]=\"pendingProgress === '0%' ? '' : 'visible'\"\n [ngStyle]=\"{'width': pendingProgress }\"\n [sTooltip]=\"pendingProgress\"\n [escape]=\"false\"\n mobileBehavior=\"tap\"></div>\n </div>\n\n <p-table\n #myTable\n [value]=\"gridData\"\n [columns]=\"gridColumns\"\n dataKey=\"id\"\n [resizableColumns]=\"true\"\n sortMode=\"multiple\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n [rows]=\"10\"\n showInitialSortBadge=\"true\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n [sortField]=\"sortField\"\n [sortOrder]=\"sortOrder\">\n\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n @for (col of columns; track col) {\n <col [ngStyle]=\"col.style\">\n }\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n @for (col of columns; track col) {\n <th scope=\"col\"\n [pSortableColumn]=\"col.field\"\n [pSortableColumnDisabled]=\"col.disableColumnSort\"\n [ngStyle]=\"col.style\"\n pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{col.header}}</span>\n @if (!col.disableColumnSort) {\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n }\n </div>\n </th>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr>\n @for (col of columns; track col) {\n <td [ngClass]=\"getClassStatus(rowData, col.field)\">\n {{ getData(rowData, col.field) }}\n </td>\n }\n </tr>\n\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <s-table-paging\n [table]=\"myTable\"\n [totalRecords]=\"gridData.length\"\n [exportable]=\"false\"\n >\n </s-table-paging>\n </ng-template>\n</p-table>\n</p-panel>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { LocaleModule } from '@seniorsistemas/angular-components/locale';\nimport { TableModule } from '@seniorsistemas/angular-components/table';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { PanelModule } from 'primeng/panel';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\nimport { PainelProcessamentoComponent } from './painel-processamento.component';\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n TooltipModule,\n PrimeTableModule,\n TableModule,\n ButtonModule,\n CommonModule,\n PanelModule,\n\n ],\n declarations: [\n PainelProcessamentoComponent\n ],\n providers: [],\n exports: [\n PainelProcessamentoComponent\n ],\n})\nexport class PainelProcessamentoModule {}\n","export const fallback: any = {\n \"tmsx_fnd.tmsx_angular_components.add\": \"Adicionar\",\n \"tmsx_fnd.tmsx_angular_components.audit_created_by\": \"Criado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_modified_by\": \"Modificado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_inactivated_by\": \"Inativado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\": \"Sem informações de auditoria\",\n \"tmsx_fnd.tmsx_angular_components.delete\": \"Excluir\",\n \"tmsx_fnd.tmsx_angular_components.edit\": \"Editar\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_description\": \"Você não tem permissão para acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_title\": \"Acesso Negado\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_description\": \"O recurso solicitado não foi encontrado.\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_title\": \"Não Encontrado\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_description\": \"Você não está autorizado a acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_title\": \"Não Autorizado\",\n \"tmsx_fnd.tmsx_angular_components.grid_aninhada\": \"Grid Aninhada\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required\": \"É necessário informar a data\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_cancelar\": \"Cancelar\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar\": \"Editar valores\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging\": \"registros encontrados\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_salvar\": \"Salvar alterações\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_false\": \"Não\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_true\": \"Sim\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_empty_field\": \"Não informado\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento\": \"Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_api_error\": \"API de envio não definida\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed\": \"Ocorreu um erro\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending\": \"Pendente\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing\": \"Processando\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_success\": \"Finalizado com sucesso\",\n \"tmsx_fnd.tmsx_angular_components.registro\": \"Registro\",\n \"tmsx_fnd.tmsx_angular_components.showcase_painel_processamento_title\": \"Demonstração do Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.showcase_table_title\": \"Demonstração da Tabela\",\n \"tmsx_fnd.tmsx_angular_components.showcase_title\": \"Showcase\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_false\": \"Inativo\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_true\": \"Ativo\",\n \"tmsx_fnd.tmsx_angular_components.status\": \"Situação\",\n \"tmsx_fnd.tmsx_angular_components.total_records\": \"{{ value }} registros encontrados\"\n};\n","import { InjectionToken, ModuleWithProviders, NgModule } from \"@angular/core\";\n\nexport const HOST_PROJECT_CONFIGS_INJECTION_TOKEN = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class TmsxAngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<TmsxAngularComponentsModule> {\n return {\n ngModule: TmsxAngularComponentsModule,\n providers: [\n {\n provide: HOST_PROJECT_CONFIGS_INJECTION_TOKEN,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.UtilsService","i4","i6","i9","PrimeTableModule","PrimeTooltipModule","i2","i3","i5","i7","i1"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-tmsx-angular-components.mjs","sources":["../../lib/src/commons/field-type/field-type.ts","../../lib/src/utils/services/utils.service.ts","../../lib/src/components/grid-editable-nested/grid-editable-nested.component.ts","../../lib/src/components/grid-editable-nested/grid-editable-nested.component.html","../../lib/src/components/grid-editable-nested/grid-editable-nested.module.ts","../../lib/src/components/painel-processamento/processamento.ts","../../lib/src/components/painel-processamento/painel-processamento.component.ts","../../lib/src/components/painel-processamento/painel-processamento.component.html","../../lib/src/components/painel-processamento/painel-processamento.module.ts","../../lib/src/components/sidebar-dinamica/sidebar-dinamica.component.ts","../../lib/src/components/sidebar-dinamica/sidebar-dinamica.component.html","../../lib/src/components/sidebar-dinamica/sidebar-dinamica.module.ts","../../lib/src/locale/fallback.ts","../../lib/src/tmsx-angular-components.module.ts","../../lib/src/seniorsistemas-tmsx-angular-components.ts"],"sourcesContent":["/**\n * Constante que mapeia os tipos de campo disponíveis no DynamicForm do\n * `@seniorsistemas/angular-components`. Substitui o antigo `FieldType` enum\n * que foi removido na v19 em favor de string literals.\n *\n * Uso:\n * ```typescript\n * import { FieldType } from '@tmsx/angular-components';\n *\n * { type: FieldType.String, name: 'nome', ... }\n * { type: FieldType.Enum, name: 'status', ... }\n * { type: FieldType.Lookup, name: 'cidade', ... }\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const FieldType = {\n /** Campo de texto livre padrão. */\n String: 'string',\n /** Campo de texto tratado como dado binário (ex: base64). */\n Binary: 'binary',\n /** Campo de seleção (dropdown/select) com lista de opções. */\n Enum: 'enum',\n /** Campo numérico inteiro (usa NumberInput). */\n Integer: 'integer',\n /** Campo numérico genérico com grande precisão (usa BignumberInput). */\n Number: 'number',\n /** Campo numérico com casas decimais (usa BignumberInput). */\n Double: 'double',\n /** @deprecated Use `Number` ou `Double` com addon. Campo numérico legado. */\n LegacyNumber: 'legacyNumber',\n /** @deprecated Use `Number` ou `Double` com addon. Campo monetário com símbolo de moeda. */\n Money: 'money',\n /** Campo booleano exibido como radio buttons (Sim/Não). */\n Boolean: 'boolean',\n /** Campo booleano exibido como toggle switch. */\n BooleanSwitch: 'booleanSwitch',\n /** Campo de data apenas (dia/mês/ano). */\n Date: 'date',\n /** Campo de data e hora com timezone UTC. */\n DateTime: 'dateTime',\n /** Campo de data e hora sem timezone (local). */\n LocalDateTime: 'localDateTime',\n /** Campo de hora apenas (hora:minuto:segundo). */\n Time: 'time',\n /** Campo de pesquisa avançada com autocompletar e diálogo de busca. */\n Lookup: 'lookup',\n /** Campo de autocompletar simples com sugestões via Observable. */\n Autocomplete: 'autocomplete',\n /** Campo de seleção única com radio buttons. */\n RadioButton: 'radioButton',\n /** Campo de múltipla escolha com checkboxes. */\n Checkbox: 'checkbox',\n /** Campo de entrada de múltiplas tags/chips. */\n Chips: 'chips',\n /** Campo de área de texto multilinha. */\n TextArea: 'textArea',\n /** Campo de área de texto com geração de conteúdo via IA. */\n ContentGenerator: 'contentGenerator',\n /** @deprecated Use `ContentGenerator`. */\n TextAreaIA: 'textAreaIA',\n /** Campo de upload de arquivos binários. */\n Blob: 'blob',\n /** Botão renderizado como campo do formulário. */\n Button: 'button',\n /** Campo de senha com indicador de força. */\n Password: 'password',\n /** Campo de foto de perfil com recorte. */\n ProfilePicture: 'profilePicture',\n /** Campo de controle deslizante (slider). */\n Slider: 'slider',\n /** Campo de avaliação com estrelas. */\n StarRating: 'starRating',\n /** Campo de seleção de país com entrada de telefone. */\n CountryPhonePicker: 'countryPhonePicker',\n} as const;\n\n/** Tipo union com todos os valores possíveis de FieldType. */\nexport type FieldTypeValue = (typeof FieldType)[keyof typeof FieldType];\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FieldConfig, SelectOption } from '@seniorsistemas/angular-components/dynamic-form';\nimport { LocalizedDatePipe } from '@seniorsistemas/angular-components/locale';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n constructor(\n private readonly translate: TranslateService,\n private readonly dataPipe: LocalizedDatePipe\n ) { }\n\n public getAuditCreatedBy(createdBy: string, createdDate: Date): string {\n if (!createdBy || !createdDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(createdDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_created_by', {nome: createdBy, data: date[0], hora: date[1]});\n }\n\n public getAuditModifiedBy(modifiedBy: string, modifiedDate: Date): string {\n if (!modifiedBy || !modifiedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(modifiedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_modified_by', {nome: modifiedBy, data: date[0], hora: date[1]});\n }\n\n public getAuditInactivatedBy(inactivatedBy: string, inactivatedDate: Date): string {\n if (!inactivatedBy || !inactivatedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(inactivatedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_inactivated_by', {nome: inactivatedBy, data: date[0], hora: date[1]});\n }\n\n /* usage: [innerHTML]=\"getProp(rowData, 'nome')\" */\n public getProp(obj: any, path: any, type?: string): string {\n let value = path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n if (value || value === 0) {\n if (type) {\n value = this.formatType(value, type);\n }\n return `<span>${value}</span>`;\n }\n return `<span class=\"empty-grid\">${this.translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_empty_field')}</span>`;\n }\n\n public formatType(value: any, type: string): string {\n if (value) {\n if (type === 'date') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item.split(' '));\n return date[0];\n }\n if (type === 'datetime') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item);\n return date;\n }\n if (type === 'decimal') {\n if (typeof value === 'string') {\n value = Number(value);\n }\n return value.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n }\n if (type === 'currency') {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n if (type === 'cep') {\n return value.replace(/^(\\d{2})(\\d{3})(\\d{3})/, '$1.$2-$3');\n }\n }\n return value;\n }\n\n /* usage: [ngClass]=\"emptyGridClass(value)\" */\n public emptyGridClass(value: string): string {\n if (!value || value === this.translate.instant('tmsx_fnd.replicacao.list_grid_empty_field')) {\n return 'empty-grid';\n }\n return '';\n }\n\n public infoContent(entity?: any) {\n let text = '';\n if (!entity) {\n return this.translate.instant(\"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\");\n }\n text += this.getAuditCreatedBy(entity.createdBy, entity.createdDate);\n if (text) {\n text += '\\n';\n }\n text += this.getAuditModifiedBy(entity.lastModifiedBy, entity.lastModifiedDate);\n return text;\n }\n\n public formatCurrency(value: number): string {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n\n public getAtivoTokenLabel(formField: FieldConfig, value: any, translate: TranslateService) {\n const { name, type, label } = formField as any;\n if (type === 'radio') {\n const labelValue = value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_false');\n return { id: name, label: `${label}: ${labelValue}` };\n }\n return this.createFilterTokens(formField, value, translate);\n }\n\n public getUtilsProp(obj: any, path: any) {\n return path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public createFilterTokens(formField: FieldConfig, value: any, translate: TranslateService) {\n const { name, type, label, searchFields, options } = formField as any;\n const labelValue = this.getLabelValueByType(type, value, searchFields, options, translate);\n return { id: name, label: `${label}: ${labelValue}` };\n }\n\n private getLabelValueByType(\n type: string,\n value: any,\n searchFields: FieldConfig[],\n options: SelectOption[],\n translate: TranslateService\n ): string {\n switch (type) {\n case 'date':\n return this.getDateLabel(value);\n case 'time':\n return this.getTimeFromDate(value);\n case 'localdatetime':\n case 'datetime':\n return this.getDateTimeFromDate(value);\n case 'lookup':\n return this.getLookupLabel(value, searchFields);\n case 'enum':\n return this.getEnumLabel(value, options);\n case 'boolean':\n return this.getBooleanLabel(value, translate);\n default:\n return value;\n }\n }\n\n private getDateLabel(value: any): string {\n const dateObj = value instanceof Date ? value : new Date(value);\n return !isNaN(dateObj.getTime()) ? dateObj.toLocaleDateString('pt-BR') : value;\n }\n\n private getLookupLabel(value: any, searchFields: FieldConfig[]): string {\n return searchFields.map((field: FieldConfig) => this.getUtilsProp(value, field.name)).join(' - ');\n }\n\n private getEnumLabel(value: any, options: SelectOption[]): string {\n const option = options.find((opt: SelectOption) => opt.value === value);\n return option ? option.label : value;\n }\n\n private getBooleanLabel(value: any, translate: TranslateService): string {\n return value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_false');\n }\n\n public getTimeFromDate(value: any) {\n let dateObj: Date;\n if (typeof value === 'string' && /^\\d{2}:\\d{2}(:\\d{2})?$/.test(value)) {\n const [h, m, s = '00'] = value.split(':');\n dateObj = new Date();\n dateObj.setHours(+h, +m, +s, 0);\n } else {\n dateObj = value instanceof Date ? value : new Date(value);\n }\n if (!isNaN(dateObj.getTime())) {\n return dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n }\n return value;\n }\n\n public getDateTimeFromDate(value: any) {\n const dateObj = value instanceof Date ? value : new Date(value);\n if (!isNaN(dateObj.getTime())) {\n const datePart = dateObj.toLocaleDateString('pt-BR'); // DD/MM/AAAA\n const timePart = dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n return `${datePart} ${timePart}`;\n }\n return value;\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Hotkey, HotkeysService } from 'angular2-hotkeys';\nimport { SortMeta } from 'primeng/api';\nimport { Table, TableLazyLoadEvent } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { UtilsService } from '../../utils/services/utils.service';\nimport { FrozenColumn, GridConfig } from './grid.interface';\n\n@Component({\n selector: 'tmsx-grid-editable-nested',\n templateUrl: './grid-editable-nested.component.html',\n styleUrls: ['./grid-editable-nested.component.scss']\n})\nexport class GridEditableNestedComponent implements OnDestroy, OnInit, OnChanges {\n @Input() public config!: GridConfig;\n @Input() nestedFunction!: (listParams: ListParams, rowData: any) => Promise<void>;\n @Output() openDetails = new EventEmitter<any>();\n @Output() paging = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() save = new EventEmitter<any>();\n @Output() add = new EventEmitter<any>();\n\n @ViewChild(\"table\", { static: false }) public table!: Table;\n public clonedData: Record<string, any> = {};\n public gridLoading = true;\n public editing = false;\n public lazy = true;\n public deleteEnabled = false;\n public editEnabled = false;\n public addEnabled = false;\n public detailsEnabled = false;\n public calendarTooltipText = '';\n public currentListParams: ListParams = { page: 0, size: 5, sort: [] };\n\n public gridData: any[] = [];\n public gridColumns: any[] = [];\n public gridTotalRecords = 0;\n public selected: any[] = [];\n\n public nestedGridLoading = false;\n public frozenPosition = 'left';\n public frozenWidth = '200px';\n public frozenColumns: FrozenColumn[] = [];\n\n private readonly ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly translate: TranslateService,\n private readonly utils: UtilsService,\n private readonly hotkeysService: HotkeysService,\n ) {\n this.calendarTooltipText = this.translate.instant('tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required');\n }\n\n ngOnInit(): void {\n this.setGridData();\n this.setHotkeys();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.config) {\n this.setGridData();\n }\n }\n\n public formatData(column: any, value: string) {\n return value;\n }\n\n private setGridData() {\n if (!this.config) {\n return;\n }\n const { data, size, columns, frozenPosition, frozenColumns, editing, lazy,\n deleteActionsEnabled, editEnabled, addEnabled, editActionsEnabled } = this.config;\n\n this.gridData = data ?? [];\n this.gridTotalRecords = size ?? 0;\n this.gridColumns = columns ?? [];\n this.frozenPosition = frozenPosition ?? 'left';\n this.frozenColumns = frozenColumns ?? [];\n this.frozenWidth = this.calculateFrozenWidth(this.frozenColumns);\n\n this.editing = !!editing;\n this.lazy = !!lazy;\n this.deleteEnabled = !!deleteActionsEnabled;\n this.editEnabled = !!editEnabled;\n this.addEnabled = !!addEnabled;\n this.detailsEnabled = !!editActionsEnabled;\n\n this.changeDetectorRef.detectChanges();\n this.nestedGridLoading = false;\n this.gridLoading = false;\n }\n\n private calculateFrozenWidth(frozenColumns: FrozenColumn[]): string {\n const gutter = 120;\n if (!(frozenColumns?.length)) {\n return '120px';\n }\n const totalWidth = frozenColumns.reduce((sum, col) => sum + gutter + (parseInt(col.width, 10) || 0), 0);\n return `${totalWidth}px`;\n }\n\n\n public getActions(data: any): any[] {\n return [\n {\n id: 'edit',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.edit'),\n disabled: !this.detailsEnabled,\n command: () => {\n this.openRowDetails(data.id);\n },\n },\n { separator: true },\n {\n id: 'delete',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.delete'),\n disabled: !this.deleteEnabled,\n command: () => {\n this.onDelete(data.id);\n },\n },\n ];\n }\n\n public updateGridData(event: TableLazyLoadEvent) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n this.gridLoading = true;\n\n if (this.clonedData && Object.keys(this.clonedData).length) {\n this.clonedData = {};\n this.table.editingRowKeys = {};\n }\n\n this.paging.emit({ page, size });\n }\n\n public async updateNestedGridData(event: TableLazyLoadEvent, rowData: any) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n const sort = event.multiSortMeta || [];\n\n rowData.nestedGridLoading = true;\n await this.nestedFunction({ page, size, sort }, rowData);\n }\n\n onTab(event: KeyboardEvent) {\n if (event.key !== 'Tab') {\n return;\n }\n\n event.preventDefault();\n\n const focusables = Array.from(\n document.querySelectorAll<HTMLElement>(\n 'p-cellEditor input, p-cellEditor textarea, p-cellEditor [tabindex=\"0\"]'\n )\n ).filter(el => el.offsetParent !== null);\n\n const currentIndex = focusables.indexOf(event.target as HTMLElement);\n\n let next: HTMLElement | undefined;\n\n if (event.shiftKey) {\n next = focusables[currentIndex - 1] || focusables[focusables.length - 1];\n } else {\n next = focusables[currentIndex + 1] || focusables[0];\n }\n\n if (next) {\n next.focus();\n }\n }\n\n\n public getRowIndex() {\n const page = this.currentListParams.page || 0;\n const size = this.currentListParams.size || 0;\n return page * size;\n }\n\n public getPageSize() {\n return this.currentListParams.size ?? 0;\n }\n\n public openRowDetails(id: string) {\n this.openDetails.emit(id);\n }\n\n public onDelete(id: string) {\n this.delete.emit(id);\n }\n\n public onAdd() {\n this.add.emit();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onEditSave() {\n this.saveAllRows();\n }\n\n public onEditCancel() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n const index = this.gridData.findIndex((row) => row.id === data.id);\n this.gridData[index] = this.clonedData[data.id];\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n }\n\n public initAllRowsEdit() {\n this.gridData.forEach((data) => {\n this.editing = true;\n this.table.initRowEdit(data);\n this.clonedData[data.id] = { ...data };\n });\n }\n\n public saveAllRows() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n this.save.emit(this.gridData);\n }\n\n public formatRowData(field: any) {\n return field;\n }\n\n public filterOptions(event: any) {\n return event;\n }\n\n public getSpanProp(obj: any, path: any, type?: string): string {\n type = type?.toLowerCase();\n const value = this.utils.getProp(obj, path, type);\n if (value === '<span>0</span>' && type === 'decimal') {\n return '<span>0,00</span>';\n }\n if (!obj.tiposDados) {\n return value;\n }\n if ('MONETARIO' === obj.tiposDados[path]) {\n return 'R$ ' + value;\n }\n if ('PERCENTUAL' === obj.tiposDados[path]) {\n return value + ' %';\n }\n return value;\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n 'alt+shift+n',\n () => {\n this.onAdd();\n return false;\n },\n ['INPUT', 'SELECT', 'TEXTAREA']\n )\n );\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","<div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button id=\"add-button\"\n data-cy=\"add-button\"\n priority=\"primary\" type=\"button\"\n [label]=\"'tmsx_fnd.tmsx_angular_components.add' | translate\"\n tooltip=\"{{'tmsx_fnd.tmsx_angular_components.add' | translate}} (Alt + Shift + N)\"\n [disabled]=\"!addEnabled\"\n (click)=\"onAdd()\">\n </s-button>\n @if (!editing) {\n <s-button\n priority=\"primary\"\n iconClass=\"fa fa-edit\"\n label=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n tooltip=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar' | translate}}\"\n [disabled]=\"!editEnabled\"\n (click)=\"initAllRowsEdit()\"\n ></s-button>\n }\n @if (editing) {\n <s-button\n priority=\"primary\"\n label=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_salvar' | translate}}\"\n iconClass=\"fa fa-check\"\n [disabled]=\"false\"\n (click)=\"onEditSave()\"\n ></s-button>\n }\n @if (editing) {\n <s-button\n priority=\"default\"\n label=\"{{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_cancelar' | translate}}\"\n iconClass=\"fa fa-times\"\n [disabled]=\"false\"\n (click)=\"onEditCancel()\"\n ></s-button>\n }\n <p-table\n selectionMode=\"single\"\n [(selection)]=\"selected\"\n [value]=\"gridData\"\n [columns]=\"gridColumns\"\n dataKey=\"id\"\n [rows]=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n [paginator]=\"true\"\n [totalRecords]=\"gridTotalRecords\"\n [lazy]=\"lazy\"\n (onLazyLoad)=\"updateGridData($event)\"\n *sLoadingState=\"gridLoading\"\n sortMode=\"multiple\"\n [scrollable]=\"true\"\n editMode=\"row\"\n #table\n >\n <ng-template pTemplate=\"frozenbody\" let-rowData let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"col50\" tabindex=\"0\" [sRowToggler]=\"rowData\"\n [attr.aria-label]=\"expanded\n ? ('tmsx_fnd.tmsx_angular_components.collapse_row' | translate)\n : ('tmsx_fnd.tmsx_angular_components.expand_row' | translate)\"\n (keydown.enter)=\"table.toggleRow(rowData, $event)\">\n <i class=\"fa fa-{{ expanded ? 'minus' : 'plus' }}\"\n aria-hidden=\"true\"></i>\n </td>\n @for (col of frozenColumns; track col) {\n <td class=\"colText\"\n tooltipPosition=\"top\" showDelay=\"500\"\n [innerHTML]=\"getSpanProp(rowData, col.field)\">\n </td>\n }\n <td class=\"frozenButton\">\n <s-button\n id=\"edit-button\"\n data-cy=\"edit-button\"\n priority=\"default\"\n type=\"button\"\n size=\"small\"\n [auxiliary]=\"true\"\n [disabled]=\"false\"\n [menuOptions]=\"getActions(rowData)\">\n </s-button>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n @for (col of columns; track col) {\n <col [style.width]=\"col.width\" />\n }\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n @for (col of columns; track col) {\n <th scope=\"col\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n </div>\n </th>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-expanded=\"expanded\" let-columns=\"columns\">\n <tr sNavigation tabindex=\"0\" [pEditableRow]=\"rowData\">\n @for (col of columns; track col) {\n <td\n [ngClass]=\"editing? 'editPadding': ''\"\n pResizableColumn\n [pTooltip]=\"rowData[col.field]\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n tabindex=\"0\"\n class=\"col80 colText\"\n >\n <p-cellEditor>\n <ng-template pTemplate=\"input\">\n <div class=\"ui-fluid\">\n @switch (col.type) {\n @case ('Text') {\n <span>{{ rowData[col.field] }}</span>\n }\n @case ('Date') {\n <p-datepicker\n [(ngModel)]=\"rowData[col.field]\"\n appendTo=\"body\"\n [showIcon]=\"true\"\n [required]=\"true\"\n [attr.aria-label]=\"col.header\"\n pTooltip=\"{{ calendarTooltipText }}\"\n tooltipPosition=\"bottom\"\n [tooltipDisabled]=\"rowData[col.field]\"\n ></p-datepicker>\n }\n @case ('Autocomplete') {\n <p-autoComplete\n [(ngModel)]=\"rowData[col.field]\"\n [suggestions]=\"col.options\"\n [attr.aria-label]=\"col.header\"\n appendTo=\"body\"\n (completeMethod)=\"filterOptions($event)\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n ></p-autoComplete>\n }\n @case ('Decimal') {\n <div class=\"ui-inputgroup\">\n @if ('MONETARIO' === rowData.tiposDados[col.field]) {\n <span class=\"ui-inputgroup-addon\"\n >R$</span>\n }\n <input sNumberInput [scale]=\"2\"\n alignTo=\"right\"\n thousandsSeparator=\".\"\n pInputText\n [attr.aria-label]=\"col.header\"\n [(ngModel)]=\"rowData[col.field]\"\n (keydown)=\"onTab($event)\"\n />\n @if ('PERCENTUAL' === rowData.tiposDados[col.field]) {\n <span class=\"ui-inputgroup-addon\"\n >%</span>\n }\n </div>\n }\n @default {\n <input pInputText type=\"text\"\n [(ngModel)]=\"rowData[col.field]\"\n [attr.aria-label]=\"col.header\"\n (keydown)=\"onTab($event)\"\n />\n }\n }\n </div>\n </ng-template>\n <ng-template pTemplate=\"output\">\n <div [innerHTML]=\"getSpanProp(rowData, col.field, col.type)\"></div>\n </ng-template>\n </p-cellEditor>\n </td>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"rowexpansion\" let-rowData>\n <tr class=\"sds-expanded-row\">\n <td [attr.colspan]=\"gridColumns.length + 1\">\n <p-table\n [value]=\"rowData.nestedGridData\"\n [columns]=\"rowData.nestedGridColumns\"\n dataKey=\"id\"\n [rows]=\"5\"\n [first]=\"getRowIndex()\"\n [rows]=\"getPageSize()\"\n [rowsPerPageOptions]=\"[5, 10, 20, 50]\"\n [paginator]=\"true\"\n [totalRecords]=\"rowData.nestedGridTotalRecords\"\n [responsive]=\"true\"\n [lazy]=\"true\"\n (onLazyLoad)=\"updateNestedGridData($event, rowData)\"\n sortMode=\"multiple\"\n *sLoadingState=\"rowData.nestedGridLoading\"\n >\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n @for (col of columns; track col) {\n <th scope=\"col\"\n [pSortableColumn]=\"col.field\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr [pSelectableRow]=\"rowData\">\n @for (col of columns; track col) {\n <td class=\"colText\">\n {{ formatData(col, rowData[col.field]) }}\n </td>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ rowData.nestedGridTotalRecords }}\n {{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </td>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <span>\n {{ gridTotalRecords }}\n {{'tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging' | translate}}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbModule } from '@seniorsistemas/angular-components/breadcrumb';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { ControlErrorsModule } from '@seniorsistemas/angular-components/control-errors';\nimport { CustomFieldsModule } from '@seniorsistemas/angular-components/custom-fields';\nimport { DynamicFormModule } from '@seniorsistemas/angular-components/dynamic-form';\nimport { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { LocaleModule } from '@seniorsistemas/angular-components/locale';\nimport { NumberInputModule } from '@seniorsistemas/angular-components/number-input';\nimport { TableModule } from '@seniorsistemas/angular-components/table';\nimport { TokenListModule } from '@seniorsistemas/angular-components/token-list';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { SharedModule } from 'primeng/api';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { PanelModule } from 'primeng/panel';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\nimport { ToastModule } from 'primeng/toast';\nimport { TooltipModule as PrimeTooltipModule } from 'primeng/tooltip';\nimport { GridEditableNestedComponent } from './grid-editable-nested.component';\n\n@NgModule({\n imports: [\n CommonModule,\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n ButtonModule,\n TableModule,\n TooltipModule,\n LoadingStateModule,\n NumberInputModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n\n // PrimeNG modules\n ToastModule,\n PrimeTableModule,\n PrimeTooltipModule,\n PanelModule,\n InputTextModule,\n ConfirmDialogModule,\n DatePickerModule,\n DropdownModule,\n SharedModule,\n AutoCompleteModule,\n CheckboxModule,\n\n // Angular modules\n FormsModule,\n ReactiveFormsModule\n ],\n declarations: [\n GridEditableNestedComponent,\n ],\n providers: [],\n exports: [\n GridEditableNestedComponent,\n ],\n})\nexport class GridEditableNestedModule {}\n","import { Observable } from \"rxjs\";\n\nexport interface ProcessamentoInput {\n quantidadeChamadasSimultaneas: number;\n registros: ProcessamentoRegistro[];\n titulo: string;\n}\n\nexport interface ProcessamentoRegistro {\n descricao: string;\n apiEnvio: (data: object) => Observable<any>;\n objEnvio: any;\n}\n\nexport interface ProcessamentoGrid {\n registro: any;\n label: string;\n status: EnumProcessamentoStatus;\n message?: string;\n}\n\nexport enum EnumProcessamentoStatus {\n SUCCESS = \"SUCCESS\",\n FAILED = \"FAILED\",\n PENDING = \"PENDING\",\n PROCESSING = \"PROCESSING\"\n}\n\nexport const ENUM_PROCESSAMENTO_STATUS_TRANSLATION_MAP: Record<EnumProcessamentoStatus, string> = {\n [EnumProcessamentoStatus.SUCCESS]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_success',\n [EnumProcessamentoStatus.FAILED]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed',\n [EnumProcessamentoStatus.PENDING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending',\n [EnumProcessamentoStatus.PROCESSING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing'\n};\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Column, EnumColumnFieldType } from '@seniorsistemas/angular-components/table';\nimport { ENUM_PROCESSAMENTO_STATUS_TRANSLATION_MAP, EnumProcessamentoStatus, ProcessamentoGrid, ProcessamentoInput } from './processamento';\n\n@Component({\n selector: 'tmsx-painel-processamento',\n templateUrl: './painel-processamento.component.html',\n styleUrls: ['./painel-processamento.component.scss']\n})\nexport class PainelProcessamentoComponent implements OnInit {\n\n private static readonly GENERIC_ERR_KEY = 'tmsx_fnd.tmsx_angular_components.painel_processamento_generic_error';\n\n @Input() params: ProcessamentoInput;\n @Output() processado = new EventEmitter();\n @Output() concluido = new EventEmitter();\n\n public gridData: ProcessamentoGrid[];\n public gridColumns: Column[];\n\n public totalRecords = 0;\n public successCount = 0;\n public failedCount = 0;\n public pendingCount = 0;\n public successProgress = '0%';\n public failedProgress = '0%';\n public pendingProgress = '100%';\n public processingProgress = '0%';\n public sortField = 'status';\n public sortOrder = 1;\n\n constructor(\n private readonly translate: TranslateService\n ) { }\n\n ngOnInit() {\n this.initPanel();\n }\n\n initPanel() {\n this.gridColumns = this.getGridColumn();\n this.initGrid();\n this.initProgressBar();\n }\n\n initProgressBar() {\n this.successProgress = '0%';\n this.failedProgress = '0%';\n this.pendingProgress = '100%';\n this.processingProgress = '0%';\n this.totalRecords = this.params.registros.length;\n this.pendingCount = this.totalRecords;\n\n if (this.params.quantidadeChamadasSimultaneas > 1) {\n this.processAllRecordsWithPLimit();\n } else {\n this.syncProcessRecord(0);\n }\n }\n\n initGrid() {\n this.gridData = [];\n this.gridData = this.params.registros.map(registro => ({\n registro,\n status: EnumProcessamentoStatus.PENDING,\n label: registro.descricao\n }));\n }\n\n private getErrorMessage(error: any): string {\n try {\n if (!error) {\n return this.genericErrorMsg;\n }\n if (error?.error?.message) {\n return String(error.error.message);\n }\n if (error?.message?.message) {\n return String(error.message.message);\n }\n return this.genericErrorMsg;\n } catch {\n return this.genericErrorMsg;\n }\n }\n\n private get genericErrorMsg(): string {\n return this.translate.instant(PainelProcessamentoComponent.GENERIC_ERR_KEY);\n }\n\n private updateRowSuccess(row: any): void {\n this.successCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.SUCCESS);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private updateRowError(row: any, index: number, message: string): void {\n this.failedCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.FAILED, message);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private syncProcessRecord(index: number): void {\n if (this.pendingCount < 1) {\n this.concluido.emit('ok');\n return;\n }\n this.updateRowStatus(this.gridData[index], EnumProcessamentoStatus.PROCESSING);\n const record = this.params.registros[index];\n const row = this.gridData.find(item => item.registro === record);\n\n if (record.apiEnvio) {\n record.apiEnvio(record.objEnvio)\n .subscribe(\n () => {\n this.updateRowSuccess(row);\n this.syncProcessRecord(index + 1);\n },\n (error: any) => {\n this.updateRowError(row, index, this.getErrorMessage(error));\n this.syncProcessRecord(index + 1);\n }\n );\n } else {\n this.failedCount = this.pendingCount;\n this.pendingCount = 0;\n this.updateRowStatus(row,\n EnumProcessamentoStatus.FAILED,\n this.translate.instant('tmsx_fnd.tmsx_angular_components.painel_processamento_api_error')\n );\n this.updateProgressBar();\n this.concluido.emit('erro');\n }\n }\n\n async processAllRecordsWithPLimit() {\n const pLimitModule: any = await import('p-limit');\n const pLimit = pLimitModule.default ?? pLimitModule;\n const limit = pLimit(this.params.quantidadeChamadasSimultaneas);\n const promises = this.params.registros.map((record, index) => limit(async () => {\n const row = this.gridData.find(item => item.registro === record);\n this.updateRowStatus(row, EnumProcessamentoStatus.PROCESSING);\n try {\n const result = await record.apiEnvio(record.objEnvio).toPromise();\n this.updateRowSuccess(row);\n return { success: true, record, result };\n } catch (error) {\n this.updateRowError(row, index, this.getErrorMessage(error));\n return { success: false, record, error };\n }\n }));\n const results = await Promise.all(promises);\n this.concluido.emit(results);\n return results;\n }\n\n private updateProgressBar(): void {\n const successWidth = (this.successCount / this.totalRecords) * 100;\n const failedWidth = (this.failedCount / this.totalRecords) * 100;\n const pendingWidth = (this.pendingCount / this.totalRecords) * 100;\n const processedWidth = successWidth + failedWidth;\n\n this.processingProgress = `${processedWidth.toFixed(0)}%`;\n this.successProgress = `${successWidth.toFixed(0)}%`;\n this.failedProgress = `${failedWidth.toFixed(0)}%`;\n this.pendingProgress = `${pendingWidth.toFixed(0)}%`;\n }\n\n public updateRowStatus(row: any, status: EnumProcessamentoStatus, message?: string) {\n row.status = status;\n if (message) {\n row.message = message;\n }\n this.sortGridData();\n }\n\n private sortGridData() {\n this.gridData.sort((a: any, b: any) => {\n const statusOrder = {\n [EnumProcessamentoStatus.FAILED]: 1,\n [EnumProcessamentoStatus.PROCESSING]: 2,\n [EnumProcessamentoStatus.SUCCESS]: 3,\n [EnumProcessamentoStatus.PENDING]: 4\n };\n if (this.sortField === 'status') {\n return (statusOrder[a.status as EnumProcessamentoStatus] - statusOrder[b.status as EnumProcessamentoStatus]) * this.sortOrder;\n } else {\n const valA = a[this.sortField] || '';\n const valB = b[this.sortField] || '';\n return valA.localeCompare(valB) * this.sortOrder;\n }\n });\n }\n\n public getData(rowData: any, field: string) {\n if (field === 'status') {\n let text = this.translate.instant(ENUM_PROCESSAMENTO_STATUS_TRANSLATION_MAP[rowData.status as EnumProcessamentoStatus]);\n if (rowData.message) {\n text += `: ${rowData.message}`;\n }\n return text;\n }\n return rowData[field];\n }\n\n public getClassStatus(rowData: any, field: string) {\n if (field !== 'status') {\n return '';\n }\n return `status ${rowData[field].toLowerCase()}`;\n }\n\n public getGridColumn(): Column[] {\n return [\n {\n field: 'label',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.registro'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n {\n field: 'status',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.status'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n ];\n }\n}\n","<p-panel>\n <p-header>{{ this.params.titulo }} ({{processingProgress }})</p-header>\n\n <div class=\"progressbar\"\n [attr.aria-label]=\"'tmsx_fnd.tmsx_angular_components.progress' | translate\">\n <div class=\"success\"\n [ngClass]=\"successProgress === '0%' ? '' : 'visible'\"\n [ngStyle]=\"{'width': successProgress }\"\n [sTooltip]=\"successProgress\"\n [escape]=\"false\"\n mobileBehavior=\"tap\"></div>\n <div class=\"failed\"\n [ngClass]=\"failedProgress === '0%' ? '' : 'visible'\"\n [ngStyle]=\"{'width': failedProgress }\"\n [sTooltip]=\"failedProgress\"\n [escape]=\"false\"\n mobileBehavior=\"tap\"></div>\n <div class=\"pending\"\n [ngClass]=\"pendingProgress === '0%' ? '' : 'visible'\"\n [ngStyle]=\"{'width': pendingProgress }\"\n [sTooltip]=\"pendingProgress\"\n [escape]=\"false\"\n mobileBehavior=\"tap\"></div>\n </div>\n\n <p-table\n #myTable\n [value]=\"gridData\"\n [columns]=\"gridColumns\"\n dataKey=\"id\"\n [resizableColumns]=\"true\"\n sortMode=\"multiple\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n [rows]=\"10\"\n showInitialSortBadge=\"true\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\n [sortField]=\"sortField\"\n [sortOrder]=\"sortOrder\">\n\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n @for (col of columns; track col) {\n <col [ngStyle]=\"col.style\">\n }\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n @for (col of columns; track col) {\n <th scope=\"col\"\n [pSortableColumn]=\"col.field\"\n [pSortableColumnDisabled]=\"col.disableColumnSort\"\n [ngStyle]=\"col.style\"\n pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{col.header}}</span>\n @if (!col.disableColumnSort) {\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n }\n </div>\n </th>\n }\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr>\n @for (col of columns; track col) {\n <td [ngClass]=\"getClassStatus(rowData, col.field)\">\n {{ getData(rowData, col.field) }}\n </td>\n }\n </tr>\n\n </ng-template>\n\n <ng-template pTemplate=\"paginatorright\">\n <s-table-paging\n [table]=\"myTable\"\n [totalRecords]=\"gridData.length\"\n [exportable]=\"false\"\n >\n </s-table-paging>\n </ng-template>\n</p-table>\n</p-panel>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { LocaleModule } from '@seniorsistemas/angular-components/locale';\nimport { TableModule } from '@seniorsistemas/angular-components/table';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { PanelModule } from 'primeng/panel';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\nimport { PainelProcessamentoComponent } from './painel-processamento.component';\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n TooltipModule,\n PrimeTableModule,\n TableModule,\n ButtonModule,\n CommonModule,\n PanelModule,\n\n ],\n declarations: [\n PainelProcessamentoComponent\n ],\n providers: [],\n exports: [\n PainelProcessamentoComponent\n ],\n})\nexport class PainelProcessamentoModule {}\n","import { Component, EventEmitter, Input, OnChanges, Output, TemplateRef } from '@angular/core';\nimport { SidebarComponentizadoAction, SidebarComponentizadoActionEvent, SidebarComponentizadoTab } from './sidebar';\nimport { ButtonPriority } from '@seniorsistemas/angular-components/button';\n\n@Component({\n selector: 'tmsx-sidebar-dinamica',\n templateUrl: './sidebar-dinamica.component.html',\n styleUrls: ['./sidebar-dinamica.component.scss']\n})\nexport class SidebarDinamicaComponent implements OnChanges {\n\n @Input() showSidebar = false;\n @Input() showLoader = false;\n @Input() serverError = false;\n\n @Input() title = '';\n @Input() subtitle = '';\n @Input() subtitleClass = 'chave-acesso sds-readonly';\n @Input() closeButtonTitle = 'Fechar';\n\n @Input() tabs: SidebarComponentizadoTab[] = [];\n @Input() activeTabIndex = 0;\n\n @Input() showFooter = true;\n @Input() footerBadgeLabel = '';\n @Input() footerBadgeIconClass = 'fal fa-check-circle';\n @Input() actions: SidebarComponentizadoAction[] = [];\n @Input() footerTemplate?: TemplateRef<unknown>;\n\n @Input() errorIconClass = 'fa fa-exclamation-triangle';\n @Input() errorTitle = 'Erro ao carregar dados';\n @Input() errorDescription = 'Ocorreu um erro no servidor.';\n @Input() errorRetryLabel = 'Tentar novamente';\n\n @Output() closeSidebar = new EventEmitter<void>();\n @Output() retryLoad = new EventEmitter<void>();\n @Output() actionClick = new EventEmitter<SidebarComponentizadoActionEvent>();\n @Output() tabChange = new EventEmitter<number>();\n\n public ngOnChanges(): void {\n const lastTabIndex = Math.max(this.visibleTabs.length - 1, 0);\n\n if (this.activeTabIndex > lastTabIndex) {\n this.activeTabIndex = lastTabIndex;\n }\n }\n\n public get visibleTabs(): SidebarComponentizadoTab[] {\n return this.tabs.filter((tab) => !tab.hidden);\n }\n\n public get visibleActions(): SidebarComponentizadoAction[] {\n return this.actions.filter((action) => !action.hidden);\n }\n\n public onCloseClick(): void {\n this.closeSidebar.emit();\n }\n\n public onRetryClick(): void {\n this.retryLoad.emit();\n }\n\n public onTabChange(index: number): void {\n this.activeTabIndex = index;\n this.tabChange.emit(index);\n }\n\n public onActionButtonClick(action: SidebarComponentizadoAction): void {\n this.actionClick.emit({ actionId: action.id });\n }\n\n public getButtonPriority(action: SidebarComponentizadoAction): ButtonPriority {\n return action.priority as ButtonPriority || 'default' as ButtonPriority;\n }\n\n public trackByTabId(index: number, tab: SidebarComponentizadoTab): string {\n return tab.id || index.toString();\n }\n\n public trackByActionId(index: number, action: SidebarComponentizadoAction): string {\n return action.id || index.toString();\n }\n\n}\n","<div class=\"detalhes-drawer\" [class.drawer-open]=\"showSidebar\">\n\n <div class=\"loading\">\n <s-loading-state [loading]=\"showLoader\" [blockWindow]=\"true\"></s-loading-state>\n </div>\n\n <div class=\"drawer-header\">\n <div class=\"drawer-header-info\">\n <h2 class=\"drawer-title\">{{ title }}</h2>\n @if (subtitle) {\n <p [class]=\"subtitleClass\">{{ subtitle }}</p>\n }\n </div>\n <button class=\"drawer-close-btn\" type=\"button\" (click)=\"onCloseClick()\" [title]=\"closeButtonTitle\">\n <i class=\"fal fa-times\"></i>\n </button>\n </div>\n\n @if (serverError && !showLoader) {\n <s-empty-state\n [iconClass]=\"errorIconClass\"\n [title]=\"errorTitle\"\n [primaryActionLabel]=\"errorRetryLabel\"\n (primaryAction)=\"onRetryClick()\"\n [description]=\"errorDescription\">\n </s-empty-state>\n }\n\n @if (!serverError && visibleTabs.length) {\n <p-tabView [(activeIndex)]=\"activeTabIndex\" (onChange)=\"onTabChange($event.index)\">\n @for (tab of visibleTabs; track trackByTabId($index, tab); let i = $index) {\n <p-tabPanel [header]=\"tab.header\" [disabled]=\"!!tab.disabled\">\n @if (tab.template) {\n <ng-container\n [ngTemplateOutlet]=\"tab.template\"\n [ngTemplateOutletContext]=\"{ $implicit: tab.context, context: tab.context, tab: tab, index: i }\">\n </ng-container>\n }\n @if (!tab.template && tab.content) {\n <ng-container>{{ tab.content }}</ng-container>\n }\n </p-tabPanel>\n }\n </p-tabView>\n }\n\n @if (showFooter) {\n <div class=\"drawer-footer\">\n @if (footerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate\"\n [ngTemplateOutletContext]=\"{ actions: visibleActions }\">\n </ng-container>\n }\n @if (!footerTemplate && footerBadgeLabel) {\n <span class=\"badge-analisado\">\n @if (footerBadgeIconClass) {\n <i [class]=\"footerBadgeIconClass\"></i>\n }\n {{ footerBadgeLabel }}\n </span>\n }\n\n <div class=\"drawer-footer-actions\">\n @for (action of visibleActions; track trackByActionId($index, action)) {\n <s-button\n type=\"button\"\n [priority]=\"getButtonPriority(action)\"\n [iconClass]=\"action.iconClass || ''\"\n [label]=\"action.label\"\n [disabled]=\"!!action.disabled\"\n (onClick)=\"onActionButtonClick(action)\">\n </s-button>\n }\n </div>\n </div>\n }\n\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { SidebarDinamicaComponent } from \"./sidebar-dinamica.component\";\nimport { TabViewModule } from 'primeng/tabview';\nimport { LoadingStateModule } from \"@seniorsistemas/angular-components/loading-state\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonModule } from \"@seniorsistemas/angular-components/button\";\nimport { EmptyStateModule } from \"@seniorsistemas/angular-components/empty-state\";\n\n@NgModule({\n imports: [\n CommonModule,\n\t\tLoadingStateModule,\n ButtonModule,\n EmptyStateModule,\n\t\tTabViewModule\n ],\n declarations: [\n SidebarDinamicaComponent\n ],\n providers: [],\n exports: [\n SidebarDinamicaComponent\n ],\n})\nexport class SidebarDinamicaModule {}","export const fallback: any = {\n \"tmsx_fnd.tmsx_angular_components.add\": \"Adicionar\",\n \"tmsx_fnd.tmsx_angular_components.audit_created_by\": \"Criado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_modified_by\": \"Modificado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_inactivated_by\": \"Inativado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\": \"Sem informações de auditoria\",\n \"tmsx_fnd.tmsx_angular_components.delete\": \"Excluir\",\n \"tmsx_fnd.tmsx_angular_components.edit\": \"Editar\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_description\": \"Você não tem permissão para acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_title\": \"Acesso Negado\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_description\": \"O recurso solicitado não foi encontrado.\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_title\": \"Não Encontrado\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_description\": \"Você não está autorizado a acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_title\": \"Não Autorizado\",\n \"tmsx_fnd.tmsx_angular_components.grid_aninhada\": \"Grid Aninhada\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required\": \"É necessário informar a data\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_cancelar\": \"Cancelar\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar\": \"Editar valores\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging\": \"registros encontrados\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_salvar\": \"Salvar alterações\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_false\": \"Não\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_true\": \"Sim\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_empty_field\": \"Não informado\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento\": \"Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_api_error\": \"API de envio não definida\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed\": \"Ocorreu um erro\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending\": \"Pendente\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing\": \"Processando\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_success\": \"Finalizado com sucesso\",\n \"tmsx_fnd.tmsx_angular_components.registro\": \"Registro\",\n \"tmsx_fnd.tmsx_angular_components.showcase_painel_processamento_title\": \"Demonstração do Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.showcase_table_title\": \"Demonstração da Tabela\",\n \"tmsx_fnd.tmsx_angular_components.showcase_title\": \"Showcase\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_false\": \"Inativo\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_true\": \"Ativo\",\n \"tmsx_fnd.tmsx_angular_components.status\": \"Situação\",\n \"tmsx_fnd.tmsx_angular_components.total_records\": \"{{ value }} registros encontrados\"\n};\n","import { InjectionToken, ModuleWithProviders, NgModule } from \"@angular/core\";\n\nexport const HOST_PROJECT_CONFIGS_INJECTION_TOKEN = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class TmsxAngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<TmsxAngularComponentsModule> {\n return {\n ngModule: TmsxAngularComponentsModule,\n providers: [\n {\n provide: HOST_PROJECT_CONFIGS_INJECTION_TOKEN,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.UtilsService","i4","i6","i9","PrimeTableModule","PrimeTooltipModule","i2","i3","i5","i7","i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seniorsistemas/tmsx-angular-components",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "module": "fesm2022/seniorsistemas-tmsx-angular-components.mjs",
5
5
  "typings": "index.d.ts",
6
6
  "exports": {
package/public-api.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { FieldType, FieldTypeValue } from "./commons/index";
2
- export { GridEditableNestedComponent, GridEditableNestedModule, PainelProcessamentoComponent, PainelProcessamentoModule } from "./components/index";
2
+ export { GridEditableNestedComponent, GridEditableNestedModule, PainelProcessamentoComponent, PainelProcessamentoModule, SidebarDinamicaComponent, SidebarDinamicaModule } from "./components/index";
3
3
  export { fallback } from "./locale/fallback";
4
4
  export { HOST_PROJECT_CONFIGS_INJECTION_TOKEN, HostProjectConfigs, TmsxAngularComponentsModule } from "./tmsx-angular-components.module";
5
5
  export { UtilsService } from "./utils/index";