native-fn 1.0.26 → 1.0.28

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 (161) hide show
  1. package/README.md +22 -192
  2. package/dist/index.d.ts +18 -27
  3. package/dist/native.cjs +27 -1400
  4. package/dist/native.min.cjs +1 -0
  5. package/dist/native.min.mjs +1 -0
  6. package/dist/native.mjs +27 -1400
  7. package/dist/native.umd.js +27 -1400
  8. package/dist/native.umd.min.js +1 -0
  9. package/dist/plugin/app/index.cjs +1025 -0
  10. package/dist/plugin/app/index.d.ts +86 -0
  11. package/dist/plugin/app/index.min.cjs +1 -0
  12. package/dist/plugin/app/index.min.mjs +1 -0
  13. package/dist/plugin/app/index.mjs +1023 -0
  14. package/dist/plugin/app/index.umd.js +1031 -0
  15. package/dist/plugin/app/index.umd.min.js +1 -0
  16. package/dist/plugin/app/src/constants/platform.d.ts +35 -0
  17. package/dist/plugin/app/src/constants/user-agent.d.ts +1 -0
  18. package/dist/plugin/app/src/plugin/app/cores/app.d.ts +3 -0
  19. package/dist/plugin/app/src/plugin/app/index.d.ts +5 -0
  20. package/dist/plugin/app/src/plugin/app/types/app.d.ts +54 -0
  21. package/dist/plugin/app/src/plugin/app/types/appModule.d.ts +54 -0
  22. package/dist/plugin/app/src/plugin/app/types/index.d.ts +1 -0
  23. package/dist/plugin/app/src/plugin/app/utils/event-listener-utils.d.ts +3 -0
  24. package/dist/plugin/app/src/plugin/platform/cores/platform.d.ts +3 -0
  25. package/dist/plugin/app/src/plugin/platform/index.d.ts +5 -0
  26. package/dist/plugin/app/src/plugin/platform/types/index.d.ts +1 -0
  27. package/dist/{src → plugin/app/src/plugin/platform}/types/platform.d.ts +1 -1
  28. package/dist/plugin/app/src/plugin/platform/types/platformModule.d.ts +13 -0
  29. package/dist/{src → plugin/app/src/plugin/theme}/constants/theme.d.ts +1 -1
  30. package/dist/plugin/app/src/plugin/theme/cores/theme.d.ts +3 -0
  31. package/dist/plugin/app/src/plugin/theme/index.d.ts +5 -0
  32. package/dist/plugin/app/src/plugin/theme/types/color.d.ts +17 -0
  33. package/dist/{src → plugin/app/src/plugin/theme}/types/easing-syntax.d.ts +1 -1
  34. package/dist/plugin/app/src/plugin/theme/types/index.d.ts +3 -0
  35. package/dist/{src → plugin/app/src/plugin/theme}/types/theme.d.ts +4 -4
  36. package/dist/plugin/app/src/plugin/theme/types/themeModule.d.ts +24 -0
  37. package/dist/{src → plugin/app/src/plugin/theme}/utils/parse-color.d.ts +1 -1
  38. package/dist/{src → plugin/app/src/plugin/theme}/utils/parse-easing-function.d.ts +1 -1
  39. package/dist/plugin/app/src/types/index.d.ts +1 -0
  40. package/dist/plugin/app/src/types/native.d.ts +14 -0
  41. package/dist/plugin/app/src/utils/assign.d.ts +1 -0
  42. package/dist/plugin/app/src/utils/create-custom-error.d.ts +1 -0
  43. package/dist/plugin/platform/index.cjs +171 -0
  44. package/dist/plugin/platform/index.d.ts +51 -0
  45. package/dist/plugin/platform/index.min.cjs +1 -0
  46. package/dist/plugin/platform/index.min.mjs +1 -0
  47. package/dist/plugin/platform/index.mjs +169 -0
  48. package/dist/plugin/platform/index.umd.js +177 -0
  49. package/dist/plugin/platform/index.umd.min.js +1 -0
  50. package/dist/plugin/platform/src/constants/platform.d.ts +35 -0
  51. package/dist/plugin/platform/src/constants/user-agent.d.ts +1 -0
  52. package/dist/plugin/platform/src/plugin/app/constants/app.d.ts +13 -0
  53. package/dist/plugin/platform/src/plugin/app/cores/app.d.ts +3 -0
  54. package/dist/plugin/platform/src/plugin/app/errors/url-open-error.d.ts +2 -0
  55. package/dist/plugin/platform/src/plugin/app/index.d.ts +5 -0
  56. package/dist/plugin/platform/src/plugin/app/types/app.d.ts +54 -0
  57. package/dist/plugin/platform/src/plugin/app/types/appModule.d.ts +54 -0
  58. package/dist/plugin/platform/src/plugin/app/types/index.d.ts +1 -0
  59. package/dist/plugin/platform/src/plugin/app/utils/event-listener-utils.d.ts +3 -0
  60. package/dist/plugin/platform/src/plugin/app/utils/try-open-url.d.ts +1 -0
  61. package/dist/plugin/platform/src/plugin/platform/cores/platform.d.ts +3 -0
  62. package/dist/plugin/platform/src/plugin/platform/index.d.ts +5 -0
  63. package/dist/plugin/platform/src/plugin/platform/types/index.d.ts +1 -0
  64. package/dist/plugin/platform/src/plugin/platform/types/platform.d.ts +13 -0
  65. package/dist/plugin/platform/src/plugin/platform/types/platformModule.d.ts +13 -0
  66. package/dist/plugin/platform/src/plugin/theme/constants/theme.d.ts +16 -0
  67. package/dist/plugin/platform/src/plugin/theme/cores/theme.d.ts +3 -0
  68. package/dist/plugin/platform/src/plugin/theme/errors/easing-error.d.ts +6 -0
  69. package/dist/plugin/platform/src/plugin/theme/errors/unsupported-color-error.d.ts +2 -0
  70. package/dist/plugin/platform/src/plugin/theme/index.d.ts +5 -0
  71. package/dist/plugin/platform/src/plugin/theme/types/color.d.ts +17 -0
  72. package/dist/plugin/platform/src/plugin/theme/types/easing-syntax.d.ts +16 -0
  73. package/dist/plugin/platform/src/plugin/theme/types/index.d.ts +3 -0
  74. package/dist/plugin/platform/src/plugin/theme/types/theme.d.ts +24 -0
  75. package/dist/plugin/platform/src/plugin/theme/types/themeModule.d.ts +24 -0
  76. package/dist/plugin/platform/src/plugin/theme/utils/parse-color.d.ts +2 -0
  77. package/dist/plugin/platform/src/plugin/theme/utils/parse-easing-function.d.ts +2 -0
  78. package/dist/plugin/platform/src/types/index.d.ts +1 -0
  79. package/dist/plugin/platform/src/types/native.d.ts +14 -0
  80. package/dist/plugin/platform/src/utils/assign.d.ts +1 -0
  81. package/dist/plugin/platform/src/utils/create-custom-error.d.ts +1 -0
  82. package/dist/plugin/theme/index.cjs +810 -0
  83. package/dist/plugin/theme/index.d.ts +75 -0
  84. package/dist/plugin/theme/index.min.cjs +1 -0
  85. package/dist/plugin/theme/index.min.mjs +1 -0
  86. package/dist/plugin/theme/index.mjs +808 -0
  87. package/dist/plugin/theme/index.umd.js +816 -0
  88. package/dist/plugin/theme/index.umd.min.js +1 -0
  89. package/dist/plugin/theme/src/constants/platform.d.ts +35 -0
  90. package/dist/plugin/theme/src/constants/user-agent.d.ts +1 -0
  91. package/dist/plugin/theme/src/plugin/app/constants/app.d.ts +13 -0
  92. package/dist/plugin/theme/src/plugin/app/cores/app.d.ts +3 -0
  93. package/dist/plugin/theme/src/plugin/app/errors/url-open-error.d.ts +2 -0
  94. package/dist/plugin/theme/src/plugin/app/index.d.ts +5 -0
  95. package/dist/plugin/theme/src/plugin/app/types/app.d.ts +54 -0
  96. package/dist/plugin/theme/src/plugin/app/types/appModule.d.ts +54 -0
  97. package/dist/plugin/theme/src/plugin/app/types/index.d.ts +1 -0
  98. package/dist/plugin/theme/src/plugin/app/utils/event-listener-utils.d.ts +3 -0
  99. package/dist/plugin/theme/src/plugin/app/utils/try-open-url.d.ts +1 -0
  100. package/dist/plugin/theme/src/plugin/platform/cores/platform.d.ts +3 -0
  101. package/dist/plugin/theme/src/plugin/platform/index.d.ts +5 -0
  102. package/dist/plugin/theme/src/plugin/platform/types/index.d.ts +1 -0
  103. package/dist/plugin/theme/src/plugin/platform/types/platform.d.ts +13 -0
  104. package/dist/plugin/theme/src/plugin/platform/types/platformModule.d.ts +13 -0
  105. package/dist/plugin/theme/src/plugin/theme/constants/theme.d.ts +16 -0
  106. package/dist/plugin/theme/src/plugin/theme/cores/theme.d.ts +3 -0
  107. package/dist/plugin/theme/src/plugin/theme/errors/easing-error.d.ts +6 -0
  108. package/dist/plugin/theme/src/plugin/theme/errors/unsupported-color-error.d.ts +2 -0
  109. package/dist/plugin/theme/src/plugin/theme/index.d.ts +5 -0
  110. package/dist/plugin/theme/src/plugin/theme/types/color.d.ts +17 -0
  111. package/dist/plugin/theme/src/plugin/theme/types/easing-syntax.d.ts +16 -0
  112. package/dist/plugin/theme/src/plugin/theme/types/index.d.ts +3 -0
  113. package/dist/plugin/theme/src/plugin/theme/types/theme.d.ts +24 -0
  114. package/dist/plugin/theme/src/plugin/theme/types/themeModule.d.ts +24 -0
  115. package/dist/plugin/theme/src/plugin/theme/utils/parse-color.d.ts +2 -0
  116. package/dist/plugin/theme/src/plugin/theme/utils/parse-easing-function.d.ts +2 -0
  117. package/dist/plugin/theme/src/types/index.d.ts +1 -0
  118. package/dist/plugin/theme/src/types/native.d.ts +14 -0
  119. package/dist/plugin/theme/src/utils/assign.d.ts +1 -0
  120. package/dist/plugin/theme/src/utils/create-custom-error.d.ts +1 -0
  121. package/dist/src/plugin/app/constants/app.d.ts +13 -0
  122. package/dist/src/plugin/app/cores/app.d.ts +3 -0
  123. package/dist/src/plugin/app/errors/url-open-error.d.ts +2 -0
  124. package/dist/src/plugin/app/index.d.ts +5 -0
  125. package/dist/src/plugin/app/types/app.d.ts +54 -0
  126. package/dist/src/plugin/app/types/appModule.d.ts +54 -0
  127. package/dist/src/plugin/app/types/index.d.ts +1 -0
  128. package/dist/src/plugin/app/utils/event-listener-utils.d.ts +3 -0
  129. package/dist/src/plugin/app/utils/try-open-url.d.ts +1 -0
  130. package/dist/src/plugin/platform/cores/platform.d.ts +3 -0
  131. package/dist/src/plugin/platform/index.d.ts +5 -0
  132. package/dist/src/plugin/platform/types/index.d.ts +1 -0
  133. package/dist/src/plugin/platform/types/platform.d.ts +13 -0
  134. package/dist/src/plugin/platform/types/platformModule.d.ts +13 -0
  135. package/dist/src/plugin/theme/constants/theme.d.ts +16 -0
  136. package/dist/src/plugin/theme/cores/theme.d.ts +3 -0
  137. package/dist/src/plugin/theme/errors/easing-error.d.ts +6 -0
  138. package/dist/src/plugin/theme/errors/unsupported-color-error.d.ts +2 -0
  139. package/dist/src/plugin/theme/index.d.ts +5 -0
  140. package/dist/src/plugin/theme/types/color.d.ts +17 -0
  141. package/dist/src/plugin/theme/types/easing-syntax.d.ts +16 -0
  142. package/dist/src/plugin/theme/types/index.d.ts +3 -0
  143. package/dist/src/plugin/theme/types/theme.d.ts +24 -0
  144. package/dist/src/plugin/theme/types/themeModule.d.ts +24 -0
  145. package/dist/src/plugin/theme/utils/parse-color.d.ts +2 -0
  146. package/dist/src/plugin/theme/utils/parse-easing-function.d.ts +2 -0
  147. package/dist/src/types/index.d.ts +1 -5
  148. package/dist/src/types/native.d.ts +14 -0
  149. package/dist/src/utils/assign.d.ts +1 -0
  150. package/package.json +8 -5
  151. package/dist/src/cores/app.d.ts +0 -3
  152. package/dist/src/cores/platform.d.ts +0 -3
  153. package/dist/src/cores/theme.d.ts +0 -3
  154. package/dist/src/types/app.d.ts +0 -44
  155. package/dist/src/types/color.d.ts +0 -17
  156. package/dist/src/utils/freeze-deep.d.ts +0 -1
  157. /package/dist/{src → plugin/app/src/plugin/app}/constants/app.d.ts +0 -0
  158. /package/dist/{src → plugin/app/src/plugin/app}/errors/url-open-error.d.ts +0 -0
  159. /package/dist/{src → plugin/app/src/plugin/app}/utils/try-open-url.d.ts +0 -0
  160. /package/dist/{src → plugin/app/src/plugin/theme}/errors/easing-error.d.ts +0 -0
  161. /package/dist/{src → plugin/app/src/plugin/theme}/errors/unsupported-color-error.d.ts +0 -0
