ascript 1.3.27__py3-none-win_amd64.whl

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 (177) hide show
  1. ascript/__init__.py +8 -0
  2. ascript/hooks/__init__.py +0 -0
  3. ascript/hooks/hook-ascript.py +2 -0
  4. ascript/windows/__init__.py +29 -0
  5. ascript/windows/daos/__init__.py +0 -0
  6. ascript/windows/daos/screen.py +143 -0
  7. ascript/windows/hardware/__init__.py +5 -0
  8. ascript/windows/hardware/keyboard.py +279 -0
  9. ascript/windows/hardware/logitech_driver.py +179 -0
  10. ascript/windows/hardware/mouse.py +308 -0
  11. ascript/windows/license/__init__.py +16 -0
  12. ascript/windows/license/achttp.cp310-win_amd64.pyd +0 -0
  13. ascript/windows/license/achttp.cp311-win_amd64.pyd +0 -0
  14. ascript/windows/license/achttp.cp312-win_amd64.pyd +0 -0
  15. ascript/windows/license/achttp.cp313-win_amd64.pyd +0 -0
  16. ascript/windows/license/achttp.cp314-win_amd64.pyd +0 -0
  17. ascript/windows/license/achttp.cp38-win_amd64.pyd +0 -0
  18. ascript/windows/license/achttp.cp39-win_amd64.pyd +0 -0
  19. ascript/windows/media/__init__.py +0 -0
  20. ascript/windows/resources/__init__.py +0 -0
  21. ascript/windows/resources/libs/logitech/x64/LogitechGkeyEnginesWrapper.dll +0 -0
  22. ascript/windows/resources/libs/logitech/x86/LogitechGkeyEnginesWrapper.dll +0 -0
  23. ascript/windows/resources/templates/__init__.py +0 -0
  24. ascript/windows/resources/templates/__init__py.win.template +51 -0
  25. ascript/windows/resources/templates/build.as.win.template +14 -0
  26. ascript/windows/resources/templates/build.py +71 -0
  27. ascript/windows/resources/templates/logo_windows.ico +0 -0
  28. ascript/windows/resources/templates/windows/main.py +50 -0
  29. ascript/windows/resources/templates/windows/pyproject.toml +44 -0
  30. ascript/windows/resources/templates/windows/res/img/logo.ico +0 -0
  31. ascript/windows/screen/__init__.py +13 -0
  32. ascript/windows/screen/as_cv.py +382 -0
  33. ascript/windows/screen/canny.py +128 -0
  34. ascript/windows/screen/code_scanner.py +72 -0
  35. ascript/windows/screen/color_algorithms.py +277 -0
  36. ascript/windows/screen/find_colors.py +251 -0
  37. ascript/windows/screen/find_images.py +217 -0
  38. ascript/windows/screen/ocr/__init__.py +4 -0
  39. ascript/windows/screen/ocr/ocr.py +223 -0
  40. ascript/windows/screen/ocr/rapidocr_hook.py +301 -0
  41. ascript/windows/screen/ocrx.py +169 -0
  42. ascript/windows/screen/screen_core.py +139 -0
  43. ascript/windows/store/__init__.py +21 -0
  44. ascript/windows/system/__init__.py +8 -0
  45. ascript/windows/system/device.py +355 -0
  46. ascript/windows/system/easy_print.py +115 -0
  47. ascript/windows/system/env.py +492 -0
  48. ascript/windows/system/exception/__init__.py +1 -0
  49. ascript/windows/system/key_value.py +145 -0
  50. ascript/windows/system/pip.py +175 -0
  51. ascript/windows/system/r.py +165 -0
  52. ascript/windows/system/runtime.py +62 -0
  53. ascript/windows/tools/__init__.py +27 -0
  54. ascript/windows/tools/__main__.py +21 -0
  55. ascript/windows/tools/action.json +33 -0
  56. ascript/windows/tools/action.py +168 -0
  57. ascript/windows/tools/colors_tool.py +391 -0
  58. ascript/windows/tools/config.py +26 -0
  59. ascript/windows/tools/dumptool.py +18 -0
  60. ascript/windows/tools/eel_api.py +495 -0
  61. ascript/windows/tools/gpplug/__init__.py +0 -0
  62. ascript/windows/tools/gpplug/plug.py +70 -0
  63. ascript/windows/tools/mouse_catch.py +168 -0
  64. ascript/windows/tools/plug_manager.py +38 -0
  65. ascript/windows/tools/tool_api.py +906 -0
  66. ascript/windows/tools/tool_window.py +56 -0
  67. ascript/windows/tools/uia_worker.py +365 -0
  68. ascript/windows/tools/web/app_store_window.html +481 -0
  69. ascript/windows/tools/web/colors.html +532 -0
  70. ascript/windows/tools/web/css/screen.css +1342 -0
  71. ascript/windows/tools/web/css/viewtree.css +357 -0
  72. ascript/windows/tools/web/flot_control.html +195 -0
  73. ascript/windows/tools/web/img/ico/favicon.png +0 -0
  74. ascript/windows/tools/web/img/ico/paintpalette.png +0 -0
  75. ascript/windows/tools/web/img/svg/find_colors.svg +1 -0
  76. ascript/windows/tools/web/img/svg/find_images.svg +1 -0
  77. ascript/windows/tools/web/img/svg/illustration-6.svg +89 -0
  78. ascript/windows/tools/web/img/svg/img_default.svg +1 -0
  79. ascript/windows/tools/web/img/svg/ocr.svg +1 -0
  80. ascript/windows/tools/web/js/screen/colors.js +466 -0
  81. ascript/windows/tools/web/js/screen/gp_plug.js +108 -0
  82. ascript/windows/tools/web/js/screen/image_mouse.js +464 -0
  83. ascript/windows/tools/web/js/screen/img_view.js +558 -0
  84. ascript/windows/tools/web/js/screen/plug.js +246 -0
  85. ascript/windows/tools/web/js/screen/screen.js +690 -0
  86. ascript/windows/tools/web/js/screen/screen_api.js +778 -0
  87. ascript/windows/tools/web/js/screen/screen_maker.js +10 -0
  88. ascript/windows/tools/web/js/utils/map.js +73 -0
  89. ascript/windows/tools/web/js/utils/upload.js +157 -0
  90. ascript/windows/tools/web/js/viewtree/niv_js.js +27 -0
  91. ascript/windows/tools/web/js/viewtree/vtree.js +1510 -0
  92. ascript/windows/tools/web/libs/bootstrap/css/bootstrap.min.css +6 -0
  93. ascript/windows/tools/web/libs/bootstrap/js/bootstrap.bundle.min.js +7 -0
  94. ascript/windows/tools/web/libs/bootstrap-icons/0-circle.svg +4 -0
  95. ascript/windows/tools/web/libs/bootstrap-icons/0-square.svg +4 -0
  96. ascript/windows/tools/web/libs/bootstrap-icons/font/bootstrap-icons.css +2078 -0
  97. ascript/windows/tools/web/libs/bootstrap-icons/font/bootstrap-icons.json +2052 -0
  98. ascript/windows/tools/web/libs/bootstrap-icons/font/bootstrap-icons.min.css +5 -0
  99. ascript/windows/tools/web/libs/bootstrap-icons/font/bootstrap-icons.scss +2090 -0
  100. ascript/windows/tools/web/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff +0 -0
  101. ascript/windows/tools/web/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff2 +0 -0
  102. ascript/windows/tools/web/libs/feather-icons/dist/feather.min.js +13 -0
  103. ascript/windows/tools/web/libs/feather-icons/dist/icons.json +1 -0
  104. ascript/windows/tools/web/libs/jquery/core.js +399 -0
  105. ascript/windows/tools/web/libs/jquery/jquery.js +10598 -0
  106. ascript/windows/tools/web/libs/jquery/jquery.min.js +4 -0
  107. ascript/windows/tools/web/libs/jquery/jquery.min.js.zip +0 -0
  108. ascript/windows/tools/web/libs/jquery/jquery.slim.js +8495 -0
  109. ascript/windows/tools/web/libs/jquery/jquery.slim.min.js +2 -0
  110. ascript/windows/tools/web/libs/jquery-menu/jquery.contextMenu.js +2134 -0
  111. ascript/windows/tools/web/libs/jquery-menu/jquery.contextMenu.min.css +16 -0
  112. ascript/windows/tools/web/libs/jquery-zTree/css/zTreeStyle.css +97 -0
  113. ascript/windows/tools/web/libs/jquery-zTree/img/diy/1_close.png +0 -0
  114. ascript/windows/tools/web/libs/jquery-zTree/img/diy/1_open.png +0 -0
  115. ascript/windows/tools/web/libs/jquery-zTree/img/diy/2.png +0 -0
  116. ascript/windows/tools/web/libs/jquery-zTree/img/diy/3.png +0 -0
  117. ascript/windows/tools/web/libs/jquery-zTree/img/diy/4.png +0 -0
  118. ascript/windows/tools/web/libs/jquery-zTree/img/diy/5.png +0 -0
  119. ascript/windows/tools/web/libs/jquery-zTree/img/diy/6.png +0 -0
  120. ascript/windows/tools/web/libs/jquery-zTree/img/diy/7.png +0 -0
  121. ascript/windows/tools/web/libs/jquery-zTree/img/diy/8.png +0 -0
  122. ascript/windows/tools/web/libs/jquery-zTree/img/diy/9.png +0 -0
  123. ascript/windows/tools/web/libs/jquery-zTree/img/line_conn.gif +0 -0
  124. ascript/windows/tools/web/libs/jquery-zTree/img/loading.gif +0 -0
  125. ascript/windows/tools/web/libs/jquery-zTree/img/tree-node-btn.png +0 -0
  126. ascript/windows/tools/web/libs/jquery-zTree/img/zTreeStandard.gif +0 -0
  127. ascript/windows/tools/web/libs/jquery-zTree/img/zTreeStandard.png +0 -0
  128. ascript/windows/tools/web/libs/jquery-zTree/js/jquery.ztree.all.min.js +3 -0
  129. ascript/windows/tools/web/libs/treeview/css/jquery.treeview.css +79 -0
  130. ascript/windows/tools/web/libs/treeview/img/file.png +0 -0
  131. ascript/windows/tools/web/libs/treeview/img/ico_loading.png +0 -0
  132. ascript/windows/tools/web/libs/treeview/img/icon4.png +0 -0
  133. ascript/windows/tools/web/libs/treeview/img/icon5.png +0 -0
  134. ascript/windows/tools/web/libs/treeview/img/icon6.png +0 -0
  135. ascript/windows/tools/web/libs/treeview/img/py.png +0 -0
  136. ascript/windows/tools/web/libs/treeview/img/treeview-black-line.gif +0 -0
  137. ascript/windows/tools/web/libs/treeview/img/treeview-black.gif +0 -0
  138. ascript/windows/tools/web/libs/treeview/img/treeview-default-line.gif +0 -0
  139. ascript/windows/tools/web/libs/treeview/img/treeview-default.gif +0 -0
  140. ascript/windows/tools/web/libs/treeview/img/treeview-famfamfam-line.gif +0 -0
  141. ascript/windows/tools/web/libs/treeview/img/treeview-famfamfam.gif +0 -0
  142. ascript/windows/tools/web/libs/treeview/img/treeview-gray-line.gif +0 -0
  143. ascript/windows/tools/web/libs/treeview/img/treeview-gray.gif +0 -0
  144. ascript/windows/tools/web/libs/treeview/img/treeview-red-line.gif +0 -0
  145. ascript/windows/tools/web/libs/treeview/img/treeview-red.gif +0 -0
  146. ascript/windows/tools/web/libs/treeview/js/jquery.treeview.edit.js +37 -0
  147. ascript/windows/tools/web/libs/treeview/js/jquery.treeview.js +250 -0
  148. ascript/windows/tools/web/license_window.html +255 -0
  149. ascript/windows/tools/web/plugs/a.html +653 -0
  150. ascript/windows/tools/web/plugs/demo.html +52 -0
  151. ascript/windows/tools/web/plugs/find_colors.html +629 -0
  152. ascript/windows/tools/web/plugs/find_images.html +699 -0
  153. ascript/windows/tools/web/plugs/rapidocr.html +954 -0
  154. ascript/windows/tools/web/vtree.html +496 -0
  155. ascript/windows/tools/webview/assets/index-HymBPl-I.css +1 -0
  156. ascript/windows/tools/webview/assets/index-PqA_m8tL.js +17 -0
  157. ascript/windows/tools/webview/index.html +13 -0
  158. ascript/windows/ui/__init__.py +6 -0
  159. ascript/windows/ui/app_store_window.py +272 -0
  160. ascript/windows/ui/draw_window.py +231 -0
  161. ascript/windows/ui/flot_test.py +297 -0
  162. ascript/windows/ui/flot_window.py +488 -0
  163. ascript/windows/ui/license_window.py +111 -0
  164. ascript/windows/ui/web_window.py +466 -0
  165. ascript/windows/utils/__init__.py +0 -0
  166. ascript/windows/utils/node_utils.py +20 -0
  167. ascript/windows/utils/screen_utils.py +280 -0
  168. ascript/windows/window/Selector.py +1015 -0
  169. ascript/windows/window/Window.py +747 -0
  170. ascript/windows/window/__init__.py +5 -0
  171. ascript/windows/window/launcher.py +213 -0
  172. ascript/windows/window/uia_runtime.py +26 -0
  173. ascript-1.3.27.dist-info/METADATA +41 -0
  174. ascript-1.3.27.dist-info/RECORD +177 -0
  175. ascript-1.3.27.dist-info/WHEEL +5 -0
  176. ascript-1.3.27.dist-info/entry_points.txt +2 -0
  177. ascript-1.3.27.dist-info/top_level.txt +1 -0
