one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 3.49 kB
Source Map (JSON)
{"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"}