{"version":3,"file":"seniorsistemas-angular-components-global-search.mjs","sources":["../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.ts","../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.ts","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.module.ts","../../projects/angular-components/global-search/src/seniorsistemas-angular-components-global-search.ts"],"sourcesContent":["import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\n\nimport { GlobalSearchSizeEnum } from '../../types/global-search-size.enum';\nimport { ThumbnailComponent } from '@seniorsistemas/angular-components/thumbnail';\n\n@Component({\n    selector: 's-global-search-dropdown-item',\n    templateUrl: './global-search-dropdown-item.component.html',\n    styleUrls: ['./global-search-dropdown-item.component.scss'],\n})\nexport class GlobalSearchDropdownItemComponent {\n    public static nextId = 0;\n\n    @Input()\n    public id = `s-global-search-dropdown-item-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n    @Input()\n    public primaryLabel?: string;\n\n    @Input()\n    public secondaryEmptyLabel?: string;\n\n    @Input()\n    public tertiaryEmptyLabel?: string;\n\n    @Input()\n    public imageSource?: string;\n\n    @Input()\n    public imageAlt?: string;\n\n    @Input()\n    public iconClass?: string;\n\n    @Input()\n    public secondaryLabel?: string;\n\n    @Input()\n    public tertiaryLabel?: string;\n\n    @Input()\n    public size: GlobalSearchSizeEnum = 'standart';\n\n    @Input()\n    public template: TemplateRef<any> | null = null;\n\n    @Output()\n    public buttonClick = new EventEmitter<void>();\n\n    @ContentChild(ThumbnailComponent, { static: true })\n    public thumbnailComponent: ThumbnailComponent | null = null;\n\n    @ViewChild(TemplateRef, { static: true })\n    public content: TemplateRef<any> | null = null;\n\n    public isMediumSize(): boolean {\n        return this.size === 'medium';\n    }\n\n    public isSmallSize(): boolean {\n        return this.size === 'small';\n    }\n\n    public getImageSize(): 'medium' | 'small' {\n        return this._isStandardSize() ? 'medium' : 'small';\n    }\n\n    private _isStandardSize(): boolean {\n        return this.size === 'standart';\n    }\n}\n","<ng-template>\n    <div class=\"global-search-dropdown-item\" [class.ui-grid]=\"isSmallSize()\">\n        <ng-content select=\"s-thumbnail\"></ng-content>\n\n        @if (!thumbnailComponent && (imageSource || iconClass) && !isSmallSize()) {\n            <s-thumbnail\n                [id]=\"id + '-thumbnail'\"\n                [imageSource]=\"imageSource\"\n                [imageAlt]=\"imageAlt || primaryLabel\"\n                [iconClass]=\"iconClass ?? ''\"\n                [size]=\"getImageSize()\"\n            ></s-thumbnail>\n        }\n\n        <div class=\"global-search-item__container {{ !isSmallSize() ? 'global-search-item__container--width-60' : '' }}\">\n            <div #titleTemplate>\n                <ng-content select=\"[titleTemplate]\"></ng-content>\n            </div>\n            @if (!titleTemplate.children.length) {\n                <s-button\n                    styleClass=\"no-padding\"\n                    class=\"{{ isSmallSize() ? 'ui-grid-col-6 no-padding' : '' }}\"\n                    [id]=\"id + '-title'\"\n                    priority=\"link\"\n                    [pTooltip]=\"primaryLabel\"\n                    [label]=\"primaryLabel\"\n                    size=\"small\"\n                    (clicked)=\"buttonClick.emit()\"\n                >\n                </s-button>\n            }\n\n            <div #labelTemplate>\n                <ng-content select=\"[labelTemplate]\"></ng-content>\n            </div>\n\n            @if (!labelTemplate.children.length) {\n                <span\n                    [id]=\"id + '-label'\"\n                    [ngClass]=\"{\n                        'ui-grid-col-6 global-search-item__text-align--right': isSmallSize(),\n                        'global-search-item__italic': !secondaryLabel,\n                    }\"\n                    class=\"label\"\n                    [pTooltip]=\"secondaryLabel\"\n                    tooltipPosition=\"top\"\n                    showDelay=\"500\"\n                    >{{ secondaryLabel ? secondaryLabel : secondaryEmptyLabel }}</span\n                >\n            }\n\n            <div #descriptionTemplate>\n                <ng-content select=\"[descriptionTemplate]\"></ng-content>\n            </div>\n\n            @if (!descriptionTemplate.children.length && !isMediumSize() && !isSmallSize()) {\n                <span\n                    [id]=\"id + '-description'\"\n                    class=\"description\"\n                    [ngClass]=\"{ 'global-search-item__italic': !secondaryLabel }\"\n                    [pTooltip]=\"tertiaryLabel\"\n                    tooltipPosition=\"top\"\n                    showDelay=\"500\"\n                >\n                    {{ tertiaryLabel ? tertiaryLabel : tertiaryEmptyLabel }}\n                </span>\n            }\n        </div>\n        @if (!isSmallSize()) {\n            <div class=\"global-search-item__container--width-40 global-search__dropdown--template\">\n                <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n            </div>\n        }\n    </div>\n</ng-template>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, inject } from '@angular/core';\n\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\n/**\n * @description Componente de busca global com input, dropdown de resultados, estado\n * de carregamento, empty state e suporte a itens customizáveis via `GlobalSearchDropdownItemComponent`.\n *\n * @example\n * ```html\n * <s-global-search\n *   totalItensLabel=\"resultados\"\n *   showMoreLabel=\"Ver mais\"\n *   [totalElements]=\"total\"\n *   (search)=\"onBusca($event)\" />\n * ```\n *\n * @category Structure\n */\n@Component({\n    selector: 's-global-search',\n    templateUrl: './global-search.component.html',\n    styleUrls: ['./global-search.component.scss'],\n    animations: [\n        trigger('expandableContent', [\n            state('*', style({ height: '0' })),\n            state('false', style({ height: '0' })),\n            state('true', style({ height: '*' })),\n            transition('* => true', animate('200ms ease-out')),\n            transition('false <=> true', animate('200ms ease-out')),\n        ]),\n    ],\n})\nexport class GlobalSearchComponent {\n    private readonly _cdr = inject(ChangeDetectorRef);\n\n    public static nextId = 0;\n\n    @ViewChild('globalSearch', { static: false })\n    public globalSearch: ElementRef | null = null;\n\n    /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\n    @Input()\n    public id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n    /** @description Tempo de debounce em ms antes de emitir o evento de busca. @default 500 */\n    @Input()\n    public delay = 500;\n\n    /** @description Label que acompanha o total de resultados. Campo obrigatório. */\n    @Input({ required: true })\n    public totalItensLabel!: string;\n\n    /** @description Rótulo do link para exibir mais resultados. Campo obrigatório. */\n    @Input({ required: true })\n    public showMoreLabel!: string;\n\n    /** @description Placeholder do input de busca. */\n    @Input()\n    public placeholder?: string;\n\n    /** @description Exibe indicador de carregamento no dropdown. @default false */\n    @Input()\n    public isLoading = false;\n\n    /** @description Número total de resultados encontrados. */\n    @Input()\n    public totalElements?: number;\n\n    /** @description Título do empty state quando não há resultados. */\n    @Input()\n    public emptyTitle?: string;\n\n    /** @description Descrição do empty state exibida abaixo do título. */\n    @Input()\n    public emptyDescription?: string;\n\n    /** @description Classe do ícone exibido no empty state. */\n    @Input()\n    public emptyIcon?: string;\n\n    /** @description Exibe o rodapé com o link \"ver mais\" e contagem de resultados. @default true */\n    @Input() showFooter = true;\n\n    @ContentChildren(GlobalSearchDropdownItemComponent)\n    public dropdownItens: QueryList<GlobalSearchDropdownItemComponent> | null = null;\n\n    /** @description Emitido ao digitar no campo de busca, com o valor atual da pesquisa. */\n    @Output()\n    public searched = new EventEmitter<string>();\n\n    /** @description Emitido quando o campo de busca ganha ou perde foco (`true` = focado). */\n    @Output()\n    public focused = new EventEmitter<boolean>();\n\n    /** @description Emitido ao clicar no link para exibir mais resultados. */\n    @Output()\n    public moreShown = new EventEmitter<void>();\n\n    public search: string | null = null;\n    public wasSearched = false;\n    public isModalLoading = false;\n    public expanded = true;\n\n    public onChange() {\n        const search = this.search;\n        setTimeout(() => {\n            if (this.search === search) {\n                this._canShowGlobalSearchActive();\n                this.searched.emit(this.search ?? '');\n            }\n        }, this.delay);\n    }\n\n    public focusIn() {\n        this.focused.emit(true);\n    }\n\n    public focusOut() {\n        this.focused.emit(false);\n    }\n\n    public showMore() {\n        this.moreShown.emit();\n    }\n\n    public close() {\n        this.search = null;\n        this.wasSearched = false;\n        this.dropdownItens = null;\n        this.isModalLoading = false;\n        this._removeActiveClassByGlobalSearch();\n    }\n\n    private _removeActiveClassByGlobalSearch() {\n        if (isNullOrUndefined(this.globalSearch)) return;\n\n        this.globalSearch.nativeElement.classList.remove('global-search__input-active');\n    }\n\n    private _canShowGlobalSearchActive() {\n        this.wasSearched = !!this.search;\n        if (this.search) {\n            if (isNullOrUndefined(this.globalSearch)) return;\n\n            this.globalSearch.nativeElement.classList.add('global-search__input-active');\n        } else {\n            this._removeActiveClassByGlobalSearch();\n            this.close();\n        }\n        this._cdr.detectChanges();\n    }\n}\n\n","<div class=\"p-inputGroup\">\n    <input\n        #globalSearch\n        class=\"global-search__input\"\n        [(ngModel)]=\"search\"\n        (ngModelChange)=\"onChange()\"\n        pInputText\n        [placeholder]=\"placeholder\"\n        (focus)=\"focusIn()\"\n        (blur)=\"focusOut()\"\n    />\n    <span class=\"p-inputGroup-addon global-search__span\">\n        <em class=\"fas fa-search\"></em>\n    </span>\n\n    @if (wasSearched) {\n        <div class=\"global-search__modal\">\n            <div\n                *sLoadingState=\"isLoading && !isModalLoading\"\n                class=\"global-search__loader\"\n            >\n                @if ((dropdownItens && dropdownItens.length > 0) || isLoading) {\n                    <div class=\"global-search__container\">\n                        @if (dropdownItens && dropdownItens.length > 0) {\n                            <div>\n                                <div class=\"global-search__modal--total-itens-title\">\n                                    <span class=\"ui-grid-col-11 no-space\">{{ totalItensLabel }}</span>\n                                    <span\n                                        class=\"ui-grid-col-1 no-space global-search__modal--total-itens-title-icon\"\n                                        (click)=\"close()\"\n                                    >\n                                        <em class=\"fas fa-times\"></em>\n                                    </span>\n                                </div>\n                                <div\n                                    class=\"no-space global-search__dropdown--itens\"\n                                    [@expandableContent]=\"expanded\"\n                                >\n                                    @for (item of dropdownItens; track item.id) {\n                                        <div class=\"s-object-card-field no-space global-search__dropdown--itens-container\">\n                                            <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\n                                        </div>\n                                    }\n                                </div>\n\n                                @if (showFooter) {\n                                    <div class=\"ui-grid-col-12 global-search__modal--footer\">\n                                        <s-button\n                                            class=\"global-search__show-more\"\n                                            (click)=\"showMore()\"\n                                            priority=\"link\"\n                                        >\n                                            {{ showMoreLabel }}\n                                        </s-button>\n                                    </div>\n                                }\n                            </div>\n                        }\n                    </div>\n                }\n\n                @if ((!dropdownItens || !dropdownItens.length) && !isLoading) {\n                    <s-empty-state\n                        [title]=\"emptyTitle ?? ''\"\n                        [description]=\"emptyDescription\"\n                        ngClass=\"global-search__empty-state--icon\"\n                        [iconClass]=\"emptyIcon ? emptyIcon : 'fas fa-search'\"\n                    >\n                    </s-empty-state>\n                }\n            </div>\n        </div>\n    }\n\n    @if (wasSearched) {\n        <div\n            class=\"global-search__background\"\n            (click)=\"close()\"\n        ></div>\n    }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TooltipModule } from 'primeng/tooltip';\n\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { EmptyStateModule } from \"@seniorsistemas/angular-components/empty-state\";\nimport { InfiniteScrollModule } from '@seniorsistemas/angular-components/infinite-scroll';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\nimport { GlobalSearchComponent } from './global-search.component';\n\n@NgModule({\n    declarations: [\n        GlobalSearchComponent,\n        GlobalSearchDropdownItemComponent\n    ],\n    imports: [\n        CommonModule,\n        InputTextModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TooltipModule,\n        ThumbnailModule,\n        ButtonModule,\n        LoadingStateModule,\n        InfiniteScrollModule,\n        EmptyStateModule\n    ],\n    exports: [\n        GlobalSearchComponent,\n        GlobalSearchDropdownItemComponent,\n        TooltipModule,\n        ThumbnailModule,\n        ButtonModule,\n        LoadingStateModule,\n        EmptyStateModule\n    ]\n})\nexport class GlobalSearchModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3"],"mappings":"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"}