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