native-fn 1.0.62 → 1.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +2 -2
  2. package/dist/index.d.ts +0 -198
  3. package/dist/native.cjs +2 -14
  4. package/dist/native.min.cjs +1 -1
  5. package/dist/native.min.mjs +1 -1
  6. package/dist/native.mjs +2 -14
  7. package/dist/native.umd.js +2 -14
  8. package/dist/native.umd.min.js +1 -1
  9. package/dist/plugin/app/index.cjs +12 -7
  10. package/dist/plugin/app/index.d.ts +12 -53
  11. package/dist/plugin/app/index.min.cjs +1 -1
  12. package/dist/plugin/app/index.min.mjs +1 -1
  13. package/dist/plugin/app/index.mjs +12 -7
  14. package/dist/plugin/app/index.umd.js +12 -7
  15. package/dist/plugin/app/index.umd.min.js +1 -1
  16. package/dist/plugin/app/src/plugin/app/constants/index.d.ts +12 -0
  17. package/dist/plugin/app/src/plugin/app/cores/index.d.ts +3 -0
  18. package/dist/plugin/app/src/plugin/app/index.d.ts +1 -1
  19. package/dist/plugin/app/src/plugin/app/types/app.d.ts +6 -1
  20. package/dist/plugin/app/src/plugin/app/types/index.d.ts +2 -2
  21. package/dist/plugin/app/src/plugin/appearance/constants/index.d.ts +11 -0
  22. package/dist/plugin/app/src/plugin/appearance/cores/index.d.ts +3 -0
  23. package/dist/plugin/app/src/plugin/appearance/index.d.ts +8 -0
  24. package/dist/plugin/app/src/plugin/appearance/types/appearance.d.ts +6 -0
  25. package/dist/plugin/app/src/plugin/appearance/types/index.d.ts +13 -0
  26. package/dist/plugin/app/src/plugin/camera/constants/inedx.d.ts +4 -0
  27. package/dist/plugin/app/src/plugin/camera/cores/index.d.ts +3 -0
  28. package/dist/plugin/app/src/plugin/camera/index.d.ts +1 -1
  29. package/dist/plugin/app/src/plugin/camera/types/camera.d.ts +1 -1
  30. package/dist/plugin/app/src/plugin/camera/types/index.d.ts +1 -1
  31. package/dist/plugin/app/src/plugin/camera/utils/try-open-camera.d.ts +1 -1
  32. package/dist/plugin/app/src/plugin/clipboard/cores/index.d.ts +3 -0
  33. package/dist/plugin/app/src/plugin/fullscreen/cores/index.d.ts +35 -0
  34. package/dist/plugin/app/src/plugin/fullscreen/types/fullscreen.d.ts +9 -3
  35. package/dist/plugin/app/src/plugin/theme/constants/index.d.ts +14 -0
  36. package/dist/plugin/app/src/plugin/theme/cores/index.d.ts +3 -0
  37. package/dist/plugin/app/src/plugin/theme/index.d.ts +1 -1
  38. package/dist/plugin/app/src/plugin/theme/types/index.d.ts +1 -1
  39. package/dist/plugin/app/src/plugin/theme/types/theme.d.ts +1 -1
  40. package/dist/plugin/app/src/types/native.d.ts +0 -8
  41. package/dist/plugin/appearance/index.cjs +764 -0
  42. package/dist/plugin/appearance/index.d.ts +100 -0
  43. package/dist/plugin/appearance/index.min.cjs +1 -0
  44. package/dist/plugin/appearance/index.min.mjs +1 -0
  45. package/dist/plugin/appearance/index.mjs +762 -0
  46. package/dist/plugin/appearance/index.umd.js +770 -0
  47. package/dist/plugin/appearance/index.umd.min.js +1 -0
  48. package/dist/plugin/appearance/src/constants/platform.d.ts +67 -0
  49. package/dist/plugin/appearance/src/errors/plugin-not-extended-error.d.ts +2 -0
  50. package/dist/plugin/appearance/src/plugin/app/constants/index.d.ts +12 -0
  51. package/dist/plugin/appearance/src/plugin/app/cores/index.d.ts +3 -0
  52. package/dist/plugin/appearance/src/plugin/app/errors/url-open-error.d.ts +2 -0
  53. package/dist/plugin/appearance/src/plugin/app/index.d.ts +12 -0
  54. package/dist/plugin/appearance/src/plugin/app/types/app.d.ts +54 -0
  55. package/dist/plugin/appearance/src/plugin/app/types/index.d.ts +16 -0
  56. package/dist/plugin/appearance/src/plugin/app/utils/try-open-url.d.ts +16 -0
  57. package/dist/plugin/appearance/src/plugin/appearance/constants/index.d.ts +11 -0
  58. package/dist/plugin/appearance/src/plugin/appearance/cores/index.d.ts +3 -0
  59. package/dist/plugin/appearance/src/plugin/appearance/index.d.ts +8 -0
  60. package/dist/plugin/appearance/src/plugin/appearance/types/appearance.d.ts +6 -0
  61. package/dist/plugin/appearance/src/plugin/appearance/types/index.d.ts +13 -0
  62. package/dist/plugin/appearance/src/plugin/camera/constants/inedx.d.ts +4 -0
  63. package/dist/plugin/appearance/src/plugin/camera/cores/index.d.ts +3 -0
  64. package/dist/plugin/appearance/src/plugin/camera/index.d.ts +8 -0
  65. package/dist/plugin/appearance/src/plugin/camera/types/camera.d.ts +4 -0
  66. package/dist/plugin/appearance/src/plugin/camera/types/index.d.ts +13 -0
  67. package/dist/plugin/appearance/src/plugin/camera/utils/try-open-camera.d.ts +2 -0
  68. package/dist/plugin/appearance/src/plugin/clipboard/cores/index.d.ts +3 -0
  69. package/dist/plugin/appearance/src/plugin/clipboard/index.d.ts +5 -0
  70. package/dist/plugin/appearance/src/plugin/clipboard/types/clipboard.d.ts +4 -0
  71. package/dist/plugin/appearance/src/plugin/clipboard/types/index.d.ts +11 -0
  72. package/dist/plugin/appearance/src/plugin/fullscreen/cores/index.d.ts +35 -0
  73. package/dist/plugin/appearance/src/plugin/fullscreen/index.d.ts +5 -0
  74. package/dist/plugin/appearance/src/plugin/fullscreen/types/fullscreen.d.ts +17 -0
  75. package/dist/plugin/appearance/src/plugin/fullscreen/types/index.d.ts +11 -0
  76. package/dist/plugin/appearance/src/plugin/theme/constants/index.d.ts +14 -0
  77. package/dist/plugin/appearance/src/plugin/theme/cores/index.d.ts +3 -0
  78. package/dist/plugin/appearance/src/plugin/theme/errors/easing-error.d.ts +6 -0
  79. package/dist/plugin/appearance/src/plugin/theme/errors/unsupported-color-error.d.ts +2 -0
  80. package/dist/plugin/appearance/src/plugin/theme/index.d.ts +17 -0
  81. package/dist/plugin/appearance/src/plugin/theme/types/color.d.ts +17 -0
  82. package/dist/plugin/appearance/src/plugin/theme/types/easing-syntax.d.ts +16 -0
  83. package/dist/plugin/appearance/src/plugin/theme/types/index.d.ts +23 -0
  84. package/dist/plugin/appearance/src/plugin/theme/types/theme.d.ts +24 -0
  85. package/dist/plugin/appearance/src/plugin/theme/utils/parse-color.d.ts +2 -0
  86. package/dist/plugin/appearance/src/plugin/theme/utils/parse-easing-function.d.ts +2 -0
  87. package/dist/plugin/appearance/src/types/event-listener-util.d.ts +11 -0
  88. package/dist/plugin/appearance/src/types/index.d.ts +1 -0
  89. package/dist/plugin/appearance/src/types/native.d.ts +27 -0
  90. package/dist/plugin/appearance/src/types/platform.d.ts +16 -0
  91. package/dist/plugin/appearance/src/utils/assign.d.ts +1 -0
  92. package/dist/plugin/appearance/src/utils/compare-version.d.ts +1 -0
  93. package/dist/plugin/appearance/src/utils/create-custom-error.d.ts +6 -0
  94. package/dist/plugin/appearance/src/utils/create-hidden-element.d.ts +1 -0
  95. package/dist/plugin/appearance/src/utils/dispatch-click-event.d.ts +1 -0
  96. package/dist/plugin/appearance/src/utils/event-listener-utils.d.ts +3 -0
  97. package/dist/plugin/appearance/src/utils/get-topmost-window.d.ts +1 -0
  98. package/dist/plugin/appearance/src/utils/is-secure-context.d.ts +1 -0
  99. package/dist/plugin/camera/index.cjs +3 -3
  100. package/dist/plugin/camera/index.d.ts +0 -150
  101. package/dist/plugin/camera/index.min.cjs +1 -1
  102. package/dist/plugin/camera/index.min.mjs +1 -1
  103. package/dist/plugin/camera/index.mjs +3 -3
  104. package/dist/plugin/camera/index.umd.js +3 -3
  105. package/dist/plugin/camera/index.umd.min.js +1 -1
  106. package/dist/plugin/camera/src/plugin/app/constants/index.d.ts +12 -0
  107. package/dist/plugin/camera/src/plugin/app/cores/index.d.ts +3 -0
  108. package/dist/plugin/camera/src/plugin/app/index.d.ts +1 -1
  109. package/dist/plugin/camera/src/plugin/app/types/app.d.ts +6 -1
  110. package/dist/plugin/camera/src/plugin/app/types/index.d.ts +2 -2
  111. package/dist/plugin/camera/src/plugin/appearance/constants/index.d.ts +11 -0
  112. package/dist/plugin/camera/src/plugin/appearance/cores/index.d.ts +3 -0
  113. package/dist/plugin/camera/src/plugin/appearance/index.d.ts +8 -0
  114. package/dist/plugin/camera/src/plugin/appearance/types/appearance.d.ts +6 -0
  115. package/dist/plugin/camera/src/plugin/appearance/types/index.d.ts +13 -0
  116. package/dist/plugin/camera/src/plugin/camera/constants/inedx.d.ts +4 -0
  117. package/dist/plugin/camera/src/plugin/camera/cores/index.d.ts +3 -0
  118. package/dist/plugin/camera/src/plugin/camera/index.d.ts +1 -1
  119. package/dist/plugin/camera/src/plugin/camera/types/camera.d.ts +1 -1
  120. package/dist/plugin/camera/src/plugin/camera/types/index.d.ts +1 -1
  121. package/dist/plugin/camera/src/plugin/camera/utils/try-open-camera.d.ts +1 -1
  122. package/dist/plugin/camera/src/plugin/clipboard/cores/index.d.ts +3 -0
  123. package/dist/plugin/camera/src/plugin/fullscreen/cores/index.d.ts +35 -0
  124. package/dist/plugin/camera/src/plugin/fullscreen/types/fullscreen.d.ts +9 -3
  125. package/dist/plugin/camera/src/plugin/theme/constants/index.d.ts +14 -0
  126. package/dist/plugin/camera/src/plugin/theme/cores/index.d.ts +3 -0
  127. package/dist/plugin/camera/src/plugin/theme/index.d.ts +1 -1
  128. package/dist/plugin/camera/src/plugin/theme/types/index.d.ts +1 -1
  129. package/dist/plugin/camera/src/plugin/theme/types/theme.d.ts +1 -1
  130. package/dist/plugin/camera/src/types/native.d.ts +0 -8
  131. package/dist/plugin/clipboard/index.cjs +3 -3
  132. package/dist/plugin/clipboard/index.d.ts +0 -135
  133. package/dist/plugin/clipboard/index.min.cjs +1 -1
  134. package/dist/plugin/clipboard/index.min.mjs +1 -1
  135. package/dist/plugin/clipboard/index.mjs +3 -3
  136. package/dist/plugin/clipboard/index.umd.js +3 -3
  137. package/dist/plugin/clipboard/index.umd.min.js +1 -1
  138. package/dist/plugin/clipboard/src/plugin/app/constants/index.d.ts +12 -0
  139. package/dist/plugin/clipboard/src/plugin/app/cores/index.d.ts +3 -0
  140. package/dist/plugin/clipboard/src/plugin/app/index.d.ts +1 -1
  141. package/dist/plugin/clipboard/src/plugin/app/types/app.d.ts +6 -1
  142. package/dist/plugin/clipboard/src/plugin/app/types/index.d.ts +2 -2
  143. package/dist/plugin/clipboard/src/plugin/appearance/constants/index.d.ts +11 -0
  144. package/dist/plugin/clipboard/src/plugin/appearance/cores/index.d.ts +3 -0
  145. package/dist/plugin/clipboard/src/plugin/appearance/index.d.ts +8 -0
  146. package/dist/plugin/clipboard/src/plugin/appearance/types/appearance.d.ts +6 -0
  147. package/dist/plugin/clipboard/src/plugin/appearance/types/index.d.ts +13 -0
  148. package/dist/plugin/clipboard/src/plugin/camera/constants/inedx.d.ts +4 -0
  149. package/dist/plugin/clipboard/src/plugin/camera/cores/index.d.ts +3 -0
  150. package/dist/plugin/clipboard/src/plugin/camera/index.d.ts +1 -1
  151. package/dist/plugin/clipboard/src/plugin/camera/types/camera.d.ts +1 -1
  152. package/dist/plugin/clipboard/src/plugin/camera/types/index.d.ts +1 -1
  153. package/dist/plugin/clipboard/src/plugin/camera/utils/try-open-camera.d.ts +1 -1
  154. package/dist/plugin/clipboard/src/plugin/clipboard/cores/index.d.ts +3 -0
  155. package/dist/plugin/clipboard/src/plugin/fullscreen/cores/index.d.ts +35 -0
  156. package/dist/plugin/clipboard/src/plugin/fullscreen/types/fullscreen.d.ts +9 -3
  157. package/dist/plugin/clipboard/src/plugin/theme/constants/index.d.ts +14 -0
  158. package/dist/plugin/clipboard/src/plugin/theme/cores/index.d.ts +3 -0
  159. package/dist/plugin/clipboard/src/plugin/theme/index.d.ts +1 -1
  160. package/dist/plugin/clipboard/src/plugin/theme/types/index.d.ts +1 -1
  161. package/dist/plugin/clipboard/src/plugin/theme/types/theme.d.ts +1 -1
  162. package/dist/plugin/clipboard/src/types/native.d.ts +0 -8
  163. package/dist/plugin/fullscreen/index.cjs +322 -327
  164. package/dist/plugin/fullscreen/index.d.ts +10 -130
  165. package/dist/plugin/fullscreen/index.min.cjs +1 -1
  166. package/dist/plugin/fullscreen/index.min.mjs +1 -1
  167. package/dist/plugin/fullscreen/index.mjs +322 -327
  168. package/dist/plugin/fullscreen/index.umd.js +322 -327
  169. package/dist/plugin/fullscreen/index.umd.min.js +1 -1
  170. package/dist/plugin/fullscreen/src/plugin/app/constants/index.d.ts +12 -0
  171. package/dist/plugin/fullscreen/src/plugin/app/cores/index.d.ts +3 -0
  172. package/dist/plugin/fullscreen/src/plugin/app/index.d.ts +1 -1
  173. package/dist/plugin/fullscreen/src/plugin/app/types/app.d.ts +6 -1
  174. package/dist/plugin/fullscreen/src/plugin/app/types/index.d.ts +2 -2
  175. package/dist/plugin/fullscreen/src/plugin/appearance/constants/index.d.ts +11 -0
  176. package/dist/plugin/fullscreen/src/plugin/appearance/cores/index.d.ts +3 -0
  177. package/dist/plugin/fullscreen/src/plugin/appearance/index.d.ts +8 -0
  178. package/dist/plugin/fullscreen/src/plugin/appearance/types/appearance.d.ts +6 -0
  179. package/dist/plugin/fullscreen/src/plugin/appearance/types/index.d.ts +13 -0
  180. package/dist/plugin/fullscreen/src/plugin/camera/constants/inedx.d.ts +4 -0
  181. package/dist/plugin/fullscreen/src/plugin/camera/cores/index.d.ts +3 -0
  182. package/dist/plugin/fullscreen/src/plugin/camera/index.d.ts +1 -1
  183. package/dist/plugin/fullscreen/src/plugin/camera/types/camera.d.ts +1 -1
  184. package/dist/plugin/fullscreen/src/plugin/camera/types/index.d.ts +1 -1
  185. package/dist/plugin/fullscreen/src/plugin/camera/utils/try-open-camera.d.ts +1 -1
  186. package/dist/plugin/fullscreen/src/plugin/clipboard/cores/index.d.ts +3 -0
  187. package/dist/plugin/fullscreen/src/plugin/fullscreen/cores/index.d.ts +35 -0
  188. package/dist/plugin/fullscreen/src/plugin/fullscreen/types/fullscreen.d.ts +9 -3
  189. package/dist/plugin/fullscreen/src/plugin/theme/constants/index.d.ts +14 -0
  190. package/dist/plugin/fullscreen/src/plugin/theme/cores/index.d.ts +3 -0
  191. package/dist/plugin/fullscreen/src/plugin/theme/index.d.ts +1 -1
  192. package/dist/plugin/fullscreen/src/plugin/theme/types/index.d.ts +1 -1
  193. package/dist/plugin/fullscreen/src/plugin/theme/types/theme.d.ts +1 -1
  194. package/dist/plugin/fullscreen/src/types/native.d.ts +0 -8
  195. package/dist/plugin/theme/index.cjs +3 -3
  196. package/dist/plugin/theme/index.d.ts +0 -150
  197. package/dist/plugin/theme/index.min.cjs +1 -1
  198. package/dist/plugin/theme/index.min.mjs +1 -1
  199. package/dist/plugin/theme/index.mjs +3 -3
  200. package/dist/plugin/theme/index.umd.js +3 -3
  201. package/dist/plugin/theme/index.umd.min.js +1 -1
  202. package/dist/plugin/theme/src/plugin/app/constants/index.d.ts +12 -0
  203. package/dist/plugin/theme/src/plugin/app/cores/index.d.ts +3 -0
  204. package/dist/plugin/theme/src/plugin/app/index.d.ts +1 -1
  205. package/dist/plugin/theme/src/plugin/app/types/app.d.ts +6 -1
  206. package/dist/plugin/theme/src/plugin/app/types/index.d.ts +2 -2
  207. package/dist/plugin/theme/src/plugin/appearance/constants/index.d.ts +11 -0
  208. package/dist/plugin/theme/src/plugin/appearance/cores/index.d.ts +3 -0
  209. package/dist/plugin/theme/src/plugin/appearance/index.d.ts +8 -0
  210. package/dist/plugin/theme/src/plugin/appearance/types/appearance.d.ts +6 -0
  211. package/dist/plugin/theme/src/plugin/appearance/types/index.d.ts +13 -0
  212. package/dist/plugin/theme/src/plugin/camera/constants/inedx.d.ts +4 -0
  213. package/dist/plugin/theme/src/plugin/camera/cores/index.d.ts +3 -0
  214. package/dist/plugin/theme/src/plugin/camera/index.d.ts +1 -1
  215. package/dist/plugin/theme/src/plugin/camera/types/camera.d.ts +1 -1
  216. package/dist/plugin/theme/src/plugin/camera/types/index.d.ts +1 -1
  217. package/dist/plugin/theme/src/plugin/camera/utils/try-open-camera.d.ts +1 -1
  218. package/dist/plugin/theme/src/plugin/clipboard/cores/index.d.ts +3 -0
  219. package/dist/plugin/theme/src/plugin/fullscreen/cores/index.d.ts +35 -0
  220. package/dist/plugin/theme/src/plugin/fullscreen/types/fullscreen.d.ts +9 -3
  221. package/dist/plugin/theme/src/plugin/theme/constants/index.d.ts +14 -0
  222. package/dist/plugin/theme/src/plugin/theme/cores/index.d.ts +3 -0
  223. package/dist/plugin/theme/src/plugin/theme/index.d.ts +1 -1
  224. package/dist/plugin/theme/src/plugin/theme/types/index.d.ts +1 -1
  225. package/dist/plugin/theme/src/plugin/theme/types/theme.d.ts +1 -1
  226. package/dist/plugin/theme/src/types/native.d.ts +0 -8
  227. package/dist/src/plugin/app/constants/index.d.ts +12 -0
  228. package/dist/src/plugin/app/cores/index.d.ts +3 -0
  229. package/dist/src/plugin/app/index.d.ts +1 -1
  230. package/dist/src/plugin/app/types/app.d.ts +6 -1
  231. package/dist/src/plugin/app/types/index.d.ts +2 -2
  232. package/dist/src/plugin/appearance/constants/index.d.ts +11 -0
  233. package/dist/src/plugin/appearance/cores/index.d.ts +3 -0
  234. package/dist/src/plugin/appearance/index.d.ts +8 -0
  235. package/dist/src/plugin/appearance/types/appearance.d.ts +6 -0
  236. package/dist/src/plugin/appearance/types/index.d.ts +13 -0
  237. package/dist/src/plugin/camera/constants/inedx.d.ts +4 -0
  238. package/dist/src/plugin/camera/cores/index.d.ts +3 -0
  239. package/dist/src/plugin/camera/index.d.ts +1 -1
  240. package/dist/src/plugin/camera/types/camera.d.ts +1 -1
  241. package/dist/src/plugin/camera/types/index.d.ts +1 -1
  242. package/dist/src/plugin/camera/utils/try-open-camera.d.ts +1 -1
  243. package/dist/src/plugin/clipboard/cores/index.d.ts +3 -0
  244. package/dist/src/plugin/fullscreen/cores/index.d.ts +35 -0
  245. package/dist/src/plugin/fullscreen/types/fullscreen.d.ts +9 -3
  246. package/dist/src/plugin/theme/constants/index.d.ts +14 -0
  247. package/dist/src/plugin/theme/cores/index.d.ts +3 -0
  248. package/dist/src/plugin/theme/index.d.ts +1 -1
  249. package/dist/src/plugin/theme/types/index.d.ts +1 -1
  250. package/dist/src/plugin/theme/types/theme.d.ts +1 -1
  251. package/dist/src/types/native.d.ts +0 -8
  252. package/package.json +1 -1
