uikit 3.11.2-dev.c2430c233 → 3.11.2-dev.cfa6c7d5c

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 (213) hide show
  1. package/.eslintrc.json +4 -49
  2. package/.prettierignore +14 -0
  3. package/.prettierrc.json +13 -0
  4. package/.webstorm.js +3 -3
  5. package/CHANGELOG.md +41 -18
  6. package/build/.eslintrc.json +1 -3
  7. package/build/build.js +26 -28
  8. package/build/icons.js +7 -11
  9. package/build/less.js +48 -36
  10. package/build/package.json +2 -2
  11. package/build/prefix.js +21 -18
  12. package/build/publishDev.js +6 -8
  13. package/build/release.js +20 -17
  14. package/build/scope.js +21 -11
  15. package/build/scss.js +72 -39
  16. package/build/util.js +71 -62
  17. package/build/wrapper/icons.js +0 -2
  18. package/dist/css/uikit-core-rtl.css +86 -185
  19. package/dist/css/uikit-core-rtl.min.css +1 -1
  20. package/dist/css/uikit-core.css +86 -185
  21. package/dist/css/uikit-core.min.css +1 -1
  22. package/dist/css/uikit-rtl.css +88 -191
  23. package/dist/css/uikit-rtl.min.css +1 -1
  24. package/dist/css/uikit.css +88 -191
  25. package/dist/css/uikit.min.css +1 -1
  26. package/dist/js/components/countdown.js +88 -133
  27. package/dist/js/components/countdown.min.js +1 -1
  28. package/dist/js/components/filter.js +408 -439
  29. package/dist/js/components/filter.min.js +1 -1
  30. package/dist/js/components/lightbox-panel.js +1098 -1316
  31. package/dist/js/components/lightbox-panel.min.js +1 -1
  32. package/dist/js/components/lightbox.js +1144 -1393
  33. package/dist/js/components/lightbox.min.js +1 -1
  34. package/dist/js/components/notification.js +94 -114
  35. package/dist/js/components/notification.min.js +1 -1
  36. package/dist/js/components/parallax.js +344 -359
  37. package/dist/js/components/parallax.min.js +1 -1
  38. package/dist/js/components/slider-parallax.js +342 -358
  39. package/dist/js/components/slider-parallax.min.js +1 -1
  40. package/dist/js/components/slider.js +768 -843
  41. package/dist/js/components/slider.min.js +1 -1
  42. package/dist/js/components/slideshow-parallax.js +342 -358
  43. package/dist/js/components/slideshow-parallax.min.js +1 -1
  44. package/dist/js/components/slideshow.js +645 -793
  45. package/dist/js/components/slideshow.min.js +1 -1
  46. package/dist/js/components/sortable.js +587 -620
  47. package/dist/js/components/sortable.min.js +1 -1
  48. package/dist/js/components/tooltip.js +324 -356
  49. package/dist/js/components/tooltip.min.js +1 -1
  50. package/dist/js/components/upload.js +155 -167
  51. package/dist/js/components/upload.min.js +1 -1
  52. package/dist/js/uikit-core.js +5273 -6604
  53. package/dist/js/uikit-core.min.js +1 -1
  54. package/dist/js/uikit-icons.js +7 -9
  55. package/dist/js/uikit-icons.min.js +1 -1
  56. package/dist/js/uikit.js +7995 -9704
  57. package/dist/js/uikit.min.js +1 -1
  58. package/jsconfig.json +1 -1
  59. package/package.json +64 -60
  60. package/src/js/api/boot.js +25 -32
  61. package/src/js/api/component.js +15 -28
  62. package/src/js/api/global.js +6 -12
  63. package/src/js/api/hooks.js +14 -33
  64. package/src/js/api/instance.js +7 -15
  65. package/src/js/api/state.js +65 -82
  66. package/src/js/components/countdown.js +24 -50
  67. package/src/js/components/filter.js +70 -66
  68. package/src/js/components/index.js +13 -13
  69. package/src/js/components/internal/lightbox-animations.js +14 -25
  70. package/src/js/components/internal/slider-preload.js +37 -0
  71. package/src/js/components/internal/slider-transitioner.js +66 -45
  72. package/src/js/components/internal/slideshow-animations.js +46 -64
  73. package/src/js/components/lightbox-panel.js +107 -105
  74. package/src/js/components/lightbox.js +17 -39
  75. package/src/js/components/notification.js +49 -43
  76. package/src/js/components/parallax.js +16 -30
  77. package/src/js/components/slider-parallax.js +13 -23
  78. package/src/js/components/slider.js +95 -64
  79. package/src/js/components/slideshow-parallax.js +1 -1
  80. package/src/js/components/slideshow.js +15 -13
  81. package/src/js/components/sortable.js +125 -106
  82. package/src/js/components/tooltip.js +41 -31
  83. package/src/js/components/upload.js +52 -63
  84. package/src/js/core/accordion.js +53 -48
  85. package/src/js/core/alert.js +9 -17
  86. package/src/js/core/core.js +74 -53
  87. package/src/js/core/cover.js +11 -15
  88. package/src/js/core/drop.js +106 -92
  89. package/src/js/core/form-custom.js +20 -25
  90. package/src/js/core/gif.js +3 -7
  91. package/src/js/core/grid.js +57 -58
  92. package/src/js/core/height-match.js +16 -29
  93. package/src/js/core/height-viewport.js +30 -34
  94. package/src/js/core/icon.js +47 -52
  95. package/src/js/core/img.js +156 -138
  96. package/src/js/core/index.js +39 -39
  97. package/src/js/core/leader.js +9 -18
  98. package/src/js/core/margin.js +21 -37
  99. package/src/js/core/modal.js +49 -36
  100. package/src/js/core/nav.js +2 -4
  101. package/src/js/core/navbar.js +112 -88
  102. package/src/js/core/offcanvas.js +49 -53
  103. package/src/js/core/overflow-auto.js +13 -17
  104. package/src/js/core/responsive.js +14 -12
  105. package/src/js/core/scroll.js +10 -20
  106. package/src/js/core/scrollspy-nav.js +34 -31
  107. package/src/js/core/scrollspy.js +37 -54
  108. package/src/js/core/sticky.js +161 -128
  109. package/src/js/core/svg.js +68 -83
  110. package/src/js/core/switcher.js +47 -46
  111. package/src/js/core/tab.js +7 -10
  112. package/src/js/core/toggle.js +66 -67
  113. package/src/js/core/video.js +11 -22
  114. package/src/js/mixin/animate.js +19 -20
  115. package/src/js/mixin/class.js +2 -4
  116. package/src/js/mixin/container.js +7 -11
  117. package/src/js/mixin/internal/animate-fade.js +73 -30
  118. package/src/js/mixin/internal/animate-slide.js +58 -41
  119. package/src/js/mixin/internal/slideshow-animations.js +7 -14
  120. package/src/js/mixin/internal/slideshow-transitioner.js +10 -17
  121. package/src/js/mixin/media.js +5 -10
  122. package/src/js/mixin/modal.js +89 -66
  123. package/src/js/mixin/parallax.js +146 -105
  124. package/src/js/mixin/position.js +26 -20
  125. package/src/js/mixin/slider-autoplay.js +12 -21
  126. package/src/js/mixin/slider-drag.js +64 -65
  127. package/src/js/mixin/slider-nav.js +26 -35
  128. package/src/js/mixin/slider-reactive.js +2 -8
  129. package/src/js/mixin/slider.js +48 -55
  130. package/src/js/mixin/slideshow.js +13 -19
  131. package/src/js/mixin/togglable.js +89 -63
  132. package/src/js/uikit-core.js +2 -4
  133. package/src/js/uikit.js +2 -4
  134. package/src/js/util/ajax.js +25 -40
  135. package/src/js/util/animation.js +77 -75
  136. package/src/js/util/attr.js +17 -21
  137. package/src/js/util/class.js +14 -52
  138. package/src/js/util/dimensions.js +58 -45
  139. package/src/js/util/dom.js +39 -66
  140. package/src/js/util/env.js +7 -12
  141. package/src/js/util/event.js +60 -59
  142. package/src/js/util/fastdom.js +1 -6
  143. package/src/js/util/filter.js +17 -34
  144. package/src/js/util/index.js +0 -1
  145. package/src/js/util/lang.js +82 -121
  146. package/src/js/util/mouse.js +19 -17
  147. package/src/js/util/options.js +35 -49
  148. package/src/js/util/player.js +41 -36
  149. package/src/js/util/position.js +54 -46
  150. package/src/js/util/selector.js +43 -58
  151. package/src/js/util/style.js +39 -49
  152. package/src/js/util/viewport.js +75 -64
  153. package/src/less/components/base.less +10 -33
  154. package/src/less/components/form-range.less +48 -95
  155. package/src/less/components/form.less +0 -1
  156. package/src/less/components/height.less +3 -0
  157. package/src/less/components/leader.less +0 -1
  158. package/src/less/components/lightbox.less +0 -1
  159. package/src/less/components/modal.less +3 -7
  160. package/src/less/components/progress.less +14 -36
  161. package/src/less/components/slider.less +0 -3
  162. package/src/less/components/slideshow.less +0 -3
  163. package/src/less/components/text.less +16 -32
  164. package/src/scss/components/base.scss +10 -33
  165. package/src/scss/components/form-range.scss +48 -95
  166. package/src/scss/components/form.scss +0 -1
  167. package/src/scss/components/height.scss +3 -0
  168. package/src/scss/components/leader.scss +0 -1
  169. package/src/scss/components/lightbox.scss +0 -1
  170. package/src/scss/components/modal.scss +3 -7
  171. package/src/scss/components/progress.scss +14 -36
  172. package/src/scss/components/slider.scss +0 -3
  173. package/src/scss/components/slideshow.scss +0 -3
  174. package/src/scss/components/text.scss +16 -32
  175. package/src/scss/mixins-theme.scss +1 -1
  176. package/src/scss/mixins.scss +1 -1
  177. package/src/scss/variables-theme.scss +3 -3
  178. package/src/scss/variables.scss +3 -3
  179. package/tests/align.html +10 -10
  180. package/tests/animation.html +2 -2
  181. package/tests/article.html +2 -2
  182. package/tests/base.html +3 -3
  183. package/tests/card.html +10 -10
  184. package/tests/column.html +3 -3
  185. package/tests/comment.html +9 -9
  186. package/tests/dotnav.html +3 -3
  187. package/tests/image.html +296 -64
  188. package/tests/images/image-type.avif +0 -0
  189. package/tests/images/image-type.jpeg +0 -0
  190. package/tests/images/image-type.webp +0 -0
  191. package/tests/index.html +8 -8
  192. package/tests/js/index.js +114 -85
  193. package/tests/lightbox.html +10 -10
  194. package/tests/marker.html +2 -2
  195. package/tests/modal.html +8 -9
  196. package/tests/navbar.html +2 -2
  197. package/tests/overlay.html +7 -7
  198. package/tests/parallax.html +14 -5
  199. package/tests/position.html +12 -12
  200. package/tests/slidenav.html +12 -12
  201. package/tests/slider.html +20 -20
  202. package/tests/sortable.html +1 -1
  203. package/tests/sticky-parallax.html +55 -70
  204. package/tests/svg.html +6 -6
  205. package/tests/table.html +11 -11
  206. package/tests/thumbnav.html +12 -12
  207. package/tests/transition.html +30 -30
  208. package/tests/utility.html +33 -33
  209. package/tests/video.html +1 -1
  210. package/tests/width.html +1 -1
  211. package/src/js/mixin/flex-bug.js +0 -56
  212. package/src/js/util/promise.js +0 -191
  213. package/tests/images/animated.gif +0 -0
