{"version":3,"file":"sdcorejs-angular-directives.mjs","sources":["../../../projects/sdcorejs-angular/directives/src/sd-scroll.directive.ts","../../../projects/sdcorejs-angular/directives/src/sd-desktop.directive.ts","../../../projects/sdcorejs-angular/directives/src/sd-mobile.directive.ts","../../../projects/sdcorejs-angular/directives/src/sd-hover-copy.directive.ts","../../../projects/sdcorejs-angular/directives/src/sd-href.directive.ts","../../../projects/sdcorejs-angular/directives/src/sd-tooltip.directive.ts","../../../projects/sdcorejs-angular/directives/sdcorejs-angular-directives.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n  selector: '[sdScroll]',\n  standalone: true,\n})\nexport class SdScrollDirective implements OnInit {\n  private elementRef = inject(ElementRef);\n  private renderer = inject(Renderer2);\n\n  #overflowX: 'hidden' | 'auto' | 'overlay' = 'hidden';\n  #overflowY: 'hidden' | 'auto' | 'overlay' = 'auto';\n  @HostListener('mouseover')\n  onMouseOver() {\n    this.#overflowX = 'auto';\n    // this.#overflowY = 'auto';\n    this.renderer.setStyle(this.elementRef.nativeElement, 'overflow-x', this.#overflowX);\n    // this.renderer.setStyle(this.elementRef.nativeElement, 'overflow-y', this.#overflowY);\n  }\n\n  @HostListener('mouseout')\n  onMouseOut() {\n    this.#overflowX = 'hidden';\n    this.renderer.setStyle(this.elementRef.nativeElement, 'overflow-x', this.#overflowX);\n  }\n\n  /** Inserted by Angular inject() migration for backwards compatibility */\n  constructor(...args: unknown[]);\n  constructor() {}\n\n  ngOnInit(): void {\n    this.renderer.setStyle(this.elementRef.nativeElement, '-webkit-transform', 'translate3d(0, 0, 0)');\n    this.renderer.setStyle(this.elementRef.nativeElement, 'overflow-x', this.#overflowX);\n    this.renderer.setStyle(this.elementRef.nativeElement, 'overflow-y', this.#overflowY);\n  }\n\n  scrollTop = () => {\n    setTimeout(() => {\n      if (this.elementRef?.nativeElement) {\n        this.elementRef.nativeElement.scrollTop = 0;\n      }\n    }, 1);\n  };\n}\n","import { Directive, TemplateRef, ViewContainerRef, inject } from '@angular/core';\nimport { BrowserUtilities } from '@sdcorejs/utils/fns';\n\n@Directive({\n  selector: '[sdDesktop]',\n  standalone: true,\n})\nexport class SdDesktopDirective {\n  readonly #templateRef: TemplateRef<Record<string, never>> = inject(TemplateRef);\n  readonly #viewContainerRef = inject(ViewContainerRef);\n\n  constructor() {\n    if (!BrowserUtilities.isMobile()) {\n      this.#viewContainerRef.createEmbeddedView(this.#templateRef);\n    }\n  }\n}\n","import { Directive, TemplateRef, ViewContainerRef, inject } from '@angular/core';\nimport { BrowserUtilities } from '@sdcorejs/utils/fns';\n\n@Directive({\n  selector: '[sdMobile]',\n  standalone: true,\n})\nexport class SdMobileDirective {\n  readonly #templateRef: TemplateRef<Record<string, never>> = inject(TemplateRef);\n  readonly #viewContainerRef = inject(ViewContainerRef);\n\n  constructor() {\n    if (BrowserUtilities.isMobile()) {\n      this.#viewContainerRef.createEmbeddedView(this.#templateRef);\n    }\n  }\n}\n","import { Directive, ElementRef, inject, Renderer2, HostListener, OnInit, OnChanges, SimpleChanges, input } from '@angular/core';\nimport { BrowserUtilities } from '@sdcorejs/utils/fns';\nimport { I18nService } from '@sdcorejs/angular/i18n';\n\n@Directive({\n  selector: '[sdHoverCopy]',\n})\nexport class SdHoverCopyDirective implements OnInit, OnChanges {\n  private el = inject(ElementRef);\n  private renderer = inject(Renderer2);\n\n  readonly copyText = input.required<string>({ alias: 'sdHoverCopy' });\n  readonly sdHoverCopyDisabled = input(false);\n\n  readonly #i18n = inject(I18nService);\n\n  #copyButton: HTMLElement | null = null;\n  #tooltip!: HTMLElement;\n  get #defaultTooltip(): string {\n    return this.#i18n.t('core.directive.hover-copy.tooltip');\n  }\n\n  /** Inserted by Angular inject() migration for backwards compatibility */\n  constructor(...args: unknown[]);\n\n  constructor() {}\n\n  // https://onemount.atlassian.net/browse/SM-2287\n  // Hiện tại khi sdHoverCopyDisabled = true, directive chỉ dùng opacity: 0 và pointerEvents: 'none' để ẩn nút, nhưng điều này không hoàn toàn ngăn chặn được việc click trong một số trường hợp.\n  // Giải pháp: Remove khỏi DOM nếu column không được enable\n  ngOnInit(): void {\n    if (!this.sdHoverCopyDisabled()) {\n      this.#createAndAppendCopyButton();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['sdHoverCopyDisabled']) {\n      if (!this.sdHoverCopyDisabled()) {\n        // Enable - create and show button if not exists\n        if (!this.#copyButton) {\n          this.#createAndAppendCopyButton();\n        }\n      } else {\n        // Disable - remove button from DOM\n        this.#removeCopyButton();\n      }\n    }\n  }\n\n  #createAndAppendCopyButton(): void {\n    const parent = this.el.nativeElement;\n    this.renderer.setStyle(parent, 'position', 'relative');\n\n    // Create button\n    this.#copyButton = this.renderer.createElement('button');\n    this.renderer.setStyle(this.#copyButton, 'position', 'absolute');\n    this.renderer.setStyle(this.#copyButton, 'top', '50%');\n    this.renderer.setStyle(this.#copyButton, 'transform', 'translateY(-50%)');\n    this.renderer.setStyle(this.#copyButton, 'right', '4px');\n    this.renderer.setStyle(this.#copyButton, 'display', 'none');\n    this.renderer.setStyle(this.#copyButton, 'z-index', '10');\n    this.renderer.setStyle(this.#copyButton, 'background', 'transparent');\n    this.renderer.setStyle(this.#copyButton, 'border', 'none');\n    this.renderer.setStyle(this.#copyButton, 'cursor', 'pointer');\n    this.renderer.setStyle(this.#copyButton, 'padding', '1px');\n    this.renderer.setStyle(this.#copyButton, 'border-radius', '3px');\n    this.renderer.setStyle(this.#copyButton, 'padding', '5px');\n    this.renderer.setStyle(this.#copyButton, 'line-height', '1');\n    this.renderer.setStyle(this.#copyButton, 'background-color', 'var(--sd-surface-muted)');\n\n    // Add inline SVG icon\n    const svg = this.renderer.createElement('svg', 'svg');\n    this.renderer.addClass(svg, 'text-secondary');\n    this.renderer.setAttribute(svg, 'width', '14');\n    this.renderer.setAttribute(svg, 'height', '14');\n    this.renderer.setAttribute(svg, 'viewBox', '0 0 24 24');\n    this.renderer.setAttribute(svg, 'fill', 'none');\n    this.renderer.setAttribute(svg, 'xmlns', 'http://www.w3.org/2000/svg');\n\n    const path = this.renderer.createElement('path', 'svg');\n    this.renderer.setAttribute(\n      path,\n      'd',\n      'M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM20 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H20C21.1 23 22 22.1 22 21V7C22 5.9 21.1 5 20 5ZM20 21H8V7H20V21Z'\n    );\n    this.renderer.setAttribute(path, 'fill', 'currentColor');\n    this.renderer.appendChild(svg, path);\n    this.renderer.appendChild(this.#copyButton, svg);\n\n    // Tooltip\n    this.#tooltip = this.renderer.createElement('span');\n    this.renderer.setProperty(this.#tooltip, 'innerText', this.#defaultTooltip);\n    this.renderer.setStyle(this.#tooltip, 'position', 'absolute');\n    this.renderer.setStyle(this.#tooltip, 'bottom', '100%');\n    this.renderer.setStyle(this.#tooltip, 'left', '50%');\n    this.renderer.setStyle(this.#tooltip, 'transform', 'translateX(-50%)');\n    this.renderer.setStyle(this.#tooltip, 'marginBottom', '4px');\n    this.renderer.setStyle(this.#tooltip, 'background', '#333');\n    this.renderer.setStyle(this.#tooltip, 'color', '#fff');\n    this.renderer.setStyle(this.#tooltip, 'padding', '2px 6px');\n    this.renderer.setStyle(this.#tooltip, 'borderRadius', '4px');\n    this.renderer.setStyle(this.#tooltip, 'fontSize', '12px');\n    this.renderer.setStyle(this.#tooltip, 'whiteSpace', 'nowrap');\n    this.renderer.setStyle(this.#tooltip, 'opacity', '0');\n    this.renderer.setStyle(this.#tooltip, 'transition', 'opacity 0.2s');\n    this.renderer.setStyle(this.#tooltip, 'pointerEvents', 'none');\n    this.renderer.setStyle(this.#tooltip, 'userSelect', 'none');\n\n    this.renderer.appendChild(this.#copyButton, this.#tooltip);\n    this.renderer.appendChild(parent, this.#copyButton);\n\n    // Listen click\n    this.renderer.listen(this.#copyButton, 'click', () => {\n      const copyText = this.copyText();\n      if (copyText && !this.sdHoverCopyDisabled()) {\n        BrowserUtilities.copyToClipboard(String(copyText));\n        this.#showTooltip('Copied');\n        setTimeout(() => this.#hideTooltip(), 1000);\n      }\n    });\n  }\n\n  #removeCopyButton(): void {\n    if (this.#copyButton) {\n      this.renderer.removeChild(this.el.nativeElement, this.#copyButton);\n      this.#copyButton = null;\n    }\n  }\n\n  #showTooltip(message: string) {\n    this.renderer.setProperty(this.#tooltip, 'innerText', message);\n    this.renderer.setStyle(this.#tooltip, 'opacity', '1');\n  }\n\n  #hideTooltip() {\n    this.renderer.setProperty(this.#tooltip, 'innerText', this.#defaultTooltip);\n    this.renderer.setStyle(this.#tooltip, 'opacity', '0');\n  }\n\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    if (!this.sdHoverCopyDisabled() && this.#copyButton) {\n      this.renderer.setStyle(this.#copyButton, 'display', 'block');\n    }\n  }\n\n  @HostListener('mouseleave')\n  onMouseLeave() {\n    if (this.#copyButton) {\n      this.renderer.setStyle(this.#copyButton, 'display', 'none');\n      this.#hideTooltip();\n    }\n  }\n}\n","import { Directive, HostBinding, HostListener, inject, input } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Directive({\n  selector: 'a[sdHref]',\n  standalone: true,\n})\nexport class SdHrefDirective {\n  readonly #router = inject(Router);\n  // Nhận vào url đã được xử lý (từ Pipe của bạn)\n  readonly url = input.required<string>({ alias: 'sdHref' });\n  // Tự động bind giá trị url vào thuộc tính href của thẻ <a>\n  @HostBinding('attr.href') get href() {\n    return this.url() || 'javascript:;';\n  }\n\n  @HostListener('click', ['$event'])\n  onClick(event: Event) {\n    const url = this.url();\n    if (!url) return;\n    if (url.startsWith('http')) {\n      // Nếu là link ngoài -> Mở tab mới và ngăn chặn hành vi mặc định của thẻ a (để không chuyển trang hiện tại)\n      window.open(url, '_blank');\n      event.preventDefault();\n    } else {\n      // Nếu là link nội bộ -> Ngăn chặn full-page reload, dùng Angular Router để điều hướng\n      event.preventDefault();\n      const [path, queryString] = url.split('?');\n      // Bạn có thể dùng hàm SdUtilities.parseQueryParams của bạn ở đây,\n      // hoặc dùng cách native URLSearchParams như sau:\n      const params = new URLSearchParams(queryString || '');\n      const queryParams: Record<string, string> = {};\n      params.forEach((value, key) => (queryParams[key] = value));\n      this.#router.navigate([path], { queryParams });\n    }\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  HostListener,\n  TemplateRef,\n  ViewContainerRef,\n  inject,\n  input,\n  DestroyRef,\n  ComponentRef,\n  Component,\n  ChangeDetectorRef,\n  computed,\n} from '@angular/core';\nimport { Overlay, OverlayRef, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n// Component dùng để instance cho overlay\n@Component({\n  selector: 'sd-tooltip-container',\n  standalone: true,\n  imports: [NgTemplateOutlet],\n  template: `\n    <div class=\"c-sd-tooltip-container\" [style.background-color]=\"color()\">\n      @if (isTemplate()) {\n        <ng-container [ngTemplateOutlet]=\"templateContent()\"></ng-container>\n      } @else {\n        <span class=\"c-sd-tooltip-text\">{{ textContent() }}</span>\n      }\n    </div>\n  `,\n  styles: [\n    `\n      .c-sd-tooltip-container {\n        padding: 6px 8px;\n        border-radius: 4px;\n        color: white;\n        font-size: 12px;\n        font-family: Roboto, 'Helvetica Neue', sans-serif;\n        box-shadow:\n          0 2px 4px -1px #0003,\n          0 4px 5px #00000024,\n          0 1px 10px #0000001f;\n        max-width: 250px;\n        word-wrap: break-word;\n        pointer-events: auto;\n        user-select: text;\n      }\n    `,\n  ],\n  host: {\n    '(mouseenter)': 'onMouseEnter()',\n    '(mouseleave)': 'onMouseLeave()',\n  },\n})\nclass SdTooltipComponent {\n  private cdr = inject(ChangeDetectorRef);\n\n  content = input.required<string | TemplateRef<any>>();\n  color = input<string>('#616161');\n\n  isTemplate = computed(() => this.content() instanceof TemplateRef);\n  templateContent = computed(() => (this.isTemplate() ? (this.content() as TemplateRef<any>) : null));\n  textContent = computed(() => (!this.isTemplate() ? (this.content() as string) : ''));\n  onMouseEnterCb?: () => void;\n  onMouseLeaveCb?: () => void;\n\n  onMouseEnter() {\n    this.onMouseEnterCb?.();\n  }\n\n  onMouseLeave() {\n    this.onMouseLeaveCb?.();\n  }\n\n  triggerChangeDetection() {\n    this.cdr.detectChanges();\n  }\n}\n// End\n\n// Directive\n@Directive({\n  selector: '[sdTooltip]',\n  standalone: true,\n})\nexport class SdTooltipDirective {\n  content = input.required<string | TemplateRef<any>>({ alias: 'sdTooltip' });\n  sdTooltipPosition = input<TooltipPosition>('bottom');\n  sdTooltipDelay = input<number>(100);\n  sdTooltipColor = input<string>('#616161');\n\n  private static activeTooltip: SdTooltipDirective | null = null;\n\n  private readonly elementRef = inject(ElementRef);\n  private readonly overlay = inject(Overlay);\n  private readonly viewContainerRef = inject(ViewContainerRef);\n  private readonly destroyRef = inject(DestroyRef);\n\n  private overlayRef: OverlayRef | null = null;\n  private tooltipComponentRef: ComponentRef<SdTooltipComponent> | null = null;\n  private tooltipInstance: SdTooltipComponent | null = null;\n\n  private showTimeout: ReturnType<typeof setTimeout> | undefined;\n  private hideTimeout: ReturnType<typeof setTimeout> | undefined;\n\n  constructor() {\n    this.destroyRef.onDestroy(() => {\n      this.#cleanup();\n    });\n  }\n\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    if (SdTooltipDirective.activeTooltip && SdTooltipDirective.activeTooltip !== this) {\n      SdTooltipDirective.activeTooltip.forceHide();\n    }\n    SdTooltipDirective.activeTooltip = this;\n\n    this.#clearTimeouts();\n    this.showTimeout = setTimeout(() => {\n      this.#show();\n    }, this.sdTooltipDelay());\n  }\n\n  @HostListener('mouseleave')\n  onMouseLeave() {\n    this.#clearTimeouts();\n    this.hideTimeout = setTimeout(() => {\n      this.#hide();\n    }, 300);\n  }\n\n  forceHide = (): void => {\n    this.#clearTimeouts();\n    this.#hide();\n  };\n\n  #show = (): void => {\n    const currentContent = this.content();\n\n    if (!currentContent) return;\n\n    if (!this.overlayRef) {\n      this.#createOverlay();\n    }\n\n    if (this.overlayRef && !this.overlayRef.hasAttached()) {\n      const portal = new ComponentPortal(SdTooltipComponent, this.viewContainerRef);\n      this.tooltipComponentRef = this.overlayRef.attach(portal);\n      this.tooltipInstance = this.tooltipComponentRef.instance;\n\n      this.#setupTooltipInstance();\n    }\n\n    if (this.tooltipComponentRef && this.tooltipInstance) {\n      this.tooltipComponentRef.setInput('content', currentContent);\n      this.tooltipComponentRef.setInput('color', this.sdTooltipColor());\n      this.tooltipInstance.triggerChangeDetection();\n    }\n  };\n\n  #hide = (): void => {\n    if (this.tooltipInstance && this.overlayRef?.hasAttached()) {\n      this.overlayRef.detach();\n      this.tooltipInstance = null;\n      this.tooltipComponentRef = null;\n    }\n  };\n\n  #createOverlay = (): void => {\n    const positionStrategy = this.overlay\n      .position()\n      .flexibleConnectedTo(this.elementRef)\n      .withPositions(this.#getPositions())\n      .withViewportMargin(8)\n      .withPush(false);\n\n    this.overlayRef = this.overlay.create({\n      positionStrategy,\n      scrollStrategy: this.overlay.scrollStrategies.close(),\n      panelClass: 'c-sd-tooltip-panel',\n    });\n  };\n\n  #setupTooltipInstance = (): void => {\n    if (!this.tooltipInstance) return;\n\n    this.tooltipInstance.onMouseEnterCb = () => {\n      clearTimeout(this.hideTimeout);\n    };\n\n    this.tooltipInstance.onMouseLeaveCb = () => {\n      this.hideTimeout = setTimeout(() => {\n        this.#hide();\n      }, 200);\n    };\n  };\n\n  #clearTimeouts = (): void => {\n    clearTimeout(this.showTimeout);\n    clearTimeout(this.hideTimeout);\n  };\n\n  #cleanup = (): void => {\n    this.#clearTimeouts();\n\n    if (SdTooltipDirective.activeTooltip === this) {\n      SdTooltipDirective.activeTooltip = null;\n    }\n\n    if (this.overlayRef) {\n      this.overlayRef.dispose();\n      this.overlayRef = null;\n    }\n\n    // Xóa mọi tham chiếu\n    this.tooltipInstance = null;\n    this.tooltipComponentRef = null;\n  };\n\n  #getPositions = (): ConnectionPositionPair[] => {\n    const offset = 8;\n    const topPos: ConnectionPositionPair = { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -offset };\n    const bottomPos: ConnectionPositionPair = {\n      originX: 'center',\n      originY: 'bottom',\n      overlayX: 'center',\n      overlayY: 'top',\n      offsetY: offset,\n    };\n    const leftPos: ConnectionPositionPair = { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -offset };\n    const rightPos: ConnectionPositionPair = { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: offset };\n\n    switch (this.sdTooltipPosition()) {\n      case 'top':\n        return [topPos, bottomPos, rightPos, leftPos];\n      case 'bottom':\n        return [bottomPos, topPos, rightPos, leftPos];\n      case 'left':\n        return [leftPos, rightPos, topPos, bottomPos];\n      case 'right':\n        return [rightPos, leftPos, topPos, bottomPos];\n      default:\n        return [bottomPos, topPos];\n    }\n  };\n}\n// End\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}