native-fn 1.0.81 → 1.0.83

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 (201) hide show
  1. package/dist/index.d.ts +8 -1
  2. package/dist/native.cjs +4 -10
  3. package/dist/native.min.cjs +1 -1
  4. package/dist/native.min.mjs +1 -1
  5. package/dist/native.mjs +4 -10
  6. package/dist/native.umd.js +4 -10
  7. package/dist/native.umd.min.js +1 -1
  8. package/dist/plugin/app/index.cjs +189 -224
  9. package/dist/plugin/app/index.min.cjs +1 -1
  10. package/dist/plugin/app/index.min.mjs +1 -1
  11. package/dist/plugin/app/index.mjs +189 -224
  12. package/dist/plugin/app/index.umd.js +189 -224
  13. package/dist/plugin/app/index.umd.min.js +1 -1
  14. package/dist/plugin/app/src/plugin/appearance/constants/index.d.ts +2 -2
  15. package/dist/plugin/app/src/plugin/appearance/types/appearance.d.ts +1 -7
  16. package/dist/plugin/app/src/plugin/clipboard/types/appearance.d.ts +13 -0
  17. package/dist/plugin/app/src/plugin/dimension/constants/index.d.ts +3 -0
  18. package/dist/plugin/app/src/plugin/dimension/cores/index.d.ts +3 -0
  19. package/dist/plugin/app/src/plugin/dimension/index.d.ts +4 -0
  20. package/dist/plugin/app/src/plugin/dimension/types/dimension.d.ts +11 -0
  21. package/dist/plugin/app/src/plugin/dimension/types/dimensions.d.ts +11 -0
  22. package/dist/plugin/app/src/plugin/dimension/types/index.d.ts +13 -0
  23. package/dist/plugin/app/src/plugin/platform/constants/index.d.ts +1 -0
  24. package/dist/plugin/app/src/plugin/platform/cores/index.d.ts +5 -10
  25. package/dist/plugin/app/src/plugin/platform/types/platform.d.ts +7 -18
  26. package/dist/plugin/app/src/types/listener-entry.d.ts +6 -0
  27. package/dist/plugin/app/src/utils/request.d.ts +1 -0
  28. package/dist/plugin/appearance/index.cjs +165 -222
  29. package/dist/plugin/appearance/index.d.ts +2 -8
  30. package/dist/plugin/appearance/index.min.cjs +1 -1
  31. package/dist/plugin/appearance/index.min.mjs +1 -1
  32. package/dist/plugin/appearance/index.mjs +165 -222
  33. package/dist/plugin/appearance/index.umd.js +165 -222
  34. package/dist/plugin/appearance/index.umd.min.js +1 -1
  35. package/dist/plugin/appearance/src/plugin/appearance/constants/index.d.ts +2 -2
  36. package/dist/plugin/appearance/src/plugin/appearance/types/appearance.d.ts +1 -7
  37. package/dist/plugin/appearance/src/plugin/clipboard/types/appearance.d.ts +13 -0
  38. package/dist/plugin/appearance/src/plugin/dimension/constants/index.d.ts +3 -0
  39. package/dist/plugin/appearance/src/plugin/dimension/cores/index.d.ts +3 -0
  40. package/dist/plugin/appearance/src/plugin/dimension/index.d.ts +4 -0
  41. package/dist/plugin/appearance/src/plugin/dimension/types/dimension.d.ts +11 -0
  42. package/dist/plugin/appearance/src/plugin/dimension/types/dimensions.d.ts +11 -0
  43. package/dist/plugin/appearance/src/plugin/dimension/types/index.d.ts +13 -0
  44. package/dist/plugin/appearance/src/plugin/platform/constants/index.d.ts +1 -0
  45. package/dist/plugin/appearance/src/plugin/platform/cores/index.d.ts +5 -10
  46. package/dist/plugin/appearance/src/plugin/platform/types/platform.d.ts +7 -18
  47. package/dist/plugin/appearance/src/types/listener-entry.d.ts +6 -0
  48. package/dist/plugin/appearance/src/utils/request.d.ts +1 -0
  49. package/dist/plugin/clipboard/index.cjs +148 -183
  50. package/dist/plugin/clipboard/index.min.cjs +1 -1
  51. package/dist/plugin/clipboard/index.min.mjs +1 -1
  52. package/dist/plugin/clipboard/index.mjs +148 -183
  53. package/dist/plugin/clipboard/index.umd.js +148 -183
  54. package/dist/plugin/clipboard/index.umd.min.js +1 -1
  55. package/dist/plugin/clipboard/src/plugin/appearance/constants/index.d.ts +2 -2
  56. package/dist/plugin/clipboard/src/plugin/appearance/types/appearance.d.ts +1 -7
  57. package/dist/plugin/clipboard/src/plugin/clipboard/types/appearance.d.ts +13 -0
  58. package/dist/plugin/clipboard/src/plugin/dimension/constants/index.d.ts +3 -0
  59. package/dist/plugin/clipboard/src/plugin/dimension/cores/index.d.ts +3 -0
  60. package/dist/plugin/clipboard/src/plugin/dimension/index.d.ts +4 -0
  61. package/dist/plugin/clipboard/src/plugin/dimension/types/dimension.d.ts +11 -0
  62. package/dist/plugin/clipboard/src/plugin/dimension/types/dimensions.d.ts +11 -0
  63. package/dist/plugin/clipboard/src/plugin/dimension/types/index.d.ts +13 -0
  64. package/dist/plugin/clipboard/src/plugin/platform/constants/index.d.ts +1 -0
  65. package/dist/plugin/clipboard/src/plugin/platform/cores/index.d.ts +5 -10
  66. package/dist/plugin/clipboard/src/plugin/platform/types/platform.d.ts +7 -18
  67. package/dist/plugin/clipboard/src/types/listener-entry.d.ts +6 -0
  68. package/dist/plugin/clipboard/src/utils/request.d.ts +1 -0
  69. package/dist/plugin/dimension/index.cjs +947 -0
  70. package/dist/plugin/dimension/index.d.ts +36 -0
  71. package/dist/plugin/dimension/index.min.cjs +1 -0
  72. package/dist/plugin/dimension/index.min.mjs +1 -0
  73. package/dist/plugin/dimension/index.mjs +945 -0
  74. package/dist/plugin/dimension/index.umd.js +953 -0
  75. package/dist/plugin/dimension/index.umd.min.js +1 -0
  76. package/dist/plugin/dimension/src/errors/plugin-not-extended-error.d.ts +2 -0
  77. package/dist/plugin/dimension/src/plugin/app/constants/index.d.ts +12 -0
  78. package/dist/plugin/dimension/src/plugin/app/cores/index.d.ts +13 -0
  79. package/dist/plugin/dimension/src/plugin/app/errors/url-open-error.d.ts +2 -0
  80. package/dist/plugin/dimension/src/plugin/app/index.d.ts +12 -0
  81. package/dist/plugin/dimension/src/plugin/app/types/app.d.ts +54 -0
  82. package/dist/plugin/dimension/src/plugin/app/types/index.d.ts +16 -0
  83. package/dist/plugin/dimension/src/plugin/appearance/constants/index.d.ts +11 -0
  84. package/dist/plugin/dimension/src/plugin/appearance/cores/index.d.ts +3 -0
  85. package/dist/plugin/dimension/src/plugin/appearance/index.d.ts +8 -0
  86. package/dist/plugin/dimension/src/plugin/appearance/types/appearance.d.ts +6 -0
  87. package/dist/plugin/dimension/src/plugin/appearance/types/index.d.ts +13 -0
  88. package/dist/plugin/dimension/src/plugin/clipboard/cores/index.d.ts +3 -0
  89. package/dist/plugin/dimension/src/plugin/clipboard/index.d.ts +5 -0
  90. package/dist/plugin/dimension/src/plugin/clipboard/types/appearance.d.ts +13 -0
  91. package/dist/plugin/dimension/src/plugin/clipboard/types/clipboard.d.ts +4 -0
  92. package/dist/plugin/dimension/src/plugin/clipboard/types/index.d.ts +11 -0
  93. package/dist/plugin/dimension/src/plugin/dimension/constants/index.d.ts +3 -0
  94. package/dist/plugin/dimension/src/plugin/dimension/cores/index.d.ts +3 -0
  95. package/dist/plugin/dimension/src/plugin/dimension/index.d.ts +4 -0
  96. package/dist/plugin/dimension/src/plugin/dimension/types/dimension.d.ts +11 -0
  97. package/dist/plugin/dimension/src/plugin/dimension/types/dimensions.d.ts +11 -0
  98. package/dist/plugin/dimension/src/plugin/dimension/types/index.d.ts +13 -0
  99. package/dist/plugin/dimension/src/plugin/fullscreen/cores/index.d.ts +35 -0
  100. package/dist/plugin/dimension/src/plugin/fullscreen/index.d.ts +5 -0
  101. package/dist/plugin/dimension/src/plugin/fullscreen/types/fullscreen.d.ts +10 -0
  102. package/dist/plugin/dimension/src/plugin/fullscreen/types/index.d.ts +11 -0
  103. package/dist/plugin/dimension/src/plugin/platform/constants/index.d.ts +43 -0
  104. package/dist/plugin/dimension/src/plugin/platform/cores/index.d.ts +35 -0
  105. package/dist/plugin/dimension/src/plugin/platform/index.d.ts +12 -0
  106. package/dist/plugin/dimension/src/plugin/platform/types/index.d.ts +11 -0
  107. package/dist/plugin/dimension/src/plugin/platform/types/platform.d.ts +27 -0
  108. package/dist/plugin/dimension/src/plugin/theme/constants/index.d.ts +2 -0
  109. package/dist/plugin/dimension/src/plugin/theme/cores/index.d.ts +3 -0
  110. package/dist/plugin/dimension/src/plugin/theme/index.d.ts +5 -0
  111. package/dist/plugin/dimension/src/plugin/theme/types/index.d.ts +11 -0
  112. package/dist/plugin/dimension/src/plugin/theme/types/theme.d.ts +4 -0
  113. package/dist/plugin/dimension/src/types/event-listener-util.d.ts +11 -0
  114. package/dist/plugin/dimension/src/types/index.d.ts +1 -0
  115. package/dist/plugin/dimension/src/types/listener-entry.d.ts +6 -0
  116. package/dist/plugin/dimension/src/types/native.d.ts +27 -0
  117. package/dist/plugin/dimension/src/utils/assign.d.ts +1 -0
  118. package/dist/plugin/dimension/src/utils/compare-version.d.ts +1 -0
  119. package/dist/plugin/dimension/src/utils/create-custom-error.d.ts +6 -0
  120. package/dist/plugin/dimension/src/utils/create-hidden-element.d.ts +1 -0
  121. package/dist/plugin/dimension/src/utils/dispatch-click-event.d.ts +1 -0
  122. package/dist/plugin/dimension/src/utils/event-listener-utils.d.ts +3 -0
  123. package/dist/plugin/dimension/src/utils/get-topmost-window.d.ts +1 -0
  124. package/dist/plugin/dimension/src/utils/is-secure-context.d.ts +1 -0
  125. package/dist/plugin/dimension/src/utils/request.d.ts +1 -0
  126. package/dist/plugin/fullscreen/index.cjs +156 -188
  127. package/dist/plugin/fullscreen/index.min.cjs +1 -1
  128. package/dist/plugin/fullscreen/index.min.mjs +1 -1
  129. package/dist/plugin/fullscreen/index.mjs +156 -188
  130. package/dist/plugin/fullscreen/index.umd.js +156 -188
  131. package/dist/plugin/fullscreen/index.umd.min.js +1 -1
  132. package/dist/plugin/fullscreen/src/plugin/appearance/constants/index.d.ts +2 -2
  133. package/dist/plugin/fullscreen/src/plugin/appearance/types/appearance.d.ts +1 -7
  134. package/dist/plugin/fullscreen/src/plugin/clipboard/types/appearance.d.ts +13 -0
  135. package/dist/plugin/fullscreen/src/plugin/dimension/constants/index.d.ts +3 -0
  136. package/dist/plugin/fullscreen/src/plugin/dimension/cores/index.d.ts +3 -0
  137. package/dist/plugin/fullscreen/src/plugin/dimension/index.d.ts +4 -0
  138. package/dist/plugin/fullscreen/src/plugin/dimension/types/dimension.d.ts +11 -0
  139. package/dist/plugin/fullscreen/src/plugin/dimension/types/dimensions.d.ts +11 -0
  140. package/dist/plugin/fullscreen/src/plugin/dimension/types/index.d.ts +13 -0
  141. package/dist/plugin/fullscreen/src/plugin/platform/constants/index.d.ts +1 -0
  142. package/dist/plugin/fullscreen/src/plugin/platform/cores/index.d.ts +5 -10
  143. package/dist/plugin/fullscreen/src/plugin/platform/types/platform.d.ts +7 -18
  144. package/dist/plugin/fullscreen/src/types/listener-entry.d.ts +6 -0
  145. package/dist/plugin/fullscreen/src/utils/request.d.ts +1 -0
  146. package/dist/plugin/platform/index.cjs +137 -172
  147. package/dist/plugin/platform/index.d.ts +8 -19
  148. package/dist/plugin/platform/index.min.cjs +1 -1
  149. package/dist/plugin/platform/index.min.mjs +1 -1
  150. package/dist/plugin/platform/index.mjs +137 -172
  151. package/dist/plugin/platform/index.umd.js +137 -172
  152. package/dist/plugin/platform/index.umd.min.js +1 -1
  153. package/dist/plugin/platform/src/plugin/appearance/constants/index.d.ts +2 -2
  154. package/dist/plugin/platform/src/plugin/appearance/types/appearance.d.ts +1 -7
  155. package/dist/plugin/platform/src/plugin/clipboard/types/appearance.d.ts +13 -0
  156. package/dist/plugin/platform/src/plugin/dimension/constants/index.d.ts +3 -0
  157. package/dist/plugin/platform/src/plugin/dimension/cores/index.d.ts +3 -0
  158. package/dist/plugin/platform/src/plugin/dimension/index.d.ts +4 -0
  159. package/dist/plugin/platform/src/plugin/dimension/types/dimension.d.ts +11 -0
  160. package/dist/plugin/platform/src/plugin/dimension/types/dimensions.d.ts +11 -0
  161. package/dist/plugin/platform/src/plugin/dimension/types/index.d.ts +13 -0
  162. package/dist/plugin/platform/src/plugin/platform/constants/index.d.ts +1 -0
  163. package/dist/plugin/platform/src/plugin/platform/cores/index.d.ts +5 -10
  164. package/dist/plugin/platform/src/plugin/platform/types/platform.d.ts +7 -18
  165. package/dist/plugin/platform/src/types/listener-entry.d.ts +6 -0
  166. package/dist/plugin/platform/src/utils/request.d.ts +1 -0
  167. package/dist/plugin/theme/index.cjs +138 -173
  168. package/dist/plugin/theme/index.min.cjs +1 -1
  169. package/dist/plugin/theme/index.min.mjs +1 -1
  170. package/dist/plugin/theme/index.mjs +138 -173
  171. package/dist/plugin/theme/index.umd.js +138 -173
  172. package/dist/plugin/theme/index.umd.min.js +1 -1
  173. package/dist/plugin/theme/src/plugin/appearance/constants/index.d.ts +2 -2
  174. package/dist/plugin/theme/src/plugin/appearance/types/appearance.d.ts +1 -7
  175. package/dist/plugin/theme/src/plugin/clipboard/types/appearance.d.ts +13 -0
  176. package/dist/plugin/theme/src/plugin/dimension/constants/index.d.ts +3 -0
  177. package/dist/plugin/theme/src/plugin/dimension/cores/index.d.ts +3 -0
  178. package/dist/plugin/theme/src/plugin/dimension/index.d.ts +4 -0
  179. package/dist/plugin/theme/src/plugin/dimension/types/dimension.d.ts +11 -0
  180. package/dist/plugin/theme/src/plugin/dimension/types/dimensions.d.ts +11 -0
  181. package/dist/plugin/theme/src/plugin/dimension/types/index.d.ts +13 -0
  182. package/dist/plugin/theme/src/plugin/platform/constants/index.d.ts +1 -0
  183. package/dist/plugin/theme/src/plugin/platform/cores/index.d.ts +5 -10
  184. package/dist/plugin/theme/src/plugin/platform/types/platform.d.ts +7 -18
  185. package/dist/plugin/theme/src/types/listener-entry.d.ts +6 -0
  186. package/dist/plugin/theme/src/utils/request.d.ts +1 -0
  187. package/dist/src/plugin/appearance/constants/index.d.ts +2 -2
  188. package/dist/src/plugin/appearance/types/appearance.d.ts +1 -7
  189. package/dist/src/plugin/clipboard/types/appearance.d.ts +13 -0
  190. package/dist/src/plugin/dimension/constants/index.d.ts +3 -0
  191. package/dist/src/plugin/dimension/cores/index.d.ts +3 -0
  192. package/dist/src/plugin/dimension/index.d.ts +4 -0
  193. package/dist/src/plugin/dimension/types/dimension.d.ts +11 -0
  194. package/dist/src/plugin/dimension/types/dimensions.d.ts +11 -0
  195. package/dist/src/plugin/dimension/types/index.d.ts +13 -0
  196. package/dist/src/plugin/platform/constants/index.d.ts +1 -0
  197. package/dist/src/plugin/platform/cores/index.d.ts +5 -10
  198. package/dist/src/plugin/platform/types/platform.d.ts +7 -18
  199. package/dist/src/types/listener-entry.d.ts +6 -0
  200. package/dist/src/utils/request.d.ts +1 -0
  201. package/package.json +15 -15