package/dist/native.cjs CHANGED
@@ -1,1414 +1,41 @@
1
1
  'use strict';
2
2
 
3
- var version = "1.0.26";
3
+ var version = "1.0.27";
4
4
  var packageJSON = {
5
5
  version: version};
6
6
 
7
- var USER_AGENT = navigator.userAgent;
8
-
9
- var AppOpenState;
10
- (function (AppOpenState) {
11
- AppOpenState[AppOpenState["Scheme"] = 0] = "Scheme";
12
- AppOpenState[AppOpenState["Universal"] = 1] = "Universal";
13
- AppOpenState[AppOpenState["Intent"] = 2] = "Intent";
14
- AppOpenState[AppOpenState["Fallback"] = 3] = "Fallback";
15
- AppOpenState[AppOpenState["Store"] = 4] = "Store";
16
- })(AppOpenState || (AppOpenState = {}));
17
- var Messengers;
18
- (function (Messengers) {
19
- Messengers["Telephone"] = "telephone";
20
- Messengers["Message"] = "message";
21
- Messengers["Mail"] = "mail";
22
- })(Messengers || (Messengers = {}));
23
- var IS_SUPPORT_INTENT = !/firefox|opr/i.test(USER_AGENT);
24
-
25
- var OS;
26
- (function (OS) {
27
- OS["Unknown"] = "Unknown";
28
- OS["Android"] = "Android";
29
- OS["iOS"] = "iOS";
30
- OS["Windows"] = "Windows";
31
- OS["MacOS"] = "MacOS";
32
- })(OS || (OS = {}));
33
- var Devices;
34
- (function (Devices) {
35
- Devices["Unknown"] = "Unknown";
36
- Devices["Mobile"] = "Mobile";
37
- Devices["Desktop"] = "Desktop";
38
- })(Devices || (Devices = {}));
39
- var Engines;
40
- (function (Engines) {
41
- Engines["Unknown"] = "Unknown";
42
- Engines["EdgeHTML"] = "EdgeHTML";
43
- Engines["ArkWeb"] = "ArkWeb";
44
- Engines["Blink"] = "Blink";
45
- Engines["Presto"] = "Presto";
46
- Engines["WebKit"] = "WebKit";
47
- Engines["Trident"] = "Trident";
48
- Engines["NetFront"] = "NetFront";
49
- Engines["KHTML"] = "KHTML";
50
- Engines["Tasman"] = "Tasman";
51
- Engines["Gecko"] = "Gecko";
52
- })(Engines || (Engines = {}));
53
- var OS_RESOLVER_MAP = (function () {
54
- function resolveIOSOrMacVersion(str) {
55
- if (str === undefined)
56
- return "";
57
- return str.replace(/_/g, ".");
58
- }
59
- function resolveWindowsVersion(str) {
60
- if (str === undefined)
61
- return "";
62
- var mapped = {
63
- "4.90": "ME",
64
- "NT3.51": "NT 3.11",
65
- "NT4.0": "NT 4.0",
66
- "NT 5.0": "2000",
67
- "NT 5.1": "XP",
68
- "NT 5.2": "XP",
69
- "NT 6.0": "Vista",
70
- "NT 6.1": "7",
71
- "NT 6.2": "8",
72
- "NT 6.3": "8.1",
73
- "NT 6.4": "10",
74
- "NT 10.0": "10",
75
- "ARM": "RT"
76
- }[str];
77
- if (mapped !== undefined)
78
- return mapped;
79
- return str;
80
- }
81
- function resolveVersion(str) {
82
- if (str === undefined)
83
- return "";
84
- return str;
85
- }
86
- return [
87
- [/android\w*[-\/.; ]?([\d.]*)/i, OS.Android, Devices.Mobile, resolveVersion],
88
- [/microsoft windows (vista|xp)/i, OS.Windows, Devices.Desktop, resolveVersion],
89
- [/windows (?:phone(?: os)?|mobile|iot)[\/ ]?([.\w ]*)/i, OS.Windows, Devices.Desktop, resolveWindowsVersion],
90
- [/windows nt 6\.2; (arm)/i, OS.Windows, Devices.Desktop, resolveWindowsVersion],
91
- [/windows[\/ ]([ntce\d. ]+\w)(?!.+xbox)/i, OS.Windows, Devices.Desktop, resolveWindowsVersion],
92
- [/(?:win(?=[39n])|win 9x )([nt\d.]+)/i, OS.Windows, Devices.Desktop, resolveWindowsVersion],
93
- [/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i, OS.iOS, Devices.Mobile, resolveIOSOrMacVersion],
94
- [/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d.]+)/i, OS.iOS, Devices.Mobile, resolveIOSOrMacVersion],
95
- [/cfnetwork\/.+darwin/i, OS.iOS, Devices.Mobile, resolveVersion],
96
- [/mac os x ?([\w. ]*)/i, OS.MacOS, Devices.Desktop, resolveIOSOrMacVersion],
97
- [/(?:macintosh|mac_powerpc\b)(?!.+haiku)/i, OS.MacOS, Devices.Desktop, resolveIOSOrMacVersion],
98
- ];
99
- })();
100
- var ENGINE_RESOLVER_MAP = [
101
- [/windows.+ edge\/([\w.]+)/i, Engines.EdgeHTML],
102
- [/arkweb\/([\w.]+)/i, Engines.ArkWeb],
103
- [/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i, Engines.Blink],
104
- [/presto\/([\w.]+)/i, Engines.Presto],
105
- [/webkit\/([\w.]+)/i, Engines.WebKit],
106
- [/trident\/([\w.]+)/i, Engines.Trident],
107
- [/netfront\/([\w.]+)/i, Engines.NetFront],
108
- [/khtml[\/ ]\(?([\w.]+)/i, Engines.KHTML],
109
- [/tasman[\/ ]\(?([\w.]+)/i, Engines.Tasman],
110
- [/rv:([\w.]{1,9})\b.+gecko/i, Engines.Gecko]
111
- ];
112
- var OS_NAME = OS.Unknown;
113
- var OS_VERSION = "";
114
- var DEVICE_NAME = Devices.Unknown;
115
- var ENGINE_NAME = Engines.Unknown;
116
- var ENGINE_VERSION = "";
117
- for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {
118
- var map = OS_RESOLVER_MAP[i];
119
- var regexp = map[0];
120
- var os = map[1];
121
- var device = map[2];
122
- var resolver = map[3];
123
- var matched = USER_AGENT.match(regexp);
124
- if (matched !== null) {
125
- OS_NAME = os;
126
- OS_VERSION = resolver(matched[1]);
127
- DEVICE_NAME = device;
128
- break;
129
- }
130
- }
131
- for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {
132
- var map = ENGINE_RESOLVER_MAP[i];
133
- var regexp = map[0];
134
- var engine = map[1];
135
- var matched = USER_AGENT.match(regexp);
136
- if (matched !== null) {
137
- ENGINE_NAME = engine;
138
- ENGINE_VERSION = matched[1];
139
- break;
140
- }
141
- }
142
- var RENDERER = (function () {
143
- var canvas = document.createElement("canvas");
144
- if (typeof canvas.getContext !== "function")
145
- return "";
146
- var context = canvas.getContext("webgl2") || canvas.getContext("experimental-webgl") || canvas.getContext("webgl");
147
- if (context === null)
148
- return "";
149
- if (context instanceof WebGLRenderingContext || "getParameter" in context && typeof context.getParameter === "function") {
150
- var extension = context.getExtension("WEBGL_debug_renderer_info");
151
- if (extension === null)
152
- return context.getParameter(context.RENDERER);
153
- else
154
- return context.getParameter(extension.UNMASKED_RENDERER_WEBGL);
155
- }
156
- else {
157
- return "";
158
- }
159
- })();
160
- var IS_MOBILE = DEVICE_NAME === Devices.Mobile;
161
- var IS_DESKTOP = DEVICE_NAME === Devices.Desktop;
162
- var IS_STANDALONE = (function () {
163
- if (OS_NAME === OS.iOS)
164
- return navigator.standalone;
165
- else
166
- return window.matchMedia("(display-mode: standalone)").matches;
167
- })();
168
- var IS_WEBVIEW = /; ?wv|applewebkit(?!.*safari)/i.test(USER_AGENT);
169
-
170
- var Appearances;
171
- (function (Appearances) {
172
- Appearances["Unknown"] = "unknown";
173
- Appearances["Light"] = "light";
174
- Appearances["Dark"] = "dark";
175
- })(Appearances || (Appearances = {}));
176
- var CHROME_VERSION = (function getChromeVersion() {
177
- var matched = USER_AGENT.match(/chrome\/([\w.]+) mobile/i);
178
- if (matched === null)
179
- return NaN;
180
- var version = parseInt(matched[1]);
181
- if (isNaN(version))
182
- return NaN;
183
- return version;
184
- })();
185
- var MEDIA_QUERY_LIST = window.matchMedia("(prefers-color-scheme: dark)");
186
- var SUPPORT_PREFERS_COLOR_SCHEME = MEDIA_QUERY_LIST.media !== "not all";
187
- var IS_FULL_SUPPORT_THEME_COLOR = isNaN(CHROME_VERSION) || CHROME_VERSION >= 92;
188
- var CONTEXT = document.createElement("canvas").getContext("2d", { willReadFrequently: true });
189
- var SVG_PIXEL_DATA_URL = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IndoaXRlIi8+PC9zdmc+";
190
- var IS_SAMSUNG = /Samsung/i.test(USER_AGENT);
191
- var IS_IE_MOBILE = /iemobile/i.test(USER_AGENT);
192
- var IS_WINDOWS_PHONE = /windows phone/i.test(USER_AGENT);
193
- var ENTRIES = [];
194
-
195
- var Platform = {
196
- os: OS_NAME,
197
- device: DEVICE_NAME,
198
- engine: ENGINE_NAME,
199
- osVersion: OS_VERSION,
200
- engineVersion: ENGINE_VERSION,
201
- renderer: RENDERER,
202
- isWebview: IS_WEBVIEW,
203
- isMobile: IS_MOBILE,
204
- isDesktop: IS_DESKTOP,
205
- isStandalone: IS_STANDALONE,
206
- };
207
-
208
- function getTopmostWindow() {
209
- if (window.top !== null)
210
- return window.top;
211
- return window;
212
- }
213
- function openURLViaHref(url, index) {
214
- var top = getTopmostWindow();
215
- var a = undefined;
216
- try {
217
- if (index === 0) {
218
- top.location.href = url;
219
- return;
220
- }
221
- a = top.document.createElement("a");
222
- a.href = url;
223
- a.style.display = "none";
224
- a.setAttribute("aria-hidden", "true");
225
- top.document.body.appendChild(a);
226
- var fake = void 0;
227
- try {
228
- fake = new MouseEvent("click", {
229
- bubbles: true,
230
- cancelable: true,
231
- view: top
232
- });
233
- }
234
- catch (_) {
235
- fake = top.document.createEvent("MouseEvents");
236
- fake.initMouseEvent("click", true, true, top, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
237
- }
238
- a.dispatchEvent(fake);
239
- }
240
- catch (_) {
241
- }
242
- finally {
243
- if (a !== undefined)
244
- top.document.body.removeChild(a);
245
- }
246
- }
247
- function openURLViaIframe(url) {
248
- var top = getTopmostWindow();
249
- var iframe = document.createElement("iframe");
250
- iframe.width = iframe.height = iframe.frameBorder = "0";
251
- iframe.style.display = "none";
252
- iframe.src = url;
253
- top.document.body.appendChild(iframe);
254
- window.setTimeout(function () {
255
- try {
256
- top.document.removeChild(iframe);
257
- }
258
- catch (_) {
259
- }
260
- }, 100);
261
- }
262
- function isDocumentHidden() {
263
- var top = getTopmostWindow();
264
- var doc = top.document;
265
- if (doc.visibilityState === "hidden")
266
- return true;
267
- if (doc.hidden !== undefined)
268
- return doc.hidden;
269
- if (doc.webkitHidden !== undefined)
270
- return doc.webkitHidden;
271
- if (typeof doc.hasFocus === "function")
272
- return !doc.hasFocus();
273
- return true;
274
- }
275
- function tryOpenUrl(url, index, timeout) {
276
- var top = getTopmostWindow();
277
- if (Platform.os === OS.iOS) {
278
- var visibilitychange_1;
279
- var eventTarget_1;
280
- if (parseInt(Platform.osVersion) >= 8) {
281
- visibilitychange_1 = "visibilitychange";
282
- eventTarget_1 = top.document;
283
- }
284
- else {
285
- visibilitychange_1 = "pagehide";
286
- eventTarget_1 = top;
287
- }
288
- return new Promise(function (resolve, reject) {
289
- var timeoutId;
290
- var resolved = false;
291
- function cleanup() {
292
- if (timeoutId)
293
- clearTimeout(timeoutId);
294
- eventTarget_1.removeEventListener(visibilitychange_1, onVisibilityChange);
295
- }
296
- function done(success) {
297
- if (!resolved) {
298
- resolved = true;
299
- try {
300
- cleanup();
301
- if (success)
302
- resolve();
303
- else
304
- reject();
305
- }
306
- catch (_) {
307
- resolve();
308
- }
309
- }
310
- }
311
- function onVisibilityChange() {
312
- if (isDocumentHidden())
313
- done(true);
314
- }
315
- timeoutId = window.setTimeout(function () {
316
- done(false);
317
- }, timeout);
318
- eventTarget_1.addEventListener(visibilitychange_1, onVisibilityChange);
319
- try {
320
- openURLViaIframe(url);
321
- openURLViaHref(url, index);
322
- }
323
- catch (_) {
324
- done(false);
325
- }
326
- });
327
- }
328
- else {
329
- return new Promise(function (resolve, reject) {
330
- var timeoutId;
331
- var resolved = false;
332
- function cleanup() {
333
- if (timeoutId)
334
- clearTimeout(timeoutId);
335
- top.removeEventListener("blur", onBlur);
336
- top.removeEventListener("focus", onFocus);
337
- top.document.removeEventListener("visibilitychange", onVisibilityChange);
338
- }
339
- function done(success) {
340
- if (!resolved) {
341
- resolved = true;
342
- try {
343
- cleanup();
344
- if (success)
345
- resolve();
346
- else
347
- reject();
348
- }
349
- catch (_) {
350
- resolve();
351
- }
352
- }
353
- }
354
- function onBlur() {
355
- clearTimeout(timeoutId);
356
- top.removeEventListener("blur", onBlur);
357
- top.addEventListener("focus", onFocus);
358
- }
359
- function onFocus() {
360
- done(true);
361
- }
362
- function onVisibilityChange() {
363
- if (isDocumentHidden())
364
- done(true);
365
- }
366
- timeoutId = window.setTimeout(function () {
367
- done(false);
368
- }, timeout);
369
- top.addEventListener("blur", onBlur);
370
- top.document.addEventListener("visibilitychange", onVisibilityChange);
371
- try {
372
- openURLViaIframe(url);
373
- openURLViaHref(url, index);
374
- }
375
- catch (_) {
376
- done(false);
377
- }
378
- });
379
- }
380
- }
381
-
382
- function createCustomError(name, Base) {
383
- if (Base === void 0) { Base = Error; }
384
- function CustomError(message) {
385
- if (message === void 0) { message = ""; }
386
- if (!(this instanceof CustomError))
387
- return new CustomError(message);
388
- var error = new Base(message);
389
- var proto = CustomError.prototype;
390
- if (typeof Object.setPrototypeOf === "function")
391
- Object.setPrototypeOf(error, proto);
392
- else
393
- error.__proto__ = proto;
394
- error.name = name;
395
- error.message = message;
396
- if (typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol")
397
- Object.defineProperty(error, Symbol.toStringTag, { value: name, writable: false, enumerable: false, configurable: true });
398
- var captureStackTrace = Base.captureStackTrace;
399
- if (typeof captureStackTrace === "function")
400
- captureStackTrace(error, CustomError);
401
- else if (Error.prototype.stack !== undefined)
402
- error.stack = new Base().stack;
403
- return error;
404
- }
405
- CustomError.prototype = Object.create(Base.prototype);
406
- CustomError.prototype.constructor = CustomError;
407
- try {
408
- CustomError.prototype.name = name;
409
- }
410
- catch (_) {
411
- }
412
- return CustomError;
413
- }
414
-
415
- var URLOpenError = createCustomError("URLOpenError");
416
-
417
- var _a;
418
- var App = {
419
- open: open,
420
- messenger: (_a = {},
421
- _a[Messengers.Telephone] = openMessengerTelephone,
422
- _a[Messengers.Message] = openMessengerMessage,
423
- _a[Messengers.Mail] = openMessengerMail,
424
- _a),
425
- };
426
- function getTrackId(bundle) {
427
- try {
428
- var xhr = new XMLHttpRequest();
429
- xhr.open("GET", "https://itunes.apple.com/lookup?bundleId=" + bundle, false);
430
- xhr.send();
431
- if (xhr.status === 200) {
432
- var response = JSON.parse(xhr.response);
433
- if (response.results !== undefined && response.results.length > 0)
434
- return response.results[0].trackId;
435
- }
436
- return undefined;
437
- }
438
- catch (_) {
439
- return undefined;
440
- }
441
- }
442
- function createIntentURL(scheme, packageName, fallback) {
443
- var split = scheme.split("://");
444
- var prefix = split[0];
445
- var suffix = split[1];
446
- var intent = "intent://";
447
- if (suffix !== undefined)
448
- intent = intent + suffix;
449
- intent = intent + "#Intent;"
450
- + "scheme=" + prefix + ";"
451
- + "action=android.intent.action.VIEW;"
452
- + "category=android.intent.category.BROWSABLE;";
453
- if (packageName !== undefined)
454
- intent = intent + "package=" + packageName + ";";
455
- if (fallback !== undefined)
456
- intent = intent + "S.browser_fallback_url=" + fallback + ";";
457
- else if (packageName !== undefined)
458
- intent = intent + "S.browser_fallback_url=" + createAppStoreURL(packageName, OS.Android) + ";";
459
- return intent + "end";
460
- }
461
- function parseIntentURL(intent) {
462
- var parsed = {};
463
- var split = intent.split("#Intent;");
464
- var host = split[0].substring(9);
465
- var suffix = split[1];
466
- var parameterString = suffix.substring(0, suffix.length - 4);
467
- var parameters = parameterString.split(";");
468
- var extras = {};
469
- for (var i = 0; i < parameters.length; i++) {
470
- var part = parameters[i];
471
- var index = part.indexOf("=");
472
- if (index !== -1)
473
- extras[part.substring(0, index)] = part.substring(index + 1);
474
- }
475
- if (extras["scheme"] !== undefined)
476
- parsed.scheme = (extras["scheme"] + "://" + host);
477
- if (extras["package"] !== undefined)
478
- parsed.packageName = extras["package"];
479
- if (extras["S.browser_fallback_url"] !== undefined)
480
- parsed.fallback = extras["S.browser_fallback_url"];
481
- return parsed;
482
- }
483
- function createAppStoreURL(packageName, os) {
484
- switch (os) {
485
- case OS.Android: return "market://details?id=" + packageName;
486
- case OS.iOS: return "itms-apps://itunes.apple.com/app/id" + packageName + "?mt=8";
487
- case OS.Windows: return "ms-windows-store://pdp/?ProductId=" + packageName;
488
- case OS.MacOS: return "macappstore://itunes.apple.com/app/id" + packageName + "?mt=12";
489
- default: throw new URLOpenError("Unsupported OS: \"" + USER_AGENT + "\"");
490
- }
491
- }
492
- function createWebStoreURL(packageName, os) {
493
- switch (os) {
494
- case OS.Android: return "https://play.google.com/store/apps/details?id=" + packageName;
495
- case OS.iOS: return "https://itunes.apple.com/app/id" + packageName + "?mt=8";
496
- case OS.Windows: return "https://apps.microsoft.com/detail/" + packageName;
497
- case OS.MacOS: return "https://apps.apple.com/app/id" + packageName + "?mt=12";
498
- default: throw new URLOpenError("Unsupported OS: \"" + USER_AGENT + "\"");
499
- }
500
- }
501
- function getDefaultTimeoutByOS(os) {
502
- switch (os) {
503
- case OS.iOS: return 2000;
504
- case OS.Android: return 1000;
505
- default: return 750;
506
- }
507
- }
508
- function open(options) {
509
- var os = OS_NAME;
510
- var urls = [];
511
- var tried = [];
512
- var timeout;
513
- function getURLOpenError() {
514
- var triedUrlString = "";
515
- for (var i = 0; i < urls.length; i++)
516
- triedUrlString += "\n" + (i + 1) + ": " + tried[i];
517
- if (triedUrlString.length > 0)
518
- triedUrlString = "\n" + triedUrlString + "\n";
519
- return new URLOpenError("Failed to open any of the provided URLs: " + triedUrlString);
520
- }
521
- if (os === OS.Android) {
522
- var option = options[OS.Android];
523
- if (option === undefined)
524
- return Promise.reject(getURLOpenError());
525
- timeout = option.timeout;
526
- var scheme = option.scheme;
527
- var intent = option.intent;
528
- var packageName = option.packageName;
529
- var fallback = option.fallback;
530
- var allowWebStore = option.allowWebStore;
531
- if (intent !== undefined && (scheme === undefined || packageName === undefined || fallback === undefined)) {
532
- var parsed = parseIntentURL(intent);
533
- if (parsed.scheme !== undefined && scheme === undefined)
534
- scheme = parsed.scheme;
535
- if (parsed.packageName !== undefined && packageName === undefined)
536
- packageName = parsed.packageName;
537
- if (parsed.fallback !== undefined && fallback === undefined)
538
- fallback = parsed.fallback;
539
- }
540
- if (scheme !== undefined && intent === undefined)
541
- intent = createIntentURL(scheme, packageName, fallback);
542
- if (intent !== undefined && IS_SUPPORT_INTENT)
543
- urls.push([intent, AppOpenState.Intent]);
544
- if (scheme !== undefined)
545
- urls.push([scheme, AppOpenState.Scheme]);
546
- if (fallback !== undefined)
547
- urls.push([fallback, AppOpenState.Fallback]);
548
- if (packageName !== undefined)
549
- urls.push([createAppStoreURL(packageName, OS.Android), AppOpenState.Store]);
550
- if (packageName !== undefined && allowWebStore === true)
551
- urls.push([createWebStoreURL(packageName, OS.Android), AppOpenState.Store]);
552
- }
553
- else if (os === OS.iOS) {
554
- var option = options[OS.iOS];
555
- if (option === undefined)
556
- return Promise.reject(getURLOpenError());
557
- timeout = option.timeout;
558
- var scheme = option.scheme;
559
- var packageName = option.packageName;
560
- var trackId = option.trackId;
561
- var universal = option.universal;
562
- var fallback = option.fallback;
563
- var allowWebStore = option.allowWebStore;
564
- if (packageName !== undefined && trackId === undefined)
565
- trackId = getTrackId(packageName);
566
- if (universal !== undefined && parseInt(OS_VERSION) >= 9)
567
- urls.push([universal, AppOpenState.Universal]);
568
- if (scheme !== undefined)
569
- urls.push([scheme, AppOpenState.Scheme]);
570
- if (fallback !== undefined)
571
- urls.push([fallback, AppOpenState.Fallback]);
572
- if (trackId !== undefined)
573
- urls.push([createAppStoreURL(trackId, OS.iOS), AppOpenState.Store]);
574
- if (trackId !== undefined && allowWebStore === true)
575
- urls.push([createWebStoreURL(trackId, OS.iOS), AppOpenState.Store]);
576
- }
577
- else if (os === OS.Windows) {
578
- var option = options[OS.Windows];
579
- if (option === undefined)
580
- return Promise.reject(getURLOpenError());
581
- timeout = option.timeout;
582
- var scheme = option.scheme;
583
- var productId = option.productId;
584
- var fallback = option.fallback;
585
- var allowWebStore = option.allowWebStore;
586
- if (scheme !== undefined)
587
- urls.push([scheme, AppOpenState.Scheme]);
588
- if (fallback !== undefined)
589
- urls.push([fallback, AppOpenState.Fallback]);
590
- if (productId !== undefined)
591
- urls.push([createAppStoreURL(productId, OS.Windows), AppOpenState.Store]);
592
- if (productId !== undefined && allowWebStore === true)
593
- urls.push([createWebStoreURL(productId, OS.Windows), AppOpenState.Store]);
594
- }
595
- else if (os === OS.MacOS) {
596
- var option = options[OS.MacOS];
597
- if (option === undefined)
598
- return Promise.reject(getURLOpenError());
599
- timeout = option.timeout;
600
- var scheme = option.scheme;
601
- var packageName = option.packageName;
602
- var trackId = option.trackId;
603
- var fallback = option.fallback;
604
- var allowWebStore = option.allowWebStore;
605
- if (packageName !== undefined && trackId === undefined)
606
- trackId = getTrackId(packageName);
607
- if (scheme !== undefined)
608
- urls.push([scheme, AppOpenState.Scheme]);
609
- if (fallback !== undefined)
610
- urls.push([fallback, AppOpenState.Fallback]);
611
- if (trackId !== undefined)
612
- urls.push([createAppStoreURL(trackId, OS.MacOS), AppOpenState.Store]);
613
- if (trackId !== undefined && allowWebStore === true)
614
- urls.push([createWebStoreURL(trackId, OS.MacOS), AppOpenState.Store]);
615
- }
616
- if (timeout === undefined)
617
- timeout = getDefaultTimeoutByOS(os);
618
- return new Promise(function (resolve, reject) {
619
- function openURLSequential(index) {
620
- if (index === void 0) { index = 0; }
621
- if (index >= urls.length)
622
- return reject(getURLOpenError());
623
- var entry = urls[index];
624
- var url = entry[0];
625
- tried[index] = url;
626
- return tryOpenUrl(url, index, timeout)
627
- .then(function () {
628
- resolve(entry[1]);
629
- })
630
- .catch(function () {
631
- openURLSequential(index + 1);
632
- });
633
- }
634
- return openURLSequential();
635
- });
636
- }
637
- function isArrayLike(value) {
638
- if (value == null || typeof value === "string")
639
- return false;
640
- var length = value.length;
641
- return typeof length === "number" && length >= 0 && !(length % 1);
642
- }
643
- function joining(values, mapfn, separator) {
644
- if (separator === void 0) { separator = ","; }
645
- var length = values.length;
646
- var result = "";
647
- for (var i = 0; i < length; i++) {
648
- result = result + mapfn(values[i]);
649
- if (i !== length - 1)
650
- result = result + separator;
651
- }
652
- return result;
653
- }
654
- function encode(value) {
655
- return encodeURIComponent(value)
656
- .replace(/[!'()*]/g, function (c) {
657
- return "%" + c.charCodeAt(0).toString(16);
658
- });
659
- }
660
- function toString(value) {
661
- if (typeof value === "string")
662
- return encode(value);
663
- if (typeof value === "number" || typeof value === "boolean")
664
- return encode(String(value));
665
- if (value == null)
666
- return "";
667
- if (isArrayLike(value))
668
- return joining(value, function (v) {
669
- return toString(v);
670
- });
671
- if (value instanceof HTMLInputElement) {
672
- var type = value.type;
673
- if (type === "checkbox") {
674
- return encode(value.checked.toString());
675
- }
676
- else if (type === "radio") {
677
- if (value.checked)
678
- return encode(value.value);
679
- else
680
- return "";
681
- }
682
- else if (type === "file") {
683
- var files = value.files;
684
- if (files === null)
685
- return "";
686
- return joining(files, function (file) {
687
- return encode(file.name);
688
- });
689
- }
690
- else {
691
- return encode(value.value);
692
- }
693
- }
694
- if (value instanceof HTMLSelectElement) {
695
- if (value.multiple)
696
- return joining(value.selectedOptions, function (option) {
697
- return encode(option.value);
698
- });
699
- return encode(value.value);
700
- }
701
- if (value instanceof HTMLTextAreaElement)
702
- return encode(value.value);
703
- if (value instanceof HTMLElement)
704
- return encode(value.innerText);
705
- if (value instanceof Node)
706
- return toString(value.textContent);
707
- return encode(value.toString());
708
- }
709
- function normalize(value) {
710
- if (value instanceof HTMLFormElement)
711
- return normalize(new FormData(value));
712
- if (value instanceof FormData) {
713
- var result_1 = {};
714
- value.forEach(function (value, key) {
715
- var name;
716
- if (value instanceof File)
717
- name = value.name;
718
- else
719
- name = value;
720
- if (Object.prototype.hasOwnProperty.call(result_1, key)) {
721
- var prev = result_1[key];
722
- if (Array.isArray(prev))
723
- prev.push(name);
724
- else
725
- result_1[key] = [prev, name];
726
- }
727
- else {
728
- result_1[key] = name;
729
- }
730
- });
731
- return normalize(result_1);
732
- }
733
- var result = {};
734
- var keys = Object.keys(value);
735
- for (var i = 0; i < keys.length; i++) {
736
- var key = keys[i];
737
- result[key] = toString(value[key]);
738
- }
739
- if (result.to === undefined)
740
- result.to = "";
741
- if (result.cc === undefined)
742
- result.cc = "";
743
- if (result.bcc === undefined)
744
- result.bcc = "";
745
- if (result.subject === undefined)
746
- result.subject = "";
747
- if (result.body === undefined)
748
- result.body = "";
749
- return result;
750
- }
751
- function openMessenger(options, type) {
752
- options = normalize(options);
753
- return tryOpenUrl(type + ":" + options.to
754
- + "?cc=" + options.cc
755
- + "&bcc=" + options.bcc
756
- + "&subject=" + options.subject
757
- + "&body=" + options.body, 0, getDefaultTimeoutByOS(OS_NAME));
758
- }
759
- function openMessengerTelephone(options) {
760
- return openMessenger(options, "tel");
761
- }
762
- function openMessengerMessage(options) {
763
- return openMessenger(options, "sms");
764
- }
765
- function openMessengerMail(options) {
766
- return openMessenger(options, "mailto");
767
- }
768
-
769
- var EasingError = createCustomError("EasingError");
770
- var CubicBezierSyntaxError = createCustomError("CubicBezierSyntaxError", EasingError);
771
- var LinearSyntaxError = createCustomError("LinearSyntaxError", EasingError);
772
- var StepSyntaxError = createCustomError("StepSyntaxError", EasingError);
773
- var UnsupportedEasingFunctionError = createCustomError("UnsupportedEasingFunctionError", EasingError);
774
-
775
- var EASING_KEYWORD = {
776
- "linear": "linear(0, 1)",
777
- "ease": "cubic-bezier(0.25, 0.1, 0.25, 1)",
778
- "ease-in": "cubic-bezier(0.42, 0, 1, 1)",
779
- "ease-out": "cubic-bezier(0, 0, 0.58, 1)",
780
- "ease-in-out": "cubic-bezier(0.42, 0, 0.58, 1)",
781
- "step-start": "steps(1, jump-start)",
782
- "step-end": "steps(1, jump-end)",
783
- };
784
- function clamp(n, min, max) {
785
- if (n < min)
786
- return min;
787
- if (n > max)
788
- return max;
789
- return n;
790
- }
791
- function isEasingKeyword(easingFunction) {
792
- return !/(linear|cubic-bezier|steps)\((.*)\)/.test(easingFunction);
793
- }
794
- function isCubicBezierString(easingFunction) {
795
- return /cubic-bezier\(/.test(easingFunction);
796
- }
797
- function isLinearString(easingFunction) {
798
- return /linear\(/.test(easingFunction);
799
- }
800
- function isStepString(easingFunction) {
801
- return /steps\(\s*(\d+)\s*(?:,\s*(jump-start|jump-end|jump-none|jump-both|start|end)\s*)?\)$/.test(easingFunction);
802
- }
803
- function parseCubicBezier(easingFunction) {
804
- var match = easingFunction.match(/cubic-bezier\((.*)\)/);
805
- var content = match[1].trim();
806
- var split = content.split(",");
807
- var values = [];
808
- if (split.length !== 4)
809
- throw new CubicBezierSyntaxError("Cubic-bezier must have exactly 4 numeric values");
810
- for (var i = 0; i < 4; i++) {
811
- var value = parseFloat(split[i]);
812
- if (isNaN(value))
813
- throw new CubicBezierSyntaxError("Cubic-bezier must have exactly 4 numeric values");
814
- if (i % 2 === 0 && (value < 0 || value > 1))
815
- throw new CubicBezierSyntaxError("x1 and x2 must be between 0 and 1");
816
- values.push(value);
817
- }
818
- return {
819
- x1: values[0],
820
- y1: values[1],
821
- x2: values[2],
822
- y2: values[3]
823
- };
824
- }
825
- function getCubicBezierValue(easingFunction) {
826
- var cubicBezier = parseCubicBezier(easingFunction);
827
- var x1 = cubicBezier.x1;
828
- var x2 = cubicBezier.x2;
829
- var y1 = cubicBezier.y1;
830
- var y2 = cubicBezier.y2;
831
- function findT(x, tolerance, maxIterations) {
832
- if (tolerance === void 0) { tolerance = 1e-6; }
833
- if (maxIterations === void 0) { maxIterations = 50; }
834
- if (x <= 0)
835
- return 0;
836
- if (x >= 1)
837
- return 1;
838
- var t = x;
839
- for (var i = 0; i < maxIterations; i++) {
840
- var xt = 3 * (1 - t) * (1 - t) * t * x1 + 3 * (1 - t) * t * t * x2 + t * t * t;
841
- var dx = 3 * (1 - t) * (1 - t) * x1 + 6 * (1 - t) * t * (x2 - x1) + 3 * t * t * (1 - x2);
842
- if (Math.abs(dx) < tolerance)
843
- break;
844
- var newT = t - (xt - x) / dx;
845
- if (Math.abs(newT - t) < tolerance) {
846
- t = newT;
847
- break;
848
- }
849
- t = Math.max(0, Math.min(1, newT));
850
- }
851
- return t;
7
+ function assign() {
8
+ var args = [];
9
+ for (var _i = 0; _i < arguments.length; _i++) {
10
+ args[_i] = arguments[_i];
852
11
  }
853
- return function (x) {
854
- x = clamp(x, 0, 1);
855
- if (x === 0 || x === 1)
856
- return x;
857
- var t = findT(x);
858
- return 3 * (1 - t) * (1 - t) * t * y1 + 3 * (1 - t) * t * t * y2 + t * t * t;
859
- };
860
- }
861
- function parseLinear(easingFunction) {
862
- var match = easingFunction.match(/linear\((.*)\)/);
863
- var content = match[1].trim();
864
- var split = content.split(",");
865
- var points = [];
866
- for (var i = 0; i < split.length; i++) {
867
- var part = split[i].trim();
868
- var percentage2 = part.match(/^([+-]?\d*\.?\d+)((?:\s+[+-]?\d*\.?\d+%){2,})$/);
869
- if (percentage2 !== null) {
870
- var value = parseFloat(percentage2[1]);
871
- var percents = percentage2[2].trim().split(/\s+/);
872
- points.push({
873
- value: value,
874
- position: parseFloat(percents[0]) / 100,
875
- }, {
876
- value: value,
877
- position: parseFloat(percents[1]) / 100,
878
- });
879
- continue;
880
- }
881
- var percentage1 = part.match(/^([+-]?\d*\.?\d+)\s+([+-]?\d*\.?\d+)%$/);
882
- if (percentage1 !== null) {
883
- points.push({
884
- position: parseFloat(percentage1[2]) / 100,
885
- value: parseFloat(percentage1[1])
886
- });
887
- continue;
888
- }
889
- var number = part.match(/^([+-]?\d*\.?\d+)$/);
890
- if (number !== null) {
891
- points.push({
892
- position: split.length === 1 ? 0 : i / (split.length - 1),
893
- value: parseFloat(number[1])
894
- });
12
+ var to = Object(args[0]);
13
+ for (var i = 1; i < args.length; i++) {
14
+ var src = args[i];
15
+ if (src == null)
895
16
  continue;
896
- }
897
- throw new LinearSyntaxError("Invalid linear point format: \"" + part + "\"");
898
- }
899
- if (points.length === 0)
900
- throw new LinearSyntaxError("No valid points found in linear function");
901
- for (var i = 0; i < points.length - 1; i++) {
902
- for (var j = 0; j < points.length - i - 1; j++) {
903
- if (points[j].position > points[j + 1].position) {
904
- var temp = points[j];
905
- points[j] = points[j + 1];
906
- points[j + 1] = temp;
907
- }
17
+ for (var key in src) {
18
+ if (!Object.prototype.hasOwnProperty.call(src, key) || key === '__proto__' || key === 'constructor' || key === 'prototype')
19
+ continue;
20
+ to[key] = src[key];
908
21
  }
909
22
  }
910
- return points;
911
- }
912
- function getLinearValue(str) {
913
- var points = parseLinear(str);
914
- return function (t) {
915
- t = clamp(t, 0, 1);
916
- if (t <= points[0].position)
917
- return points[0].value;
918
- if (t >= points[points.length - 1].position)
919
- return points[points.length - 1].value;
920
- for (var i = 0; i < points.length - 1; i++) {
921
- var p1 = points[i];
922
- var p2 = points[i + 1];
923
- if (t >= p1.position && t <= p2.position) {
924
- var ratio = (t - p1.position) / (p2.position - p1.position);
925
- return p1.value + (p2.value - p1.value) * ratio;
926
- }
927
- }
928
- throw new LinearSyntaxError("Unexpected error in interpolation");
929
- };
930
- }
931
- function getStepValue(easingFunction) {
932
- var match = easingFunction.match(/steps\(\s*(\d+)\s*(?:,\s*(jump-start|jump-end|jump-none|jump-both|start|end)\s*)?\)$/);
933
- var count = parseInt(match[1], 10);
934
- var position = match[2];
935
- return function (t) {
936
- t = clamp(t, 0, 1);
937
- if (t === 0)
938
- return position === "start" || position === "jump-start" ? 1 : 0;
939
- else if (t === 1)
940
- return 1;
941
- switch (position) {
942
- case "start":
943
- case "jump-start":
944
- return Math.ceil(t * count) / count;
945
- case "end":
946
- case "jump-end":
947
- return Math.floor(t * count) / count;
948
- case "jump-both":
949
- return Math.round(t * count) / count;
950
- case "jump-none":
951
- return Math.floor(t * count) / (count - 1);
952
- default:
953
- throw new StepSyntaxError("Unsupported step position: \"" + position + "\"");
954
- }
955
- };
956
- }
957
- function parseEasingFunction(easingFunction) {
958
- if (isEasingKeyword(easingFunction))
959
- easingFunction = EASING_KEYWORD[easingFunction];
960
- if (isCubicBezierString(easingFunction))
961
- return getCubicBezierValue(easingFunction);
962
- if (isLinearString(easingFunction))
963
- return getLinearValue(easingFunction);
964
- if (isStepString(easingFunction))
965
- return getStepValue(easingFunction);
966
- throw new UnsupportedEasingFunctionError("Unsupported easing function: \"" + easingFunction + "\"");
23
+ return to;
967
24
  }
968
25
 
969
- var UnsupportedColorError = createCustomError("UnsupportedColorError");
970
-
971
- function parseColor(color) {
972
- if (!CSS.supports("color", color))
973
- throw new UnsupportedColorError("Unsupported color: \"" + color + "\".");
974
- if (CONTEXT !== null) {
975
- CONTEXT.clearRect(0, 0, 1, 1);
976
- CONTEXT.fillStyle = color;
977
- CONTEXT.fillRect(0, 0, 1, 1);
978
- var data = CONTEXT.getImageData(0, 0, 1, 1).data;
979
- return {
980
- red: data[0],
981
- green: data[1],
982
- blue: data[2],
983
- alpha: +(data[3] / 255).toFixed(2)
984
- };
26
+ var nativeInstance = {
27
+ Version: packageJSON.version,
28
+ Constants: {},
29
+ Errors: {},
30
+ extends: function (plugin) {
31
+ if (plugin.installed)
32
+ return this;
33
+ this.Constants = assign(this.Constants, plugin.constants);
34
+ this.Errors = assign(this.Errors, plugin.errors);
35
+ this[plugin.name] = plugin.module;
36
+ plugin.installed = true;
37
+ return this;
985
38
  }
986
- var div = document.createElement("div");
987
- div.style.position = "absolute";
988
- div.style.top = "-9999px";
989
- div.style.width = div.style.height = "0";
990
- div.style.color = color;
991
- document.body.appendChild(div);
992
- var computedColor = window.getComputedStyle(div).color;
993
- var matched = computedColor.match(/rgba?\(\s*(\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\s*\)/);
994
- document.body.removeChild(div);
995
- if (matched === null)
996
- throw new UnsupportedColorError("Unsupported color: \"" + color + "\".");
997
- var rgba = {
998
- red: parseInt(matched[1], 10),
999
- green: parseInt(matched[2], 10),
1000
- blue: parseInt(matched[3], 10),
1001
- alpha: NaN
1002
- };
1003
- if (matched[4] === undefined)
1004
- rgba.alpha = 1;
1005
- else
1006
- rgba.alpha = parseFloat(matched[4]);
1007
- return rgba;
1008
- }
1009
-
1010
- var themeColorMetaGroup = {};
1011
- var themeIntervalId = null;
1012
- var currentResolve = null;
1013
- var currentAppearance = null;
1014
- var appearanceIntervalId = null;
1015
- var Theme = {
1016
- setThemeColor: setThemeColor,
1017
- getThemeColor: getThemeColor,
1018
- removeThemeColor: removeThemeColor,
1019
- detectAppearance: detectAppearance,
1020
- onAppearanceChange: onAppearanceChange,
1021
39
  };
1022
- function getThemeColorMeta(appearance) {
1023
- if (appearance === void 0) { appearance = "default"; }
1024
- var effective;
1025
- if (!IS_FULL_SUPPORT_THEME_COLOR || !SUPPORT_PREFERS_COLOR_SCHEME || IS_IE_MOBILE || IS_WINDOWS_PHONE)
1026
- effective = "default";
1027
- else
1028
- effective = appearance;
1029
- var meta = themeColorMetaGroup[effective];
1030
- if (meta !== undefined)
1031
- return meta;
1032
- meta = document.createElement("meta");
1033
- if (IS_IE_MOBILE)
1034
- meta.setAttribute("name", "msapplication-navbutton-color");
1035
- else if (IS_WINDOWS_PHONE)
1036
- meta.setAttribute("name", "msapplication-TileColor");
1037
- else
1038
- meta.setAttribute("name", "theme-color");
1039
- if (appearance !== "default")
1040
- meta.setAttribute("media", "(prefers-color-scheme: " + effective + ")");
1041
- document.head.prepend(meta);
1042
- return themeColorMetaGroup[appearance] = meta;
1043
- }
1044
- function estimateDefaultThemeColor() {
1045
- if (/version\/[\w.,]+ .*safari/i.test(USER_AGENT)) {
1046
- if (navigator.standalone) {
1047
- if (detectFromMediaQuery() === Appearances.Dark)
1048
- return "#ffffffff";
1049
- else
1050
- return "#000000ff";
1051
- }
1052
- return rgbaToHex(parseColor(window.getComputedStyle(document.body).backgroundColor));
1053
- }
1054
- if (/\b(?:crmo|crios)\/[\w.]+/i.test(USER_AGENT) || /chrome\/[\w.]+ mobile/i.test(USER_AGENT)) {
1055
- if (detectFromMediaQuery() === Appearances.Dark)
1056
- return "#28292cff";
1057
- else
1058
- return "#ffffffff";
1059
- }
1060
- return undefined;
1061
- }
1062
- function toHex(n) {
1063
- var hex = n.toString(16);
1064
- switch (hex.length) {
1065
- case 0: return "00";
1066
- case 1: return "0" + hex;
1067
- default: return hex;
1068
- }
1069
- }
1070
- function rgbaToHex(rgba) {
1071
- return "#"
1072
- + toHex(rgba.red)
1073
- + toHex(rgba.green)
1074
- + toHex(rgba.blue)
1075
- + toHex(Math.round(rgba.alpha * 255));
1076
- }
1077
- function detectFromEngine() {
1078
- return new Promise(function (resolve) {
1079
- var img = new Image();
1080
- img.onload = function () {
1081
- if (CONTEXT === null)
1082
- return resolve(Appearances.Light);
1083
- CONTEXT.drawImage(img, 0, 0);
1084
- var data = CONTEXT.getImageData(0, 0, 1, 1).data;
1085
- if ((data[0] & data[1] & data[2]) < 255)
1086
- resolve(Appearances.Dark);
1087
- else
1088
- resolve(Appearances.Light);
1089
- };
1090
- img.onerror = function () {
1091
- resolve(Appearances.Unknown);
1092
- };
1093
- img.src = SVG_PIXEL_DATA_URL;
1094
- });
1095
- }
1096
- function detectFromMediaQuery() {
1097
- if (!SUPPORT_PREFERS_COLOR_SCHEME)
1098
- return Appearances.Unknown;
1099
- if (MEDIA_QUERY_LIST.matches)
1100
- return Appearances.Dark;
1101
- return Appearances.Light;
1102
- }
1103
- function startPolling() {
1104
- detectFromEngine()
1105
- .then(function (appearance) {
1106
- currentAppearance = appearance;
1107
- });
1108
- appearanceIntervalId = window.setInterval(function () {
1109
- detectFromEngine()
1110
- .then(function (appearance) {
1111
- if (appearance !== currentAppearance) {
1112
- currentAppearance = appearance;
1113
- notify(appearance);
1114
- }
1115
- });
1116
- }, 2000);
1117
- }
1118
- function stopPolling() {
1119
- currentAppearance = null;
1120
- if (appearanceIntervalId !== null) {
1121
- clearInterval(appearanceIntervalId);
1122
- appearanceIntervalId = null;
1123
- }
1124
- }
1125
- function addListener(capture) {
1126
- currentAppearance = detectFromMediaQuery();
1127
- if (typeof MEDIA_QUERY_LIST.addEventListener === "function")
1128
- MEDIA_QUERY_LIST.addEventListener("change", onMediaChange, capture);
1129
- else if (typeof MEDIA_QUERY_LIST.addListener === "function")
1130
- MEDIA_QUERY_LIST.addListener(onMediaChange);
1131
- }
1132
- function removeListener(capture) {
1133
- currentAppearance = null;
1134
- if (typeof MEDIA_QUERY_LIST.removeEventListener === "function")
1135
- MEDIA_QUERY_LIST.removeEventListener("change", onMediaChange, capture);
1136
- else if (typeof MEDIA_QUERY_LIST.removeListener === "function")
1137
- MEDIA_QUERY_LIST.removeListener(onMediaChange);
1138
- }
1139
- function onMediaChange(ev) {
1140
- var appearance;
1141
- if (ev.matches)
1142
- appearance = Appearances.Dark;
1143
- else
1144
- appearance = Appearances.Light;
1145
- if (appearance !== currentAppearance)
1146
- notify(currentAppearance = appearance);
1147
- }
1148
- function notify(appearance) {
1149
- for (var i = 0; i < ENTRIES.length; i++) {
1150
- var entry = ENTRIES[i];
1151
- entry.fn(appearance);
1152
- if (entry.once)
1153
- removeEntry(entry);
1154
- }
1155
- }
1156
- function removeEntry(entry) {
1157
- var index = indexOfEntry(entry);
1158
- if (index !== -1)
1159
- ENTRIES.splice(index, 1);
1160
- if (ENTRIES.length === 0) {
1161
- if (IS_SAMSUNG)
1162
- stopPolling();
1163
- else
1164
- removeListener(entry.capture);
1165
- }
1166
- }
1167
- function indexOfEntry(entry) {
1168
- for (var i = 0; i < ENTRIES.length; i++)
1169
- if (ENTRIES[i].fn === entry.fn && ENTRIES[i].capture === entry.capture)
1170
- return i;
1171
- return -1;
1172
- }
1173
- function syncThemeColorMeta() {
1174
- themeColorMetaGroup = {};
1175
- var selector;
1176
- if (IS_IE_MOBILE)
1177
- selector = "meta[name=\"msapplication-navbutton-color\"]";
1178
- else if (IS_WINDOWS_PHONE)
1179
- selector = "meta[name=\"msapplication-TileColor\"]";
1180
- else
1181
- selector = "meta[name=\"theme-color\"]";
1182
- var nodes = document.querySelectorAll(selector);
1183
- if (!IS_FULL_SUPPORT_THEME_COLOR || !SUPPORT_PREFERS_COLOR_SCHEME || IS_IE_MOBILE || IS_WINDOWS_PHONE) {
1184
- themeColorMetaGroup.default = nodes[0];
1185
- return;
1186
- }
1187
- for (var i = 0; i < nodes.length; i++) {
1188
- var element = nodes.item(i);
1189
- var media = element.getAttribute("media");
1190
- if (media === "(prefers-color-scheme: dark)" && themeColorMetaGroup.dark === undefined)
1191
- themeColorMetaGroup.dark = element;
1192
- else if (media === "(prefers-color-scheme: light)" && themeColorMetaGroup.light === undefined)
1193
- themeColorMetaGroup.light = element;
1194
- else if (media === null && themeColorMetaGroup.default === undefined)
1195
- themeColorMetaGroup.default = element;
1196
- if (themeColorMetaGroup.dark !== undefined && themeColorMetaGroup.light !== undefined && themeColorMetaGroup.default !== undefined)
1197
- return;
1198
- }
1199
- }
1200
- function getCurrentAppliedThemeColorMeta() {
1201
- if (IS_IE_MOBILE)
1202
- return document.querySelector("meta[name=\"msapplication-navbutton-color\"]");
1203
- if (IS_WINDOWS_PHONE)
1204
- return document.querySelector("meta[name=\"msapplication-TileColor\"]");
1205
- if (!IS_FULL_SUPPORT_THEME_COLOR || !SUPPORT_PREFERS_COLOR_SCHEME)
1206
- return document.querySelector("meta[name=\"theme-color\"]");
1207
- var nodes = document.querySelectorAll("meta[name=\"theme-color\"]");
1208
- var isDark = detectFromMediaQuery() === Appearances.Dark;
1209
- var query;
1210
- if (isDark)
1211
- query = "(prefers-color-scheme: dark)";
1212
- else
1213
- query = "(prefers-color-scheme: light)";
1214
- for (var i = 0; i < nodes.length; i++) {
1215
- var element = nodes.item(i);
1216
- if (!element.hasAttribute("content"))
1217
- continue;
1218
- var media = element.getAttribute("media");
1219
- if (media === null || media === query)
1220
- return element;
1221
- }
1222
- return null;
1223
- }
1224
- function init() {
1225
- var observer = new MutationObserver(function (mutations) {
1226
- for (var i = 0; i < mutations.length; i++) {
1227
- var mutation = mutations[i];
1228
- var addedNodes = mutation.addedNodes;
1229
- var removedNodes = mutation.removedNodes;
1230
- for (var j = 0; j < addedNodes.length; j++)
1231
- if (addedNodes[j] instanceof HTMLMetaElement)
1232
- return syncThemeColorMeta();
1233
- for (var j = 0; j < removedNodes.length; j++)
1234
- if (removedNodes[j] instanceof HTMLMetaElement)
1235
- return syncThemeColorMeta();
1236
- }
1237
- });
1238
- if (typeof MEDIA_QUERY_LIST.addEventListener === "function")
1239
- MEDIA_QUERY_LIST.addEventListener("change", syncThemeColorMeta);
1240
- else if (typeof MEDIA_QUERY_LIST.addListener === "function")
1241
- MEDIA_QUERY_LIST.addListener(syncThemeColorMeta);
1242
- observer.observe(document.head, { childList: true });
1243
- syncThemeColorMeta();
1244
- }
1245
- init();
1246
- function setThemeColor(color, options) {
1247
- if (options === void 0) { options = { duration: 0, easingFunction: "linear", appearance: "default" }; }
1248
- var duration = options.duration;
1249
- var easingFn = parseEasingFunction(options.easingFunction);
1250
- var appearance = options.appearance;
1251
- if (themeIntervalId !== null) {
1252
- window.cancelAnimationFrame(themeIntervalId);
1253
- themeIntervalId = null;
1254
- if (currentResolve !== null) {
1255
- currentResolve(getThemeColor());
1256
- currentResolve = null;
1257
- }
1258
- }
1259
- var themeColor = getThemeColor();
1260
- if (themeColor === undefined) {
1261
- if (options.defaultColor !== undefined) {
1262
- themeColor = options.defaultColor;
1263
- }
1264
- else {
1265
- if (detectFromMediaQuery() === Appearances.Dark)
1266
- themeColor = "#181818ff";
1267
- else
1268
- themeColor = "#dcdcdcff";
1269
- }
1270
- }
1271
- var startColor = parseColor(themeColor);
1272
- var endColor = parseColor(color);
1273
- return new Promise(function (resolve) {
1274
- currentResolve = resolve;
1275
- var startTime = null;
1276
- function animate(timestamp) {
1277
- if (startTime === null)
1278
- startTime = timestamp;
1279
- var elapsed = timestamp - startTime;
1280
- var t;
1281
- if (duration === 0)
1282
- t = 1;
1283
- else
1284
- t = Math.min(elapsed / duration, 1);
1285
- var easedT = easingFn(t);
1286
- var current = {
1287
- red: Math.round(startColor.red + (endColor.red - startColor.red) * easedT),
1288
- green: Math.round(startColor.green + (endColor.green - startColor.green) * easedT),
1289
- blue: Math.round(startColor.blue + (endColor.blue - startColor.blue) * easedT),
1290
- alpha: +(startColor.alpha + (endColor.alpha - startColor.alpha) * easedT).toFixed(2),
1291
- };
1292
- getThemeColorMeta(appearance).setAttribute("content", rgbaToHex(current));
1293
- if (t < 1) {
1294
- themeIntervalId = window.requestAnimationFrame(animate);
1295
- }
1296
- else {
1297
- themeIntervalId = null;
1298
- if (currentResolve !== null) {
1299
- resolve(getThemeColor());
1300
- themeIntervalId = null;
1301
- }
1302
- }
1303
- }
1304
- themeIntervalId = window.requestAnimationFrame(animate);
1305
- });
1306
- }
1307
- function getThemeColor() {
1308
- var meta = getCurrentAppliedThemeColorMeta();
1309
- if (meta !== null)
1310
- return meta.getAttribute("content");
1311
- return estimateDefaultThemeColor();
1312
- }
1313
- function removeThemeColor(appearance) {
1314
- if (appearance === void 0) { appearance = "default"; }
1315
- var meta = themeColorMetaGroup[appearance];
1316
- if (meta !== undefined)
1317
- meta.remove();
1318
- themeColorMetaGroup[appearance] = undefined;
1319
- }
1320
- function detectAppearance() {
1321
- if (IS_SAMSUNG)
1322
- return detectFromEngine();
1323
- else
1324
- return Promise.resolve(detectFromMediaQuery());
1325
- }
1326
- function onAppearanceChange(listener, options) {
1327
- if (options === void 0) { options = false; }
1328
- var entry = { fn: listener, capture: false, once: false };
1329
- if (typeof options === "boolean")
1330
- options = { capture: options };
1331
- if (options.capture !== undefined)
1332
- entry.capture = options.capture;
1333
- if (options.once !== undefined)
1334
- entry.once = options.once;
1335
- if (options.signal !== undefined)
1336
- entry.signal = options.signal;
1337
- var index = indexOfEntry(entry);
1338
- if (index === -1) {
1339
- ENTRIES.push(entry);
1340
- if (ENTRIES.length === 1) {
1341
- if (IS_SAMSUNG)
1342
- startPolling();
1343
- else
1344
- addListener(entry.capture);
1345
- }
1346
- this.detectAppearance()
1347
- .then(notify);
1348
- }
1349
- else if (ENTRIES[index].once && !entry.once) {
1350
- ENTRIES[index].once = false;
1351
- }
1352
- if (entry.signal !== undefined) {
1353
- if (entry.signal.aborted) {
1354
- removeEntry(entry);
1355
- }
1356
- else {
1357
- entry.signal.addEventListener("abort", function onAbort() {
1358
- if (entry.signal !== undefined)
1359
- entry.signal.removeEventListener("abort", onAbort);
1360
- removeEntry(entry);
1361
- });
1362
- }
1363
- }
1364
- return function () {
1365
- removeEntry(entry);
1366
- };
1367
- }
1368
-
1369
- function freeze(o) {
1370
- if (typeof Object.freeze === "function")
1371
- return Object.freeze(o);
1372
- var desc = { writable: false, configurable: false };
1373
- var properties = getProperties(o);
1374
- for (var i = 0; i < properties.length; i++)
1375
- Object.defineProperty(o, properties[i], desc);
1376
- return o;
1377
- }
1378
- function getProperties(o) {
1379
- return Object.getOwnPropertyNames(o).concat(Object.getOwnPropertySymbols(o));
1380
- }
1381
- function freezeDeep(o) {
1382
- if (o === null || typeof o !== "object")
1383
- return o;
1384
- var properties = getProperties(o);
1385
- for (var i = 0; i < properties.length; i++)
1386
- freezeDeep(o[properties[i]]);
1387
- return freeze(o);
1388
- }
1389
-
1390
- var index = freezeDeep({
1391
- Version: packageJSON.version,
1392
- Constants: {
1393
- Messengers: Messengers,
1394
- AppOpenState: AppOpenState,
1395
- Devices: Devices,
1396
- Engines: Engines,
1397
- OS: OS,
1398
- Appearances: Appearances,
1399
- },
1400
- Errors: {
1401
- URLOpenError: URLOpenError,
1402
- UnsupportedColorError: UnsupportedColorError,
1403
- EasingError: EasingError,
1404
- UnsupportedEasingFunctionError: UnsupportedEasingFunctionError,
1405
- StepSyntaxError: StepSyntaxError,
1406
- LinearSyntaxError: LinearSyntaxError,
1407
- CubicBezierSyntaxError: CubicBezierSyntaxError,
1408
- },
1409
- App: App,
1410
- Platform: Platform,
1411
- Theme: Theme,
1412
- });
1413
40
 
1414
- module.exports = index;
41
+ module.exports = nativeInstance;