{"version":3,"file":"ngxtension-when-document-visible.mjs","sources":["../../../../libs/ngxtension/when-document-visible/src/when-document-visible.ts","../../../../libs/ngxtension/when-document-visible/src/ngxtension-when-document-visible.ts"],"sourcesContent":["import {\n\tInjectDocumentVisibilityOptions,\n\tinjectDocumentVisibilityStream,\n} from 'ngxtension/inject-document-visibility';\nimport {\n\tMonoTypeOperatorFunction,\n\tObservable,\n\tpartition,\n\trepeat,\n\ttakeUntil,\n} from 'rxjs';\n\n/**\n * RxJS operator to pause a stream when the document is hidden (i.e.: tab is not active)\n * and to resume the stream when the document is visible (i.e.: tab is active).\n *\n * @example This example shows how to do an HTTP GET every 5 seconds only when the page is visible in the browser:\n * ```typescript\n * http.get('http://api').pipe(poll(5000), whenPageVisible()).subscribe(result => {})\n * ```\n * @public\n */\nexport function whenDocumentVisible<T>(\n\toptions?: InjectDocumentVisibilityOptions,\n): MonoTypeOperatorFunction<T> {\n\tconst visibilityChanged$ = injectDocumentVisibilityStream(options);\n\tconst [pageVisible$, pageHidden$] = partition(visibilityChanged$, () => {\n\t\treturn document.visibilityState === 'visible';\n\t});\n\treturn (source: Observable<T>) => {\n\t\treturn source.pipe(\n\t\t\ttakeUntil(pageHidden$),\n\t\t\trepeat({ delay: () => pageVisible$ }),\n\t\t);\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAYA;;;;;;;;;AASG;AACG,SAAU,mBAAmB,CAClC,OAAyC,EAAA;AAEzC,IAAA,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,kBAAkB,EAAE,MAAK;AACtE,QAAA,OAAO,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC;AAC/C,KAAC,CAAC,CAAC;IACH,OAAO,CAAC,MAAqB,KAAI;QAChC,OAAO,MAAM,CAAC,IAAI,CACjB,SAAS,CAAC,WAAW,CAAC,EACtB,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,EAAE,CAAC,CACrC,CAAC;AACH,KAAC,CAAC;AACH;;ACnCA;;AAEG;;;;"}