@@ -168,8 +168,8 @@
168
168
 
169
169
  <div uk-overflow-auto="selContainer: .uk-height-medium; selContent: .js-wrapper">
170
170
  <div class="uk-grid-small" uk-grid>
171
- <div class="uk-width-1-2"><img src="images/light.jpg" alt=""></div>
172
- <div class="uk-width-1-2"><img src="images/dark.jpg" alt=""></div>
171
+ <div class="uk-width-1-2"><img src="images/light.jpg" width="1800" height="1200" alt=""></div>
172
+ <div class="uk-width-1-2"><img src="images/dark.jpg" width="1800" height="1200" alt=""></div>
173
173
  </div>
174
174
  </div>
175
175
 
@@ -188,10 +188,10 @@
188
188
 
189
189
  <div uk-overflow-auto="selContainer: .uk-height-medium; selContent: .js-wrapper">
190
190
  <div class="uk-grid-small" uk-grid>
191
- <div class="uk-width-1-2"><img src="images/light.jpg" alt=""></div>
192
- <div class="uk-width-1-2"><img src="images/dark.jpg" alt=""></div>
193
- <div class="uk-width-1-2"><img src="images/photo.jpg" alt=""></div>
194
- <div class="uk-width-1-2"><img src="images/photo2.jpg" alt=""></div>
191
+ <div class="uk-width-1-2"><img src="images/light.jpg" width="1800" height="1200" alt=""></div>
192
+ <div class="uk-width-1-2"><img src="images/dark.jpg" width="1800" height="1200" alt=""></div>
193
+ <div class="uk-width-1-2"><img src="images/photo.jpg" width="1800" height="1200" alt=""></div>
194
+ <div class="uk-width-1-2"><img src="images/photo2.jpg" width="1800" height="1200" alt=""></div>
195
195
  </div>
