{"version":3,"file":"fiscal-io-ds-components-apps-menu.mjs","sources":["../../../../projects/fiscal-io/ds-components/src/lib/components/ds-apps-menu/ds-apps-menu.component.ts","../../../../projects/fiscal-io/ds-components/src/lib/components/ds-apps-menu/ds-apps-menu.component.html","../../../../projects/fiscal-io/ds-components/src/fiscal-io-ds-components-apps-menu.ts"],"sourcesContent":["import {\n  Component,\n  input,\n  output,\n  ChangeDetectionStrategy,\n  ViewEncapsulation,\n  inject,\n} from '@angular/core';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\n\nexport interface AppMenuItem {\n  label: string;\n  iconCss?: string;\n  imageSrc?: string;\n  id: string;\n}\n\n@Component({\n  selector: 'ds-apps-menu',\n  imports: [CommonModule, NgOptimizedImage],\n  templateUrl: './ds-apps-menu.component.html',\n  styleUrl: './ds-apps-menu.component.scss',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '(document:keydown.escape)': 'onEscape()',\n  },\n})\nexport class DsAppsMenuComponent {\n  apps = input<AppMenuItem[]>([]);\n  columns = input<number>(3);\n  isOpen = input<boolean>(false);\n  activeAppId = input<string | undefined>(undefined);\n\n  panelLeft = input<number>(0);\n  panelTop = input<number>(0);\n  panelHeight = input<number>(0);\n\n  closed = output<void>();\n  appClick = output<string>();\n\n  onAppClick(app: AppMenuItem) {\n    this.appClick.emit(app.id);\n    this.closed.emit();\n  }\n\n  onOverlayClick() {\n    this.closed.emit();\n  }\n\n  onEscape() {\n    if (this.isOpen()) {\n      this.closed.emit();\n    }\n  }\n}\n","@if (isOpen()) {\n  <div\n    class=\"ds-apps-panel__overlay\"\n    (click)=\"onOverlayClick()\"\n  ></div>\n}\n\n<div\n  class=\"ds-apps-panel__content\"\n  [class.open]=\"isOpen()\"\n  [style.left.px]=\"panelLeft()\"\n  [style.top.px]=\"panelTop()\"\n  [style.max-height.px]=\"panelHeight()\"\n  role=\"dialog\"\n  aria-modal=\"true\"\n  aria-label=\"Aplicativos\"\n>\n  <div class=\"ds-apps-panel__header\">\n    <span class=\"ds-apps-panel__title\">Aplicativos</span>\n  </div>\n\n  <div class=\"ds-apps-panel__grid\" [style.grid-template-columns]=\"'repeat(' + columns() + ', 1fr)'\">\n    @for (app of apps(); track app.id) {\n      <button\n        class=\"ds-apps-panel__item\"\n        [class.active]=\"activeAppId() === app.id\"\n        role=\"menuitem\"\n        type=\"button\"\n        (click)=\"onAppClick(app)\"\n      >\n        <div class=\"ds-apps-panel__item-icon\">\n          @if (app.iconCss) {\n            <span [class]=\"app.iconCss\"></span>\n          } @else if (app.imageSrc) {\n            <img [ngSrc]=\"app.imageSrc\" [alt]=\"app.label\" width=\"24\" height=\"24\" />\n          }\n        </div>\n        <span class=\"ds-apps-panel__item-label\">{{ app.label }}</span>\n      </button>\n    } @empty {\n      <div class=\"p-3 text-center text-secondary\" style=\"grid-column: 1 / -1;\">\n        Nenhum aplicativo\n      </div>\n    }\n  </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './apps-menu';\n"],"names":[],"mappings":"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"}