@@ -0,0 +1,399 @@
1
+ /* global Symbol */
2
+ // Defining this global in .eslintrc.json would create a danger of using the global
3
+ // unguarded in another place, it seems safer to define global only for this module
4
+
5
+ define( [
6
+ "./var/arr",
7
+ "./var/document",
8
+ "./var/getProto",
9
+ "./var/slice",
10
+ "./var/concat",
11
+ "./var/push",
12
+ "./var/indexOf",
13
+ "./var/class2type",
14
+ "./var/toString",
15
+ "./var/hasOwn",
16
+ "./var/fnToString",
17
+ "./var/ObjectFunctionString",
18
+ "./var/support",
19
+ "./var/isFunction",
20
+ "./var/isWindow",
21
+ "./core/DOMEval",
22
+ "./core/toType"
23
+ ], function( arr, document, getProto, slice, concat, push, indexOf,
24
+ class2type, toString, hasOwn, fnToString, ObjectFunctionString,
25
+ support, isFunction, isWindow, DOMEval, toType ) {
26
+
27
+ "use strict";
28
+
29
+ var
30
+ version = "3.4.1",
31
+
32
+ // Define a local copy of jQuery
33
+ jQuery = function( selector, context ) {
34
+
35
+ // The jQuery object is actually just the init constructor 'enhanced'
36
+ // Need init if jQuery is called (just allow error to be thrown if not included)
37
+ return new jQuery.fn.init( selector, context );
38
+ },
39
+
40
+ // Support: Android <=4.0 only
41
+ // Make sure we trim BOM and NBSP
42
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
43
+
44
+ jQuery.fn = jQuery.prototype = {
45
+
46
+ // The current version of jQuery being used
47
+ jquery: version,
48
+
49
+ constructor: jQuery,
50
+
51
+ // The default length of a jQuery object is 0
52
+ length: 0,
53
+
54
+ toArray: function() {
55
+ return slice.call( this );
56
+ },
57
+
58
+ // Get the Nth element in the matched element set OR
59
+ // Get the whole matched element set as a clean array
60
+ get: function( num ) {
61
+
62
+ // Return all the elements in a clean array
63
+ if ( num == null ) {
64
+ return slice.call( this );
65
+ }
66
+
67
+ // Return just the one element from the set
68
+ return num < 0 ? this[ num + this.length ] : this[ num ];
69
+ },
70
+
71
+ // Take an array of elements and push it onto the stack
72
+ // (returning the new matched element set)
73
+ pushStack: function( elems ) {
74
+
75
+ // Build a new jQuery matched element set
76
+ var ret = jQuery.merge( this.constructor(), elems );
77
+
78
+ // Add the old object onto the stack (as a reference)
79
+ ret.prevObject = this;
80
+
81
+ // Return the newly-formed element set
82
+ return ret;
83
+ },
84
+
85
+ // Execute a callback for every element in the matched set.
86
+ each: function( callback ) {
87
+ return jQuery.each( this, callback );
88
+ },
89
+
90
+ map: function( callback ) {
91
+ return this.pushStack( jQuery.map( this, function( elem, i ) {
92
+ return callback.call( elem, i, elem );
93
+ } ) );
94
+ },
95
+
96
+ slice: function() {
97
+ return this.pushStack( slice.apply( this, arguments ) );
98
+ },
99
+
100
+ first: function() {
101
+ return this.eq( 0 );
102
+ },
103
+
104
+ last: function() {
105
+ return this.eq( -1 );
106
+ },
107
+
108
+ eq: function( i ) {
109
+ var len = this.length,
110
+ j = +i + ( i < 0 ? len : 0 );
111
+ return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
112
+ },
113
+
114
+ end: function() {
115
+ return this.prevObject || this.constructor();
116
+ },
117
+
118
+ // For internal use only.
119
+ // Behaves like an Array's method, not like a jQuery method.
120
+ push: push,
121
+ sort: arr.sort,
122
+ splice: arr.splice
123
+ };
124
+
125
+ jQuery.extend = jQuery.fn.extend = function() {
126
+ var options, name, src, copy, copyIsArray, clone,
127
+ target = arguments[ 0 ] || {},
128
+ i = 1,
129
+ length = arguments.length,
130
+ deep = false;
131
+
132
+ // Handle a deep copy situation
133
+ if ( typeof target === "boolean" ) {
134
+ deep = target;
135
+
136
+ // Skip the boolean and the target
137
+ target = arguments[ i ] || {};
138
+ i++;
139
+ }
140
+
141
+ // Handle case when target is a string or something (possible in deep copy)
142
+ if ( typeof target !== "object" && !isFunction( target ) ) {
143
+ target = {};
144
+ }
145
+
146
+ // Extend jQuery itself if only one argument is passed
147
+ if ( i === length ) {
148
+ target = this;
149
+ i--;
150
+ }
151
+
152
+ for ( ; i < length; i++ ) {
153
+
154
+ // Only deal with non-null/undefined values
155
+ if ( ( options = arguments[ i ] ) != null ) {
156
+
157
+ // Extend the base object
158
+ for ( name in options ) {
159
+ copy = options[ name ];
160
+
161
+ // Prevent Object.prototype pollution
162
+ // Prevent never-ending loop
163
+ if ( name === "__proto__" || target === copy ) {
164
+ continue;
165
+ }
166
+
167
+ // Recurse if we're merging plain objects or arrays
168
+ if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
169
+ ( copyIsArray = Array.isArray( copy ) ) ) ) {
170
+ src = target[ name ];
171
+
172
+ // Ensure proper type for the source value
173
+ if ( copyIsArray && !Array.isArray( src ) ) {
174
+ clone = [];
175
+ } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
176
+ clone = {};
177
+ } else {
178
+ clone = src;
179
+ }
180
+ copyIsArray = false;
181
+
182
+ // Never move original objects, clone them
183
+ target[ name ] = jQuery.extend( deep, clone, copy );
184
+
185
+ // Don't bring in undefined values
186
+ } else if ( copy !== undefined ) {
187
+ target[ name ] = copy;
188
+ }
189
+ }
190
+ }
191
+ }
192
+
193
+ // Return the modified object
194
+ return target;
195
+ };
196
+
197
+ jQuery.extend( {
198
+
199
+ // Unique for each copy of jQuery on the page
200
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
201
+
202
+ // Assume jQuery is ready without the ready module
203
+ isReady: true,
204
+
205
+ error: function( msg ) {
206
+ throw new Error( msg );
207
+ },
208
+
209
+ noop: function() {},
210
+
211
+ isPlainObject: function( obj ) {
212
+ var proto, Ctor;
213
+
214
+ // Detect obvious negatives
215
+ // Use toString instead of jQuery.type to catch host objects
216
+ if ( !obj || toString.call( obj ) !== "[object Object]" ) {
217
+ return false;
218
+ }
219
+
220
+ proto = getProto( obj );
221
+
222
+ // Objects with no prototype (e.g., `Object.create( null )`) are plain
223
+ if ( !proto ) {
224
+ return true;
225
+ }
226
+
227
+ // Objects with prototype are plain iff they were constructed by a global Object function
228
+ Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
229
+ return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
230
+ },
231
+
232
+ isEmptyObject: function( obj ) {
233
+ var name;
234
+
235
+ for ( name in obj ) {
236
+ return false;
237
+ }
238
+ return true;
239
+ },
240
+
241
+ // Evaluates a script in a global context
242
+ globalEval: function( code, options ) {
243
+ DOMEval( code, { nonce: options && options.nonce } );
244
+ },
245
+
246
+ each: function( obj, callback ) {
247
+ var length, i = 0;
248
+
249
+ if ( isArrayLike( obj ) ) {
250
+ length = obj.length;
251
+ for ( ; i < length; i++ ) {
252
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
253
+ break;
254
+ }
255
+ }
256
+ } else {
257
+ for ( i in obj ) {
258
+ if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
259
+ break;
260
+ }
261
+ }
262
+ }
263
+
264
+ return obj;
265
+ },
266
+
267
+ // Support: Android <=4.0 only
268
+ trim: function( text ) {
269
+ return text == null ?
270
+ "" :
271
+ ( text + "" ).replace( rtrim, "" );
272
+ },
273
+
274
+ // results is for internal usage only
275
+ makeArray: function( arr, results ) {
276
+ var ret = results || [];
277
+
278
+ if ( arr != null ) {
279
+ if ( isArrayLike( Object( arr ) ) ) {
280
+ jQuery.merge( ret,
281
+ typeof arr === "string" ?
282
+ [ arr ] : arr
283
+ );
284
+ } else {
285
+ push.call( ret, arr );
286
+ }
287
+ }
288
+
289
+ return ret;
290
+ },
291
+
292
+ inArray: function( elem, arr, i ) {
293
+ return arr == null ? -1 : indexOf.call( arr, elem, i );
294
+ },
295
+
296
+ // Support: Android <=4.0 only, PhantomJS 1 only
297
+ // push.apply(_, arraylike) throws on ancient WebKit
298
+ merge: function( first, second ) {
299
+ var len = +second.length,
300
+ j = 0,
301
+ i = first.length;
302
+
303
+ for ( ; j < len; j++ ) {
304
+ first[ i++ ] = second[ j ];
305
+ }
306
+
307
+ first.length = i;
308
+
309
+ return first;
310
+ },
311
+
312
+ grep: function( elems, callback, invert ) {
313
+ var callbackInverse,
314
+ matches = [],
315
+ i = 0,
316
+ length = elems.length,
317
+ callbackExpect = !invert;
318
+
319
+ // Go through the array, only saving the items
320
+ // that pass the validator function
321
+ for ( ; i < length; i++ ) {
322
+ callbackInverse = !callback( elems[ i ], i );
323
+ if ( callbackInverse !== callbackExpect ) {
324
+ matches.push( elems[ i ] );
325
+ }
326
+ }
327
+
328
+ return matches;
329
+ },
330
+
331
+ // arg is for internal usage only
332
+ map: function( elems, callback, arg ) {
333
+ var length, value,
334
+ i = 0,
335
+ ret = [];
336
+
337
+ // Go through the array, translating each of the items to their new values
338
+ if ( isArrayLike( elems ) ) {
339
+ length = elems.length;
340
+ for ( ; i < length; i++ ) {
341
+ value = callback( elems[ i ], i, arg );
342
+
343
+ if ( value != null ) {
344
+ ret.push( value );
345
+ }
346
+ }
347
+
348
+ // Go through every key on the object,
349
+ } else {
350
+ for ( i in elems ) {
351
+ value = callback( elems[ i ], i, arg );
352
+
353
+ if ( value != null ) {
354
+ ret.push( value );
355
+ }
356
+ }
357
+ }
358
+
359
+ // Flatten any nested arrays
360
+ return concat.apply( [], ret );
361
+ },
362
+
363
+ // A global GUID counter for objects
364
+ guid: 1,
365
+
366
+ // jQuery.support is not used in Core but other projects attach their
367
+ // properties to it so it needs to exist.
368
+ support: support
369
+ } );
370
+
371
+ if ( typeof Symbol === "function" ) {
372
+ jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
373
+ }
374
+
375
+ // Populate the class2type map
376
+ jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
377
+ function( i, name ) {
378
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
379
+ } );
380
+
381
+ function isArrayLike( obj ) {
382
+
383
+ // Support: real iOS 8.2 only (not reproducible in simulator)
384
+ // `in` check used to prevent JIT error (gh-2145)
385
+ // hasOwn isn't used here due to false negatives
386
+ // regarding Nodelist length in IE
387
+ var length = !!obj && "length" in obj && obj.length,
388
+ type = toType( obj );
389
+
390
+ if ( isFunction( obj ) || isWindow( obj ) ) {
391
+ return false;
392
+ }
393
+
394
+ return type === "array" || length === 0 ||
395
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
396
+ }
397
+
398
+ return jQuery;
399
+ } );