google-closure-compiler 20250412.0.0-nightly → 20250413.0.0

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 (131) hide show
  1. package/README.md +5 -30
  2. package/cli.js +3 -4
  3. package/externs/browser/decorators.js +276 -0
  4. package/externs/browser/deprecated.js +58 -0
  5. package/externs/browser/es6_proxy.js +143 -0
  6. package/externs/browser/fetchapi.js +449 -0
  7. package/externs/browser/fido.js +94 -0
  8. package/externs/browser/flash.js +226 -0
  9. package/externs/browser/gecko_css.js +126 -0
  10. package/externs/browser/gecko_dom.js +479 -0
  11. package/externs/browser/gecko_event.js +86 -0
  12. package/externs/browser/gecko_xml.js +73 -0
  13. package/externs/browser/google_legacy.js +31 -0
  14. package/externs/browser/html5.js +6647 -0
  15. package/externs/browser/ie_css.js +270 -0
  16. package/externs/browser/ie_dom.js +1232 -0
  17. package/externs/browser/ie_event.js +310 -0
  18. package/externs/browser/ie_vml.js +77 -0
  19. package/externs/browser/intersection_observer.js +178 -0
  20. package/externs/browser/intl.js +602 -0
  21. package/externs/browser/iphone.js +204 -0
  22. package/externs/browser/mediakeys.js +305 -0
  23. package/externs/browser/mediasource.js +155 -0
  24. package/externs/browser/nonstandard_anim_timing.js +97 -0
  25. package/externs/browser/nonstandard_audio.js +82 -0
  26. package/externs/browser/nonstandard_console.js +75 -0
  27. package/externs/browser/nonstandard_fileapi.js +1066 -0
  28. package/externs/browser/nonstandard_indexeddb.js +78 -0
  29. package/externs/browser/nonstandard_navigation_timing.js +38 -0
  30. package/externs/browser/nonstandard_selection.js +80 -0
  31. package/externs/browser/page_visibility.js +28 -0
  32. package/externs/browser/streamsapi.js +593 -0
  33. package/externs/browser/svg.js +10016 -0
  34. package/externs/browser/url.js +202 -0
  35. package/externs/browser/v8.js +134 -0
  36. package/externs/browser/w3c_abort.js +89 -0
  37. package/externs/browser/w3c_anim_timing.js +49 -0
  38. package/externs/browser/w3c_aria_mixin.js +286 -0
  39. package/externs/browser/w3c_audio.js +1660 -0
  40. package/externs/browser/w3c_batterystatus.js +85 -0
  41. package/externs/browser/w3c_clipboard.js +74 -0
  42. package/externs/browser/w3c_clipboardevent.js +47 -0
  43. package/externs/browser/w3c_composition_event.js +93 -0
  44. package/externs/browser/w3c_css.js +3790 -0
  45. package/externs/browser/w3c_css3d.js +199 -0
  46. package/externs/browser/w3c_device_sensor_event.js +122 -0
  47. package/externs/browser/w3c_dom1.js +1160 -0
  48. package/externs/browser/w3c_dom2.js +3151 -0
  49. package/externs/browser/w3c_dom3.js +555 -0
  50. package/externs/browser/w3c_dom4.js +289 -0
  51. package/externs/browser/w3c_elementtraversal.js +116 -0
  52. package/externs/browser/w3c_event.js +607 -0
  53. package/externs/browser/w3c_event3.js +77 -0
  54. package/externs/browser/w3c_eventsource.js +110 -0
  55. package/externs/browser/w3c_fileapi.js +302 -0
  56. package/externs/browser/w3c_gamepad.js +113 -0
  57. package/externs/browser/w3c_geolocation.js +130 -0
  58. package/externs/browser/w3c_geometry1.js +899 -0
  59. package/externs/browser/w3c_indexeddb.js +771 -0
  60. package/externs/browser/w3c_keyboardlock.js +47 -0
  61. package/externs/browser/w3c_mediacapabilities.js +206 -0
  62. package/externs/browser/w3c_midi.js +301 -0
  63. package/externs/browser/w3c_navigation.js +72 -0
  64. package/externs/browser/w3c_navigation_timing.js +437 -0
  65. package/externs/browser/w3c_netinfo.js +85 -0
  66. package/externs/browser/w3c_payment_request.js +401 -0
  67. package/externs/browser/w3c_permissions.js +112 -0
  68. package/externs/browser/w3c_permissions_policy.js +78 -0
  69. package/externs/browser/w3c_pointer_events.js +163 -0
  70. package/externs/browser/w3c_pointerlock.js +63 -0
  71. package/externs/browser/w3c_range.js +284 -0
  72. package/externs/browser/w3c_referrer_policy.js +36 -0
  73. package/externs/browser/w3c_requestidlecallback.js +76 -0
  74. package/externs/browser/w3c_rtc.js +3882 -0
  75. package/externs/browser/w3c_screen_orientation.js +53 -0
  76. package/externs/browser/w3c_screen_wake_lock.js +58 -0
  77. package/externs/browser/w3c_selection.js +209 -0
  78. package/externs/browser/w3c_selectors.js +113 -0
  79. package/externs/browser/w3c_serviceworker.js +739 -0
  80. package/externs/browser/w3c_speech.js +426 -0
  81. package/externs/browser/w3c_touch_event.js +296 -0
  82. package/externs/browser/w3c_trusted_types.js +142 -0
  83. package/externs/browser/w3c_vibration.js +38 -0
  84. package/externs/browser/w3c_webcodecs.js +1473 -0
  85. package/externs/browser/w3c_webcrypto.js +839 -0
  86. package/externs/browser/w3c_worklets.js +54 -0
  87. package/externs/browser/w3c_xml.js +533 -0
  88. package/externs/browser/web_animations.js +452 -0
  89. package/externs/browser/web_app_manifest.js +50 -0
  90. package/externs/browser/webassembly.js +223 -0
  91. package/externs/browser/webgl.js +3409 -0
  92. package/externs/browser/webgl2.js +2727 -0
  93. package/externs/browser/webgl2_compute.js +1609 -0
  94. package/externs/browser/webkit_css.js +456 -0
  95. package/externs/browser/webkit_dom.js +118 -0
  96. package/externs/browser/webkit_event.js +46 -0
  97. package/externs/browser/webkit_notifications.js +258 -0
  98. package/externs/browser/webkit_usercontent.js +55 -0
  99. package/externs/browser/weblocksapi.js +125 -0
  100. package/externs/browser/webstorage.js +171 -0
  101. package/externs/browser/whatwg_bitmap_context.js +37 -0
  102. package/externs/browser/whatwg_console.js +152 -0
  103. package/externs/browser/whatwg_encoding.js +99 -0
  104. package/externs/browser/whatwg_file_system.js +296 -0
  105. package/externs/browser/wicg_attribution_reporting.js +42 -0
  106. package/externs/browser/wicg_compression_stream.js +60 -0
  107. package/externs/browser/wicg_constructable_stylesheets.js +60 -0
  108. package/externs/browser/wicg_entries.js +169 -0
  109. package/externs/browser/wicg_file_handling.js +41 -0
  110. package/externs/browser/wicg_file_system_access.js +191 -0
  111. package/externs/browser/wicg_floc.js +41 -0
  112. package/externs/browser/wicg_ink.js +89 -0
  113. package/externs/browser/wicg_resizeobserver.js +100 -0
  114. package/externs/browser/wicg_scheduler.js +62 -0
  115. package/externs/browser/wicg_trust_token.js +89 -0
  116. package/externs/browser/wicg_uach.js +100 -0
  117. package/externs/browser/window.js +190 -0
  118. package/externs/es3.js +2716 -0
  119. package/externs/es5.js +284 -0
  120. package/externs/es6.js +2554 -0
  121. package/externs/es6_collections.js +323 -0
  122. package/index.js +13 -16
  123. package/lib/grunt/index.js +71 -92
  124. package/lib/grunt/vinyl-stream.js +12 -18
  125. package/lib/gulp/concat-to-json.js +30 -18
  126. package/lib/gulp/index.js +174 -181
  127. package/lib/gulp/json-to-vinyl.js +8 -8
  128. package/lib/node/{closure-compiler.js → index.js} +27 -51
  129. package/lib/utils.js +16 -14
  130. package/package.json +19 -16
  131. package/lib/logger.js +0 -89
