{"version":3,"file":"sebgroup-green-angular-src-lib-context-menu.mjs","sources":["../../../../libs/angular/src/lib/context-menu/context-menu.component.ts","../../../../libs/angular/src/lib/context-menu/context-menu.component.html","../../../../libs/angular/src/lib/context-menu/context-menu.module.ts","../../../../libs/angular/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.ts"],"sourcesContent":["import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core'\n\nimport { DropdownOption } from '@sebgroup/green-angular/src/lib/dropdown'\nimport { GdsContextMenu } from '@sebgroup/green-core/components/context-menu/context-menu.component.js'\nimport * as ContextMenuTransStyles from '@sebgroup/green-core/components/context-menu/context-menu.trans.styles.js'\n\n/**\n * MenuItems extends DropDown option and adds the posibility to pass a custom template for just one item.\n */\ninterface MenuItems extends DropdownOption {\n  template?: TemplateRef<unknown>\n}\n\n/**\n * @deprecated\n * NggContextMenu is deprecated in favor of GdsContextMenu found in the Core package\n * https://storybook.seb.io/latest/core/?path=/docs/components-context-menu--docs\n */\n@Component({\n    selector: 'ngg-context-menu',\n    templateUrl: './context-menu.component.html',\n    styleUrls: ['context-menu.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    standalone: false\n})\nexport class NggContextMenuComponent {\n  /**\n   * Placement of the popover relative to the anchor element.\n   */\n  @Input() direction: 'ltr' | 'rtl' = 'ltr'\n\n  /**\n   * List of items to be displayed in the context menu.\n   */\n  @Input() menuItems: MenuItems[] = []\n\n  /**\n   * Custom menu item template.\n   */\n  @Input() menuItemTemplate: TemplateRef<unknown> | null = null\n\n  /**\n   * Custom menu trigger template.\n   */\n  @Input() menuAnchorTemplate: TemplateRef<unknown> | null = null\n\n  /**\n   * Emits when a menu item is clicked.\n   */\n  @Output() contextMenuItemClicked: EventEmitter<DropdownOption> =\n    new EventEmitter<DropdownOption>()\n\n  @ViewChild('contextMenuPopover') popover!: ElementRef<HTMLElement>\n  @ViewChild('contextMenuAnchor') anchor!: ElementRef<HTMLElement>\n\n  isActive = false\n\n  constructor(private elementRef: ElementRef<HTMLElement>) {\n    GdsContextMenu.define()\n    ContextMenuTransStyles.register()\n  }\n\n  get placement(): string {\n    return this.direction === 'ltr' ? 'bottom-start' : 'bottom-end'\n  }\n\n  open(): void {\n    if (this.isActive) {\n      this.close()\n      return\n    }\n\n    this.isActive = true\n  }\n\n  close(): void {\n    this.isActive = false\n  }\n\n  onItemClick(item: DropdownOption): void {\n    this.contextMenuItemClicked.emit(item)\n    this.close()\n  }\n}\n","<gds-context-menu\n  *nggCoreElement\n  data-testid=\"context-menu\"\n  [placement]=\"placement\"\n  [open]=\"isActive\"\n>\n  <button class=\"gds-button icon small gds-context-menu-button\" slot=\"trigger\">\n    <ng-container\n      [ngTemplateOutlet]=\"menuAnchorTemplate ?? defaultButtonTemplate\"\n    >\n    </ng-container>\n  </button>\n  <ng-container *ngFor=\"let menuItem of menuItems\">\n    <gds-menu-item *nggCoreElement (click)=\"onItemClick(menuItem)\">\n      <ng-container\n        [ngTemplateOutlet]=\"menuItemTemplate ?? defaultMenuItemTemplate\"\n        [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"\n      >\n      </ng-container>\n    </gds-menu-item>\n  </ng-container>\n</gds-context-menu>\n\n<ng-template #defaultMenuItemTemplate let-menuItem>\n  <span>{{ menuItem.label }}</span>\n</ng-template>\n\n<ng-template #defaultButtonTemplate>\n  <i class=\"gds-icon gds-icon-ellipsis\">Open context menu</i>\n</ng-template>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\n\nimport {\n  NggCoreWrapperModule,\n  SCOPE_RESOLVER,\n} from '@sebgroup/green-angular/src/lib/shared'\nimport { getScopedTagName } from '@sebgroup/green-core/scoping'\nimport { NggContextMenuComponent } from './context-menu.component'\n\n/**\n * @deprecated\n * NggContextMenu is deprecated in favor of GdsContextMenu found in the Core package\n * https://storybook.seb.io/latest/core/?path=/docs/components-context-menu--docs\n */\n@NgModule({\n  declarations: [NggContextMenuComponent],\n  imports: [CommonModule, NggCoreWrapperModule],\n  exports: [NggContextMenuComponent],\n  providers: [\n    {\n      provide: SCOPE_RESOLVER,\n      useValue: { getScopedTagName },\n    },\n  ],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggContextMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}