@design.estate/dees-domtools 2.1.0 → 2.2.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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-domtools',
6
- version: '2.1.0',
6
+ version: '2.2.0',
7
7
  description: 'A package providing tools to simplify complex CSS structures and web development tasks, featuring TypeScript support and integration with various web technologies.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHFLQUFxSztDQUNuTCxDQUFBIn0=
@@ -1,5 +1,6 @@
1
1
  import * as plugins from './domtools.plugins.js';
2
2
  import { type TViewport } from './domtools.css.breakpoints.js';
3
+ import { Scroller } from './domtools.classes.scroller.js';
3
4
  import { WebSetup } from '@push.rocks/websetup';
4
5
  import { ThemeManager } from './domtools.classes.thememanager.js';
5
6
  import { Keyboard } from './domtools.classes.keyboard.js';
@@ -34,7 +35,7 @@ export declare class DomTools {
34
35
  smarturl: typeof plugins.smarturl;
35
36
  };
36
37
  deesComms: plugins.deesComms.DeesComms;
37
- scroller: plugins.SweetScroll;
38
+ scroller: Scroller;
38
39
  themeManager: ThemeManager;
39
40
  keyboard: Keyboard;
40
41
  domToolsReady: plugins.smartpromise.Deferred<unknown>;
@@ -75,9 +75,7 @@ export class DomTools {
75
75
  smarturl: plugins.smarturl,
76
76
  };
77
77
  this.deesComms = new plugins.deesComms.DeesComms();
78
- this.scroller = new plugins.SweetScroll({
79
- /* some options */
80
- }); // TODO: switch to scroller class
78
+ this.scroller = new Scroller(this);
81
79
  this.themeManager = new ThemeManager(this);
82
80
  this.keyboard = new Keyboard(document.body);
83
81
  this.domToolsReady = plugins.smartpromise.defer();
@@ -154,4 +152,4 @@ export class DomTools {
154
152
  await this.websetup.readyPromise;
155
153
  }
156
154
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY2xhc3Nlcy5kb210b29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2RvbXRvb2xzLmNsYXNzZXMuZG9tdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQWtCLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBVzFELE1BQU0sT0FBTyxRQUFRO0lBQ25CLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNUOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBeUMsRUFBRTtRQUMzRSxJQUFJLGdCQUEwQixDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pELFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkQsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztZQUUzQyxrQ0FBa0M7WUFDbEMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLEVBQUU7Z0JBQ2pDLElBQUksUUFBUSxDQUFDLFVBQVUsS0FBSyxhQUFhLElBQUksUUFBUSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDaEYsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2RSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMs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
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY2xhc3Nlcy5kb210b29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2RvbXRvb2xzLmNsYXNzZXMuZG9tdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQWtCLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBVzFELE1BQU0sT0FBTyxRQUFRO0lBQ25CLFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNUOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBeUMsRUFBRTtRQUMzRSxJQUFJLGdCQUEwQixDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pELFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkQsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztZQUUzQyxrQ0FBa0M7WUFDbEMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLEVBQUU7Z0JBQ2pDLElBQUksUUFBUSxDQUFDLFVBQVUsS0FBSyxhQUFhLElBQUksUUFBUSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDaEYsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2RSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMs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
@@ -1,2 +1,11 @@
1
+ import type { DomTools } from './domtools.classes.domtools.js';
1
2
  export declare class Scroller {
3
+ domtoolsInstance: DomTools;
4
+ constructor(domtoolsInstanceArg: DomTools);
5
+ private sweetScroller;
6
+ scrollToElement(elementArg: HTMLElement, optionsArg: Parameters<typeof this.sweetScroller.toElement>[1]): Promise<void>;
7
+ detectNativeSmoothScroll(): Promise<boolean>;
8
+ enableLenisScroll(optionsArg?: {
9
+ disableOnNativeSmoothScroll?: boolean;
10
+ }): Promise<void>;
2
11
  }