@@ -0,0 +1,764 @@
1
+ 'use strict';
2
+
3
+ var Appearances;
4
+ (function (Appearances) {
5
+ Appearances["Unknown"] = "unknown";
6
+ Appearances["Light"] = "light";
7
+ Appearances["Dark"] = "dark";
8
+ })(Appearances || (Appearances = {}));
9
+ var FALLBACK_MEDIA_QUERY_LIST = {
10
+ matches: false,
11
+ media: 'not all',
12
+ onchange: null,
13
+ addListener: function () {
14
+ },
15
+ removeListener: function () {
16
+ },
17
+ addEventListener: function () {
18
+ },
19
+ removeEventListener: function () {
20
+ },
21
+ dispatchEvent: function () {
22
+ return false;
23
+ },
24
+ };
25
+ var MEDIA_QUERY_LIST = typeof globalThis.matchMedia !== 'undefined' ? globalThis.matchMedia('(prefers-color-scheme: dark)') : FALLBACK_MEDIA_QUERY_LIST;
26
+ var SUPPORT_PREFERS_COLOR_SCHEME = MEDIA_QUERY_LIST.media !== 'not all';
27
+ var CONTEXT = 'document' in globalThis ? globalThis.document.createElement('canvas').getContext('2d', { willReadFrequently: true }) : null;
28
+ var SVG_PIXEL_DATA_URL = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IndoaXRlIi8+PC9zdmc+';
29
+ var ENTRIES = [];
30
+
31
+ function compareVersion(lhs, rhs) {
32
+ var pa = lhs.split('.');
33
+ var pb = rhs.split('.');
34
+ var length = Math.max(pa.length, pb.length);
35
+ for (var i = 0; i < length; i++) {
36
+ var a = void 0;
37
+ var b = void 0;
38
+ if (i < pa.length)
39
+ a = parseInt(pa[i], 10);
40
+ else
41
+ a = 0;
42
+ if (i < pb.length)
43
+ b = parseInt(pb[i], 10);
44
+ else
45
+ b = 0;
46
+ if (a > b)
47
+ return 1;
48
+ if (a < b)
49
+ return -1;
50
+ }
51
+ return 0;
52
+ }
53
+
54
+ var OS;
55
+ (function (OS) {
56
+ OS["Unknown"] = "Unknown";
57
+ OS["Android"] = "Android";
58
+ OS["iOS"] = "iOS";
59
+ OS["Windows"] = "Windows";
60
+ OS["MacOS"] = "MacOS";
61
+ })(OS || (OS = {}));
62
+ var Devices;
63
+ (function (Devices) {
64
+ Devices["Unknown"] = "Unknown";
65
+ Devices["Mobile"] = "Mobile";
66
+ Devices["Desktop"] = "Desktop";
67
+ })(Devices || (Devices = {}));
68
+ var Engines;
69
+ (function (Engines) {
70
+ Engines["Unknown"] = "Unknown";
71
+ Engines["EdgeHTML"] = "EdgeHTML";
72
+ Engines["ArkWeb"] = "ArkWeb";
73
+ Engines["Blink"] = "Blink";
74
+ Engines["Presto"] = "Presto";
75
+ Engines["WebKit"] = "WebKit";
76
+ Engines["Trident"] = "Trident";
77
+ Engines["NetFront"] = "NetFront";
78
+ Engines["KHTML"] = "KHTML";
79
+ Engines["Tasman"] = "Tasman";
80
+ Engines["Gecko"] = "Gecko";
81
+ })(Engines || (Engines = {}));
82
+ var Browsers;
83
+ (function (Browsers) {
84
+ Browsers["Unknown"] = "Unknown";
85
+ Browsers["Chrome"] = "Chrome";
86
+ Browsers["Safari"] = "Safari";
87
+ Browsers["Edge"] = "Edge";
88
+ Browsers["Firefox"] = "Firefox";
89
+ Browsers["Opera"] = "Opera";
90
+ Browsers["IE"] = "IE";
91
+ Browsers["SamsungInternet"] = "SamsungInternet";
92
+ })(Browsers || (Browsers = {}));
93
+ var userAgent = typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgent === 'string' ? globalThis.navigator.userAgent : '';
94
+ var IS_NODE_JS = typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.node !== undefined;
95
+ var IS_ELECTRON = (typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && globalThis.process.versions.electron !== undefined) || (/ electron\//i.test(userAgent));
96
+ var IS_REACT_NATIVE = typeof globalThis.navigator !== 'undefined' && globalThis.navigator.product === 'ReactNative';
97
+ var Platform = {
98
+ device: Devices.Unknown,
99
+ os: OS.Unknown,
100
+ osVersion: '',
101
+ engine: Engines.Unknown,
102
+ engineVersion: '',
103
+ browser: Browsers.Unknown,
104
+ browserVersion: '',
105
+ renderer: getRenderer(),
106
+ userAgent: userAgent,
107
+ isMobile: false,
108
+ isDesktop: false,
109
+ isStandalone: false,
110
+ isWebview: /; ?wv|applewebkit(?!.*safari)/i.test(userAgent),
111
+ };
112
+ var OS_RESOLVER_MAP = [
113
+ [/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
114
+ [/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i, OS.Windows, resolveWindowsVersion],
115
+ [/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i, OS.Windows, resolveWindowsVersion],
116
+ [/windows nt ?([\d.)]*)(?!.+xbox)/i, OS.Windows, resolveWindowsVersion],
117
+ [/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i, OS.Windows, resolveWindowsVersion],
118
+ [/windows ce\/?([\d.]*)/i, OS.Windows, resolveWindowsVersion],
119
+ [/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i, OS.iOS, resolveUnderscoreVersion],
120
+ [/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i, OS.iOS, resolveUnderscoreVersion],
121
+ [/cfnetwork\/.+darwin/i, OS.iOS, resolveUnderscoreVersion],
122
+ [/mac os x ?([\w. ]*)/i, OS.MacOS, resolveUnderscoreVersion],
123
+ [/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i, OS.MacOS, resolveUnderscoreVersion],
124
+ [/droid ([\w.]+)\b.+(android[- ]x86)/i, OS.Android],
125
+ [/android\w*[-\/.; ]?([\d.]*)/i, OS.Android],
126
+ ];
127
+ var ENGINE_RESOLVER_MAP = [
128
+ [/windows.+ edge\/([\w.]+)/i, Engines.EdgeHTML],
129
+ [/arkweb\/([\w.]+)/i, Engines.ArkWeb],
130
+ [/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i, Engines.Blink],
131
+ [/presto\/([\w.]+)/i, Engines.Presto],
132
+ [/webkit\/([\w.]+)/i, Engines.WebKit],
133
+ [/trident\/([\w.]+)/i, Engines.Trident],
134
+ [/netfront\/([\w.]+)/i, Engines.NetFront],
135
+ [/khtml[\/ ]\(?([\w.]+)/i, Engines.KHTML],
136
+ [/tasman[\/ ]\(?([\w.]+)/i, Engines.Tasman],
137
+ [/rv:([\w.]{1,9})\b.+gecko/i, Engines.Gecko]
138
+ ];
139
+ var BROWSER_RESOLVER_MAP = [
140
+ [/\b(?:crmo|crios)\/([\w.]+)/i, Browsers.Chrome],
141
+ [/webview.+edge\/([\w.]+)/i, Browsers.Edge],
142
+ [/edg(?:e|ios|a)?\/([\w.]+)/i, Browsers.Edge],
143
+ [/opera mini\/([-\w.]+)/i, Browsers.Opera],
144
+ [/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i, Browsers.Opera],
145
+ [/opera(?:.+version\/|[\/ ]+)([\w.]+)/i, Browsers.Opera],
146
+ [/opios[\/ ]+([\w.]+)/i, Browsers.Opera],
147
+ [/\bop(?:rg)?x\/([\w.]+)/i, Browsers.Opera],
148
+ [/\bopr\/([\w.]+)/i, Browsers.Opera],
149
+ [/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i, Browsers.IE],
150
+ [/(?:ms|\()ie ([\w.]+)/i, Browsers.IE],
151
+ [/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i, Browsers.IE],
152
+ [/\bfocus\/([\w.]+)/i, Browsers.Firefox],
153
+ [/\bopt\/([\w.]+)/i, Browsers.Opera],
154
+ [/coast\/([\w.]+)/i, Browsers.Opera],
155
+ [/fxios\/([\w.-]+)/i, Browsers.Firefox],
156
+ [/samsungbrowser\/([\w.]+)/i, Browsers.SamsungInternet],
157
+ [/headlesschrome(?:\/([\w.]+)| )/i, Browsers.Chrome],
158
+ [/wv\).+chrome\/([\w.]+).+edgw\//i, Browsers.Edge],
159
+ [/ wv\).+(chrome)\/([\w.]+)/i, Browsers.Chrome],
160
+ [/chrome\/([\w.]+) mobile/i, Browsers.Chrome],
161
+ [/chrome\/v?([\w.]+)/i, Browsers.Chrome],
162
+ [/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i, Browsers.Safari],
163
+ [/iphone .*mobile(?:\/\w+ | ?)safari/i, Browsers.Safari],
164
+ [/version\/([\w.,]+) .*safari/i, Browsers.Safari],
165
+ [/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i, Browsers.Safari, '1'],
166
+ [/(?:mobile|tablet);.*firefox\/([\w.-]+)/i, Browsers.Firefox],
167
+ [/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox],
168
+ [/firefox\/([\w.]+)/i, Browsers.Firefox],
169
+ ];
170
+ function resolveWindowsVersion(string) {
171
+ if (string === undefined)
172
+ return '';
173
+ var mapped = {
174
+ '4.90': 'ME',
175
+ 'NT3.51': 'NT 3.11',
176
+ 'NT4.0': 'NT 4.0',
177
+ 'NT 5.0': '2000',
178
+ 'NT 5.1': 'XP',
179
+ 'NT 5.2': 'XP',
180
+ 'NT 6.0': 'Vista',
181
+ 'NT 6.1': '7',
182
+ 'NT 6.2': '8',
183
+ 'NT 6.3': '8.1',
184
+ 'NT 6.4': '10',
185
+ 'NT 10.0': '10',
186
+ 'ARM': 'RT'
187
+ }[string];
188
+ if (mapped !== undefined)
189
+ return mapped;
190
+ return string;
191
+ }
192
+ function resolveUnderscoreVersion(string) {
193
+ if (string === undefined)
194
+ return '';
195
+ return string.replace(/_/g, '.');
196
+ }
197
+ function resolveSemanticWindowsVersion(version, defaultValue) {
198
+ if (version.major === 10 && version.minor === 0 && version.build >= 22000)
199
+ return '11';
200
+ if (version.major === 10 && version.minor === 0 && version.build < 22000)
201
+ return '10';
202
+ if (version.major === 6 && version.minor === 3)
203
+ return '8.1';
204
+ if (version.major === 6 && version.minor === 2)
205
+ return '8';
206
+ if (version.major === 6 && version.minor === 1)
207
+ return '7';
208
+ if (version.major === 6 && version.minor === 0)
209
+ return 'Vista';
210
+ if (version.major === 5 && version.minor === 1)
211
+ return 'XP';
212
+ if (version.major === 5 && version.minor === 2)
213
+ return 'XP';
214
+ if (version.major === 5 && version.minor === 0)
215
+ return '2000';
216
+ if (version.major === 4 && version.minor === 90)
217
+ return 'ME';
218
+ if (version.major === 4 && version.minor === 0)
219
+ return 'NT 4.0';
220
+ if (version.major === 3 && version.minor === 51)
221
+ return 'NT 3.11';
222
+ return defaultValue;
223
+ }
224
+ function resolveSemanticDarwinVersion(version, defaultValue) {
225
+ if (version.major >= 24)
226
+ return '' + (version.major - 9) + '.' + version.minor + '.' + version.build;
227
+ if (version.major === 23)
228
+ return '14.' + version.minor + '.' + version.build;
229
+ if (version.major === 22)
230
+ return '13.' + version.minor + '.' + version.build;
231
+ if (version.major === 21)
232
+ return '12.' + version.minor + '.' + version.build;
233
+ if (version.major === 20)
234
+ return '11.' + version.minor + '.' + version.build;
235
+ if (version.major === 19)
236
+ return '10.15.' + version.minor;
237
+ if (version.major === 18)
238
+ return '10.14.' + version.minor;
239
+ if (version.major === 17)
240
+ return '10.13.' + version.minor;
241
+ if (version.major === 16)
242
+ return '10.12.' + version.minor;
243
+ if (version.major === 15)
244
+ return '10.11.' + version.minor;
245
+ if (version.major === 14)
246
+ return '10.10.' + version.minor;
247
+ if (version.major === 13)
248
+ return '10.9.' + version.minor;
249
+ if (version.major >= 5 && version.major <= 12)
250
+ return '10.' + (version.major - 4) + '.' + version.minor;
251
+ return defaultValue;
252
+ }
253
+ function resolveSemanticAndroidVersion(version, defaultValue) {
254
+ if (version.major >= 36)
255
+ return '16';
256
+ if (version.major === 35)
257
+ return '15';
258
+ if (version.major === 34)
259
+ return '14';
260
+ if (version.major === 33)
261
+ return '13';
262
+ if (version.major === 32)
263
+ return '12.1';
264
+ if (version.major === 31)
265
+ return '12';
266
+ if (version.major === 30)
267
+ return '11';
268
+ if (version.major === 29)
269
+ return '10';
270
+ if (version.major === 28)
271
+ return '9';
272
+ if (version.major === 27)
273
+ return '8.1';
274
+ if (version.major === 26)
275
+ return '8.0';
276
+ if (version.major === 25)
277
+ return '7.1';
278
+ if (version.major === 24)
279
+ return '7.0';
280
+ if (version.major === 23)
281
+ return '6.0';
282
+ if (version.major === 22)
283
+ return '5.1';
284
+ if (version.major === 21)
285
+ return '5.0';
286
+ if (version.major === 20)
287
+ return '4.4';
288
+ if (version.major === 19)
289
+ return '4.4';
290
+ if (version.major === 18)
291
+ return '4.3';
292
+ if (version.major === 17)
293
+ return '4.2';
294
+ if (version.major === 16)
295
+ return '4.1';
296
+ if (version.major === 15)
297
+ return '4.0.3';
298
+ if (version.major === 14)
299
+ return '4.0';
300
+ if (version.major === 13)
301
+ return '3.2';
302
+ if (version.major === 12)
303
+ return '3.1';
304
+ if (version.major === 11)
305
+ return '3.0';
306
+ if (version.major === 10)
307
+ return '2.3.3';
308
+ if (version.major === 9)
309
+ return '2.3';
310
+ if (version.major === 8)
311
+ return '2.2';
312
+ if (version.major === 7)
313
+ return '2.1';
314
+ if (version.major === 6)
315
+ return '2.0.1';
316
+ if (version.major === 5)
317
+ return '2.0';
318
+ if (version.major === 4)
319
+ return '1.6';
320
+ if (version.major === 3)
321
+ return '1.5';
322
+ if (version.major === 2)
323
+ return '1.1';
324
+ if (version.major === 1)
325
+ return '1.0';
326
+ return defaultValue;
327
+ }
328
+ function resolveVersion(string, resolver) {
329
+ if (typeof resolver === 'function')
330
+ return resolver(string);
331
+ if (typeof resolver === 'string')
332
+ return resolver;
333
+ if (string === undefined)
334
+ return '';
335
+ return string;
336
+ }
337
+ function normalizeBrand(entry) {
338
+ if (entry === null || entry === undefined)
339
+ return { brand: '', version: '' };
340
+ if (typeof entry === 'string')
341
+ return { brand: entry, version: '' };
342
+ return { brand: entry.brand, version: entry.version };
343
+ }
344
+ function getRenderer() {
345
+ if (typeof globalThis.document === 'undefined')
346
+ return '';
347
+ var canvas = globalThis.document.createElement('canvas');
348
+ if (typeof canvas.getContext !== 'function')
349
+ return '';
350
+ var context = canvas.getContext('webgl2') || canvas.getContext('experimental-webgl') || canvas.getContext('webgl');
351
+ if (context === null)
352
+ return '';
353
+ if (context instanceof WebGLRenderingContext || 'getParameter' in context && typeof context.getParameter === 'function') {
354
+ var extension = context.getExtension('WEBGL_debug_renderer_info');
355
+ if (extension === null)
356
+ return context.getParameter(context.RENDERER);
357
+ else
358
+ return context.getParameter(extension.UNMASKED_RENDERER_WEBGL);
359
+ }
360
+ else {
361
+ return '';
362
+ }
363
+ }
364
+ function getIsStandalone(os) {
365
+ if (!('matchMedia' in globalThis))
366
+ return false;
367
+ if (os === OS.iOS)
368
+ return 'standalone' in navigator && !!navigator.standalone;
369
+ return globalThis.matchMedia('(display-mode: standalone)').matches;
370
+ }
371
+ function getSemanticVersion(string) {
372
+ var parts = string.split('.');
373
+ return {
374
+ major: parseInt(parts[0] || '0'),
375
+ minor: parseInt(parts[1] || '0'),
376
+ build: parseInt(parts[2] || '0')
377
+ };
378
+ }
379
+ for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
380
+ var map = OS_RESOLVER_MAP[i];
381
+ var regexp = map[0];
382
+ var os = map[1];
383
+ var resolver = map[2];
384
+ var matched = Platform.userAgent.match(regexp);
385
+ if (matched !== null) {
386
+ Platform.os = os;
387
+ Platform.osVersion = resolveVersion(matched[1], resolver);
388
+ break;
389
+ }
390
+ }
391
+ if (Platform.os === OS.iOS && compareVersion(Platform.osVersion, '18.6') === 0) {
392
+ var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
393
+ if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
394
+ Platform.osVersion = version[1];
395
+ }
396
+ for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
397
+ var map = ENGINE_RESOLVER_MAP[i];
398
+ var regexp = map[0];
399
+ var engine = map[1];
400
+ var resolver = map[2];
401
+ var matched = Platform.userAgent.match(regexp);
402
+ if (matched !== null) {
403
+ Platform.engine = engine;
404
+ Platform.engineVersion = resolveVersion(matched[1], resolver);
405
+ break;
406
+ }
407
+ }
408
+ for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
409
+ var map = BROWSER_RESOLVER_MAP[i];
410
+ var regexp = map[0];
411
+ var browser = map[1];
412
+ var resolver = map[2];
413
+ var matched = Platform.userAgent.match(regexp);
414
+ if (matched !== null) {
415
+ Platform.browser = browser;
416
+ Platform.browserVersion = resolveVersion(matched[1], resolver);
417
+ break;
418
+ }
419
+ }
420
+ if (IS_REACT_NATIVE) {
421
+ try {
422
+ var reactNative = require('react-native');
423
+ var platform = reactNative.Platform;
424
+ var os = platform.OS;
425
+ var release = '' + platform.Version;
426
+ var version = getSemanticVersion(release);
427
+ switch (os) {
428
+ case 'android':
429
+ Platform.os = OS.Android;
430
+ Platform.osVersion = resolveSemanticAndroidVersion(version, release);
431
+ break;
432
+ case 'ios':
433
+ Platform.os = OS.iOS;
434
+ Platform.osVersion = release;
435
+ break;
436
+ case 'windows':
437
+ Platform.os = OS.Windows;
438
+ Platform.osVersion = resolveSemanticWindowsVersion(version, release);
439
+ break;
440
+ case 'macos':
441
+ Platform.os = OS.MacOS;
442
+ Platform.osVersion = release;
443
+ break;
444
+ }
445
+ }
446
+ catch (_) {
447
+ }
448
+ }
449
+ if (IS_NODE_JS) {
450
+ try {
451
+ var os = require('os');
452
+ var platform = os.platform();
453
+ var release = os.release();
454
+ var version = getSemanticVersion(release);
455
+ switch (platform) {
456
+ case 'win32':
457
+ Platform.os = OS.Windows;
458
+ Platform.osVersion = resolveSemanticWindowsVersion(version, release);
459
+ break;
460
+ case 'darwin':
461
+ Platform.os = OS.MacOS;
462
+ Platform.osVersion = resolveSemanticDarwinVersion(version, release);
463
+ break;
464
+ case 'android':
465
+ Platform.os = OS.Android;
466
+ Platform.osVersion = release;
467
+ break;
468
+ case 'linux':
469
+ if (/android/i.test(release)) {
470
+ Platform.os = OS.Android;
471
+ Platform.osVersion = release;
472
+ }
473
+ break;
474
+ }
475
+ }
476
+ catch (_) {
477
+ }
478
+ }
479
+ document.addEventListener("deviceready", function () {
480
+ if (Platform.os === OS.Unknown && typeof globalThis.device !== 'undefined') {
481
+ switch (globalThis.device.platform) {
482
+ case 'Android':
483
+ Platform.os = OS.Android;
484
+ break;
485
+ case 'iOS':
486
+ Platform.os = OS.iOS;
487
+ break;
488
+ }
489
+ Platform.osVersion = globalThis.device.version;
490
+ }
491
+ }, false);
492
+ if (navigator.userAgentData !== undefined && navigator.userAgentData.getHighEntropyValues !== undefined) {
493
+ navigator
494
+ .userAgentData
495
+ .getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
496
+ .then(function (result) {
497
+ var brands = result.fullVersionList || result.brands || [];
498
+ var platformVersion = result.platformVersion;
499
+ for (var i = 0; i < brands.length; i++) {
500
+ var brand = normalizeBrand(brands[i]);
501
+ var brandName = brand.brand;
502
+ var brandVersion = brand.version;
503
+ if (/not.a.brand/i.test(brandName))
504
+ continue;
505
+ if (brandName === "Chromium")
506
+ Platform.engineVersion = brandVersion;
507
+ }
508
+ if (typeof platformVersion === 'string') {
509
+ if (Platform.os === OS.Windows && parseInt(platformVersion.replace(/[^\d.]/g, '').split('.')[0], 10) >= 13)
510
+ Platform.osVersion = '11';
511
+ else
512
+ Platform.osVersion = platformVersion;
513
+ }
514
+ });
515
+ }
516
+ Platform.device = Platform.os === OS.iOS || Platform.os === OS.Android ? Devices.Mobile : Platform.os === OS.Windows || Platform.os === OS.MacOS ? Devices.Desktop : Devices.Unknown;
517
+ Platform.isMobile = Platform.device === Devices.Mobile;
518
+ Platform.isDesktop = Platform.device === Devices.Desktop;
519
+ Platform.isStandalone = getIsStandalone(Platform.os);
520
+
521
+ var currentAppearance = null;
522
+ var appearanceIntervalId = null;
523
+ var Appearance = {
524
+ get value() {
525
+ return getAppearance();
526
+ },
527
+ set value(appearance) {
528
+ setAppearance(appearance);
529
+ },
530
+ onchange: onchange,
531
+ };
532
+ function getAppearanceFromEngine() {
533
+ return new Promise(function (resolve) {
534
+ var img = new Image();
535
+ img.onload = function () {
536
+ if (CONTEXT === null)
537
+ return resolve(Appearances.Light);
538
+ CONTEXT.drawImage(img, 0, 0);
539
+ var data = CONTEXT.getImageData(0, 0, 1, 1).data;
540
+ if ((data[0] & data[1] & data[2]) < 255)
541
+ resolve(Appearances.Dark);
542
+ else
543
+ resolve(Appearances.Light);
544
+ };
545
+ img.onerror = function () {
546
+ resolve(Appearances.Unknown);
547
+ };
548
+ img.src = SVG_PIXEL_DATA_URL;
549
+ });
550
+ }
551
+ function getAppearanceFromMediaQuery() {
552
+ if (!SUPPORT_PREFERS_COLOR_SCHEME)
553
+ return Appearances.Unknown;
554
+ if (MEDIA_QUERY_LIST.matches)
555
+ return Appearances.Dark;
556
+ return Appearances.Light;
557
+ }
558
+ function getAppearanceFromReactNative() {
559
+ try {
560
+ var reactNative = require('react-native');
561
+ return reactNative.Appearance.getColorScheme() || Appearances.Unknown;
562
+ }
563
+ catch (_) {
564
+ return Appearances.Unknown;
565
+ }
566
+ }
567
+ function getAppearanceFromElectron() {
568
+ try {
569
+ var electron = require('electron');
570
+ return electron.nativeTheme.shouldUseDarkColors ? Appearances.Dark : Appearances.Light;
571
+ }
572
+ catch (_) {
573
+ return Appearances.Unknown;
574
+ }
575
+ }
576
+ function getAppearance() {
577
+ if (IS_REACT_NATIVE)
578
+ return new Promise(function (resolve) {
579
+ resolve(getAppearanceFromReactNative());
580
+ });
581
+ if (IS_ELECTRON)
582
+ return new Promise(function (resolve) {
583
+ resolve(getAppearanceFromElectron());
584
+ });
585
+ if (Platform.browser === Browsers.SamsungInternet)
586
+ return getAppearanceFromEngine();
587
+ return new Promise(function (resolve) {
588
+ resolve(getAppearanceFromMediaQuery());
589
+ });
590
+ }
591
+ function setAppearance(appearance) {
592
+ if (IS_REACT_NATIVE) {
593
+ try {
594
+ var reactNative = require('react-native');
595
+ reactNative.Appearance.setColorScheme(appearance);
596
+ return;
597
+ }
598
+ catch (_) {
599
+ }
600
+ }
601
+ if (IS_ELECTRON) {
602
+ try {
603
+ var electron = require('electron');
604
+ electron.nativeTheme.themeSource = appearance || 'system';
605
+ return;
606
+ }
607
+ catch (_) {
608
+ }
609
+ }
610
+ }
611
+ function startPolling() {
612
+ getAppearanceFromEngine()
613
+ .then(function (appearance) {
614
+ currentAppearance = appearance;
615
+ });
616
+ appearanceIntervalId = globalThis.setInterval(function () {
617
+ getAppearanceFromEngine()
618
+ .then(function (appearance) {
619
+ if (appearance !== currentAppearance) {
620
+ currentAppearance = appearance;
621
+ notify(appearance);
622
+ }
623
+ });
624
+ }, 2000);
625
+ }
626
+ function stopPolling() {
627
+ currentAppearance = null;
628
+ if (appearanceIntervalId !== null) {
629
+ clearInterval(appearanceIntervalId);
630
+ appearanceIntervalId = null;
631
+ }
632
+ }
633
+ function addListener(capture) {
634
+ currentAppearance = getAppearanceFromMediaQuery();
635
+ if (typeof MEDIA_QUERY_LIST.addEventListener === 'function')
636
+ MEDIA_QUERY_LIST.addEventListener('change', onMediaChange, capture);
637
+ else if (typeof MEDIA_QUERY_LIST.addListener === 'function')
638
+ MEDIA_QUERY_LIST.addListener(onMediaChange);
639
+ }
640
+ function removeListener(capture) {
641
+ currentAppearance = null;
642
+ if (typeof MEDIA_QUERY_LIST.removeEventListener === 'function')
643
+ MEDIA_QUERY_LIST.removeEventListener('change', onMediaChange, capture);
644
+ else if (typeof MEDIA_QUERY_LIST.removeListener === 'function')
645
+ MEDIA_QUERY_LIST.removeListener(onMediaChange);
646
+ }
647
+ function onMediaChange(ev) {
648
+ var appearance;
649
+ if (ev.matches)
650
+ appearance = Appearances.Dark;
651
+ else
652
+ appearance = Appearances.Light;
653
+ if (appearance !== currentAppearance)
654
+ notify(currentAppearance = appearance);
655
+ }
656
+ function notify(appearance) {
657
+ for (var i = 0; i < ENTRIES.length; i++) {
658
+ var entry = ENTRIES[i];
659
+ entry.fn(appearance);
660
+ if (entry.once)
661
+ removeEntry(entry);
662
+ }
663
+ }
664
+ function removeEntry(entry) {
665
+ var index = indexOfEntry(entry);
666
+ if (index !== -1)
667
+ ENTRIES.splice(index, 1);
668
+ if (ENTRIES.length === 0) {
669
+ if (Platform.browser === Browsers.SamsungInternet)
670
+ stopPolling();
671
+ else
672
+ removeListener(entry.capture);
673
+ }
674
+ }
675
+ function indexOfEntry(entry) {
676
+ for (var i = 0; i < ENTRIES.length; i++)
677
+ if (ENTRIES[i].fn === entry.fn && ENTRIES[i].capture === entry.capture)
678
+ return i;
679
+ return -1;
680
+ }
681
+ function onchange(listener, options) {
682
+ if (options === void 0) { options = false; }
683
+ if (IS_REACT_NATIVE) {
684
+ try {
685
+ var reactNative = require('react-native');
686
+ var subscription_1 = reactNative.Appearance.addChangeListener(function (preferences) {
687
+ listener(preferences.colorScheme || Appearances.Unknown);
688
+ });
689
+ return function () {
690
+ subscription_1.remove();
691
+ };
692
+ }
693
+ catch (_) {
694
+ }
695
+ }
696
+ if (IS_ELECTRON) {
697
+ try {
698
+ var electron_1 = require('electron');
699
+ var handleThemeChange_1 = function () {
700
+ listener(getAppearanceFromElectron());
701
+ };
702
+ if (typeof electron_1.nativeTheme.on !== 'undefined') {
703
+ electron_1.nativeTheme.on('updated', handleThemeChange_1);
704
+ }
705
+ return function () {
706
+ if (typeof electron_1.nativeTheme.removeListener !== 'undefined')
707
+ electron_1.nativeTheme.removeListener('updated', handleThemeChange_1);
708
+ };
709
+ }
710
+ catch (_) {
711
+ }
712
+ }
713
+ var entry = { fn: listener, capture: false, once: false };
714
+ if (typeof options === 'boolean')
715
+ options = { capture: options };
716
+ if (options.capture !== undefined)
717
+ entry.capture = options.capture;
718
+ if (options.once !== undefined)
719
+ entry.once = options.once;
720
+ if (options.signal !== undefined)
721
+ entry.signal = options.signal;
722
+ var index = indexOfEntry(entry);
723
+ if (index === -1) {
724
+ ENTRIES.push(entry);
725
+ if (ENTRIES.length === 1) {
726
+ if (Platform.browser === Browsers.SamsungInternet)
727
+ startPolling();
728
+ else
729
+ addListener(entry.capture);
730
+ }
731
+ this.getAppearance()
732
+ .then(notify);
733
+ }
734
+ else if (ENTRIES[index].once && !entry.once) {
735
+ ENTRIES[index].once = false;
736
+ }
737
+ if (entry.signal !== undefined) {
738
+ if (entry.signal.aborted) {
739
+ removeEntry(entry);
740
+ }
741
+ else {
742
+ entry.signal.addEventListener('abort', function onAbort() {
743
+ if (entry.signal !== undefined)
744
+ entry.signal.removeEventListener('abort', onAbort);
745
+ removeEntry(entry);
746
+ });
747
+ }
748
+ }
749
+ return function () {
750
+ removeEntry(entry);
751
+ };
752
+ }
753
+
754
+ var NativeAppearancePlugin = {
755
+ installed: false,
756
+ name: 'Appearance',
757
+ module: Appearance,
758
+ Constants: {
759
+ Appearances: Appearances,
760
+ },
761
+ Errors: {}
762
+ };
763
+
764
+ module.exports = NativeAppearancePlugin;