{"version":3,"file":"library-rms.mjs","sources":["../../../projects/library-rms/src/lib/library-rms.service.ts","../../../projects/library-rms/src/lib/library-rms.component.ts","../../../projects/library-rms/src/lib/library-rms.module.ts","../../../projects/library-rms/src/crypto/crypto.ts","../../../projects/library-rms/src/ui-header/ui-header/ui-header.component.ts","../../../projects/library-rms/src/ui-header/ui-header/ui-header.component.html","../../../projects/library-rms/src/ui-header/ui-header.module.ts","../../../projects/library-rms/src/ui-sidenav/ui-sidenav/ui-sidenav.component.ts","../../../projects/library-rms/src/ui-sidenav/ui-sidenav/ui-sidenav.component.html","../../../projects/library-rms/src/ui-sidenav/ui-sidenav.module.ts","../../../projects/library-rms/src/service/ui-translate.service.ts","../../../projects/library-rms/src/ui-customer/ui-customer/ui-customer.component.ts","../../../projects/library-rms/src/ui-customer/ui-customer/ui-customer.component.html","../../../projects/library-rms/src/ui-customer/ui-customer.module.ts","../../../projects/library-rms/src/ui-table/ui-table/status.constants.ts","../../../projects/library-rms/src/ui-table/ui-table/ui-table.component.ts","../../../projects/library-rms/src/ui-table/ui-table/ui-table.component.html","../../../projects/library-rms/src/ui-table/ui-table/ui-table-paginator.component.ts","../../../projects/library-rms/src/ui-table/ui-table.module.ts","../../../projects/library-rms/src/ui-updategrilla/ui-updategrilla/ui-updategrilla.component.ts","../../../projects/library-rms/src/ui-updategrilla/ui-updategrilla/ui-updategrilla.component.html","../../../projects/library-rms/src/ui-updategrilla/ui-updategrilla.module.ts","../../../projects/library-rms/src/ui-filter-checkbox/ui-filter-checkbox/ui-filter-checkbox.component.ts","../../../projects/library-rms/src/ui-filter-checkbox/ui-filter-checkbox/ui-filter-checkbox.component.html","../../../projects/library-rms/src/ui-filter-checkbox/ui-filter-checkbox.module.ts","../../../projects/library-rms/src/ui-filter-select/ui-filter-select/ui-filter-select.component.ts","../../../projects/library-rms/src/ui-filter-select/ui-filter-select/ui-filter-select.component.html","../../../projects/library-rms/src/ui-filter-select/ui-filter-select.module.ts","../../../projects/library-rms/src/ui-filter-input/ui-filter-input/ui-filter-input.component.ts","../../../projects/library-rms/src/ui-filter-input/ui-filter-input/ui-filter-input.component.html","../../../projects/library-rms/src/ui-filter-input/ui-filter-input.module.ts","../../../projects/library-rms/src/ui-filter-date/ui-filter-date/ui-filter-date.component.ts","../../../projects/library-rms/src/ui-filter-date/ui-filter-date/ui-filter-date.component.html","../../../projects/library-rms/src/ui-filter-date/ui-filter-date.module.ts","../../../projects/library-rms/src/ui-multi-purpose-dialog/ui-multi-purpose-dialog/ui-multi-purpose-dialog.component.ts","../../../projects/library-rms/src/ui-multi-purpose-dialog/ui-multi-purpose-dialog/ui-multi-purpose-dialog.component.html","../../../projects/library-rms/src/ui-multi-purpose-dialog/ui-multi-purpose-dialog.module.ts","../../../projects/library-rms/src/ui-popup-alert/ui-popup-alert/ui-popup-alert.service.ts","../../../projects/library-rms/src/ui-popup-alert/ui-popup-alert/ui-popup-alert.component.ts","../../../projects/library-rms/src/ui-popup-alert/ui-popup-alert.module.ts","../../../projects/library-rms/src/ui-button/ui-button/ui-button.component.ts","../../../projects/library-rms/src/ui-button/ui-button/ui-button.component.html","../../../projects/library-rms/src/ui-button/ui-button.module.ts","../../../projects/library-rms/src/ui-not-found/ui-not-found/ui-not-found.component.ts","../../../projects/library-rms/src/ui-not-found/ui-not-found/ui-not-found.component.html","../../../projects/library-rms/src/ui-not-found/ui-not-found.module.ts","../../../projects/library-rms/src/ui-rms.module.ts","../../../projects/library-rms/src/ui-more-filter/ui-more-filter/ui-more-filter.component.ts","../../../projects/library-rms/src/ui-more-filter/ui-more-filter/ui-more-filter.component.html","../../../projects/library-rms/src/ui-more-filter/ui-more-filter.module.ts","../../../projects/library-rms/src/public-api.ts","../../../projects/library-rms/src/library-rms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class LibraryRMSService {\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-libraryRMS',\r\n  template: `\r\n    <p>\r\n      library-rms works!\r\n    </p>\r\n  `,\r\n  styles: [\r\n  ]\r\n})\r\nexport class LibraryRMSComponent {\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { LibraryRMSComponent } from './library-rms.component';\r\n\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    LibraryRMSComponent,\r\n  \r\n\r\n  ],\r\n  imports: [\r\n  \r\n  \r\n  ],\r\n  exports: [\r\n    LibraryRMSComponent\r\n  ]\r\n})\r\nexport class LibraryRMSModule { }\r\n","\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\nexport const SECRET_KEY = 'pwa';\r\nexport function encrypt(data: any): any {\r\n    data = CryptoJS.AES.encrypt(data, SECRET_KEY);\r\n    data = data.toString();\r\n    return data;\r\n  }\r\n  \r\n  export function decrypt(data: any): any {\r\n    data = CryptoJS.AES.decrypt(data, SECRET_KEY);\r\n    data = data.toString(CryptoJS.enc.Utf8);\r\n    return data;\r\n  }","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { decrypt } from '../../crypto/crypto';\r\n\r\n@Component({\r\n  selector: 'lib-ui-header',\r\n  templateUrl: './ui-header.component.html',\r\n  styleUrls: ['./ui-header.component.scss']\r\n})\r\nexport class UiHeaderComponent {  \r\n@Input()valuesHeader={\r\n    icon:'',\r\n    icon2:'',\r\n    tittle:[{tittle:''},{tittle:''},{tittle:''}]\r\n  } \r\n  @Input() settingSession={\r\n    currentUser: \"\",\r\n    currentUserFullName: \"\",\r\n    homeStoreNo: 0,\r\n    homeStoreName: \"\",\r\n    vat: true,\r\n    currencyId: 1,\r\n    currencyName: \"\",\r\n    currencySymbol: \"\",\r\n    Username_icon:'',\r\n    languageName:''\r\n  }\r\n  settingsLogin:any={\r\n    companyCode:'',\r\n    employeeCode:'',\r\n    token:'',\r\n    logout:''\r\n  }\r\n  @Input() sideBarOpen=false\r\n  constructor(){\r\n  this.settingsLogin=JSON.parse(decrypt(localStorage.getItem('settingsLogin'))) \r\n}\r\n\r\n  logout(){\r\n    localStorage.clear()\r\n    window.location.href = this.settingsLogin.logout;\r\n  }  \r\n}\r\n\r\n\r\n","<link href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css\" rel=\"stylesheet\"\r\n  integrity=\"sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp\" crossorigin=\"anonymous\">\r\n\r\n<div class=\"bg-white hide sticky-top header\">\r\n\r\n  <div class=\"d-flex justify-content-between h-100 px-2\">\r\n\r\n    <div class=\"module-content\">\r\n      <div *ngIf=\"valuesHeader\" class=\"module-breadcrumb\">\r\n         <div class=\"icon-item\" role=\"img\" aria-label=\"Voucher\" width=\"24\" height=\"24\">\r\n          <div class=\"material-symbols-outlined\">{{valuesHeader.icon}}</div>\r\n          <div *ngIf=\"valuesHeader.icon2\" class=\"material-symbols-outlined\">{{valuesHeader.icon2}}</div>\r\n        </div>\r\n        \r\n        <div class=\"module-text\">\r\n          <ng-container *ngFor=\"let item of valuesHeader.tittle; let i = index\">\r\n            <ng-container *ngIf=\"item.tittle !== ''\">\r\n              <span *ngIf=\"i > 0\" class=\"material-icons\">arrow_right</span>\r\n              {{ item.tittle }}\r\n            </ng-container>\r\n          </ng-container>\r\n        </div>\r\n      </div>    \r\n    </div>\r\n     \r\n    <ul class=\"rightSection\">\r\n      <li>\r\n        <div class=\"store\">\r\n          <span class=\"material-icons-outlined\">store</span>\r\n          <div class=\"storename\">{{settingSession.homeStoreNo}} - {{settingSession.homeStoreName}}</div>\r\n        </div>\r\n      </li>\r\n      <li>\r\n        <div class=\"dropdown\">\r\n          <button\r\n            class=\"btn dropdown-toggle btn-username\"\r\n            type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n            <span class=\"icon-username text-white\">{{settingSession.Username_icon}}</span>\r\n          </button>\r\n          <div class=\"dropdown-menu menu-options\">\r\n            <div class=\"user\">\r\n              <div class=\"user-acro\">{{settingSession.Username_icon}}</div>\r\n              <div class=\"section-user-info\">\r\n                <div class=\"user-current\">{{settingSession.currentUser}}</div>\r\n                <div class=\"user-fullname\">\r\n                  <span class=\"material-symbols-outlined\">person</span>{{settingSession.currentUserFullName}}\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div class=\"buttons-group\">\r\n              <button type=\"button\" (click)=\"logout()\" class=\"btn btn-secondary btn-logout\">{{settingSession.languageName==='en'?'Logout':'Cerrar sesion'}} </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </li>\r\n    </ul>\r\n    \r\n  </div>\r\n\r\n\r\n\r\n</div>\r\n<script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js\"\r\n  integrity=\"sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf\" crossorigin=\"anonymous\"></script>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UiHeaderComponent } from './ui-header/ui-header.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    UiHeaderComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    UiHeaderComponent\r\n  ]\r\n})\r\nexport class UiHeaderModule { }\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { encrypt, decrypt } from '../../crypto/crypto';\r\n@Component({\r\n  selector: 'lib-ui-sidenav',\r\n  templateUrl: './ui-sidenav.component.html',\r\n  styleUrls: ['./ui-sidenav.component.scss']\r\n})\r\nexport class UiSidenavComponent {\r\n  moduleSettings = {\r\n    moduleView: {\r\n      routing: false,\r\n      customer: false,\r\n      home: false,\r\n      inventory: false,\r\n      sales: false,\r\n      order: false,\r\n      reports: false,\r\n      voucher: false,\r\n      rtv: false,\r\n      po: false,\r\n      transfer: false,\r\n      adjustment: false,\r\n      stockcontrol: false,\r\n      orderworklist: false,\r\n      electronicsdocuments: false\r\n    },\r\n    moduleURL: {\r\n      routing: '',\r\n      customer: '',\r\n      home: '',\r\n      inventory: '',\r\n      sales: '',\r\n      order: '',\r\n      po: '',\r\n      rtv: '',\r\n      reports: '',\r\n      voucher: '',\r\n      transfer: '',\r\n      adjustment: '',\r\n      stockcontrol: '',\r\n      orderworklist: '',\r\n      electronicsdocuments: ''\r\n    }\r\n  }\r\n  @Input() logo: any = \"\"\r\n  @Input() logoVoucher: any = \"\"\r\n  @Input() logoRTV: any = \"\"\r\n  @Input() logoResponsive: any = \"\"\r\n  @Input() HomeActive = false\r\n  @Input() InventoryActive = false\r\n  @Input() VoucherActive = false\r\n  @Input() RTVActive = false\r\n  @Input() POActive = false\r\n  @Input() OrdersActive = false\r\n  @Input() TransferActive = false\r\n  @Input() AdjustmentActive = false\r\n  @Input() StockcontrolActive = false\r\n  @Input() OrderworklistActive = false\r\n  @Input() SalesActive = false\r\n  @Input() StrategiesLib = false\r\n  @Input() InventoryLib = false\r\n  @Input() StrategiesID: any\r\n  @Input() StrategyActive = false\r\n  @Input() StrategyMainActive = false\r\n  @Input() StrategyGroupActive = false\r\n  @Input() buttonCollapsed = true\r\n  @Input() CustomersActive = false\r\n  @Input() ReportsActive = false\r\n  @Input() ElectronicsdocumentsActive = false\r\n  @Input() translate = 'en'\r\n  labels = {\r\n    labelHome: '',\r\n    labelIventory: '',\r\n    labelIventoryimport: '',\r\n    labelStockcontrol: '',\r\n    labelOrderworklist: '',\r\n    labelPurcherOrder: '',\r\n    labelVoucher: '',\r\n    labelRTV: '',\r\n    labelTransfer: '',\r\n    labelSales: '',\r\n    labelOrder: '',\r\n    labelRouting: '',\r\n    labelStrategy: '',\r\n    labelGroups: '',\r\n    labelCustomers: '',\r\n    labelReports: '',\r\n    labelAdjustment: '',\r\n    labelElectronicsdocuments: ''\r\n  }\r\n\r\n  collapsed(value: boolean) {\r\n    this.buttonCollapsed = value\r\n\r\n  }\r\n  constructor() {\r\n    this.moduleSettings = JSON.parse(decrypt(localStorage.getItem('moduleSettings')))\r\n\r\n\r\n  }\r\n  ngOnInit() {\r\n    if (this.translate == 'es') {\r\n      this.labels.labelHome = 'Inicio'\r\n      this.labels.labelSales = 'Ventas'\r\n      this.labels.labelIventory = 'Inventario'\r\n      this.labels.labelIventoryimport = 'Importar'\r\n      this.labels.labelPurcherOrder = 'Ordenes de Compra'\r\n      this.labels.labelOrder = 'Ordenes de Venta'\r\n      this.labels.labelVoucher = 'Recibos'\r\n      this.labels.labelRTV = 'Devoluciones(RTV)'\r\n      this.labels.labelRouting = 'Ruteo'\r\n      this.labels.labelCustomers = 'Clientes'\r\n      this.labels.labelReports = 'Reportes'\r\n      this.labels.labelTransfer = 'Transferencias'\r\n      this.labels.labelAdjustment = 'Ajustes'\r\n      this.labels.labelStockcontrol = 'Control de Stock'\r\n      this.labels.labelOrderworklist = 'Ordenes de Venta por Envio'\r\n      this.labels.labelStrategy = 'Estrategias'\r\n      this.labels.labelGroups = 'Grupos',\r\n        this.labels.labelElectronicsdocuments = 'Documentos Electronicos'\r\n    } else if (this.translate == 'en') {\r\n      this.labels.labelHome = 'Home'\r\n      this.labels.labelSales = 'Sales'\r\n      this.labels.labelIventory = 'Inventory'\r\n      this.labels.labelIventoryimport = 'Import'\r\n      this.labels.labelOrder = 'Orders'\r\n      this.labels.labelPurcherOrder = 'Purchase Orders'\r\n      this.labels.labelVoucher = 'Vouchers'\r\n      this.labels.labelRTV = 'RTVs'\r\n      this.labels.labelCustomers = 'Customers'\r\n      this.labels.labelTransfer = 'Transfers'\r\n      this.labels.labelAdjustment = 'Adjustments'\r\n      this.labels.labelStockcontrol = 'Stock Control'\r\n      this.labels.labelOrderworklist = 'Orders Work List'\r\n      this.labels.labelReports = 'Reports'\r\n      this.labels.labelRouting = 'Routing'\r\n      this.labels.labelStrategy = 'Strategies'\r\n      this.labels.labelGroups = 'Groups',\r\n        this.labels.labelElectronicsdocuments = 'Electronics Documents'\r\n    }\r\n  }\r\n\r\n}\r\n","<div class=\"sidebar \" [ngClass]=\"{'open': buttonCollapsed}\">\r\n  <!-- icon responsive -->\r\n\r\n  <div class=\"d-flex logo\">\r\n\r\n    <div class=\"d-flex align-items-center collapsed position-relative\" type=\"button\" (click)=\"collapsed(true)\">\r\n      <img src={{logoResponsive}} alt=\"RMS Web\" width=\"22\" height=\"22\" class=\"logo-rmsweb\"/>\r\n      <button class=\"btn-expand btn-float\" type=\"button\" (click)=\"collapsed(true)\">  \r\n        <span class=\"material-icons\">chevron_right</span>\r\n      </button>\r\n    </div>\r\n\r\n    <div class=\"d-flex flex-fill justify-content-between uncollapsed\" type=\"button\" (click)=\"collapsed(false)\">\r\n      <img src={{logo}} alt=\"RMS Web\" width=\"84\" height=\"22\" class=\"logo-rmsweb\"/>\r\n      <button class=\"btn-expand\" type=\"button\" (click)=\"collapsed(false)\">  \r\n        <span class=\"material-icons\">chevron_left</span>\r\n      </button>\r\n    </div>\r\n\r\n  </div>\r\n\r\n  <nav id=\"nav\">\r\n    <ul class=\"d-flex flex-column list-unstyled\">\r\n      <li *ngIf=\"moduleSettings.moduleView.home\" [ngClass]=\"{'active': HomeActive}\" class=\"list-item\">\r\n        <div class=\"tooltip-text\">{{labels.labelHome}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.home\"  class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">home</div>\r\n          <div class=\"item-text\">{{labels.labelHome}}</div>\r\n        </a>\r\n      </li>\r\n\r\n      <li class=\"divider\"></li>\r\n\r\n      <li *ngIf=\"moduleSettings.moduleView.inventory\" [ngClass]=\"{'active': InventoryActive}\" class=\"list-item\">\r\n        <div class=\"tooltip-text\">{{labels.labelIventory}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.inventory\" class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">inventory</div>\r\n          <div class=\"item-text\">{{labels.labelIventory}}</div>\r\n        </a>\r\n\r\n        <ul *ngIf=\"InventoryActive\"  class=\"d-flex flex-column list-group list-unstyled submenu p-1\" >\r\n            <li  [ngClass]=\"{'activate': InventoryActive}\"class=\"list-item \">\r\n              <a href=\"inventoryfile\" class=\"d-flex align-items-center p-1 gap-1\">\r\n                <div class=\"subitem-text \">{{labels.labelIventoryimport}}</div>\r\n              </a>\r\n            </li>\r\n           \r\n          </ul>\r\n\r\n\r\n      </li>\r\n\r\n      <li *ngIf=\"moduleSettings.moduleView.stockcontrol\" [ngClass]=\"{'active': StockcontrolActive}\" class=\"list-item \"  >\r\n        <div class=\"tooltip-text\">{{labels.labelStockcontrol}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.stockcontrol\"class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">inventory_2</div>\r\n          <div class=\"item-text\">{{labels.labelStockcontrol}}</div>\r\n        </a>\r\n      </li>  \r\n\r\n      <li *ngIf=\"moduleSettings.moduleView.orderworklist\" [ngClass]=\"{'active': OrderworklistActive}\" class=\"list-item \"  >\r\n        <div class=\"tooltip-text\">{{labels.labelOrderworklist}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.orderworklist\"class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">work_history</div>\r\n          <div class=\"item-text\">{{labels.labelOrderworklist}}</div>\r\n        </a>\r\n      </li>  \r\n\r\n      <li class=\"divider\"></li>\r\n\r\n      <li *ngIf=\"moduleSettings.moduleView.po\" [ngClass]=\"{'active': POActive}\" class=\"list-item \"  >\r\n        <div class=\"tooltip-text\">{{labels.labelPurcherOrder}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.po\" class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">receipt_long</div>\r\n          <div class=\"item-text\">{{labels.labelPurcherOrder}}</div>\r\n        </a>\r\n      </li>  \r\n      <li *ngIf=\"moduleSettings.moduleView.voucher\" [ngClass]=\"{'active': VoucherActive}\" class=\"list-item \"  >\r\n        <div class=\"tooltip-text\">{{labels.labelVoucher}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.voucher\" class=\"d-flex\">\r\n          <div class=\"icon-item\" role=\"img\" aria-label=\"Voucher\" width=\"24\" height=\"24\">\r\n            <div class=\"material-icons-outlined\">receipt</div>\r\n            <div class=\"material-icons-outlined\">arrow_back</div>\r\n          </div>\r\n          <div class=\"item-text\">{{labels.labelVoucher}}</div>\r\n        </a>\r\n      </li>  \r\n      <li *ngIf=\"moduleSettings.moduleView.rtv\" [ngClass]=\"{'active': RTVActive}\" class=\"list-item \"  >\r\n        <div class=\"tooltip-text\">{{labels.labelRTV}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.rtv\" class=\"d-flex\">\r\n          <div class=\"icon-item\" role=\"img\" aria-label=\"RTV\" width=\"24\" height=\"24\">\r\n            <div class=\"material-icons-outlined\">receipt</div>\r\n            <div class=\"material-icons-outlined\">arrow_forward</div>\r\n          </div>\r\n          <div class=\"item-text\">{{labels.labelRTV}}</div>\r\n        </a>\r\n      </li>  \r\n      <li *ngIf=\"moduleSettings.moduleView.transfer\" [ngClass]=\"{'active': TransferActive}\" class=\"list-item \"  >\r\n        <div class=\"tooltip-text\">{{labels.labelTransfer}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.transfer\" class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">compare_arrows</div>\r\n          <div class=\"item-text\">{{labels.labelTransfer}}</div>\r\n        </a>\r\n      </li>  \r\n      <li *ngIf=\"moduleSettings.moduleView.adjustment\" [ngClass]=\"{'active': AdjustmentActive}\" class=\"list-item \"  >\r\n        <div class=\"tooltip-text\">{{labels.labelAdjustment}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.adjustment\" class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">build</div>\r\n          <div class=\"item-text\">{{labels.labelAdjustment}}</div>\r\n        </a>\r\n      </li>  \r\n      <li *ngIf=\"moduleSettings.moduleView.sales\" [ngClass]=\"{'active': SalesActive}\"  class=\"list-item\" >\r\n        <div class=\"tooltip-text\">{{labels.labelSales}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.sales\" class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">shopping_cart</div>\r\n          <div class=\"item-text\">{{labels.labelSales}}</div>\r\n        </a>\r\n      </li>\r\n      <li *ngIf=\"moduleSettings.moduleView.order\" [ngClass]=\"{'active': OrdersActive}\" class=\"list-item\" >\r\n        <div class=\"tooltip-text\">{{labels.labelOrder}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.order\" class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">list_alt</div>\r\n          <div class=\"item-text\">{{labels.labelOrder}}</div>\r\n        </a>\r\n      </li>     \r\n      <li *ngIf=\"moduleSettings.moduleView.customer\" [ngClass]=\"{'active': CustomersActive}\" class=\"list-item\" >\r\n        <div class=\"tooltip-text\">{{labels.labelCustomers}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.customer\" class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">person</div>\r\n          <div class=\"item-text\">{{labels.labelCustomers}}</div>\r\n        </a>\r\n      </li>\r\n\r\n            <li *ngIf=\"moduleSettings.moduleView.electronicsdocuments\" [ngClass]=\"{'active': ElectronicsdocumentsActive}\" class=\"list-item\" >\r\n        <div class=\"tooltip-text\">{{labels.labelElectronicsdocuments}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.electronicsdocuments\" class=\"d-flex\">\r\n          <div class=\"material-symbols-outlined\">hard_disk</div>\r\n          <div class=\"item-text\">{{labels.labelElectronicsdocuments}}</div>\r\n        </a>\r\n      </li>\r\n      <li class=\"divider\"></li>\r\n\r\n      <li *ngIf=\"moduleSettings.moduleView.reports\" [ngClass]=\"{'active': ReportsActive}\" class=\"list-item\" >\r\n        <div class=\"tooltip-text\">{{labels.labelReports}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.reports\" class=\"d-flex\">\r\n          <div class=\"material-icons-outlined\">summarize</div>\r\n          <div class=\"item-text\">{{labels.labelReports}}</div>\r\n        </a>\r\n      </li> \r\n      <li *ngIf=\"moduleSettings.moduleView.routing\" [ngClass]=\"{'active': StrategyActive}\"   class=\"list-item\">\r\n        <div class=\"tooltip-text\">{{labels.labelRouting}}</div>\r\n        <a [href]=\"moduleSettings.moduleURL.routing\" [ngClass]=\"{'activate': InventoryActive}\" class=\"d-flex\">\r\n          <div class=\"inner-label\">\r\n            <div class=\"material-icons-outlined\">alt_route</div>\r\n            <div class=\"item-text\">{{labels.labelRouting}}</div>\r\n          </div>\r\n          <div *ngIf=\"StrategyActive\" class=\"d-flex arrow\">\r\n            <div class=\"material-icons-outlined\">chevron_right</div>\r\n          </div>\r\n        </a>\r\n        <ul *ngIf=\"StrategyActive\"  class=\"submenu\" >\r\n            <li [ngClass]=\"{'activate': StrategyMainActive}\"class=\"list-item\">\r\n              <a href=\"strategy\" class=\"d-flex align-items-center p-1 gap-1\">\r\n                <div class=\"subitem-text \">{{labels.labelStrategy}}</div>\r\n              </a>\r\n            </li>\r\n            <li *ngIf=\"StrategiesLib\"  [ngClass]=\"{'activate': StrategyGroupActive}\"class=\"list-item \">\r\n              <a href=\"groups/{{StrategiesID}}\" class=\"d-flex align-items-center p-1 gap-1\">\r\n                <div class=\"subitem-text \">{{labels.labelGroups}}</div>\r\n              </a>\r\n            </li>\r\n            <li *ngIf=\"!StrategiesLib\"  [ngClass]=\"{'activate': StrategyGroupActive}\" class=\"list-item \">\r\n                <a class=\"d-flex align-items-center p-1 gap-1\">\r\n                  <div class=\"subitem-text\">{{labels.labelGroups}}</div>\r\n                </a>\r\n            </li>\r\n          </ul>\r\n      </li>  \r\n      \r\n      \r\n    </ul>\r\n  </nav>\r\n</div>\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UiSidenavComponent } from './ui-sidenav/ui-sidenav.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [UiSidenavComponent],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n   ],\r\n   exports: [\r\n    UiSidenavComponent,\r\n    FormsModule,\r\n  ]\r\n})\r\nexport class UiSidenavModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UiTranslateService {\r\n  private readonly languageSubject = new BehaviorSubject<'es' | 'en'>('en');\r\n  language$ = this.languageSubject.asObservable();\r\n\r\n  private readonly translations: { [key: string]: { [language: string]: string } } = {\r\n    TableCustomerTittle: {\r\n      en: \"Select Customer\",\r\n      es: \"Seleccionar Cliente\",\r\n      // Agrega más idiomas aquí si es necesario\r\n    },\r\n    TableCustomerButtonSelect: {\r\n      en: \"Select\",\r\n      es: \"Seleccionar\",\r\n    },\r\n    TableCustomerColumn1: {\r\n      en: \"CUSTOMER #\",\r\n      es: \"NÚMERO DE CLIENTE\",\r\n    },\r\n    TableCustomerColumn2: {\r\n      en: \"FIRST NAME\",\r\n      es: \"NOMBRE\",\r\n    },\r\n    TableCustomerColumn3: {\r\n      en: \"LAST NAME\",\r\n      es: \"APELLIDO\",\r\n    },\r\n    TableCustomerColumn4: {\r\n      en: \"COMPANY\",\r\n      es: \"COMPAÑÍA\",\r\n    },\r\n    TableCustomerColumn5: {\r\n      en: \"EMAIL\",\r\n      es: \"CORREO ELECTRÓNICO\",\r\n    },\r\n    TableCustomerColumn6: {\r\n      en: \"PHONE\",\r\n      es: \"TELÉFONO\",\r\n    },\r\n    TableCustomerColumn7: {\r\n      en: \"LICENSE #\",\r\n      es: \"NÚMERO DE LICENCIA\",\r\n    },\r\n    TableCustomerColumn8: {\r\n      en: \"INFO\",\r\n      es: \"INFORMACIÓN\",\r\n    },\r\n\r\n    // INICIO\r\n    paginator_of: {\r\n      en: \"of\",\r\n      es: \"de\",\r\n    },\r\n    itemsPerPage: {\r\n      en: \"Items per page:\",\r\n      es: \"Elementos por página:\",\r\n    },\r\n    nextPage: {\r\n      en: \"Next page\",\r\n      es: \"Siguiente página\",\r\n    },\r\n    previousPage: {\r\n      en: \"Previous page\",\r\n      es: \"Página anterior\",\r\n    },\r\n    firstPage: {\r\n      en: \"First page\",\r\n      es: \"Primera página\",\r\n    },\r\n    lastPage: {\r\n      en: \"Last page\",\r\n      es: \"Última página\",\r\n    }\r\n    // FIN\r\n\r\n  };\r\n\r\n  public setLanguage(lang: 'es' | 'en') {\r\n    this.languageSubject.next(lang);\r\n  }\r\n\r\n  get currentLanguage(): 'es' | 'en' {\r\n    return this.languageSubject.value;\r\n  }\r\n  \r\n\r\n  public translate(key: string, language: string): string {\r\n    const translation = this.translations[key]?.[language];\r\n    return translation ?? key;\r\n  }\r\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @angular-eslint/use-lifecycle-interface */\r\n/* eslint-disable @typescript-eslint/no-inferrable-types */\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { UiTranslateService } from '../../service/ui-translate.service';\r\n\r\n@Component({\r\n  selector: 'lib-ui-customer',\r\n  templateUrl: './ui-customer.component.html',\r\n  styleUrls: ['./ui-customer.component.scss']\r\n})\r\nexport class UiCustomerComponent {\r\n  \r\n  @Output() DATA_CUSTOMERHIJO_EVENT = new EventEmitter<any>();\r\n\r\n  @Output() DATA_CUSTOMERHIJO_EVENT2 = new EventEmitter<any>();\r\n\r\n\r\n  @Input() TableDataCustomer:any\r\n\r\n  DATASOURCEPRUEBA: any;\r\n  BtnCloseModal: boolean = false;\r\n  displayedColumnsCustomer = [\r\n    'CustomerNO',\r\n    'FirsName',\r\n    'LastName',\r\n    'Company',\r\n    'Email',\r\n    'Phone',\r\n    'License',\r\n    'Info',\r\n  ];\r\n  TableCustomerColumn1:any\r\n  TableCustomerColumn2:any\r\n  TableCustomerColumn3:any\r\n  TableCustomerColumn4:any\r\n  TableCustomerColumn5:any\r\n  TableCustomerColumn6:any\r\n  TableCustomerColumn7:any\r\n  TableCustomerColumn8:any\r\n  TableCustomerTittle:any\r\n  TableCustomerButtonSelect:any\r\n  constructor(public translateService: UiTranslateService) {\r\n  }\r\n  \r\n  ngOnInit() {\r\n    const currentLanguage = 'en'; // You can get the current language from a language service\r\n    this.TableCustomerColumn1 = this.translateService.translate('TableCustomerColumn1', currentLanguage);\r\n    this.TableCustomerColumn2= this.translateService.translate('TableCustomerColumn2', currentLanguage);\r\n    this.TableCustomerColumn3 = this.translateService.translate('TableCustomerColumn3', currentLanguage);\r\n    this.TableCustomerColumn4 = this.translateService.translate('TableCustomerColumn4', currentLanguage);\r\n    this.TableCustomerColumn5 = this.translateService.translate('TableCustomerColumn5', currentLanguage);\r\n    this.TableCustomerColumn6 = this.translateService.translate('TableCustomerColumn6', currentLanguage);\r\n    this.TableCustomerColumn7 = this.translateService.translate('TableCustomerColumn7', currentLanguage);\r\n    this.TableCustomerColumn8 = this.translateService.translate('TableCustomerColumn8', currentLanguage);\r\n    this.TableCustomerTittle = this.translateService.translate('TableCustomerTittle', currentLanguage);\r\n    this.TableCustomerButtonSelect = this.translateService.translate('TableCustomerButtonSelect', currentLanguage);\r\n  }\r\n  filaSeleccionada: any;\r\n\r\n  SelectRow(value: any) {\r\n    this.filaSeleccionada = value;\r\n    this.BtnCloseModal = true;\r\n  }\r\n  Guardar(){\r\n    this.DATA_CUSTOMERHIJO_EVENT.emit(this.filaSeleccionada);\r\n\r\n    this.DATA_CUSTOMERHIJO_EVENT2.emit(false);\r\n  }\r\n  CloseModalCustomer() {\r\n    this.DATA_CUSTOMERHIJO_EVENT2.emit(false);\r\n  }\r\n}\r\n","<div class=\"page d-flex justify-content-between\">\r\n    <div class=\"p-2 fs-6 title\">\r\n      {{TableCustomerTittle}}\r\n    </div>\r\n  \r\n    <button\r\n      class=\"btn btn-close\"\r\n      (click)=\"CloseModalCustomer()\"\r\n    >\r\n      \r\n    </button>\r\n  </div>\r\n  \r\n  <section class=\"example-container\" tabindex=\"0\">\r\n    <!--\r\n  \r\n  \r\n    <table\r\n      mat-table\r\n      [dataSource]=\"TableDataCustomerSource\"\r\n      class=\"table-modal table_order_customer d-none  \" type=\"submit\"\r\n    >\r\n      <ng-container matColumnDef=\"CustomerNO\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col-customerno\">\r\n          {{ translateService.translate(\"TableCustomerColumn1\") }}\r\n        </th>\r\n  \r\n        <td mat-cell *matCellDef=\"let element\" class=\"col-customerno\">\r\n          {{ element.customerNo == null ? \"-\" : element.customerNo }}\r\n        </td>\r\n      </ng-container>\r\n  \r\n      <ng-container matColumnDef=\"FirsName\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col-firstname\">\r\n          {{ translateService.translate(\"TableCustomerColumn2\") }}\r\n        </th>\r\n  \r\n        <td mat-cell *matCellDef=\"let element\" class=\"col-firstname\">\r\n          {{ element.firstName }} {{ \" \" }}\r\n          {{ element.middleName == null ? \"\" : element.middleName }}\r\n        </td>\r\n      </ng-container>\r\n  \r\n      <ng-container matColumnDef=\"LastName\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col-lastname\">\r\n          {{ translateService.translate(\"TableCustomerColumn3\") }}\r\n        </th>\r\n  \r\n        <td mat-cell *matCellDef=\"let element\" class=\"col-lastname\">\r\n          {{ element.lastName }} {{ \" \" }}\r\n          {{ element.maidenName == null ? \"\" : element.maidenName }}\r\n        </td>\r\n      </ng-container>\r\n  \r\n      <ng-container matColumnDef=\"Company\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col-company\">\r\n          {{ translateService.translate(\"TableCustomerColumn4\") }}\r\n        </th>\r\n  \r\n        <td mat-cell *matCellDef=\"let element\" class=\"col-company\">\r\n          {{ element.companyName == \"\" ? \"-\" : element.companyName }}\r\n        </td>\r\n      </ng-container>\r\n  \r\n      <ng-container matColumnDef=\"Email\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col-email\">\r\n          {{ translateService.translate(\"TableCustomerColumn5\") }}\r\n        </th>\r\n  \r\n        <td mat-cell *matCellDef=\"let element\" class=\"col-email\">\r\n          {{ element.email == \"\" ? \"-\" : element.email }}\r\n        </td>\r\n      </ng-container>\r\n  \r\n      <ng-container matColumnDef=\"Phone\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col-phone\">\r\n          {{ translateService.translate(\"TableCustomerColumn6\") }}\r\n        </th>\r\n  \r\n        <td mat-cell *matCellDef=\"let element\" class=\"col-phone\">\r\n          {{ element.phone1 == null ? \"-\" : element.phone1 }}\r\n        </td>\r\n      </ng-container>\r\n  \r\n      <ng-container matColumnDef=\"License\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col-license\">\r\n          {{ translateService.translate(\"TableCustomerColumn7\") }}\r\n        </th>\r\n  \r\n        <td mat-cell *matCellDef=\"let element\" class=\"col-license\">\r\n          {{ element.licenseNumber == null ? \"-\" : element.licenseNumber }}\r\n        </td>\r\n      </ng-container>\r\n  \r\n      <ng-container matColumnDef=\"Info\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col-info\">\r\n          {{ translateService.translate(\"TableCustomerColumn8\") }}\r\n        </th>\r\n  \r\n        <td mat-cell *matCellDef=\"let element\" class=\"col-info\">\r\n          {{ element.info1 == \"\" ? \"-\" : element.info1 }}\r\n        </td>\r\n      </ng-container>\r\n  \r\n      <tr\r\n        mat-header-row\r\n        *matHeaderRowDef=\"displayedColumnsCustomer; sticky: true\"\r\n      ></tr>\r\n  \r\n      <tr\r\n        mat-row\r\n        *matRowDef=\"let row; columns: displayedColumnsCustomer\"\r\n        [ngClass]=\"{ 'fila-seleccionada': row === filaSeleccionada }\"\r\n        (click)=\"SelectRow(row)\"\r\n      ></tr>\r\n    </table>\r\n  \r\n    -->\r\n  \r\n  \r\n    <table class=\"table table-modal table_order_customer\">\r\n      <thead>\r\n        <tr>\r\n          <th class=\"col-customerno\">\r\n            {{TableCustomerColumn1 }}\r\n          </th>\r\n  \r\n          <th class=\"col-firstname\">\r\n            {{ TableCustomerColumn2 }}\r\n          </th>\r\n  \r\n          <th class=\"col-lastname\">\r\n            {{ TableCustomerColumn3 }}\r\n          </th>\r\n  \r\n          <th class=\"col-company\">\r\n            {{ TableCustomerColumn4 }}\r\n          </th>\r\n  \r\n          <th class=\"col-email\">\r\n            {{ TableCustomerColumn5 }}\r\n          </th>\r\n  \r\n          <th class=\"col-phone\">\r\n            {{ TableCustomerColumn6 }}\r\n          </th>\r\n  \r\n          <th class=\"ccol-license\">\r\n            {{ TableCustomerColumn7 }}\r\n          </th>\r\n  \r\n          <th class=\"col-info\">\r\n            {{ TableCustomerColumn8 }}\r\n          </th>\r\n        </tr>\r\n      </thead>\r\n  \r\n      <tbody>\r\n  \r\n          <tr *ngFor=\"let customer of TableDataCustomer\" [ngClass]=\"{ 'fila-seleccionada': customer === filaSeleccionada }\"  (click)=\"SelectRow(customer)\" >\r\n            <td class=\"align-middle col-customerno text-nowrap\">\r\n              {{ customer.customerNo === null ? \"-\" : customer.customerNo }}\r\n            </td>\r\n  \r\n            <td class=\"align-middle col-firstname text-nowrap\">\r\n              {{ customer.firstName }} {{ \" \" }}\r\n              {{ customer.middleName === null ? \"\" : customer.middleName }}\r\n            </td>\r\n  \r\n            <td class=\"align-middle col-lastname text-nowrap\">\r\n              {{ customer.lastName }} {{ \" \" }}\r\n              {{ customer.maidenName === null ? \"\" : customer.maidenName }}\r\n            </td>\r\n  \r\n            <td class=\"align-middle col-company text-nowrap\">\r\n              {{ customer.companyName === \"\" ? \"-\" : customer.companyName }}\r\n            </td>\r\n  \r\n            <td class=\"align-middle col-email text-nowrap\">\r\n              {{ customer.email === \"\" ? \"-\" : customer.email }}\r\n            </td>\r\n  \r\n            <td class=\"align-middle col-phone text-nowrap\">\r\n              {{ customer.phone1 === null ? \"-\" : customer.phone1 }}\r\n            </td>\r\n  \r\n            <td class=\"align-middle col-license text-nowrap\">\r\n              {{ customer.licenseNumber === null ? \"-\" : customer.licenseNumber }}\r\n            </td>\r\n  \r\n            <td class=\"align-middle col-info text-nowrap\">\r\n              {{ customer.info1 === \"\" ? \"-\" : customer.info1 }}\r\n            </td>\r\n  \r\n           \r\n          </tr>\r\n  \r\n      </tbody>\r\n    </table>\r\n  </section>\r\n  \r\n  <div class=\"d-flex justify-content-end p-2\">\r\n    <button\r\n      [ngClass]=\"{ disabled: filaSeleccionada === null }\"\r\n      class=\"btn btn-primary fw-bold shadow-sm btn-sm px-4\"\r\n      type=\"button\"\r\n      (click)=\"Guardar()\"\r\n    >\r\n      {{ TableCustomerButtonSelect }}\r\n    </button>\r\n  </div>\r\n  ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UiCustomerComponent } from './ui-customer/ui-customer.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    UiCustomerComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    UiCustomerComponent\r\n  ]\r\n})\r\nexport class UiCustomerModule { }\r\n","export enum StatusCode {\r\n    IN_TRANSIT = 'T',\r\n    SAVED = 'P',\r\n    RECEIVED = 'V',\r\n    ACTIVE = 'A',\r\n    OPEN = 'O',\r\n    APPROVED_R = 'R',\r\n    CANCELED = 'C',\r\n    MISMATCH = 'M',\r\n}\r\n\r\nexport const STATUS_BADGE_MAP: Record<string, string> = {\r\n    // Estados en tránsito/guardado\r\n    [StatusCode.IN_TRANSIT]: 'status badge-in-transit',\r\n    [StatusCode.SAVED]: 'status badge-in-transit',\r\n\r\n    // Estados exitosos/activos\r\n    [StatusCode.RECEIVED]: 'status badge-received',\r\n    [StatusCode.ACTIVE]: 'status badge-received',\r\n    [StatusCode.OPEN]: 'status badge-received',\r\n    [StatusCode.APPROVED_R]: 'status badge-received',\r\n\r\n    // Estados cancelados/liberados\r\n    [StatusCode.CANCELED]: 'status badge-released',\r\n\r\n    [StatusCode.MISMATCH]: 'status badge-mismatch',\r\n};\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { DatePipe } from '@angular/common';\r\nimport { STATUS_BADGE_MAP } from './status.constants';\r\n\r\ninterface SubOptionItem {\r\n  label: string;\r\n  icon: string;\r\n  action: string;\r\n  type?: string;\r\n}\r\n\r\n@Component({\r\n  selector: 'lib-ui-table',\r\n  templateUrl: './ui-table.component.html',\r\n  styleUrls: ['./ui-table.component.scss'],\r\n  animations: [\r\n    trigger('detailExpand', [\r\n      state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n      state('expanded', style({ height: '*' })),\r\n      transition(\r\n        'expanded <=> collapsed',\r\n        animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')\r\n      ),\r\n    ]),\r\n  ],\r\n})\r\nexport class UiTableComponent {\r\n  @ViewChild(MatSort) sort!: MatSort;\r\n  @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n  @Input() actions: any;\r\n\r\n  // @Input para acciones\r\n  @Input() showFixedActionButton: boolean = false;  \r\n  @Input() fixedActionButtonLabel: string = 'Action';  \r\n  @Input() fixedActionButtonIcon: string = '';  \r\n  @Input() fixedActionButtonAction: string = 'fixedAction';  \r\n\r\n\r\npublic handleFixedAction(element: any, rowIndex: number): void {\r\n  this.TABLE_ACTION_EVENT.emit({ case: this.fixedActionButtonAction, value: element });\r\n}\r\n\r\n  public columnsSubTable: string[] = [\r\n    'label',\r\n    'address1',\r\n    'countryName',\r\n    'city',\r\n    'district',\r\n    'phone',\r\n    'statusCode',\r\n    'isMainAddress',\r\n  ];\r\n  public OpenComponentUpdateGrilla: boolean = false;\r\n\r\n  @Input() valuesSubTables: any = [{ nameSubTables: '', nameGridSubTables: '', nameColumnSubTables: '' }];\r\n  @Input() linkColumns: string[] = [];\r\n  @Input() labelTable: any = [];\r\n  @Input() valueID: string = \"\";\r\n  @Input() openprueba: boolean = true;\r\n  @Input() TableDataDataSource: any;\r\n  @Input() activePaginator: any;\r\n  @Input() dataGrid: any;\r\n  @Input() Paginator = {\r\n    totalRecords: 0,\r\n    pageSize: 10,\r\n    pageNumber: 0,\r\n    showFirstLastButtons: true,\r\n    pageSizeOptions: [10, 20, 35, 50, 100],\r\n    showPageSizeOptions: true,\r\n    hidePageSize: false,\r\n  };\r\n\r\n  @Output() TABLE_MAIN_GRID_EVENT = new EventEmitter<any>();\r\n  @Output() TABLE_MAIN_PAGINATOR_EVENT = new EventEmitter<any>();\r\n  @Output() TABLE_ACTION_EVENT = new EventEmitter<any>();\r\n  @Output() rowData = new EventEmitter<any | null>();\r\n\r\n  public circle: any = 'circle';\r\n  public activeRow: number | null = null;\r\n  public activeSubRow: number | null = null;\r\n  public ReRenderizar: boolean = true;\r\n  public tableId: string = \"MyTable\";\r\n  public miAnchoEnPixeles: number = 800;\r\n  public expandedElement: null | undefined;\r\n  public valorScrullOrder: string = \"\";\r\n\r\n  public handlePageEvent(e: PageEvent): void {\r\n    this.Paginator.pageSize = e.pageSize;\r\n    this.Paginator.pageNumber = e.pageIndex + 1;\r\n\r\n    this.TABLE_MAIN_PAGINATOR_EVENT.emit({\r\n      PageSize: e.pageSize,\r\n      PageNumber: e.pageIndex + 1,\r\n    });\r\n  }\r\n\r\n  private readonly statusBadgeMap: Record<string, string> = STATUS_BADGE_MAP;\r\n\r\n  constructor(\r\n    private readonly datePipe: DatePipe,\r\n    private readonly cdr: ChangeDetectorRef,\r\n  ) {}\r\n\r\n  public getFormattedPrice(value: any): number {\r\n    return Math.abs(value);\r\n  }\r\n\r\n  \r\n\r\n  public OpenCustomer(value: any): void {\r\n    this.TABLE_MAIN_GRID_EVENT.emit(value);\r\n  }\r\n\r\n  public getTextAlignment(element: any, iscost: any): string {\r\n    if (iscost) {\r\n      switch (element) {\r\n        case '0':\r\n          return 'right';\r\n        case '1':\r\n          return 'left';\r\n        case '2':\r\n          return 'center';\r\n        case '3':\r\n          return 'right';\r\n        case '4':\r\n          return 'left';\r\n        default:\r\n          return 'right';\r\n      }\r\n    } else {\r\n      switch (Number(element)) {\r\n        case 0:\r\n          return 'left';\r\n        case 1:\r\n          return 'left';\r\n        case 2:\r\n          return 'center';\r\n        case 3:\r\n          return 'right';\r\n        case 4:\r\n          return 'left';\r\n        default:\r\n          return 'left';\r\n      }\r\n    }\r\n  }\r\n\r\n  public refrescarTabla(): void {\r\n    this.tableId = 'myTable' + new Date().getTime();\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  public actualiza(): void {\r\n    this.cdr.detectChanges();\r\n  }\r\n\r\n  public formatDate(value: any, format: any): string {\r\n    switch (format) {\r\n      case 'MM/dd/yyyy':\r\n        value = this.datePipe.transform(value, 'MM/dd/yyyy');\r\n        break;\r\n      case 'dd/MM/yyyy':\r\n        value = this.datePipe.transform(value, 'dd/MM/yyyy');\r\n        break;\r\n      case 'yyyyMMdd':\r\n        value = this.datePipe.transform(value, 'yyyyMMdd');\r\n        break;\r\n      case 'yyyMMddHHmmssffff':\r\n        value = this.datePipe.transform(value, 'yyyyMMddHHmmssffff');\r\n        break;\r\n      case 'HH:mm':\r\n        value = this.datePipe.transform(value, 'HH:mm');\r\n        break;\r\n      case 'HH:mm:ss':\r\n        value = this.datePipe.transform(value, 'HH:mm:ss');\r\n        break;\r\n      case 'hh:mm tt':\r\n        value = this.datePipe.transform(value, 'hh:mm tt');\r\n        break;\r\n      case 'hh:m:ss tt':\r\n        value = this.datePipe.transform(value, 'hh:m:ss tt');\r\n        break;\r\n      case 'ddMMyy':\r\n        value = this.datePipe.transform(value, 'ddMMyy');\r\n        break;\r\n      case 'yyMMdd':\r\n        value = this.datePipe.transform(value, 'yyMMdd');\r\n        break;\r\n      case 'yyMMddHHmmss':\r\n        value = this.datePipe.transform(value, 'yyMMddHHmmss');\r\n        break;\r\n      default:\r\n        break;\r\n    }\r\n\r\n    return value;\r\n  }\r\n\r\n  public formatCost(value: any, format: any, isCost: any, symbol: any): string {\r\n    const partes = (format ?? '').toString().split('.');\r\n    const decimales = partes.length > 1 ? partes[1].length : 0;\r\n\r\n    const formattedValue = (value ?? '-').toLocaleString('en-US', {\r\n      style: 'decimal',\r\n      minimumFractionDigits: decimales,\r\n      maximumFractionDigits: decimales,\r\n    });\r\n\r\n    const prefix = isCost ? symbol ?? '' : '';\r\n    return prefix + formattedValue;\r\n  }\r\n\r\n  public GetFormatIconSign(value: any): boolean {\r\n    if (value === 'A') return true;\r\n    if (value === 'C') return false;\r\n    return true;\r\n  }\r\n\r\n  // public getAlgo(element: any): string {\r\n  public getBadgeClass(status: string): string {\r\n    if (!status) {\r\n      console.warn('StatusCode is undefined or null');\r\n      return \"\";\r\n    }\r\n\r\n    const upperStatusCode = status.toUpperCase();\r\n    const badgeClass = this.statusBadgeMap[upperStatusCode];\r\n\r\n    if (!badgeClass) {\r\n      console.warn(`No badge class found for status code: ${status}`);\r\n      return \"\";\r\n    }\r\n\r\n    return badgeClass;\r\n  }\r\n\r\n\r\n\r\n  public GetFormatIcon(value: any): string {\r\n    if (value === 'A') return 'Active';\r\n    if (value === 'C') return 'Inactive';\r\n    return 'Inactive';\r\n  }\r\n\r\n  public GetFormatIconTrueFalse(value: any): string {\r\n    if (value === true) return 'check_circle';\r\n    if (value === false) return 'cancel';\r\n    return 'check_circle';\r\n  }\r\n\r\n  public toggleActions(rowIndex: number, element: any): void {\r\n    if (this.activeRow === rowIndex) {\r\n      this.activeRow = null;\r\n      this.activeSubRow = null;\r\n      this.rowData.emit(null);\r\n    } else {\r\n      this.activeRow = rowIndex;\r\n      this.activeSubRow = null;\r\n      this.rowData.emit(element);\r\n    }\r\n  }\r\n\r\n  public toggleSubActions(subIndex: number, rowIndex: number): void {\r\n    if (this.activeSubRow === subIndex && this.activeRow === rowIndex) {\r\n      this.activeSubRow = null;\r\n    } else {\r\n      this.activeSubRow = subIndex;\r\n    }\r\n  }\r\n\r\n  public handleAction(action: any, element: any, rowIndex: number): void {\r\n    this.activeRow = null;\r\n    this.activeSubRow = null;\r\n    this.TABLE_ACTION_EVENT.emit({ case: action, value: element });\r\n  }\r\n\r\n\r\n  public getSubOptions(element: any): SubOptionItem[] {\r\n    const subactions = element?.actions?.subactions ?? this.actions.subactions;\r\n    return subactions.filter((sub: any) => sub.is_visible !== false);\r\n  }\r\n\r\n  public onEditPurchaseOrder(element: any): void {\r\n    this.TABLE_ACTION_EVENT.emit({ case: 'editAction', value: element });\r\n  }\r\n\r\n  public getVisibleActions(element: any): any[] {\r\n    const actions = element?.actions?.actions ?? this.actions.actions;\r\n    return actions.filter((action: any) => action.is_visible !== false);\r\n  }\r\n\r\n  public getClass(type: string | undefined): string {\r\n    if (type && type.length !== 0) return type;\r\n    return \"base\";\r\n  }\r\n\r\n  public getClass_(type: string | undefined) {\r\n    if (type && type.length !== 0) return \"_\" + type;\r\n    return \"_base\";\r\n  }\r\n}\r\n","<div class=\"h-screen-minus-300 overflow-y-auto rms-table !flex !flex-col w-full table_sales_customer\">\r\n  <table *ngIf=\"ReRenderizar\" [attr.id]=\"tableId\" class=\"table table-bordered\" mat-table\r\n    [dataSource]=\"TableDataDataSource\" multiTemplateDataRows>\r\n    <ng-container *ngFor=\"let column of dataGrid.infoGrid\" [matColumnDef]=\"column.objectName\">\r\n      <th mat-header-cell *matHeaderCellDef class=\"th\">\r\n        <div class=\"th-option justify-content-between\" [style.width.px]=\"column.gridColumnWidth\">\r\n          <div class=\"th-label\">{{column.captionText}}</div>\r\n          <div class=\"btn-header\" (click)=\"OpenCustomer(0)\"><span class=\"material-symbols-outlined\">more_vert</span>\r\n          </div>\r\n        </div>\r\n      </th>\r\n\r\n      <!-- este de acá: -->\r\n      <ng-container *ngIf=\"TableDataDataSource?.data?.length\">\r\n        <td class=\"\" [style.text-align]=\"getTextAlignment(column.gridColumnAlignment,column.gridColumnIsCost)\" mat-cell\r\n          *matCellDef=\"let element\">\r\n\r\n          <!--Formato fecha-->\r\n          <div *ngIf=\"column.gridColumnAvailableToDateFormat\" class=\"cell_value \">\r\n            {{formatDate(element[column.objectName], column.gridColumnCustomFormat)}} </div>\r\n\r\n          <div *ngIf=\"column.gridColumnIsCost\" class=\"cell_value \">\r\n            {{formatCost(element[column.objectName], column.gridColumnCustomFormat\r\n            ,column.gridColumnIsCost,element.symbol)}} </div>\r\n\r\n          <!-- ...Enlace en el PO para navegar. -->\r\n          <div\r\n            *ngIf=\"!column.gridColumnIsCost && !column.gridColumnAvailableToIcon && !column.gridColumnAvailableToDateFormat && column.objectName !== 'statusname'\"\r\n            class=\"cell_value\">\r\n            <ng-container *ngIf=\"linkColumns && linkColumns.includes(column.objectName); else normalCell\">\r\n              <a href=\"javascript:;\" (click)=\"onEditPurchaseOrder(element)\">\r\n                {{element[column.objectName]}}\r\n              </a>\r\n            </ng-container>\r\n            <ng-template #normalCell>\r\n              <span [innerHTML]=\"element[column.objectName]\"></span>\r\n            </ng-template>\r\n          </div>\r\n\r\n          <!--Sin Enlace en el PO para navegar ------>\r\n          <!--Normal(ni es icono ni formato)\r\n        <div *ngIf=\"!column.gridColumnIsCost && !column.gridColumnAvailableToIcon && !column.gridColumnAvailableToDateFormat\"\r\n          class=\"cell_value \" [innerHTML]=\"element[column.objectName]\"></div>-->\r\n\r\n          <!--Formato(icono)-->\r\n          <div *ngIf=\"column.gridColumnAvailableToIcon && column.objectName !== 'statusname'\"\r\n            class=\"d-flex gap-2 align-items-center\">\r\n            <div *ngIf=\"element[column.objectName]!==true && element[column.objectName]!==false\">\r\n              <span class=\"material-icons fs-6 \" [ngClass]=\"{\r\n              'text-active': !!GetFormatIconSign(element[column.objectName]),\r\n              'text-inactive': !GetFormatIconSign(element[column.objectName])\r\n            }\"> circle\r\n              </span>\r\n              <span>\r\n                {{ GetFormatIcon(element[column.objectName]) }}\r\n              </span>\r\n            </div>\r\n            <div *ngIf=\"!(element[column.objectName]!==true && element[column.objectName]!==false)\">\r\n              <span class=\"material-icons fs-6 \" [ngClass]=\"{\r\n                'text-active': element[column.objectName],\r\n                'text-inactive': !element[column.objectName]\r\n              }\"> {{ GetFormatIconTrueFalse(element[column.objectName]) }}\r\n              </span>\r\n            </div>\r\n          </div>\r\n\r\n\r\n          <!-- Formato (estado) -->\r\n          <div *ngIf=\"column.objectName === 'statusname'\">\r\n            <span [ngClass]=\"getBadgeClass(element.statuscode)\" class=\"cell_value\">\r\n              {{ element[column.objectName] }}\r\n            </span>\r\n          </div>\r\n        </td>\r\n      </ng-container>\r\n\r\n      <ng-container>\r\n        <tr class=\"\" *matNoDataRow>\r\n          <td class=\"\" [attr.colspan]=\"this.dataGrid.columnsGrid.length\" style=\"padding: 0;\">\r\n            <div\r\n              class=\"container absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-center px-4 overflow-y-hidden fixed-on-tall\">\r\n              <p>{{labelTable.label6}} <mark>{{labelTable.label7}}</mark>{{labelTable.label8}}</p>\r\n            </div>\r\n          </td>\r\n        </tr>\r\n      </ng-container>\r\n\r\n    </ng-container>\r\n\r\n\r\n    <ng-container [matColumnDef]=\"'action'\" stickyEnd>\r\n      <th mat-header-cell *matHeaderCellDef class=\"th cell_value\" [class.th-fixed-action]=\"showFixedActionButton\"\r\n        [style.width.px]=\"showFixedActionButton ? 110 : 40\" [style.min-width.px]=\"showFixedActionButton ? 110 : 40\">\r\n        <div class=\"th-option\" [class.th-option-full]=\"showFixedActionButton\">\r\n          <div class=\"th-label\">&nbsp;</div>\r\n        </div>\r\n      </th>\r\n      <td (click)=\"$event.stopPropagation()\" class=\"mat-cell cell-action\"\r\n        [class.cell-action-fixed]=\"showFixedActionButton\" *matCellDef=\"let element\">\r\n        <div class=\"\">\r\n          <!-- Modo: Botón fijo (nuevo) -->\r\n          <ng-container *ngIf=\"showFixedActionButton; else defaultActionMenu\">\r\n            <button class=\"fixed-action-btn\"\r\n              (click)=\"handleFixedAction(element, element.index+1); $event.stopPropagation()\">\r\n              <span *ngIf=\"fixedActionButtonIcon\" class=\"material-symbols-outlined\">{{ fixedActionButtonIcon }}</span>\r\n              {{ fixedActionButtonLabel }}\r\n            </button>\r\n          </ng-container>\r\n\r\n          <!-- Modo: Menú desplegable (comportamiento actual por defecto) -->\r\n          <ng-template #defaultActionMenu>\r\n            <!-- Botón acción -->\r\n            <span (click)=\"toggleActions(element.index+1, element); $event.stopPropagation()\"\r\n              class=\"btn-action dropdown-toggle\" [attr.aria-expanded]=\"activeRow === element.index+1\" role=\"button\">\r\n              <span class=\"material-symbols-outlined\">more_vert</span>\r\n            </span>\r\n            <!-- End Botón acción -->\r\n\r\n            <!-- Menú desplegable -->\r\n            <ul class=\"dropdown-actions dropdown-menu\" [class.show]=\"activeRow === element.index+1\"\r\n              (click)=\"$event.stopPropagation()\">\r\n              <li *ngFor=\"let action of getVisibleActions(element); let i = index\" class=\"action-item li_container\"\r\n                [ngClass]=\"getClass_(action.type)\">\r\n                <ng-container *ngIf=\"!action.isSubMenu\">\r\n                  <div class=\"item-text\" (click)=\"handleAction(action.action, element, element.index+1)\">\r\n                    <span class=\"material-symbols-outlined\">{{ action.icon }}</span>\r\n                    {{ action.label }}\r\n                  </div>\r\n                </ng-container>\r\n                <ng-container *ngIf=\"action.isSubMenu\">\r\n                  <div role=\"button\" (click)=\"toggleSubActions(i, element.index+1); $event.stopPropagation()\"\r\n                    class=\"item-text btn-dropdown\">\r\n                    <span class=\"material-symbols-outlined\">{{ action.icon }}</span>\r\n                    {{ action.label }}\r\n                  </div>\r\n                  <ul [class.show]=\"activeSubRow === i && activeRow === element.index+1\" class=\"dropdown-subactions\">\r\n                    <li *ngFor=\"let subOption of getSubOptions(element)\" [ngClass]=\"getClass(subOption.type)\">\r\n                      <div class=\"item-text\" (click)=\"handleAction(subOption.action, element, element.index+1)\"\r\n                        [ngClass]=\"getClass(subOption.type)\">\r\n                        <span class=\"material-symbols-outlined\">{{ subOption.icon }}</span>\r\n                        {{ subOption.label }}\r\n                      </div>\r\n                    </li>\r\n                  </ul>\r\n                </ng-container>\r\n              </li>\r\n            </ul>\r\n          </ng-template>\r\n        </div>\r\n      </td>\r\n    </ng-container>\r\n\r\n\r\n\r\n    <ng-container *ngIf=\"ReRenderizar\" matColumnDef=\"expandedDetail\">\r\n      <td class=\"\" mat-cell *matCellDef=\"let element\" [attr.colspan]=\"this.dataGrid.columnsGrid.length\">\r\n        <div class=\"voucher-detail\" [@detailExpand]=\"element === expandedElement ? 'expanded' : 'collapsed'\">\r\n          <mat-tab-group>\r\n            <mat-tab *ngFor=\"let value of valuesSubTables; let i = index\" [label]=\"value.nameGridSubTables\">\r\n\r\n              <table *ngIf=\"element[value.nameSubTables]!==''\" class=\"table table-bordered table-items\">\r\n                <!-- Encabezados -->\r\n                <thead>\r\n                  <tr>\r\n                    <ng-container *ngFor=\"let column of dataGrid[value.nameColumnSubTables]\">\r\n                      <th *ngIf=\"column.gridColumnShow\" class=\"mat-header-cell\">\r\n                        <div class=\"th-option d-flex justify-content-center\" [style.width.px]=\"column.gridColumnWidth\">\r\n                          <div class=\"d-flex align-items-center justify-content-center\">\r\n                            <div class=\"th-label\">{{column.captionText}}</div>\r\n                            <div class=\"btn-header\" (click)=\"OpenCustomer(i+1)\"><span\r\n                                class=\"material-icons\">more_vert</span></div>\r\n                          </div>\r\n                        </div>\r\n                      </th>\r\n                    </ng-container>\r\n                  </tr>\r\n                </thead>\r\n\r\n                <!-- Datos -->\r\n                <tbody>\r\n                  <tr *ngFor=\"let item of element[value.nameSubTables]\">\r\n                    <ng-container *ngFor=\"let column of dataGrid[value.nameColumnSubTables]\">\r\n                      <td *ngIf=\"column.gridColumnShow\" class=\"mat-header-cell\">\r\n\r\n                        <div *ngIf=\"column.gridColumnAvailableToFormat \" class=\"cell_value\">\r\n                          {{formatCost(item[column.objectName], column.gridColumnCustomFormat\r\n                          ,column.gridColumnIsCost,element.symbol)}} </div>\r\n                        <!--Normal(ni es icono ni formato)-->\r\n                        <div\r\n                          *ngIf=\"!column.gridColumnAvailableToFormat && !column.gridColumnAvailableToIcon && !column.gridColumnDocument\"\r\n                          class=\"cell_value \">\r\n                          {{item[column.objectName]}} </div>\r\n\r\n\r\n                        <!--Formato(icono)-->\r\n                        <div *ngIf=\"column.gridColumnAvailableToIcon \" class=\"d-flex gap-2 align-items-center\">\r\n                          <div *ngIf=\"item[column.objectName]!==true && item[column.objectName]!==false\">\r\n                            <span class=\"material-icons fs-6 \" [ngClass]=\"{\r\n                            'text-active': !!GetFormatIconSign(item[column.objectName]),\r\n                            'text-inactive': !GetFormatIconSign(item[column.objectName])\r\n                          }\"> circle\r\n                            </span>\r\n                            <span>\r\n                              {{ GetFormatIcon(item[column.objectName]) }}\r\n                            </span>\r\n                          </div>\r\n                          <div *ngIf=\"!(item[column.objectName]!==true && item[column.objectName]!==false)\">\r\n                            <span class=\"material-icons fs-6 \" [ngClass]=\"{\r\n                          'text-active': item[column.objectName],\r\n                          'text-inactive': !item[column.objectName]\r\n                        }\"> {{ GetFormatIconTrueFalse(item[column.objectName]) }}\r\n                            </span>\r\n\r\n                          </div>\r\n\r\n\r\n                        </div>\r\n                        <div *ngIf=\"column.gridColumnDocument\" class=\"cell_value\">\r\n                          <a *ngIf=\"item[column.objectName]\" class=\"imgLink\" [href]=\"item[column.objectName]\"\r\n                            target=\"_blank\">\r\n                            <!-- <img [src]=\"item[column.objectName]\" alt=\"document\" /> -->\r\n                            <span class=\"material-symbols-outlined\">image</span>\r\n                          </a>\r\n                        </div>\r\n                      </td>\r\n                    </ng-container>\r\n                  </tr>\r\n                </tbody>\r\n              </table>\r\n\r\n\r\n\r\n              <table *ngIf=\"element.voucherLine===''\" class=\"table table-items\">\r\n                <div class=\"d-flex pt-5 pb-5 px-2 justify-content-center table-message\">\r\n                  <p>\r\n                    {{labelTable.label1}} <mark>SKUs</mark> {{labelTable.label2}}\r\n                  </p>\r\n                </div>\r\n\r\n              </table>\r\n            </mat-tab>\r\n          </mat-tab-group>\r\n\r\n        </div>\r\n      </td>\r\n    </ng-container>\r\n\r\n    <tr mat-header-row *matHeaderRowDef=\"this.dataGrid.columnsGrid; sticky: true\"></tr>\r\n\r\n    <tr mat-row *matRowDef=\"let element; columns: this.dataGrid.columnsGrid\" class=\"voucher-element-row\"\r\n      [class.voucher-expanded-row]=\"expandedElement === element\"\r\n      (click)=\"expandedElement = expandedElement === element ? null : element\"></tr>\r\n\r\n    <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"voucher-detail-row\"></tr>\r\n  </table>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"activePaginator===0\" class=\"d-flex pt-5 pb-5 justify-content-center table-message\">\r\n    <p>{{labelTable.label3}} <mark>{{labelTable.label4}}</mark> {{labelTable.label5}} </p>\r\n  </div> -->\r\n\r\n<mat-paginator [length]=\"Paginator.totalRecords\" [pageSize]=\"Paginator.pageSize\"\r\n  [showFirstLastButtons]=\"Paginator.showFirstLastButtons\"\r\n  [pageSizeOptions]=\"Paginator.showPageSizeOptions ? Paginator.pageSizeOptions : []\"\r\n  [pageIndex]=\"Paginator.pageNumber-1\" (page)=\"handlePageEvent($event)\" />","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { UiTranslateService } from '../../service/ui-translate.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Injectable()\r\nexport class UIPaginatorTranslateComponent extends MatPaginatorIntl implements OnDestroy {\r\n  private readonly subscription: Subscription;\r\n\r\n  constructor(\r\n    private readonly translateService: UiTranslateService,\r\n  ) {\r\n    super();\r\n    this.translateLabels();\r\n\r\n    this.subscription = this.translateService.language$.subscribe(() => {\r\n      this.translateLabels();\r\n      this.changes.next();\r\n    });\r\n  }\r\n\r\n  override getRangeLabel = (page: number, pageSize: number, length: number): string => {\r\n    const lang = this.translateService.currentLanguage;\r\n\r\n    if (length === 0 || pageSize === 0) {\r\n      return `0 ${this.translateService.translate('paginator_of', lang)} ${length}`;\r\n    }\r\n\r\n    const startIndex = page * pageSize;\r\n    const endIndex = Math.min(startIndex + pageSize, length);\r\n    return `${startIndex + 1} - ${endIndex} ${this.translateService.translate('paginator_of', lang)} ${length}`;\r\n  };\r\n\r\n  private translateLabels(): void {\r\n    const lang = this.translateService.currentLanguage;\r\n\r\n    this.itemsPerPageLabel = this.translateService.translate('itemsPerPage', lang);\r\n    this.nextPageLabel = this.translateService.translate('nextPage', lang);\r\n    this.previousPageLabel = this.translateService.translate('previousPage', lang);\r\n    this.firstPageLabel = this.translateService.translate('firstPage', lang);\r\n    this.lastPageLabel = this.translateService.translate('lastPage', lang);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscription.unsubscribe();\r\n  }\r\n}","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { UiTableComponent } from './ui-table/ui-table.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { UIPaginatorTranslateComponent } from './ui-table/ui-table-paginator.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    UiTableComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    MatTableModule,\r\n    DragDropModule,\r\n    MatCheckboxModule,\r\n    MatTabsModule,\r\n    MatPaginatorModule,\r\n    MatExpansionModule,\r\n    MatInputModule,\r\n    MatButtonModule,\r\n    MatSortModule,\r\n    FormsModule\r\n  ],\r\n  exports: [\r\n    UiTableComponent,\r\n    FormsModule,\r\n  ],\r\n  providers: [\r\n    DatePipe,\r\n    {\r\n      provide: MatPaginatorIntl,\r\n      useClass: UIPaginatorTranslateComponent,\r\n    }\r\n  ]\r\n})\r\nexport class UiTableModule {}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { MatTable, MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n  selector: 'lib-ui-updategrilla',\r\n  templateUrl: './ui-updategrilla.component.html',  \r\n  styleUrls: ['./ui-updategrilla.component.scss'],\r\n  animations: [\r\n    trigger('detailExpand', [\r\n      state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n      state('expanded', style({ height: '*' })),\r\n      transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n    ]),\r\n  ],\r\n})\r\n\r\nexport class UiUpdategrillaComponent {\r\n  // DataGrid_Popup:any=[{ObjectName:'VendorName',CaptionText:'VendorName',GridColumnOrder:1,GridColumnWidth:40,show:1 },\r\n// {ObjectName:'LastName',CaptionText:'LastName',GridColumnOrder:2,GridColumnWidth:40,show:0 },\r\n// {ObjectName:'FirstName',CaptionText:'FirstName',GridColumnOrder:3,GridColumnWidth:40,show:1 },\r\n// {ObjectName:'CompanyName',CaptionText:'CompanyName',GridColumnOrder:4,GridColumnWidth:40,show:0 },\r\n// {ObjectName:'Email',CaptionText:'Email',GridColumnOrder:5,GridColumnWidth:40,show:0 },\r\n// {ObjectName:'Phone',CaptionText:'Phone',GridColumnOrder:6,GridColumnWidth:40,show:1 },\r\n// ]\r\ndisplayedColumns = ['order', 'status', 'name', 'action'];\r\nexpandedElement=null ;\r\ncolumnsToDisplayWithExpand = [...this.displayedColumns];\r\nTableGridSource:any\r\nTableGridSource_COPY:any\r\nfilteredData_ForClose:any\r\n@Input() DataGrid_Popup: any=[]\r\n@Input() labelsUpdateGrilla:any=''\r\n@Output() DATA_UPDATEGRILLA_EVENT = new EventEmitter<any>();\r\nbtnSaveEnabled=false\r\n\r\nngOnInit(): void {\r\n   \r\n  //   this.TableGridSourceMain = new MatTableDataSource(JSON.parse(JSON.stringify(this.dataGrid.infoGrid)));\r\n    this.TableGridSource= new MatTableDataSource(JSON.parse(JSON.stringify(this.DataGrid_Popup.filteredData)));\r\n    this.TableGridSource_COPY= JSON.parse(JSON.stringify(this.TableGridSource.filteredData)) \r\n    this.filteredData_ForClose= JSON.parse(JSON.stringify(this.TableGridSource.filteredData)) \r\n\r\n\r\n}\r\ndragDisabled = true;\r\n  @ViewChild('table', { static: true })\r\n  table!: MatTable<any>;\r\n\r\n// drop(event: CdkDragDrop<any>) {\r\n//   console.log(\"  this.moveItemInArray\", event)\r\n//   // Return the drag container to disabled.\r\n//   this.dragDisabled = true;\r\n\r\n//   const previousIndex = this.TableGridSource.filteredData.findIndex((d: any) => d === event.item.data);\r\n\r\n//   moveItemInArray(this.TableGridSource.filteredData, previousIndex, event.currentIndex);\r\n//   this.TableGridSource.filteredData.forEach((Value: { gridColumnOrder: any; }, idx: number) => {\r\n//      Value.gridColumnOrder = idx + 1; });\r\n//   this.table.renderRows();\r\n\r\n\r\n//   this.TableGridSource.filteredData=  this.TableGridSource.filteredData.sort((a: { gridColumnOrder: number; }, b: { gridColumnOrder: number; }) => a.gridColumnOrder - b.gridColumnOrder);\r\n\r\n// }\r\nCloseModal(value:any){\r\n  if(value){\r\n    if(this.expandirEnabled){\r\n      // this.expandirEnabled=false\r\n      // this.TableGridSource.filteredData=JSON.parse(JSON.stringify(this.TableGridSource_COPY))\r\n      // this.expandedElement=null\r\n\r\n      this.expandirAnime=true\r\n      setTimeout(() => {\r\n       this.expandirAnime=false\r\n      }, 1200); // 2000 milisegundos = 2 segundos\r\n    }else{\r\n      \r\n      const data_moved={\r\n        data:this.TableGridSource.filteredData\r\n        \r\n      }\r\n      this.DATA_UPDATEGRILLA_EVENT.emit({data:data_moved,save:value});\r\n      \r\n\r\n}}\r\nelse{\r\n  const data_moved={\r\n    data:this.filteredData_ForClose\r\n  }\r\n\r\n  this.DATA_UPDATEGRILLA_EVENT.emit({data:data_moved,save:value}); \r\n\r\n  }\r\n}  \r\n \r\n\r\napply(element:any){\r\n  this.expandedElement=null\r\n  this.btnSaveEnabled=true\r\n  this.expandirAnime=false\r\n  const previousIndex = this.TableGridSource.filteredData.findIndex((d: any) => d === element);\r\n\r\n  moveItemInArray(this.TableGridSource.filteredData, previousIndex, element.gridColumnOrder-1);\r\n  this.TableGridSource.filteredData.forEach((Value: { gridColumnOrder: any; }, idx: number) => {\r\n     Value.gridColumnOrder = idx + 1; });\r\n  \r\n  \r\n   this.TableGridSource.filteredData=  this.TableGridSource.filteredData.sort((a: { gridColumnOrder: number; }, b: { gridColumnOrder: number; }) => a.gridColumnOrder - b.gridColumnOrder);\r\n   this.TableGridSource_COPY= JSON.parse(JSON.stringify(this.TableGridSource.filteredData)) \r\n   this.table.renderRows();\r\n\r\n  this.expandirEnabled=false\r\n  this.expandedDisabled_Status=false\r\n   // Emite el valor a un evento\r\n  // Aquí puedes manejar el valor como desees\r\n}\r\nexpandirEnabled=false\r\nexpandirAnime=false\r\n\r\nexpandir(element:any){\r\n  this.expandedElement=element\r\n    this.expandedDisabled_Status=true\r\n    this.expandirAnime=true\r\n    setTimeout(() => {\r\n     this.expandirAnime=false\r\n    }, 1200); \r\n  \r\n\r\n\r\n   \r\n    this.TableGridSource_COPY= JSON.parse(JSON.stringify(this.TableGridSource.filteredData)) \r\n\r\n\r\n}\r\nonCheckboxChange(type: 'date' | 'cost', isChecked: boolean,element:any) {\r\n  console.log(\"isChecked\",isChecked)\r\n  if (type === 'date') {\r\n    element.gridColumnAvailableToDateFormat = isChecked;\r\n    // Si se selecciona 'date', desmarcar 'cost'\r\n    if (isChecked) {\r\n      element.gridColumnIsCost = false;\r\n    }\r\n  } else if (type === 'cost') {\r\n    element.gridColumnIsCost = isChecked;\r\n    // Si se selecciona 'cost', desmarcar 'date'\r\n    if (isChecked) {\r\n      element.gridColumnAvailableToDateFormat = false;\r\n    }\r\n  }\r\n  this.changeSave();\r\n}\r\n\r\n\r\n\r\ndateFormats = [\r\n  'MM/dd/yyyy',\r\n  'dd/MM/yyyy',\r\n  'yyyyMMdd',\r\n  'yyyMMddHHmmssffff',\r\n  'HH:mm',\r\n  'HH:mm:ss',\r\n  'hh:mm tt',\r\n  'hh:m:ss tt',\r\n  'ddMMyy',\r\n  'yyMMdd',\r\n  'yyMMddHHmmss',\r\n];\r\n\r\nnumberFormats = [\r\n  \"###'###'###.0\",\r\n  \"###'###'###.00\",\r\n  \"###'###'###.000\",\r\n  \"###'###'###.0000\",\r\n  \"###'###'###.00000\",\r\n  \"###,###,###.0\",\r\n  \"###,###,###.00\",\r\n  \"###,###,###.000\",\r\n  \"###,###,###.0000\",\r\n  \"###,###,###.00000\",\r\n];\r\n\r\noptions(element: any): string[] {\r\n  if (element.gridColumnIsCost) {\r\n    return this.numberFormats;\r\n  } else if (element.gridColumnAvailableToDateFormat) {\r\n    return this.dateFormats;\r\n  }\r\n  return []; // Devuelve un array vacío si ninguna condición es verdadera\r\n}\r\n\r\nchangeSave(){\r\n  this.expandirEnabled=true\r\n  this.btnSaveEnabled=true\r\n}\r\n\r\n\r\n\r\n\r\nexpandedDisabled_Status=false\r\nexpandirAni(){\r\n  this.expandirAnime=true\r\n    setTimeout(() => {\r\n     this.expandirAnime=false\r\n    }, 1200); \r\n  \r\n}\r\nOpenExpanded(element:any){\r\n  this.expandedElement = this.expandedElement === element ? null : element\r\n}\r\nExpandedCollapse(element:any){\r\n  if(this.expandedElement===element){\r\n    return 'expanded'\r\n  \r\n  }else{\r\n    return 'collapsed'\r\n  }\r\n}\r\n}\r\n \r\n \r\n\r\n","<div class=\"modal-header\">\r\n  <div class=\"top\">\r\n    <div class=\"title\">{{labelsUpdateGrilla.title}} </div>\r\n    <div class=\"close\" type=\"button\" (click)=\"CloseModal(false)\"> <span class=\"material-icons\" >close</span> </div>\r\n  </div>\r\n  <div class=\"subtitle\">{{labelsUpdateGrilla.subTitle}}</div>\r\n</div>\r\n<div class=\"modal-body of-y-no-x\">\r\n  <table     #table   \r\n  class=\"mat-elevation-z8 table table-bordered table-grid\"  \r\n   mat-table [dataSource]=\"TableGridSource\" multiTemplateDataRows>\r\n \r\n  \r\n \r\n      <ng-container matColumnDef=\"order\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col_Order taxes_type\"  >\r\n            <div class=\"th-option\">\r\n              <div class=\"th-label\">{{labelsUpdateGrilla.columns.column1}}</div>\r\n            </div>\r\n          </th>\r\n     \r\n          <td class=\"align-middle\" mat-cell *matCellDef=\"let element\"  >\r\n            <div class=\"col-order text-center\">\r\n              {{ element.gridColumnOrder === null ? \"-\" : element.gridColumnOrder }}\r\n            </div>\r\n          </td>\r\n      </ng-container>\r\n \r\n         \r\n      <ng-container matColumnDef=\"status\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col_Type taxes_type\">      \r\n            <div class=\"th-option\">\r\n              <div class=\"th-label\">{{labelsUpdateGrilla.columns.column2}}</div>\r\n            </div>\r\n          </th>\r\n\r\n          <td class=\"d-flex justify-content-center\" mat-cell *matCellDef=\"let element;\">\r\n            <div class=\"taxes_type txt_Type\" >\r\n              <mat-checkbox [checked]=\"element.gridColumnShow === true\" [disabled]=\"expandedDisabled_Status\"\r\n              class=\"form-control-sm flex-fill px-0\"\r\n              (change)=\" element.gridColumnShow = $event.checked ? true : false; btnSaveEnabled=true\">\r\n              </mat-checkbox> \r\n            </div>\r\n          </td>\r\n      </ng-container>\r\n \r\n      <ng-container matColumnDef=\"name\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col_LastName taxes_type\">\r\n            <div class=\"th-option\">\r\n              <div class=\"th-label\">{{labelsUpdateGrilla.columns.column3}}</div>\r\n            </div>\r\n          </th>\r\n     \r\n          <td class=\"align-middle\" mat-cell *matCellDef=\"let element\" >\r\n            <div class=\"taxes_type  pe-1 txt_LastName\">\r\n              {{ element.objectName === null ? \"-\" : element.objectName.toUpperCase(0) }}\r\n            </div>\r\n          </td>\r\n      </ng-container>\r\n \r\n      <ng-container matColumnDef=\"action\">\r\n        <th mat-header-cell *matHeaderCellDef class=\"col_FirstName taxes_type\" width=\"66\">\r\n            <div class=\"th-option\">\r\n              <div class=\"th-label\">{{labelsUpdateGrilla.columns.column4}}</div>\r\n            </div>\r\n          </th>\r\n\r\n          <td class=\"align-middle\"  mat-cell *matCellDef=\"let element\" >\r\n            <div class=\" mx-auto \" [ngClass]=\"{'pointer-none': expandirEnabled}\" (click)=\"expandir(element)\">\r\n              <span *ngIf=\"expandedElement!==element\" class=\"material-icons \"    >add</span>\r\n            \r\n            </div>\r\n            <!-- <div class=\" mx-auto \" [ngClass]=\"{'disabled': !expandirEnabled}\" (click)=\"expandir(element)\" (click)=\" expandedElement = expandedElement === element ? null : element\">\r\n              <span *ngIf=\"expandedElement === element\" class=\"material-icons \" >minimize</span>\r\n            </div> -->\r\n          </td>\r\n      </ng-container>\r\n \r\n    <ng-container  matColumnDef=\"expandedDetail\"   >\r\n      <td class=\"py-0  \"  [ngClass]=\"{'animate__animated  animate__pulse': expandirAnime }\" mat-cell *matCellDef=\"let element\" [attr.colspan]=\"columnsToDisplayWithExpand.length\">\r\n        <div class=\"col-element-detail\" *ngIf=\"expandedElement===element\" >\r\n        <div class=\"d-flex gap-2\">\r\n          <div class=\"pb-1 input-order\">\r\n            <div class=\"d-flex\">\r\n                <label class=\"col-form-label-sm\">{{labelsUpdateGrilla.subColumns.subColumn1}}</label>\r\n            </div>\r\n            <div class=\"d-flex flex-row\">\r\n              <input autocomplete=\"off\" (input)=\"changeSave()\" class=\"form-control form-control-sm text-center input_number w-100\" type=\"number\" min=\"0\" step=\"1\" style=\"-webkit-appearance: textfield;\"name=\"Order\" \r\n              [(ngModel)]=\"element.gridColumnOrder\" />\r\n            </div>\r\n          </div>\r\n          <div class=\"flex-fill pb-1 input-display\">\r\n            <div class=\"d-flex\">\r\n                <label class=\"col-form-label-sm flex-fill\">{{labelsUpdateGrilla.subColumns.subColumn2}}</label>\r\n            </div>\r\n            <div class=\"d-flex flex-row\">\r\n              <input autocomplete=\"off\" (input)=\"changeSave()\"  class=\"form-control form-control-sm flex-fill\" type=\"text\" name=\"CaptionText\"\r\n              [(ngModel)]=\"element.captionText\"  />\r\n            </div>\r\n          </div>\r\n          <div class=\"pb-1 input-width\">\r\n            <div class=\"d-flex\">\r\n                <label class=\"col-form-label-sm flex-fill\">{{labelsUpdateGrilla.subColumns.subColumn3}}</label>\r\n            </div>\r\n            <div class=\"d-flex flex-row\">\r\n              <input autocomplete=\"off\" (input)=\"changeSave()\"  class=\"form-control form-control-sm flex-fill input_number\" type=\"number\" min=\"0\" step=\"1\" style=\"-webkit-appearance: textfield;\" name=\"Width\"\r\n              [(ngModel)]=\"element.gridColumnWidth\"  />\r\n            </div>\r\n          </div>\r\n          \r\n          <div class=\"pb-1 input-format\">\r\n            <label  class=\"col-form-label-sm flex-fill\">{{labelsUpdateGrilla.subColumns.subColumn4}}</label>\r\n            <div class=\"d-flex flex-row\" [ngClass]=\"{'disabled': !element.gridColumnAvailableToDateFormat && !element.gridColumnIsCost}\" >\r\n              <div class=\"w-100\">\r\n                <mat-form-field class=\"flex-fill w-100\" appearance=\"outline\">\r\n                  <mat-select [(ngModel)]=\"element.gridColumnCustomFormat\" (ngModelChange)=\"changeSave()\" name=\"alignment\">\r\n                    <ng-container *ngIf=\"options(element) as availableOptions\">\r\n                      <mat-option *ngFor=\"let format of availableOptions\" [value]=\"format\">{{ format }}</mat-option>\r\n                      <mat-option *ngIf=\"availableOptions.length === 0\" disabled>\r\n                        <span style=\"color: grey;\">No hay formatos disponibles</span>\r\n                      </mat-option>\r\n                    </ng-container>\r\n                  </mat-select>\r\n                </mat-form-field>\r\n              </div>\r\n              \r\n              \r\n              \r\n           \r\n            </div>\r\n          </div>\r\n          <div class=\"pb-1 input-alignment\">\r\n            <label class=\"col-form-label-sm\">{{labelsUpdateGrilla.subColumns.subColumn5}}</label>\r\n            <div class=\"d-flex flex-row\">\r\n             \r\n                <mat-form-field class=\"flex-fill\" appearance=\"outline\">\r\n             \r\n                    <mat-select [(ngModel)]=\"element.gridColumnAlignment\"  (ngModelChange)=\"changeSave()\"name=\"alignment\">\r\n                        <mat-option value='0'>General</mat-option>\r\n                        <mat-option value='1'>Near</mat-option>\r\n                        <mat-option value='2'>Center</mat-option>\r\n                        <mat-option value='3'>Far</mat-option>\r\n                        <mat-option value='4'>Justify</mat-option>\r\n                    </mat-select>\r\n                </mat-form-field>\r\n            </div>\r\n          </div>\r\n          <div class=\"pb-1 input-isedit\">\r\n            <div class=\"d-flex\">\r\n              <label class=\"col-form-label-sm flex-fill\">{{labelsUpdateGrilla.subColumns.subColumn6}}</label>\r\n            </div>\r\n            <div class=\"d-flex flex-row justify-content-center\">\r\n              <mat-checkbox [checked]=\"element.gridColumnAvailableToDateFormat === true\"\r\n                            class=\"form-control-sm px-0\"\r\n                            (change)=\"onCheckboxChange('date', $event.checked, element)\">\r\n              </mat-checkbox>\r\n            </div>\r\n          </div>\r\n          <div class=\"pb-1 input-iscost\">\r\n            <div class=\"d-flex\">\r\n              <label class=\"col-form-label-sm flex-fill\">{{labelsUpdateGrilla.subColumns.subColumn7}}</label>\r\n            </div>\r\n            <div class=\"d-flex flex-row justify-content-center\">\r\n              <mat-checkbox [checked]=\"element.gridColumnIsCost === true\"\r\n                            class=\"form-control-sm px-0\"\r\n                            (change)=\"onCheckboxChange('cost', $event.checked, element)\">\r\n              </mat-checkbox>\r\n            </div>\r\n          </div>\r\n          \r\n          \r\n          <div class=\"pb-1 input-iscost\">\r\n            <div class=\"d-flex\">\r\n                <label class=\"col-form-label-sm flex-fill\">&nbsp;</label>\r\n            </div>\r\n            <div class=\"d-flex flex-row justify-content-center\">\r\n              <button type=\"button\"  class=\"btn btn-secondary btn-sm flex-fill fw-bold justify-content-center\" (click)=\"apply(element)\" >{{labelsUpdateGrilla.buttons.apply}} </button>\r\n            </div>\r\n          </div>\r\n          \r\n        </div>\r\n         \r\n        </div>\r\n      </td>\r\n    </ng-container>\r\n \r\n    <tr mat-header-row *matHeaderRowDef=\"columnsToDisplayWithExpand; sticky: true\" > </tr>\r\n \r\n    <tr mat-row *matRowDef=\"let element; columns: columnsToDisplayWithExpand\"  \r\n     class=\"customer-element-row\" [ngClass]=\"{'cursor-default': expandirEnabled}\" (click)=\"expandirAni()\"\r\n      [class.customer-expanded-row]=\"expandedElement === element\" ></tr>\r\n \r\n    <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"customer-detail-row \"></tr>\r\n  </table>\r\n</div>\r\n \r\n<div class=\"modal-footer\">\r\n  <div class=\"d-flex justify-content-end gap-2\">\r\n    <!-- <button class=\"btn btn-outline-danger px-4 fw-bold\" type=\"button\">Reset all</button> -->\r\n    <button class=\"btn btn-outline-danger px-4 fw-bold\" type=\"button\" (click)=\"CloseModal(false)\">{{labelsUpdateGrilla.buttons.close}}</button>\r\n    <button *ngIf=\"btnSaveEnabled\" type=\"button\" class=\"btn btn-primary px-3 fw-bold\" (click)=\"CloseModal(true)\" >{{labelsUpdateGrilla.buttons.saveChanges}}</button>\r\n  </div>\r\n</div>\r\n \r\n ","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { UiUpdategrillaComponent } from './ui-updategrilla/ui-updategrilla.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n@NgModule({\r\n  declarations: [UiUpdategrillaComponent],\r\n  imports: [CommonModule,\r\n    FormsModule ,\r\n    ReactiveFormsModule,\r\n    BrowserModule,\r\n    MatTableModule,\r\n    DragDropModule,\r\n    MatCheckboxModule,\r\n    MatTabsModule,\r\n    MatPaginatorModule,\r\n    MatExpansionModule,\r\n    MatInputModule,\r\n    MatButtonModule,\r\n    MatSortModule,\r\n    MatSelectModule\r\n  ],\r\n  exports: [\r\n    UiUpdategrillaComponent,\r\n    FormsModule,\r\n   \r\n    \r\n  ]\r\n})\r\nexport class UiUpdategrillaModule {}\r\n","import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-ui-filter-checkbox',\r\n  templateUrl: './ui-filter-checkbox.component.html',\r\n  styleUrls: ['./ui-filter-checkbox.component.scss'],\r\n})\r\nexport class UiFilterCheckboxComponent {\r\n  @HostListener('document:keydown.enter', ['$event'])\r\n  handleEnterKey(event: KeyboardEvent) {\r\n    if (this.selectedCountCheckbox != 0)\r\n      this.applySelectionCheckbox();\r\n    else\r\n      this.clearSelectionCheckbox(this.dataFilterCheckbox.nameFilter);\r\n  }\r\n\r\n  @Input() dataFilterCheckbox: any = {\r\n    codeV: '',\r\n    nameCodeV: '',\r\n    nameFilter: '',\r\n    disabledClose: false,\r\n    dataFilter: [],\r\n    complete_btn: false,\r\n    showField: false,\r\n    selectedCheckbox: {},\r\n    nameParam: '',\r\n    api: null,\r\n  };\r\n\r\n  public responseFilterCheckbox: any = {\r\n    parameteres: null,\r\n    action: false,\r\n    nameFilter: '',\r\n    labelResponse: '',\r\n    selectedCheckbox: {},\r\n  };\r\n\r\n  @Output() responseFilterCheckbox_EVENT = new EventEmitter<any>();\r\n\r\n  ///////////////////////Filter Vendor//////////////////////\r\n  public complete_btn_Checkbox: boolean = false;\r\n  public searchTermCheckbox: string = '';\r\n  public selectedCheckboxC: any = {};\r\n  public selectFinalCheckbox: any = []; // Asegúrate de que esto sea un array\r\n  public selectFinalCheckboxC: any = []; // Asegúrate de que esto sea un array\r\n\r\n  get filteredCheckbox(): any {\r\n    return this.dataFilterCheckbox.dataFilter.filter((s: any) => {\r\n      const combinedValue = `${s[this.dataFilterCheckbox.codeV]}-${s[this.dataFilterCheckbox.nameCodeV]\r\n        }`.toLowerCase();\r\n      return combinedValue.includes(this.searchTermCheckbox.toLowerCase());\r\n    });\r\n  }\r\n\r\n  get selectedCountCheckbox(): any {\r\n    return Object.values(this.dataFilterCheckbox.selectedCheckbox).filter(\r\n      (v) => v\r\n    ).length;\r\n  }\r\n\r\n  get totalCountCheckbox(): number {\r\n    return this.dataFilterCheckbox.dataFilter.length;\r\n  }\r\n\r\n  public toggleCheckboxSelection(CheckboxCode: string): void {\r\n    this.dataFilterCheckbox.selectedCheckbox[CheckboxCode] = !this.dataFilterCheckbox.selectedCheckbox[CheckboxCode];\r\n    this.selectFinalCheckbox = this.dataFilterCheckbox.dataFilter.filter(\r\n      (v: any) =>\r\n        this.dataFilterCheckbox.selectedCheckbox[\r\n        v[this.dataFilterCheckbox.codeV]\r\n        ]\r\n    );\r\n  }\r\n\r\n  public toggleSelectAllCheckbox(event: Event): void {\r\n    const target = event.target as HTMLInputElement;\r\n    this.dataFilterCheckbox.dataFilter.forEach((v: any) => {\r\n      this.dataFilterCheckbox.selectedCheckbox[\r\n        v[this.dataFilterCheckbox.codeV]\r\n      ] = target.checked;\r\n    });\r\n    this.selectFinalCheckbox = this.dataFilterCheckbox.dataFilter.filter(\r\n      (v: any) =>\r\n        this.dataFilterCheckbox.selectedCheckbox[\r\n        v[this.dataFilterCheckbox.codeV]\r\n        ]\r\n    );\r\n  }\r\n\r\n  public clearSelectionCheckbox(nameFilter: any): void {\r\n    this.dataFilterCheckbox.selectedCheckbox = {}; // Limpiar la selección\r\n    this.selectedCheckboxC = {};\r\n    this.selectFinalCheckbox = [];\r\n    this.selectFinalCheckboxC = [];\r\n    this.searchTermCheckbox = '';\r\n    this.complete_btn_Checkbox = false;\r\n    this.responseFilterCheckbox.labelResponse = '';\r\n\r\n    this.responseFilterCheckbox.nameFilter = nameFilter;\r\n    this.responseFilterCheckbox.parameteres = null;\r\n    this.responseFilterCheckbox.action = false;\r\n    this.responseFilterCheckbox_EVENT.emit(this.responseFilterCheckbox);\r\n    // this.searchVoucher({PageNumber:1,PageSize:11})   // this.receivingStockControl_event.emit({type:'filter',value:this.parameterVoucher});\r\n  }\r\n\r\n  public applySelectionCheckbox(): void {\r\n    if (\r\n      this.dataFilterCheckbox.dataFilter.filter(\r\n        (v: any) =>\r\n          this.dataFilterCheckbox.selectedCheckbox[\r\n          v[this.dataFilterCheckbox.codeV]\r\n          ]\r\n      ).length == 0\r\n    ) {\r\n      this.clearSelectionCheckbox(this.dataFilterCheckbox.nameFilter);\r\n    } else {\r\n      this.selectFinalCheckbox = this.dataFilterCheckbox.dataFilter.filter(\r\n        (v: any) =>\r\n          this.dataFilterCheckbox.selectedCheckbox[\r\n          v[this.dataFilterCheckbox.codeV]\r\n          ]\r\n      );\r\n      this.selectFinalCheckboxC = this.dataFilterCheckbox.dataFilter.filter(\r\n        (v: any) =>\r\n          this.dataFilterCheckbox.selectedCheckbox[\r\n          v[this.dataFilterCheckbox.codeV]\r\n          ]\r\n      );\r\n      this.selectedCheckboxC = { ...this.dataFilterCheckbox.selectedCheckbox };\r\n      this.searchTermCheckbox = '';\r\n      this.complete_btn_Checkbox = true;\r\n      this.responseFilterCheckbox.labelResponse =\r\n        this.selectedCountCheckbox > 1\r\n          ? this.selectedCountCheckbox + ' de ' + this.totalCountCheckbox\r\n          : this.selectFinalCheckbox[0][this.dataFilterCheckbox.codeV] +\r\n          '-' +\r\n          this.selectFinalCheckbox[0][this.dataFilterCheckbox.nameCodeV];\r\n      this.responseFilterCheckbox.selectedCheckbox = this.dataFilterCheckbox.selectedCheckbox;\r\n      this.responseFilterCheckbox.nameFilter = this.dataFilterCheckbox.nameFilter;\r\n\r\n      this.responseFilterCheckbox.parameteres = this.selectFinalCheckbox\r\n        .map((c: any) => c[this.dataFilterCheckbox.codeV])\r\n        .join(',');\r\n      this.responseFilterCheckbox.action = true;\r\n      this.responseFilterCheckbox_EVENT.emit(this.responseFilterCheckbox);\r\n    }\r\n    //this.showFieldVendor = false;\r\n  }\r\n\r\n  ///////////////////////Filter Vendor//////////////////////\r\n}","<div class=\"field-filter\">\r\n  <div class=\"form-field\">\r\n    <label for=\"Vendor#\" class=\"form-label\" style=\"display:none\">{{dataFilterCheckbox.nameFilter}}</label>\r\n    <input autocomplete=\"off\" type=\"text\" class=\"form-control sizeTittleSection\" id=\"Vendor#\"\r\n      [placeholder]=\"dataFilterCheckbox.placeHolder\" [(ngModel)]=\"searchTermCheckbox\" />\r\n  </div>\r\n  <div class=\"form-multipleselect\">\r\n    <div *ngFor=\"let s of filteredCheckbox\" class=\"form-check\">\r\n      <input autocomplete=\"off\" class=\"form-check-input\" type=\"checkbox\" [id]=\"s[dataFilterCheckbox.codeV]\"\r\n        [checked]=\"dataFilterCheckbox.selectedCheckbox[s[dataFilterCheckbox.codeV]]\"\r\n        (change)=\"toggleCheckboxSelection(s[dataFilterCheckbox.codeV])\">\r\n      <label class=\"form-check-label filterValue\" [for]=\"s[dataFilterCheckbox.codeV]\">\r\n        {{ s[dataFilterCheckbox.codeV] }}- {{ s[dataFilterCheckbox.nameCodeV] }}\r\n      </label>\r\n    </div>\r\n  </div>\r\n  <div class=\"ctas-filter d-flex justify-content-between\">\r\n    <div class=\"select-all\">\r\n      <div class=\"form-check\">\r\n        <input autocomplete=\"off\" class=\"form-check-input\" type=\"checkbox\"\r\n          [checked]=\"selectedCountCheckbox === totalCountCheckbox\" (change)=\"toggleSelectAllCheckbox($event)\"\r\n          id=\"selectAll\">\r\n        <label class=\"form-check-label sizeTittleSection\" for=\"selectAll\">\r\n          {{ selectedCountCheckbox!==0?(selectedCountCheckbox+' '+dataFilterCheckbox.labelOf+' '+\r\n          totalCountCheckbox):dataFilterCheckbox.labelSelectAll }}\r\n        </label>\r\n      </div>\r\n    </div>\r\n    <div class=\"ctas\">\r\n      <button class=\"btn btn-outline-primary btn-sm\"\r\n        (click)=\"clearSelectionCheckbox(dataFilterCheckbox.nameFilter)\">{{dataFilterCheckbox.labelBtn1}}</button>\r\n      <button class=\"btn btn-secondary btn-sm\"\r\n        (click)=\"applySelectionCheckbox()\">{{dataFilterCheckbox.labelBtn2}}</button>\r\n    </div>\r\n  </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { UiFilterCheckboxComponent } from './ui-filter-checkbox/ui-filter-checkbox.component';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSortModule } from '@angular/material/sort';\r\n@NgModule({\r\n  declarations: [UiFilterCheckboxComponent],\r\n  imports: [CommonModule,\r\n    ReactiveFormsModule,\r\n    MatTableModule,\r\n    DragDropModule,\r\n    MatCheckboxModule,\r\n    MatTabsModule,\r\n    MatPaginatorModule,\r\n    MatExpansionModule,\r\n    MatInputModule,\r\n    MatButtonModule,\r\n    MatSortModule,\r\n    FormsModule \r\n  ],\r\n  exports: [\r\n    UiFilterCheckboxComponent,\r\n    FormsModule,\r\n  ], providers: [DatePipe]\r\n})\r\nexport class UiFilterCheckboxModule {}","import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-ui-filter-select',\r\n  templateUrl: './ui-filter-select.component.html',\r\n  styleUrls: ['./ui-filter-select.component.scss'],\r\n})\r\nexport class UiFilterSelectComponent {\r\n  @HostListener('document:keydown.enter', ['$event'])\r\n  handleEnterKey(event: KeyboardEvent) {\r\n    this.applySelectionType();\r\n  }\r\n\r\n  @Output() responseFilterSelect_EVENT = new EventEmitter<any>();\r\n  @Input() dataFilterSelect: any = {\r\n    codeV: '',\r\n    nameCodeV: '',\r\n    nameFilter: '',\r\n    label: '',\r\n    disabledClose: false,\r\n    complete_btn: false,\r\n    showField: false,\r\n    dataFilter: [],\r\n    selected: {},\r\n    nameParam: '',\r\n    api: null,\r\n     hideCode: false,\r\n  };\r\n\r\n  public responseFilterSelect: any = {\r\n    labelResponse: '',\r\n    parameteres: null,\r\n    selected: {},\r\n    action: false,\r\n    nameFilter: '',\r\n  };\r\n\r\n  //////////////////////Filter Type///////////////////////////////////////////////////\r\n  public searchTermSelect: string = '';\r\n  get dataFilter() {\r\n    return this.dataFilterSelect.dataFilter.filter((s: any) => {\r\n      const combinedValue = `${s[this.dataFilterSelect.codeV]}-${s[this.dataFilterSelect.nameCodeV]\r\n        }`.toLowerCase();\r\n      return combinedValue.includes(this.searchTermSelect.toLowerCase());\r\n    });\r\n  }\r\n\r\n\r\n  /*  public applySelectionType(): void {\r\n    if (Object.keys(this.dataFilterSelect.selected).length != 0) {\r\n      this.responseFilterSelect.action = true;\r\n      this.searchTermSelect = '';\r\n      this.responseFilterSelect.selected =\r\n        this.dataFilterSelect.dataFilter.find(\r\n          (t: { [x: string]: any }) =>\r\n            t[this.dataFilterSelect.codeV] ==\r\n            this.dataFilterSelect.selected[this.dataFilterSelect.codeV]\r\n        );\r\n      this.responseFilterSelect.labelResponse =\r\n        this.responseFilterSelect.selected[this.dataFilterSelect.codeV] +\r\n        '-' +\r\n        this.responseFilterSelect.selected[this.dataFilterSelect.nameCodeV];\r\n      this.responseFilterSelect.nameFilter = this.dataFilterSelect.nameFilter;\r\n      this.responseFilterSelect.parameteres =\r\n        this.responseFilterSelect.selected[this.dataFilterSelect.codeV];\r\n      this.responseFilterSelect_EVENT.emit(this.responseFilterSelect);\r\n    } else {\r\n      this.clearSelectionType(this.dataFilterSelect.nameFilter);\r\n    }\r\n  }*/\r\n\r\npublic applySelectionType(): void {\r\n    if (Object.keys(this.dataFilterSelect.selected).length != 0) {\r\n      this.responseFilterSelect.action = true;\r\n      this.searchTermSelect = '';\r\n      this.responseFilterSelect.selected =\r\n        this.dataFilterSelect.dataFilter.find(\r\n          (t: { [x: string]: any }) =>\r\n            t[this.dataFilterSelect.codeV] ==\r\n            this.dataFilterSelect.selected[this.dataFilterSelect.codeV]\r\n        );\r\n\r\n      // hideCode es true, el label solo muestra la descripción\r\n      if (this.dataFilterSelect.hideCode) {\r\n        this.responseFilterSelect.labelResponse =\r\n          this.responseFilterSelect.selected[this.dataFilterSelect.nameCodeV];\r\n      } else {\r\n        this.responseFilterSelect.labelResponse =\r\n          this.responseFilterSelect.selected[this.dataFilterSelect.codeV] +\r\n          '-' +\r\n          this.responseFilterSelect.selected[this.dataFilterSelect.nameCodeV];\r\n      }\r\n\r\n      this.responseFilterSelect.nameFilter = this.dataFilterSelect.nameFilter;\r\n      \r\n      this.responseFilterSelect.parameteres =\r\n        this.responseFilterSelect.selected[this.dataFilterSelect.codeV];\r\n      this.responseFilterSelect_EVENT.emit(this.responseFilterSelect);\r\n    } else {\r\n      this.clearSelectionType(this.dataFilterSelect.nameFilter);\r\n    }\r\n  }\r\n\r\n  // Función para seleccionar un solo tipo\r\n  public selectType(type: any): void {\r\n    this.dataFilterSelect.selected = type;\r\n  }\r\n\r\n  public clearSelectionType(nameFilter: any): void {\r\n    this.dataFilterSelect.selected = {}; // Limpiar la selección\r\n    this.searchTermSelect = '';\r\n    this.responseFilterSelect.labelResponse = '';\r\n    this.responseFilterSelect.nameFilter = nameFilter;\r\n    this.responseFilterSelect.parameteres = null;\r\n    this.responseFilterSelect.action = false;\r\n    this.responseFilterSelect_EVENT.emit(this.responseFilterSelect);\r\n    // this.searchVoucher({PageNumber:1,PageSize:11})   // this.receivingStockControl_event.emit({type:'filter',value:this.parameterVoucher});\r\n  }\r\n  ///////////////////////Filter Type//////////////////////\r\n}","<div class=\"field-filter\">\r\n  <div class=\"form-field\">\r\n    <label for=\"type#\" class=\"form-label\">{{dataFilterSelect.nameFilter}}</label>\r\n    <input autocomplete=\"off\" type=\"text\" class=\"form-control sizeTittleSection \" id=\"type#\"\r\n      [placeholder]=\"dataFilterSelect.placeHolder || 'Search for a value'\" [(ngModel)]=\"searchTermSelect\" />\r\n  </div>\r\n  <div class=\"form-multipleselect\">\r\n    <div *ngFor=\"let data of dataFilter\" class=\"label-item\" (click)=\"selectType(data)\">\r\n      <label class=\"form-check-label\">\r\n            <!--<span class=\"label-text\">\r\n              {{ data[dataFilterSelect.codeV] }} - {{ data[dataFilterSelect.nameCodeV] }}\r\n            </span>-->\r\n       <span class=\"label-text\">\r\n          <!-- Si hideCode es true, solo muestra la descripción -->\r\n          <ng-container *ngIf=\"dataFilterSelect.hideCode; else showWithCode\">\r\n            {{ data[dataFilterSelect.nameCodeV] }}\r\n          </ng-container>\r\n          <ng-template #showWithCode>\r\n            {{ data[dataFilterSelect.codeV] }} - {{ data[dataFilterSelect.nameCodeV] }}\r\n          </ng-template>\r\n        </span>\r\n        \r\n        <span *ngIf=\"data[dataFilterSelect.codeV] === dataFilterSelect.selected[dataFilterSelect.codeV]\"\r\n          class=\"material-icons check-mark\">\r\n          check\r\n        </span>\r\n      </label>\r\n    </div>\r\n  </div>\r\n\r\n  <div class=\"ctas-filter d-flex justify-content-end\">\r\n    <div class=\"ctas\">\r\n      <button class=\"btn btn-outline-primary btn-sm\"\r\n        (click)=\"clearSelectionType(this.dataFilterSelect.nameFilter)\">{{dataFilterSelect.labelBtn1 ||\r\n        'Clear'}}</button>\r\n      <button class=\"btn btn-secondary btn-sm\" (click)=\"applySelectionType()\">{{dataFilterSelect.labelBtn2 ||\r\n        'Apply'}}</button>\r\n    </div>\r\n  </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { UiFilterSelectComponent } from './ui-filter-select/ui-filter-select.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSortModule } from '@angular/material/sort';\r\n@NgModule({\r\n  declarations: [UiFilterSelectComponent],\r\n  imports: [CommonModule,\r\n    ReactiveFormsModule,\r\n    MatTableModule,\r\n    DragDropModule,\r\n    MatCheckboxModule,\r\n    MatTabsModule,\r\n    MatPaginatorModule,\r\n    MatExpansionModule,\r\n    MatInputModule,\r\n    MatButtonModule,\r\n    MatSortModule,\r\n    FormsModule \r\n  ],\r\n  exports: [\r\n    UiFilterSelectComponent,\r\n    FormsModule,\r\n  ], providers: [DatePipe]\r\n})\r\nexport class UiFilterSelectModule { }\r\n","import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-ui-filter-input',\r\n  templateUrl: './ui-filter-input.component.html',\r\n  styleUrls: ['./ui-filter-input.component.scss'],\r\n})\r\nexport class UiFilterInputComponent implements OnInit {\r\n  @HostListener('document:keydown.enter', ['$event'])\r\n  handleEnterKey(event: KeyboardEvent) {\r\n    if (this.dataFilterInput.valueFilter.length != 0)\r\n      this.applySelectionOrder();\r\n    else\r\n      this.clearSelectionOrder();\r\n  }\r\n\r\n  @Output() responseFilterInput_EVENT = new EventEmitter<any>();\r\n  @Input() dataFilterInput: any = {\r\n    nameFilter: '',\r\n    valueFilter: '',\r\n    placeHolder: '',\r\n    isNumberOnly: false,\r\n    complete_btn: false,\r\n    showField: false,\r\n    label: '',\r\n    nameParam: '',\r\n    showFilter: false,\r\n    isMoreFilter: false,\r\n    labelBtn1: '',\r\n    labelBtn2: '',\r\n  };\r\n  @Input() maxlength?: number;\r\n\r\n  public responseFilterInput: any = {\r\n    labelResponse: '',\r\n    parameteres: '',\r\n    action: false,\r\n    nameFilter: '',\r\n  };\r\n\r\n  ngOnInit(): void {\r\n    this.responseFilterInput.nameFilter = this.dataFilterInput.nameFilter;\r\n  }\r\n  ///////////////////////Filter PO//////////////////\r\n  public clearSelectionOrder(emitEvent = true): void {\r\n    this.responseFilterInput.action = false;\r\n    this.responseFilterInput.parameteres = '';\r\n    this.responseFilterInput.labelResponse = '';\r\n    this.dataFilterInput.valueFilter = '';\r\n    this.responseFilterInput_EVENT.emit(this.responseFilterInput); // this.receivingStockControl_event.emit({type:'filter',value:this.parameterVoucher});\r\n  }\r\n\r\n  public applySelectionOrder(): void {\r\n    if (this.dataFilterInput.valueFilter.length > 0) {\r\n      this.responseFilterInput.action = true;\r\n      this.responseFilterInput.parameteres = this.dataFilterInput.valueFilter;\r\n    }\r\n    this.responseFilterInput_EVENT.emit(this.responseFilterInput);\r\n  }\r\n\r\n  public handleInput(event: Event): void {\r\n    const inputElement = event.target as HTMLInputElement;\r\n\r\n    if (this.dataFilterInput.isNumberOnly) {\r\n      // Si es solo número, elimina cualquier carácter no numérico\r\n      inputElement.value = inputElement.value.replace(/[^0-9]/g, '');\r\n    }\r\n\r\n    // Actualiza el valor en el ngModel\r\n    this.dataFilterInput.valueFilter = inputElement.value;\r\n  }\r\n}","<div class=\"field-filter\">\r\n  <div class=\"form-field\">\r\n    <label for=\"order#\" class=\"form-label\" style=\"display: none\">{{\r\n      dataFilterInput.nameFilter\r\n      }}</label>\r\n    <input type=\"text\" autocomplete=\"off\" [(ngModel)]=\"dataFilterInput.valueFilter\"\r\n      class=\"form-control sizeTittleSection\" id=\"order#\" placeholder=\"{{ dataFilterInput.placeHolder }}\" name=\"order#\"\r\n      (input)=\"handleInput($event)\" [attr.maxlength]=\"maxlength !== undefined ? maxlength : null\" />\r\n  </div>\r\n\r\n  <div class=\"ctas-filter\">\r\n    <button class=\"btn btn-outline-primary btn-sm\" (click)=\"clearSelectionOrder()\">\r\n      {{ dataFilterInput.labelBtn1 }}\r\n    </button>\r\n    <button class=\"btn btn-secondary btn-sm\" (click)=\"applySelectionOrder()\">\r\n      {{ dataFilterInput.labelBtn2 }}\r\n    </button>\r\n  </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { UiFilterInputComponent } from './ui-filter-input/ui-filter-input.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSortModule } from '@angular/material/sort';\r\n@NgModule({\r\n  declarations: [UiFilterInputComponent],\r\n  imports: [CommonModule,\r\n    ReactiveFormsModule,\r\n    MatTableModule,\r\n    DragDropModule,\r\n    MatCheckboxModule,\r\n    MatTabsModule,\r\n    MatPaginatorModule,\r\n    MatExpansionModule,\r\n    MatInputModule,\r\n    MatButtonModule,\r\n    MatSortModule,\r\n    FormsModule \r\n  ],\r\n  exports: [\r\n    UiFilterInputComponent,\r\n    FormsModule,\r\n  ], providers: [DatePipe]\r\n})\r\nexport class UiFilterInputModule { }\r\n","import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-ui-filter-date',\r\n  templateUrl: './ui-filter-date.component.html',\r\n  styleUrls: ['./ui-filter-date.component.scss']\r\n})\r\nexport class UiFilterDateComponent {\r\n  @HostListener('document:keydown.enter', ['$event'])\r\n  handleEnterKey(event: KeyboardEvent) {\r\n    if (this.showDetailDateRange) {\r\n      this.applyDateRange();\r\n    } else {\r\n      this.applySelectionDate();\r\n    }\r\n  }\r\n  \r\n  @Output() responseFilterDate_EVENT = new EventEmitter<any>();\r\n  @Input() dataFilterDate:any={\r\n    \r\n    nameFilter:'Date range',\r\n    valueFilterFrom:'',\r\n    valueFilterTo:'',\r\n    placeHolder:'Date range',   \r\n    isNumberOnly: false,\r\n    complete_btn: false,\r\n    showField: false,\r\n    showFilter:true,\r\n    isMoreFilter:false,\r\n    label: '',\r\n    typeDate:9,\r\n    nameParam:'StartDate',\r\n    nameParam2:'EndDate',\r\n    \r\n      allClear: false,\r\n      labelSelectDates: '',\r\n      labelFrom: '',\r\n      labelTo: '',\r\n      lenguage: 'en',      \r\n      labelBtn1:'',\r\n      labelBtn2:'',\r\n  }\r\n  responseFilterDate:any={\r\n    parameteresDatefrom:'',\r\n    parameteresDateTo:'',\r\n    nameFilter:'',\r\n    labelResponse:'',\r\n    typeDate:9\r\n  }\r\n   dateType_en :any =[\r\n    { index: 0,label: 'Last 15 minutes', value: 'last_15_minutes' , date: this.calculateDateRange('last_15_minutes')},\r\n    { index: 1,label: 'Last 30 minutes', value: 'last_30_minutes', date: this.calculateDateRange('last_30_minutes') },\r\n    { index: 2,label: 'Last 1 hour', value: 'last_1_hour' , date: this.calculateDateRange('last_1_hour')},\r\n    { index: 3,label: 'Last 24 hours', value: 'last_24_hours' , date: this.calculateDateRange('last_24_hours')},\r\n    { index: 4,label: 'Last 7 days', value: 'last_7_days' , date: this.calculateDateRange('last_7_days')},\r\n    { index: 5,label: 'Last 15 days', value: 'last_15_days', date: this.calculateDateRange('last_15_days') },\r\n    { index: 6,label: 'Last 30 days', value: 'last_30_days', date: this.calculateDateRange('last_30_days') },\r\n    { index: 7,label: 'Last 90 days', value: 'last_90_days', date: this.calculateDateRange('last_90_days') },\r\n    {\r\n      index: 8,label: 'Last 180 days',\r\n      value: 'last_180_days',\r\n      date: this.calculateDateRange('last_180_days'),\r\n    },\r\n    { index: 9,label: 'Today', value: 'today', date: this.calculateDateRange('today') },\r\n    { index: 10,label: 'This week', value: 'this_week', date: this.calculateDateRange('this_week') },\r\n    { index: 11,label: 'This month', value: 'this_month', date: this.calculateDateRange('this_month') },\r\n    { index: 12,label: 'Custom', value: 'custom', date: this.calculateDateRange('custom') },\r\n  ];\r\n     dateType_es :any =[\r\n  { index: 0, label: 'Últimos 15 minutos', value: 'last_15_minutes', date: this.calculateDateRange('last_15_minutes') },\r\n  { index: 1, label: 'Últimos 30 minutos', value: 'last_30_minutes', date: this.calculateDateRange('last_30_minutes') },\r\n  { index: 2, label: 'Última 1 hora', value: 'last_1_hour', date: this.calculateDateRange('last_1_hour') },\r\n  { index: 3, label: 'Últimas 24 horas', value: 'last_24_hours', date: this.calculateDateRange('last_24_hours') },\r\n  { index: 4, label: 'Últimos 7 días', value: 'last_7_days', date: this.calculateDateRange('last_7_days') },\r\n  { index: 5, label: 'Últimos 15 días', value: 'last_15_days', date: this.calculateDateRange('last_15_days') },\r\n  { index: 6, label: 'Últimos 30 días', value: 'last_30_days', date: this.calculateDateRange('last_30_days') },\r\n  { index: 7, label: 'Últimos 90 días', value: 'last_90_days', date: this.calculateDateRange('last_90_days') },\r\n  { index: 8, label: 'Últimos 180 días', value: 'last_180_days', date: this.calculateDateRange('last_180_days') },\r\n  { index: 9, label: 'Hoy', value: 'today', date: this.calculateDateRange('today') },\r\n  { index: 10, label: 'Esta semana', value: 'this_week', date: this.calculateDateRange('this_week') },\r\n  { index: 11, label: 'Este mes', value: 'this_month', date: this.calculateDateRange('this_month') },\r\n  { index: 12, label: 'Personalizado', value: 'custom', date: this.calculateDateRange('custom') },\r\n];\r\n /////////////////////////////Fecha///////////\r\n showDetailDateRange = false;\r\n \r\n selectDateRange: any = {};\r\n selectDetailRange: any = {};\r\n selectedValueDate: any = {};\r\n activeCustomer = true;\r\n activeCustomerC = true;\r\n ngOnInit() {\r\n  if(this.dataFilterDate.lenguage === 'en') {\r\n this.selectDateRange = { ...this.dateType_en[this.dataFilterDate.typeDate] };\r\n  this.selectDetailRange = { ...this.dateType_en[this.dataFilterDate.typeDate] };\r\n  this.selectedValueDate = { ...this.dateType_en[this.dataFilterDate.typeDate] };\r\n\r\n  this.responseFilterDate.labelResponse=this.dateType_en[this.dataFilterDate.typeDate].label\r\n  this.responseFilterDate.typeDate=this.dateType_en[this.dataFilterDate.typeDate].index\r\n  }else{\r\n this.selectDateRange = { ...this.dateType_es[this.dataFilterDate.typeDate] };\r\n  this.selectDetailRange = { ...this.dateType_es[this.dataFilterDate.typeDate] };\r\n  this.selectedValueDate = { ...this.dateType_es[this.dataFilterDate.typeDate] };\r\n\r\n  this.responseFilterDate.labelResponse=this.dateType_es[this.dataFilterDate.typeDate].label\r\n  this.responseFilterDate.typeDate=this.dateType_es[this.dataFilterDate.typeDate].index\r\n  }\r\n \r\n  \r\n  \r\n  this.responseFilterDate.nameFilter='Date'\r\n  const { DateFrom, DateTo } = this.getDateRange();\r\n  this.responseFilterDate.parameteresDatefrom = DateFrom;\r\n  this.responseFilterDate.parameteresDateTo = DateTo;\r\n  this.initialDate();\r\n}\r\n selectItem(value: any) {\r\n   this.selectedValueDate = value;\r\n   this.responseFilterDate.typeDate=value.index\r\n   if (!this.activeCustomer) {\r\n     // eslint-disable-next-line no-empty\r\n     if (value.value == 'custom') {} \r\n     else {\r\n       const { startDate, endDate } = this.calculateDateRange(\r\n         this.selectedValueDate.value\r\n       );\r\n       this.startDate = new Date(\r\n         startDate.getFullYear(),\r\n         startDate.getMonth(),\r\n         startDate.getDate()\r\n       );\r\n       this.dateInput = this.formatDate(startDate, 1);\r\n       this.dateInputHour = this.formatDate(startDate, 2);\r\n\r\n       this.endDate = new Date(\r\n         endDate.getFullYear(),\r\n         endDate.getMonth(),\r\n         endDate.getDate()\r\n       );\r\n       this.dateInput2 = this.formatDate(endDate, 1);\r\n       this.dateInputHour2 = this.formatDate(endDate, 2);\r\n\r\n       const inputDate2 = new Date(\r\n         this.dateInput2 + 'T' + this.dateInputHour2\r\n       ); // Usa formato ISO con hora UTC\r\n       this.currentYear = inputDate2.getFullYear(); // Cambia el año actual al del input\r\n       this.currentMonth = inputDate2.getMonth(); // Cambia el mes actual al del input\r\n       this.activeCustomer = true;\r\n     }\r\n   } else {\r\n     const { startDate, endDate } = this.calculateDateRange(\r\n       this.selectedValueDate.value\r\n     );\r\n     this.startDate = new Date(\r\n       startDate.getFullYear(),\r\n       startDate.getMonth(),\r\n       startDate.getDate()\r\n     );\r\n     this.dateInput = this.formatDate(startDate, 1);\r\n     this.dateInputHour = this.formatDate(startDate, 2);\r\n\r\n     this.endDate = new Date(\r\n       endDate.getFullYear(),\r\n       endDate.getMonth(),\r\n       endDate.getDate()\r\n     );\r\n     this.dateInput2 = this.formatDate(endDate, 1);\r\n     this.dateInputHour2 = this.formatDate(endDate, 2);\r\n\r\n     const inputDate2 = new Date(this.dateInput2 + 'T' + this.dateInputHour2); // Usa formato ISO con hora UTC\r\n     this.currentYear = inputDate2.getFullYear(); // Cambia el año actual al del input\r\n     this.currentMonth = inputDate2.getMonth(); // Cambia el mes actual al del input\r\n     this.activeCustomer = true;\r\n   }\r\n\r\n   this.updateDays();\r\n }\r\n\r\n ///////////////// CALENDARIO.TS////////////////////////////////\r\n isCalendarEnabled = false; // Inicialmente bloqueado\r\n currentMonth = 0;\r\n currentYear = 0;\r\n currentMonthC = 0;\r\n currentYearC = 0;\r\n\r\n\r\n daysOfWeek_en:any = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\r\n daysOfWeek_es:any =['Dom', 'Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb']\r\n startDate: Date | null = null;\r\n endDate: Date | null = null;\r\n startDateC: Date | null = null;\r\n endDateC: Date | null = null;\r\n\r\n months_en:any= [\r\n'January',\r\n'February',\r\n'March',\r\n'April',\r\n'May',\r\n'June',\r\n'July',\r\n'August',\r\n'September',\r\n'October',\r\n'November',\r\n'December',\r\n ]\r\n months_es:any=[\r\n  'Enero',\r\n  'Febrero',\r\n  'Marzo',\r\n  'Abril',\r\n  'Mayo',\r\n  'Junio',\r\n  'Julio',\r\n  'Agosto',\r\n  'Septiembre',\r\n  'Octubre',\r\n  'Noviembre',\r\n  'Diciembre'\r\n];\r\n daysInMonth: Date[] = [];\r\n emptyDays: number[] = []; // Para mantener los días vacíos al inicio del mes\r\n\r\n\r\n\r\n initialDate() {\r\n   this.selectedValueDate = this.selectDetailRange;\r\n   if(this.dataFilterDate.lenguage === 'en'){\r\n this.responseFilterDate.parameteresDatefrom = this.formatDateParameter(\r\n     this.dateType_en[this.dataFilterDate.typeDate].date?.startDate\r\n   );\r\n   this.responseFilterDate.parameteresDateTo = this.formatDateParameter(\r\n     this.dateType_en[this.dataFilterDate.typeDate].date?.endDate\r\n   );\r\n   }else{\r\n     this.responseFilterDate.parameteresDatefrom = this.formatDateParameter(\r\n     this.dateType_es[this.dataFilterDate.typeDate].date?.startDate\r\n   );\r\n   this.responseFilterDate.parameteresDateTo = this.formatDateParameter(\r\n     this.dateType_es[this.dataFilterDate.typeDate].date?.endDate\r\n   );\r\n   }\r\n  \r\n\r\n   if (this.activeCustomer) {\r\n     const { startDate, endDate } = this.calculateDateRange(\r\n       this.selectDetailRange.value\r\n     );\r\n\r\n     this.startDate = new Date(\r\n       startDate.getFullYear(),\r\n       startDate.getMonth(),\r\n       startDate.getDate()\r\n     );\r\n     this.dateInput = this.formatDate(startDate, 1);\r\n     this.dateInputC = this.formatDate(startDate, 1);\r\n     this.dateInputHour = this.formatDate(startDate, 2);\r\n     this.dateInputHourC = this.formatDate(startDate, 2);\r\n     this.endDate = new Date(\r\n       endDate.getFullYear(),\r\n       endDate.getMonth(),\r\n       endDate.getDate()\r\n     );\r\n     this.dateInput2 = this.formatDate(endDate, 1);\r\n     this.dateInputC2 = this.formatDate(endDate, 1);\r\n     this.dateInputHour2 = this.formatDate(endDate, 2);\r\n     this.dateInputHourC2 = this.formatDate(endDate, 2);\r\n\r\n     this.currentMonth = this.endDate.getMonth();\r\n     this.currentYear = this.endDate.getFullYear();\r\n     this.currentMonthC = this.endDate.getMonth();\r\n     this.currentYearC = this.endDate.getFullYear();\r\n   }\r\n\r\n   this.updateDays();\r\n }\r\n\r\n updateDays() {\r\n   const firstDay = new Date(this.currentYear, this.currentMonth, 1);\r\n   const lastDay = new Date(this.currentYear, this.currentMonth + 1, 0);\r\n   this.emptyDays = Array(firstDay.getDay()).fill(0); // Días vacíos al inicio\r\n   this.daysInMonth = Array.from(\r\n     { length: lastDay.getDate() },\r\n     (_, i) => new Date(this.currentYear, this.currentMonth, i + 1)\r\n   );\r\n }\r\n calculateDateRange(selectedValue:any): {\r\n   startDate: Date;\r\n   endDate: Date;\r\n } {\r\n   const endDate = new Date(); // Fecha actual\r\n   let startDate: Date;\r\n\r\n   switch (selectedValue) {\r\n     case 'last_15_minutes':\r\n       startDate = new Date(endDate.getTime() - 15 * 60 * 1000); // 15 minutos atrás\r\n       break;\r\n     case 'last_30_minutes':\r\n       startDate = new Date(endDate.getTime() - 30 * 60 * 1000); // 30 minutos atrás\r\n       break;\r\n     case 'last_1_hour':\r\n       startDate = new Date(endDate.getTime() - 60 * 60 * 1000); // 1 hora atrás\r\n       break;\r\n     case 'last_24_hours':\r\n       startDate = new Date(endDate.getTime() - 24 * 60 * 60 * 1000); // 24 horas atrás\r\n       break;\r\n     case 'last_7_days':\r\n       startDate = new Date(endDate.getTime() - 7 * 24 * 60 * 60 * 1000); // 7 días atrás\r\n       break;\r\n     case 'last_15_days':\r\n       startDate = new Date(endDate.getTime() - 15 * 24 * 60 * 60 * 1000); // 15 días atrás\r\n       break;\r\n     case 'last_30_days':\r\n       startDate = new Date(endDate.getTime() - 30 * 24 * 60 * 60 * 1000); // 30 días atrás\r\n       break;\r\n     case 'last_90_days':\r\n       startDate = new Date(endDate.getTime() - 90 * 24 * 60 * 60 * 1000); // 90 días atrás\r\n       break;\r\n     case 'last_180_days':\r\n       startDate = new Date(endDate.getTime() - 180 * 24 * 60 * 60 * 1000); // 180 días atrás\r\n       break;\r\n     case 'today':\r\n       startDate = new Date(\r\n         endDate.getFullYear(),\r\n         endDate.getMonth(),\r\n         endDate.getDate()\r\n       );\r\n       break;\r\n     case 'this_week':\r\n       // eslint-disable-next-line no-case-declarations\r\n       const firstDayOfWeek = new Date(endDate);\r\n       firstDayOfWeek.setDate(endDate.getDate() - endDate.getDay()); // Día inicial de la semana\r\n       startDate = firstDayOfWeek;\r\n       break;\r\n     case 'this_month':\r\n       startDate = new Date(endDate.getFullYear(), endDate.getMonth(), 1); // Primer día del mes\r\n       break;\r\n     case 'custom':\r\n       startDate = new Date(); // Para el caso de Custom, puedes dejar que el usuario seleccione las fechas\r\n       break;\r\n     default:\r\n       startDate = endDate; // Por defecto, el rango es solo la fecha actual\r\n       break;\r\n   }\r\n\r\n   return { startDate, endDate };\r\n }\r\n\r\n selectDateInput(day: Date) {\r\n   if (!this.startDate || (this.startDate && this.endDate)) {\r\n     this.startDate = new Date(\r\n       day.getFullYear(),\r\n       day.getMonth(),\r\n       day.getDate()\r\n     );\r\n     this.dateInput = this.formatDate(\r\n       new Date(\r\n         day.getFullYear(),\r\n         day.getMonth(),\r\n         day.getDate(),\r\n         day.getHours(),\r\n         day.getMinutes(),\r\n         day.getSeconds()\r\n       ),\r\n       1\r\n     );\r\n     this.dateInputHour = this.formatDate(\r\n       new Date(\r\n         day.getFullYear(),\r\n         day.getMonth(),\r\n         day.getDate(),\r\n         day.getHours(),\r\n         day.getMinutes(),\r\n         day.getSeconds()\r\n       ),\r\n       2\r\n     );\r\n     this.dateInputHour2 = '00:00:00';\r\n   } else {\r\n     if (day >= this.startDate) {\r\n       this.endDate = new Date(\r\n         day.getFullYear(),\r\n         day.getMonth(),\r\n         day.getDate()\r\n       );\r\n       this.dateInput2 = this.formatDate(\r\n         new Date(\r\n           day.getFullYear(),\r\n           day.getMonth(),\r\n           day.getDate(),\r\n           day.getHours(),\r\n           day.getMinutes(),\r\n           day.getSeconds()\r\n         ),\r\n         1\r\n       );\r\n       this.dateInputHour2 = this.formatDate(\r\n         new Date(\r\n           day.getFullYear(),\r\n           day.getMonth(),\r\n           day.getDate(),\r\n           day.getHours(),\r\n           day.getMinutes(),\r\n           day.getSeconds()\r\n         ),\r\n         2\r\n       );\r\n     } else {\r\n       this.startDate = new Date(\r\n         day.getFullYear(),\r\n         day.getMonth(),\r\n         day.getDate()\r\n       );\r\n       this.dateInput = this.formatDate(\r\n         new Date(\r\n           day.getFullYear(),\r\n           day.getMonth(),\r\n           day.getDate(),\r\n           day.getHours(),\r\n           day.getMinutes(),\r\n           day.getSeconds()\r\n         ),\r\n         1\r\n       );\r\n       this.dateInputHour = this.formatDate(\r\n         new Date(\r\n           day.getFullYear(),\r\n           day.getMonth(),\r\n           day.getDate(),\r\n           day.getHours(),\r\n           day.getMinutes(),\r\n           day.getSeconds()\r\n         ),\r\n         2\r\n       );\r\n       this.dateInputHour2 = '00:00:00';\r\n     }\r\n   }\r\n   this.updateDays(); // Actualiza los días al seleccionar una fecha\r\n }\r\n selectDate(day: Date) {\r\n  this.responseFilterDate.typeDate=12\r\n   this.activeCustomer = false;\r\n   this.selectedValueDate =this.dataFilterDate.lenguage === 'en'? this.dateType_en[12]: this.dateType_es[12];\r\n\r\n   if (!this.startDate || (this.startDate && this.endDate)) {\r\n     this.startDate = new Date(\r\n       day.getFullYear(),\r\n       day.getMonth(),\r\n       day.getDate()\r\n     );\r\n     this.dateInput = this.formatDate(\r\n       new Date(\r\n         day.getFullYear(),\r\n         day.getMonth(),\r\n         day.getDate(),\r\n         day.getHours(),\r\n         day.getMinutes(),\r\n         day.getSeconds()\r\n       ),\r\n       1\r\n     );\r\n     this.dateInputHour = this.formatDate(\r\n       new Date(\r\n         day.getFullYear(),\r\n         day.getMonth(),\r\n         day.getDate(),\r\n         day.getHours(),\r\n         day.getMinutes(),\r\n         day.getSeconds()\r\n       ),\r\n       2\r\n     );\r\n     this.dateInput2 = '';\r\n     this.dateInputHour2 = '';\r\n     this.endDate = null;\r\n   } else {\r\n     if (day >= this.startDate) {\r\n       this.endDate = new Date(\r\n         day.getFullYear(),\r\n         day.getMonth(),\r\n         day.getDate()\r\n       );\r\n       this.dateInput2 = this.formatDate(\r\n         new Date(\r\n           day.getFullYear(),\r\n           day.getMonth(),\r\n           day.getDate(),\r\n           day.getHours(),\r\n           day.getMinutes(),\r\n           day.getSeconds()\r\n         ),\r\n         1\r\n       );\r\n       this.dateInputHour2 = this.formatDate(\r\n         new Date(\r\n           day.getFullYear(),\r\n           day.getMonth(),\r\n           day.getDate(),\r\n           day.getHours(),\r\n           day.getMinutes(),\r\n           day.getSeconds()\r\n         ),\r\n         2\r\n       );\r\n     } else {\r\n       this.startDate = new Date(\r\n         day.getFullYear(),\r\n         day.getMonth(),\r\n         day.getDate()\r\n       );\r\n       this.dateInput = this.formatDate(\r\n         new Date(\r\n           day.getFullYear(),\r\n           day.getMonth(),\r\n           day.getDate(),\r\n           day.getHours(),\r\n           day.getMinutes(),\r\n           day.getSeconds()\r\n         ),\r\n         1\r\n       );\r\n       this.dateInputHour = this.formatDate(\r\n         new Date(\r\n           day.getFullYear(),\r\n           day.getMonth(),\r\n           day.getDate(),\r\n           day.getHours(),\r\n           day.getMinutes(),\r\n           day.getSeconds()\r\n         ),\r\n         2\r\n       );\r\n       this.dateInput2 = '';\r\n       this.dateInputHour2 = '';\r\n       this.endDate = null;\r\n     }\r\n   }\r\n   this.updateDays(); // Actualiza los días al seleccionar una fecha\r\n }\r\n formatDate(date: Date, type: number) {\r\n   if (type == 1) {\r\n     const year = date.getFullYear();\r\n     const month = (date.getMonth() + 1).toString().padStart(2, '0'); // Mes con dos dígitos\r\n     const day = date.getDate().toString().padStart(2, '0'); // Día con dos dígitos\r\n     return `${year}-${month}-${day}`;\r\n   } else {\r\n     const hours = date.getHours().toString().padStart(2, '0'); // Horas con dos dígitos\r\n     const minutes = date.getMinutes().toString().padStart(2, '0'); // Minutos con dos dígitos\r\n     const seconds = date.getSeconds().toString().padStart(2, '0'); // Segundos con dos dígitos\r\n\r\n     return `${hours}:${minutes}:${seconds}`;\r\n   }\r\n }\r\n isSelected(day: Date): any {\r\n   return (\r\n     (this.startDate &&\r\n       this.startDate.toDateString() === day.toDateString()) ||\r\n     (this.endDate && this.endDate.toDateString() === day.toDateString())\r\n   );\r\n }\r\n\r\n isInRange(day: Date): boolean {\r\n   if (this.startDate && this.endDate) {\r\n     return day > this.startDate && day < this.endDate;\r\n   }\r\n   return false;\r\n }\r\n\r\n previousMonth() {\r\n   if (this.currentMonth === 0) {\r\n     this.currentMonth = 11;\r\n     this.currentYear--;\r\n   } else {\r\n     this.currentMonth--;\r\n   }\r\n   this.updateDays(); // Actualiza los días al cambiar el mes\r\n }\r\n\r\n nextMonth() {\r\n   if (this.currentMonth === 11) {\r\n     this.currentMonth = 0;\r\n     this.currentYear++;\r\n   } else {\r\n     this.currentMonth++;\r\n   }\r\n   this.updateDays(); // Actualiza los días al cambiar el mes\r\n }\r\n\r\n dateInput = ''; // Variable para almacenar el input de fecha\r\n dateInput2 = ''; // Variable para almacenar el input de fecha\r\n dateInputHour = ''; // Variable para almacenar el input de fecha\r\n dateInputHour2 = ''; // Variable para almacenar el input de fecha\r\n dateInputC = ''; // Variable para almacenar el input de fecha\r\n dateInputC2 = ''; // Variable para almacenar el input de fecha\r\n dateInputHourC = ''; // Variable para almacenar el input de fecha\r\n dateInputHourC2 = ''; // Variable para almacenar el input de fecha\r\n selectedHour = 0;\r\n selectedMinute = 0;\r\n isInvalidDate = false; // Nueva propiedad para controlar el estado de la fecha\r\n isInvalidDate2 = false; // Nueva propiedad para controlar el estado de la fecha\r\n setDateFromInput() {\r\n  this.responseFilterDate.typeDate=12\r\n   this.activeCustomer = false;\r\n   this.selectedValueDate = this.dataFilterDate.lenguage === 'en'?this.dateType_en[12]: this.dateType_es[12];\r\n   // Expresión regular para validar el formato YYYY-MM-DD\r\n   const datePattern = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;\r\n\r\n   // Verifica que el input coincida con el patrón\r\n   if (datePattern.test(this.dateInput)) {\r\n     // Ajustar la fecha sumando 1 día para evitar problemas de zona horaria\r\n     const inputDate = new Date(this.dateInput + 'T' + this.dateInputHour); // Usa formato ISO con hora UTC\r\n     // Verifica que la fecha sea válida\r\n     if (inputDate && !isNaN(inputDate.getTime())) {\r\n       this.isInvalidDate = false; // Fecha válida, no marcar en rojo\r\n       this.currentMonth = inputDate.getMonth(); // Cambia el mes actual al del input\r\n       this.currentYear = inputDate.getFullYear(); // Cambia el año actual al del input\r\n       if (\r\n         new Date(this.dateInput + 'T' + this.dateInputHour) >\r\n         new Date(this.dateInput2 + 'T' + this.dateInputHour2)\r\n       ) {\r\n         this.dateInput2 = '';\r\n         this.dateInputHour2 = '';\r\n         this.endDate = null;\r\n       }\r\n       this.startDate = null;\r\n       // Selecciona la fecha en el calendario\r\n       this.selectDateInput(inputDate);\r\n     } else {\r\n       this.isInvalidDate = true; // Fecha inválida, marcar en rojo\r\n     }\r\n   } else {\r\n     this.isInvalidDate = true; // Formato incorrecto, marcar en rojo\r\n   }\r\n }\r\n setDateFromInput2() {\r\n  this.responseFilterDate.typeDate=12\r\n   this.activeCustomer = false;\r\n   this.selectedValueDate =this.dataFilterDate.lenguage === 'en'? { ...this.dateType_en[12] }: { ...this.dateType_es[12] };\r\n   // Expresión regular para validar el formato YYYY-MM-DD\r\n   const datePattern = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;\r\n\r\n   // Verifica que el input coincida con el patrón\r\n   if (datePattern.test(this.dateInput) || datePattern.test(this.dateInput2)) {\r\n     // Ajustar la fecha sumando 1 día para evitar problemas de zona horaria\r\n     const inputDate2 = new Date(this.dateInput2 + 'T' + this.dateInputHour2); // Usa formato ISO con hora UTC\r\n\r\n     // Verifica que la fecha sea válida\r\n     if (inputDate2 && !isNaN(inputDate2.getTime())) {\r\n       this.isInvalidDate2 = false; // Fecha válida, no marcar en rojo\r\n       this.currentMonth = inputDate2.getMonth(); // Cambia el mes actual al del input\r\n       this.currentYear = inputDate2.getFullYear(); // Cambia el año actual al del input\r\n       if (\r\n         new Date(this.dateInput + 'T' + this.dateInputHour) <=\r\n         new Date(this.dateInput2 + 'T' + this.dateInputHour2)\r\n       ) {\r\n         this.endDate = null;\r\n         // Selecciona la fecha en el calendario\r\n         this.selectDateInput(inputDate2);\r\n       } else {\r\n         this.isInvalidDate2 = true; // Fecha inválida, marcar en rojo\r\n         this.currentMonth = new Date(\r\n           this.dateInput + 'T' + this.dateInputHour\r\n         ).getMonth(); // Cambia el mes actual al del input\r\n         this.currentYear = new Date(\r\n           this.dateInput + 'T' + this.dateInputHour\r\n         ).getFullYear(); // Cambia el año actual al del input\r\n       }\r\n     } else {\r\n       this.isInvalidDate2 = true; // Fecha inválida, marcar en rojo\r\n     }\r\n   } else {\r\n     this.isInvalidDate2 = true; // Formato incorrecto, marcar en rojo\r\n   }\r\n }\r\n applyDateRange() {\r\n  if(!this.isInvalidDate && !this.isInvalidDate2 ){\r\n    this.currentMonthC = this.currentMonth;\r\n    this.currentYearC = this.currentYear;\r\n    this.startDateC = this.startDate;\r\n    this.endDateC = this.endDate;\r\n    this.dateInputC = this.dateInput;\r\n    this.dateInputC2 = this.dateInput2;\r\n    this.dateInputHourC = this.dateInputHour;\r\n    this.dateInputHourC2 = this.dateInputHour2;\r\n    this.showDetailDateRange = false;\r\n    this.selectDetailRange = this.selectedValueDate;\r\n    this.activeCustomerC = this.activeCustomer;\r\n  }\r\n\r\n }\r\n\r\n cancelDateSelection() {\r\n   this.showDetailDateRange = false;\r\n   this.currentMonth = this.currentMonthC;\r\n   this.currentYear = this.currentYearC;\r\n   this.startDate = this.startDateC;\r\n   this.endDate = this.endDateC;\r\n   this.dateInput = this.dateInputC;\r\n   this.dateInput2 = this.dateInputC2;\r\n   this.dateInputHour = this.dateInputHourC;\r\n   this.dateInputHour2 = this.dateInputHourC2;\r\n   this.activeCustomer = this.activeCustomerC;\r\n }\r\n\r\n clearSelectionDate() {\r\n    if(this.dataFilterDate.lenguage === 'en'){\r\n this.selectDetailRange = { ...this.dateType_en[this.dataFilterDate.typeDate] };\r\n   this.selectDateRange = { ...this.dateType_en[this.dataFilterDate.typeDate] };\r\n   this.responseFilterDate.parameteresDatefrom = this.formatDateParameter(\r\n     this.dateType_en[this.dataFilterDate.typeDate].date?.startDate\r\n   );\r\n   \r\n   this.responseFilterDate.parameteresDateTo = this.formatDateParameter(\r\n     this.dateType_en[this.dataFilterDate.typeDate].date?.endDate\r\n   );\r\n   this.responseFilterDate.labelResponse=this.dateType_en[this.dataFilterDate.typeDate].label\r\n   this.responseFilterDate.typeDate=this.dateType_en[this.dataFilterDate.typeDate].index\r\n\r\n    }else{\r\n this.selectDetailRange = { ...this.dateType_es[this.dataFilterDate.typeDate] };\r\n   this.selectDateRange = { ...this.dateType_es[this.dataFilterDate.typeDate] };\r\n   this.responseFilterDate.parameteresDatefrom = this.formatDateParameter(\r\n     this.dateType_es[this.dataFilterDate.typeDate].date?.startDate\r\n   );\r\n   \r\n   this.responseFilterDate.parameteresDateTo = this.formatDateParameter(\r\n     this.dateType_es[this.dataFilterDate.typeDate].date?.endDate\r\n   );\r\n   this.responseFilterDate.labelResponse=this.dateType_es[this.dataFilterDate.typeDate].label\r\n   this.responseFilterDate.typeDate=this.dateType_es[this.dataFilterDate.typeDate].index\r\n\r\n    }\r\n\r\n  \r\n   this.responseFilterDate_EVENT.emit({value:this.responseFilterDate,clear:true})  \r\n\r\n   \r\n }\r\n applySelectionDate() {\r\n   this.responseFilterDate.parameteresDatefrom = this.formatDateParameter(\r\n     this.startDate\r\n   );\r\n   this.responseFilterDate.parameteresDateTo = this.formatDateParameter(this.endDate);\r\n   if (this.selectDetailRange.value === 'custom') {\r\n     const formattedFechaIngreso = this.startDate\r\n       ? this.formatLabelDate(this.startDate.toString())\r\n       : 'Fecha no disponible';\r\n     const formattedFechaSalida = this.endDate\r\n       ? this.formatLabelDate(this.endDate.toString())\r\n       : 'Fecha no disponible';\r\n     this.selectDateRange.labelTitle =\r\n       formattedFechaIngreso + ' To ' + formattedFechaSalida;\r\n     this.selectDateRange.value = 'custom';\r\n     this.selectDateRange.label = 'Custom';\r\n     this.selectDetailRange.label = 'Custom';\r\n     this.selectDetailRange.value = 'custom';    \r\n     this.responseFilterDate.labelResponse= formattedFechaIngreso + ' To ' + formattedFechaSalida;\r\n   } else {\r\n     this.selectDateRange.value = this.selectDetailRange.value;\r\n     this.selectDateRange.label = this.selectDetailRange.label;\r\n     this.responseFilterDate.labelResponse= this.selectDetailRange.label\r\n   }\r\n    this.responseFilterDate.nameFilter='Date'\r\n    this.responseFilterDate_EVENT.emit({value:this.responseFilterDate,clear:false})  // this.receivingStockControl_event.emit({type:'filter',value:this.parametersReceiving});\r\n }\r\n formatDateParameter(dateString: any) {\r\n   const date = new Date(dateString); // Crear un objeto Date desde la cadena\r\n\r\n   const year = date.getUTCFullYear(); // Obtener el año\r\n   const month = String(date.getUTCMonth() + 1).padStart(2, '0'); // Obtener el mes y asegurarse de que tenga 2 dígitos\r\n   const day = String(date.getUTCDate()).padStart(2, '0'); // Obtener el día y asegurarse de que tenga 2 dígitos\r\n\r\n   return `${year}-${month}-${day}`; // Formato yyyy/mm/dd\r\n }\r\n formatLabelDate(dateString:any) {\r\n   const date = new Date(dateString);\r\n\r\n   // Obtener el día de la semana\r\n   const dayOfWeek = date.toLocaleString('en-US', { weekday: 'short' }); // Ejemplo: \"Fri\"\r\n\r\n   // Obtener el día, mes y año\r\n   const day = date.getDate().toString().padStart(2, '0'); // Ejemplo: \"16\"\r\n   const month = date.toLocaleString('en-US', { month: 'short' }); // Ejemplo: \"Aug\"\r\n   const year = date.getFullYear(); // Ejemplo: \"2024\"\r\n\r\n   // Combinar día de la semana, día, mes y año\r\n   return `${dayOfWeek} ${month} ${day} ${year}`;\r\n }\r\n //////////////////////////////////////////////////////////\r\n toggleDetailDateRange() {\r\n  this.showDetailDateRange = !this.showDetailDateRange;\r\n}\r\ngetDateRange(): { DateFrom:any; DateTo:any } {\r\n  const today = new Date(); // Fecha de hoy\r\n  const pastDate = new Date(); // Fecha de hace 180 días\r\n\r\n  // Restar 180 días de la fecha actual\r\n  pastDate.setDate(today.getDate() - 180);\r\n\r\n  // Función para formatear las fechas al formato YYYY-MM-DD\r\n  const formatDate = (date: Date) => {\r\n    const year = date.getFullYear();\r\n    const month = String(date.getMonth() + 1).padStart(2, '0'); // Los meses son 0 indexados\r\n    const day = String(date.getDate()).padStart(2, '0');\r\n    return `${year}-${month}-${day}`;\r\n  };\r\n\r\n  const DateFrom = formatDate(pastDate);\r\n  const DateTo = formatDate(today);\r\n\r\n  return { DateFrom, DateTo };\r\n}\r\n}\r\n","<div class=\"field-filter\">\r\n  <div class=\"form-field\">\r\n    <label for=\"document#\" class=\"form-label\" style=\"display:none\">Date range</label>\r\n    <button class=\"form-select filterValue text-start\" type=\"button\" (click)=\"toggleDetailDateRange();\">\r\n      {{selectDetailRange.label}}\r\n    </button>\r\n  </div>\r\n  <div class=\"ctas-filter\">\r\n    <button class=\"btn btn-outline-primary btn-sm\" (click)=\"clearSelectionDate()\">{{dataFilterDate.labelBtn1}}</button>\r\n    <button class=\"btn btn-secondary btn-sm\" (click)=\"applySelectionDate()\">{{dataFilterDate.labelBtn2}}</button>\r\n  </div>\r\n</div>\r\n  <div class=\"contentDate d-flex\" *ngIf=\"showDetailDateRange\">\r\n    <div class=\"d-flex flex-column sectionDateCod\">\r\n      <button class=\"form-select filterValue text-start\" type=\"button\" data-bs-toggle=\"dropdown\"\r\n        aria-expanded=\"false\">\r\n        {{selectedValueDate.label}}\r\n      </button>\r\n      <ul class=\"dropdown-menu\">\r\n        <li *ngFor=\"let item of (dataFilterDate.lenguage==='en'?dateType_en:dateType_es)\">\r\n          <div class=\"dropdown-item filterValue text-start\"\r\n            [ngClass]=\"{ 'selected-item': selectedValueDate.value === item.value }\" (click)=\"selectItem(item)\">\r\n            {{ item.label }}\r\n          </div>\r\n        </li>\r\n      </ul>\r\n      <div class=\" d-flex  flex-column\">\r\n        <div class=\"filter-name bg-none\">{{dataFilterDate.labelSelectDates}}</div>\r\n        <div class=\"input-container\">\r\n          <label for=\"start-date \" class=\"sizeTittleField \">{{dataFilterDate.labelFrom}}</label>\r\n          <div class=\"d-flex flex-fill\">\r\n            <input id=\"dateInput \"   autocomplete=\"off\"  class=\"form-control dateFrom\" type=\"text\" [(ngModel)]=\"dateInput\"\r\n              [class.invalid-date]=\"isInvalidDate\" (input)=\"setDateFromInput()\" placeholder=\"\" />\r\n            <input id=\"dateInput \"  autocomplete=\"off\"  class=\"form-control hourFrom\" type=\"text\" [(ngModel)]=\"dateInputHour\"\r\n              [class.invalid-date]=\"isInvalidDate\" placeholder=\"\" />\r\n          </div>\r\n          <label for=\"end-date\" class=\"sizeTittleField\">{{dataFilterDate.labelTo}}</label>\r\n          <div class=\"d-flex flex-fill\">\r\n            <input id=\"dateInput\"  autocomplete=\"off\"  class=\"form-control dateEnd\" type=\"text\" [(ngModel)]=\"dateInput2\"\r\n              [class.invalid-date]=\"isInvalidDate2\" (input)=\"setDateFromInput2()\" placeholder=\"\" />\r\n            <input id=\"dateInput\"  autocomplete=\"off\"  class=\"form-control hourEnd\" type=\"text\" [(ngModel)]=\"dateInputHour2\"\r\n              [class.invalid-date]=\"isInvalidDate2\" placeholder=\"\" />\r\n          </div>\r\n        </div>\r\n        <div class=\"ctas-subfilter p-0\">\r\n          <button class=\"btn btn-outline-primary btn-sm dateCod\" (click)=\"cancelDateSelection()\">{{dataFilterDate.labelBtn3}}</button>\r\n          <button class=\"btn btn-secondary btn-sm dateCod\" (click)=\"applyDateRange()\">{{dataFilterDate.labelBtn4}}</button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"d-flex flex-column \">\r\n      <!-- APP CALENDARIO-->\r\n      <div class=\"calendar\">\r\n        <div class=\"header\">\r\n          <div class=\"currentDate\">{{(dataFilterDate.lenguage==='en'? months_en[currentMonth]:months_es[currentMonth]) }} {{ currentYear }}</div>\r\n          <div class=\"actions\">\r\n            <button (click)=\"previousMonth()\">\r\n              <span class=\"material-icons\">chevron_left</span>\r\n            </button>\r\n            <button (click)=\"nextMonth()\">\r\n              <span class=\"material-icons\">chevron_right</span>\r\n            </button>\r\n          </div>\r\n        </div>\r\n        <div class=\"days-of-week  \">\r\n          <div *ngFor=\"let day of (dataFilterDate.lenguage==='en'?daysOfWeek_en:daysOfWeek_es)\">{{ day }}</div>\r\n        </div>\r\n        <div class=\"days  \">\r\n          <div *ngFor=\"let emptyDay of emptyDays\" class=\"empty-day \"></div> <!-- Días vacíos -->\r\n          <div *ngFor=\"let day of daysInMonth\" class=\" dateCod\" [class.selected]=\"isSelected(day)\"\r\n            [class.in-range]=\"isInRange(day)\" (click)=\"selectDate(day)\">\r\n            {{ day.getDate() }}\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { UiFilterDateComponent } from './ui-filter-date/ui-filter-date.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSortModule } from '@angular/material/sort';\r\n\r\n@NgModule({\r\n  declarations: [UiFilterDateComponent],\r\n  imports: [CommonModule,\r\n    ReactiveFormsModule,\r\n    MatTableModule,\r\n    DragDropModule,\r\n    MatCheckboxModule,\r\n    MatTabsModule,\r\n    MatPaginatorModule,\r\n    MatExpansionModule,\r\n    MatInputModule,\r\n    MatButtonModule,\r\n    MatSortModule,\r\n    FormsModule \r\n  ],\r\n  exports: [\r\n    UiFilterDateComponent,\r\n    FormsModule,\r\n  ], providers: [DatePipe]\r\n})\r\nexport class UiFilterDateModule { }","import { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';\r\ninterface DataMultiPurposeDialogComponent {\r\n  icon: string;\r\n  tittle: string;\r\n  body: string;\r\n  color: string;\r\n  labelInput: string;\r\n  input: string;\r\n  requiredInput: boolean;\r\n  btnConfirm: boolean;\r\n  labelBtnConfirm?: string;\r\n  btnCancel: boolean;\r\n  labelBtnCancel?: string;\r\n  btnDiscard: boolean;\r\n  labelBtnDiscard?: string;\r\n}\r\n\r\n@Component({\r\n  selector: 'lib-ui-multi-purpose-dialog',\r\n  templateUrl: './ui-multi-purpose-dialog.component.html',\r\n  styleUrls: ['./ui-multi-purpose-dialog.component.scss'],\r\n})\r\nexport class UiMultiPurposeDialogComponent {\r\n  @HostListener('document:keydown.enter', ['$event'])\r\n  handleEnterKey(event: any) {\r\n    this.response(false, false, true);\r\n  }\r\n\r\n  @Output() multiPurposeDialogComponent_EVENT = new EventEmitter<any>();\r\n  @ViewChild('textInput') textInput!: ElementRef<HTMLInputElement>;\r\n\r\n  @Input() placeholder: string = \"\";\r\n  @Input() dataMultiPurposeDialogComponent: DataMultiPurposeDialogComponent = {\r\n    icon: '',\r\n    tittle: '',\r\n    body: '',\r\n    color: '',\r\n    labelInput: '',\r\n    input: '',\r\n    requiredInput: false,\r\n    btnConfirm: false,\r\n    btnCancel: false,\r\n    btnDiscard: false,\r\n    labelBtnConfirm: '',\r\n    labelBtnCancel: '',\r\n    labelBtnDiscard: '',\r\n  };\r\n  @Input() maxlength?: number;\r\n  @Input() regexp?: RegExp;\r\n\r\n  public showRequiredInput: boolean = false;\r\n  public specialKeys = ['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Enter'];\r\n\r\n  public response(cancel: boolean, discard: boolean, confirm: boolean): void {\r\n    switch (true) {\r\n      case cancel:\r\n      case discard:\r\n        this.multiPurposeDialogComponent_EVENT.emit({\r\n          isCancel: cancel,\r\n          isDiscard: discard,\r\n          isConfirmed: confirm,\r\n          input: this.dataMultiPurposeDialogComponent.input,\r\n        });\r\n        break;\r\n\r\n      case confirm:\r\n        if (\r\n          this.dataMultiPurposeDialogComponent.requiredInput &&\r\n          this.dataMultiPurposeDialogComponent.input === ''\r\n        ) {\r\n          this.showRequiredInput = true;\r\n        } else {\r\n          this.showRequiredInput = false;\r\n          this.multiPurposeDialogComponent_EVENT.emit({\r\n            isCancel: cancel,\r\n            isDiscard: discard,\r\n            isConfirmed: confirm,\r\n            // aquí llega el texto con el caracter \"+\"\r\n            input: this.dataMultiPurposeDialogComponent.input,\r\n          });\r\n        }\r\n        break;\r\n      default:\r\n        console.log('Unknown action');\r\n    }\r\n  }\r\n\r\n  public allowOnlyLettersAndNumbers(event: Event): void {\r\n    const input = event.target as HTMLInputElement;\r\n    const currentValue = input.value;\r\n\r\n    if (!this.regexp) {\r\n      this.dataMultiPurposeDialogComponent.input = currentValue;\r\n      return;\r\n    }\r\n\r\n    const filteredValue = Array.from(currentValue)\r\n      .filter(char => this.regexp!.test(char))\r\n      .join('');\r\n\r\n    if (currentValue !== filteredValue) {\r\n      input.value = filteredValue;\r\n      this.dataMultiPurposeDialogComponent.input = filteredValue;\r\n    } else {\r\n      this.dataMultiPurposeDialogComponent.input = currentValue;\r\n    }\r\n  }\r\n\r\n  public onPaste(event: ClipboardEvent): void {\r\n    const clipboardData = event.clipboardData;\r\n\r\n    if (!clipboardData || !this.regexp) return;\r\n\r\n    const pasteData = clipboardData.getData('text');\r\n    event.preventDefault();\r\n\r\n    // Filtrado de caracteres:\r\n    const filteredText = [...pasteData]\r\n      .filter(char => this.regexp!.test(char))\r\n      .join('');\r\n\r\n    const target = event.target as HTMLInputElement;\r\n\r\n    const start = target.selectionStart ?? 0;\r\n    const end = target.selectionEnd ?? 0;\r\n\r\n    const newValue = target.value.substring(0, start) + filteredText + target.value.substring(end);\r\n\r\n    if (this.maxlength !== undefined && newValue.length > this.maxlength) {\r\n      const availableSpace = this.maxlength - target.value.length + (end - start);\r\n      const truncatedFilteredText = filteredText.substring(0, availableSpace);\r\n\r\n      target.value = target.value.substring(0, start) + truncatedFilteredText + target.value.substring(end);\r\n      this.dataMultiPurposeDialogComponent.input = target.value;\r\n      target.selectionStart = target.selectionEnd = start + truncatedFilteredText.length;\r\n    } else {\r\n      target.value = newValue;\r\n      this.dataMultiPurposeDialogComponent.input = target.value;\r\n      target.selectionStart = target.selectionEnd = start + filteredText.length;\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.textInput) {\r\n      this.textInput.nativeElement.focus();\r\n    }\r\n  }\r\n}\r\n","<div class=\"popup-overlay\" id=\"popupOverlay\">\r\n  <div class=\"popup-container\">\r\n    <div class=\"popup-header\">\r\n      <span class=\"icon-container\">\r\n        <span [ngStyle]=\"{'color': dataMultiPurposeDialogComponent.color}\"\r\n          class=\"material-symbols-outlined\">{{dataMultiPurposeDialogComponent.icon}}</span>\r\n      </span>\r\n      <h2 [ngStyle]=\"{'color': dataMultiPurposeDialogComponent.color}\">{{dataMultiPurposeDialogComponent.tittle}}</h2>\r\n    </div>\r\n    <div class=\"popup-body\">\r\n      <p>{{dataMultiPurposeDialogComponent.body}}</p>\r\n      <div *ngIf=\"dataMultiPurposeDialogComponent.requiredInput\" class=\"input-container\">\r\n        <label for=\"lpn\">{{dataMultiPurposeDialogComponent.labelInput}}</label>\r\n        <input #textInput [ngClass]=\"{'input-error': showRequiredInput}\" autocomplete=\"off\"\r\n          [(ngModel)]=\"dataMultiPurposeDialogComponent.input\" type=\"text\" id=\"lpn\" name=\"lpn\"\r\n          [placeholder]=\"placeholder\" [attr.maxlength]=\"maxlength !== undefined ? maxlength : null\"\r\n          (input)=\"regexp ? allowOnlyLettersAndNumbers($event) : null\"\r\n          (paste)=\"regexp ? onPaste($event) : null\"\r\n        >\r\n      </div>\r\n    </div>\r\n    <div class=\"popup-footer\">\r\n      <button *ngIf=\"dataMultiPurposeDialogComponent.btnCancel\" class=\"btn btn-outline-danger\"\r\n        (click)=\"response(true,false,false)\">{{dataMultiPurposeDialogComponent.labelBtnCancel}}</button>\r\n      <button *ngIf=\"dataMultiPurposeDialogComponent.btnDiscard\" class=\"btn btn-danger\"\r\n        (click)=\"response(false,true,false)\">{{dataMultiPurposeDialogComponent.labelBtnDiscard}}</button>\r\n      <button *ngIf=\"dataMultiPurposeDialogComponent.btnConfirm\" class=\"btn btn-success\"\r\n        (click)=\"response(false,false,true)\">{{dataMultiPurposeDialogComponent.labelBtnConfirm}}</button>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UiMultiPurposeDialogComponent } from './ui-multi-purpose-dialog/ui-multi-purpose-dialog.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n  declarations: [UiMultiPurposeDialogComponent],\r\n  imports: [\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    MatInputModule,\r\n    MatButtonModule,\r\n    FormsModule\r\n  ],\r\n  exports: [UiMultiPurposeDialogComponent]\r\n})\r\nexport class UiMultiPurposeDialogModule { }","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { NotificationProps } from './ui-popup-alert.interface';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class UIPopupAlertService {\r\n  private readonly defaultProps: NotificationProps = {\r\n    position: 'top',\r\n    title: \"\",\r\n    icon: 'success',\r\n    width: 400,\r\n    message: '',\r\n    showClass: {\r\n      popup: 'animate__animated animate__slideInDown animate__fast',\r\n    },\r\n    hideClass: {\r\n      popup: 'animate__animated animate__fadeOutUp animate__fast',\r\n    },\r\n    confirmButtonText: \"\",\r\n    showConfirmButton: false,\r\n  };\r\n  private readonly messageSubject = new BehaviorSubject<NotificationProps |  null>(null);\r\n  public messageAlert$ = this.messageSubject.asObservable();\r\n\r\n  constructor(\r\n    // private readonly translateService: TranslateService,\r\n  ) {}\r\n\r\n  public showNotification(notificationModalProperties: NotificationProps): void {\r\n    const propsToSend: NotificationProps = {\r\n      ...this.defaultProps,\r\n      ...notificationModalProperties,\r\n    };\r\n    \r\n\r\n    // if (notificationModalProperties.type == \"error\") {\r\n    //   propsToSend[\"confirmButtonText\"] = this.translateService.translate(\"errorConfirmButtonText\");\r\n    // } \r\n\r\n    this.messageSubject.next(propsToSend);\r\n  }\r\n\r\n  public hideNotification(): void {\r\n    this.messageSubject.next(null);\r\n  }\r\n}","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport Swal  from 'sweetalert2';\r\nimport { UIPopupAlertService } from './ui-popup-alert.service';\r\nimport { NotificationProps } from './ui-popup-alert.interface';\r\n\r\n\r\n@Component({\r\n  selector: 'lib-ui-popup-alert',\r\n  template: '',\r\n  styleUrls: ['./ui-popup-alert.component.scss'],\r\n})\r\nexport class UIPopupAlertComponent implements OnInit, OnDestroy {\r\n  private readonly destroy$ = new Subject<void>();\r\n\r\n  constructor(\r\n    private readonly _notificationService: UIPopupAlertService,\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    this._notificationService.messageAlert$\r\n      .pipe(takeUntil(this.destroy$))\r\n      .subscribe((notificationModalProperties) => {\r\n        if (notificationModalProperties && notificationModalProperties.message?.length > 0) {\r\n          this.showSwalAlert(notificationModalProperties);\r\n        }\r\n      });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  public showSwalAlert(notificationModalProperties: NotificationProps) {\r\n    const baseConfig = {\r\n      position: notificationModalProperties.position,\r\n      title: notificationModalProperties.title,\r\n      html: notificationModalProperties.message,\r\n      width: notificationModalProperties.width,\r\n      showClass: notificationModalProperties.showClass,\r\n      hideClass: notificationModalProperties.hideClass,\r\n      confirmButtonText: notificationModalProperties.confirmButtonText,\r\n      showConfirmButton: notificationModalProperties.showConfirmButton,\r\n    };\r\n\r\n    if (notificationModalProperties.type === 'success') {\r\n      Swal.fire({\r\n        ...baseConfig,\r\n        icon: 'success',\r\n        background: '#45CB85',\r\n        showConfirmButton: false,\r\n        iconColor: '#fff',\r\n        color: '#fff',\r\n        timer: 2000,\r\n      });\r\n    } else if (notificationModalProperties.type === 'error') {\r\n      Swal.fire({\r\n        ...baseConfig,\r\n        icon: 'error',\r\n        showConfirmButton: true,\r\n        confirmButtonColor: '#FF6F61',\r\n        allowOutsideClick: false,\r\n        backdrop: 'rgba(0, 0, 0, 0.2)',\r\n      });\r\n    } else {\r\n      Swal.fire({\r\n        ...baseConfig,\r\n        icon: notificationModalProperties.icon,\r\n        confirmButtonColor: '#45CB85',\r\n      });\r\n    }\r\n  }\r\n}","import { NgModule } from '@angular/core';\r\nimport { UIPopupAlertComponent } from './ui-popup-alert/ui-popup-alert.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    UIPopupAlertComponent,\r\n  ],\r\n  imports: [],\r\n  exports: [\r\n    UIPopupAlertComponent,\r\n  ],\r\n  providers: []\r\n})\r\nexport class UiPopupAlertModule { }","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\ntype ButtonType = 'danger' | 'primary' | 'secondary' | 'success' | 'warning';\r\ntype ButtonVariant = 'solid' | 'outline';\r\n\r\n@Component({\r\n  selector: 'lib-ui-button',\r\n  templateUrl: './ui-button.component.html',\r\n  styleUrls: ['./ui-button.component.scss'],\r\n})\r\nexport class UiButtonComponent {\r\n  @Input() text: string = \"\";\r\n  @Input() type: ButtonType = 'secondary';\r\n  @Input() variant: ButtonVariant = 'solid';\r\n  @Input() disabled: boolean = false;\r\n  @Input() icon: string = \"\";\r\n  @Input() customStyles: string = \"\";\r\n  @Input() tooltip: string = \"\";\r\n  @Output() buttonClick = new EventEmitter<void>();\r\n\r\n  private readonly fixedClasses: string = 'flex items-center justify-center py-[0.6em] px-4 text-xs font-roboto font-bold rounded-md box-border';\r\n  private readonly baseClass = 'transition-colors duration-200';\r\n\r\n  private readonly variants: Record<ButtonType, Record<ButtonVariant, string>> = {\r\n    primary: {\r\n      solid: 'bg-rms-primary text-white hover:bg-rms-primary-500',\r\n      outline: 'border-1 border-solid border-rms-primary-600 text-rms-primary-600 hover:bg-rms-primary-600 hover:text-white',\r\n    },\r\n    secondary: {\r\n      solid: 'bg-rms-secondary text-white hover:bg-rms-secondary-500',\r\n      outline: 'border-1 border-solid border-rms-secondary-600 text-rms-secondary-600 hover:bg-rms-secondary-600 hover:text-white',\r\n    },\r\n    danger: {\r\n      solid: 'bg-rms-danger text-white hover:bg-rms-danger-500',\r\n      outline: 'border-1 border-solid border-rms-danger-600 text-rms-danger-600 hover:bg-rms-danger-600 hover:text-white',\r\n    },\r\n    success: {\r\n      solid: 'bg-rms-success text-white hover:bg-rms-success-500',\r\n      outline: 'border-1 border-solid border-rms-success-600 text-rms-success-600 hover:bg-rms-success-600 hover:text-white',\r\n    },\r\n    warning: {\r\n      solid: 'bg-rms-warning text-white hover:bg-rms-warning-500',\r\n      outline: 'border-1 border-solid border-rms-warning-600 text-rms-warning-600 hover:bg-rms-warning-600 hover:text-white',\r\n    },\r\n  };\r\n\r\n  public getButtonClasses(): string {\r\n    if (this.disabled) {\r\n      const baseColorClass = this.variants[this.type].solid.split(' ')[0];\r\n      return `${this.baseClass} cursor-not-allowed ${baseColorClass} text-white opacity-50`;\r\n    }\r\n\r\n    const selected = this.variants[this.type]?.[this.variant] || this.variants['primary'].solid;\r\n    return `${this.baseClass} ${selected}`.trim();\r\n  }\r\n\r\n  public onButtonClick(): void {\r\n    if (!this.disabled) this.buttonClick.emit();\r\n  }\r\n\r\n  public getCombinedClasses(): string {\r\n    const dynamicClasses = this.getButtonClasses();\r\n    return `${this.fixedClasses} ${dynamicClasses} ${this.customStyles}`.trim();\r\n  }\r\n}","<button\r\n  matRipple\r\n  [matRippleColor]=\"'#ffffff1a'\"\r\n  [disabled]=\"disabled\"\r\n  (click)=\"onButtonClick()\"\r\n  [ngClass]=\"getCombinedClasses()\"\r\n  [attr.title]=\"tooltip.length > 0 ? tooltip : null\"\r\n>\r\n  <span *ngIf=\"icon.length\" class=\"material-symbols-outlined mr-2\">{{ icon }}</span>\r\n  {{ text }}\r\n</button>","import { NgModule } from '@angular/core';\r\nimport { UiButtonComponent } from './ui-button/ui-button.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatRippleModule } from '@angular/material/core';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    UiButtonComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    MatRippleModule,\r\n  ],\r\n  exports: [\r\n    UiButtonComponent,\r\n  ],\r\n  providers: []\r\n})\r\nexport class UiButtonModule { }","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'ui-not-found',\r\n  templateUrl: './ui-not-found.component.html',\r\n  styleUrls: ['./ui-not-found.component.scss'],\r\n})\r\nexport class UINotFoundComponent implements OnInit {\r\n  @Input() redirectTo: string | null = null;\r\n  constructor(\r\n    private readonly _route: ActivatedRoute,\r\n    private readonly router: Router,\r\n  ) { }\r\n\r\n  ngOnInit() {\r\n    this.redirectTo = this._route.snapshot.data['redirectTo'] || this.redirectTo;\r\n\r\n    if (this.redirectTo) {\r\n      const cleanRedirect = this.redirectTo.startsWith('/')\r\n        ? this.redirectTo.substring(1)\r\n        : this.redirectTo;\r\n\r\n      const target = cleanRedirect.trim().split('/')[0];\r\n\r\n      setTimeout(() => {\r\n        this.router.navigate(['/' + target]);\r\n      }, 2000);\r\n    }\r\n  }\r\n}","<main class=\"container\">\r\n  <div class=\"container\">\r\n    <img src=\"assets/notfound.svg\" alt=\"Company Logo\" class=\"images w-100\" />\r\n  </div>\r\n</main>","import { NgModule } from '@angular/core';\r\nimport { UINotFoundComponent } from './ui-not-found/ui-not-found.component';\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    UINotFoundComponent,\r\n  ],\r\n  imports: [],\r\n  exports: [\r\n    UINotFoundComponent,\r\n  ],\r\n  providers: []\r\n})\r\nexport class UiNotFoundModule { }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UiCustomerModule } from './ui-customer/ui-customer.module';\r\nimport { UiHeaderModule } from './ui-header/ui-header.module';\r\nimport { UiSidenavModule } from './ui-sidenav/ui-sidenav.module';\r\nimport { UiTableModule } from './ui-table/ui-table.module';\r\nimport { UiUpdategrillaModule } from './ui-updategrilla/ui-updategrilla.module';\r\nimport { UiFilterCheckboxModule } from './ui-filter-checkbox/ui-filter-checkbox.module';\r\nimport { UiFilterSelectModule } from './ui-filter-select/ui-filter-select.module';\r\nimport { UiFilterInputModule } from './ui-filter-input/ui-filter-input.module';\r\nimport { UiFilterDateModule } from './ui-filter-date/ui-filter-date.module';\r\nimport { UiMultiPurposeDialogModule } from './ui-multi-purpose-dialog/ui-multi-purpose-dialog.module';\r\nimport { UiPopupAlertModule } from './ui-popup-alert/ui-popup-alert.module';\r\nimport { UiButtonModule } from './ui-button/ui-button.module';\r\nimport { UiNotFoundModule } from './ui-not-found/ui-not-found.module';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    UiCustomerModule,\r\n    UiHeaderModule,\r\n    UiSidenavModule,\r\n    UiTableModule,\r\n    UiUpdategrillaModule,\r\n    UiFilterCheckboxModule,\r\n    UiFilterDateModule,\r\n    UiFilterSelectModule,\r\n    UiFilterInputModule,\r\n    UiMultiPurposeDialogModule,\r\n    UiPopupAlertModule,\r\n    UiButtonModule,\r\n    UiNotFoundModule,\r\n  ]\r\n})\r\nexport class UiRmsModule { }","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-ui-more-filter',\r\n  templateUrl: './ui-more-filter.component.html',\r\n  styleUrls: ['./ui-more-filter.component.scss']\r\n})\r\nexport class UiMoreFilterComponent {\r\n  @Input() informationApi: any\r\n  @Output() moreFilter_event = new EventEmitter<any>();\r\n  originalInformationApi:any\r\n  \r\n  // Guarda el estado de los filtros mostrados antes de cerrar\r\n  filterState: { [key: string]: boolean } = {};\r\n  filterStateFalses: { [key: string]: boolean } = {};\r\n  ngOnInit() {\r\n    // Captura el estado inicial de los filtros\r\n    this.saveFilterState();\r\n    // this.OriiginfilterState=JSON.parse(JSON.stringify(this.filterState)) \r\n    // console.log(\"originalInformationApi\",this.originalInformationApi)\r\n  }\r\n\r\n  // Guarda el estado actual de showFilter para todos los filtros\r\n  saveFilterState() {\r\n    this.filterState = {};\r\n\r\n    const filterCategories = [\r\n      'dataFilterInput', 'dataFilterDate', 'dataFilterCheckbox',\r\n      'dataFilterSelect', 'dataFilterTypeCheck'\r\n    ];\r\n\r\n    filterCategories.forEach(category => {\r\n      if (this.informationApi[category]) {\r\n        this.informationApi[category].forEach((filter: any) => {\r\n          if (filter.nameParam) {\r\n            this.filterState[filter.nameParam] = filter.showFilter;\r\n            console.log(\"filterState\",this.filterState)\r\n            if(!filter.showFilter){\r\n              this.filterStateFalses[filter.nameParam]=false\r\n              console.log(\"filterStateFalses\",this.filterStateFalses)\r\n            }\r\n          }\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n\r\n  save(save: any) {\r\n    if (save) {\r\n      // Si guarda, actualiza el estado de los filtros\r\n      this.saveFilterState();\r\n\r\n      // Recolectar información de filtros agregados\r\n      const addedFilters: string[] = [];\r\n      const filterCategories = [\r\n        'dataFilterInput', 'dataFilterDate', 'dataFilterCheckbox',\r\n        'dataFilterSelect', 'dataFilterTypeCheck'\r\n      ];\r\n\r\n      filterCategories.forEach(category => {\r\n        if (this.informationApi[category]) {\r\n          this.informationApi[category].forEach((filter: any) => {\r\n            // Detectar filtros que se acaban de agregar\r\n            if (filter.isMoreFilter && filter.showFilter && filter.nameParam) {\r\n              // Si el filtro no estaba en el estado inicial pero ahora está visible\r\n\r\n              if(this.filterStateFalses[filter.nameParam]!=undefined){\r\n                  if(this.filterStateFalses[filter.nameParam] !== this.filterState[filter.nameParam])\r\n                    console.log(\"filterStateFalses\",this.filterStateFalses)\r\n                  console.log(\"this.filterState\",this.filterState)\r\n                    addedFilters.push(filter.nameParam);\r\n                \r\n                }\r\n              }\r\n          \r\n          });\r\n        }\r\n      });\r\n\r\n      // Envía también información de los filtros agregados\r\n      this.moreFilter_event.emit({\r\n        save: save,\r\n        value: this.informationApi,\r\n        filterState: this.filterState,\r\n        addedFilters: addedFilters\r\n      });\r\n    } else {\r\n      this.moreFilter_event.emit({ save: save });\r\n    }\r\n  }\r\n\r\n  deleteParams(value: any) {\r\n    // Marcar como no visible y eliminar el parámetro\r\n    value.showFilter = false;\r\n    if (this.informationApi.params[value.nameParam]) {\r\n      delete this.informationApi.params[value.nameParam];\r\n    }\r\n\r\n    // IMPORTANTE: También guardar esta eliminación en filterState\r\n    if (value.nameParam) {\r\n      this.filterState[value.nameParam] = false;\r\n    }\r\n  }\r\n\r\n  clearMoreFilter() {\r\n    const filterCategories = [\r\n      this.informationApi.dataFilterInput,\r\n      this.informationApi.dataFilterDate,\r\n      this.informationApi.dataFilterCheckbox,\r\n      this.informationApi.dataFilterSelect,\r\n      this.informationApi.dataFilterTypeCheck\r\n    ];\r\n\r\n    filterCategories.forEach(category => {\r\n      if (category) {\r\n        category.forEach((filter: any) => {\r\n          if (filter.isMoreFilter) {\r\n            filter.showFilter = false;\r\n          }\r\n        });\r\n      }\r\n    });\r\n  }\r\n}\r\n","<div *ngIf=\"informationApi.isLabelsMoreFilter\" class=\"modal_content animate__animated animate__slideInUp animate__fast\">\r\n    <div class=\"modal-header\">\r\n        <h3 class=\"h3\">{{informationApi.isLabelsMoreFilter.tittle}}</h3>\r\n    </div>\r\n    <div class=\"modal-body\">\r\n\r\n        <div class=\"avaliable-filters\">\r\n            <div class=\"filter-title\">\r\n                <div class=\"title\">{{informationApi.isLabelsMoreFilter.labelTittle1}}</div>\r\n                <div class=\"description\">{{informationApi.isLabelsMoreFilter.labelTittle2}}</div>\r\n            </div>\r\n            <div class=\"filter-container\">\r\n                <ng-container\r\n                    *ngFor=\"let filterType of ['dataFilterInput', 'dataFilterDate', 'dataFilterCheckbox', 'dataFilterSelect', 'dataFilterTypeCheck']\">\r\n                    <ng-container *ngFor=\"let filterSelect of informationApi[filterType]\">\r\n                        <div *ngIf=\"filterSelect.isMoreFilter && !filterSelect.showFilter\" class=\"item\">\r\n                            <div class=\"item-name\">{{ filterSelect.nameFilter }}</div>\r\n                            <div role=\"button\" class=\"item-action add\" (click)=\"filterSelect.showFilter = true\">\r\n                                <span class=\"material-symbols-outlined\">add_circle</span>\r\n                            </div>\r\n                        </div>\r\n                    </ng-container>\r\n                </ng-container>\r\n            </div>\r\n\r\n        </div>\r\n        <div class=\"filter-direction\">\r\n            <div class=\"line\"></div>\r\n            <div class=\"icon\"><span class=\"material-symbols-outlined\">compare_arrows</span></div>\r\n            <div class=\"line\"></div>\r\n        </div>\r\n        <div class=\"selected-filters\">\r\n            <div class=\"filter-title\">\r\n                <div class=\"title\">{{informationApi.isLabelsMoreFilter.labelTittle3}}</div>\r\n                <div class=\"description\">{{informationApi.isLabelsMoreFilter.labelTittle4}}</div>\r\n            </div>\r\n            <div class=\"filter-container\">\r\n                <ng-container\r\n                    *ngFor=\"let filterType of ['dataFilterInput', 'dataFilterDate', 'dataFilterCheckbox', 'dataFilterSelect', 'dataFilterTypeCheck']\">\r\n                    <ng-container *ngFor=\"let filterSelect of informationApi[filterType]\">\r\n                        <div *ngIf=\"filterSelect.isMoreFilter && filterSelect.showFilter\" class=\"item\">\r\n                            <div class=\"item-name\">{{ filterSelect.nameFilter }}</div>\r\n                            <div role=\"button\" class=\"item-action remove\" (click)=\"deleteParams(filterSelect)\">\r\n                                <span class=\"material-symbols-outlined\">do_not_disturb_on</span>\r\n                            </div>\r\n                        </div>\r\n                    </ng-container>\r\n                </ng-container>\r\n            </div>\r\n        </div>\r\n\r\n    </div>\r\n    <div class=\"modal-footer\">\r\n        <div class=\"cta-aux\">\r\n            <button matRipple class=\"btn btn-outline-danger\" (click)=\"clearMoreFilter()\">{{informationApi.isLabelsMoreFilter.btnClear}}</button>\r\n        </div>\r\n        <div class=\"ctas\">\r\n            <button matRipple class=\"btn btn-outline-danger\" (click)=\"save(false)\">{{informationApi.isLabelsMoreFilter.btnCancel}}</button>\r\n            <button matRipple class=\"btn btn-primary\" (click)=\"save(true)\">{{informationApi.isLabelsMoreFilter.btnSave}}</button>\r\n        </div>\r\n    </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UiMoreFilterComponent } from './ui-more-filter/ui-more-filter.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    UiMoreFilterComponent\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n    exports: [\r\n      UiMoreFilterComponent\r\n    ]\r\n})\r\nexport class UiMoreFilterModule { }\r\n","/*\r\n * Public API Surface of library-rms\r\n */\r\n\r\nexport * from './lib/library-rms.service';\r\nexport * from './lib/library-rms.component';\r\nexport * from './lib/library-rms.module';\r\nexport * from './ui-header/ui-header.module';\r\nexport * from './ui-header/ui-header/ui-header.component';\r\nexport * from './ui-sidenav/ui-sidenav.module';\r\nexport * from './ui-sidenav/ui-sidenav/ui-sidenav.component';\r\nexport * from './ui-customer/ui-customer.module';\r\nexport * from './ui-customer/ui-customer/ui-customer.component';\r\nexport * from './service/ui-translate.service';\r\nexport * from './ui-rms.module';\r\nexport * from './ui-table/ui-table.module';\r\nexport * from './ui-table/ui-table/ui-table.component';\r\nexport * from './ui-table/ui-table/ui-table-paginator.component';\r\nexport * from './ui-updategrilla/ui-updategrilla.module';\r\nexport * from './ui-updategrilla/ui-updategrilla/ui-updategrilla.component';\r\nexport * from './ui-filter-checkbox/ui-filter-checkbox.module';\r\nexport * from './ui-filter-checkbox/ui-filter-checkbox/ui-filter-checkbox.component';\r\nexport * from './ui-filter-date/ui-filter-date.module';\r\nexport * from './ui-filter-date/ui-filter-date/ui-filter-date.component';\r\nexport * from './ui-filter-input/ui-filter-input.module';\r\nexport * from './ui-filter-input/ui-filter-input/ui-filter-input.component';\r\nexport * from './ui-filter-select/ui-filter-select.module';\r\nexport * from './ui-filter-select/ui-filter-select/ui-filter-select.component';\r\nexport * from './ui-more-filter/ui-more-filter.module';\r\nexport * from './ui-more-filter/ui-more-filter/ui-more-filter.component';\r\nexport * from './ui-multi-purpose-dialog/ui-multi-purpose-dialog.module';\r\nexport * from './ui-multi-purpose-dialog/ui-multi-purpose-dialog/ui-multi-purpose-dialog.component';\r\nexport * from './ui-popup-alert/ui-popup-alert/ui-popup-alert.component';\r\nexport * from './ui-popup-alert/ui-popup-alert/ui-popup-alert.service';\r\nexport * from './ui-popup-alert/ui-popup-alert.module';\r\nexport * from './ui-button/ui-button.module';\r\nexport * from './ui-button/ui-button/ui-button.component';\r\nexport * from './ui-not-found/ui-not-found/ui-not-found.component';\r\nexport * from './ui-not-found/ui-not-found.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UiTranslateService","i2","i3","i4","i1","i1.UIPopupAlertService"],"mappings":"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"}