ravnur-player-public 3.4.4 → 3.4.5

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 (260) hide show
  1. package/dist/RavnurMediaPlayer.min.js +1 -1
  2. package/dist/cdn/RavnurMediaPlayer.min.js +1 -1
  3. package/package.json +10 -6
  4. package/.eslintignore +0 -7
  5. package/.eslintrc.js +0 -206
  6. package/.flowconfig +0 -3
  7. package/.vscode/extensions.json +0 -7
  8. package/.vscode/launch.json +0 -37
  9. package/.vscode/settings.json +0 -4
  10. package/README-Private.md +0 -54
  11. package/babel.config.js +0 -28
  12. package/bitbucket-pipelines.yml +0 -61
  13. package/cert.pem +0 -23
  14. package/demo/BaseM.mp4 +0 -0
  15. package/demo/HD.mp4 +0 -0
  16. package/demo/annotations.json +0 -50
  17. package/demo/annotations_ge.json +0 -50
  18. package/demo/base.mp3 +0 -0
  19. package/demo/cc_2125en.vtt +0 -4958
  20. package/demo/cc_en.vtt +0 -171
  21. package/demo/cc_ge.vtt +0 -178
  22. package/demo/chapters_en.vtt +0 -38
  23. package/demo/chapters_ge.vtt +0 -5
  24. package/demo/chapters_ge1.json +0 -23
  25. package/demo/hls/audio/stereo/en/128kbit.m3u8 +0 -912
  26. package/demo/hls/audio/stereo/none/128kbit.m3u8 +0 -912
  27. package/demo/hls/audio/surround/en/320kbit.m3u8 +0 -912
  28. package/demo/hls/playlist.m3u8 +0 -31
  29. package/demo/hls/video/10000kbit.m3u8 +0 -894
  30. package/demo/hls/video/1100kbit.m3u8 +0 -894
  31. package/demo/hls/video/1500kbit.m3u8 +0 -894
  32. package/demo/hls/video/250kbit.m3u8 +0 -894
  33. package/demo/hls/video/4000kbit.m3u8 +0 -894
  34. package/demo/hls/video/500kbit.m3u8 +0 -894
  35. package/demo/hls/video/6000kbit.m3u8 +0 -894
  36. package/demo/hls/video/800kbit.m3u8 +0 -894
  37. package/demo/hls.js +0 -5
  38. package/demo/hls.js.map +0 -1
  39. package/demo/hls.min.js +0 -2
  40. package/demo/hls.min.js.map +0 -1
  41. package/demo/playlist.m3u8 +0 -31
  42. package/demo/ravnur-flash-audio.swf +0 -0
  43. package/demo/ravnur-flash-video-hls.swf +0 -0
  44. package/demo/ravnur-flash-video.swf +0 -0
  45. package/demo/shaka/shaka-player.foo.debug.d.ts +0 -4532
  46. package/demo/shaka/shaka-player.foo.debug.externs.js +0 -3886
  47. package/demo/shaka/shaka-player.foo.debug.js +0 -1746
  48. package/demo/shaka/shaka-player.foo.debug.map +0 -8
  49. package/demo/shaka/wrapper.js +0 -7
  50. package/demo/test.html +0 -458
  51. package/jest.config.js +0 -4
  52. package/key.pem +0 -27
  53. package/lib/es5.js +0 -344
  54. package/lib/images/Spinner-small.gif +0 -0
  55. package/lib/images/close.png +0 -0
  56. package/lib/images/ic_check_box_black_24dp_1x.png +0 -0
  57. package/lib/images/ic_check_box_outline_blank_black_24dp_1x.png +0 -0
  58. package/lib/images/ic_chevron_left_white_24dp_1x.png +0 -0
  59. package/lib/images/ic_chevron_right_white_24dp_1x.png +0 -0
  60. package/lib/images/ic_closed_caption_white_24dp_1x.png +0 -0
  61. package/lib/images/ic_fast_forward_white_24dp_1x.png +0 -0
  62. package/lib/images/ic_fast_rewind_white_24dp_1x.png +0 -0
  63. package/lib/images/ic_fullscreen_exit_white_24dp_1x.png +0 -0
  64. package/lib/images/ic_fullscreen_white_24dp_1x.png +0 -0
  65. package/lib/images/ic_hd_white_24dp_1x.png +0 -0
  66. package/lib/images/ic_keyboard_arrow_left_black_24dp_1x.png +0 -0
  67. package/lib/images/ic_keyboard_arrow_right_black_24dp_1x.png +0 -0
  68. package/lib/images/ic_pause_white_24dp_1x.png +0 -0
  69. package/lib/images/ic_photo_white_24dp_1x.png +0 -0
  70. package/lib/images/ic_play_arrow_white_24dp_1x.png +0 -0
  71. package/lib/images/ic_refresh_white_24dp_1x.png +0 -0
  72. package/lib/images/ic_settings_white_24dp_1x.png +0 -0
  73. package/lib/images/ic_skip_next_white_24dp_1x.png +0 -0
  74. package/lib/images/ic_skip_previous_white_24dp_1x.png +0 -0
  75. package/lib/images/ic_toc_white_24dp_1x.png +0 -0
  76. package/lib/images/ic_volume_off_white_24dp_1x.png +0 -0
  77. package/lib/images/ic_volume_up_white_24dp_1x.png +0 -0
  78. package/lib/player4ie8.css +0 -225
  79. package/server.js +0 -29
  80. package/src/config/cc.js +0 -56
  81. package/src/config/i18n.js +0 -101
  82. package/src/config/options.js +0 -123
  83. package/src/config/playlist.js +0 -9
  84. package/src/config/source.js +0 -23
  85. package/src/config/statuses.js +0 -8
  86. package/src/config/styles.js +0 -16
  87. package/src/entity.js +0 -27
  88. package/src/events.js +0 -5
  89. package/src/extensions/annotations.js +0 -142
  90. package/src/extensions/audio-tarcks.js +0 -115
  91. package/src/extensions/backward.js +0 -45
  92. package/src/extensions/base.js +0 -73
  93. package/src/extensions/bottom-next.js +0 -50
  94. package/src/extensions/bottom-prev.js +0 -50
  95. package/src/extensions/buffering.js +0 -78
  96. package/src/extensions/c2pa.js +0 -350
  97. package/src/extensions/caption-search.js +0 -230
  98. package/src/extensions/cc.js +0 -874
  99. package/src/extensions/crawl.js +0 -118
  100. package/src/extensions/download.js +0 -411
  101. package/src/extensions/error.js +0 -47
  102. package/src/extensions/forward.js +0 -44
  103. package/src/extensions/fullscreen.js +0 -84
  104. package/src/extensions/help.js +0 -201
  105. package/src/extensions/helpers/FileSaver.js +0 -157
  106. package/src/extensions/helpers/clickOpener.js +0 -180
  107. package/src/extensions/helpers/opener.js +0 -30
  108. package/src/extensions/helpers/openerHeightChecker.js +0 -13
  109. package/src/extensions/helpers/popover.js +0 -33
  110. package/src/extensions/helpers/popoverPosition.js +0 -30
  111. package/src/extensions/helpers/scrollIntoView.js +0 -9
  112. package/src/extensions/helpers/storage.js +0 -20
  113. package/src/extensions/helpers/textContent.js +0 -6
  114. package/src/extensions/helpers/timeCodeToSeconds.js +0 -44
  115. package/src/extensions/helpers/transport.js +0 -43
  116. package/src/extensions/helpers/vtt-loader.js +0 -42
  117. package/src/extensions/index.js +0 -87
  118. package/src/extensions/live.js +0 -76
  119. package/src/extensions/mux.js +0 -57
  120. package/src/extensions/next-frame.js +0 -44
  121. package/src/extensions/next.js +0 -48
  122. package/src/extensions/placeholder.js +0 -241
  123. package/src/extensions/play.js +0 -102
  124. package/src/extensions/poster.js +0 -47
  125. package/src/extensions/prev-frame.js +0 -44
  126. package/src/extensions/prev.js +0 -48
  127. package/src/extensions/progress.js +0 -465
  128. package/src/extensions/resizer.js +0 -37
  129. package/src/extensions/settings.js +0 -367
  130. package/src/extensions/theater.js +0 -56
  131. package/src/extensions/title.js +0 -38
  132. package/src/extensions/toc.js +0 -334
  133. package/src/extensions/volume.js +0 -196
  134. package/src/flash/FlashPlugin.js +0 -301
  135. package/src/flash/MediaElement.js +0 -361
  136. package/src/flash/plugins.js +0 -32
  137. package/src/flash-detector.js +0 -66
  138. package/src/helpers/$t.js +0 -10
  139. package/src/helpers/binder.js +0 -11
  140. package/src/helpers/isAndroid.js +0 -5
  141. package/src/helpers/isBlackBerry.js +0 -5
  142. package/src/helpers/isCanvasSupported.js +0 -6
  143. package/src/helpers/isIE.js +0 -21
  144. package/src/helpers/isMobile.js +0 -10
  145. package/src/helpers/isWindows.js +0 -5
  146. package/src/helpers/isWindowsPhone.js +0 -5
  147. package/src/helpers/isiOS.js +0 -5
  148. package/src/html5media.js +0 -19
  149. package/src/index.js +0 -2
  150. package/src/logger.js +0 -31
  151. package/src/microevent.js +0 -65
  152. package/src/normalize-options.js +0 -139
  153. package/src/player.js +0 -864
  154. package/src/players/base.js +0 -209
  155. package/src/players/flash.js +0 -172
  156. package/src/players/hls.js +0 -278
  157. package/src/players/html.js +0 -205
  158. package/src/players/index.js +0 -59
  159. package/src/players/shaka.js +0 -219
  160. package/src/playlist.js +0 -362
  161. package/src/screenfull.js +0 -121
  162. package/src/state.js +0 -474
  163. package/src/static/es5.js +0 -344
  164. package/src/static/images/Spinner-small.gif +0 -0
  165. package/src/static/images/close.png +0 -0
  166. package/src/static/images/ic_check_box_black_24dp_1x.png +0 -0
  167. package/src/static/images/ic_check_box_outline_blank_black_24dp_1x.png +0 -0
  168. package/src/static/images/ic_chevron_left_white_24dp_1x.png +0 -0
  169. package/src/static/images/ic_chevron_right_white_24dp_1x.png +0 -0
  170. package/src/static/images/ic_closed_caption_white_24dp_1x.png +0 -0
  171. package/src/static/images/ic_fast_forward_white_24dp_1x.png +0 -0
  172. package/src/static/images/ic_fast_rewind_white_24dp_1x.png +0 -0
  173. package/src/static/images/ic_fullscreen_exit_white_24dp_1x.png +0 -0
  174. package/src/static/images/ic_fullscreen_white_24dp_1x.png +0 -0
  175. package/src/static/images/ic_hd_white_24dp_1x.png +0 -0
  176. package/src/static/images/ic_keyboard_arrow_left_black_24dp_1x.png +0 -0
  177. package/src/static/images/ic_keyboard_arrow_right_black_24dp_1x.png +0 -0
  178. package/src/static/images/ic_pause_white_24dp_1x.png +0 -0
  179. package/src/static/images/ic_play_arrow_white_24dp_1x.png +0 -0
  180. package/src/static/images/ic_refresh_white_24dp_1x.png +0 -0
  181. package/src/static/images/ic_settings_white_24dp_1x.png +0 -0
  182. package/src/static/images/ic_skip_next_white_24dp_1x.png +0 -0
  183. package/src/static/images/ic_skip_previous_white_24dp_1x.png +0 -0
  184. package/src/static/images/ic_toc_white_24dp_1x.png +0 -0
  185. package/src/static/images/ic_volume_off_white_24dp_1x.png +0 -0
  186. package/src/static/images/ic_volume_up_white_24dp_1x.png +0 -0
  187. package/src/static/player4ie8.css +0 -225
  188. package/src/styles/bplaylist.css.js +0 -124
  189. package/src/styles/index.js +0 -1966
  190. package/src/styles/playlist.css.js +0 -84
  191. package/src/styles/rplaylist.css.js +0 -98
  192. package/src/svgs.js +0 -111
  193. package/src/types/Logger.js +0 -10
  194. package/src/types/Options.js +0 -179
  195. package/src/types/Playlist.js +0 -3
  196. package/src/types/Source.js +0 -28
  197. package/src/types/State.js +0 -46
  198. package/src/types/Styles.js +0 -11
  199. package/src/types/TimeData.js +0 -8
  200. package/src/types/Translation.js +0 -69
  201. package/src/utils/absolutizeUrl.js +0 -9
  202. package/src/utils/addClass.js +0 -9
  203. package/src/utils/addEvent.js +0 -31
  204. package/src/utils/addProperty.js +0 -65
  205. package/src/utils/appendChild.js +0 -14
  206. package/src/utils/buff2hex.js +0 -5
  207. package/src/utils/contains.js +0 -33
  208. package/src/utils/createElement.js +0 -24
  209. package/src/utils/each.js +0 -34
  210. package/src/utils/escapeHTML.js +0 -8
  211. package/src/utils/existy.js +0 -4
  212. package/src/utils/extend.js +0 -17
  213. package/src/utils/filter.js +0 -16
  214. package/src/utils/find.js +0 -11
  215. package/src/utils/findIndex.js +0 -20
  216. package/src/utils/first.js +0 -5
  217. package/src/utils/get.js +0 -19
  218. package/src/utils/has.js +0 -5
  219. package/src/utils/hasClass.js +0 -6
  220. package/src/utils/head.js +0 -11
  221. package/src/utils/inRange.js +0 -16
  222. package/src/utils/index.js +0 -73
  223. package/src/utils/isArray.js +0 -4
  224. package/src/utils/isBoolean.js +0 -3
  225. package/src/utils/isElement.js +0 -7
  226. package/src/utils/isEmpty.js +0 -6
  227. package/src/utils/isEqual.js +0 -33
  228. package/src/utils/isEqualBuffer.js +0 -13
  229. package/src/utils/isFunction.js +0 -3
  230. package/src/utils/isNotEmpty.js +0 -5
  231. package/src/utils/isObject.js +0 -5
  232. package/src/utils/isString.js +0 -9
  233. package/src/utils/last.js +0 -4
  234. package/src/utils/map.js +0 -11
  235. package/src/utils/negate.js +0 -8
  236. package/src/utils/noop.js +0 -1
  237. package/src/utils/notExisty.js +0 -5
  238. package/src/utils/reduce.js +0 -8
  239. package/src/utils/remove.js +0 -7
  240. package/src/utils/removeClass.js +0 -8
  241. package/src/utils/removeEvent.js +0 -7
  242. package/src/utils/toArray.js +0 -7
  243. package/src/utils/toggleClass.js +0 -16
  244. package/src/utils/uidGenerator.js +0 -8
  245. package/src/utils/upperFirst.js +0 -4
  246. package/tests/extensions/__snapshots__/download.spec.js.snap +0 -226
  247. package/tests/extensions/__snapshots__/fullscreen.spec.js.snap +0 -30
  248. package/tests/extensions/__snapshots__/title.spec.js.snap +0 -16
  249. package/tests/extensions/download.spec.js +0 -111
  250. package/tests/extensions/fullscreen.spec.js +0 -56
  251. package/tests/extensions/title.spec.js +0 -35
  252. package/tests/mocks/assets/BaseM.mp4 +0 -0
  253. package/tests/mocks/assets/hls.min.js +0 -5
  254. package/tests/mocks/assets/styleMock.js +0 -1
  255. package/tests/mocks/base-player-options.js +0 -47
  256. package/tests/mocks/sources.js +0 -58
  257. package/tests/mocks/timedata/cc_en.vtt +0 -171
  258. package/tests/mocks/timedata/cc_ge.vtt +0 -178
  259. package/tests/utils/wait.js +0 -1
  260. package/webpack.config.js +0 -78
