{"version":3,"file":"laserfiche-lf-ui-components-lf-tags.mjs","sources":["../../../projects/ui-components/lf-tags/tags.component.ts","../../../projects/ui-components/lf-tags/tags.component.html","../../../projects/ui-components/lf-tags/lf-tags-public-api.ts","../../../projects/ui-components/lf-tags/laserfiche-lf-ui-components-lf-tags.ts"],"sourcesContent":["// Copyright Laserfiche.\n\nimport {\n  AfterViewInit,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewChild,\n  ViewChildren,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport {\n  MatAutocompleteModule,\n  MatAutocompleteSelectedEvent,\n  MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { AppLocalizationService } from '@laserfiche/lf-ui-components/internal-shared';\nimport { Subscription } from 'rxjs';\nimport { LfTagsService, LfTagDefinition } from './ILfTagsService';\n\n@Component({\n  selector: 'lf-tags',\n  templateUrl: './tags.component.html',\n  styleUrl: './tags.component.css',\n  standalone: true,\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    MatAutocompleteModule,\n    MatChipsModule,\n    MatFormFieldModule,\n    MatIconModule,\n    MatInputModule,\n  ],\n})\nexport class LfTagsComponent implements OnDestroy, AfterViewInit {\n  /** @internal */\n  private localizationService = inject(AppLocalizationService);\n\n  @Input() initialTags: string[] = [];\n  @Input() tagsService: LfTagsService | undefined;\n  @Output() selectedTagsChanged = new EventEmitter<LfTagDefinition[]>();\n  /** @internal */\n  TAGS = this.localizationService.getResourceStringComponents('TAGS');\n  /** @internal */\n  ADD_TAGS = this.localizationService.getResourceStringComponents('ADD_TAGS');\n  /** @internal */\n  ADD_MORE_TAGS = this.localizationService.getResourceStringComponents('ADD_MORE_TAGS');\n  /** @internal */\n  NO_TAGS_AVAILABLE = this.localizationService.getResourceStringComponents('NO_TAGS_AVAILABLE');\n  /** @internal */\n  private componentSub: Subscription = new Subscription();\n  /** @internal */\n  private openPanelTimeout: ReturnType<typeof setTimeout> | undefined;\n  /** @internal */\n  tagDefinitions: LfTagDefinition[] = [];\n  /** @internal */\n  selectedTagDefinitions: LfTagDefinition[] = [];\n  /** @internal */\n  filteredTags: LfTagDefinition[] = [];\n  /** @internal */\n  tagCtrl = new FormControl();\n  /** @internal */\n  @ViewChild(MatAutocompleteTrigger) autoCompleteTrigger!: MatAutocompleteTrigger;\n  /** @internal */\n  @ViewChild('tagInput') tagInput!: ElementRef<HTMLInputElement>;\n  /** @internal */\n  @ViewChildren('chip', { read: ElementRef }) chips!: QueryList<ElementRef>;\n  /** @internal */\n  private ref = inject(ChangeDetectorRef);\n  /** @internal */\n  ngAfterViewInit() {\n    this.componentSub.add(\n      this.tagCtrl.valueChanges.subscribe((value) => {\n        if (typeof value === 'string' || value === null || value === undefined) {\n          this.filteredTags = this.filterTags(value ?? '');\n        }\n      })\n    );\n\n    if (this.tagsService) {\n      this.tagsService.getTagDefinitions().then((tagDefinitions) => {\n        this.tagDefinitions = tagDefinitions ?? [];\n\n        if (this.initialTags.length > 0) {\n          const initialTagNames = new Set(this.initialTags);\n          const toSelect = this.tagDefinitions.filter((t) => t.displayName && initialTagNames.has(t.displayName));\n          setTimeout(() => {\n            this.selectedTagDefinitions = toSelect;\n            this.emitSelectedTagDefinitions();\n            this.refreshFilteredTags();\n            this.ref.detectChanges();\n          });\n          this.initialTags = [];\n        } else {\n          setTimeout(() => this.refreshFilteredTags());\n        }\n      });\n    }\n  }\n  /** @internal */\n  ngOnDestroy(): void {\n    clearTimeout(this.openPanelTimeout);\n    this.autoCompleteTrigger?.closePanel();\n    this.componentSub.unsubscribe();\n  }\n  /** @internal */\n  filterTags(value: string) {\n    const filterValue = typeof value === 'string' ? value.toLowerCase() : '';\n    const selectedTagDisplayNames = new Set(this.selectedTagDefinitions.map((tag) => tag.displayName));\n    return this.tagDefinitions.filter(\n      (tag) => tag.displayName?.toLowerCase().includes(filterValue) && !selectedTagDisplayNames.has(tag.displayName)\n    );\n  }\n  /** @internal */\n  refreshFilteredTags() {\n    this.filteredTags = this.filterTags(this.tagCtrl.value ?? '');\n  }\n\n  /** @internal */\n  selected(event: MatAutocompleteSelectedEvent): void {\n    this.selectedTagDefinitions.push(event.option.value);\n    this.emitSelectedTagDefinitions();\n\n    this.refreshFilteredTags();\n    this.tagInput.nativeElement.value = '';\n    this.tagCtrl.setValue('');\n    this.ref.detectChanges();\n\n    this.openPanelTimeout = setTimeout(() => {\n      this.openPanel();\n    });\n  }\n\n  /** @internal */\n  remove(tagDefinition: LfTagDefinition): void {\n    const index = this.selectedTagDefinitions.indexOf(tagDefinition);\n\n    if (index >= 0) {\n      this.selectedTagDefinitions.splice(index, 1);\n      this.emitSelectedTagDefinitions();\n    }\n\n    this.refreshFilteredTags();\n    this.ref.detectChanges();\n    this.focusInput();\n  }\n  /** @internal */\n  focusInput() {\n    this.tagInput.nativeElement.focus();\n    this.openPanel();\n  }\n  /** @internal */\n  onChipKeyDown(event: KeyboardEvent, index: number) {\n    const chipsArray = this.chips.toArray();\n\n    if (event.key === 'ArrowLeft') {\n      const prev = index > 0 ? index - 1 : 0;\n      chipsArray[prev].nativeElement.focus();\n    } else if (event.key === 'ArrowRight') {\n      const next = index < chipsArray.length - 1 ? index + 1 : 0;\n      chipsArray[next].nativeElement.focus();\n    }\n    event.preventDefault();\n  }\n  /** @internal */\n  openPanel() {\n    this.autoCompleteTrigger?.openPanel();\n  }\n  /** @internal */\n  private emitSelectedTagDefinitions(): void {\n    this.selectedTagsChanged.emit([...this.selectedTagDefinitions]);\n  }\n}\n","<!--Copyright Laserfiche.-->\n\n<span class=\"lf-text-label\">{{ TAGS }}</span>\n<mat-form-field class=\"tag-list\" appearance=\"outline\">\n  <mat-chip-grid #chipGrid class=\"chip-list\">\n    @for (tag of selectedTagDefinitions; track tag; let i = $index) {\n      <mat-chip-row #chip (keydown)=\"onChipKeyDown($event, i)\" (removed)=\"remove(tag)\" tabindex=\"0\">\n        {{ tag.displayName }}\n        <button matChipRemove>\n          <mat-icon>cancel</mat-icon>\n        </button>\n      </mat-chip-row>\n    }\n  </mat-chip-grid>\n  <input\n    matInput\n    #tagInput\n    [formControl]=\"tagCtrl\"\n    [matAutocomplete]=\"auto\"\n    [matChipInputFor]=\"chipGrid\"\n    placeholder=\"+ {{ selectedTagDefinitions.length === 0 ? ADD_TAGS : ADD_MORE_TAGS }}\"\n  />\n  <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n    @for (tag of filteredTags; track tag) {\n      <mat-option [value]=\"tag\">\n        <mat-chip>{{ tag.displayName }}</mat-chip>\n      </mat-option>\n    }\n    @if (filteredTags.length === 0) {\n      <mat-option disabled class=\"no-more-tags\">\n        {{ NO_TAGS_AVAILABLE }}\n      </mat-option>\n    }\n  </mat-autocomplete>\n</mat-form-field>\n","// Copyright (c) Laserfiche.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\nexport { LfTagsComponent } from './tags.component';\nexport type { LfTagsService, LfTagDefinition } from './ILfTagsService';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './lf-tags-public-api';\n"],"names":[],"mappings":"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"}