@@ -0,0 +1,310 @@
1
+ /*
2
+ * Copyright 2008 The Closure Compiler Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * @fileoverview Definitions for all the extensions over the
19
+ * W3C's event specification by IE in JScript. This file depends on
20
+ * w3c_event.js.
21
+ *
22
+ * @see http://msdn.microsoft.com/en-us/library/ms535863.aspx
23
+ * @externs
24
+ */
25
+
26
+ /** @type {string} */
27
+ Event.prototype.Abstract;
28
+
29
+ /** @type {boolean} */
30
+ Event.prototype.altLeft;
31
+
32
+ /** @type {string} */
33
+ Event.prototype.Banner;
34
+
35
+ /**
36
+ * A ClipboardData on IE, but a DataTransfer on WebKit.
37
+ * @see http://msdn.microsoft.com/en-us/library/ms535220.aspx
38
+ * @type {(ClipboardData|undefined)}
39
+ */
40
+ Event.prototype.clipboardData;
41
+
42
+ /** @type {boolean} */
43
+ Event.prototype.contentOverflow;
44
+
45
+ /** @type {boolean} */
46
+ Event.prototype.ctrlLeft;
47
+
48
+ /** @type {string} */
49
+ Event.prototype.dataFld;
50
+
51
+ Event.prototype.domain;
52
+
53
+ /** @type {Element} */
54
+ Event.prototype.fromElement;
55
+
56
+ /** @type {string} */
57
+ Event.prototype.MoreInfo;
58
+
59
+ /** @type {string} */
60
+ Event.prototype.nextPage;
61
+
62
+ /** @type {number} */
63
+ Event.prototype.offsetX;
64
+
65
+ /** @type {number} */
66
+ Event.prototype.offsetY;
67
+
68
+ /** @type {string} */
69
+ Event.prototype.propertyName;
70
+
71
+ /** @type {string} */
72
+ Event.prototype.qualifier;
73
+
74
+ /** @type {?} */
75
+ Event.prototype.reason;
76
+
77
+ /** @type {Object<*>} */
78
+ Event.prototype.recordset;
79
+
80
+ /** @type {boolean} */
81
+ Event.prototype.repeat;
82
+
83
+ /** @type {(boolean|string|undefined)} */
84
+ Event.prototype.returnValue;
85
+
86
+ /** @type {string} */
87
+ Event.prototype.saveType;
88
+
89
+ Event.prototype.scheme;
90
+
91
+ /** @type {boolean} */
92
+ Event.prototype.shiftLeft;
93
+
94
+ /** @type {Window} */
95
+ Event.prototype.source;
96
+
97
+ /** @type {Element} */
98
+ Event.prototype.srcElement;
99
+
100
+ Event.prototype.srcFilter;
101
+
102
+ /** @type {string} */
103
+ Event.prototype.srcUrn;
104
+
105
+ /** @type {Element} */
106
+ Event.prototype.toElement;
107
+
108
+ Event.prototype.userName;
109
+
110
+ /** @type {number} */
111
+ Event.prototype.wheelDelta;
112
+
113
+ /** @type {number} */
114
+ Event.prototype.x;
115
+
116
+ /** @type {number} */
117
+ Event.prototype.y;
118
+
119
+ /**
120
+ * @constructor
121
+ * @see http://msdn.microsoft.com/en-us/library/windows/apps/hh441257.aspx
122
+ */
123
+ function MSPointerPoint() {}
124
+
125
+ /** @type {number} */
126
+ MSPointerPoint.prototype.pointerId;
127
+
128
+ /** @type {number} */
129
+ MSPointerPoint.prototype.pointerType;
130
+
131
+ /**
132
+ * @constructor
133
+ * @extends {Event}
134
+ * @see http://msdn.microsoft.com/en-us/library/windows/apps/hh441233.aspx
135
+ */
136
+ function MSPointerEvent() {}
137
+
138
+ /** @const {number} */
139
+ MSPointerEvent.MSPOINTER_TYPE_MOUSE;
140
+
141
+ /** @const {number} */
142
+ MSPointerEvent.MSPOINTER_TYPE_PEN;
143
+
144
+ /** @const {number} */
145
+ MSPointerEvent.MSPOINTER_TYPE_TOUCH;
146
+
147
+ /** @type {number} */
148
+ MSPointerEvent.prototype.height;
149
+
150
+ /** @type {number} */
151
+ MSPointerEvent.prototype.hwTimestamp;
152
+
153
+ /** @type {boolean} */
154
+ MSPointerEvent.prototype.isPrimary;
155
+
156
+ /** @type {number} */
157
+ MSPointerEvent.prototype.pointerId;
158
+
159
+ /** @type {number} */
160
+ MSPointerEvent.prototype.pointerType;
161
+
162
+ /** @type {number} */
163
+ MSPointerEvent.prototype.pressure;
164
+
165
+ /** @type {number} */
166
+ MSPointerEvent.prototype.rotation;
167
+
168
+ /** @type {number} */
169
+ MSPointerEvent.prototype.tiltX;
170
+
171
+ /** @type {number} */
172
+ MSPointerEvent.prototype.tiltY;
173
+
174
+ /** @type {number} */
175
+ MSPointerEvent.prototype.timeStamp;
176
+
177
+ /** @type {number} */
178
+ MSPointerEvent.prototype.width;
179
+
180
+ /**
181
+ * @param {number} pointerId
182
+ * @return {undefined}
183
+ */
184
+ MSPointerEvent.prototype.msReleasePointerCapture;
185
+
186
+ /**
187
+ * @param {number} pointerId
188
+ * @return {undefined}
189
+ */
190
+ MSPointerEvent.prototype.msSetPointerCapture;
191
+
192
+ /**
193
+ * @param {string} typeArg
194
+ * @param {boolean} canBubbleArg
195
+ * @param {boolean} cancelableArg
196
+ * @param {Window} viewArg
197
+ * @param {number} detailArg
198
+ * @param {number} screenXArg
199
+ * @param {number} screenYArg
200
+ * @param {number} clientXArg
201
+ * @param {number} clientYArg
202
+ * @param {boolean} ctrlKeyArg
203
+ * @param {boolean} altKeyArg
204
+ * @param {boolean} shiftKeyArg
205
+ * @param {boolean} metaKeyArg
206
+ * @param {number} buttonArg
207
+ * @param {Element} relatedTargetArg
208
+ * @param {number} offsetXArg
209
+ * @param {number} offsetYArg
210
+ * @param {number} widthArg
211
+ * @param {number} heightArg
212
+ * @param {number} pressure
213
+ * @param {number} rotation
214
+ * @param {number} tiltX
215
+ * @param {number} tiltY
216
+ * @param {number} pointerIdArg
217
+ * @param {number} pointerType
218
+ * @param {number} hwTimestampArg
219
+ * @param {boolean} isPrimary
220
+ * @return {undefined}
221
+ * @see http://msdn.microsoft.com/en-us/library/windows/apps/hh441246.aspx
222
+ */
223
+ MSPointerEvent.prototype.initPointerEvent;
224
+
225
+ /**
226
+ * @constructor
227
+ * @see http://msdn.microsoft.com/en-us/library/ie/hh968249(v=vs.85).aspx
228
+ */
229
+ function MSGesture() {}
230
+
231
+ /**
232
+ * @type {Element}
233
+ */
234
+ MSGesture.prototype.target;
235
+
236
+ /**
237
+ * @param {number} pointerId
238
+ * @return {undefined}
239
+ */
240
+ MSGesture.prototype.addPointer = function(pointerId) {};
241
+
242
+ MSGesture.prototype.stop = function() {};
243
+
244
+ /**
245
+ * @constructor
246
+ * @extends {Event}
247
+ * @see http://msdn.microsoft.com/en-us/library/ie/hh772076(v=vs.85).aspx
248
+ */
249
+ function MSGestureEvent() {}
250
+
251
+ /** @type {number} */
252
+ MSGestureEvent.prototype.expansion;
253
+
254
+ /** @type {!MSGesture} */
255
+ MSGestureEvent.prototype.gestureObject;
256
+
257
+ /** @type {number} */
258
+ MSGestureEvent.prototype.hwTimestamp;
259
+
260
+ /** @type {number} */
261
+ MSGestureEvent.prototype.rotation;
262
+
263
+ /** @type {number} */
264
+ MSGestureEvent.prototype.scale;
265
+
266
+ /** @type {number} */
267
+ MSGestureEvent.prototype.translationX;
268
+
269
+ /** @type {number} */
270
+ MSGestureEvent.prototype.translationY;
271
+
272
+ /** @type {number} */
273
+ MSGestureEvent.prototype.velocityAngular;
274
+
275
+ /** @type {number} */
276
+ MSGestureEvent.prototype.velocityExpansion;
277
+
278
+ /** @type {number} */
279
+ MSGestureEvent.prototype.velocityX;
280
+
281
+ /** @type {number} */
282
+ MSGestureEvent.prototype.velocityY;
283
+
284
+ /**
285
+ * @param {string} typeArg
286
+ * @param {boolean} canBubbleArg
287
+ * @param {boolean} cancelableArg
288
+ * @param {Window} viewArg
289
+ * @param {number} detailArg
290
+ * @param {number} screenXArg
291
+ * @param {number} screenYArg
292
+ * @param {number} clientXArg
293
+ * @param {number} clientYArg
294
+ * @param {number} offsetXArg
295
+ * @param {number} offsetYArg
296
+ * @param {number} translationXArg
297
+ * @param {number} translationYArg
298
+ * @param {number} scaleArg
299
+ * @param {number} expansionArg
300
+ * @param {number} rotationArg
301
+ * @param {number} velocityXArg
302
+ * @param {number} velocityYArg
303
+ * @param {number} velocityExpansionArg
304
+ * @param {number} velocityAngularArg
305
+ * @param {number} hwTimestampArg
306
+ * @param {EventTarget} relatedTargetArg
307
+ * @return {undefined}
308
+ * @see http://msdn.microsoft.com/en-us/library/windows/apps/hh441187.aspx
309
+ */
310
+ MSGestureEvent.prototype.initGestureEvent;
@@ -0,0 +1,77 @@
1
+ /*
2
+ * Copyright 2009 The Closure Compiler Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * @fileoverview Definitions for IE's vector markup language, or VML.
19
+ *
20
+ * @externs
21
+ * @author robbyw@google.com (Robby Walker)
22
+ */
23
+
24
+
25
+ /**
26
+ * @type {Object|string}
27
+ * @see http://msdn.microsoft.com/en-us/library/bb263836(VS.85).aspx
28
+ */
29
+ Element.prototype.coordorigin;
30
+
31
+ /**
32
+ * @type {Object|string}
33
+ * @see http://msdn.microsoft.com/en-us/library/bb263837(VS.85).aspx
34
+ */
35
+ Element.prototype.coordsize;
36
+
37
+ /**
38
+ * @type {string}
39
+ * @see http://msdn.microsoft.com/en-us/library/bb263839(VS.85).aspx
40
+ */
41
+ Element.prototype.fillcolor;
42
+
43
+ /**
44
+ * @type {boolean}
45
+ * @see http://msdn.microsoft.com/en-us/library/bb263840(VS.85).aspx
46
+ */
47
+ Element.prototype.filled;
48
+
49
+ /**
50
+ * @type {string}
51
+ * @see http://msdn.microsoft.com/en-us/library/bb263871(VS.85).aspx
52
+ */
53
+ Element.prototype.path;
54
+
55
+ /**
56
+ * @type {number|string}
57
+ * @see http://msdn.microsoft.com/en-us/library/bb263877(VS.85).aspx
58
+ */
59
+ Element.prototype.rotation;
60
+
61
+ /**
62
+ * @type {string}
63
+ * @see http://msdn.microsoft.com/en-us/library/bb263881(VS.85).aspx
64
+ */
65
+ Element.prototype.strokecolor;
66
+
67
+ /**
68
+ * @type {boolean}
69
+ * @see http://msdn.microsoft.com/en-us/library/bb263882(VS.85).aspx
70
+ */
71
+ Element.prototype.stroked;
72
+
73
+ /**
74
+ * @type {number|string}
75
+ * @see http://msdn.microsoft.com/en-us/library/bb263883(VS.85).aspx
76
+ */
77
+ Element.prototype.strokeweight;
@@ -0,0 +1,178 @@
1
+ /*
2
+ * Copyright 2016 The Closure Compiler Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * @fileoverview Externs for Intersection Observer objects.
19
+ * @see https://w3c.github.io/IntersectionObserver/
20
+ * @externs
21
+ */
22
+
23
+ // TODO(user): Once the Intersection Observer spec is adopted by W3C, add
24
+ // a w3c_ prefix to this file's name.
25
+
26
+
27
+ /**
28
+ * These contain the information provided from a change event.
29
+ * @see https://w3c.github.io/IntersectionObserver/#intersection-observer-entry
30
+ * @record
31
+ */
32
+ function IntersectionObserverEntry() {}
33
+
34
+ /**
35
+ * The time the change was observed.
36
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-time
37
+ * @const {number}
38
+ */
39
+ IntersectionObserverEntry.prototype.time;
40
+
41
+ /**
42
+ * The root intersection rectangle, if target belongs to the same unit of
43
+ * related similar-origin browsing contexts as the intersection root, null
44
+ * otherwise.
45
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-rootbounds
46
+ * @const {{top: number, right: number, bottom: number, left: number,
47
+ * height: number, width: number}}
48
+ */
49
+ IntersectionObserverEntry.prototype.rootBounds;
50
+
51
+ /**
52
+ * The rectangle describing the element being observed.
53
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-boundingclientrect
54
+ * @const {!{top: number, right: number, bottom: number, left: number,
55
+ * height: number, width: number}}
56
+ */
57
+ IntersectionObserverEntry.prototype.boundingClientRect;
58
+
59
+ /**
60
+ * The rectangle describing the intersection between the observed element and
61
+ * the viewport.
62
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-intersectionrect
63
+ * @const {!{top: number, right: number, bottom: number, left: number,
64
+ * height: number, width: number}}
65
+ */
66
+ IntersectionObserverEntry.prototype.intersectionRect;
67
+
68
+ /**
69
+ * Ratio of intersectionRect area to boundingClientRect area.
70
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-intersectionratio
71
+ * @const {number}
72
+ */
73
+ IntersectionObserverEntry.prototype.intersectionRatio;
74
+
75
+ /**
76
+ * The Element whose intersection with the intersection root changed.
77
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-target
78
+ * @const {!Element}
79
+ */
80
+ IntersectionObserverEntry.prototype.target;
81
+
82
+ /**
83
+ * Whether or not the target is intersecting with the root.
84
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-isintersecting
85
+ * @const {boolean}
86
+ */
87
+ IntersectionObserverEntry.prototype.isIntersecting;
88
+
89
+ /**
90
+ * Whether or not the target is visible with the root.
91
+ * @see https://w3c.github.io/IntersectionObserver/v2/#dom-intersectionobserverentry-isvisible
92
+ * @const {boolean|undefined}
93
+ */
94
+ IntersectionObserverEntry.prototype.isVisible;
95
+
96
+ /**
97
+ * Callback for the IntersectionObserver.
98
+ * @see https://w3c.github.io/IntersectionObserver/#intersection-observer-callback
99
+ * @typedef {function(!Array<!IntersectionObserverEntry>,!IntersectionObserver)}
100
+ */
101
+ var IntersectionObserverCallback;
102
+
103
+ /**
104
+ * Options for the IntersectionObserver.
105
+ * @see https://w3c.github.io/IntersectionObserver/v2/#intersection-observer-init
106
+ * @typedef {{
107
+ * threshold: (!Array<number>|number|undefined),
108
+ * delay: (number|undefined),
109
+ * trackVisibility: (boolean|undefined),
110
+ * root: (?Document|?Element|undefined),
111
+ * rootMargin: (string|undefined)
112
+ * }}
113
+ */
114
+ var IntersectionObserverInit;
115
+
116
+ /**
117
+ * This is the constructor for Intersection Observer objects.
118
+ * @see https://w3c.github.io/IntersectionObserver/#intersection-observer-interface
119
+ * @param {!IntersectionObserverCallback} handler The callback for the observer.
120
+ * @param {!IntersectionObserverInit=} opt_options The object defining the
121
+ * thresholds, etc.
122
+ * @constructor
123
+ */
124
+ function IntersectionObserver(handler, opt_options) {};
125
+
126
+ /**
127
+ * The root Element to use for intersection, or null if the observer uses the
128
+ * implicit root.
129
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-root
130
+ * @const {?Element}
131
+ */
132
+ IntersectionObserver.prototype.root;
133
+
134
+ /**
135
+ * Offsets applied to the intersection root’s bounding box, effectively growing
136
+ * or shrinking the box that is used to calculate intersections.
137
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-rootmargin
138
+ * @const {string}
139
+ */
140
+ IntersectionObserver.prototype.rootMargin;
141
+
142
+ /**
143
+ * A list of thresholds, sorted in increasing numeric order, where each
144
+ * threshold is a ratio of intersection area to bounding box area of an observed
145
+ * target.
146
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-thresholds
147
+ * @const {!Array<number>}
148
+ */
149
+ IntersectionObserver.prototype.thresholds;
150
+
151
+ /**
152
+ * This is used to set which element to observe.
153
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-observe
154
+ * @param {!Element} element The element to observe.
155
+ * @return {undefined}
156
+ */
157
+ IntersectionObserver.prototype.observe = function(element) {};
158
+
159
+ /**
160
+ * This is used to stop observing a given element.
161
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-unobserve
162
+ * @param {!Element} element The elmenent to stop observing.
163
+ * @return {undefined}
164
+ */
165
+ IntersectionObserver.prototype.unobserve = function(element) {};
166
+
167
+ /**
168
+ * Disconnect.
169
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-disconnect
170
+ */
171
+ IntersectionObserver.prototype.disconnect = function() {};
172
+
173
+ /**
174
+ * Take records.
175
+ * @see https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-takerecords
176
+ * @return {!Array.<!IntersectionObserverEntry>}
177
+ */
178
+ IntersectionObserver.prototype.takeRecords = function() {};