{"version":3,"file":"moxa-formoxa-mx-label.mjs","sources":["../../../../libs/formoxa/mx-label/src/lib/components/mx-label-info-tooltip.component.ts","../../../../libs/formoxa/mx-label/src/lib/directives/mx-label.directive.ts","../../../../libs/formoxa/mx-label/src/moxa-formoxa-mx-label.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n  selector: 'mx-label-info-tooltip',\n  imports: [MatIconModule, MatTooltipModule],\n  template: ` <mat-icon svgIcon=\"icon:info_outline\" [matTooltip]=\"tooltip\"></mat-icon> `,\n  host: { class: 'mx-label-info-tooltip' }\n})\nexport class MxLabelInfoTooltipComponent {\n  @Input() tooltip: string = '';\n}\n","import {\n  ComponentRef,\n  DOCUMENT,\n  Directive,\n  ElementRef,\n  OnInit,\n  ViewContainerRef,\n  booleanAttribute,\n  effect,\n  inject,\n  input,\n  untracked\n} from '@angular/core';\nimport { MxLabelInfoTooltipComponent } from '../components/mx-label-info-tooltip.component';\n\n@Directive({\n  selector: 'mat-label[mxLabel]',\n  standalone: true,\n  host: {\n    class: 'mx-label'\n  }\n})\nexport class MxLabelDirective implements OnInit {\n  #document = inject(DOCUMENT);\n  #elRef = inject(ElementRef<HTMLElement>);\n  #vcr = inject(ViewContainerRef);\n\n  mxLabelOptional = input(false, { transform: booleanAttribute });\n  mxLabelOptionalText = input('optional');\n  mxLabelTooltip = input('');\n\n  #componentRef: ComponentRef<MxLabelInfoTooltipComponent> | null = null;\n\n  constructor() {\n    effect(() => {\n      const tooltip = this.mxLabelTooltip();\n\n      untracked(() => {\n        this.#updateTooltipText(tooltip);\n      });\n    });\n\n    effect(() => {\n      const mxLabelOptional = this.mxLabelOptional();\n\n      untracked(() => {\n        if (mxLabelOptional) {\n          this.#createOptionalText();\n        } else {\n          this.#removeOptionalText();\n        }\n      });\n    });\n\n    effect(() => {\n      if (this.mxLabelOptionalText()) {\n        untracked(() => {\n          this.#updateOptionalTextChanged();\n        });\n      }\n    });\n  }\n\n  ngOnInit() {\n    if (this.mxLabelOptional()) {\n      this.#createOptionalText();\n    }\n    if (this.mxLabelTooltip()) {\n      this.#createTooltipIcon();\n    }\n  }\n\n  #getOptionalTextEl(): HTMLElement | null {\n    return this.#elRef.nativeElement.querySelector('i.mx-label-optional');\n  }\n\n  #createOptionalText(): void {\n    const existing = this.#getOptionalTextEl();\n    if (!existing) {\n      const optionalEl = this.#document.createElement('i');\n      optionalEl.textContent = ` - ${this.mxLabelOptionalText()}`;\n      optionalEl.classList.add('mx-label-optional');\n      this.#elRef.nativeElement.append(optionalEl);\n    }\n  }\n\n  #updateOptionalTextChanged(): void {\n    const optionalEl = this.#getOptionalTextEl();\n    if (optionalEl) {\n      optionalEl.textContent = ` - ${this.mxLabelOptionalText()}`;\n    }\n  }\n\n  #removeOptionalText(): void {\n    const optionalEl = this.#getOptionalTextEl();\n    if (optionalEl) {\n      optionalEl.remove();\n    }\n  }\n\n  #createTooltipIcon(): void {\n    this.#componentRef = this.#vcr.createComponent(MxLabelInfoTooltipComponent);\n    this.#componentRef.instance.tooltip = this.mxLabelTooltip();\n  }\n\n  #removeTooltipIcon(): void {\n    this.#componentRef = null;\n    this.#vcr.clear();\n  }\n\n  #updateTooltipText(tooltip: string): void {\n    if (tooltip) {\n      if (this.#componentRef) {\n        this.#componentRef.instance.tooltip = tooltip;\n      } else {\n        this.#createTooltipIcon();\n      }\n    } else {\n      this.#removeTooltipIcon();\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}