{"version":3,"file":"bootkit-angular-layout.mjs","sources":["../../../projects/bootkit/layout/Intersection-observer.directive.ts","../../../projects/bootkit/layout/bootkit-angular-layout.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\r\nimport { Directive, ElementRef, EventEmitter, Inject, input, OnDestroy, Output, PLATFORM_ID } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[bkIntersection]',\r\n  exportAs: 'bkIntersection',\r\n  standalone: true,\r\n})\r\nexport class IntersectionObserverDirective implements OnDestroy {\r\n  public root = input<HTMLElement | undefined>();\r\n  public threshold = input<number | number[]>();\r\n  @Output() public intersectionChange = new EventEmitter<IntersectionObserverEntry>();\r\n  \r\n  private _observer: IntersectionObserver | null = null;\r\n  private _isIntersecting?: boolean;\r\n  private _isPlatformBrowser: boolean;\r\n\r\n  constructor(private _el: ElementRef, @Inject(PLATFORM_ID) platform: object) {\r\n    this._isPlatformBrowser = isPlatformBrowser(platform);\r\n\r\n    if (this._isPlatformBrowser) {\r\n      this._initObserver();\r\n    }\r\n  }\r\n\r\n  public isIntersecting(): boolean | undefined {\r\n    if (!this._isPlatformBrowser) {\r\n      return undefined;\r\n    }\r\n\r\n    return this._isIntersecting;\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this._observer) {\r\n      this._observer.disconnect();\r\n    }\r\n  }\r\n\r\n  private _initObserver() {\r\n    const options: IntersectionObserverInit = {\r\n      root: this.root() || null,  // The root element for intersection,  null means viewport\r\n      threshold: this.threshold() // The threshold for triggering the callback\r\n    };\r\n\r\n    this._observer = new IntersectionObserver((entries) => {\r\n      this.intersectionChange.emit(entries[0]);\r\n      this._isIntersecting = entries[0].isIntersecting;\r\n    }, options);\r\n\r\n    // Start observing the target element\r\n    this._observer.observe(this._el.nativeElement);\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAQa,6BAA6B,CAAA;AASpB,IAAA,GAAA,CAAA;IARb,IAAI,GAAG,KAAK,EAA2B,CAAC;IACxC,SAAS,GAAG,KAAK,EAAqB,CAAC;AAC7B,IAAA,kBAAkB,GAAG,IAAI,YAAY,EAA6B,CAAC;IAE5E,SAAS,GAAgC,IAAI,CAAC;AAC9C,IAAA,eAAe,CAAW;AAC1B,IAAA,kBAAkB,CAAU;IAEpC,WAAoB,CAAA,GAAe,EAAuB,QAAgB,EAAA;QAAtD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;AACjC,QAAA,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AAEtD,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;SAC7B;KACF;IAEO,aAAa,GAAA;AACnB,QAAA,MAAM,OAAO,GAA6B;YACxC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI;AACzB,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;SAC5B,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,KAAI;YACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;SAClD,EAAE,OAAO,CAAC,CAAC;;QAGZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KAChD;AA5CU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,4CASK,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAT7C,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAUuC,MAAM;2BAAC,WAAW,CAAA;yCANvC,kBAAkB,EAAA,CAAA;sBAAlC,MAAM;;;ACXT;;AAEG;;;;"}