{"version":3,"file":"seniorsistemas-angular-components-slide-in-bar.mjs","sources":["../../projects/angular-components/slide-in-bar/src/lib/slide-in-bar/slide-in-bar.service.ts","../../projects/angular-components/slide-in-bar/src/lib/slide-in-bar/slide-in-bar.component.ts","../../projects/angular-components/slide-in-bar/src/lib/slide-in-bar/slide-in-bar.component.html","../../projects/angular-components/slide-in-bar/src/lib/slide-in-bar/slide-in-bar.module.ts","../../projects/angular-components/slide-in-bar/src/seniorsistemas-angular-components-slide-in-bar.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\nimport { Observable, Subject } from \"rxjs\";\n\n@Injectable()\nexport class SlideInBarService {\n    private modalCloseMap = new Map<string, Subject<void>>();\n\n    public createSlidePanel(id: string): Observable<void> {\n        const panelSubject = new Subject<void>();\n\n        this.modalCloseMap.set(id, panelSubject);\n        return panelSubject.asObservable();\n    }\n\n    public getModalCloseObservable(id: string): Observable<void> | null {\n        return this.modalCloseMap.get(id)?.asObservable() ?? null;\n    }\n\n    public closeModal(id: string): void {\n        const subject = this.modalCloseMap.get(id);\n        if (subject) {\n            subject.next();\n        }\n    }\n}","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n    AfterViewChecked,\r\n    AfterViewInit,\r\n    Component,\r\n    EventEmitter,\r\n    HostListener,\r\n    Input,\r\n    OnDestroy,\r\n    OnInit,\r\n    Output,\r\n    inject,\r\n} from '@angular/core';\r\n\r\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\r\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { SlideInBarService } from './slide-in-bar.service';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\nconst SMALL_DEVICE_BREAKPOINT = 420;\r\n\r\n/**\r\n * @description Componente de painel deslizante lateral que expande/colapsa ao clicar em um botão de toggle.\r\n * Em telas pequenas (≤ 420px), o painel entra em modo overlay, sobrepondo o conteúdo.\r\n * Substitui o seletor `s-slide-panel` (deprecado desde v20.0.0).\r\n *\r\n * @example\r\n * ```html\r\n * <s-slide-in-bar [cache]=\"true\" (panelOpened)=\"onOpen()\">\r\n *   <p>Conteúdo lateral</p>\r\n * </s-slide-in-bar>\r\n * ```\r\n *\r\n * @category Overlay\r\n */\r\n@Component({\r\n    selector: 's-slide-in-bar, s-slide-panel',\r\n    templateUrl: './slide-in-bar.component.html',\r\n    styleUrls: ['./slide-in-bar.component.scss'],\r\n    hostDirectives: [DeprecatedSelectorDirective],\r\n    providers: [\r\n        {\r\n            provide: DEPRECATED_CONFIG,\r\n            useValue: {\r\n                oldSelector: 's-slide-panel',\r\n                newSelector: 's-slide-in-bar',\r\n                removalVersion: '20.0.0',\r\n            },\r\n        },\r\n    ],\r\n    animations: [\r\n        trigger('cachelessAnimation', [\r\n            transition(':enter', [style({ width: '0' }), animate('200ms linear', style({ width: '*' }))]),\r\n            transition(':leave', [style({ width: '*' }), animate('200ms linear', style({ width: '0' }))]),\r\n        ]),\r\n        trigger('cacheAnimation', [\r\n            state('true', style({ width: '*', padding: '0 16px' })),\r\n            state('false', style({ width: '0px', padding: '0' })),\r\n            transition('* => *', animate('200ms')),\r\n        ]),\r\n    ],\r\n    standalone: true,\r\n    imports: [NgClass, NgTemplateOutlet],\r\n})\r\nexport class SlideInBarComponent implements OnInit, AfterViewChecked, AfterViewInit, OnDestroy {\r\n    private readonly slidePanelService = inject(SlideInBarService);\r\n\r\n    public static nextId = 0;\r\n\r\n    /**\r\n     * @description Identificador único do painel. Gerado automaticamente se não informado.\r\n     * Usado internamente pelo `SlideInBarService` para comunicação entre painéis.\r\n     */\r\n    @Input()\r\n    public id = `slide-panel-${++SlideInBarComponent.nextId}`;\r\n\r\n    /**\r\n     * @description Classe de ícone exibida no botão de abertura do painel.\r\n     *\r\n     * @default 'fas fa-chevron-right'\r\n     */\r\n    @Input()\r\n    public openIcon = 'fas fa-chevron-right';\r\n\r\n    /**\r\n     * @description Classe de ícone exibida no botão de fechamento do painel.\r\n     *\r\n     * @default 'fas fa-chevron-left'\r\n     */\r\n    @Input()\r\n    public closeIcon = 'fas fa-chevron-left';\r\n\r\n    /**\r\n     * @description Quando `true`, mantém o conteúdo do painel no DOM mesmo quando fechado,\r\n     * preservando o estado interno dos componentes filhos.\r\n     *\r\n     * @default false\r\n     */\r\n    @Input()\r\n    public cache = false;\r\n\r\n    /**\r\n     * @description Quando `true`, o painel é iniciado já aberto.\r\n     *\r\n     * @default false\r\n     */\r\n    @Input()\r\n    public createOpen = false;\r\n\r\n    /**\r\n     * @description Quando `true`, o painel não sobrepõe o conteúdo ao expandir,\r\n     * empurrando o layout adjacente.\r\n     *\r\n     * @default false\r\n     */\r\n    @Input()\r\n    public noOverlap = false;\r\n\r\n    /**\r\n     * @description Emitido quando o painel é aberto pelo usuário.\r\n     */\r\n    @Output()\r\n    public panelOpened = new EventEmitter<void>();\r\n\r\n    /**\r\n     * @description Emitido quando o painel é fechado pelo usuário.\r\n     */\r\n    @Output()\r\n    public panelClosed = new EventEmitter<void>();\r\n\r\n    public isOpen = false;\r\n    public isSlideOver = false;\r\n    public isAnimating = false;\r\n    public isContentAnimationDisabled = true;\r\n\r\n    private _unsubscribe$ = new Subject<void>();\r\n\r\n    @HostListener('window:resize')\r\n    public onResize(): void {\r\n        this._checkOverBehavior();\r\n    }\r\n\r\n    public ngOnInit(): void {\r\n        this._checkOverBehavior();\r\n        this.slidePanelService\r\n            .createSlidePanel(this.id)\r\n            .pipe(takeUntil(this._unsubscribe$))\r\n            .subscribe(() => {\r\n                this.isOpen = false;\r\n            });\r\n    }\r\n\r\n    public ngAfterViewInit(): void {\r\n        queueMicrotask(() => {\r\n            if (this.createOpen) {\r\n                this.isOpen = true;\r\n            }\r\n        });\r\n    }\r\n\r\n    public ngAfterViewChecked() {\r\n        return;\r\n        // to executed at a safe time prior to control returning to the browser's event loop\r\n        // queueMicrotask(() => {\r\n        //     this._calculateSlideHeight();\r\n        //     this.isContentAnimationDisabled = false;\r\n        // });\r\n    }\r\n\r\n    public ngOnDestroy(): void {\r\n        this._unsubscribe$.next();\r\n        this._unsubscribe$.complete();\r\n    }\r\n\r\n    public onClickButton() {\r\n        if (this.isAnimating) {\r\n            return;\r\n        }\r\n\r\n        this.isOpen = !this.isOpen;\r\n\r\n        if (this.isOpen) {\r\n            this.panelOpened.emit();\r\n        } else {\r\n            this.panelClosed.emit();\r\n        }\r\n    }\r\n\r\n    public onContentAnimationStart() {\r\n        this.isAnimating = true;\r\n    }\r\n\r\n    public onContentAnimationDone() {\r\n        this.isAnimating = false;\r\n    }\r\n\r\n    private _checkOverBehavior() {\r\n        this.isSlideOver = window.innerWidth <= SMALL_DEVICE_BREAKPOINT;\r\n    }\r\n}\r\n","<div class=\"slide-in-bar\">\n    <div\n        class=\"slide-content\"\n        [ngClass]=\"{\n            'slide-content--closed': !isOpen,\n            'slide-content--over': isSlideOver,\n            'slide-content--no-overlap': noOverlap,\n        }\"\n    >\n        <div\n            #mainContainer\n            class=\"main-container\"\n        >\n            @if (cache) {\n                <div\n                    class=\"content-container\"\n                    [@cacheAnimation]=\"isOpen\"\n                    [@.disabled]=\"isContentAnimationDisabled\"\n                    (@cacheAnimation.start)=\"onContentAnimationStart()\"\n                    (@cacheAnimation.done)=\"onContentAnimationDone()\"\n                >\n                    <ng-container [ngTemplateOutlet]=\"slideContentTemplate\"></ng-container>\n                </div>\n            } @else {\n                @if (isOpen) {\n                    <div\n                        class=\"content-container\"\n                        @cachelessAnimation\n                        [@.disabled]=\"isContentAnimationDisabled\"\n                        (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n                        (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n                    >\n                        <ng-container [ngTemplateOutlet]=\"slideContentTemplate\"></ng-container>\n                    </div>\n                }\n            }\n        </div>\n        <button\n            class=\"button\"\n            [ngClass]=\"isOpen ? closeIcon : openIcon\"\n            (click)=\"onClickButton()\"\n        ></button>\n    </div>\n    <div\n        class=\"side-content\"\n    >\n        <ng-content select=\"[side-content]\"></ng-content>\n    </div>\n</div>\n\n<ng-template #slideContentTemplate>\n    <ng-content select=\"[slide-content]\"></ng-content>\n</ng-template>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { SlideInBarComponent } from './slide-in-bar.component';\r\nimport { SlideInBarService } from './slide-in-bar.service';\r\n\r\n@NgModule({\r\n    imports: [SlideInBarComponent],\r\n    exports: [SlideInBarComponent],\r\n    providers: [SlideInBarService],\r\n})\r\nexport class SlideInBarModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}