{"version":3,"file":"kif-lib-autocomplete-checkbox.mjs","sources":["../../../projects/kif-lib/autocomplete-checkbox/components/tooltip/tooltip-content.component.ts","../../../projects/kif-lib/autocomplete-checkbox/components/tooltip/tooltip-content.component.html","../../../projects/kif-lib/autocomplete-checkbox/components/tooltip/directive/tooltip.directive.ts","../../../projects/kif-lib/autocomplete-checkbox/autocomplete-checkbox.component.ts","../../../projects/kif-lib/autocomplete-checkbox/autocomplete-checkbox.component.html","../../../projects/kif-lib/autocomplete-checkbox/components/tooltip/tooltip.module.ts","../../../projects/kif-lib/autocomplete-checkbox/autocomplete-checkbox.module.ts","../../../projects/kif-lib/autocomplete-checkbox/public-api.ts","../../../projects/kif-lib/autocomplete-checkbox/kif-lib-autocomplete-checkbox.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, Input, signal, TemplateRef } from '@angular/core';\n\n@Component({\n    selector: 'kit-tooltip-content',\n    templateUrl: './tooltip-content.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n\n})\nexport class TooltipContentComponent {\n    @Input() title?: string;\n    @Input() description?: string;\n    @Input() templateRef?: TemplateRef<any>;\n    @Input() positionType = 'top';\n    @Input() offset = 8;\n\n    private visibleState = signal(false);\n    private positionCoords = signal({ top: 0, left: 0 });\n\n    visible = this.visibleState.asReadonly();\n    positionState = this.positionCoords.asReadonly();\n\n    show(x: number, y: number, position?: string): void {\n        if (position) {\n            this.positionType = position;\n        }\n\n        this.calculatePosition(x, y);\n        this.visibleState.set(true);\n    }\n\n    hide(): void {\n        this.visibleState.set(false);\n    }\n\n    private calculatePosition(x: number, y: number): void {\n        let top = 0;\n        let left = 0;\n\n        const tooltipElement = this.elementRef.nativeElement.querySelector('.tooltip-container');\n        const tooltipHeight = tooltipElement.offsetHeight;\n        const tooltipWidth = tooltipElement.offsetWidth;\n\n        switch (this.positionType) {\n            case 'top':\n                top = y - tooltipHeight - this.offset;\n                left = x - (tooltipWidth / 2);\n                break;\n            case 'bottom':\n                top = y + this.offset;\n                left = x - (tooltipWidth / 2);\n                break;\n            case 'left':\n                top = y - (tooltipHeight / 2);\n                left = x - tooltipWidth - this.offset;\n                break;\n            case 'right':\n                top = y - (tooltipHeight / 2);\n                left = x + this.offset;\n                break;\n        }\n\n        const viewportWidth = window.innerWidth;\n        const viewportHeight = window.innerHeight;\n\n        if (left < 0) left = 0;\n        if (left + tooltipWidth > viewportWidth) left = viewportWidth - tooltipWidth;\n        if (top < 0) top = 0;\n        if (top + tooltipHeight > viewportHeight) top = viewportHeight - tooltipHeight;\n\n        this.positionCoords.set({ top, left });\n    }\n\n    constructor(private elementRef: ElementRef) {}\n}\n","<div\nclass=\"tooltip-container d-flex flex-column gap-2\"\n[class.visible]=\"visible()\"\n\n[style.top.px]=\"positionState().top\"\n[style.left.px]=\"positionState().left\">\n@if (title) {\n  <div class=\"tooltip-title\">{{ title }}</div>\n}\n@if (description) {\n  <div class=\"tooltip-description\">{{ description }}</div>\n}\n@if (templateRef) {\n  <ng-container [ngTemplateOutlet]=\"templateRef\"></ng-container>\n}\n","import { ComponentRef, Directive, ElementRef, HostListener, inject, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { TooltipContentComponent } from '../tooltip-content.component';\n\n@Directive({\n    selector: '[kitTooltip]',\n    exportAs: 'kitTooltip'\n})\nexport class TooltipDirective implements OnDestroy {\n    @Input() kitTooltip = '';\n    @Input() tooltipDescription = '';\n    @Input() tooltipTemplate?: TemplateRef<any>;\n    @Input() tooltipPosition: 'top' | 'bottom' | 'left' | 'right' = 'top';\n    @Input() tooltipOffset = 8;\n    @Input() tooltipDelay = 100;\n\n    private tooltipRef?: ComponentRef<TooltipContentComponent>;\n    private showTimeoutId?: number;\n    private hideTimeoutId?: number;\n    private viewContainerRef = inject(ViewContainerRef);\n    private document = inject(DOCUMENT);\n\n    constructor(private elementRef: ElementRef) {}\n\n    @HostListener('mouseenter')\n    onMouseEnter(): void {\n        this.clearTimeouts();\n\n        this.showTimeoutId = window.setTimeout(() => {\n            this.show();\n        }, this.tooltipDelay);\n    }\n\n    @HostListener('mouseleave')\n    onMouseLeave(): void {\n        this.clearTimeouts();\n\n        if (this.tooltipRef) {\n            this.hideTimeoutId = window.setTimeout(() => {\n                this.hide();\n            }, 100);\n        }\n    }\n\n    private show(): void {\n        if (this.tooltipRef) {\n            return;\n        }\n\n        this.tooltipRef = this.viewContainerRef.createComponent(TooltipContentComponent);\n\n        this.tooltipRef.instance.title = this.kitTooltip;\n        this.tooltipRef.instance.description = this.tooltipDescription;\n        this.tooltipRef.instance.templateRef = this.tooltipTemplate;\n        this.tooltipRef.instance.positionType = this.tooltipPosition;\n        this.tooltipRef.instance.offset = this.tooltipOffset;\n\n        this.document.body.appendChild(this.tooltipRef.location.nativeElement);\n\n        const rect = this.elementRef.nativeElement.getBoundingClientRect();\n        let x = rect.left + rect.width / 2;\n        let y = 0;\n\n        switch (this.tooltipPosition) {\n            case 'top':\n                y = rect.top;\n                break;\n            case 'bottom':\n                y = rect.bottom;\n                break;\n            case 'left':\n            case 'right':\n                y = rect.top + rect.height / 2;\n                break;\n        }\n\n        if (this.tooltipPosition === 'left') {\n            x = rect.left;\n        } else if (this.tooltipPosition === 'right') {\n            x = rect.right;\n        }\n\n        setTimeout(() => {\n            this.tooltipRef?.instance.show(x, y, this.tooltipPosition);\n        });\n    }\n\n    private hide(): void {\n        if (this.tooltipRef) {\n            this.tooltipRef.instance.hide();\n\n            setTimeout(() => {\n                this.tooltipRef?.destroy();\n                this.tooltipRef = undefined;\n            }, 150);\n        }\n    }\n\n    private clearTimeouts(): void {\n        if (this.showTimeoutId) {\n            clearTimeout(this.showTimeoutId);\n            this.showTimeoutId = undefined;\n        }\n\n        if (this.hideTimeoutId) {\n            clearTimeout(this.hideTimeoutId);\n            this.hideTimeoutId = undefined;\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.clearTimeouts();\n\n        if (this.tooltipRef) {\n            this.tooltipRef.destroy();\n        }\n    }\n}\n","// autocomplete-checkbox.component.ts\nimport {\n  Component,\n  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport { Observable, map, startWith, of } from 'rxjs';\nimport { Search, CircleAlert, } from 'lucide-angular';\n\n@Component({\n  selector: 'kit-autocomplete-checkbox',\n  templateUrl: './autocomplete-checkbox.component.html',\n})\nexport class AutocompleteCheckboxComponent implements OnInit, OnChanges {\n  @Input() options?: any[] = [];\n  @Input() placeholderText: string = '';\n  @Input() control?: any;\n  @Input() label: string = '';\n  @Input() minlength?: number;\n  @Input() maxlength?: number;\n  @Input() messageErrorCustom: string = '';\n  @Input() deselectOption?: any;\n  @Input() allowDeselect: boolean = true;\n  @Input() descriptionTooltip: string = '';\n  @Output() optionSelected = new EventEmitter<any>();\n\n  filteredOptions: Observable<any[]> | undefined;\n  selectedValues: Set<any> = new Set();\n  readonly searchI = Search;\n  readonly infoCircle = CircleAlert;\n\n  ngOnInit() {\n    this.setupFilteredOptions();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['options']) {\n      this.setupFilteredOptions();\n    }\n    if (changes['deselectOption'] && changes['deselectOption'].currentValue) {\n      this.deselectFromParent(changes['deselectOption'].currentValue);\n    }\n  }\n\n  private setupFilteredOptions(): void {\n    if (!this.control) {\n      this.filteredOptions = of(this.options?.slice() || []);\n      return;\n    }\n\n    this.filteredOptions = this.control.valueChanges.pipe(\n      startWith(''),\n      map((value: any) => {\n        if (!value || value === '') {\n          return this.options?.slice() || [];\n        }\n        const label = typeof value === 'string' ? value : value?.label;\n        return label\n          ? this._filter(label as string)\n          : this.options?.slice() || [];\n      }),\n    );\n  }\n\n  getDisplayValue(): string {\n    return '';\n  }\n\n  isSpecialtySelected(value: any): boolean {\n    return this.selectedValues.has(value);\n  }\n\n  toggleSpecialty(value: any): void {\n    const isCurrentlySelected = this.isSpecialtySelected(value);\n\n    if (isCurrentlySelected && !this.allowDeselect) {\n      return;\n    }\n\n    if (isCurrentlySelected) {\n      this.selectedValues.delete(value);\n      this.optionSelected.emit({\n        option: value,\n        selectedOptions: Array.from(this.selectedValues),\n        action: 'removed',\n      });\n    } else {\n      this.selectedValues.add(value);\n      this.control?.setValue('');\n      this.optionSelected.emit({\n        option: value,\n        selectedOptions: Array.from(this.selectedValues),\n        action: 'added',\n      });\n    }\n  }\n\n  private deselectFromParent(valueToDeselect: any): void {\n    if (this.isSpecialtySelected(valueToDeselect)) {\n      this.selectedValues.delete(valueToDeselect);\n      this.optionSelected.emit({\n        option: valueToDeselect,\n        selectedOptions: Array.from(this.selectedValues),\n        action: 'removed',\n      });\n    }\n  }\n\n  isAllSelected(): boolean {\n    return (\n      (this.options?.length ?? 0) > 0 &&\n      this.options!.every((option) => this.selectedValues.has(option.value))\n    );\n  }\n\n  isIndeterminate(): boolean {\n    const count =\n      this.options?.filter((option) => this.selectedValues.has(option.value))\n        .length ?? 0;\n    return count > 0 && count < (this.options?.length ?? 0);\n  }\n\n  toggleAll(): void {\n    if (this.isAllSelected()) {\n      this.options?.forEach((option) =>\n        this.selectedValues.delete(option.value),\n      );\n    } else {\n      this.options?.forEach((option) => this.selectedValues.add(option.value));\n    }\n    this.control?.setValue('');\n    this.optionSelected.emit({\n      option: null,\n      selectedOptions: Array.from(this.selectedValues),\n      action: this.isAllSelected() ? 'added' : 'removed',\n    });\n  }\n\n  private _filter(label: string): any[] {\n    const filterValue = label.toLowerCase();\n    return (\n      this.options?.filter((option) =>\n        option.label.toLowerCase().includes(filterValue),\n      ) || []\n    );\n  }\n\n  isControlRequired(): boolean {\n    if (this.control && this.control.validator) {\n      const validator = this.control.validator({} as any);\n      return !!(validator && validator.required);\n    }\n    return false;\n  }\n}\n","<!-- autocomplete-checkbox.component.html -->\n@if(label) {\n    <div class=\"w-100 d-flex justify-content-between align-items-center h-label label-mb \">\n        <mat-label [class.required]=\"isControlRequired()\">{{label}}</mat-label>\n        @if(descriptionTooltip) {\n            <button\n              class=\"action-icon-info d-flex align-items-center justify-content-center p-0 \"\n              matTooltipClass=\"custom-tooltip\">\n                  <lucide-angular\n                    [size]=\"16\"\n                    [color]=\"'#5D6F85'\"\n                    [img]=\"infoCircle\"\n                    [kitTooltip]=\"''\"\n                    [tooltipDescription]=\"descriptionTooltip\"\n                    [tooltipPosition]=\"'top'\">\n                  </lucide-angular>\n            </button>\n        }\n    </div>\n}\n<mat-form-field class=\"example-full-width custom-label-outside autocomplete-custom\" appearance=\"outline\" floatLabel=\"always\">\n\n    <input type=\"text\" matInput [formControl]=\"control || null\" [placeholder]=\"placeholderText\" [matAutocomplete]=\"auto\" />\n    <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"getDisplayValue.bind(this)\">\n        @if ((filteredOptions | async)?.length) {\n            <mat-option\n                [value]=\"null\"\n                (click)=\"toggleAll(); $event.stopPropagation()\"\n                (keydown.enter)=\"toggleAll(); $event.stopPropagation()\">\n                <mat-checkbox\n                    [checked]=\"isAllSelected()\"\n                    [indeterminate]=\"isIndeterminate()\"\n                    (change)=\"toggleAll()\"\n                    (click)=\"$event.stopPropagation()\"\n                    (keydown.enter)=\"toggleAll()\">\n                    Seleccionar todos\n                </mat-checkbox>\n            </mat-option>\n            <mat-divider></mat-divider>\n        }\n        @for (option of filteredOptions | async; track option) {\n            <mat-option\n                [value]=\"option.value\"\n                (click)=\"toggleSpecialty(option.value); $event.stopPropagation()\"\n                (keydown.enter)=\"toggleSpecialty(option.value); $event.stopPropagation()\">\n                <mat-checkbox\n                    [checked]=\"isSpecialtySelected(option.value)\"\n                    (change)=\"toggleSpecialty(option.value)\"\n                    (click)=\"$event.stopPropagation()\"\n                    (keydown.enter)=\"toggleSpecialty(option.value)\">\n                    {{ option.label }}\n                </mat-checkbox>\n            </mat-option>\n        }\n    </mat-autocomplete>\n    <lucide-angular matPrefix color=\"#5D6F85\" size=\"16\" [img]=\"searchI\"></lucide-angular>\n    @if (control.hasError('required')) {\n    <mat-error>{{label ? label: 'Este campo'}} es <strong>requerido</strong></mat-error>\n    }\n    @if (control.hasError('maxlength')) {\n    <mat-error>El máximo permitido son {{maxlength}} caracteres</mat-error>\n    }\n    @if (control.hasError('minlength')) {\n    <mat-error>El mínimo permitido son {{minlength}} caracteres</mat-error>\n    }\n    @if (control.hasError('errorCommons')) {\n    <mat-error>{{messageErrorCustom}}</mat-error>\n    }\n</mat-form-field>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TooltipContentComponent } from './tooltip-content.component';\nimport { TooltipDirective } from './directive/tooltip.directive';\n\n@NgModule({\n    imports: [\n        CommonModule,\n    ],\n    declarations: [\n        TooltipContentComponent,\n        TooltipDirective\n    ],\n    exports: [\n        TooltipDirective\n    ],\n})\nexport class KifTooltipModule { }\n","import { NgModule } from '@angular/core';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { AutocompleteCheckboxComponent } from './autocomplete-checkbox.component';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { LucideAngularModule } from 'lucide-angular';\nimport { KifTooltipModule } from './components/tooltip/tooltip.module';\nimport { MatDividerModule } from '@angular/material/divider';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule,\n        MatFormFieldModule,\n        MatInputModule,\n        MatAutocompleteModule,\n        ReactiveFormsModule,\n        AsyncPipe,\n        MatIconModule,\n        MatOptionModule,\n        MatCheckboxModule,\n        LucideAngularModule,\n        KifTooltipModule,\n        MatDividerModule\n    ],\n    declarations: [AutocompleteCheckboxComponent],\n    exports: [AutocompleteCheckboxComponent]\n})\nexport class KifAutocompleteCheckboxModule { }\n","/*\n * Public API Surface of kif-lib-autocomplete-checkbox\n */\n\nexport * from './autocomplete-checkbox.component';\nexport * from './autocomplete-checkbox.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i8.TooltipDirective","i10"],"mappings":"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"}