@@ -1,4 +1,59 @@
1
1
  import * as plugins from './domtools.plugins.js';
2
2
  export class Scroller {
3
+ constructor(domtoolsInstanceArg) {
4
+ this.sweetScroller = new plugins.SweetScroll({
5
+ /* some options */
6
+ }); // TODO: switch to scroller class
7
+ this.domtoolsInstance = domtoolsInstanceArg;
8
+ }
9
+ async scrollToElement(elementArg, optionsArg) {
10
+ this.sweetScroller.toElement(elementArg, optionsArg);
11
+ await plugins.smartdelay.delayFor(optionsArg.duration);
12
+ }
13
+ async detectNativeSmoothScroll() {
14
+ const done = plugins.smartpromise.defer();
15
+ const sampleSize = 100;
16
+ const acceptableDeltaDifference = 3;
17
+ const minimumSmoothRatio = 0.75;
18
+ const eventDeltas = [];
19
+ function onWheel(event) {
20
+ eventDeltas.push(event.deltaY);
21
+ if (eventDeltas.length >= sampleSize) {
22
+ window.removeEventListener('wheel', onWheel);
23
+ analyzeEvents();
24
+ }
25
+ }
26
+ function analyzeEvents() {
27
+ const totalDiffs = eventDeltas.length - 1;
28
+ let smallDiffCount = 0;
29
+ for (let i = 0; i < totalDiffs; i++) {
30
+ const diff = Math.abs(eventDeltas[i + 1] - eventDeltas[i]);
31
+ if (diff <= acceptableDeltaDifference) {
32
+ smallDiffCount++;
33
+ }
34
+ }
35
+ const smoothRatio = smallDiffCount / totalDiffs;
36
+ if (smoothRatio >= minimumSmoothRatio) {
37
+ console.log('Smooth scrolling detected.');
38
+ done.resolve(true);
39
+ }
40
+ else {
41
+ console.log('Smooth scrolling NOT detected.');
42
+ done.resolve(false);
43
+ }
44
+ }
45
+ window.addEventListener('wheel', onWheel);
46
+ return done.promise;
47
+ }
48
+ async enableLenisScroll(optionsArg) {
49
+ const lenis = new plugins.Lenis({
50
+ autoRaf: true,
51
+ });
52
+ if (optionsArg?.disableOnNativeSmoothScroll) {
53
+ if (await this.detectNativeSmoothScroll()) {
54
+ lenis.destroy();
55
+ }
56
+ }
57
+ }
3
58
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY2xhc3Nlcy5zY3JvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2RvbXRvb2xzLmNsYXNzZXMuc2Nyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx1QkFBdUIsQ0FBQztBQUVqRCxNQUFNLE9BQU8sUUFBUTtDQUVwQiJ9
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY2xhc3Nlcy5zY3JvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2RvbXRvb2xzLmNsYXNzZXMuc2Nyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE9BQU8sTUFBTSx1QkFBdUIsQ0FBQztBQUVqRCxNQUFNLE9BQU8sUUFBUTtJQUduQixZQUNFLG1CQUE2QjtRQUt2QixrQkFBYSxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUM5QyxrQkFBa0I7U0FDbkIsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO1FBTG5DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztJQUM5QyxDQUFDO0lBTU0sS0FBSyxDQUFDLGVBQWUsQ0FDMUIsVUFBdUIsRUFDdkIsVUFBOEQ7UUFFOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxLQUFLLENBQUMsd0JBQXdCO1FBQ25DLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFXLENBQUM7UUFDbkQsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRWhDLE1BQU0sV0FBVyxHQUFhLEVBQUUsQ0FBQztRQUVqQyxTQUFTLE9BQU8sQ0FBQyxLQUFpQjtZQUNoQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUvQixJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdDLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDO1FBRUQsU0FBUyxhQUFhO1lBQ3BCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztZQUV2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxJQUFJLElBQUkseUJBQXlCLEVBQUUsQ0FBQztvQkFDdEMsY0FBYyxFQUFFLENBQUM7Z0JBQ25CLENBQUM7WUFDSCxDQUFDO1lBRUQsTUFBTSxXQUFXLEdBQUcsY0FBYyxHQUFHLFVBQVUsQ0FBQztZQUNoRCxJQUFJLFdBQVcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBc0Q7UUFDbkYsTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzlCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQztZQUM1QyxJQUFJLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQztnQkFDMUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -16,7 +16,11 @@ export class ThemeManager {
16
16
  }
17
17
  async enableAutomaticGlobalThemeChange() {
18
18
  if (document.body && document.body.style) {
19
- document.body.style.background = this.goBrightBoolean ? '#fff' : '#000';
19
+ this.themeObservable.subscribe({
20
+ next: (goBright) => {
21
+ document.body.style.background = goBright ? '#fff' : '#000';
22
+ }
23
+ });
20
24
  }
21
25
  }
22
26
  async updateAllConnectedElements() {
@@ -44,4 +48,4 @@ export class ThemeManager {
44
48
  this.updateAllConnectedElements();
45
49
  }
46
50
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY2xhc3Nlcy50aGVtZW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9kb210b29scy5jbGFzc2VzLnRoZW1lbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxLQUFLLE9BQU8sTUFBTSx1QkFBdUIsQ0FBQztBQUVqRCxNQUFNLE9BQU8sWUFBWTtJQVF2QixZQUFZLGNBQXdCO1FBTDdCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLG1DQUE4QixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUVwRixvQkFBZSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBRzFFLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDO1FBRWxDLFlBQVk7UUFDWixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUM7UUFDbkUsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzFFLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUN4QyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxLQUFLLENBQUMsZ0NBQWdDO1FBQzNDLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQywwQkFBMEI7UUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7Q0FDRiJ9
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMuY2xhc3Nlcy50aGVtZW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9kb210b29scy5jbGFzc2VzLnRoZW1lbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxLQUFLLE9BQU8sTUFBTSx1QkFBdUIsQ0FBQztBQUVqRCxNQUFNLE9BQU8sWUFBWTtJQVF2QixZQUFZLGNBQXdCO1FBTDdCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLG1DQUE4QixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUVwRixvQkFBZSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBRzFFLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDO1FBRWxDLFlBQVk7UUFDWixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUM7UUFDbkUsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzFFLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUN4QyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxLQUFLLENBQUMsZ0NBQWdDO1FBQzNDLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO2dCQUM3QixJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDakIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQzlELENBQUM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQywwQkFBMEI7UUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7Q0FDRiJ9
@@ -23,5 +23,6 @@ declare const lik: {
23
23
  FastMap: typeof FastMap;
24
24
  };
25
25
  export { lik, smartdelay, smartjson, smartmarkdown, smartpromise, smartrouter, smartrx, smarturl, smartstate, smartstring, webrequest, websetup, webstore, };
26
+ import Lenis from 'lenis';
26
27
  import SweetScroll from 'sweet-scroll';
27
- export { SweetScroll };
28
+ export { Lenis, SweetScroll };
@@ -28,6 +28,7 @@ const lik = {
28
28
  };
29
29
  export { lik, smartdelay, smartjson, smartmarkdown, smartpromise, smartrouter, smartrx, smarturl, smartstate, smartstring, webrequest, websetup, webstore, };
30
30
  // third party scope
31
+ import Lenis from 'lenis';
31
32
  import SweetScroll from 'sweet-scroll';
32
- export { SweetScroll };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2RvbXRvb2xzLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBQ3JCLE9BQU8sS0FBSyxTQUFTLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBRXJCLGtCQUFrQjtBQUNsQixPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUV4QixrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxhQUFhLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFFakQsZUFBZTtBQUNmLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pFLE1BQU0sR0FBRyxHQUFHO0lBQ1YsU0FBUztJQUNULFNBQVM7SUFDVCxPQUFPO0NBQ1IsQ0FBQztBQUVGLE9BQU8sRUFDTCxHQUFHLEVBQ0gsVUFBVSxFQUNWLFNBQVMsRUFDVCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsRUFDVixXQUFXLEVBQ1gsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEdBQ1QsQ0FBQztBQUVGLG9CQUFvQjtBQUNwQixPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUM7QUFFdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDIn0=
33
+ export { Lenis, SweetScroll };
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tdG9vbHMucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2RvbXRvb2xzLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBQ3JCLE9BQU8sS0FBSyxTQUFTLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBRXJCLGtCQUFrQjtBQUNsQixPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUV4QixrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxhQUFhLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFFakQsZUFBZTtBQUNmLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pFLE1BQU0sR0FBRyxHQUFHO0lBQ1YsU0FBUztJQUNULFNBQVM7SUFDVCxPQUFPO0NBQ1IsQ0FBQztBQUVGLE9BQU8sRUFDTCxHQUFHLEVBQ0gsVUFBVSxFQUNWLFNBQVMsRUFDVCxhQUFhLEVBQ2IsWUFBWSxFQUNaLFdBQVcsRUFDWCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsRUFDVixXQUFXLEVBQ1gsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEdBQ1QsQ0FBQztBQUVGLG9CQUFvQjtBQUNwQixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-domtools",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "private": false,
5
5
  "description": "A package providing tools to simplify complex CSS structures and web development tasks, featuring TypeScript support and integration with various web technologies.",
6
6
  "main": "dist_ts/index.js",
@@ -9,11 +9,11 @@
9
9
  "author": "Lossless GmbH",
10
10
  "license": "MIT",
11
11
  "devDependencies": {
12
- "@git.zone/tsbuild": "^2.2.0",
13
- "@git.zone/tsbundle": "^2.1.0",
14
- "@git.zone/tstest": "^1.0.90",
15
- "@push.rocks/tapbundle": "^5.5.4",
16
- "@types/node": "^22.10.5"
12
+ "@git.zone/tsbuild": "^2.2.1",
13
+ "@git.zone/tsbundle": "^2.2.5",
14
+ "@git.zone/tstest": "^1.0.96",
15
+ "@push.rocks/tapbundle": "^5.5.6",
16
+ "@types/node": "^22.12.0"
17
17
  },
18
18
  "dependencies": {
19
19
  "@api.global/typedrequest": "^3.1.10",
@@ -22,7 +22,7 @@
22
22
  "@push.rocks/smartdelay": "^3.0.5",
23
23
  "@push.rocks/smartjson": "^5.0.20",
24
24
  "@push.rocks/smartmarkdown": "^3.0.3",
25
- "@push.rocks/smartpromise": "^4.1.0",
25
+ "@push.rocks/smartpromise": "^4.2.2",
26
26
  "@push.rocks/smartrouter": "^1.3.2",
27
27
  "@push.rocks/smartrx": "^3.0.7",
28
28
  "@push.rocks/smartstate": "^2.0.19",
@@ -31,6 +31,7 @@
31
31
  "@push.rocks/webrequest": "^3.0.37",
32
32
  "@push.rocks/websetup": "^3.0.19",
33
33
  "@push.rocks/webstore": "^2.0.20",
34
+ "lenis": "^1.1.20",
34
35
  "lit": "^3.2.1",
35
36
  "sweet-scroll": "^4.0.0"
36
37
  },
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-domtools',
6
- version: '2.1.0',
6
+ version: '2.2.0',
7
7
  description: 'A package providing tools to simplify complex CSS structures and web development tasks, featuring TypeScript support and integration with various web technologies.'
8
8
  }
@@ -93,9 +93,7 @@ export class DomTools {
93
93
  };
94
94
 
95
95
  public deesComms = new plugins.deesComms.DeesComms();
96
- public scroller = new plugins.SweetScroll({
97
- /* some options */
98
- }); // TODO: switch to scroller class
96
+ public scroller = new Scroller(this);
99
97
  public themeManager = new ThemeManager(this);
100
98
  public keyboard = new Keyboard(document.body);
101
99
 
@@ -1,5 +1,77 @@
1
+ import type { DomTools } from './domtools.classes.domtools.js';
1
2
  import * as plugins from './domtools.plugins.js';
2
3
 
3
4
  export class Scroller {
4
- // TODO: move sweet scroll over to here;
5
+ public domtoolsInstance: DomTools;
6
+
7
+ constructor(
8
+ domtoolsInstanceArg: DomTools,
9
+ ) {
10
+ this.domtoolsInstance = domtoolsInstanceArg;
11
+ }
12
+
13
+ private sweetScroller = new plugins.SweetScroll({
14
+ /* some options */
15
+ }); // TODO: switch to scroller class
16
+
17
+ public async scrollToElement(
18
+ elementArg: HTMLElement,
19
+ optionsArg: Parameters<typeof this.sweetScroller.toElement>[1]
20
+ ) {
21
+ this.sweetScroller.toElement(elementArg, optionsArg);
22
+ await plugins.smartdelay.delayFor(optionsArg.duration);
23
+ }
24
+
25
+ public async detectNativeSmoothScroll() {
26
+ const done = plugins.smartpromise.defer<boolean>();
27
+ const sampleSize = 100;
28
+ const acceptableDeltaDifference = 3;
29
+ const minimumSmoothRatio = 0.75;
30
+
31
+ const eventDeltas: number[] = [];
32
+
33
+ function onWheel(event: WheelEvent) {
34
+ eventDeltas.push(event.deltaY);
35
+
36
+ if (eventDeltas.length >= sampleSize) {
37
+ window.removeEventListener('wheel', onWheel);
38
+ analyzeEvents();
39
+ }
40
+ }
41
+
42
+ function analyzeEvents() {
43
+ const totalDiffs = eventDeltas.length - 1;
44
+ let smallDiffCount = 0;
45
+
46
+ for (let i = 0; i < totalDiffs; i++) {
47
+ const diff = Math.abs(eventDeltas[i + 1] - eventDeltas[i]);
48
+ if (diff <= acceptableDeltaDifference) {
49
+ smallDiffCount++;
50
+ }
51
+ }
52
+
53
+ const smoothRatio = smallDiffCount / totalDiffs;
54
+ if (smoothRatio >= minimumSmoothRatio) {
55
+ console.log('Smooth scrolling detected.');
56
+ done.resolve(true);
57
+ } else {
58
+ console.log('Smooth scrolling NOT detected.');
59
+ done.resolve(false);
60
+ }
61
+ }
62
+
63
+ window.addEventListener('wheel', onWheel);
64
+ return done.promise;
65
+ }
66
+
67
+ public async enableLenisScroll(optionsArg?: { disableOnNativeSmoothScroll?: boolean }) {
68
+ const lenis = new plugins.Lenis({
69
+ autoRaf: true,
70
+ });
71
+ if (optionsArg?.disableOnNativeSmoothScroll) {
72
+ if (await this.detectNativeSmoothScroll()) {
73
+ lenis.destroy();
74
+ }
75
+ }
76
+ }
5
77
  }
@@ -23,7 +23,11 @@ export class ThemeManager {
23
23
 
24
24
  public async enableAutomaticGlobalThemeChange() {
25
25
  if (document.body && document.body.style) {
26
- document.body.style.background = this.goBrightBoolean ? '#fff' : '#000';
26
+ this.themeObservable.subscribe({
27
+ next: (goBright) => {
28
+ document.body.style.background = goBright ? '#fff' : '#000';
29
+ }
30
+ });
27
31
  }
28
32
  }
29
33
 
@@ -49,6 +49,7 @@ export {
49
49
  };
50
50
 
51
51
  // third party scope
52
+ import Lenis from 'lenis'
52
53
  import SweetScroll from 'sweet-scroll';
53
54
 
54
- export { SweetScroll };
55
+ export { Lenis, SweetScroll };