@@ -1,9 +0,0 @@
1
- // @flow
2
- import hasClass from './hasClass';
3
-
4
- export default function addClass(element: HTMLElement, cls: string) {
5
- if (hasClass(element, cls)) {
6
- return;
7
- }
8
- element.className += ' ' + cls;
9
- }
@@ -1,31 +0,0 @@
1
- // add event cross browser
2
- export default function addEvent(elem, event, fn, useCapture = false) {
3
- if (elem.addEventListener) {
4
- elem.addEventListener(event, listenHandler, useCapture);
5
- return { elem, handler: listenHandler, event };
6
- }
7
- elem.attachEvent('on' + event, attachHandler);
8
- return { elem, handler: attachHandler, event };
9
-
10
- // avoid memory overhead of new anonymous functions for every event handler that's installed
11
- // by using local functions
12
- function listenHandler(e) {
13
- var ret = fn.apply(elem, arguments);
14
- if (ret === false) {
15
- e.stopPropagation();
16
- e.preventDefault();
17
- }
18
- return ret;
19
- }
20
-
21
- function attachHandler() {
22
- // set the this pointer same as addEventListener when fn is called
23
- // and make sure the event is passed to the fn also so that works the same too
24
- var ret = fn.call(elem, window.event);
25
- if (ret === false) {
26
- window.event.returnValue = false;
27
- window.event.cancelBubble = true;
28
- }
29
- return ret;
30
- }
31
- }
@@ -1,65 +0,0 @@
1
- /**
2
- * add property to object
3
- *
4
- * @param {Object} obj object
5
- * @param {String} name name of property
6
- * @param {Function} onGet get's function
7
- * @param {Function} onSet set's function
8
- * @returns {void}
9
- */
10
- export default function addProperty(obj, name, onGet, onSet) {
11
-
12
- // wrapper functions
13
- const
14
- oldValue = obj[name],
15
- getFn = () => onGet.apply(obj, [oldValue]),
16
- setFn = newValue => onSet.apply(obj, [newValue]);
17
-
18
- // Modern browsers, IE9+ (IE8 only works on DOM objects, not normal JS objects)
19
- if (Object.defineProperty) {
20
-
21
- Object.defineProperty(obj, name, {
22
- get: getFn,
23
- set: setFn
24
- });
25
-
26
- // Older Firefox
27
- } else if (obj.__defineGetter__) {
28
-
29
- obj.__defineGetter__(name, getFn);
30
- obj.__defineSetter__(name, setFn);
31
-
32
- // IE6-7
33
- // must be a real DOM object (to have attachEvent) and must be attached to document (for onpropertychange to fire)
34
- } else {
35
-
36
- const onPropertyChange = (event) => {
37
-
38
- if (event.propertyName === name) {
39
-
40
- // temporarily remove the event so it doesn't fire again and create a loop
41
- obj.detachEvent('onpropertychange', onPropertyChange);
42
-
43
- // get the changed value, run it through the set function
44
- setFn(obj[name]);
45
-
46
- // restore the get function
47
- obj[name] = getFn;
48
- obj[name].toString = () => getFn().toString();
49
-
50
- // restore the event
51
- obj.attachEvent('onpropertychange', onPropertyChange);
52
- }
53
- };
54
-
55
- try {
56
- obj[name] = getFn;
57
- obj[name].toString = () => getFn().toString();
58
- } catch (ex) {
59
- //
60
- }
61
-
62
- // add the property event change only once
63
- obj.attachEvent('onpropertychange', onPropertyChange);
64
- }
65
- }
@@ -1,14 +0,0 @@
1
- // @flow
2
- import existy from './existy';
3
- import isElement from './isElement';
4
-
5
- /* Append child node */
6
- export default function append(parent: Node, child: Node, before: ?Node) {
7
- if (!parent) return;
8
-
9
- if (existy(before) && isElement(before)) {
10
- parent.insertBefore(child, before);
11
- } else {
12
- parent.appendChild(child);
13
- }
14
- }
@@ -1,5 +0,0 @@
1
- export default function buf2hex(buffer) {
2
- return [...new Uint8Array(buffer)]
3
- .map(x => x.toString(16).padStart(2, '0'))
4
- .join(' ');
5
- }
@@ -1,33 +0,0 @@
1
- import isString from './isString';
2
- import isFunction from './isFunction';
3
-
4
- /**
5
- * check if item contains in some array
6
- *
7
- * @export
8
- * @param {Array|String} etalon array
9
- * @param {Function|String} cond condition
10
- * @returns {Boolean} `true` if item contains in array
11
- */
12
- export default function contains(etalon, cond) {
13
- if (isString(etalon) && isString(cond)) {
14
- return _containsInString(etalon, cond);
15
- }
16
- const condFnc = isFunction(cond) ? cond : obj => obj === cond;
17
- return _containsInArray(etalon, condFnc);
18
- }
19
-
20
- function _containsInString(string, substring) {
21
- // eslint-disable-next-line no-magic-numbers
22
- return string.indexOf(substring) > -1;
23
- }
24
-
25
- function _containsInArray(array, cond) {
26
- for (let i = 0; i < array.length; i++) {
27
- if (cond(array[i])) {
28
- return true;
29
- }
30
- }
31
-
32
- return false;
33
- }
@@ -1,24 +0,0 @@
1
- import each from './each';
2
- import append from './appendChild';
3
- import isElement from './isElement';
4
- import existy from './existy';
5
-
6
- export default function createElement(tagName, props = {}, parent = null, namespace = 'http://www.w3.org/1999/xhtml') {
7
-
8
- let el;
9
- if ( existy(document.createElementNS) ) {
10
- el = document.createElementNS(namespace, tagName);
11
- } else {
12
- el = document.createElement(tagName);
13
- }
14
-
15
- each(props, (val, key) => {
16
- el.setAttribute(key, val);
17
- });
18
-
19
- if ( existy(parent) && isElement(parent) ) {
20
- append(parent, el);
21
- }
22
-
23
- return el;
24
- }
package/src/utils/each.js DELETED
@@ -1,34 +0,0 @@
1
- // @flow
2
- // import isArray from './isArray';
3
- // import isObject from './isObject';
4
- import has from './has';
5
-
6
- type ObjMap<T> = {
7
- [key: $Subtype<string>]: T
8
- }
9
-
10
- type Iterable<T> = Array<T> | ObjMap<T>
11
- type Callback<T> = (T, number | string, Iterable<T>) => void
12
-
13
- export default function each<T>(iterable: Iterable<T>, callback: Callback<T>) {
14
- if (iterable instanceof Array) {
15
- eachOfArray(iterable, callback);
16
- } else {
17
- eachOfObject(iterable, callback);
18
- }
19
- }
20
-
21
- function eachOfObject<T>(obj: ObjMap<T>, callback: Callback<T>) {
22
- // eslint-disable-next-line no-unused-vars
23
- for (const key in obj) {
24
- if (has(obj, key)) {
25
- callback(obj[key], key, obj);
26
- }
27
- }
28
- }
29
-
30
- function eachOfArray<T>(arr: T[], callback: Callback<T>) {
31
- for (let i = 0; i < arr.length; i++) {
32
- callback(arr[i], i, arr);
33
- }
34
- }
@@ -1,8 +0,0 @@
1
- /**
2
- *
3
- * @param {String} text text for escape
4
- * @return {String} escaped text
5
- */
6
- export default function escapeHTML(text) {
7
- return text.toString().split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
8
- }
@@ -1,4 +0,0 @@
1
- export default function existy(arg) {
2
- // eslint-disable-next-line
3
- return arg != null;
4
- }
@@ -1,17 +0,0 @@
1
- import each from './each';
2
- import notExisty from './notExisty';
3
-
4
- // Merge the contents of two or more objects together into the first object
5
- export default function extend(target, ...args) {
6
- each(args, options => {
7
- if (notExisty(options)) {
8
- return;
9
- }
10
- each(options, (val, key) => {
11
- target[key] = val;
12
- });
13
- });
14
-
15
- // Return the modified object
16
- return target;
17
- }
@@ -1,16 +0,0 @@
1
- // @flow
2
-
3
- import isNotEmpty from './isNotEmpty';
4
- import each from './each';
5
-
6
- export default function filter<T>(array: T[], cond?: (T) => boolean = isNotEmpty): T[] {
7
- const res = [];
8
-
9
- each(array, o => {
10
- if (cond(o)) {
11
- res.push(o);
12
- }
13
- });
14
-
15
- return res;
16
- }
package/src/utils/find.js DELETED
@@ -1,11 +0,0 @@
1
- // @flow
2
- export default function find<T>(array: T[], cond: (T) => boolean ): ?T {
3
- for (let i = 0; i < array.length; i++) {
4
- const item = array[i];
5
- if (cond(item)) {
6
- return item;
7
- }
8
- }
9
-
10
- return null;
11
- }
@@ -1,20 +0,0 @@
1
- import isFunction from './isFunction';
2
-
3
- const NON_FOUND_IDX = -1;
4
-
5
- /**
6
- * Find index of element by condition
7
- * @export
8
- * @param {Array} array array
9
- * @param {Function|Object} condition some condition
10
- * @returns {Number} index of object, or `-1` if cond not returned true
11
- */
12
- export default function findIndex(array, condition) {
13
- const cond = isFunction(condition) ? condition : (c) => c === condition;
14
- for (let i = 0; i < array.length; i++) {
15
- if (cond(array[i])) {
16
- return i;
17
- }
18
- }
19
- return NON_FOUND_IDX;
20
- }
@@ -1,5 +0,0 @@
1
- const FIRST_ID = 0;
2
-
3
- export default function first(arr) {
4
- return arr[FIRST_ID];
5
- }
package/src/utils/get.js DELETED
@@ -1,19 +0,0 @@
1
- import existy from './existy';
2
-
3
- /**
4
- * Get valur fromm object by path
5
- * @export
6
- * @param {Object} source object
7
- * @param {String} path path to props (use `.` as delim)
8
- * @param {any} defaultValue return this attr if result is not exists
9
- * @returns {any} value
10
- */
11
- export default function get(source, path = '', defaultValue = null) {
12
- const pathes = path.split('.');
13
-
14
- while (existy(source) && pathes.length) {
15
- source = source[pathes.shift()];
16
- }
17
-
18
- return existy(source) ? source : defaultValue;
19
- }
package/src/utils/has.js DELETED
@@ -1,5 +0,0 @@
1
- const hasOwn = Object.prototype.hasOwnProperty;
2
-
3
- export default function has(obj, prop) {
4
- return hasOwn.call(obj, prop);
5
- }
@@ -1,6 +0,0 @@
1
- // @flow
2
- export default function hasClass(element: HTMLElement, cls: string) {
3
- if (!element) return false;
4
-
5
- return !!element.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
6
- }
package/src/utils/head.js DELETED
@@ -1,11 +0,0 @@
1
- const HEAD_IDX = 0;
2
-
3
- /**
4
- * Get first element from array
5
- * @export
6
- * @param {Array} arr array
7
- * @returns {any} first element
8
- */
9
- export default function head(arr) {
10
- return arr[HEAD_IDX];
11
- }
@@ -1,16 +0,0 @@
1
- const DEFAULT_MIN = 0;
2
- const DEFAULT_MAX = Number.MAX_VALUE;
3
-
4
- /**
5
- * Checks if n is between start and up to, but not including, end. If end is not specified,
6
- * it's set to start with start then set to 0.
7
- * If start is greater than end the params are swapped to support negative ranges.
8
- * @export
9
- * @param {number} number The number to check.
10
- * @param {number} [from=0] The start of the range.
11
- * @param {number} [to] The end of the range.
12
- * @returns {Boolean} Returns true if number is in the range, else false.
13
- */
14
- export default function inRange(number, from = DEFAULT_MIN, to = DEFAULT_MAX) {
15
- return number >= from && number < to;
16
- }
@@ -1,73 +0,0 @@
1
- // @flow
2
- import isElement from './isElement';
3
- import isArray from './isArray';
4
- import isObject from './isObject';
5
- import isString from './isString';
6
- import isFunction from './isFunction';
7
- import isBoolean from './isBoolean';
8
- import isEqual from './isEqual';
9
- import isEqualBuffer from './isEqualBuffer';
10
-
11
- // utils
12
- import noop from './noop';
13
- import inRange from './inRange';
14
- import existy from './existy';
15
- import negate from './negate';
16
- import notExisty from './notExisty';
17
- import isEmpty from './isEmpty';
18
- import isNotEmpty from './isNotEmpty';
19
- import absolutizeUrl from './absolutizeUrl';
20
- import escapeHTML from './escapeHTML';
21
- import uidGenerator from './uidGenerator';
22
-
23
- // DOM
24
- import createElement from './createElement';
25
- import addEvent from './addEvent';
26
- import removeEvent from './removeEvent';
27
- import addClass from './addClass';
28
- import hasClass from './hasClass';
29
- import removeClass from './removeClass';
30
- import toggleClass from './toggleClass';
31
- import append from './appendChild';
32
-
33
- // collections
34
- import each from './each';
35
- import contains from './contains';
36
- import filter from './filter';
37
- import find from './find';
38
- import map from './map';
39
-
40
- // array
41
- import head from './head';
42
- import last from './last';
43
- import first from './first';
44
- import findIndex from './findIndex';
45
- import remove from './remove';
46
- import toArray from './toArray';
47
- import reduce from './reduce';
48
-
49
- // Object
50
- import has from './has';
51
- import extend from './extend';
52
- import get from './get';
53
- import addProperty from './addProperty';
54
-
55
- // String
56
- import upperFirst from './upperFirst';
57
-
58
- export {
59
- isArray, isElement, isObject, isString, isFunction, isBoolean, isEqual, isEqualBuffer,
60
-
61
- noop, existy, negate, notExisty, isEmpty, isNotEmpty, inRange, absolutizeUrl, escapeHTML,
62
- uidGenerator,
63
-
64
- createElement, append, addEvent, removeEvent, hasClass, addClass, removeClass, toggleClass,
65
-
66
- each, contains, filter, find, map, reduce,
67
-
68
- head, findIndex, first, last, remove, toArray,
69
-
70
- has, extend, get, addProperty,
71
-
72
- upperFirst
73
- };
@@ -1,4 +0,0 @@
1
- // @flow
2
- export default function isArray(arr: mixed): boolean {
3
- return Array.isArray(arr);
4
- }
@@ -1,3 +0,0 @@
1
- export default function isBoolean(b) {
2
- return b === true || b === false;
3
- }
@@ -1,7 +0,0 @@
1
- export default function isElement(node) {
2
- try {
3
- return node instanceof Element;
4
- } catch (e) {
5
- return !!node.nodeName;
6
- }
7
- }
@@ -1,6 +0,0 @@
1
- // @flow
2
- import notExisty from './notExisty';
3
-
4
- export default function isEmpty(val: mixed): boolean {
5
- return notExisty(val) || val instanceof Array && !val.length || typeof val === 'string' && !val.length;
6
- }
@@ -1,33 +0,0 @@
1
- import isArray from './isArray';
2
- import contains from './contains';
3
- import isObject from './isObject';
4
- import reduce from './reduce';
5
-
6
- export default function isEqual(value, other) {
7
- if (value === other) {
8
- return true;
9
- }
10
-
11
- if ( isArray(value) && isArray(other) ) {
12
- if ( value.length !== other.length ) {
13
- return false;
14
- }
15
-
16
- return reduce(value, (memo, o) => memo && contains(other, o), true);
17
- }
18
-
19
- if ( isObject(value) && isObject(other) ) {
20
- const valueKeys = Object.keys(value);
21
- const otherKeys = Object.keys(other);
22
-
23
- if ( !isEqual(valueKeys, otherKeys) ) {
24
- return false;
25
- }
26
-
27
- return reduce(value, (memo, v, k) => {
28
- return memo && isEqual(v, other[k]);
29
- }, true);
30
- }
31
-
32
- return false;
33
- }
@@ -1,13 +0,0 @@
1
- export default function isEqualBuffer(value, other) {
2
- if (value.byteLength !== other.byteLength) {
3
- return false;
4
- }
5
-
6
- for (let i = 0; i < value.length; i++) {
7
- if (value[i] !== other[i]) {
8
- return false;
9
- }
10
- }
11
-
12
- return true;
13
- }
@@ -1,3 +0,0 @@
1
- export default function isFunction(obj) {
2
- return typeof obj === 'function';
3
- }
@@ -1,5 +0,0 @@
1
- // @flow
2
- import isEmpty from './isEmpty';
3
- import negate from './negate';
4
-
5
- export default negate(isEmpty);
@@ -1,5 +0,0 @@
1
- import isArray from './isArray';
2
-
3
- export default function isObject(obj) {
4
- return obj && typeof obj === 'object' && isArray(obj) === false;
5
- }
@@ -1,9 +0,0 @@
1
- /**
2
- * Checks if `value` is classified as a `String` primitive or object.
3
- *
4
- * @param {*} value The value to check.
5
- * @returns {boolean} Returns `true` if `value` is a string, else `false`.
6
- */
7
- export default function isString(value) {
8
- return typeof value === 'string';
9
- }
package/src/utils/last.js DELETED
@@ -1,4 +0,0 @@
1
- export default function last(arr) {
2
- // eslint-disable-next-line no-magic-numbers
3
- return arr[arr.length - 1];
4
- }
package/src/utils/map.js DELETED
@@ -1,11 +0,0 @@
1
- // @flow
2
- import each from './each';
3
-
4
- type Callback<T, K> = (T, number, Array<T>) => K
5
-
6
- export default function map<T, K>(array: Array<T>, callback: Callback<T, K>): Array<K> {
7
- const memo = [];
8
- // $FlowFixMe
9
- each(array, (val, key, arr) => memo.push(callback(val, key, arr)) );
10
- return memo;
11
- }
@@ -1,8 +0,0 @@
1
- // @flow
2
-
3
- export default function negate(predicate: (any) => boolean): (any) => boolean {
4
- return (e: any) => {
5
- return !predicate(e);
6
- // return !predicate.apply(null, args);
7
- };
8
- }
package/src/utils/noop.js DELETED
@@ -1 +0,0 @@
1
- export default function noop() { /* */ }
@@ -1,5 +0,0 @@
1
- // @flow
2
- import existy from './existy';
3
- import negate from './negate';
4
-
5
- export default negate(existy);
@@ -1,8 +0,0 @@
1
- import each from './each';
2
-
3
- export default function reduce(iterable, callback, memo = null) {
4
- each( iterable, (val, key, it) => {
5
- memo = callback(memo, val, key, it);
6
- });
7
- return memo;
8
- }
@@ -1,7 +0,0 @@
1
- /* eslint no-magic-numbers: 0 */
2
- export default function remove(array, item) {
3
- const idx = array.indexOf(item);
4
- if ( idx >= 0 ) {
5
- array.splice(idx, 1);
6
- }
7
- }
@@ -1,8 +0,0 @@
1
- import hasClass from './hasClass';
2
-
3
- export default function removeClass(element, cls) {
4
- if (hasClass(element, cls)) {
5
- var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
6
- element.className = element.className.replace(reg, ' ').trim();
7
- }
8
- }
@@ -1,7 +0,0 @@
1
- export default function removeEvent(token) {
2
- if (token.elem.removeEventListener) {
3
- token.elem.removeEventListener(token.event, token.handler);
4
- } else {
5
- token.elem.detachEvent('on' + token.event, token.handler);
6
- }
7
- }
@@ -1,7 +0,0 @@
1
- export default function toArray(arrayLike) {
2
- const res = [];
3
- for (let i = 0; i < arrayLike.length; i++) {
4
- res.push(arrayLike[i]);
5
- }
6
- return res;
7
- }
@@ -1,16 +0,0 @@
1
- import hasClass from './hasClass';
2
- import addClass from './addClass';
3
- import removeClass from './removeClass';
4
- import notExisty from './notExisty';
5
-
6
- export default function toggleClass(el, className, state) {
7
- if ( notExisty(state) ) {
8
- state = !hasClass(el, className);
9
- }
10
-
11
- if (state) {
12
- addClass(el, className);
13
- } else {
14
- removeClass(el, className);
15
- }
16
- }