196
196
  </div>
197
197
 
@@ -239,7 +239,7 @@
239
239
  </div>
240
240
  <div>
241
241
  <p>Responsive Height (Image)</p>
242
- <p style="height: 100px; "><img class="uk-responsive-height" src="images/photo.jpg" alt=""></p>
242
+ <p style="height: 100px; "><img class="uk-responsive-height" src="images/photo.jpg" width="1800" height="1200" alt=""></p>
243
243
  </div>
244
244
  </div>
245
245
 
@@ -249,7 +249,7 @@
249
249
  <div>
250
250
 
251
251
  <div class="uk-inline uk-box-shadow-hover-small">
252
- <img class="uk-invisible" src="images/photo.jpg" alt="">
252
+ <img class="uk-invisible" src="images/photo.jpg" width="1800" height="1200" alt="">
253
253
  <div class="uk-position-center">Hover</div>
254
254
  </div>
255
255
 
@@ -257,7 +257,7 @@
257
257
  <div>
258
258
 
259
259
  <div class="uk-inline uk-box-shadow-small">
260
- <img class="uk-invisible" src="images/photo.jpg" alt="">
260
+ <img class="uk-invisible" src="images/photo.jpg" width="1800" height="1200" alt="">
261
261
  <div class="uk-position-center">Small</div>
