@blackbyte/sugar 1.0.0-beta.25 → 1.0.0-beta.27

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.
@@ -2,4 +2,4 @@ import disableTitleTooltips from './disableTitleTooltips.js';
2
2
  import features from './features.js';
3
3
  import scrollClasses from './scrollClasses.js';
4
4
  import sectionClasses from './sectionClasses.js';
5
- export { disableTitleTooltips as __disableTitleTooltips, features as __features, scrollClasses as __scrolledClasses, sectionClasses as __sectionClasses, disableTitleTooltips, features, scrollClasses, sectionClasses, };
5
+ export { disableTitleTooltips as __disableTitleTooltips, features as __features, scrollClasses as __scrollClasses, sectionClasses as __sectionClasses, disableTitleTooltips, features, scrollClasses, sectionClasses, };
@@ -2,5 +2,5 @@ import disableTitleTooltips from './disableTitleTooltips.js';
2
2
  import features from './features.js';
3
3
  import scrollClasses from './scrollClasses.js';
4
4
  import sectionClasses from './sectionClasses.js';
5
- export { disableTitleTooltips as __disableTitleTooltips, features as __features, scrollClasses as __scrolledClasses, sectionClasses as __sectionClasses, disableTitleTooltips, features, scrollClasses, sectionClasses, };
5
+ export { disableTitleTooltips as __disableTitleTooltips, features as __features, scrollClasses as __scrollClasses, sectionClasses as __sectionClasses, disableTitleTooltips, features, scrollClasses, sectionClasses, };
6
6
  //# sourceMappingURL=_exports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_exports.js","sourceRoot":"","sources":["../../../src/js/feature/_exports.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACL,oBAAoB,IAAI,sBAAsB,EAC9C,QAAQ,IAAI,UAAU,EACtB,aAAa,IAAI,iBAAiB,EAClC,cAAc,IAAI,gBAAgB,EAClC,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,cAAc,GACf,CAAC"}