@@ -0,0 +1,953 @@
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.Dimension = factory());
5
+ })(this, (function () { 'use strict';
6
+
7
+ var OS;
8
+ (function (OS) {
9
+ OS["Unknown"] = "Unknown";
10
+ OS["Android"] = "Android";
11
+ OS["iOS"] = "iOS";
12
+ OS["Windows"] = "Windows";
13
+ OS["MacOS"] = "MacOS";
14
+ })(OS || (OS = {}));
15
+ var Devices;
16
+ (function (Devices) {
17
+ Devices["Unknown"] = "Unknown";
18
+ Devices["Mobile"] = "Mobile";
19
+ Devices["Desktop"] = "Desktop";
20
+ })(Devices || (Devices = {}));
21
+ var Engines;
22
+ (function (Engines) {
23
+ Engines["Unknown"] = "Unknown";
24
+ Engines["EdgeHTML"] = "EdgeHTML";
25
+ Engines["ArkWeb"] = "ArkWeb";
26
+ Engines["Blink"] = "Blink";
27
+ Engines["Presto"] = "Presto";
28
+ Engines["WebKit"] = "WebKit";
29
+ Engines["Trident"] = "Trident";
30
+ Engines["NetFront"] = "NetFront";
31
+ Engines["KHTML"] = "KHTML";
32
+ Engines["Tasman"] = "Tasman";
33
+ Engines["Gecko"] = "Gecko";
34
+ })(Engines || (Engines = {}));
35
+ var Browsers;
36
+ (function (Browsers) {
37
+ Browsers["Unknown"] = "Unknown";
38
+ Browsers["Chrome"] = "Chrome";
39
+ Browsers["Safari"] = "Safari";
40
+ Browsers["Edge"] = "Edge";
41
+ Browsers["Firefox"] = "Firefox";
42
+ Browsers["Opera"] = "Opera";
43
+ Browsers["IE"] = "IE";
44
+ Browsers["SamsungInternet"] = "SamsungInternet";
45
+ })(Browsers || (Browsers = {}));
46
+ var CrossPlatformFramework;
47
+ (function (CrossPlatformFramework) {
48
+ CrossPlatformFramework["Unknown"] = "Unknown";
49
+ CrossPlatformFramework["ReactNative"] = "ReactNative";
50
+ CrossPlatformFramework["Electron"] = "Electron";
51
+ CrossPlatformFramework["Cordova"] = "Cordova";
52
+ })(CrossPlatformFramework || (CrossPlatformFramework = {}));
53
+ var USER_AGENT = typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgent === 'string' ? globalThis.navigator.userAgent : '';
54
+ var HIGH_ENTROPY_BRAND_NAME_MAP = {
55
+ 'Google Chrome': 'Chrome',
56
+ 'Microsoft Edge': 'Edge',
57
+ 'Microsoft Edge WebView2': 'Edge WebView2',
58
+ 'Android WebView': 'Chrome WebView',
59
+ 'HeadlessChrome': 'Chrome Headless',
60
+ 'OperaMobile': 'Opera Mobi',
61
+ };
62
+
63
+ var ENTRIES = [];
64
+
65
+ function compareVersion(lhs, rhs) {
66
+ var pa = lhs.split('.');
67
+ var pb = rhs.split('.');
68
+ var length = Math.max(pa.length, pb.length);
69
+ for (var i = 0; i < length; i++) {
70
+ var a = void 0;
71
+ var b = void 0;
72
+ if (i < pa.length)
73
+ a = parseInt(pa[i], 10);
74
+ else
75
+ a = 0;
76
+ if (i < pb.length)
77
+ b = parseInt(pb[i], 10);
78
+ else
79
+ b = 0;
80
+ if (a > b)
81
+ return 1;
82
+ if (a < b)
83
+ return -1;
84
+ }
85
+ return 0;
86
+ }
87
+
88
+ var readyState = 'loading';
89
+ var readyCallback = [];
90
+ var pendingTasks = 0;
91
+ var Platform = {
92
+ os: { name: OS.Unknown, version: '' },
93
+ engine: { name: Engines.Unknown, version: '' },
94
+ browser: { name: Browsers.Unknown, version: '' },
95
+ crossPlatformFramework: CrossPlatformFramework.Unknown,
96
+ userAgent: USER_AGENT,
97
+ get readyState() {
98
+ return readyState;
99
+ },
100
+ get locale() {
101
+ return getLocale();
102
+ },
103
+ get device() {
104
+ if (this.os.name === OS.iOS || this.os.name === OS.Android)
105
+ return Devices.Mobile;
106
+ if (this.os.name === OS.Windows || this.os.name === OS.MacOS)
107
+ return Devices.Desktop;
108
+ return Devices.Unknown;
109
+ },
110
+ get renderer() {
111
+ return getRenderer();
112
+ },
113
+ get isWebview() {
114
+ return /; ?wv|applewebkit(?!.*safari)/i.test(this.userAgent);
115
+ },
116
+ get isNode() {
117
+ return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && typeof globalThis.process.versions.node !== 'undefined';
118
+ },
119
+ get isStandalone() {
120
+ if (this.os.name === OS.iOS)
121
+ return 'standalone' in globalThis.navigator && !!globalThis.navigator.standalone;
122
+ if (!('matchMedia' in globalThis))
123
+ return false;
124
+ return globalThis.matchMedia('(display-mode: standalone)').matches;
125
+ },
126
+ onready: function (callback) {
127
+ if (this.readyState === 'complete') {
128
+ try {
129
+ callback(this);
130
+ }
131
+ catch (_) {
132
+ }
133
+ }
134
+ else {
135
+ readyCallback.push(callback);
136
+ }
137
+ }
138
+ };
139
+ function resolveWindowsVersion(string) {
140
+ if (typeof string === 'undefined')
141
+ return '';
142
+ var mapped = {
143
+ '4.90': 'ME',
144
+ 'NT3.51': 'NT 3.11',
145
+ 'NT4.0': 'NT 4.0',
146
+ 'NT 5.0': '2000',
147
+ 'NT 5.1': 'XP',
148
+ 'NT 5.2': 'XP',
149
+ 'NT 6.0': 'Vista',
150
+ 'NT 6.1': '7',
151
+ 'NT 6.2': '8',
152
+ 'NT 6.3': '8.1',
153
+ 'NT 6.4': '10',
154
+ 'NT 10.0': '10',
155
+ 'ARM': 'RT'
156
+ }[string];
157
+ if (typeof mapped !== 'undefined')
158
+ return mapped;
159
+ return string;
160
+ }
161
+ function resolveUnderscoreVersion(string) {
162
+ if (typeof string === 'undefined')
163
+ return '';
164
+ return string.replace(/_/g, '.');
165
+ }
166
+ var OS_RESOLVER_MAP = [
167
+ [/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion],
168
+ [/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i, OS.Windows, resolveWindowsVersion],
169
+ [/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i, OS.Windows, resolveWindowsVersion],
170
+ [/windows nt ?([\d.)]*)(?!.+xbox)/i, OS.Windows, resolveWindowsVersion],
171
+ [/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i, OS.Windows, resolveWindowsVersion],
172
+ [/windows ce\/?([\d.]*)/i, OS.Windows, resolveWindowsVersion],
173
+ [/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i, OS.iOS, resolveUnderscoreVersion],
174
+ [/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i, OS.iOS, resolveUnderscoreVersion],
175
+ [/cfnetwork\/.+darwin/i, OS.iOS, resolveUnderscoreVersion],
176
+ [/mac os x ?([\w. ]*)/i, OS.MacOS, resolveUnderscoreVersion],
177
+ [/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i, OS.MacOS, resolveUnderscoreVersion],
178
+ [/droid ([\w.]+)\b.+(android[- ]x86)/i, OS.Android],
179
+ [/android\w*[-\/.; ]?([\d.]*)/i, OS.Android],
180
+ ];
181
+ var ENGINE_RESOLVER_MAP = [
182
+ [/windows.+ edge\/([\w.]+)/i, Engines.EdgeHTML],
183
+ [/arkweb\/([\w.]+)/i, Engines.ArkWeb],
184
+ [/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i, Engines.Blink],
185
+ [/presto\/([\w.]+)/i, Engines.Presto],
186
+ [/webkit\/([\w.]+)/i, Engines.WebKit],
187
+ [/trident\/([\w.]+)/i, Engines.Trident],
188
+ [/netfront\/([\w.]+)/i, Engines.NetFront],
189
+ [/khtml[\/ ]\(?([\w.]+)/i, Engines.KHTML],
190
+ [/tasman[\/ ]\(?([\w.]+)/i, Engines.Tasman],
191
+ [/rv:([\w.]{1,9})\b.+gecko/i, Engines.Gecko]
192
+ ];
193
+ var BROWSER_RESOLVER_MAP = [
194
+ [/\b(?:crmo|crios)\/([\w.]+)/i, Browsers.Chrome],
195
+ [/webview.+edge\/([\w.]+)/i, Browsers.Edge],
196
+ [/edg(?:e|ios|a)?\/([\w.]+)/i, Browsers.Edge],
197
+ [/opera mini\/([-\w.]+)/i, Browsers.Opera],
198
+ [/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i, Browsers.Opera],
199
+ [/opera(?:.+version\/|[\/ ]+)([\w.]+)/i, Browsers.Opera],
200
+ [/opios[\/ ]+([\w.]+)/i, Browsers.Opera],
201
+ [/\bop(?:rg)?x\/([\w.]+)/i, Browsers.Opera],
202
+ [/\bopr\/([\w.]+)/i, Browsers.Opera],
203
+ [/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i, Browsers.IE],
204
+ [/(?:ms|\()ie ([\w.]+)/i, Browsers.IE],
205
+ [/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i, Browsers.IE],
206
+ [/\bfocus\/([\w.]+)/i, Browsers.Firefox],
207
+ [/\bopt\/([\w.]+)/i, Browsers.Opera],
208
+ [/coast\/([\w.]+)/i, Browsers.Opera],
209
+ [/fxios\/([\w.-]+)/i, Browsers.Firefox],
210
+ [/samsungbrowser\/([\w.]+)/i, Browsers.SamsungInternet],
211
+ [/headlesschrome(?:\/([\w.]+)| )/i, Browsers.Chrome],
212
+ [/wv\).+chrome\/([\w.]+).+edgw\//i, Browsers.Edge],
213
+ [/ wv\).+(chrome)\/([\w.]+)/i, Browsers.Chrome],
214
+ [/chrome\/([\w.]+) mobile/i, Browsers.Chrome],
215
+ [/chrome\/v?([\w.]+)/i, Browsers.Chrome],
216
+ [/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i, Browsers.Safari],
217
+ [/iphone .*mobile(?:\/\w+ | ?)safari/i, Browsers.Safari],
218
+ [/version\/([\w.,]+) .*safari/i, Browsers.Safari],
219
+ [/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i, Browsers.Safari, '1'],
220
+ [/(?:mobile|tablet);.*firefox\/([\w.-]+)/i, Browsers.Firefox],
221
+ [/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox],
222
+ [/firefox\/([\w.]+)/i, Browsers.Firefox],
223
+ ];
224
+ function incrementPendingTasks() {
225
+ pendingTasks++;
226
+ }
227
+ function decrementPendingTasks() {
228
+ pendingTasks--;
229
+ checkReady();
230
+ }
231
+ function checkReady() {
232
+ if (pendingTasks === 0 && readyState === 'loading') {
233
+ readyState = 'complete';
234
+ for (var i = 0; i < readyCallback.length; i++) {
235
+ try {
236
+ readyCallback[i](Platform);
237
+ }
238
+ catch (_) {
239
+ }
240
+ }
241
+ readyCallback.length = 0;
242
+ }
243
+ }
244
+ function resolveSemanticWindowsVersion(version, defaultValue) {
245
+ if (version.major === 10 && version.minor === 0 && version.build >= 22000)
246
+ return '11';
247
+ if (version.major === 10 && version.minor === 0 && version.build < 22000)
248
+ return '10';
249
+ if (version.major === 6 && version.minor === 3)
250
+ return '8.1';
251
+ if (version.major === 6 && version.minor === 2)
252
+ return '8';
253
+ if (version.major === 6 && version.minor === 1)
254
+ return '7';
255
+ if (version.major === 6 && version.minor === 0)
256
+ return 'Vista';
257
+ if (version.major === 5 && version.minor === 1)
258
+ return 'XP';
259
+ if (version.major === 5 && version.minor === 2)
260
+ return 'XP';
261
+ if (version.major === 5 && version.minor === 0)
262
+ return '2000';
263
+ if (version.major === 4 && version.minor === 90)
264
+ return 'ME';
265
+ if (version.major === 4 && version.minor === 0)
266
+ return 'NT 4.0';
267
+ if (version.major === 3 && version.minor === 51)
268
+ return 'NT 3.11';
269
+ return defaultValue;
270
+ }
271
+ function resolveSemanticDarwinVersion(version, defaultValue) {
272
+ if (version.major >= 24)
273
+ return '' + (version.major - 9) + '.' + version.minor + '.' + version.build;
274
+ if (version.major === 23)
275
+ return '14.' + version.minor + '.' + version.build;
276
+ if (version.major === 22)
277
+ return '13.' + version.minor + '.' + version.build;
278
+ if (version.major === 21)
279
+ return '12.' + version.minor + '.' + version.build;
280
+ if (version.major === 20)
281
+ return '11.' + version.minor + '.' + version.build;
282
+ if (version.major === 19)
283
+ return '10.15.' + version.minor;
284
+ if (version.major === 18)
285
+ return '10.14.' + version.minor;
286
+ if (version.major === 17)
287
+ return '10.13.' + version.minor;
288
+ if (version.major === 16)
289
+ return '10.12.' + version.minor;
290
+ if (version.major === 15)
291
+ return '10.11.' + version.minor;
292
+ if (version.major === 14)
293
+ return '10.10.' + version.minor;
294
+ if (version.major === 13)
295
+ return '10.9.' + version.minor;
296
+ if (version.major >= 5 && version.major <= 12)
297
+ return '10.' + (version.major - 4) + '.' + version.minor;
298
+ return defaultValue;
299
+ }
300
+ function resolveSemanticAndroidVersion(version, defaultValue) {
301
+ if (version.major >= 36)
302
+ return '16';
303
+ if (version.major === 35)
304
+ return '15';
305
+ if (version.major === 34)
306
+ return '14';
307
+ if (version.major === 33)
308
+ return '13';
309
+ if (version.major === 32)
310
+ return '12.1';
311
+ if (version.major === 31)
312
+ return '12';
313
+ if (version.major === 30)
314
+ return '11';
315
+ if (version.major === 29)
316
+ return '10';
317
+ if (version.major === 28)
318
+ return '9';
319
+ if (version.major === 27)
320
+ return '8.1';
321
+ if (version.major === 26)
322
+ return '8.0';
323
+ if (version.major === 25)
324
+ return '7.1';
325
+ if (version.major === 24)
326
+ return '7.0';
327
+ if (version.major === 23)
328
+ return '6.0';
329
+ if (version.major === 22)
330
+ return '5.1';
331
+ if (version.major === 21)
332
+ return '5.0';
333
+ if (version.major === 20)
334
+ return '4.4';
335
+ if (version.major === 19)
336
+ return '4.4';
337
+ if (version.major === 18)
338
+ return '4.3';
339
+ if (version.major === 17)
340
+ return '4.2';
341
+ if (version.major === 16)
342
+ return '4.1';
343
+ if (version.major === 15)
344
+ return '4.0.3';
345
+ if (version.major === 14)
346
+ return '4.0';
347
+ if (version.major === 13)
348
+ return '3.2';
349
+ if (version.major === 12)
350
+ return '3.1';
351
+ if (version.major === 11)
352
+ return '3.0';
353
+ if (version.major === 10)
354
+ return '2.3.3';
355
+ if (version.major === 9)
356
+ return '2.3';
357
+ if (version.major === 8)
358
+ return '2.2';
359
+ if (version.major === 7)
360
+ return '2.1';
361
+ if (version.major === 6)
362
+ return '2.0.1';
363
+ if (version.major === 5)
364
+ return '2.0';
365
+ if (version.major === 4)
366
+ return '1.6';
367
+ if (version.major === 3)
368
+ return '1.5';
369
+ if (version.major === 2)
370
+ return '1.1';
371
+ if (version.major === 1)
372
+ return '1.0';
373
+ return defaultValue;
374
+ }
375
+ function resolveVersion(string, resolver) {
376
+ if (typeof resolver === 'function')
377
+ return resolver(string);
378
+ if (typeof resolver === 'string')
379
+ return resolver;
380
+ if (typeof string === 'undefined')
381
+ return '';
382
+ return string;
383
+ }
384
+ function normalizeBrand(entry) {
385
+ if (entry === null || typeof entry === 'undefined')
386
+ return { brand: '', version: '' };
387
+ if (typeof entry === 'string')
388
+ return { brand: entry, version: '' };
389
+ return { brand: entry.brand, version: entry.version };
390
+ }
391
+ function getSemanticVersion(string) {
392
+ var parts = string.split('.');
393
+ return {
394
+ major: parseInt(parts[0] || '0'),
395
+ minor: parseInt(parts[1] || '0'),
396
+ build: parseInt(parts[2] || '0')
397
+ };
398
+ }
399
+ function parseOSFromCordova() {
400
+ Platform.crossPlatformFramework = CrossPlatformFramework.Cordova;
401
+ if (typeof globalThis.device !== 'undefined') {
402
+ switch (globalThis.device.platform) {
403
+ case 'Android':
404
+ Platform.os = {
405
+ name: OS.Android,
406
+ version: globalThis.device.version,
407
+ };
408
+ break;
409
+ case 'iOS':
410
+ Platform.os = {
411
+ name: OS.iOS,
412
+ version: globalThis.device.version,
413
+ };
414
+ break;
415
+ }
416
+ }
417
+ decrementPendingTasks();
418
+ }
419
+ function getRenderer() {
420
+ if (typeof globalThis.document === 'undefined')
421
+ return '';
422
+ var canvas = globalThis.document.createElement('canvas');
423
+ if (typeof canvas.getContext !== 'function')
424
+ return '';
425
+ var context = canvas.getContext('webgl2') || canvas.getContext('experimental-webgl') || canvas.getContext('webgl');
426
+ if (context === null)
427
+ return '';
428
+ if (context instanceof WebGLRenderingContext || 'getParameter' in context && typeof context.getParameter === 'function') {
429
+ var extension = context.getExtension('WEBGL_debug_renderer_info');
430
+ if (extension === null)
431
+ return context.getParameter(context.RENDERER);
432
+ else
433
+ return context.getParameter(extension.UNMASKED_RENDERER_WEBGL);
434
+ }
435
+ else {
436
+ return '';
437
+ }
438
+ }
439
+ function normalizeLocale(locale) {
440
+ if (locale === null || typeof locale === 'undefined')
441
+ return locale;
442
+ if (locale.length === 0)
443
+ return null;
444
+ locale = locale.replace(/_/g, '-');
445
+ if (locale === 'C' || locale.toLowerCase() === 'posix')
446
+ return 'en-US';
447
+ if (locale.indexOf('.') !== -1)
448
+ return normalizeLocale(locale.split('.')[0]);
449
+ if (locale.indexOf('@') !== -1)
450
+ return normalizeLocale(locale.split('@')[0]);
451
+ var parts = locale.split('-');
452
+ if (parts.length === 0)
453
+ return null;
454
+ parts[0] = parts[0].toLowerCase();
455
+ if (parts.length > 1 && parts[1].length === 2)
456
+ parts[1] = parts[1].toUpperCase();
457
+ if (parts.length > 2 && parts[1].length === 4)
458
+ parts[1] = parts[1].charAt(0).toUpperCase() + parts[1].slice(1).toLowerCase();
459
+ return parts.join('-');
460
+ }
461
+ function getLocale() {
462
+ var locale = {
463
+ language: null,
464
+ languages: [],
465
+ timezone: null,
466
+ timezoneOffset: 0,
467
+ };
468
+ function addLanguages(language) {
469
+ for (var i = 0; i < language.length; i++)
470
+ addLanguage(language[i]);
471
+ }
472
+ function addLanguage(language) {
473
+ language = normalizeLocale(language);
474
+ if (typeof language === "string" && locale.languages.indexOf(language) === -1) {
475
+ if (locale.language === null)
476
+ locale.language = language;
477
+ locale.languages.push(language);
478
+ }
479
+ }
480
+ if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
481
+ try {
482
+ var reactNative = require('react-native');
483
+ var nativeModules = reactNative.NativeModules;
484
+ if (typeof nativeModules.SettingsManager !== 'undefined') {
485
+ var settingManager = nativeModules.SettingsManager;
486
+ if (typeof settingManager !== 'undefined') {
487
+ var constant = typeof settingManager.getConstants === 'function'
488
+ ? settingManager.getConstants()
489
+ : settingManager;
490
+ if (typeof constant !== 'undefined' && typeof constant.settings !== 'undefined') {
491
+ var settings = constant.settings;
492
+ if (typeof settings.AppleLocale === 'string')
493
+ addLanguage(settings.AppleLocale);
494
+ if (Array.isArray(settings.AppleLanguages) && settings.AppleLanguages.length > 0)
495
+ addLanguages(settings.AppleLanguages);
496
+ }
497
+ }
498
+ }
499
+ if (typeof nativeModules.I18nManager !== 'undefined') {
500
+ var i18nManager = nativeModules.I18nManager;
501
+ if (typeof i18nManager !== 'undefined') {
502
+ var constant = typeof i18nManager.getConstants === 'function'
503
+ ? i18nManager.getConstants()
504
+ : i18nManager;
505
+ if (typeof constant !== 'undefined' && typeof constant.localeIdentifier !== 'undefined')
506
+ addLanguage(constant.localeIdentifier);
507
+ }
508
+ }
509
+ }
510
+ catch (_) {
511
+ }
512
+ }
513
+ if (Platform.crossPlatformFramework === CrossPlatformFramework.Electron) {
514
+ try {
515
+ var electron = require('electron');
516
+ var app = electron.app;
517
+ if (typeof app.getLocale !== 'undefined')
518
+ addLanguage(app.getLocale());
519
+ if (typeof app.getSystemLocale !== 'undefined')
520
+ addLanguage(app.getSystemLocale());
521
+ if (typeof app.getPreferredSystemLanguages !== 'undefined')
522
+ addLanguages(app.getPreferredSystemLanguages());
523
+ }
524
+ catch (_) {
525
+ }
526
+ }
527
+ if (typeof Intl !== 'undefined') {
528
+ try {
529
+ addLanguage(Intl.DateTimeFormat().resolvedOptions().locale);
530
+ }
531
+ catch (_) {
532
+ }
533
+ try {
534
+ locale.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
535
+ }
536
+ catch (_) {
537
+ }
538
+ }
539
+ if (typeof globalThis.navigator !== 'undefined') {
540
+ if (typeof globalThis.navigator.languages !== 'undefined')
541
+ addLanguages(globalThis.navigator.languages);
542
+ if (typeof globalThis.navigator.language !== 'undefined')
543
+ addLanguage(globalThis.navigator.language);
544
+ if (typeof globalThis.navigator.userLanguage !== 'undefined')
545
+ addLanguage(globalThis.navigator.userLanguage);
546
+ if (typeof globalThis.navigator.browserLanguage !== 'undefined')
547
+ addLanguage(globalThis.navigator.browserLanguage);
548
+ if (typeof globalThis.navigator.systemLanguage !== 'undefined')
549
+ addLanguage(globalThis.navigator.systemLanguage);
550
+ }
551
+ try {
552
+ locale.timezoneOffset = new Date().getTimezoneOffset();
553
+ }
554
+ catch (_) {
555
+ }
556
+ return locale;
557
+ }
558
+ function init() {
559
+ if ((typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && typeof globalThis.process.versions.electron !== 'undefined') || (/ electron\//i.test(USER_AGENT)))
560
+ Platform.crossPlatformFramework = CrossPlatformFramework.Electron;
561
+ if (typeof globalThis.navigator !== 'undefined' && globalThis.navigator.product === 'ReactNative')
562
+ Platform.crossPlatformFramework = CrossPlatformFramework.ReactNative;
563
+ for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
564
+ var map = OS_RESOLVER_MAP[i];
565
+ var regexp = map[0];
566
+ var os = map[1];
567
+ var resolver = map[2];
568
+ var matched = Platform.userAgent.match(regexp);
569
+ if (matched !== null) {
570
+ Platform.os = {
571
+ name: os,
572
+ version: resolveVersion(matched[1], resolver),
573
+ };
574
+ break;
575
+ }
576
+ }
577
+ if (Platform.os.name === OS.iOS && compareVersion(Platform.os.version, '18.6') === 0) {
578
+ var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent);
579
+ if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26)
580
+ Platform.os.version = version[1];
581
+ }
582
+ for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
583
+ var map = ENGINE_RESOLVER_MAP[i];
584
+ var regexp = map[0];
585
+ var engine = map[1];
586
+ var resolver = map[2];
587
+ var matched = Platform.userAgent.match(regexp);
588
+ if (matched !== null) {
589
+ Platform.engine = {
590
+ name: engine,
591
+ version: resolveVersion(matched[1], resolver),
592
+ };
593
+ break;
594
+ }
595
+ }
596
+ for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {
597
+ var map = BROWSER_RESOLVER_MAP[i];
598
+ var regexp = map[0];
599
+ var browser = map[1];
600
+ var resolver = map[2];
601
+ var matched = Platform.userAgent.match(regexp);
602
+ if (matched !== null) {
603
+ Platform.browser = {
604
+ name: browser,
605
+ version: resolveVersion(matched[1], resolver),
606
+ };
607
+ break;
608
+ }
609
+ }
610
+ if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
611
+ try {
612
+ var reactNative = require('react-native');
613
+ var platform = reactNative.Platform;
614
+ var os = platform.OS;
615
+ var release = '' + platform.Version;
616
+ var version = getSemanticVersion(release);
617
+ switch (os) {
618
+ case 'android':
619
+ Platform.os = {
620
+ name: OS.Android,
621
+ version: resolveSemanticAndroidVersion(version, release),
622
+ };
623
+ break;
624
+ case 'ios':
625
+ Platform.os = {
626
+ name: OS.iOS,
627
+ version: release,
628
+ };
629
+ break;
630
+ case 'windows':
631
+ Platform.os = {
632
+ name: OS.Windows,
633
+ version: resolveSemanticWindowsVersion(version, release),
634
+ };
635
+ break;
636
+ case 'macos':
637
+ Platform.os = {
638
+ name: OS.MacOS,
639
+ version: release,
640
+ };
641
+ break;
642
+ }
643
+ }
644
+ catch (_) {
645
+ }
646
+ finally {
647
+ }
648
+ }
649
+ if (Platform.isNode) {
650
+ try {
651
+ var os = require('os');
652
+ var platform = os.platform();
653
+ var release = os.release();
654
+ var version = getSemanticVersion(release);
655
+ switch (platform) {
656
+ case 'win32':
657
+ Platform.os = {
658
+ name: OS.Windows,
659
+ version: resolveSemanticWindowsVersion(version, release),
660
+ };
661
+ break;
662
+ case 'darwin':
663
+ Platform.os = {
664
+ name: OS.MacOS,
665
+ version: resolveSemanticDarwinVersion(version, release),
666
+ };
667
+ break;
668
+ case 'android':
669
+ Platform.os = {
670
+ name: OS.Android,
671
+ version: release,
672
+ };
673
+ break;
674
+ case 'linux':
675
+ if (/android/i.test(release)) {
676
+ Platform.os = {
677
+ name: OS.Android,
678
+ version: release,
679
+ };
680
+ }
681
+ break;
682
+ }
683
+ }
684
+ catch (_) {
685
+ }
686
+ finally {
687
+ }
688
+ }
689
+ if (typeof globalThis.document !== 'undefined') {
690
+ if (typeof globalThis.device !== 'undefined') {
691
+ parseOSFromCordova();
692
+ }
693
+ else {
694
+ globalThis.document.addEventListener("deviceready", parseOSFromCordova, false);
695
+ }
696
+ }
697
+ if (typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgentData !== 'undefined' && typeof globalThis.navigator.userAgentData.getHighEntropyValues !== 'undefined') {
698
+ incrementPendingTasks();
699
+ globalThis.navigator.userAgentData.getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64'])
700
+ .then(function (result) {
701
+ try {
702
+ var brands = result.fullVersionList || result.brands || [];
703
+ var platformVersion = result.platformVersion;
704
+ var platform = result.platform;
705
+ var browserName = Platform.browser.name;
706
+ var prevBrandName = null;
707
+ for (var i = 0; i < brands.length; i++) {
708
+ var brand = normalizeBrand(brands[i]);
709
+ var brandVersion = brand.version;
710
+ var brandName = brand.brand;
711
+ if (/not.a.brand/i.test(brandName))
712
+ continue;
713
+ if (prevBrandName === null || (/Chrom/.test(prevBrandName) && brandName !== 'Chromium') || (prevBrandName === 'Edge' && /WebView2/.test(brandName))) {
714
+ brandName = HIGH_ENTROPY_BRAND_NAME_MAP[brandName] || brandName;
715
+ prevBrandName = browserName;
716
+ if (prevBrandName === null || /Chrom/.test(prevBrandName) || !/Chrom/.test(brandName)) {
717
+ browserName = brandName;
718
+ if (browserName === 'Chrome' || browserName === 'Chrome WebView' || browserName === 'Chrome Headless')
719
+ Platform.browser.name = Browsers.Chrome;
720
+ else if (browserName === 'Edge' || browserName === 'Edge WebView2')
721
+ Platform.browser.name = Browsers.Edge;
722
+ else if (browserName === 'Opera Mobi')
723
+ Platform.browser.name = Browsers.Opera;
724
+ Platform.browser.version = brandVersion;
725
+ }
726
+ prevBrandName = brandName;
727
+ }
728
+ if (brandName === 'Chromium')
729
+ Platform.engine.version = brandVersion;
730
+ }
731
+ if (typeof platformVersion === 'string') {
732
+ if (Platform.os.name === OS.Windows)
733
+ Platform.os.version = parseInt(platformVersion.split('.')[0], 10) >= 13 ? '11' : '10';
734
+ else
735
+ Platform.os.version = platformVersion;
736
+ }
737
+ if (typeof platform === 'string') {
738
+ if (/android/i.test(platform))
739
+ Platform.os.name = OS.Android;
740
+ else if (/ios|iphone|ipad/i.test(platform))
741
+ Platform.os.name = OS.iOS;
742
+ else if (/windows|win32/i.test(platform))
743
+ Platform.os.name = OS.Windows;
744
+ else if (/macos|macintel/i.test(platform))
745
+ Platform.os.name = OS.MacOS;
746
+ }
747
+ if (result.mobile === true)
748
+ Platform.device = Devices.Mobile;
749
+ }
750
+ catch (_) {
751
+ }
752
+ finally {
753
+ decrementPendingTasks();
754
+ }
755
+ });
756
+ }
757
+ checkReady();
758
+ }
759
+ init();
760
+
761
+ var currentDimension = null;
762
+ var Dimension = {
763
+ get value() {
764
+ return getDimension();
765
+ },
766
+ onchange: onchange,
767
+ };
768
+ function getDimension() {
769
+ var dimension = {
770
+ innerWidth: -1,
771
+ innerHeight: -1,
772
+ outerWidth: -1,
773
+ outerHeight: -1,
774
+ scale: 1,
775
+ };
776
+ if (typeof globalThis.innerWidth !== 'undefined') {
777
+ dimension.innerWidth = globalThis.innerWidth;
778
+ dimension.innerHeight = globalThis.innerHeight;
779
+ dimension.outerWidth = globalThis.outerWidth;
780
+ dimension.outerHeight = globalThis.outerHeight;
781
+ dimension.scale = globalThis.devicePixelRatio || 1;
782
+ return dimension;
783
+ }
784
+ if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative) {
785
+ try {
786
+ var reactNative = require('react-native');
787
+ var dimensions = reactNative.Dimensions;
788
+ var pixelRatio = reactNative.PixelRatio;
789
+ var screenDimensions = dimensions.get('screen');
790
+ var windowDimensions = dimensions.get('window');
791
+ dimension.innerWidth = screenDimensions.width;
792
+ dimension.innerHeight = screenDimensions.height;
793
+ dimension.outerWidth = windowDimensions.width;
794
+ dimension.outerHeight = windowDimensions.height;
795
+ dimension.scale = pixelRatio.get();
796
+ return dimension;
797
+ }
798
+ catch (_) {
799
+ }
800
+ }
801
+ if (Platform.crossPlatformFramework === CrossPlatformFramework.Electron) {
802
+ try {
803
+ var electron = require('electron');
804
+ var screen_1 = electron.screen;
805
+ var browserWindow = electron.BrowserWindow;
806
+ var focusedWindow = browserWindow.getFocusedWindow() || browserWindow.getAllWindows()[0];
807
+ if (typeof focusedWindow !== 'undefined') {
808
+ var contentSize = focusedWindow.getContentSize();
809
+ var size = focusedWindow.getSize();
810
+ dimension.innerWidth = contentSize[0];
811
+ dimension.innerHeight = contentSize[1];
812
+ dimension.outerWidth = size[0];
813
+ dimension.outerHeight = size[1];
814
+ dimension.scale = screen_1.getDisplayMatching(focusedWindow.getBounds()).scaleFactor;
815
+ }
816
+ return dimension;
817
+ }
818
+ catch (_) {
819
+ }
820
+ }
821
+ return dimension;
822
+ }
823
+ function addListener(capture) {
824
+ currentDimension = getDimension();
825
+ if (typeof globalThis.addEventListener === 'function')
826
+ globalThis.addEventListener('resize', onResize, capture);
827
+ }
828
+ function removeListener(capture) {
829
+ currentDimension = null;
830
+ if (typeof globalThis.removeEventListener === 'function')
831
+ globalThis.removeEventListener('resize', onResize, capture);
832
+ }
833
+ function onResize() {
834
+ var dimension = getDimension();
835
+ if (!currentDimension ||
836
+ dimension.innerWidth !== currentDimension.innerWidth ||
837
+ dimension.innerHeight !== currentDimension.innerHeight ||
838
+ dimension.outerWidth !== currentDimension.outerWidth ||
839
+ dimension.outerHeight !== currentDimension.outerHeight ||
840
+ dimension.scale !== currentDimension.scale) {
841
+ currentDimension = dimension;
842
+ notify(dimension);
843
+ }
844
+ }
845
+ function notify(dimension) {
846
+ for (var i = 0; i < ENTRIES.length; i++) {
847
+ var entry = ENTRIES[i];
848
+ entry.fn(dimension);
849
+ if (entry.once)
850
+ removeEntry(entry);
851
+ }
852
+ }
853
+ function removeEntry(entry) {
854
+ var index = indexOfEntry(entry);
855
+ if (index !== -1)
856
+ ENTRIES.splice(index, 1);
857
+ if (ENTRIES.length === 0)
858
+ removeListener(entry.capture);
859
+ }
860
+ function indexOfEntry(entry) {
861
+ for (var i = 0; i < ENTRIES.length; i++)
862
+ if (ENTRIES[i].fn === entry.fn && ENTRIES[i].capture === entry.capture)
863
+ return i;
864
+ return -1;
865
+ }
866
+ function onchangeReactNative(listener) {
867
+ try {
868
+ var reactNative = require('react-native');
869
+ var subscription_1 = reactNative.Dimensions.addEventListener('change', function (dimensions) {
870
+ listener(getDimension());
871
+ });
872
+ return function () {
873
+ subscription_1.remove();
874
+ };
875
+ }
876
+ catch (_) {
877
+ }
878
+ return function () {
879
+ };
880
+ }
881
+ function onchangeElectron(listener) {
882
+ try {
883
+ var electron = require('electron');
884
+ var browserWindow = electron.BrowserWindow;
885
+ var focusedWindow_1 = browserWindow.getFocusedWindow() || browserWindow.getAllWindows()[0];
886
+ if (typeof focusedWindow_1 !== 'undefined') {
887
+ var handleResize_1 = function () {
888
+ listener(getDimension());
889
+ };
890
+ focusedWindow_1.on('resize', handleResize_1);
891
+ return function () {
892
+ focusedWindow_1.removeListener('resize', handleResize_1);
893
+ };
894
+ }
895
+ }
896
+ catch (_) {
897
+ }
898
+ return function () {
899
+ };
900
+ }
901
+ function onchange(listener, options) {
902
+ if (options === void 0) { options = false; }
903
+ if (Platform.crossPlatformFramework === CrossPlatformFramework.ReactNative)
904
+ return onchangeReactNative(listener);
905
+ if (Platform.crossPlatformFramework === CrossPlatformFramework.Electron)
906
+ return onchangeElectron(listener);
907
+ var entry = { fn: listener, capture: false, once: false };
908
+ if (typeof options === 'boolean')
909
+ options = { capture: options };
910
+ if (typeof options.capture !== 'undefined')
911
+ entry.capture = options.capture;
912
+ if (typeof options.once !== 'undefined')
913
+ entry.once = options.once;
914
+ if (typeof options.signal !== 'undefined')
915
+ entry.signal = options.signal;
916
+ var index = indexOfEntry(entry);
917
+ if (index === -1) {
918
+ ENTRIES.push(entry);
919
+ if (ENTRIES.length === 1)
920
+ addListener(entry.capture);
921
+ notify(getDimension());
922
+ }
923
+ else if (ENTRIES[index].once && !entry.once) {
924
+ ENTRIES[index].once = false;
925
+ }
926
+ if (typeof entry.signal !== 'undefined') {
927
+ if (entry.signal.aborted) {
928
+ removeEntry(entry);
929
+ }
930
+ else {
931
+ entry.signal.addEventListener('abort', function onAbort() {
932
+ if (typeof entry.signal !== 'undefined')
933
+ entry.signal.removeEventListener('abort', onAbort);
934
+ removeEntry(entry);
935
+ });
936
+ }
937
+ }
938
+ return function () {
939
+ removeEntry(entry);
940
+ };
941
+ }
942
+
943
+ var NativeDimensionPlugin = {
944
+ installed: false,
945
+ name: 'Dimension',
946
+ module: Dimension,
947
+ Constants: {},
948
+ Errors: {}
949
+ };
950
+
951
+ return NativeDimensionPlugin;
952
+
953
+ }));