@seniorsistemas/tmsx-angular-components 2.0.0 → 2.1.0-feature-tmsx-2719-b9264dcd

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,47 @@
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
+ pushContent: boolean;
10
+ width: string;
11
+ top: string;
12
+ height: string;
13
+ zIndex: number;
14
+ ariaLabel: string;
15
+ panelTemplate?: TemplateRef<unknown>;
16
+ title: string;
17
+ subtitle: string;
18
+ subtitleClass: string;
19
+ closeButtonTitle: string;
20
+ tabs: SidebarComponentizadoTab[];
21
+ activeTabIndex: number;
22
+ showFooter: boolean;
23
+ footerBadgeLabel: string;
24
+ footerBadgeIconClass: string;
25
+ actions: SidebarComponentizadoAction[];
26
+ footerTemplate?: TemplateRef<unknown>;
27
+ errorIconClass: string;
28
+ errorTitle: string;
29
+ errorDescription: string;
30
+ errorRetryLabel: string;
31
+ closeSidebar: EventEmitter<void>;
32
+ retryLoad: EventEmitter<void>;
33
+ actionClick: EventEmitter<SidebarComponentizadoActionEvent>;
34
+ tabChange: EventEmitter<number>;
35
+ ngOnChanges(): void;
36
+ get visibleTabs(): SidebarComponentizadoTab[];
37
+ get visibleActions(): SidebarComponentizadoAction[];
38
+ onCloseClick(): void;
39
+ onRetryClick(): void;
40
+ onTabChange(index: number): void;
41
+ onActionButtonClick(action: SidebarComponentizadoAction): void;
42
+ getButtonPriority(action: SidebarComponentizadoAction): ButtonPriority;
43
+ trackByTabId(index: number, tab: SidebarComponentizadoTab): string;
44
+ trackByActionId(index: number, action: SidebarComponentizadoAction): string;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<SidebarDinamicaComponent, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<SidebarDinamicaComponent, "tmsx-sidebar-dinamica", never, { "showSidebar": { "alias": "showSidebar"; "required": false; }; "showLoader": { "alias": "showLoader"; "required": false; }; "serverError": { "alias": "serverError"; "required": false; }; "pushContent": { "alias": "pushContent"; "required": false; }; "width": { "alias": "width"; "required": false; }; "top": { "alias": "top"; "required": false; }; "height": { "alias": "height"; "required": false; }; "zIndex": { "alias": "zIndex"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "panelTemplate": { "alias": "panelTemplate"; "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, ["[sidebarContent]"], false, never>;
47
+ }
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3JjL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBHcmlkRWRpdGFibGVOZXN0ZWRDb21wb25lbnQsIEdyaWRFZGl0YWJsZU5lc3RlZE1vZHVsZSB9IGZyb20gXCIuL2dyaWQtZWRpdGFibGUtbmVzdGVkL2luZGV4XCI7XG5leHBvcnQgeyBQYWluZWxQcm9jZXNzYW1lbnRvQ29tcG9uZW50LCBQYWluZWxQcm9jZXNzYW1lbnRvTW9kdWxlIH0gZnJvbSBcIi4vcGFpbmVsLXByb2Nlc3NhbWVudG8vaW5kZXhcIjtcbmV4cG9ydCB7IFNpZGViYXJEaW5hbWljYUNvbXBvbmVudCwgU2lkZWJhckRpbmFtaWNhTW9kdWxlIH0gZnJvbSBcIi4vc2lkZWJhci1kaW5hbWljYS9pbmRleFwiO1xuIl19
@@ -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,137 @@
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
+ pushContent = false;
13
+ width = '50vw';
14
+ top = '0';
15
+ height = '100vh';
16
+ zIndex = 99999;
17
+ ariaLabel = '';
18
+ panelTemplate;
19
+ title = '';
20
+ subtitle = '';
21
+ subtitleClass = 'chave-acesso sds-readonly';
22
+ closeButtonTitle = 'Fechar';
23
+ tabs = [];
24
+ activeTabIndex = 0;
25
+ showFooter = true;
26
+ footerBadgeLabel = '';
27
+ footerBadgeIconClass = 'fal fa-check-circle';
28
+ actions = [];
29
+ footerTemplate;
30
+ errorIconClass = 'fa fa-exclamation-triangle';
31
+ errorTitle = 'Erro ao carregar dados';
32
+ errorDescription = 'Ocorreu um erro no servidor.';
33
+ errorRetryLabel = 'Tentar novamente';
34
+ closeSidebar = new EventEmitter();
35
+ retryLoad = new EventEmitter();
36
+ actionClick = new EventEmitter();
37
+ tabChange = new EventEmitter();
38
+ ngOnChanges() {
39
+ const lastTabIndex = Math.max(this.visibleTabs.length - 1, 0);
40
+ if (this.activeTabIndex > lastTabIndex) {
41
+ this.activeTabIndex = lastTabIndex;
42
+ }
43
+ }
44
+ get visibleTabs() {
45
+ return this.tabs.filter((tab) => !tab.hidden);
46
+ }
47
+ get visibleActions() {
48
+ return this.actions.filter((action) => !action.hidden);
49
+ }
50
+ onCloseClick() {
51
+ this.closeSidebar.emit();
52
+ }
53
+ onRetryClick() {
54
+ this.retryLoad.emit();
55
+ }
56
+ onTabChange(index) {
57
+ this.activeTabIndex = index;
58
+ this.tabChange.emit(index);
59
+ }
60
+ onActionButtonClick(action) {
61
+ this.actionClick.emit({ actionId: action.id });
62
+ }
63
+ getButtonPriority(action) {
64
+ return action.priority || 'default';
65
+ }
66
+ trackByTabId(index, tab) {
67
+ return tab.id || index.toString();
68
+ }
69
+ trackByActionId(index, action) {
70
+ return action.id || index.toString();
71
+ }
72
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
+ 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", pushContent: "pushContent", width: "width", top: "top", height: "height", zIndex: "zIndex", ariaLabel: "ariaLabel", panelTemplate: "panelTemplate", 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\n class=\"sidebar-layout\"\n [class.sidebar-open]=\"showSidebar\"\n [class.sidebar-push-content]=\"pushContent\"\n [style.--sidebar-width]=\"width\"\n [style.--sidebar-top]=\"top\"\n [style.--sidebar-height]=\"height\"\n [style.--sidebar-z-index]=\"zIndex\">\n <div class=\"sidebar-content\">\n <ng-content select=\"[sidebarContent]\"></ng-content>\n </div>\n\n <aside\n class=\"detalhes-drawer\"\n [class.drawer-open]=\"showSidebar\"\n [class.custom-panel]=\"panelTemplate\"\n [attr.aria-hidden]=\"!showSidebar\"\n [attr.aria-label]=\"ariaLabel || null\">\n @if (panelTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"panelTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: showSidebar }\">\n </ng-container>\n } @else {\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 </aside>\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sidebar-layout,.sidebar-content{width:100%;min-width:0}.sidebar-content{box-sizing:border-box;padding-right:0;transition:padding-right .3s ease-in-out}.sidebar-push-content.sidebar-open .sidebar-content{padding-right:var(--sidebar-width)}.loading{position:absolute;margin-top:50%}.detalhes-drawer{position:fixed!important;top:var(--sidebar-top);right:0;z-index:var(--sidebar-z-index)!important;background:#fff;box-shadow:-4px 0 16px #0000001f;width:var(--sidebar-width);height:var(--sidebar-height);display:flex;flex-direction:column;overflow:hidden;transform:translate(100%);transition:transform .3s ease-in-out,visibility 0s linear .3s;visibility:hidden;padding:16px 20px;box-sizing:border-box}.detalhes-drawer.drawer-open{transform:translate(0);visibility:visible;transition:transform .3s ease-in-out,visibility 0s linear 0s}.detalhes-drawer.custom-panel{padding:0}@media (prefers-reduced-motion: reduce){.sidebar-content,.detalhes-drawer{transition-duration:.01ms}}.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"] }] });
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'tmsx-sidebar-dinamica', template: "<div\n class=\"sidebar-layout\"\n [class.sidebar-open]=\"showSidebar\"\n [class.sidebar-push-content]=\"pushContent\"\n [style.--sidebar-width]=\"width\"\n [style.--sidebar-top]=\"top\"\n [style.--sidebar-height]=\"height\"\n [style.--sidebar-z-index]=\"zIndex\">\n <div class=\"sidebar-content\">\n <ng-content select=\"[sidebarContent]\"></ng-content>\n </div>\n\n <aside\n class=\"detalhes-drawer\"\n [class.drawer-open]=\"showSidebar\"\n [class.custom-panel]=\"panelTemplate\"\n [attr.aria-hidden]=\"!showSidebar\"\n [attr.aria-label]=\"ariaLabel || null\">\n @if (panelTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"panelTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: showSidebar }\">\n </ng-container>\n } @else {\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 </aside>\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sidebar-layout,.sidebar-content{width:100%;min-width:0}.sidebar-content{box-sizing:border-box;padding-right:0;transition:padding-right .3s ease-in-out}.sidebar-push-content.sidebar-open .sidebar-content{padding-right:var(--sidebar-width)}.loading{position:absolute;margin-top:50%}.detalhes-drawer{position:fixed!important;top:var(--sidebar-top);right:0;z-index:var(--sidebar-z-index)!important;background:#fff;box-shadow:-4px 0 16px #0000001f;width:var(--sidebar-width);height:var(--sidebar-height);display:flex;flex-direction:column;overflow:hidden;transform:translate(100%);transition:transform .3s ease-in-out,visibility 0s linear .3s;visibility:hidden;padding:16px 20px;box-sizing:border-box}.detalhes-drawer.drawer-open{transform:translate(0);visibility:visible;transition:transform .3s ease-in-out,visibility 0s linear 0s}.detalhes-drawer.custom-panel{padding:0}@media (prefers-reduced-motion: reduce){.sidebar-content,.detalhes-drawer{transition-duration:.01ms}}.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"] }]
78
+ }], propDecorators: { showSidebar: [{
79
+ type: Input
80
+ }], showLoader: [{
81
+ type: Input
82
+ }], serverError: [{
83
+ type: Input
84
+ }], pushContent: [{
85
+ type: Input
86
+ }], width: [{
87
+ type: Input
88
+ }], top: [{
89
+ type: Input
90
+ }], height: [{
91
+ type: Input
92
+ }], zIndex: [{
93
+ type: Input
94
+ }], ariaLabel: [{
95
+ type: Input
96
+ }], panelTemplate: [{
97
+ type: Input
98
+ }], title: [{
99
+ type: Input
100
+ }], subtitle: [{
101
+ type: Input
102
+ }], subtitleClass: [{
103
+ type: Input
104
+ }], closeButtonTitle: [{
105
+ type: Input
106
+ }], tabs: [{
107
+ type: Input
108
+ }], activeTabIndex: [{
109
+ type: Input
110
+ }], showFooter: [{
111
+ type: Input
112
+ }], footerBadgeLabel: [{
113
+ type: Input
114
+ }], footerBadgeIconClass: [{
115
+ type: Input
116
+ }], actions: [{
117
+ type: Input
118
+ }], footerTemplate: [{
119
+ type: Input
120
+ }], errorIconClass: [{
121
+ type: Input
122
+ }], errorTitle: [{
123
+ type: Input
124
+ }], errorDescription: [{
125
+ type: Input
126
+ }], errorRetryLabel: [{
127
+ type: Input
128
+ }], closeSidebar: [{
129
+ type: Output
130
+ }], retryLoad: [{
131
+ type: Output
132
+ }], actionClick: [{
133
+ type: Output
134
+ }], tabChange: [{
135
+ type: Output
136
+ }] } });
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1kaW5hbWljYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvc3JjL2NvbXBvbmVudHMvc2lkZWJhci1kaW5hbWljYS9zaWRlYmFyLWRpbmFtaWNhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYi9zcmMvY29tcG9uZW50cy9zaWRlYmFyLWRpbmFtaWNhL3NpZGViYXItZGluYW1pY2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVMvRixNQUFNLE9BQU8sd0JBQXdCO0lBRTFCLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsS0FBSyxHQUFHLE1BQU0sQ0FBQztJQUNmLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDVixNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ2YsYUFBYSxDQUF3QjtJQUVyQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLGFBQWEsR0FBRywyQkFBMkIsQ0FBQztJQUM1QyxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7SUFFNUIsSUFBSSxHQUErQixFQUFFLENBQUM7SUFDdEMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUVuQixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUN0QixvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztJQUM3QyxPQUFPLEdBQWtDLEVBQUUsQ0FBQztJQUM1QyxjQUFjLENBQXdCO0lB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O3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2lkZWJhckNvbXBvbmVudGl6YWRvQWN0aW9uLCBTaWRlYmFyQ29tcG9uZW50aXphZG9BY3Rpb25FdmVudCwgU2lkZWJhckNvbXBvbmVudGl6YWRvVGFiIH0gZnJvbSAnLi9zaWRlYmFyJztcbmltcG9ydCB7IEJ1dHRvblByaW9yaXR5IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0bXN4LXNpZGViYXItZGluYW1pY2EnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZWJhci1kaW5hbWljYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGViYXItZGluYW1pY2EuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTaWRlYmFyRGluYW1pY2FDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIHNob3dTaWRlYmFyID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dMb2FkZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgc2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVzaENvbnRlbnQgPSBmYWxzZTtcbiAgQElucHV0KCkgd2lkdGggPSAnNTB2dyc7XG4gIEBJbnB1dCgpIHRvcCA9ICcwJztcbiAgQElucHV0KCkgaGVpZ2h0ID0gJzEwMHZoJztcbiAgQElucHV0KCkgekluZGV4ID0gOTk5OTk7XG4gIEBJbnB1dCgpIGFyaWFMYWJlbCA9ICcnO1xuICBASW5wdXQoKSBwYW5lbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3VidGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3VidGl0bGVDbGFzcyA9ICdjaGF2ZS1hY2Vzc28gc2RzLXJlYWRvbmx5JztcbiAgQElucHV0KCkgY2xvc2VCdXR0b25UaXRsZSA9ICdGZWNoYXInO1xuXG4gIEBJbnB1dCgpIHRhYnM6IFNpZGViYXJDb21wb25lbnRpemFkb1RhYltdID0gW107XG4gIEBJbnB1dCgpIGFjdGl2ZVRhYkluZGV4ID0gMDtcblxuICBASW5wdXQoKSBzaG93Rm9vdGVyID0gdHJ1ZTtcbiAgQElucHV0KCkgZm9vdGVyQmFkZ2VMYWJlbCA9ICcnO1xuICBASW5wdXQoKSBmb290ZXJCYWRnZUljb25DbGFzcyA9ICdmYWwgZmEtY2hlY2stY2lyY2xlJztcbiAgQElucHV0KCkgYWN0aW9uczogU2lkZWJhckNvbXBvbmVudGl6YWRvQWN0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgZm9vdGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBlcnJvckljb25DbGFzcyA9ICdmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XG4gIEBJbnB1dCgpIGVycm9yVGl0bGUgPSAnRXJybyBhbyBjYXJyZWdhciBkYWRvcyc7XG4gIEBJbnB1dCgpIGVycm9yRGVzY3JpcHRpb24gPSAnT2NvcnJldSB1bSBlcnJvIG5vIHNlcnZpZG9yLic7XG4gIEBJbnB1dCgpIGVycm9yUmV0cnlMYWJlbCA9ICdUZW50YXIgbm92YW1lbnRlJztcblxuICBAT3V0cHV0KCkgY2xvc2VTaWRlYmFyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmV0cnlMb2FkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFNpZGViYXJDb21wb25lbnRpemFkb0FjdGlvbkV2ZW50PigpO1xuICBAT3V0cHV0KCkgdGFiQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGxhc3RUYWJJbmRleCA9IE1hdGgubWF4KHRoaXMudmlzaWJsZVRhYnMubGVuZ3RoIC0gMSwgMCk7XG5cbiAgICBpZiAodGhpcy5hY3RpdmVUYWJJbmRleCA+IGxhc3RUYWJJbmRleCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGxhc3RUYWJJbmRleDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpc2libGVUYWJzKCk6IFNpZGViYXJDb21wb25lbnRpemFkb1RhYltdIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLmZpbHRlcigodGFiKSA9PiAhdGFiLmhpZGRlbik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpc2libGVBY3Rpb25zKCk6IFNpZGViYXJDb21wb25lbnRpemFkb0FjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zLmZpbHRlcigoYWN0aW9uKSA9PiAhYWN0aW9uLmhpZGRlbik7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VTaWRlYmFyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblJldHJ5Q2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXRyeUxvYWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uVGFiQ2hhbmdlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgdGhpcy50YWJDaGFuZ2UuZW1pdChpbmRleCk7XG4gIH1cblxuICBwdWJsaWMgb25BY3Rpb25CdXR0b25DbGljayhhY3Rpb246IFNpZGViYXJDb21wb25lbnRpemFkb0FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IGFjdGlvbklkOiBhY3Rpb24uaWQgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QnV0dG9uUHJpb3JpdHkoYWN0aW9uOiBTaWRlYmFyQ29tcG9uZW50aXphZG9BY3Rpb24pOiBCdXR0b25Qcmlvcml0eSB7XG4gICAgcmV0dXJuIGFjdGlvbi5wcmlvcml0eSBhcyBCdXR0b25Qcmlvcml0eSB8fCAnZGVmYXVsdCcgYXMgQnV0dG9uUHJpb3JpdHk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeVRhYklkKGluZGV4OiBudW1iZXIsIHRhYjogU2lkZWJhckNvbXBvbmVudGl6YWRvVGFiKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGFiLmlkIHx8IGluZGV4LnRvU3RyaW5nKCk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUFjdGlvbklkKGluZGV4OiBudW1iZXIsIGFjdGlvbjogU2lkZWJhckNvbXBvbmVudGl6YWRvQWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWN0aW9uLmlkIHx8IGluZGV4LnRvU3RyaW5nKCk7XG4gIH1cblxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNpZGViYXItbGF5b3V0XCJcbiAgW2NsYXNzLnNpZGViYXItb3Blbl09XCJzaG93U2lkZWJhclwiXG4gIFtjbGFzcy5zaWRlYmFyLXB1c2gtY29udGVudF09XCJwdXNoQ29udGVudFwiXG4gIFtzdHlsZS4tLXNpZGViYXItd2lkdGhdPVwid2lkdGhcIlxuICBbc3R5bGUuLS1zaWRlYmFyLXRvcF09XCJ0b3BcIlxuICBbc3R5bGUuLS1zaWRlYmFyLWhlaWdodF09XCJoZWlnaHRcIlxuICBbc3R5bGUuLS1zaWRlYmFyLXotaW5kZXhdPVwiekluZGV4XCI+XG4gIDxkaXYgY2xhc3M9XCJzaWRlYmFyLWNvbnRlbnRcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2lkZWJhckNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8YXNpZGVcbiAgICBjbGFzcz1cImRldGFsaGVzLWRyYXdlclwiXG4gICAgW2NsYXNzLmRyYXdlci1vcGVuXT1cInNob3dTaWRlYmFyXCJcbiAgICBbY2xhc3MuY3VzdG9tLXBhbmVsXT1cInBhbmVsVGVtcGxhdGVcIlxuICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIiFzaG93U2lkZWJhclwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgbnVsbFwiPlxuICBAaWYgKHBhbmVsVGVtcGxhdGUpIHtcbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwYW5lbFRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc2hvd1NpZGViYXIgfVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZ1wiPlxuICAgICAgPHMtbG9hZGluZy1zdGF0ZSBbbG9hZGluZ109XCJzaG93TG9hZGVyXCIgW2Jsb2NrV2luZG93XT1cInRydWVcIj48L3MtbG9hZGluZy1zdGF0ZT5cbiAgICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItaGVhZGVyLWluZm9cIj5cbiAgICAgIDxoMiBjbGFzcz1cImRyYXdlci10aXRsZVwiPnt7IHRpdGxlIH19PC9oMj5cbiAgICAgIEBpZiAoc3VidGl0bGUpIHtcbiAgICAgICAgPHAgW2NsYXNzXT1cInN1YnRpdGxlQ2xhc3NcIj57eyBzdWJ0aXRsZSB9fTwvcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiZHJhd2VyLWNsb3NlLWJ0blwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DbG9zZUNsaWNrKClcIiBbdGl0bGVdPVwiY2xvc2VCdXR0b25UaXRsZVwiPlxuICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtdGltZXNcIj48L2k+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIEBpZiAoc2VydmVyRXJyb3IgJiYgIXNob3dMb2FkZXIpIHtcbiAgICA8cy1lbXB0eS1zdGF0ZVxuICAgICAgW2ljb25DbGFzc109XCJlcnJvckljb25DbGFzc1wiXG4gICAgICBbdGl0bGVdPVwiZXJyb3JUaXRsZVwiXG4gICAgICBbcHJpbWFyeUFjdGlvbkxhYmVsXT1cImVycm9yUmV0cnlMYWJlbFwiXG4gICAgICAocHJpbWFyeUFjdGlvbik9XCJvblJldHJ5Q2xpY2soKVwiXG4gICAgICBbZGVzY3JpcHRpb25dPVwiZXJyb3JEZXNjcmlwdGlvblwiPlxuICAgIDwvcy1lbXB0eS1zdGF0ZT5cbiAgfVxuXG4gIEBpZiAoIXNlcnZlckVycm9yICYmIHZpc2libGVUYWJzLmxlbmd0aCkge1xuICAgIDxwLXRhYlZpZXcgWyhhY3RpdmVJbmRleCldPVwiYWN0aXZlVGFiSW5kZXhcIiAob25DaGFuZ2UpPVwib25UYWJDaGFuZ2UoJGV2ZW50LmluZGV4KVwiPlxuICAgICAgQGZvciAodGFiIG9mIHZpc2libGVUYWJzOyB0cmFjayB0cmFja0J5VGFiSWQoJGluZGV4LCB0YWIpOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8cC10YWJQYW5lbCBbaGVhZGVyXT1cInRhYi5oZWFkZXJcIiBbZGlzYWJsZWRdPVwiISF0YWIuZGlzYWJsZWRcIj5cbiAgICAgICAgICBAaWYgKHRhYi50ZW1wbGF0ZSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIudGVtcGxhdGVcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRhYi5jb250ZXh0LCBjb250ZXh0OiB0YWIuY29udGV4dCwgdGFiOiB0YWIsIGluZGV4OiBpIH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKCF0YWIudGVtcGxhdGUgJiYgdGFiLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXI+e3sgdGFiLmNvbnRlbnQgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvcC10YWJQYW5lbD5cbiAgICAgIH1cbiAgICA8L3AtdGFiVmlldz5cbiAgfVxuXG4gIEBpZiAoc2hvd0Zvb3Rlcikge1xuICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItZm9vdGVyXCI+XG4gICAgICBAaWYgKGZvb3RlclRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgYWN0aW9uczogdmlzaWJsZUFjdGlvbnMgfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICAgIEBpZiAoIWZvb3RlclRlbXBsYXRlICYmIGZvb3RlckJhZGdlTGFiZWwpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZS1hbmFsaXNhZG9cIj5cbiAgICAgICAgICBAaWYgKGZvb3RlckJhZGdlSWNvbkNsYXNzKSB7XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiZm9vdGVyQmFkZ2VJY29uQ2xhc3NcIj48L2k+XG4gICAgICAgICAgfVxuICAgICAgICAgIHt7IGZvb3RlckJhZGdlTGFiZWwgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWZvb3Rlci1hY3Rpb25zXCI+XG4gICAgICAgIEBmb3IgKGFjdGlvbiBvZiB2aXNpYmxlQWN0aW9uczsgdHJhY2sgdHJhY2tCeUFjdGlvbklkKCRpbmRleCwgYWN0aW9uKSkge1xuICAgICAgICAgIDxzLWJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbcHJpb3JpdHldPVwiZ2V0QnV0dG9uUHJpb3JpdHkoYWN0aW9uKVwiXG4gICAgICAgICAgICBbaWNvbkNsYXNzXT1cImFjdGlvbi5pY29uQ2xhc3MgfHwgJydcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImFjdGlvbi5sYWJlbFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFhY3Rpb24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwib25BY3Rpb25CdXR0b25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAgPC9zLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgfVxuICB9XG4gIDwvYXNpZGU+XG48L2Rpdj5cbiJdfQ==
@@ -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=
@@ -27,8 +27,15 @@ export const fallback = {
27
27
  "tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending": "Pendente",
28
28
  "tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing": "Processando",
29
29
  "tmsx_fnd.tmsx_angular_components.painel_processamento_status_success": "Finalizado com sucesso",
30
+ "tmsx_fnd.tmsx_angular_components.push_drawer": "Push Drawer",
30
31
  "tmsx_fnd.tmsx_angular_components.registro": "Registro",
31
32
  "tmsx_fnd.tmsx_angular_components.showcase_painel_processamento_title": "Demonstração do Painel de Processamento",
33
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_close": "Fechar",
34
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_description": "O painel lateral desloca o conteúdo principal e aceita qualquer composição nas duas áreas projetadas.",
35
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_open": "Abrir detalhes",
36
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_panel_description": "Este conteúdo é definido pela aplicação consumidora e pode conter formulários, detalhes ou ações.",
37
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_panel_title": "Detalhes do documento",
38
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_title": "Demonstração do Push Drawer",
32
39
  "tmsx_fnd.tmsx_angular_components.showcase_table_title": "Demonstração da Tabela",
33
40
  "tmsx_fnd.tmsx_angular_components.showcase_title": "Showcase",
34
41
  "tmsx_fnd.tmsx_angular_components.situacao_ativo_false": "Inativo",
@@ -36,4 +43,4 @@ export const fallback = {
36
43
  "tmsx_fnd.tmsx_angular_components.status": "Situação",
37
44
  "tmsx_fnd.tmsx_angular_components.total_records": "{{ value }} registros encontrados"
38
45
  };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3JjL2xvY2FsZS9mYWxsYmFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQVE7SUFDekIsc0NBQXNDLEVBQUUsV0FBVztJQUNuRCxtREFBbUQsRUFBRSw4Q0FBOEM7SUFDbkcsb0RBQW9ELEVBQUUsa0RBQWtEO0lBQ3hHLHVEQUF1RCxFQUFFLGlEQUFpRDtJQUMxRyw2RUFBNkUsRUFBRSw4QkFBOEI7SUFDN0cseUNBQXlDLEVBQUUsU0FBUztJQUNwRCx1Q0FBdUMsRUFBRSxRQUFRO0lBQ2pELDhEQUE4RCxFQUFFLG1EQUFtRDtJQUNuSCx3REFBd0QsRUFBRSxlQUFlO0lBQ3pFLDhEQUE4RCxFQUFFLDBDQUEwQztJQUMxRyx3REFBd0QsRUFBRSxnQkFBZ0I7SUFDMUUsaUVBQWlFLEVBQUUsa0RBQWtEO0lBQ3JILDJEQUEyRCxFQUFFLGdCQUFnQjtJQUM3RSxnREFBZ0QsRUFBRSxlQUFlO0lBQ2pFLHlFQUF5RSxFQUFFLDhCQUE4QjtJQUN6RyxnRUFBZ0UsRUFBRSxVQUFVO0lBQzVFLDhEQUE4RCxFQUFFLGdCQUFnQjtJQUNoRiw4REFBOEQsRUFBRSx1QkFBdUI7SUFDdkYsOERBQThELEVBQUUsbUJBQW1CO0lBQ25GLDBEQUEwRCxFQUFFLEtBQUs7SUFDakUseURBQXlELEVBQUUsS0FBSztJQUNoRSx3REFBd0QsRUFBRSxlQUFlO0lBQ3pFLHVEQUF1RCxFQUFFLHlCQUF5QjtJQUNsRixpRUFBaUUsRUFBRSwyQkFBMkI7SUFDOUYscUVBQXFFLEVBQUUsaUJBQWlCO0lBQ3hGLHNFQUFzRSxFQUFFLFVBQVU7SUFDbEYseUVBQXlFLEVBQUUsYUFBYTtJQUN4RixzRUFBc0UsRUFBRSx3QkFBd0I7SUFDaEcsMkNBQTJDLEVBQUUsVUFBVTtJQUN2RCxzRUFBc0UsRUFBRSx5Q0FBeUM7SUFDakgsdURBQXVELEVBQUUsd0JBQXdCO0lBQ2pGLGlEQUFpRCxFQUFFLFVBQVU7SUFDN0QsdURBQXVELEVBQUUsU0FBUztJQUNsRSxzREFBc0QsRUFBRSxPQUFPO0lBQy9ELHlDQUF5QyxFQUFFLFVBQVU7SUFDckQsZ0RBQWdELEVBQUUsbUNBQW1DO0NBQ3hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZmFsbGJhY2s6IGFueSA9IHtcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmFkZFwiOiBcIkFkaWNpb25hclwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuYXVkaXRfY3JlYXRlZF9ieVwiOiBcIkNyaWFkbyBwb3Ige3tub21lfX0gZW0ge3tkYXRhfX0gw6BzIHt7aG9yYX19LlwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuYXVkaXRfbW9kaWZpZWRfYnlcIjogXCJNb2RpZmljYWRvIHBvciB7e25vbWV9fSBlbSB7e2RhdGF9fSDDoHMge3tob3JhfX0uXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5hdWRpdF9pbmFjdGl2YXRlZF9ieVwiOiBcIkluYXRpdmFkbyBwb3Ige3tub21lfX0gZW0ge3tkYXRhfX0gw6BzIHt7aG9yYX19LlwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuY29uZGljYW9fdmFsb3JfbG9va3VwX2NvbmRpY2lvbmFsX25vX2F1ZGl0XCI6IFwiU2VtIGluZm9ybWHDp8O1ZXMgZGUgYXVkaXRvcmlhXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5kZWxldGVcIjogXCJFeGNsdWlyXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lZGl0XCI6IFwiRWRpdGFyXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9mb3JiaWRkZW5fZGVzY3JpcHRpb25cIjogXCJWb2PDqiBuw6NvIHRlbSBwZXJtaXNzw6NvIHBhcmEgYWNlc3NhciBlc3RlIHJlY3Vyc28uXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9mb3JiaWRkZW5fdGl0bGVcIjogXCJBY2Vzc28gTmVnYWRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9ub3RfZm91bmRfZGVzY3JpcHRpb25cIjogXCJPIHJlY3Vyc28gc29saWNpdGFkbyBuw6NvIGZvaSBlbmNvbnRyYWRvLlwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3Jfbm90X2ZvdW5kX3RpdGxlXCI6IFwiTsOjbyBFbmNvbnRyYWRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl91bmF1dGhvcml6ZWRfZGVzY3JpcHRpb25cIjogXCJWb2PDqiBuw6NvIGVzdMOhIGF1dG9yaXphZG8gYSBhY2Vzc2FyIGVzdGUgcmVjdXJzby5cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX3VuYXV0aG9yaXplZF90aXRsZVwiOiBcIk7Do28gQXV0b3JpemFkb1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuZ3JpZF9hbmluaGFkYVwiOiBcIkdyaWQgQW5pbmhhZGFcIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmdyaWRfZWRpdGFibGVfbmVzdGVkX2NhbGVuZGFyX3JlcXVpcmVkXCI6IFwiw4kgbmVjZXNzw6FyaW8gaW5mb3JtYXIgYSBkYXRhXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5ncmlkX2VkaXRhYmxlX25lc3RlZF9jYW5jZWxhclwiOiBcIkNhbmNlbGFyXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5ncmlkX2VkaXRhYmxlX25lc3RlZF9lZGl0YXJcIjogXCJFZGl0YXIgdmFsb3Jlc1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuZ3JpZF9lZGl0YWJsZV9uZXN0ZWRfcGFnaW5nXCI6IFwicmVnaXN0cm9zIGVuY29udHJhZG9zXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5ncmlkX2VkaXRhYmxlX25lc3RlZF9zYWx2YXJcIjogXCJTYWx2YXIgYWx0ZXJhw6fDtWVzXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5saXN0X2dyaWRfYm9vbGVhbl9mYWxzZVwiOiBcIk7Do29cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmxpc3RfZ3JpZF9ib29sZWFuX3RydWVcIjogXCJTaW1cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmxpc3RfZ3JpZF9lbXB0eV9maWVsZFwiOiBcIk7Do28gaW5mb3JtYWRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5wYWluZWxfcHJvY2Vzc2FtZW50b1wiOiBcIlBhaW5lbCBkZSBQcm9jZXNzYW1lbnRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5wYWluZWxfcHJvY2Vzc2FtZW50b19hcGlfZXJyb3JcIjogXCJBUEkgZGUgZW52aW8gbsOjbyBkZWZpbmlkYVwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fc3RhdHVzX2ZhaWxlZFwiOiBcIk9jb3JyZXUgdW0gZXJyb1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fc3RhdHVzX3BlbmRpbmdcIjogXCJQZW5kZW50ZVwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fc3RhdHVzX3Byb2Nlc3NpbmdcIjogXCJQcm9jZXNzYW5kb1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fc3RhdHVzX3N1Y2Nlc3NcIjogXCJGaW5hbGl6YWRvIGNvbSBzdWNlc3NvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5yZWdpc3Ryb1wiOiBcIlJlZ2lzdHJvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5zaG93Y2FzZV9wYWluZWxfcHJvY2Vzc2FtZW50b190aXRsZVwiOiBcIkRlbW9uc3RyYcOnw6NvIGRvIFBhaW5lbCBkZSBQcm9jZXNzYW1lbnRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5zaG93Y2FzZV90YWJsZV90aXRsZVwiOiBcIkRlbW9uc3RyYcOnw6NvIGRhIFRhYmVsYVwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc2hvd2Nhc2VfdGl0bGVcIjogXCJTaG93Y2FzZVwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc2l0dWFjYW9fYXRpdm9fZmFsc2VcIjogXCJJbmF0aXZvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5zaXR1YWNhb19hdGl2b190cnVlXCI6IFwiQXRpdm9cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnN0YXR1c1wiOiBcIlNpdHVhw6fDo29cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnRvdGFsX3JlY29yZHNcIjogXCJ7eyB2YWx1ZSB9fSByZWdpc3Ryb3MgZW5jb250cmFkb3NcIlxufTtcbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3JjL2xvY2FsZS9mYWxsYmFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQVE7SUFDekIsc0NBQXNDLEVBQUUsV0FBVztJQUNuRCxtREFBbUQsRUFBRSw4Q0FBOEM7SUFDbkcsb0RBQW9ELEVBQUUsa0RBQWtEO0lBQ3hHLHVEQUF1RCxFQUFFLGlEQUFpRDtJQUMxRyw2RUFBNkUsRUFBRSw4QkFBOEI7SUFDN0cseUNBQXlDLEVBQUUsU0FBUztJQUNwRCx1Q0FBdUMsRUFBRSxRQUFRO0lBQ2pELDhEQUE4RCxFQUFFLG1EQUFtRDtJQUNuSCx3REFBd0QsRUFBRSxlQUFlO0lBQ3pFLDhEQUE4RCxFQUFFLDBDQUEwQztJQUMxRyx3REFBd0QsRUFBRSxnQkFBZ0I7SUFDMUUsaUVBQWlFLEVBQUUsa0RBQWtEO0lBQ3JILDJEQUEyRCxFQUFFLGdCQUFnQjtJQUM3RSxnREFBZ0QsRUFBRSxlQUFlO0lBQ2pFLHlFQUF5RSxFQUFFLDhCQUE4QjtJQUN6RyxnRUFBZ0UsRUFBRSxVQUFVO0lBQzVFLDhEQUE4RCxFQUFFLGdCQUFnQjtJQUNoRiw4REFBOEQsRUFBRSx1QkFBdUI7SUFDdkYsOERBQThELEVBQUUsbUJBQW1CO0lBQ25GLDBEQUEwRCxFQUFFLEtBQUs7SUFDakUseURBQXlELEVBQUUsS0FBSztJQUNoRSx3REFBd0QsRUFBRSxlQUFlO0lBQ3pFLHVEQUF1RCxFQUFFLHlCQUF5QjtJQUNsRixpRUFBaUUsRUFBRSwyQkFBMkI7SUFDOUYscUVBQXFFLEVBQUUsaUJBQWlCO0lBQ3hGLHNFQUFzRSxFQUFFLFVBQVU7SUFDbEYseUVBQXlFLEVBQUUsYUFBYTtJQUN4RixzRUFBc0UsRUFBRSx3QkFBd0I7SUFDaEcsOENBQThDLEVBQUUsYUFBYTtJQUM3RCwyQ0FBMkMsRUFBRSxVQUFVO0lBQ3ZELHNFQUFzRSxFQUFFLHlDQUF5QztJQUNqSCw2REFBNkQsRUFBRSxRQUFRO0lBQ3ZFLG1FQUFtRSxFQUFFLHVHQUF1RztJQUM1Syw0REFBNEQsRUFBRSxnQkFBZ0I7SUFDOUUseUVBQXlFLEVBQUUsbUdBQW1HO0lBQzlLLG1FQUFtRSxFQUFFLHVCQUF1QjtJQUM1Riw2REFBNkQsRUFBRSw2QkFBNkI7SUFDNUYsdURBQXVELEVBQUUsd0JBQXdCO0lBQ2pGLGlEQUFpRCxFQUFFLFVBQVU7SUFDN0QsdURBQXVELEVBQUUsU0FBUztJQUNsRSxzREFBc0QsRUFBRSxPQUFPO0lBQy9ELHlDQUF5QyxFQUFFLFVBQVU7SUFDckQsZ0RBQWdELEVBQUUsbUNBQW1DO0NBQ3hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZmFsbGJhY2s6IGFueSA9IHtcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmFkZFwiOiBcIkFkaWNpb25hclwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuYXVkaXRfY3JlYXRlZF9ieVwiOiBcIkNyaWFkbyBwb3Ige3tub21lfX0gZW0ge3tkYXRhfX0gw6BzIHt7aG9yYX19LlwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuYXVkaXRfbW9kaWZpZWRfYnlcIjogXCJNb2RpZmljYWRvIHBvciB7e25vbWV9fSBlbSB7e2RhdGF9fSDDoHMge3tob3JhfX0uXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5hdWRpdF9pbmFjdGl2YXRlZF9ieVwiOiBcIkluYXRpdmFkbyBwb3Ige3tub21lfX0gZW0ge3tkYXRhfX0gw6BzIHt7aG9yYX19LlwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuY29uZGljYW9fdmFsb3JfbG9va3VwX2NvbmRpY2lvbmFsX25vX2F1ZGl0XCI6IFwiU2VtIGluZm9ybWHDp8O1ZXMgZGUgYXVkaXRvcmlhXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5kZWxldGVcIjogXCJFeGNsdWlyXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lZGl0XCI6IFwiRWRpdGFyXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9mb3JiaWRkZW5fZGVzY3JpcHRpb25cIjogXCJWb2PDqiBuw6NvIHRlbSBwZXJtaXNzw6NvIHBhcmEgYWNlc3NhciBlc3RlIHJlY3Vyc28uXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9mb3JiaWRkZW5fdGl0bGVcIjogXCJBY2Vzc28gTmVnYWRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9ub3RfZm91bmRfZGVzY3JpcHRpb25cIjogXCJPIHJlY3Vyc28gc29saWNpdGFkbyBuw6NvIGZvaSBlbmNvbnRyYWRvLlwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3Jfbm90X2ZvdW5kX3RpdGxlXCI6IFwiTsOjbyBFbmNvbnRyYWRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl91bmF1dGhvcml6ZWRfZGVzY3JpcHRpb25cIjogXCJWb2PDqiBuw6NvIGVzdMOhIGF1dG9yaXphZG8gYSBhY2Vzc2FyIGVzdGUgcmVjdXJzby5cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX3VuYXV0aG9yaXplZF90aXRsZVwiOiBcIk7Do28gQXV0b3JpemFkb1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuZ3JpZF9hbmluaGFkYVwiOiBcIkdyaWQgQW5pbmhhZGFcIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmdyaWRfZWRpdGFibGVfbmVzdGVkX2NhbGVuZGFyX3JlcXVpcmVkXCI6IFwiw4kgbmVjZXNzw6FyaW8gaW5mb3JtYXIgYSBkYXRhXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5ncmlkX2VkaXRhYmxlX25lc3RlZF9jYW5jZWxhclwiOiBcIkNhbmNlbGFyXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5ncmlkX2VkaXRhYmxlX25lc3RlZF9lZGl0YXJcIjogXCJFZGl0YXIgdmFsb3Jlc1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuZ3JpZF9lZGl0YWJsZV9uZXN0ZWRfcGFnaW5nXCI6IFwicmVnaXN0cm9zIGVuY29udHJhZG9zXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5ncmlkX2VkaXRhYmxlX25lc3RlZF9zYWx2YXJcIjogXCJTYWx2YXIgYWx0ZXJhw6fDtWVzXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5saXN0X2dyaWRfYm9vbGVhbl9mYWxzZVwiOiBcIk7Do29cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmxpc3RfZ3JpZF9ib29sZWFuX3RydWVcIjogXCJTaW1cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLmxpc3RfZ3JpZF9lbXB0eV9maWVsZFwiOiBcIk7Do28gaW5mb3JtYWRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5wYWluZWxfcHJvY2Vzc2FtZW50b1wiOiBcIlBhaW5lbCBkZSBQcm9jZXNzYW1lbnRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5wYWluZWxfcHJvY2Vzc2FtZW50b19hcGlfZXJyb3JcIjogXCJBUEkgZGUgZW52aW8gbsOjbyBkZWZpbmlkYVwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fc3RhdHVzX2ZhaWxlZFwiOiBcIk9jb3JyZXUgdW0gZXJyb1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fc3RhdHVzX3BlbmRpbmdcIjogXCJQZW5kZW50ZVwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fc3RhdHVzX3Byb2Nlc3NpbmdcIjogXCJQcm9jZXNzYW5kb1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fc3RhdHVzX3N1Y2Nlc3NcIjogXCJGaW5hbGl6YWRvIGNvbSBzdWNlc3NvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5wdXNoX2RyYXdlclwiOiBcIlB1c2ggRHJhd2VyXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5yZWdpc3Ryb1wiOiBcIlJlZ2lzdHJvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5zaG93Y2FzZV9wYWluZWxfcHJvY2Vzc2FtZW50b190aXRsZVwiOiBcIkRlbW9uc3RyYcOnw6NvIGRvIFBhaW5lbCBkZSBQcm9jZXNzYW1lbnRvXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5zaG93Y2FzZV9wdXNoX2RyYXdlcl9jbG9zZVwiOiBcIkZlY2hhclwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc2hvd2Nhc2VfcHVzaF9kcmF3ZXJfZGVzY3JpcHRpb25cIjogXCJPIHBhaW5lbCBsYXRlcmFsIGRlc2xvY2EgbyBjb250ZcO6ZG8gcHJpbmNpcGFsIGUgYWNlaXRhIHF1YWxxdWVyIGNvbXBvc2nDp8OjbyBuYXMgZHVhcyDDoXJlYXMgcHJvamV0YWRhcy5cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnNob3djYXNlX3B1c2hfZHJhd2VyX29wZW5cIjogXCJBYnJpciBkZXRhbGhlc1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc2hvd2Nhc2VfcHVzaF9kcmF3ZXJfcGFuZWxfZGVzY3JpcHRpb25cIjogXCJFc3RlIGNvbnRlw7pkbyDDqSBkZWZpbmlkbyBwZWxhIGFwbGljYcOnw6NvIGNvbnN1bWlkb3JhIGUgcG9kZSBjb250ZXIgZm9ybXVsw6FyaW9zLCBkZXRhbGhlcyBvdSBhw6fDtWVzLlwiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc2hvd2Nhc2VfcHVzaF9kcmF3ZXJfcGFuZWxfdGl0bGVcIjogXCJEZXRhbGhlcyBkbyBkb2N1bWVudG9cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnNob3djYXNlX3B1c2hfZHJhd2VyX3RpdGxlXCI6IFwiRGVtb25zdHJhw6fDo28gZG8gUHVzaCBEcmF3ZXJcIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnNob3djYXNlX3RhYmxlX3RpdGxlXCI6IFwiRGVtb25zdHJhw6fDo28gZGEgVGFiZWxhXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5zaG93Y2FzZV90aXRsZVwiOiBcIlNob3djYXNlXCIsXG4gICAgXCJ0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5zaXR1YWNhb19hdGl2b19mYWxzZVwiOiBcIkluYXRpdm9cIixcbiAgICBcInRtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnNpdHVhY2FvX2F0aXZvX3RydWVcIjogXCJBdGl2b1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc3RhdHVzXCI6IFwiU2l0dWHDp8Ojb1wiLFxuICAgIFwidG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMudG90YWxfcmVjb3Jkc1wiOiBcInt7IHZhbHVlIH19IHJlZ2lzdHJvcyBlbmNvbnRyYWRvc1wiXG59O1xuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFDSCwyQkFBMkIsRUFDM0Isd0JBQXdCLEVBQ3hCLDRCQUE0QixFQUM1Qix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0NBQW9DLEVBQXNCLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlVmFsdWUgfSBmcm9tIFwiLi9jb21tb25zL2luZGV4XCI7XG5leHBvcnQge1xuICAgIEdyaWRFZGl0YWJsZU5lc3RlZENvbXBvbmVudCxcbiAgICBHcmlkRWRpdGFibGVOZXN0ZWRNb2R1bGUsXG4gICAgUGFpbmVsUHJvY2Vzc2FtZW50b0NvbXBvbmVudCxcbiAgICBQYWluZWxQcm9jZXNzYW1lbnRvTW9kdWxlLFxuICAgIFNpZGViYXJEaW5hbWljYUNvbXBvbmVudCxcbiAgICBTaWRlYmFyRGluYW1pY2FNb2R1bGVcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9pbmRleFwiO1xuZXhwb3J0IHsgZmFsbGJhY2sgfSBmcm9tIFwiLi9sb2NhbGUvZmFsbGJhY2tcIjtcbmV4cG9ydCB7IEhPU1RfUFJPSkVDVF9DT05GSUdTX0lOSkVDVElPTl9UT0tFTiwgSG9zdFByb2plY3RDb25maWdzLCBUbXN4QW5ndWxhckNvbXBvbmVudHNNb2R1bGUgfSBmcm9tIFwiLi90bXN4LWFuZ3VsYXItY29tcG9uZW50cy5tb2R1bGVcIjtcbmV4cG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gXCIuL3V0aWxzL2luZGV4XCI7XG4iXX0=
@@ -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,169 @@ 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
+ pushContent = false;
934
+ width = '50vw';
935
+ top = '0';
936
+ height = '100vh';
937
+ zIndex = 99999;
938
+ ariaLabel = '';
939
+ panelTemplate;
940
+ title = '';
941
+ subtitle = '';
942
+ subtitleClass = 'chave-acesso sds-readonly';
943
+ closeButtonTitle = 'Fechar';
944
+ tabs = [];
945
+ activeTabIndex = 0;
946
+ showFooter = true;
947
+ footerBadgeLabel = '';
948
+ footerBadgeIconClass = 'fal fa-check-circle';
949
+ actions = [];
950
+ footerTemplate;
951
+ errorIconClass = 'fa fa-exclamation-triangle';
952
+ errorTitle = 'Erro ao carregar dados';
953
+ errorDescription = 'Ocorreu um erro no servidor.';
954
+ errorRetryLabel = 'Tentar novamente';
955
+ closeSidebar = new EventEmitter();
956
+ retryLoad = new EventEmitter();
957
+ actionClick = new EventEmitter();
958
+ tabChange = new EventEmitter();
959
+ ngOnChanges() {
960
+ const lastTabIndex = Math.max(this.visibleTabs.length - 1, 0);
961
+ if (this.activeTabIndex > lastTabIndex) {
962
+ this.activeTabIndex = lastTabIndex;
963
+ }
964
+ }
965
+ get visibleTabs() {
966
+ return this.tabs.filter((tab) => !tab.hidden);
967
+ }
968
+ get visibleActions() {
969
+ return this.actions.filter((action) => !action.hidden);
970
+ }
971
+ onCloseClick() {
972
+ this.closeSidebar.emit();
973
+ }
974
+ onRetryClick() {
975
+ this.retryLoad.emit();
976
+ }
977
+ onTabChange(index) {
978
+ this.activeTabIndex = index;
979
+ this.tabChange.emit(index);
980
+ }
981
+ onActionButtonClick(action) {
982
+ this.actionClick.emit({ actionId: action.id });
983
+ }
984
+ getButtonPriority(action) {
985
+ return action.priority || 'default';
986
+ }
987
+ trackByTabId(index, tab) {
988
+ return tab.id || index.toString();
989
+ }
990
+ trackByActionId(index, action) {
991
+ return action.id || index.toString();
992
+ }
993
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
994
+ 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", pushContent: "pushContent", width: "width", top: "top", height: "height", zIndex: "zIndex", ariaLabel: "ariaLabel", panelTemplate: "panelTemplate", 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\n class=\"sidebar-layout\"\n [class.sidebar-open]=\"showSidebar\"\n [class.sidebar-push-content]=\"pushContent\"\n [style.--sidebar-width]=\"width\"\n [style.--sidebar-top]=\"top\"\n [style.--sidebar-height]=\"height\"\n [style.--sidebar-z-index]=\"zIndex\">\n <div class=\"sidebar-content\">\n <ng-content select=\"[sidebarContent]\"></ng-content>\n </div>\n\n <aside\n class=\"detalhes-drawer\"\n [class.drawer-open]=\"showSidebar\"\n [class.custom-panel]=\"panelTemplate\"\n [attr.aria-hidden]=\"!showSidebar\"\n [attr.aria-label]=\"ariaLabel || null\">\n @if (panelTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"panelTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: showSidebar }\">\n </ng-container>\n } @else {\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 </aside>\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sidebar-layout,.sidebar-content{width:100%;min-width:0}.sidebar-content{box-sizing:border-box;padding-right:0;transition:padding-right .3s ease-in-out}.sidebar-push-content.sidebar-open .sidebar-content{padding-right:var(--sidebar-width)}.loading{position:absolute;margin-top:50%}.detalhes-drawer{position:fixed!important;top:var(--sidebar-top);right:0;z-index:var(--sidebar-z-index)!important;background:#fff;box-shadow:-4px 0 16px #0000001f;width:var(--sidebar-width);height:var(--sidebar-height);display:flex;flex-direction:column;overflow:hidden;transform:translate(100%);transition:transform .3s ease-in-out,visibility 0s linear .3s;visibility:hidden;padding:16px 20px;box-sizing:border-box}.detalhes-drawer.drawer-open{transform:translate(0);visibility:visible;transition:transform .3s ease-in-out,visibility 0s linear 0s}.detalhes-drawer.custom-panel{padding:0}@media (prefers-reduced-motion: reduce){.sidebar-content,.detalhes-drawer{transition-duration:.01ms}}.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"] }] });
995
+ }
996
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaComponent, decorators: [{
997
+ type: Component,
998
+ args: [{ selector: 'tmsx-sidebar-dinamica', template: "<div\n class=\"sidebar-layout\"\n [class.sidebar-open]=\"showSidebar\"\n [class.sidebar-push-content]=\"pushContent\"\n [style.--sidebar-width]=\"width\"\n [style.--sidebar-top]=\"top\"\n [style.--sidebar-height]=\"height\"\n [style.--sidebar-z-index]=\"zIndex\">\n <div class=\"sidebar-content\">\n <ng-content select=\"[sidebarContent]\"></ng-content>\n </div>\n\n <aside\n class=\"detalhes-drawer\"\n [class.drawer-open]=\"showSidebar\"\n [class.custom-panel]=\"panelTemplate\"\n [attr.aria-hidden]=\"!showSidebar\"\n [attr.aria-label]=\"ariaLabel || null\">\n @if (panelTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"panelTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: showSidebar }\">\n </ng-container>\n } @else {\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 </aside>\n</div>\n", styles: [":host{display:block;width:100%;min-width:0}.sidebar-layout,.sidebar-content{width:100%;min-width:0}.sidebar-content{box-sizing:border-box;padding-right:0;transition:padding-right .3s ease-in-out}.sidebar-push-content.sidebar-open .sidebar-content{padding-right:var(--sidebar-width)}.loading{position:absolute;margin-top:50%}.detalhes-drawer{position:fixed!important;top:var(--sidebar-top);right:0;z-index:var(--sidebar-z-index)!important;background:#fff;box-shadow:-4px 0 16px #0000001f;width:var(--sidebar-width);height:var(--sidebar-height);display:flex;flex-direction:column;overflow:hidden;transform:translate(100%);transition:transform .3s ease-in-out,visibility 0s linear .3s;visibility:hidden;padding:16px 20px;box-sizing:border-box}.detalhes-drawer.drawer-open{transform:translate(0);visibility:visible;transition:transform .3s ease-in-out,visibility 0s linear 0s}.detalhes-drawer.custom-panel{padding:0}@media (prefers-reduced-motion: reduce){.sidebar-content,.detalhes-drawer{transition-duration:.01ms}}.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"] }]
999
+ }], propDecorators: { showSidebar: [{
1000
+ type: Input
1001
+ }], showLoader: [{
1002
+ type: Input
1003
+ }], serverError: [{
1004
+ type: Input
1005
+ }], pushContent: [{
1006
+ type: Input
1007
+ }], width: [{
1008
+ type: Input
1009
+ }], top: [{
1010
+ type: Input
1011
+ }], height: [{
1012
+ type: Input
1013
+ }], zIndex: [{
1014
+ type: Input
1015
+ }], ariaLabel: [{
1016
+ type: Input
1017
+ }], panelTemplate: [{
1018
+ type: Input
1019
+ }], title: [{
1020
+ type: Input
1021
+ }], subtitle: [{
1022
+ type: Input
1023
+ }], subtitleClass: [{
1024
+ type: Input
1025
+ }], closeButtonTitle: [{
1026
+ type: Input
1027
+ }], tabs: [{
1028
+ type: Input
1029
+ }], activeTabIndex: [{
1030
+ type: Input
1031
+ }], showFooter: [{
1032
+ type: Input
1033
+ }], footerBadgeLabel: [{
1034
+ type: Input
1035
+ }], footerBadgeIconClass: [{
1036
+ type: Input
1037
+ }], actions: [{
1038
+ type: Input
1039
+ }], footerTemplate: [{
1040
+ type: Input
1041
+ }], errorIconClass: [{
1042
+ type: Input
1043
+ }], errorTitle: [{
1044
+ type: Input
1045
+ }], errorDescription: [{
1046
+ type: Input
1047
+ }], errorRetryLabel: [{
1048
+ type: Input
1049
+ }], closeSidebar: [{
1050
+ type: Output
1051
+ }], retryLoad: [{
1052
+ type: Output
1053
+ }], actionClick: [{
1054
+ type: Output
1055
+ }], tabChange: [{
1056
+ type: Output
1057
+ }] } });
1058
+
1059
+ class SidebarDinamicaModule {
1060
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1061
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, declarations: [SidebarDinamicaComponent], imports: [CommonModule,
1062
+ LoadingStateModule,
1063
+ ButtonModule,
1064
+ EmptyStateModule,
1065
+ TabViewModule], exports: [SidebarDinamicaComponent] });
1066
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, imports: [CommonModule,
1067
+ LoadingStateModule,
1068
+ ButtonModule,
1069
+ EmptyStateModule,
1070
+ TabViewModule] });
1071
+ }
1072
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarDinamicaModule, decorators: [{
1073
+ type: NgModule,
1074
+ args: [{
1075
+ imports: [
1076
+ CommonModule,
1077
+ LoadingStateModule,
1078
+ ButtonModule,
1079
+ EmptyStateModule,
1080
+ TabViewModule
1081
+ ],
1082
+ declarations: [
1083
+ SidebarDinamicaComponent
1084
+ ],
1085
+ providers: [],
1086
+ exports: [
1087
+ SidebarDinamicaComponent
1088
+ ],
1089
+ }]
1090
+ }] });
1091
+
926
1092
  const fallback = {
927
1093
  "tmsx_fnd.tmsx_angular_components.add": "Adicionar",
928
1094
  "tmsx_fnd.tmsx_angular_components.audit_created_by": "Criado por {{nome}} em {{data}} às {{hora}}.",
@@ -952,8 +1118,15 @@ const fallback = {
952
1118
  "tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending": "Pendente",
953
1119
  "tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing": "Processando",
954
1120
  "tmsx_fnd.tmsx_angular_components.painel_processamento_status_success": "Finalizado com sucesso",
1121
+ "tmsx_fnd.tmsx_angular_components.push_drawer": "Push Drawer",
955
1122
  "tmsx_fnd.tmsx_angular_components.registro": "Registro",
956
1123
  "tmsx_fnd.tmsx_angular_components.showcase_painel_processamento_title": "Demonstração do Painel de Processamento",
1124
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_close": "Fechar",
1125
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_description": "O painel lateral desloca o conteúdo principal e aceita qualquer composição nas duas áreas projetadas.",
1126
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_open": "Abrir detalhes",
1127
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_panel_description": "Este conteúdo é definido pela aplicação consumidora e pode conter formulários, detalhes ou ações.",
1128
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_panel_title": "Detalhes do documento",
1129
+ "tmsx_fnd.tmsx_angular_components.showcase_push_drawer_title": "Demonstração do Push Drawer",
957
1130
  "tmsx_fnd.tmsx_angular_components.showcase_table_title": "Demonstração da Tabela",
958
1131
  "tmsx_fnd.tmsx_angular_components.showcase_title": "Showcase",
959
1132
  "tmsx_fnd.tmsx_angular_components.situacao_ativo_false": "Inativo",
@@ -988,5 +1161,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
988
1161
  * Generated bundle index. Do not edit.
989
1162
  */
990
1163
 
991
- export { FieldType, GridEditableNestedComponent, GridEditableNestedModule, HOST_PROJECT_CONFIGS_INJECTION_TOKEN, PainelProcessamentoComponent, PainelProcessamentoModule, TmsxAngularComponentsModule, UtilsService, fallback };
1164
+ export { FieldType, GridEditableNestedComponent, GridEditableNestedModule, HOST_PROJECT_CONFIGS_INJECTION_TOKEN, PainelProcessamentoComponent, PainelProcessamentoModule, SidebarDinamicaComponent, SidebarDinamicaModule, TmsxAngularComponentsModule, UtilsService, fallback };
992
1165
  //# 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 @Input() pushContent = false;\n @Input() width = '50vw';\n @Input() top = '0';\n @Input() height = '100vh';\n @Input() zIndex = 99999;\n @Input() ariaLabel = '';\n @Input() panelTemplate?: TemplateRef<unknown>;\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\n class=\"sidebar-layout\"\n [class.sidebar-open]=\"showSidebar\"\n [class.sidebar-push-content]=\"pushContent\"\n [style.--sidebar-width]=\"width\"\n [style.--sidebar-top]=\"top\"\n [style.--sidebar-height]=\"height\"\n [style.--sidebar-z-index]=\"zIndex\">\n <div class=\"sidebar-content\">\n <ng-content select=\"[sidebarContent]\"></ng-content>\n </div>\n\n <aside\n class=\"detalhes-drawer\"\n [class.drawer-open]=\"showSidebar\"\n [class.custom-panel]=\"panelTemplate\"\n [attr.aria-hidden]=\"!showSidebar\"\n [attr.aria-label]=\"ariaLabel || null\">\n @if (panelTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"panelTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: showSidebar }\">\n </ng-container>\n } @else {\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 </aside>\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.push_drawer\": \"Push Drawer\",\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_push_drawer_close\": \"Fechar\",\n \"tmsx_fnd.tmsx_angular_components.showcase_push_drawer_description\": \"O painel lateral desloca o conteúdo principal e aceita qualquer composição nas duas áreas projetadas.\",\n \"tmsx_fnd.tmsx_angular_components.showcase_push_drawer_open\": \"Abrir detalhes\",\n \"tmsx_fnd.tmsx_angular_components.showcase_push_drawer_panel_description\": \"Este conteúdo é definido pela aplicação consumidora e pode conter formulários, detalhes ou ações.\",\n \"tmsx_fnd.tmsx_angular_components.showcase_push_drawer_panel_title\": \"Detalhes do documento\",\n \"tmsx_fnd.tmsx_angular_components.showcase_push_drawer_title\": \"Demonstração do Push Drawer\",\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-feature-tmsx-2719-b9264dcd",
4
4
  "module": "fesm2022/seniorsistemas-tmsx-angular-components.mjs",
5
5
  "typings": "index.d.ts",
6
6
  "exports": {
@@ -18,4 +18,4 @@
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0"
20
20
  }
21
- }
21
+ }
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";