262
262
  </div>
263
263
 
@@ -265,7 +265,7 @@
265
265
  <div>
266
266
 
267
267
  <div class="uk-inline uk-box-shadow-medium">
268
- <img class="uk-invisible" src="images/photo.jpg" alt="">
268
+ <img class="uk-invisible" src="images/photo.jpg" width="1800" height="1200" alt="">
269
269
  <div class="uk-position-center">Medium</div>
270
270
  </div>
271
271
 
@@ -273,7 +273,7 @@
273
273
  <div>
274
274
 
275
275
  <div class="uk-inline uk-box-shadow-large">
276
- <img class="uk-invisible" src="images/photo.jpg" alt="">
276
+ <img class="uk-invisible" src="images/photo.jpg" width="1800" height="1200" alt="">
277
277
  <div class="uk-position-center">Large</div>
278
278
  </div>
279
279
 
@@ -281,84 +281,84 @@
281
281
  <div>
282
282
 
283
283
  <div class="uk-inline uk-box-shadow-xlarge">
284
- <img class="uk-invisible" src="images/photo.jpg" alt="">
284
+ <img class="uk-invisible" src="images/photo.jpg" width="1800" height="1200" alt="">
285
285
  <div class="uk-position-center">X-Large</div>
286
286
  </div>
287
287
 
288
288
  </div>
289
289
  <div>
290
290
 
291
- <img class="uk-box-shadow-hover-xlarge" src="images/photo.jpg" alt="">
291
+ <img class="uk-box-shadow-hover-xlarge" src="images/photo.jpg" width="1800" height="1200" alt="">
292
292
 
293
293
  </div>
294
294
  <div>
295
295
 
296
- <img class="uk-box-shadow-small" src="images/photo.jpg" alt="">
296
+ <img class="uk-box-shadow-small" src="images/photo.jpg" width="1800" height="1200" alt="">
297
297
 
298
298
  </div>
299
299
  <div>
300
300
 
301
- <img class="uk-box-shadow-medium" src="images/photo.jpg" alt="">
301
+ <img class="uk-box-shadow-medium" src="images/photo.jpg" width="1800" height="1200" alt="">
302
302
 
303
303
  </div>
304
304
  <div>
305
305
 
