{"version":3,"file":"cradokski-fullscreen.mjs","sources":["../../../projects/fullscreen/src/lib/fullscreen.service.ts","../../../projects/fullscreen/src/public-api.ts","../../../projects/fullscreen/src/cradokski-fullscreen.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FullScreenService {\n  private isFullscreen = false;\n  private lastTapTime: number | null = null;\n\n  constructor() { }\n\n  enterFullscreen(): void {\n    if (document.documentElement?.requestFullscreen) {\n      document.documentElement.requestFullscreen();\n    }\n  }\n\n  exitFullscreen(): void {\n    if (document?.fullscreenElement) {\n      document.exitFullscreen();\n    }\n  }\n\n  private fullscreen(): void {\n    if (this.isFullscreen) {\n      this.isFullscreen = false;\n      this.exitFullscreen();\n    } else {\n      this.isFullscreen = true;\n      this.enterFullscreen();\n    }\n  }\n\n  /**\n   * Toggle fullscreen with optional double-tap logic.\n   * \n   * @param options Optional. If requireDoubleTap is true, two quick calls are required.\n   * @returns True if fullscreen is now active, false otherwise.\n   */\n  browserFsToggle(options?: { requireDoubleTap?: boolean; delayMs?: number }): boolean {\n    const requireDoubleTap = options?.requireDoubleTap ?? false;\n    const delayMs = options?.delayMs ?? 300;\n\n    if (!requireDoubleTap) {\n      this.fullscreen();\n      return this.isFullscreen;\n    }\n\n    const now = Date.now();\n    if (this.lastTapTime && now - this.lastTapTime < delayMs) {\n      this.lastTapTime = null;\n      this.fullscreen();\n      return this.isFullscreen;\n    } else {\n      this.lastTapTime = now;\n      return this.isFullscreen; // unchanged\n    }\n  }\n  /**\n   * True if the document is currently in fullscreen mode.\n   * \n   * @returns True if fullscreen is active, false otherwise.\n   */\n  isFullscreenActive(): boolean {\n    return this.isFullscreen;\n  }\n}\n","/*\n * Public API Surface of fullscreen\n */\n\nexport * from './lib/fullscreen.service';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,iBAAiB,CAAA;AAI5B,IAAA,WAAA,GAAA;QAHQ,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;KAEzB;IAEjB,eAAe,GAAA;AACb,QAAA,IAAI,QAAQ,CAAC,eAAe,EAAE,iBAAiB,EAAE;AAC/C,YAAA,QAAQ,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;SAC9C;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,QAAQ,EAAE,iBAAiB,EAAE;YAC/B,QAAQ,CAAC,cAAc,EAAE,CAAC;SAC3B;KACF;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;KACF;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAC,OAA0D,EAAA;AACxE,QAAA,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,IAAI,KAAK,CAAC;AAC5D,QAAA,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,GAAG,CAAC;QAExC,IAAI,CAAC,gBAAgB,EAAE;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;AAED,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE;AACxD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;AACvB,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC;SAC1B;KACF;AACD;;;;AAIG;IACH,kBAAkB,GAAA;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;8GA5DU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACJD;;AAEG;;ACFH;;AAEG;;;;"}