{"version":3,"file":"index.js","names":["unavailable"],"sources":["esm/platform/screen-orientation/index.js"],"sourcesContent":["import { ScreenOrientation as unavailable } from \"./unavailable\";\nimport { validateCallback } from \"../validateCallback\";\nconst values = {\n  \"portrait-primary\": \"portrait\",\n  \"portrait-secondary\": \"portraitUpsideDown\",\n  \"landscape-primary\": \"landscapeLeft\",\n  \"landscape-secondary\": \"landscapeRight\"\n};\nconst locks = {\n  portrait: \"portrait-primary\",\n  portraitUpsideDown: \"portrait-secondary\",\n  landscapeLeft: \"landscape-primary\",\n  landscapeRight: \"landscape-secondary\",\n  landscape: \"landscape\"\n};\nfunction orientation() {\n  return values[window.screen.orientation?.type] ?? \"unknown\";\n}\nconst ScreenOrientation = Object.freeze({\n  getOrientation: async () => typeof window === \"undefined\" ? \"unknown\" : orientation(),\n  lock: async (value) => {\n    if (typeof window === \"undefined\") return unavailable.lock(value);\n    if (!locks[value]) throw new TypeError(\"ScreenOrientation.lock: invalid orientation\");\n    const screenOrientation = window.screen.orientation;\n    if (!screenOrientation?.lock)\n      throw new Error(\"ScreenOrientation.lock: orientation locking is unavailable\");\n    await screenOrientation.lock(locks[value]);\n    const result = orientation();\n    if (value === \"landscape\" ? !result.startsWith(\"landscape\") : result !== value) {\n      throw new Error(\n        \"ScreenOrientation.lock: screen did not reach the requested orientation\"\n      );\n    }\n    return result;\n  },\n  unlock: async () => {\n    if (typeof window === \"undefined\") return unavailable.unlock();\n    if (!window.screen.orientation?.unlock)\n      throw new Error(\"ScreenOrientation.unlock: orientation locking is unavailable\");\n    window.screen.orientation.unlock();\n    return orientation();\n  },\n  addChangeListener: (onChange) => {\n    validateCallback(onChange, \"ScreenOrientation.addChangeListener requires a function\");\n    if (typeof window === \"undefined\" || !window.screen.orientation) return () => {\n    };\n    const target = window.screen.orientation;\n    const listener = () => onChange(orientation());\n    target.addEventListener(\"change\", listener);\n    return () => target.removeEventListener(\"change\", listener);\n  }\n});\nexport {\n  ScreenOrientation\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;AAEA,MAAM,SAAS;CACb,oBAAoB;CACpB,sBAAsB;CACtB,qBAAqB;CACrB,uBAAuB;AACzB;AACA,MAAM,QAAQ;CACZ,UAAU;CACV,oBAAoB;CACpB,eAAe;CACf,gBAAgB;CAChB,WAAW;AACb;AACA,SAAS,cAAc;CACrB,OAAO,OAAO,OAAO,OAAO,aAAa,SAAS;AACpD;AACA,MAAM,oBAAoB,OAAO,OAAO;CACtC,gBAAgB,YAAY,OAAO,WAAW,cAAc,YAAY,YAAY;CACpF,MAAM,OAAO,UAAU;EACrB,IAAI,OAAO,WAAW,aAAa,OAAOA,oBAAY,KAAK,KAAK;EAChE,IAAI,CAAC,MAAM,QAAQ,MAAM,IAAI,UAAU,6CAA6C;EACpF,MAAM,oBAAoB,OAAO,OAAO;EACxC,IAAI,CAAC,mBAAmB,MACtB,MAAM,IAAI,MAAM,4DAA4D;EAC9E,MAAM,kBAAkB,KAAK,MAAM,MAAM;EACzC,MAAM,SAAS,YAAY;EAC3B,IAAI,UAAU,cAAc,CAAC,OAAO,WAAW,WAAW,IAAI,WAAW,OAAO;GAC9E,MAAM,IAAI,MACR,wEACF;EACF;EACA,OAAO;CACT;CACA,QAAQ,YAAY;EAClB,IAAI,OAAO,WAAW,aAAa,OAAOA,oBAAY,OAAO;EAC7D,IAAI,CAAC,OAAO,OAAO,aAAa,QAC9B,MAAM,IAAI,MAAM,8DAA8D;EAChF,OAAO,OAAO,YAAY,OAAO;EACjC,OAAO,YAAY;CACrB;CACA,oBAAoB,aAAa;EAC/B,iBAAiB,UAAU,yDAAyD;EACpF,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,OAAO,aAAa,aAAa,CAC9E;EACA,MAAM,SAAS,OAAO,OAAO;EAC7B,MAAM,iBAAiB,SAAS,YAAY,CAAC;EAC7C,OAAO,iBAAiB,UAAU,QAAQ;EAC1C,aAAa,OAAO,oBAAoB,UAAU,QAAQ;CAC5D;AACF,CAAC"}