306
- <img class="uk-box-shadow-large" src="images/photo.jpg" alt="">
306
+ <img class="uk-box-shadow-large" src="images/photo.jpg" width="1800" height="1200" alt="">
307
307
 
308
308
  </div>
309
309
  <div>
310
310
 
311
- <img class="uk-box-shadow-xlarge" src="images/photo.jpg" alt="">
311
+ <img class="uk-box-shadow-xlarge" src="images/photo.jpg" width="1800" height="1200" alt="">
312
312
 
313
313
  </div>
314
314
  <div>
315
315
 
316
- <img class="uk-box-shadow-hover-xlarge" src="images/light.jpg" alt="">
316
+ <img class="uk-box-shadow-hover-xlarge" src="images/light.jpg" width="1800" height="1200" alt="">
317
317
 
318
318
  </div>
319
319
  <div>
320
320
 
321
- <img class="uk-box-shadow-small" src="images/light.jpg" alt="">
321
+ <img class="uk-box-shadow-small" src="images/light.jpg" width="1800" height="1200" alt="">
322
322
 
323
323
  </div>
324
324
  <div>
325
325
 
326
- <img class="uk-box-shadow-medium" src="images/light.jpg" alt="">
326
+ <img class="uk-box-shadow-medium" src="images/light.jpg" width="1800" height="1200" alt="">
327
327
 
328
328
  </div>
329
329
  <div>
330
330
 
331
- <img class="uk-box-shadow-large" src="images/light.jpg" alt="">
331
+ <img class="uk-box-shadow-large" src="images/light.jpg" width="1800" height="1200" alt="">
332
332
 
333
333
  </div>
334
334
  <div>
335
335
 
336
- <img class="uk-box-shadow-xlarge" src="images/light.jpg" alt="">
336
+ <img class="uk-box-shadow-xlarge" src="images/light.jpg" width="1800" height="1200" alt="">
337
337
 
338
338
  </div>
339
339
  <div>
340
340
 
341
- <img class="uk-box-shadow-hover-xlarge" src="images/dark.jpg" alt="">
341
+ <img class="uk-box-shadow-hover-xlarge" src="images/dark.jpg" width="1800" height="1200" alt="">
342
342
 
343
343
  </div>
344
344
  <div>
345
345
 
346
- <img class="uk-box-shadow-small" src="images/dark.jpg" alt="">
346
+ <img class="uk-box-shadow-small" src="images/dark.jpg" width="1800" height="1200" alt="">
347
347
 
348
348
  </div>
349
349
  <div>
350
350
 
351
- <img class="uk-box-shadow-medium" src="images/dark.jpg" alt="">
351
+ <img class="uk-box-shadow-medium" src="images/dark.jpg" width="1800" height="1200" alt="">
352
352
 
353
353
  </div>
354
354
  <div>
355
355
 
356
- <img class="uk-box-shadow-large" src="images/dark.jpg" alt="">
356
+ <img class="uk-box-shadow-large" src="images/dark.jpg" width="1800" height="1200" alt="">
357
357
 
358
358
  </div>
359
359
  <div>
360
360
 
361
- <img class="uk-box-shadow-xlarge" src="images/dark.jpg" alt="">
361
+ <img class="uk-box-shadow-xlarge" src="images/dark.jpg" width="1800" height="1200" alt="">
362
362
 
363
363
  </div>
364
364
  </div>
@@ -369,21 +369,21 @@
369
369
  <div class="uk-width-1-6@m">
370
370
 
371
371
  <div class="uk-box-shadow-bottom">
372
- <img src="images/photo.jpg" alt="">
372
+ <img src="images/photo.jpg" width="1800" height="1200" alt="">
373
373
  </div>
374
374
 
375
375
  </div>
376
376
  <div class="uk-width-1-3@m">
377
377
 
378
378
  <div class="uk-box-shadow-bottom">
379
- <img src="images/photo.jpg" alt="">
379
+ <img src="images/photo.jpg" width="1800" height="1200" alt="">
380
380
  </div>
381
381
 
382
382
  </div>
383
383
  <div class="uk-width-1-2@m">
384
384
 
385
385
  <div class="uk-box-shadow-bottom">
386
- <img src="images/photo.jpg" alt="">
386
+ <img src="images/photo.jpg" width="1800" height="1200" alt="">
387
387
  </div>
