ngx-sp-infra 6.4.3 → 6.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9686,21 +9686,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
9686
9686
  }] } });
9687
9687
 
9688
9688
  class SearchInputComponent {
9689
- get items() { return this._items; }
9690
- set items(value) {
9691
- this._items = value;
9692
- this.filteredItems = [...this._items];
9693
- }
9689
+ get menus() { return this._menus; }
9690
+ set menus(value) {
9691
+ this._menus = value;
9692
+ this.filteredMenus = [...this._menus ?? []];
9693
+ }
9694
+ get submenus() { return this._submenus; }
9695
+ set submenus(value) {
9696
+ this._submenus = value;
9697
+ this.filteredSubmenus = [...this._submenus ?? []];
9698
+ }
9699
+ get telas() { return this._telas; }
9700
+ set telas(value) {
9701
+ this._telas = value;
9702
+ this.filteredTelas = [...this._telas ?? []];
9703
+ }
9704
+ // #endregion GETTERS & SETTERS
9694
9705
  // #endregion PUBLIC
9695
9706
  // #endregion ==========> PROPERTIES <==========
9696
9707
  constructor(_router) {
9697
9708
  this._router = _router;
9709
+ // #region ==========> PROPERTIES <==========
9710
+ // #region PRIVATE
9711
+ this._menus = [];
9712
+ this._submenus = [];
9713
+ this._telas = [];
9698
9714
  // #endregion PRIVATE
9699
9715
  // #region PUBLIC
9700
9716
  this.showIcons = false;
9701
9717
  this.onClose = new EventEmitter();
9702
9718
  this.onSearch = new EventEmitter();
9703
9719
  this.searchQuery = '';
9720
+ this.loading = false;
9721
+ // #region GETTERS & SETTERS
9722
+ this.filteredTelas = [];
9723
+ this.filteredSubmenus = [];
9724
+ this.filteredMenus = [];
9704
9725
  }
9705
9726
  ngOnInit() {
9706
9727
  //
@@ -9710,12 +9731,6 @@ class SearchInputComponent {
9710
9731
  }
9711
9732
  // #region ==========> UTILS <==========
9712
9733
  onKeydown(event) {
9713
- // if (event.ctrlKey && event.key === 'p') {
9714
- // event.preventDefault();
9715
- // this.isVisible = !this.isVisible;
9716
- // if (this.isVisible) setTimeout(() => this.focusInput(), 0);
9717
- // else this.resetSearch();
9718
- // }
9719
9734
  if (event.key === 'Escape') {
9720
9735
  this.close();
9721
9736
  }
@@ -9723,6 +9738,18 @@ class SearchInputComponent {
9723
9738
  navigateTo(route) {
9724
9739
  this._router.navigate([route]).then(() => this.close());
9725
9740
  }
9741
+ redirect(item) {
9742
+ if (item.RotaV6 && item.RotaV6 !== '') {
9743
+ this._router.navigate([item.RotaV6]).then(() => this.close());
9744
+ }
9745
+ else {
9746
+ const hostname = window.location.host.includes("localhost") ? "siscandesv6.sispro.com.br" : window.location.host;
9747
+ const baseURL = `https://${hostname}/SisproErpCloud`;
9748
+ // Se a RotaOS começar com '/', não adiciona outra '/'
9749
+ const targetRoute = `${baseURL}${item.RotaOS[0] === '/' ? '' : '/'}${item.RotaOS}`;
9750
+ window.location.replace(targetRoute);
9751
+ }
9752
+ }
9726
9753
  highlightList(pesquisa) {
9727
9754
  const list = document.querySelector('.options-list')?.querySelectorAll('li');
9728
9755
  const regex = new RegExp(escapeRegExp(pesquisa), 'ig');
@@ -9754,7 +9781,7 @@ class SearchInputComponent {
9754
9781
  this.searchInput.nativeElement.focus();
9755
9782
  }
9756
9783
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SearchInputComponent, deps: [{ token: i1$3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
9757
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: SearchInputComponent, isStandalone: true, selector: "lib-search-input, lib-pesquisa-global", inputs: { showIcons: "showIcons" }, outputs: { onClose: "onClose", onSearch: "onSearch" }, host: { listeners: { "document:keydown": "onKeydown($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<div class=\"search-overlay position-fixed w-100 h-100 d-flex flex-column align-items-center pt-3\">\n <div class=\"search-wrapper d-flex flex-column align-items-center w-100\" style=\"--max-width: 800px\">\n <div class=\"search-container w-100 bg-light d-flex flex-column align-items-start p-3 rounded\">\n <h6>\n <p class=\"fw-bold mb-0\"> Pesquisa global de telas entre os produtos adquiridos </p>\n <span class=\"text-muted fw-bold fst-italic\" style=\"font-size: 12px;\">(para fechar clique no bot\u00E3o ao lado ou aperte ESC)</span>\n </h6>\n\n <div class=\"input-group\">\n <span class=\"input-group-text\" id=\"addon-wrapping\"> <lib-icon iconName=\"p-lupa\" iconSize=\"medium-small\" /> </span>\n <input #searchInput type=\"text\" class=\"form-control\" [(ngModel)]=\"searchQuery\" placeholder=\"Pesquise pelo nome da tela\"\n (input)=\"search()\" />\n <button (click)=\"resetSearch()\" class=\"btn btn-outline-primary\" tooltip=\"Limpar\" > <lib-icon iconName=\"p-lixeira\" iconSize=\"medium-small\" /> </button>\n <button (click)=\"close()\" class=\"btn btn-outline-primary\" tooltip=\"Fechar\" > <lib-icon iconName=\"p-fechar\" iconSize=\"medium-small\" /> </button>\n </div>\n </div>\n\n <div class=\"search-results bg-light p-2 rounded mt-3 w-100\" [class]=\"!filteredItems ? 'text-center' : ''\" >\n\n @defer (when filteredItems) {\n <div class=\"scrollable-content overflow-y-auto rounded\" style=\"--max-scrollable-height: 500px\">\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (item of filteredItems; track item.modulo+item.label) {\n <li (click)=\"navigateTo(item.route)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (item.icon) { <lib-icon class=\"text-primary\" [iconName]=\"item.icon\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ item.modulo ? item.modulo : '' }} </span>\n\n @if (item.menu) {\n <span class=\"fw-bold text-primary menu\">\n / @if (showIcons) { <lib-icon iconName=\"p-menu-hamburguer\" iconSize=\"small\" /> } {{ item.menu }}\n </span>\n }\n\n @if (item.submenu) {\n <span class=\"fw-bold text-primary submenu\">\n / @if (showIcons) { <lib-icon iconName=\"p-link\" iconSize=\"small\" /> } {{ item.submenu }}\n </span>\n }\n\n <span class=\"tela\"> {{ item.label }} </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhuma tela encontrada com este nome </li>\n }\n </ul>\n </div>\n }\n @placeholder {\n <lib-spinner />\n }\n\n </div>\n </div>\n</div>\n", styles: [".search-overlay{top:0;left:0;background-color:#00000080;z-index:9999}.search-overlay .search-wrapper{max-width:var(--max-width)}.search-overlay .search-wrapper .search-container{box-shadow:0 4px 8px #0003}.search-overlay .search-wrapper .search-results{box-shadow:0 4px 8px #0003;max-width:var(--max-width)}.search-overlay .search-wrapper .search-results .scrollable-content{max-height:var(--max-scrollable-height)}.search-overlay .search-wrapper .search-results .scrollable-content::-webkit-scrollbar{width:4px;background:transparent}.search-overlay .search-wrapper .search-results .scrollable-content::-webkit-scrollbar-thumb{background-color:#636363;border-radius:16px}.search-overlay .search-wrapper .search-results .scrollable-content .options-list{list-style-type:none}.search-overlay .search-wrapper .search-results .scrollable-content .options-list .option{transition:all .2s ease}.search-overlay .search-wrapper .search-results .scrollable-content .options-list .option:hover{background-color:#e5e5e5}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1$4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: LibSpinnerComponent, selector: "lib-spinner", inputs: ["type", "theme", "size", "helperText"] }], deferBlockDependencies: [() => [LibIconsComponent]] }); }
9784
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: SearchInputComponent, isStandalone: true, selector: "lib-search-input, lib-pesquisa-global", inputs: { showIcons: "showIcons" }, outputs: { onClose: "onClose", onSearch: "onSearch" }, host: { listeners: { "document:keydown": "onKeydown($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<div class=\"search-overlay position-fixed w-100 h-100 d-flex flex-column align-items-center pt-3\">\n <div class=\"search-wrapper d-flex flex-column align-items-center w-100\" style=\"--max-width: 800px\">\n <div class=\"search-container w-100 bg-light d-flex flex-column align-items-start p-3 rounded\">\n <h6>\n <p class=\"fw-bold mb-0\"> Pesquisa global de telas entre os produtos adquiridos </p>\n <span class=\"text-muted fw-bold fst-italic\" style=\"font-size: 12px;\">(para fechar clique no bot\u00E3o ao lado ou aperte ESC)</span>\n </h6>\n\n <div class=\"input-group\">\n <span class=\"input-group-text d-flex align-items-center justify-content-center\" id=\"addon-wrapping\">\n\n @if (loading) { <lib-spinner [size]=\"20\" /> }\n @else { <lib-icon iconName=\"p-lupa\" [iconSize]=\"24\" /> }\n\n </span>\n <input #searchInput type=\"text\" class=\"form-control\" [(ngModel)]=\"searchQuery\" placeholder=\"Pesquise pelo nome da tela\"\n (input)=\"search()\" />\n <button (click)=\"resetSearch()\" class=\"btn btn-outline-primary\" tooltip=\"Limpar\" > <lib-icon iconName=\"p-lixeira\" iconSize=\"medium-small\" /> </button>\n <button (click)=\"close()\" class=\"btn btn-outline-primary\" tooltip=\"Fechar\" > <lib-icon iconName=\"p-fechar\" iconSize=\"medium-small\" /> </button>\n </div>\n <span class=\"text-muted fw-bold fst-italic\" style=\"font-size: 12px;\">Digite pelo menos 3 caracteres para pesquisar...</span>\n </div>\n\n <div class=\"search-results bg-light p-3 rounded mt-3 w-100\"\n [class]=\"(!filteredMenus || !filteredSubmenus || !filteredTelas) ? 'text-center' : ''\" >\n\n @defer (when filteredMenus || filteredSubmenus || filteredTelas) {\n <div class=\"scrollable-content d-flex flex-column gap-4 overflow-y-auto rounded\" style=\"--max-scrollable-height: 650px\">\n\n <div id=\"menus\">\n <h6 class=\"fw-bold\">Menus</h6>\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (menu of filteredMenus; track menu.Projeto+menu.Titulo) {\n <li (click)=\"redirect(menu)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (menu.ProjetoIcone) { <lib-icon class=\"text-primary\" [iconName]=\"menu.ProjetoIcone\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ menu.Projeto }} </span>\n\n <span class=\"fw-bold\">\n / {{ menu.Titulo }}\n </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhum menu encontrado com este nome </li>\n }\n </ul>\n </div>\n\n <div id=\"submenus\">\n <h6 class=\"fw-bold\">Submenus</h6>\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (submenu of filteredSubmenus; track submenu.Projeto+submenu.Titulo) {\n <li (click)=\"redirect(submenu)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (submenu.ProjetoIcone) { <lib-icon class=\"text-primary\" [iconName]=\"submenu.ProjetoIcone\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ submenu.Projeto }} </span>\n\n <span class=\"fw-bold\">\n / {{ submenu.Titulo }}\n </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhum submenu encontrado com este nome </li>\n }\n </ul>\n </div>\n\n <div id=\"telas\">\n <h6 class=\"fw-bold\">Telas</h6>\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (tela of filteredTelas; track tela.Projeto+tela.Titulo) {\n <li (click)=\"redirect(tela)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (tela.ProjetoIcone) { <lib-icon class=\"text-primary\" [iconName]=\"tela.ProjetoIcone\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ tela.Projeto }} </span>\n\n <span class=\"fw-bold\">\n / {{ tela.Titulo }}\n </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhuma tela encontrada com este nome </li>\n }\n </ul>\n </div>\n\n\n <!-- TELAS DEPRECIADA -->\n <!-- <div id=\"telas\">\n <h6 class=\"fw-bold\">Telas</h6>\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (item of filteredItems; track item.modulo+item.label) {\n <li (click)=\"navigateTo(item.route)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (item.icon) { <lib-icon class=\"text-primary\" [iconName]=\"item.icon\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ item.modulo ? item.modulo : '' }} </span>\n\n @if (item.menu) {\n <span class=\"fw-bold text-primary menu\">\n / @if (showIcons) { <lib-icon iconName=\"p-menu-hamburguer\" iconSize=\"small\" /> } {{ item.menu }}\n </span>\n }\n\n @if (item.submenu) {\n <span class=\"fw-bold text-primary submenu\">\n / @if (showIcons) { <lib-icon iconName=\"p-link\" iconSize=\"small\" /> } {{ item.submenu }}\n </span>\n }\n\n <span class=\"tela\"> {{ item.label }} </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhuma tela encontrada com este nome </li>\n }\n </ul>\n </div> -->\n\n </div>\n }\n @placeholder {\n <lib-spinner />\n }\n\n </div>\n </div>\n</div>\n", styles: [".search-overlay{top:0;left:0;background-color:#00000080;z-index:9999}.search-overlay .search-wrapper{max-width:var(--max-width)}.search-overlay .search-wrapper .search-container{box-shadow:0 4px 8px #0003}.search-overlay .search-wrapper .search-results{box-shadow:0 4px 8px #0003;max-width:var(--max-width)}.search-overlay .search-wrapper .search-results .scrollable-content{max-height:var(--max-scrollable-height)}.search-overlay .search-wrapper .search-results .scrollable-content::-webkit-scrollbar{width:4px;background:transparent}.search-overlay .search-wrapper .search-results .scrollable-content::-webkit-scrollbar-thumb{background-color:#636363;border-radius:16px}.search-overlay .search-wrapper .search-results .scrollable-content .options-list{list-style-type:none}.search-overlay .search-wrapper .search-results .scrollable-content .options-list .option{transition:all .2s ease}.search-overlay .search-wrapper .search-results .scrollable-content .options-list .option:hover{background-color:#e5e5e5}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1$4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: LibSpinnerComponent, selector: "lib-spinner", inputs: ["type", "theme", "size", "helperText"] }], deferBlockDependencies: [() => [LibIconsComponent]] }); }
9758
9785
  }
9759
9786
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SearchInputComponent, decorators: [{
9760
9787
  type: Component,
@@ -9763,7 +9790,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
9763
9790
  LibIconsComponent,
9764
9791
  TooltipModule,
9765
9792
  LibSpinnerComponent
9766
- ], template: "<div class=\"search-overlay position-fixed w-100 h-100 d-flex flex-column align-items-center pt-3\">\n <div class=\"search-wrapper d-flex flex-column align-items-center w-100\" style=\"--max-width: 800px\">\n <div class=\"search-container w-100 bg-light d-flex flex-column align-items-start p-3 rounded\">\n <h6>\n <p class=\"fw-bold mb-0\"> Pesquisa global de telas entre os produtos adquiridos </p>\n <span class=\"text-muted fw-bold fst-italic\" style=\"font-size: 12px;\">(para fechar clique no bot\u00E3o ao lado ou aperte ESC)</span>\n </h6>\n\n <div class=\"input-group\">\n <span class=\"input-group-text\" id=\"addon-wrapping\"> <lib-icon iconName=\"p-lupa\" iconSize=\"medium-small\" /> </span>\n <input #searchInput type=\"text\" class=\"form-control\" [(ngModel)]=\"searchQuery\" placeholder=\"Pesquise pelo nome da tela\"\n (input)=\"search()\" />\n <button (click)=\"resetSearch()\" class=\"btn btn-outline-primary\" tooltip=\"Limpar\" > <lib-icon iconName=\"p-lixeira\" iconSize=\"medium-small\" /> </button>\n <button (click)=\"close()\" class=\"btn btn-outline-primary\" tooltip=\"Fechar\" > <lib-icon iconName=\"p-fechar\" iconSize=\"medium-small\" /> </button>\n </div>\n </div>\n\n <div class=\"search-results bg-light p-2 rounded mt-3 w-100\" [class]=\"!filteredItems ? 'text-center' : ''\" >\n\n @defer (when filteredItems) {\n <div class=\"scrollable-content overflow-y-auto rounded\" style=\"--max-scrollable-height: 500px\">\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (item of filteredItems; track item.modulo+item.label) {\n <li (click)=\"navigateTo(item.route)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (item.icon) { <lib-icon class=\"text-primary\" [iconName]=\"item.icon\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ item.modulo ? item.modulo : '' }} </span>\n\n @if (item.menu) {\n <span class=\"fw-bold text-primary menu\">\n / @if (showIcons) { <lib-icon iconName=\"p-menu-hamburguer\" iconSize=\"small\" /> } {{ item.menu }}\n </span>\n }\n\n @if (item.submenu) {\n <span class=\"fw-bold text-primary submenu\">\n / @if (showIcons) { <lib-icon iconName=\"p-link\" iconSize=\"small\" /> } {{ item.submenu }}\n </span>\n }\n\n <span class=\"tela\"> {{ item.label }} </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhuma tela encontrada com este nome </li>\n }\n </ul>\n </div>\n }\n @placeholder {\n <lib-spinner />\n }\n\n </div>\n </div>\n</div>\n", styles: [".search-overlay{top:0;left:0;background-color:#00000080;z-index:9999}.search-overlay .search-wrapper{max-width:var(--max-width)}.search-overlay .search-wrapper .search-container{box-shadow:0 4px 8px #0003}.search-overlay .search-wrapper .search-results{box-shadow:0 4px 8px #0003;max-width:var(--max-width)}.search-overlay .search-wrapper .search-results .scrollable-content{max-height:var(--max-scrollable-height)}.search-overlay .search-wrapper .search-results .scrollable-content::-webkit-scrollbar{width:4px;background:transparent}.search-overlay .search-wrapper .search-results .scrollable-content::-webkit-scrollbar-thumb{background-color:#636363;border-radius:16px}.search-overlay .search-wrapper .search-results .scrollable-content .options-list{list-style-type:none}.search-overlay .search-wrapper .search-results .scrollable-content .options-list .option{transition:all .2s ease}.search-overlay .search-wrapper .search-results .scrollable-content .options-list .option:hover{background-color:#e5e5e5}\n"] }]
9793
+ ], template: "<div class=\"search-overlay position-fixed w-100 h-100 d-flex flex-column align-items-center pt-3\">\n <div class=\"search-wrapper d-flex flex-column align-items-center w-100\" style=\"--max-width: 800px\">\n <div class=\"search-container w-100 bg-light d-flex flex-column align-items-start p-3 rounded\">\n <h6>\n <p class=\"fw-bold mb-0\"> Pesquisa global de telas entre os produtos adquiridos </p>\n <span class=\"text-muted fw-bold fst-italic\" style=\"font-size: 12px;\">(para fechar clique no bot\u00E3o ao lado ou aperte ESC)</span>\n </h6>\n\n <div class=\"input-group\">\n <span class=\"input-group-text d-flex align-items-center justify-content-center\" id=\"addon-wrapping\">\n\n @if (loading) { <lib-spinner [size]=\"20\" /> }\n @else { <lib-icon iconName=\"p-lupa\" [iconSize]=\"24\" /> }\n\n </span>\n <input #searchInput type=\"text\" class=\"form-control\" [(ngModel)]=\"searchQuery\" placeholder=\"Pesquise pelo nome da tela\"\n (input)=\"search()\" />\n <button (click)=\"resetSearch()\" class=\"btn btn-outline-primary\" tooltip=\"Limpar\" > <lib-icon iconName=\"p-lixeira\" iconSize=\"medium-small\" /> </button>\n <button (click)=\"close()\" class=\"btn btn-outline-primary\" tooltip=\"Fechar\" > <lib-icon iconName=\"p-fechar\" iconSize=\"medium-small\" /> </button>\n </div>\n <span class=\"text-muted fw-bold fst-italic\" style=\"font-size: 12px;\">Digite pelo menos 3 caracteres para pesquisar...</span>\n </div>\n\n <div class=\"search-results bg-light p-3 rounded mt-3 w-100\"\n [class]=\"(!filteredMenus || !filteredSubmenus || !filteredTelas) ? 'text-center' : ''\" >\n\n @defer (when filteredMenus || filteredSubmenus || filteredTelas) {\n <div class=\"scrollable-content d-flex flex-column gap-4 overflow-y-auto rounded\" style=\"--max-scrollable-height: 650px\">\n\n <div id=\"menus\">\n <h6 class=\"fw-bold\">Menus</h6>\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (menu of filteredMenus; track menu.Projeto+menu.Titulo) {\n <li (click)=\"redirect(menu)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (menu.ProjetoIcone) { <lib-icon class=\"text-primary\" [iconName]=\"menu.ProjetoIcone\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ menu.Projeto }} </span>\n\n <span class=\"fw-bold\">\n / {{ menu.Titulo }}\n </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhum menu encontrado com este nome </li>\n }\n </ul>\n </div>\n\n <div id=\"submenus\">\n <h6 class=\"fw-bold\">Submenus</h6>\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (submenu of filteredSubmenus; track submenu.Projeto+submenu.Titulo) {\n <li (click)=\"redirect(submenu)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (submenu.ProjetoIcone) { <lib-icon class=\"text-primary\" [iconName]=\"submenu.ProjetoIcone\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ submenu.Projeto }} </span>\n\n <span class=\"fw-bold\">\n / {{ submenu.Titulo }}\n </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhum submenu encontrado com este nome </li>\n }\n </ul>\n </div>\n\n <div id=\"telas\">\n <h6 class=\"fw-bold\">Telas</h6>\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (tela of filteredTelas; track tela.Projeto+tela.Titulo) {\n <li (click)=\"redirect(tela)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (tela.ProjetoIcone) { <lib-icon class=\"text-primary\" [iconName]=\"tela.ProjetoIcone\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ tela.Projeto }} </span>\n\n <span class=\"fw-bold\">\n / {{ tela.Titulo }}\n </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhuma tela encontrada com este nome </li>\n }\n </ul>\n </div>\n\n\n <!-- TELAS DEPRECIADA -->\n <!-- <div id=\"telas\">\n <h6 class=\"fw-bold\">Telas</h6>\n <ul class=\"options-list d-flex flex-column gap-2 p-0 m-0\">\n @for (item of filteredItems; track item.modulo+item.label) {\n <li (click)=\"navigateTo(item.route)\" class=\"glb-cursor-pointer option py-1 px-2 rounded border d-flex align-items-center gap-2\">\n @if (item.icon) { <lib-icon class=\"text-primary\" [iconName]=\"item.icon\" iconSize=\"medium-small\" /> }\n <span class=\"fw-bold text-primary\"> {{ item.modulo ? item.modulo : '' }} </span>\n\n @if (item.menu) {\n <span class=\"fw-bold text-primary menu\">\n / @if (showIcons) { <lib-icon iconName=\"p-menu-hamburguer\" iconSize=\"small\" /> } {{ item.menu }}\n </span>\n }\n\n @if (item.submenu) {\n <span class=\"fw-bold text-primary submenu\">\n / @if (showIcons) { <lib-icon iconName=\"p-link\" iconSize=\"small\" /> } {{ item.submenu }}\n </span>\n }\n\n <span class=\"tela\"> {{ item.label }} </span>\n </li>\n }\n @empty {\n <li class=\"list-group-item\"> Nenhuma tela encontrada com este nome </li>\n }\n </ul>\n </div> -->\n\n </div>\n }\n @placeholder {\n <lib-spinner />\n }\n\n </div>\n </div>\n</div>\n", styles: [".search-overlay{top:0;left:0;background-color:#00000080;z-index:9999}.search-overlay .search-wrapper{max-width:var(--max-width)}.search-overlay .search-wrapper .search-container{box-shadow:0 4px 8px #0003}.search-overlay .search-wrapper .search-results{box-shadow:0 4px 8px #0003;max-width:var(--max-width)}.search-overlay .search-wrapper .search-results .scrollable-content{max-height:var(--max-scrollable-height)}.search-overlay .search-wrapper .search-results .scrollable-content::-webkit-scrollbar{width:4px;background:transparent}.search-overlay .search-wrapper .search-results .scrollable-content::-webkit-scrollbar-thumb{background-color:#636363;border-radius:16px}.search-overlay .search-wrapper .search-results .scrollable-content .options-list{list-style-type:none}.search-overlay .search-wrapper .search-results .scrollable-content .options-list .option{transition:all .2s ease}.search-overlay .search-wrapper .search-results .scrollable-content .options-list .option:hover{background-color:#e5e5e5}\n"] }]
9767
9794
  }], ctorParameters: () => [{ type: i1$3.Router }], propDecorators: { showIcons: [{
9768
9795
  type: Input
9769
9796
  }], onClose: [{
@@ -11495,6 +11522,14 @@ class NavigationOptions {
11495
11522
  }
11496
11523
  }
11497
11524
 
11525
+ class MenuSubmenuTela {
11526
+ constructor() {
11527
+ this.Menus = [];
11528
+ this.Submenus = [];
11529
+ this.Telas = [];
11530
+ }
11531
+ }
11532
+
11498
11533
  /**
11499
11534
  * @description
11500
11535
  *
@@ -11925,5 +11960,5 @@ class TreeItem {
11925
11960
  * Generated bundle index. Do not edit.
11926
11961
  */
11927
11962
 
11928
- export { A11yClickDirective, AlertComponent, AppliedFiltersComponent, AuditoriaButtonComponent, BasicFilters, BreadcrumbComponent, CheckUrlAndMethodService, ClickOutsideDirective, ComboboxComponent, ComboboxMultipleChoiceComponent, ConfirmComponent, ConfirmModalComponent, ContadorCaracteresComponent, ContainerTabsModel, ContentContainerComponent, CopyClipboardDirective, CpfCnpjPipe, CpfCnpjValidator, CpfCnpjValidatorDirective, CurrencyPipe, CustomAcordionComponent, CustomFormControl, DecimalCommaPipe, DialogCropperComponent, DisableControlDirective, DownloadArquivos, DropdownOptionsComponent, DynamicInputComponent, EmailAnexoRecord, EmailModel, EmpresaAbasComponent, EnderecoByCep, EstabelecimentoAbasComponent, FieldContadorMessageComponent, FieldControlErrorComponent, FieldErrorMessageComponent, FileModel, FileService, FilterByPipe, FilterMultipleChoicePipe, FiltrosAplicadosModel, FiltrosAplicadosService, FooterComponent, FormUtils, FormatByTypePipe, GenericModalComponent, GlobalLoadingService, GrupoContabilAbasComponent, HighlightDirective, IconsList, ImageCropperComponent, InfraBreadcrumbComponent, InfraBreadcrumbItemComponent, InfraEstabelecimentoFavoritoDefault, InfraModule, InfraSegConfig, InfraSegConfigRecord, InnerListComponent, InnerRowsDirective, InputTrimComponent, IpServiceService, ItemsAbasComponent, LibComboboxComponent, LibComboboxReworkComponent, LibCustomizableTableComponent, LibDateRangePickerComponent, LibDirectivesModule, LibHeaderComponent, LibIconsComponent, LibNavProdutosComponent, LibPipesModule, LibSimplifiedTableComponent, LibSpinnerComponent, LibTransferListComponent, LibWidgetsModule, LimitToPipe, LoadingBtnDirective, LoadingButtonComponent, LoadingComponent, LoadingScreenComponent, MessageService, ModalUtilsService, MultiStatusList, NavItem, NavProdutosComponent, NavigationOptions, OrderSortPipe, OrderingComponent, PageNotAuthorizedComponent, PaginationComponent, Params, PasswordPolicyComponent, PessoaAbasComponent, PhoneFormatPipe, RecordCombobox, ReportFile, RequiredDirective, RetBoolean, RetCep, RetError, RetEstabelecimentosModal, RetFeedbackMessage, RetInfraSegConfig, RetNumber, RetObjectList, RetRecordCombobox, RetRecordsCombobox, RetReportFile, RetString, RetStringList, RetTree, SaveComponent, SearchComboboxComponent, SearchFiltersComponent, SearchInputComponent, SearchTreePipe, SettingsService, SideTabsGenericComponent, SimpleSearchComponent, TableComponent, TableHeaderIcon, TableHeaderStructure, TableSelectionService, TextFilterPipe, TextTruncateDirective, TitleCasePipe, ToUrlPipe, TransferListConfig, TreeComponent, TreeItem, UsuarioAbasComponent, Utils, alertIds, alertTypes };
11963
+ export { A11yClickDirective, AlertComponent, AppliedFiltersComponent, AuditoriaButtonComponent, BasicFilters, BreadcrumbComponent, CheckUrlAndMethodService, ClickOutsideDirective, ComboboxComponent, ComboboxMultipleChoiceComponent, ConfirmComponent, ConfirmModalComponent, ContadorCaracteresComponent, ContainerTabsModel, ContentContainerComponent, CopyClipboardDirective, CpfCnpjPipe, CpfCnpjValidator, CpfCnpjValidatorDirective, CurrencyPipe, CustomAcordionComponent, CustomFormControl, DecimalCommaPipe, DialogCropperComponent, DisableControlDirective, DownloadArquivos, DropdownOptionsComponent, DynamicInputComponent, EmailAnexoRecord, EmailModel, EmpresaAbasComponent, EnderecoByCep, EstabelecimentoAbasComponent, FieldContadorMessageComponent, FieldControlErrorComponent, FieldErrorMessageComponent, FileModel, FileService, FilterByPipe, FilterMultipleChoicePipe, FiltrosAplicadosModel, FiltrosAplicadosService, FooterComponent, FormUtils, FormatByTypePipe, GenericModalComponent, GlobalLoadingService, GrupoContabilAbasComponent, HighlightDirective, IconsList, ImageCropperComponent, InfraBreadcrumbComponent, InfraBreadcrumbItemComponent, InfraEstabelecimentoFavoritoDefault, InfraModule, InfraSegConfig, InfraSegConfigRecord, InnerListComponent, InnerRowsDirective, InputTrimComponent, IpServiceService, ItemsAbasComponent, LibComboboxComponent, LibComboboxReworkComponent, LibCustomizableTableComponent, LibDateRangePickerComponent, LibDirectivesModule, LibHeaderComponent, LibIconsComponent, LibNavProdutosComponent, LibPipesModule, LibSimplifiedTableComponent, LibSpinnerComponent, LibTransferListComponent, LibWidgetsModule, LimitToPipe, LoadingBtnDirective, LoadingButtonComponent, LoadingComponent, LoadingScreenComponent, MenuSubmenuTela, MessageService, ModalUtilsService, MultiStatusList, NavItem, NavProdutosComponent, NavigationOptions, OrderSortPipe, OrderingComponent, PageNotAuthorizedComponent, PaginationComponent, Params, PasswordPolicyComponent, PessoaAbasComponent, PhoneFormatPipe, RecordCombobox, ReportFile, RequiredDirective, RetBoolean, RetCep, RetError, RetEstabelecimentosModal, RetFeedbackMessage, RetInfraSegConfig, RetNumber, RetObjectList, RetRecordCombobox, RetRecordsCombobox, RetReportFile, RetString, RetStringList, RetTree, SaveComponent, SearchComboboxComponent, SearchFiltersComponent, SearchInputComponent, SearchTreePipe, SettingsService, SideTabsGenericComponent, SimpleSearchComponent, TableComponent, TableHeaderIcon, TableHeaderStructure, TableSelectionService, TextFilterPipe, TextTruncateDirective, TitleCasePipe, ToUrlPipe, TransferListConfig, TreeComponent, TreeItem, UsuarioAbasComponent, Utils, alertIds, alertTypes };
11929
11964
  //# sourceMappingURL=ngx-sp-infra.mjs.map