{"version":3,"file":"koobiq-components-scrollbar.mjs","sources":["../../../packages/components/scrollbar/scrollbar.types.ts","../../../packages/components/scrollbar/scrollbar.directive.ts","../../../packages/components/scrollbar/scrollbar.component.ts","../../../packages/components/scrollbar/scrollbar.module.ts","../../../packages/components/scrollbar/koobiq-components-scrollbar.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\nimport { EventListenerArgs, EventListeners, InitializationTarget, PartialOptions } from 'overlayscrollbars';\n\nexport type KbqScrollbarEvents = EventListeners;\nexport type KbqScrollbarEventListenerArgs = EventListenerArgs;\nexport type KbqScrollbarOptions = PartialOptions;\nexport type KbqScrollbarTarget = InitializationTarget;\n\nexport const KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG: KbqScrollbarOptions = {\n    scrollbars: {\n        autoHide: 'leave',\n        autoHideDelay: 100\n    }\n};\n\nexport const KBQ_SCROLLBAR_CONFIG = new InjectionToken<KbqScrollbarOptions>('KBQ_SCROLLBAR_CONFIG');\n\n/** Default scroll behavior */\nexport const KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG_PROVIDER: Provider = {\n    provide: KBQ_SCROLLBAR_CONFIG,\n    useValue: KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG\n};\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport { Directive, Inject, Input, NgZone, OnDestroy } from '@angular/core';\nimport { OverlayScrollbars } from 'overlayscrollbars';\nimport { KBQ_SCROLLBAR_CONFIG, KbqScrollbarEvents, KbqScrollbarOptions, KbqScrollbarTarget } from './scrollbar.types';\n\ntype Defer = [\n    requestDefer: (callback: () => any, options?: boolean | IdleRequestOptions) => void,\n    cancelDefer: () => void\n];\n\nconst createDefer = (): Defer => {\n    // For SSR compatibility\n    // eslint-disable-next-line no-restricted-globals\n    if (typeof window === 'undefined') {\n        const noop = () => {};\n\n        return [noop, noop];\n    }\n\n    let idleId: number;\n    let rafId: number;\n\n    // eslint-disable-next-line no-restricted-globals\n    const { requestIdleCallback, requestAnimationFrame, cancelAnimationFrame, cancelIdleCallback } = window;\n\n    const idleSupported = typeof requestIdleCallback === 'function';\n    const rIdle = idleSupported ? requestIdleCallback : requestAnimationFrame;\n    const cIdle = idleSupported ? cancelIdleCallback : cancelAnimationFrame;\n    const clear = () => {\n        cIdle(idleId);\n        cancelAnimationFrame(rafId);\n    };\n\n    return [\n        (callback, options) => {\n            clear();\n            idleId = rIdle(\n                idleSupported\n                    ? () => {\n                          clear();\n                          // inside idle its best practice to use rAF to change DOM for best performance\n                          rafId = requestAnimationFrame(callback);\n                      }\n                    : callback,\n                typeof options === 'object' ? options : { timeout: 2233 }\n            );\n        },\n        clear\n    ];\n};\n\n/**\n * A directive for adding `overlayscrollbars` to an element.\n */\n@Directive({\n    selector: '[kbqScrollbar]',\n    hostDirectives: [CdkScrollable]\n})\nexport class KbqScrollbarDirective implements OnDestroy {\n    private requestDefer: ReturnType<typeof createDefer>[0];\n    private cancelDefer: ReturnType<typeof createDefer>[1];\n\n    private _options: KbqScrollbarOptions;\n\n    @Input()\n    set options(value: KbqScrollbarOptions) {\n        this._options = value;\n\n        if (OverlayScrollbars.valid(this.scrollbarInstance)) {\n            this.scrollbarInstance.options(value || {}, true);\n        }\n    }\n\n    /** Scrollbar behavior customization object */\n    get options(): KbqScrollbarOptions | undefined {\n        return this._options;\n    }\n\n    private _events?: KbqScrollbarEvents;\n\n    @Input()\n    set events(value: KbqScrollbarEvents) {\n        this._events = value;\n\n        if (OverlayScrollbars.valid(this.scrollbarInstance)) {\n            this.scrollbarInstance.on(value || {}, true);\n        }\n    }\n\n    get events(): KbqScrollbarEvents | undefined {\n        return this._events;\n    }\n\n    /** Whether to defer the initialization to a point in time when the browser is idle. (or to the next frame if `window.requestIdleCallback` is not supported) */\n    @Input()\n    defer?: boolean | IdleRequestOptions;\n\n    scrollbarInstance?: OverlayScrollbars;\n\n    constructor(\n        private ngZone: NgZone,\n        @Inject(KBQ_SCROLLBAR_CONFIG) private scrollbarConfig?: KbqScrollbarOptions\n    ) {\n        const [requestDefer, cancelDefer] = createDefer();\n\n        this.requestDefer = requestDefer;\n        this.cancelDefer = cancelDefer;\n    }\n\n    initialize(target: KbqScrollbarTarget) {\n        this.ngZone.runOutsideAngular(() => {\n            const init = () => {\n                this.scrollbarInstance = OverlayScrollbars(\n                    target,\n                    this.options || this.scrollbarConfig || {},\n                    this.events || {}\n                );\n            };\n\n            if (this.defer) {\n                this.requestDefer(init, this.defer);\n            } else {\n                init();\n            }\n        });\n    }\n\n    ngOnDestroy() {\n        this.cancelDefer();\n    }\n}\n","import {\n    afterNextRender,\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    EventEmitter,\n    inject,\n    Injector,\n    Input,\n    NgZone,\n    OnDestroy,\n    Output,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { KbqScrollbarDirective } from './scrollbar.directive';\nimport {\n    KbqScrollbarEventListenerArgs,\n    KbqScrollbarEvents,\n    KbqScrollbarOptions,\n    KbqScrollbarTarget\n} from './scrollbar.types';\n\nconst filterEvents = (emits: KbqScrollbarEvents, events: KbqScrollbarEvents) =>\n    (Object.keys(emits) as (keyof KbqScrollbarEvents)[]).reduce<KbqScrollbarEvents>(\n        <N extends keyof KbqScrollbarEvents>(obj: KbqScrollbarEvents, name: N) => {\n            const emitListener = emits[name];\n            const eventListener = events[name];\n\n            // merge & check listeners\n            obj[name] = [\n                emitListener,\n                ...(Array.isArray(eventListener) ? eventListener : [eventListener]).filter(Boolean)\n            ];\n\n            return obj;\n        },\n        {}\n    );\n\n/**\n * The component-wrapper for `overlayscrollbars` library.\n */\n@Component({\n    selector: 'kbq-scrollbar, [kbq-scrollbar]',\n    imports: [KbqScrollbarDirective],\n    template: `\n        <div\n            #content\n            data-overlayscrollbars-contents=\"\"\n            kbqScrollbar\n            [options]=\"options\"\n            [events]=\"mergeEvents()\"\n            [defer]=\"defer\"\n        >\n            <ng-content />\n        </div>\n    `,\n    styleUrls: ['./scrollbar.component.scss', 'scrollbar-tokens.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    exportAs: 'kbqScrollbar',\n    host: {\n        'data-overlayscrollbars-initialize': '',\n        class: 'kbq-scrollbar-component'\n    }\n})\nexport class KbqScrollbar implements AfterViewInit, OnDestroy {\n    /** Element that is being overflowed */\n    @ViewChild('content') contentElement: ElementRef<HTMLDivElement>;\n    @ViewChild('content', { read: KbqScrollbarDirective }) private kbqScrollbarDirective?: KbqScrollbarDirective;\n\n    /** Elements scrollbar applied on */\n    @Input() initializationTarget?: KbqScrollbarTarget;\n    /** Scrollbar behavior customization object */\n    @Input() options: KbqScrollbarOptions;\n    @Input() events: KbqScrollbarEvents;\n    /** Whether to defer the initialization to a point in time when the browser is idle. (or to the next frame if `window.requestIdleCallback` is not supported) */\n    @Input() defer?: boolean | IdleRequestOptions;\n\n    @Output() readonly onInitialize = new EventEmitter<KbqScrollbarEventListenerArgs['initialized']>();\n    /** Event triggered when options or event listeners updated */\n    @Output() readonly onUpdate = new EventEmitter<KbqScrollbarEventListenerArgs['updated']>();\n    /** Event triggered when scrollbar instance destroyed */\n    @Output() readonly onDestroy = new EventEmitter<KbqScrollbarEventListenerArgs['destroyed']>();\n    @Output() readonly onScroll = new EventEmitter<KbqScrollbarEventListenerArgs['scroll']>();\n\n    get element(): HTMLElement {\n        return this.targetElement.nativeElement;\n    }\n\n    private readonly injector = inject(Injector);\n\n    constructor(\n        private ngZone: NgZone,\n        private targetElement: ElementRef<HTMLElement>\n    ) {}\n\n    ngAfterViewInit() {\n        afterNextRender(\n            () => {\n                if (this.element && this.contentElement.nativeElement) {\n                    this.kbqScrollbarDirective?.initialize(\n                        this.initializationTarget || {\n                            target: this.targetElement.nativeElement,\n                            elements: {\n                                viewport: this.contentElement.nativeElement,\n                                content: this.contentElement.nativeElement\n                            }\n                        }\n                    );\n                }\n            },\n            { injector: this.injector }\n        );\n    }\n\n    ngOnDestroy() {\n        this.kbqScrollbarDirective?.scrollbarInstance?.destroy();\n    }\n\n    /** Wrapper function for native scroll */\n    scrollTo(options?: ScrollToOptions): void {\n        this.contentElement.nativeElement.scroll(options);\n    }\n\n    mergeEvents(): KbqScrollbarEvents {\n        const defaultListeners: KbqScrollbarEvents = {\n            initialized: (...args) => this.dispatchEventIfHasObservers(this.onInitialize, args),\n            updated: (...args) => this.dispatchEventIfHasObservers(this.onUpdate, args),\n            destroyed: (...args) => this.dispatchEventIfHasObservers(this.onDestroy, args),\n            scroll: (...args) => this.dispatchEventIfHasObservers(this.onScroll, args)\n        };\n\n        if (!this.events) {\n            return defaultListeners;\n        }\n\n        // merge default listeners with custom listeners in case of Input binding\n        return {\n            ...defaultListeners,\n            ...filterEvents(this.events, defaultListeners)\n        };\n    }\n\n    private dispatchEventIfHasObservers<T>(eventEmitter: EventEmitter<T>, args: T): void {\n        // `observed` is available since RxJS@7.2 because `observers` is being deprecated.\n        if ((eventEmitter as any).observed || eventEmitter.observers.length > 0) {\n            // This is required to re-enter the Angular zone to call the event handler in the Angular\n            // zone too. This will not re-enter the Angular zone if emitter doesn't have any observers,\n            // for instance, it's being listened: `<overlay-scrollbars (osInitialized)=\"...\"`.\n            // Events are dispatched outside of the Angular zone because instance is created in the\n            // `<root>` zone\n            this.ngZone.run(() => eventEmitter.emit(args));\n        }\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqScrollbar } from './scrollbar.component';\nimport { KbqScrollbarDirective } from './scrollbar.directive';\nimport { KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG_PROVIDER } from './scrollbar.types';\n\nconst COMPONENTS = [\n    KbqScrollbar,\n    KbqScrollbarDirective\n];\n\n@NgModule({\n    imports: COMPONENTS,\n    exports: COMPONENTS,\n    providers: [KBQ_SCROLLBAR_OPTIONS_DEFAULT_CONFIG_PROVIDER]\n})\nexport class KbqScrollbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}