388
388
 
389
389
  </div>
@@ -407,14 +407,14 @@
407
407
  <div>
408
408
  <p>Image</p>
409
409
  <a class="uk-logo" href="#">
410
- <img src="images/photo.jpg" width="200" alt="">
410
+ <img src="images/photo.jpg" width="200" height="133" alt="">
411
411
  </a>
412
412
  </div>
413
413
  <div>
414
414
  <p>+ Inverse Image</p>
415
415
  <a class="uk-logo" href="#">
416
- <img src="images/photo.jpg" width="200" alt="">
417
- <img class="uk-logo-inverse" src="images/dark.jpg" width="200" alt="">
416
+ <img src="images/photo.jpg" width="200" height="133" alt="">
417
+ <img class="uk-logo-inverse" src="images/dark.jpg" width="200" height="133" alt="">
418
418
  </a>
419
419
  </div>
420
420
  </div>
package/tests/video.html CHANGED
@@ -20,7 +20,7 @@
20
20
  <h3>Autoplay</h3>
21
21
 
22
22
  <button class="uk-button uk-button-default uk-margin-bottom" type="button" uk-toggle="target: +">Toggle Video</button>
23
- <video src="https://yootheme.com/site/images/media/yootheme-pro.mp4" controls playsinline uk-video="automute: true"></video>
23
+ <video src="https://yootheme.com/site/images/media/yootheme-pro.mp4" width="1920" height="1080" controls playsinline uk-video="automute: true"></video>
24
24
 
25
25
  </div>
26
26
  <div>
package/tests/width.html CHANGED
@@ -73,7 +73,7 @@
73
73
  <div><div class="uk-panel">Expand</div></div>
74
74
  <div><div class="uk-panel">Expand</div></div>
75
75
  <div><div class="uk-panel">Expandwithnonebreakingspace</div></div>
76
- <div><div class="uk-panel"><img src="images/photo.jpg" alt=""></div></div>
76
+ <div><div class="uk-panel"><img src="images/photo.jpg" width="1800" height="1200" alt=""></div></div>
77
77
  </div>
78
78
 
79
79
  <div class="uk-grid-collapse uk-grid-match uk-child-width-expand uk-margin" uk-grid>
