@blackbyte/sugar 1.0.0-beta.17 → 1.0.0-beta.19

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.
@@ -12,6 +12,9 @@
12
12
  * @feature Some settings available to tweak the behavior
13
13
  *
14
14
  * @setting {String} [offset='10px'] An offset to detect sooner or later the element entering in the viewport
15
+ * @setting {Function} [whenIn] A callback function to call when the element enter the viewport
16
+ * @setting {Function} [whenOut] A callback function to call when the element leave the viewport
17
+ * @setting {Boolean} [once=true] Specify if the promise should be resolved only once (the first time the element enter the viewport)
15
18
  *
16
19
  * @param {HTMLElement} $elm The element to monitor
17
20
  * @param {Partial<TWhenInViewportSettings>} [settings={}] Some settings to tweak the detection behavior
@@ -1,10 +1,21 @@
1
+ import { isInViewport } from '@blackbyte/sugar/is';
1
2
  import uniqid from '../../string/uniqid.js';
2
3
  const whenInViewportStatuses = new WeakMap();
3
4
  class CancelablePromise extends Promise {
4
5
  cancel() { }
5
6
  }
6
7
  export default function whenInViewport($elm, settings) {
8
+ var _a;
7
9
  const finalSettings = Object.assign({ offset: '10px', once: true, whenIn: undefined, whenOut: undefined }, (settings !== null && settings !== void 0 ? settings : {}));
10
+ // if the element is already in the viewport, resolve immediately
11
+ if (isInViewport($elm)) {
12
+ // trigger the "whenIn" callback
13
+ (_a = finalSettings.whenIn) === null || _a === void 0 ? void 0 : _a.call(finalSettings, $elm);
14
+ // stop here if the "once" setting is true
15
+ if (finalSettings.once) {
16
+ return Promise.resolve($elm);
17
+ }
18
+ }
8
19
  let observer;
9
20
  function getRootMargin() {
10
21
  return [
@@ -1 +1 @@
1
- {"version":3,"file":"whenInViewport.js","sourceRoot":"","sources":["../../../../src/js/dom/when/whenInViewport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whenInViewport.js","sourceRoot":"","sources":["../../../../src/js/dom/when/whenInViewport.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ import getVimeoVideoIdFromUrl from './getVimeoVideoIdFromUrl.js';
1
2
  import getYoutubeVideoIdFromUrl from './getYoutubeVideoIdFromUrl.js';
2
3
  import gravatarUrl from './gravatarUrl.js';
3
4
  import parseSchema from './parseSchema.js';
4
5
  import queryStringToObject from './queryStringToObject.js';
5
6
  import urlFromString from './urlFromString.js';
6
- export { getYoutubeVideoIdFromUrl as __getYoutubeVideoIdFromUrl, gravatarUrl as __gravatarUrl, parseSchema as __parseSchema, queryStringToObject as __queryStringToObject, urlFromString as __urlFromString, getYoutubeVideoIdFromUrl, gravatarUrl, parseSchema, queryStringToObject, urlFromString, };
7
+ export { getVimeoVideoIdFromUrl as __getVimeoVideoIdFromUrl, getYoutubeVideoIdFromUrl as __getYoutubeVideoIdFromUrl, gravatarUrl as __gravatarUrl, parseSchema as __parseSchema, queryStringToObject as __queryStringToObject, urlFromString as __urlFromString, getVimeoVideoIdFromUrl, getYoutubeVideoIdFromUrl, gravatarUrl, parseSchema, queryStringToObject, urlFromString, };
@@ -1,7 +1,8 @@
1
+ import getVimeoVideoIdFromUrl from './getVimeoVideoIdFromUrl.js';
1
2
  import getYoutubeVideoIdFromUrl from './getYoutubeVideoIdFromUrl.js';
2
3
  import gravatarUrl from './gravatarUrl.js';
3
4
  import parseSchema from './parseSchema.js';
4
5
  import queryStringToObject from './queryStringToObject.js';
5
6
  import urlFromString from './urlFromString.js';
6
- export { getYoutubeVideoIdFromUrl as __getYoutubeVideoIdFromUrl, gravatarUrl as __gravatarUrl, parseSchema as __parseSchema, queryStringToObject as __queryStringToObject, urlFromString as __urlFromString, getYoutubeVideoIdFromUrl, gravatarUrl, parseSchema, queryStringToObject, urlFromString, };
7
+ export { getVimeoVideoIdFromUrl as __getVimeoVideoIdFromUrl, getYoutubeVideoIdFromUrl as __getYoutubeVideoIdFromUrl, gravatarUrl as __gravatarUrl, parseSchema as __parseSchema, queryStringToObject as __queryStringToObject, urlFromString as __urlFromString, getVimeoVideoIdFromUrl, getYoutubeVideoIdFromUrl, gravatarUrl, parseSchema, queryStringToObject, urlFromString, };
7
8
  //# sourceMappingURL=_exports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_exports.js","sourceRoot":"","sources":["../../../src/shared/url/_exports.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EACL,wBAAwB,IAAI,0BAA0B,EACtD,WAAW,IAAI,aAAa,EAC5B,WAAW,IAAI,aAAa,EAC5B,mBAAmB,IAAI,qBAAqB,EAC5C,aAAa,IAAI,eAAe,EAChC,wBAAwB,EACxB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,GACd,CAAC"}
1
+ {"version":3,"file":"_exports.js","sourceRoot":"","sources":["../../../src/shared/url/_exports.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EACL,sBAAsB,IAAI,wBAAwB,EAClD,wBAAwB,IAAI,0BAA0B,EACtD,WAAW,IAAI,aAAa,EAC5B,WAAW,IAAI,aAAa,EAC5B,mBAAmB,IAAI,qBAAqB,EAC5C,aAAa,IAAI,eAAe,EAChC,sBAAsB,EACtB,wBAAwB,EACxB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,GACd,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @name getVimeoVideoIdFromUrl
3
+ * @namespace shared.url
4
+ * @type Function
5
+ * @platform js
6
+ * @platform node
7
+ * @status stable
8
+ *
9
+ * Return a Vimeo video ID extracted from the given URL
10
+ *
11
+ * @param {String} url The Vimeo video URL
12
+ * @return {String|null} The extracted video ID or null if not found
13
+ *
14
+ * @todo tests
15
+ *
16
+ * @snippet getVimeoVideoIdFromUrl($1)
17
+ *
18
+ * @example js
19
+ * import { getVimeoVideoIdFromUrl } from '@blackbyte/sugar/url';
20
+ * getVimeoVideoIdFromUrl('https://vimeo.com/123456789'); // 123456789
21
+ *
22
+ * @see https://stackoverflow.com/questions/10488943/easy-way-to-get-vimeo-id-from-a-vimeo-url
23
+ * @since 1.0.0
24
+ * @author Olivier Bossel <olivier.bossel@gmail.com> (https://blackbyte.space)
25
+ */
26
+ export default function getVimeoVideoIdFromUrl(url: string): string | null;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @name getVimeoVideoIdFromUrl
3
+ * @namespace shared.url
4
+ * @type Function
5
+ * @platform js
6
+ * @platform node
7
+ * @status stable
8
+ *
9
+ * Return a Vimeo video ID extracted from the given URL
10
+ *
11
+ * @param {String} url The Vimeo video URL
12
+ * @return {String|null} The extracted video ID or null if not found
13
+ *
14
+ * @todo tests
15
+ *
16
+ * @snippet getVimeoVideoIdFromUrl($1)
17
+ *
18
+ * @example js
19
+ * import { getVimeoVideoIdFromUrl } from '@blackbyte/sugar/url';
20
+ * getVimeoVideoIdFromUrl('https://vimeo.com/123456789'); // 123456789
21
+ *
22
+ * @see https://stackoverflow.com/questions/10488943/easy-way-to-get-vimeo-id-from-a-vimeo-url
23
+ * @since 1.0.0
24
+ * @author Olivier Bossel <olivier.bossel@gmail.com> (https://blackbyte.space)
25
+ */
26
+ export default function getVimeoVideoIdFromUrl(url) {
27
+ const regex = /(https?:\/\/)?(www.)?(player.)?vimeo.com\/([a-z]*\/)*([0-9]{6,11})[?]?.*/;
28
+ const match = url.match(regex);
29
+ if (!(match === null || match === void 0 ? void 0 : match[0])) {
30
+ return null;
31
+ }
32
+ return match[5];
33
+ }
34
+ //# sourceMappingURL=getVimeoVideoIdFromUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVimeoVideoIdFromUrl.js","sourceRoot":"","sources":["../../../src/shared/url/getVimeoVideoIdFromUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,GAAW;IACxD,MAAM,KAAK,GACT,0EAA0E,CAAC;IAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,CAAA,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAW,CAAC;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@blackbyte/sugar",
3
3
  "description": "The toolkit that you missed... like a sugar in your coffee!",
4
- "version": "1.0.0-beta.17",
4
+ "version": "1.0.0-beta.19",
5
5
  "keywords": [
6
6
  "javascript",
7
7
  "typescript",