1
+ {"version":3,"file":"_exports.js","sourceRoot":"","sources":["../../../src/js/feature/_exports.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAC7D,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACL,oBAAoB,IAAI,sBAAsB,EAC9C,QAAQ,IAAI,UAAU,EACtB,aAAa,IAAI,eAAe,EAChC,cAAc,IAAI,gBAAgB,EAClC,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,cAAc,GACf,CAAC"}
@@ -24,42 +24,25 @@
24
24
  * @author Olivier Bossel <olivier.bossel@gmail.com> (https://blackbyte.space)
25
25
  */
26
26
  export default function isInViewport($elm) {
27
- const scrollTop = document.documentElement.scrollTop || document.body.scrollTop, scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
28
- const containerHeight = window.innerHeight || document.documentElement.clientHeight, containerWidth = window.innerWidth || document.documentElement.clientWidth, rect = $elm.getBoundingClientRect();
29
- const top = rect.top - scrollTop, left = rect.left - scrollLeft, right = rect.right - scrollLeft, bottom = rect.bottom - scrollTop;
30
- const isTopIn = top >= 0 && top <= containerHeight, isBottomIn = bottom >= 0 && bottom <= containerHeight, isLeftIn = left >= 0 && left <= containerWidth, isRightIn = right >= 0 && right <= containerWidth;
31
- // if the element is smaller than the viewport, at least one of its corner must be in the viewport
32
- if (containerHeight <= window.innerHeight) {
33
- // if at least top|bottom AND left|right
34
- if ((isTopIn || isBottomIn) && (isLeftIn || isRightIn)) {
35
- return true;
36
- }
37
- }
38
- // is rect is bigger than viewport in all directions
39
- if (top <= 0 &&
40
- bottom >= containerHeight &&
41
- left <= 0 &&
42
- right >= containerWidth) {
43
- return true;
44
- }
45
- if (top <= 0 && bottom >= containerHeight && left <= 0 && isRightIn) {
46
- return true;
47
- }
48
- if (top <= 0 &&
49
- bottom >= containerHeight &&
50
- right >= containerWidth &&
51
- isLeftIn) {
52
- return true;
53
- }
54
- if (left <= 0 && right >= containerWidth && top <= 0 && isBottomIn) {
55
- return true;
56
- }
57
- if (left <= 0 &&
58
- right >= containerWidth &&
59
- bottom >= containerHeight &&
60
- isTopIn) {
61
- return true;
62
- }
63
- return false;
27
+ // Check if element exists
28
+ if (!$elm)
29
+ return false;
30
+ // Get the bounding rectangle of the element relative to the viewport
31
+ const rect = $elm.getBoundingClientRect();
32
+ // Get viewport dimensions
33
+ const viewportWidth = window.innerWidth || document.documentElement.clientWidth;
34
+ const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
35
+ // Check if element has zero dimensions (hidden elements)
36
+ if (rect.width === 0 || rect.height === 0)
37
+ return false;
38
+ // Check if any part of the element is visible in the viewport
39
+ // An element is in viewport if:
40
+ // - Its right edge is to the right of the viewport's left edge (rect.right > 0)
41
+ // - Its left edge is to the left of the viewport's right edge (rect.left < viewportWidth)
42
+ // - Its bottom edge is below the viewport's top edge (rect.bottom > 0)
43
+ // - Its top edge is above the viewport's bottom edge (rect.top < viewportHeight)
44
+ const horizontallyVisible = rect.right > 0 && rect.left < viewportWidth;
45
+ const verticallyVisible = rect.bottom > 0 && rect.top < viewportHeight;
46
+ return horizontallyVisible && verticallyVisible;
64
47
  }
65
48
  //# sourceMappingURL=isInViewport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isInViewport.js","sourceRoot":"","sources":["../../../src/js/is/isInViewport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,IAAiB;IACpD,MAAM,SAAS,GACX,QAAQ,CAAC,eAAe,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAC/D,UAAU,GACR,QAAQ,CAAC,eAAe,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;IAEpE,MAAM,eAAe,GACjB,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,EAC7D,cAAc,GAAG,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,EAC1E,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAEtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,EAC9B,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,EAC7B,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,EAC/B,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAEnC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,EAChD,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,eAAe,EACrD,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,cAAc,EAC9C,SAAS,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,cAAc,CAAC;IAEpD,kGAAkG;IAClG,IAAI,eAAe,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1C,wCAAwC;QACxC,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,IACE,GAAG,IAAI,CAAC;QACR,MAAM,IAAI,eAAe;QACzB,IAAI,IAAI,CAAC;QACT,KAAK,IAAI,cAAc,EACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,eAAe,IAAI,IAAI,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,GAAG,IAAI,CAAC;QACR,MAAM,IAAI,eAAe;QACzB,KAAK,IAAI,cAAc;QACvB,QAAQ,EACR,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,cAAc,IAAI,GAAG,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,IAAI,IAAI,CAAC;QACT,KAAK,IAAI,cAAc;QACvB,MAAM,IAAI,eAAe;QACzB,OAAO,EACP,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"isInViewport.js","sourceRoot":"","sources":["../../../src/js/is/isInViewport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,IAAiB;IACpD,0BAA0B;IAC1B,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,qEAAqE;IACrE,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAE1C,0BAA0B;IAC1B,MAAM,aAAa,GACjB,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC;IAC5D,MAAM,cAAc,GAClB,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC;IAE9D,yDAAyD;IACzD,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExD,8DAA8D;IAC9D,gCAAgC;IAChC,gFAAgF;IAChF,0FAA0F;IAC1F,uEAAuE;IACvE,iFAAiF;IAEjF,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IACxE,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC;IAEvE,OAAO,mBAAmB,IAAI,iBAAiB,CAAC;AAClD,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.25",
4
+ "version": "1.0.0-beta.27",
5
5
  "keywords": [
6
6
  "javascript",
7
7
  "typescript",