@@ -1,56 +0,0 @@
1
- import {$$, boxModelAdjust, css, isIE, toFloat} from 'uikit-util';
2
-
3
- // IE 11 fix (min-height on a flex container won't apply to its flex items)
4
- export default isIE ? {
5
-
6
- props: {
7
- selMinHeight: String
8
- },
9
-
10
- data: {
11
- selMinHeight: false,
12
- forceHeight: false
13
- },
14
-
15
- computed: {
16
-
17
- elements({selMinHeight}, $el) {
18
- return selMinHeight ? $$(selMinHeight, $el) : [$el];
19
- }
20
-
21
- },
22
-
23
- update: [
24
-
25
- {
26
-
27
- read() {
28
- css(this.elements, 'height', '');
29
- },
30
-
31
- order: -5,
32
-
33
- events: ['resize']
34
-
35
- },
36
-
37
- {
38
-
39
- write() {
40
- this.elements.forEach(el => {
41
- const height = toFloat(css(el, 'minHeight'));
42
- if (height && (this.forceHeight || Math.round(height + boxModelAdjust(el, 'height', 'content-box')) >= el.offsetHeight)) {
43
- css(el, 'height', height);
44
- }
45
- });
46
- },
47
-
48
- order: 5,
49
-
50
- events: ['resize']
51
-
52
- }
53
-
54
- ]
55
-
56
- } : {};
@@ -1,191 +0,0 @@
1
- /* global setImmediate */
2
- import {inBrowser} from './env';
3
- import {isFunction, isObject} from './lang';
4
-
5
- export const Promise = inBrowser && window.Promise || PromiseFn;
6
-
7
- export class Deferred {
8
- constructor() {
9
- this.promise = new Promise((resolve, reject) => {
10
- this.reject = reject;
11
- this.resolve = resolve;
12
- });
13
- }
14
- }
15
-
16
- /**
17
- * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)
18
- */
19
-
20
- const RESOLVED = 0;
21
- const REJECTED = 1;
22
- const PENDING = 2;
23
-
24
- const async = inBrowser && window.setImmediate || setTimeout;
25
-
26
- function PromiseFn(executor) {
27
-
28
- this.state = PENDING;
29
- this.value = undefined;
30
- this.deferred = [];
31
-
32
- const promise = this;
33
-
34
- try {
35
- executor(
36
- x => {
37
- promise.resolve(x);
38
- },
39
- r => {
40
- promise.reject(r);
41
- }
42
- );
43
- } catch (e) {
44
- promise.reject(e);
45
- }
46
- }
47
-
48
- PromiseFn.reject = function (r) {
49
- return new PromiseFn((resolve, reject) => {
50
- reject(r);
51
- });
52
- };
53
-
54
- PromiseFn.resolve = function (x) {
55
- return new PromiseFn((resolve, reject) => {
56
- resolve(x);
57
- });
58
- };
59
-
60
- PromiseFn.all = function all(iterable) {
61
- return new PromiseFn((resolve, reject) => {
62
- const result = [];
63
- let count = 0;
64
-
65
- if (iterable.length === 0) {
66
- resolve(result);
67
- }
68
-
69
- function resolver(i) {
70
- return function (x) {
71
- result[i] = x;
72
- count += 1;
73
-
74
- if (count === iterable.length) {
75
- resolve(result);
76
- }
77
- };
78
- }
79
-
80
- for (let i = 0; i < iterable.length; i += 1) {
81
- PromiseFn.resolve(iterable[i]).then(resolver(i), reject);
82
- }
83
- });
84
- };
85
-
86
- PromiseFn.race = function race(iterable) {
87
- return new PromiseFn((resolve, reject) => {
88
- for (let i = 0; i < iterable.length; i += 1) {
89
- PromiseFn.resolve(iterable[i]).then(resolve, reject);
90
- }
91
- });
92
- };
93
-
94
- const p = PromiseFn.prototype;
95
-
96
- p.resolve = function resolve(x) {
97
- const promise = this;
98
-
99
- if (promise.state === PENDING) {
100
- if (x === promise) {
101
- throw new TypeError('Promise settled with itself.');
102
- }
103
-
104
- let called = false;
105
-
106
- try {
107
- const then = x && x.then;
108
-
109
- if (x !== null && isObject(x) && isFunction(then)) {
110
- then.call(
111
- x,
112
- x => {
113
- if (!called) {
114
- promise.resolve(x);
115
- }
116
- called = true;
117
- },
118
- r => {
119
- if (!called) {
120
- promise.reject(r);
121
- }
122
- called = true;
123
- }
124
- );
125
- return;
126
- }
127
- } catch (e) {
128
- if (!called) {
129
- promise.reject(e);
130
- }
131
- return;
132
- }
133
-
134
- promise.state = RESOLVED;
135
- promise.value = x;
136
- promise.notify();
137
- }
138
- };
139
-
140
- p.reject = function reject(reason) {
141
- const promise = this;
142
-
143
- if (promise.state === PENDING) {
144
- if (reason === promise) {
145
- throw new TypeError('Promise settled with itself.');
146
- }
147
-
148
- promise.state = REJECTED;
149
- promise.value = reason;
150
- promise.notify();
151
- }
152
- };
153
-
154
- p.notify = function notify() {
155
- async(() => {
156
- if (this.state !== PENDING) {
157
- while (this.deferred.length) {
158
- const [onResolved, onRejected, resolve, reject] = this.deferred.shift();
159
-
160
- try {
161
- if (this.state === RESOLVED) {
162
- if (isFunction(onResolved)) {
163
- resolve(onResolved.call(undefined, this.value));
164
- } else {
165
- resolve(this.value);
166
- }
167
- } else if (this.state === REJECTED) {
168
- if (isFunction(onRejected)) {
169
- resolve(onRejected.call(undefined, this.value));
170
- } else {
171
- reject(this.value);
172
- }
173
- }
174
- } catch (e) {
175
- reject(e);
176
- }
177
- }
178
- }
179
- });
180
- };
181
-
182
- p.then = function then(onResolved, onRejected) {
183
- return new PromiseFn((resolve, reject) => {
184
- this.deferred.push([onResolved, onRejected, resolve, reject]);
185
- this.notify();
186
- });
187
- };
188
-
189
- p.catch = function (onRejected) {
190
- return this.then(undefined, onRejected);
191
- };
Binary file