{"version":3,"file":"ng-web-apis-screen-orientation.mjs","sources":["../../../libs/screen-orientation/src/screen.service.ts","../../../libs/screen-orientation/src/viewport.service.ts","../../../libs/screen-orientation/src/ng-web-apis-screen-orientation.ts"],"sourcesContent":["import {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {fromEvent, map, Observable, shareReplay, startWith} from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class WaScreenOrientationService extends Observable<OrientationType> {\n    private readonly win = inject(WA_WINDOW);\n    private readonly screen = this.win.screen as Screen | null; // SSR\n    private readonly stream$ = (this.screen\n        ? fromEvent(this.screen.orientation, 'change').pipe(\n              startWith(null),\n              map(\n                  (): OrientationType =>\n                      /**\n                       * https://developer.mozilla.org/en-US/docs/Web/API/Screen/orientation\n                       * The type read-only property of the ScreenOrientation interface returns the document's current orientation type,\n                       * one of \"portrait-primary\", \"portrait-secondary\", \"landscape-primary\", or \"landscape-secondary\".\n                       *\n                       * Browser compatibility:\n                       * Safari 16.4+, Chrome 38+, Firefox 43+\n                       */\n                      this.win.screen.orientation.type,\n              ),\n          )\n        : fromEvent(this.win, 'orientationchange').pipe(\n              startWith(null),\n              map((): OrientationType => {\n                  /**\n                   * https://developer.mozilla.org/en-US/docs/Web/API/Window/orientation\n                   * Its only possible values are -90, 0, 90, and 180.\n                   * Positive values are counterclockwise; negative values are clockwise.\n                   */\n                  const angle = parseInt(\n                      this.win.orientation as unknown as string,\n                      10,\n                  ) as -90 | 0 | 90 | 180;\n\n                  switch (angle) {\n                      case -90:\n                          return 'landscape-secondary';\n                      case 180:\n                          return 'portrait-secondary';\n                      case 90:\n                          return 'landscape-primary';\n                      case 0:\n                      default:\n                          return 'portrait-primary';\n                  }\n              }),\n          )\n    ).pipe(shareReplay({bufferSize: 1, refCount: true}));\n\n    constructor() {\n        super((subscriber) => this.stream$.subscribe(subscriber));\n    }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {\n    EMPTY,\n    filter,\n    fromEvent,\n    map,\n    merge,\n    Observable,\n    shareReplay,\n    startWith,\n} from 'rxjs';\n\n@Injectable({providedIn: 'root'})\nexport class WaViewportService extends Observable<VisualViewport> {\n    private readonly visualViewport = inject(WA_WINDOW).visualViewport;\n    private readonly stream$ = this.visualViewport\n        ? merge(\n              fromEvent(this.visualViewport, 'resize'),\n              fromEvent(this.visualViewport, 'scroll'),\n              fromEvent(this.visualViewport, 'scrollend'),\n          ).pipe(\n              startWith(null),\n              map(() => this.visualViewport),\n              filter(Boolean),\n              shareReplay({bufferSize: 1, refCount: true}),\n          )\n        : EMPTY;\n\n    constructor() {\n        super((subscriber) => this.stream$.subscribe(subscriber));\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}