vevet 4.2.0 → 4.3.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.
- package/README.md +1 -1
- package/lib/cjs/Vevet/events/createOnPageLoad/index.js +2 -2
- package/lib/cjs/Vevet/events/createOnPageLoad/index.js.map +1 -1
- package/lib/cjs/Vevet/events/createViewport/index.js +2 -2
- package/lib/cjs/Vevet/events/createViewport/index.js.map +1 -1
- package/lib/cjs/Vevet/events/createViewport/viewportCssVarsScript.js +5 -0
- package/lib/cjs/Vevet/events/createViewport/viewportCssVarsScript.js.map +1 -0
- package/lib/cjs/Vevet/exported.js +3 -0
- package/lib/cjs/Vevet/exported.js.map +1 -1
- package/lib/cjs/base/Module/index.js +6 -10
- package/lib/cjs/base/Module/index.js.map +1 -1
- package/lib/cjs/components/CustomCursor/index.js +19 -14
- package/lib/cjs/components/CustomCursor/index.js.map +1 -1
- package/lib/cjs/components/CustomScroll/Elements.js +11 -22
- package/lib/cjs/components/CustomScroll/Elements.js.map +1 -1
- package/lib/cjs/components/CustomScroll/index.js +2 -2
- package/lib/cjs/components/CustomScroll/index.js.map +1 -1
- package/lib/cjs/components/CustomScrollKeyboardPlugin/index.js +2 -2
- package/lib/cjs/components/CustomScrollKeyboardPlugin/index.js.map +1 -1
- package/lib/cjs/components/DraggerBase/index.js +11 -8
- package/lib/cjs/components/DraggerBase/index.js.map +1 -1
- package/lib/cjs/components/DraggerMove/index.js +3 -3
- package/lib/cjs/components/DraggerMove/index.js.map +1 -1
- package/lib/cjs/components/Marquee/index.js +2 -2
- package/lib/cjs/components/Marquee/index.js.map +1 -1
- package/lib/cjs/components/Preloader/index.js +2 -2
- package/lib/cjs/components/Preloader/index.js.map +1 -1
- package/lib/cjs/components/ProgressPreloader/index.js +4 -4
- package/lib/cjs/components/ProgressPreloader/index.js.map +1 -1
- package/lib/cjs/components/ScrollBar/Bar/index.js +4 -4
- package/lib/cjs/components/ScrollBar/Bar/index.js.map +1 -1
- package/lib/cjs/components/ScrollBar/index.js +2 -2
- package/lib/cjs/components/ScrollBar/index.js.map +1 -1
- package/lib/cjs/components/SectionScrollProgress/index.js +3 -3
- package/lib/cjs/components/SectionScrollProgress/index.js.map +1 -1
- package/lib/cjs/components/SplitText/index.js +2 -2
- package/lib/cjs/components/SplitText/index.js.map +1 -1
- package/lib/cjs/components/SplitText/utils/wrapLines.js +2 -2
- package/lib/cjs/components/SplitText/utils/wrapLines.js.map +1 -1
- package/lib/cjs/utils/dom/addEventListener.js +32 -0
- package/lib/cjs/utils/dom/addEventListener.js.map +1 -0
- package/lib/cjs/utils/dom/childOf.js +17 -0
- package/lib/cjs/utils/dom/childOf.js.map +1 -0
- package/lib/cjs/utils/dom/isElement.js +8 -0
- package/lib/cjs/utils/dom/isElement.js.map +1 -0
- package/lib/cjs/utils/dom/isWindow.js +8 -0
- package/lib/cjs/utils/dom/isWindow.js.map +1 -0
- package/lib/cjs/utils/dom/selectAll.js +26 -0
- package/lib/cjs/utils/dom/selectAll.js.map +1 -0
- package/lib/cjs/utils/dom/selectOne.js +23 -0
- package/lib/cjs/utils/dom/selectOne.js.map +1 -0
- package/lib/cjs/utils/scroll/isPageScrolling.js +3 -3
- package/lib/cjs/utils/scroll/isPageScrolling.js.map +1 -1
- package/lib/cjs/utils/scroll/onScroll.js +15 -8
- package/lib/cjs/utils/scroll/onScroll.js.map +1 -1
- package/lib/cjs/utils/scroll/scrollToElement.js +2 -2
- package/lib/cjs/utils/scroll/scrollToElement.js.map +1 -1
- package/lib/cjs/version.js +1 -1
- package/lib/esm/Vevet/events/createOnPageLoad/index.js +1 -1
- package/lib/esm/Vevet/events/createOnPageLoad/index.js.map +1 -1
- package/lib/esm/Vevet/events/createViewport/index.js +1 -1
- package/lib/esm/Vevet/events/createViewport/index.js.map +1 -1
- package/lib/esm/Vevet/events/createViewport/viewportCssVarsScript.js +18 -0
- package/lib/esm/Vevet/events/createViewport/viewportCssVarsScript.js.map +1 -0
- package/lib/esm/Vevet/exported.js +2 -1
- package/lib/esm/Vevet/exported.js.map +1 -1
- package/lib/esm/base/Module/index.js +6 -9
- package/lib/esm/base/Module/index.js.map +1 -1
- package/lib/esm/components/CustomCursor/index.js +16 -11
- package/lib/esm/components/CustomCursor/index.js.map +1 -1
- package/lib/esm/components/CustomScroll/Elements.js +9 -20
- package/lib/esm/components/CustomScroll/Elements.js.map +1 -1
- package/lib/esm/components/CustomScroll/index.js +1 -1
- package/lib/esm/components/CustomScroll/index.js.map +1 -1
- package/lib/esm/components/CustomScrollKeyboardPlugin/index.js +1 -1
- package/lib/esm/components/CustomScrollKeyboardPlugin/index.js.map +1 -1
- package/lib/esm/components/DraggerBase/index.js +5 -2
- package/lib/esm/components/DraggerBase/index.js.map +1 -1
- package/lib/esm/components/DraggerMove/index.js +1 -1
- package/lib/esm/components/DraggerMove/index.js.map +1 -1
- package/lib/esm/components/Marquee/index.js +1 -1
- package/lib/esm/components/Marquee/index.js.map +1 -1
- package/lib/esm/components/Preloader/index.js +1 -1
- package/lib/esm/components/Preloader/index.js.map +1 -1
- package/lib/esm/components/ProgressPreloader/index.js +1 -1
- package/lib/esm/components/ProgressPreloader/index.js.map +1 -1
- package/lib/esm/components/ScrollBar/Bar/index.js +2 -2
- package/lib/esm/components/ScrollBar/Bar/index.js.map +1 -1
- package/lib/esm/components/ScrollBar/index.js +1 -1
- package/lib/esm/components/ScrollBar/index.js.map +1 -1
- package/lib/esm/components/SectionScrollProgress/index.js +1 -1
- package/lib/esm/components/SectionScrollProgress/index.js.map +1 -1
- package/lib/esm/components/SplitText/index.js +1 -1
- package/lib/esm/components/SplitText/index.js.map +1 -1
- package/lib/esm/components/SplitText/utils/wrapLines.js +1 -1
- package/lib/esm/components/SplitText/utils/wrapLines.js.map +1 -1
- package/lib/esm/utils/dom/addEventListener.js +28 -0
- package/lib/esm/utils/dom/addEventListener.js.map +1 -0
- package/lib/esm/utils/dom/childOf.js +13 -0
- package/lib/esm/utils/dom/childOf.js.map +1 -0
- package/lib/esm/utils/dom/isElement.js +4 -0
- package/lib/esm/utils/dom/isElement.js.map +1 -0
- package/lib/esm/utils/dom/isWindow.js +4 -0
- package/lib/esm/utils/dom/isWindow.js.map +1 -0
- package/lib/esm/utils/dom/selectAll.js +22 -0
- package/lib/esm/utils/dom/selectAll.js.map +1 -0
- package/lib/esm/utils/dom/selectOne.js +19 -0
- package/lib/esm/utils/dom/selectOne.js.map +1 -0
- package/lib/esm/utils/scroll/isPageScrolling.js +2 -2
- package/lib/esm/utils/scroll/isPageScrolling.js.map +1 -1
- package/lib/esm/utils/scroll/onScroll.js +14 -7
- package/lib/esm/utils/scroll/onScroll.js.map +1 -1
- package/lib/esm/utils/scroll/scrollToElement.js +1 -1
- package/lib/esm/utils/scroll/scrollToElement.js.map +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/types/Vevet/events/createOnPageLoad/index.d.ts.map +1 -1
- package/lib/types/Vevet/events/createViewport/index.d.ts.map +1 -1
- package/lib/types/Vevet/events/createViewport/viewportCssVarsScript.d.ts +2 -0
- package/lib/types/Vevet/events/createViewport/viewportCssVarsScript.d.ts.map +1 -0
- package/lib/types/Vevet/exported.d.ts +2 -0
- package/lib/types/Vevet/exported.d.ts.map +1 -1
- package/lib/types/base/Module/index.d.ts +2 -3
- package/lib/types/base/Module/index.d.ts.map +1 -1
- package/lib/types/components/CustomCursor/index.d.ts +1 -1
- package/lib/types/components/CustomCursor/index.d.ts.map +1 -1
- package/lib/types/components/CustomScroll/Elements.d.ts +2 -3
- package/lib/types/components/CustomScroll/Elements.d.ts.map +1 -1
- package/lib/types/components/CustomScroll/index.d.ts.map +1 -1
- package/lib/types/components/CustomScrollKeyboardPlugin/index.d.ts.map +1 -1
- package/lib/types/components/DraggerBase/index.d.ts +2 -3
- package/lib/types/components/DraggerBase/index.d.ts.map +1 -1
- package/lib/types/components/DraggerDirection/index.d.ts +1 -4
- package/lib/types/components/DraggerDirection/index.d.ts.map +1 -1
- package/lib/types/components/Marquee/index.d.ts.map +1 -1
- package/lib/types/components/Preloader/index.d.ts.map +1 -1
- package/lib/types/components/ProgressPreloader/index.d.ts.map +1 -1
- package/lib/types/components/ScrollBar/Bar/index.d.ts.map +1 -1
- package/lib/types/components/ScrollBar/index.d.ts +1 -1
- package/lib/types/components/ScrollBar/index.d.ts.map +1 -1
- package/lib/types/components/SectionScrollProgress/index.d.ts +1 -1
- package/lib/types/components/SectionScrollProgress/index.d.ts.map +1 -1
- package/lib/types/components/SplitText/index.d.ts.map +1 -1
- package/lib/types/utils/dom/addEventListener.d.ts +22 -0
- package/lib/types/utils/dom/addEventListener.d.ts.map +1 -0
- package/lib/types/utils/dom/childOf.d.ts +2 -0
- package/lib/types/utils/dom/childOf.d.ts.map +1 -0
- package/lib/types/utils/dom/isElement.d.ts +2 -0
- package/lib/types/utils/dom/isElement.d.ts.map +1 -0
- package/lib/types/utils/dom/isWindow.d.ts +2 -0
- package/lib/types/utils/dom/isWindow.d.ts.map +1 -0
- package/lib/types/utils/dom/selectAll.d.ts +5 -0
- package/lib/types/utils/dom/selectAll.d.ts.map +1 -0
- package/lib/types/utils/dom/selectOne.d.ts +3 -0
- package/lib/types/utils/dom/selectOne.d.ts.map +1 -0
- package/lib/types/utils/scroll/isPageScrolling.d.ts.map +1 -1
- package/lib/types/utils/scroll/onScroll.d.ts +16 -0
- package/lib/types/utils/scroll/onScroll.d.ts.map +1 -1
- package/lib/types/utils/scroll/scrollToElement.d.ts.map +1 -1
- package/lib/types/version.d.ts +1 -1
- package/package.json +2 -3
- package/src/Vevet/events/createOnPageLoad/index.ts +1 -1
- package/src/Vevet/events/createViewport/index.ts +1 -1
- package/src/Vevet/events/createViewport/stories/index.tsx +2 -0
- package/src/Vevet/events/createViewport/viewportCssVarsScript.ts +17 -0
- package/src/Vevet/exported.ts +3 -0
- package/src/base/Module/index.ts +11 -26
- package/src/components/CustomCursor/index.ts +18 -13
- package/src/components/CustomScroll/Elements.ts +8 -27
- package/src/components/CustomScroll/index.ts +1 -1
- package/src/components/CustomScrollKeyboardPlugin/index.ts +1 -1
- package/src/components/DraggerBase/index.ts +6 -9
- package/src/components/DraggerMove/index.ts +1 -1
- package/src/components/Marquee/index.ts +1 -1
- package/src/components/Preloader/index.ts +1 -1
- package/src/components/ProgressPreloader/index.ts +1 -1
- package/src/components/ScrollBar/Bar/index.ts +3 -3
- package/src/components/ScrollBar/index.ts +1 -1
- package/src/components/SectionScrollProgress/index.ts +1 -1
- package/src/components/SplitText/index.ts +1 -1
- package/src/components/SplitText/stories/index.tsx +1 -1
- package/src/components/SplitText/utils/wrapLines.ts +1 -1
- package/src/utils/dom/addEventListener.ts +37 -0
- package/src/utils/dom/childOf.ts +15 -0
- package/src/utils/dom/isElement.ts +3 -0
- package/src/utils/dom/isWindow.ts +3 -0
- package/src/utils/dom/selectAll.ts +42 -0
- package/src/utils/dom/selectOne.ts +31 -0
- package/src/utils/scroll/isPageScrolling.ts +3 -4
- package/src/utils/scroll/onScroll.ts +35 -19
- package/src/utils/scroll/scrollToElement.ts +1 -1
- package/src/version.ts +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const viewportCssVarsScript = `var updateVevetViewport = function update() {
|
|
2
|
+
if (window.vevetApp) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
var w = window.innerWidth;
|
|
7
|
+
var h = window.innerHeight;
|
|
8
|
+
var sh = document.documentElement.clientHeight;
|
|
9
|
+
|
|
10
|
+
document.documentElement.style.setProperty('--vw', w / 100 + "px");
|
|
11
|
+
document.documentElement.style.setProperty('--vh', h / 100 + "px");
|
|
12
|
+
document.documentElement.style.setProperty('--svh', sh / 100 + "px");
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
window.addEventListener('resize', updateVevetViewport);
|
|
16
|
+
|
|
17
|
+
updateVevetViewport();`;
|
package/src/Vevet/exported.ts
CHANGED
package/src/base/Module/index.ts
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
addEventListener,
|
|
3
|
-
IAddEventListener,
|
|
4
|
-
IAddEventListenerOptions,
|
|
5
|
-
ListenerElement,
|
|
6
|
-
} from 'vevet-dom';
|
|
7
1
|
import { NModule } from './types';
|
|
8
2
|
import { MutableProps, NMutableProps } from '../MutableProps';
|
|
9
3
|
import { Callbacks, NCallbacks } from '../Callbacks';
|
|
10
4
|
import { TRequiredModuleProp } from '@/types/utility';
|
|
11
5
|
import { getApp } from '@/utils/internal/getApp';
|
|
12
6
|
import { createViewport } from '@/src/Vevet/events/createViewport';
|
|
7
|
+
import { addEventListener } from '@/utils/dom/addEventListener';
|
|
13
8
|
|
|
14
9
|
export type { NModule };
|
|
15
10
|
|
|
@@ -86,7 +81,7 @@ export class Module<
|
|
|
86
81
|
}
|
|
87
82
|
|
|
88
83
|
/** Holds the list of event listeners added to the module */
|
|
89
|
-
private _listeners:
|
|
84
|
+
private _listeners: (() => void)[];
|
|
90
85
|
|
|
91
86
|
/** Stores actions that need to be executed when the module is destroyed */
|
|
92
87
|
private _destroyableActions: (() => void)[];
|
|
@@ -258,34 +253,24 @@ export class Module<
|
|
|
258
253
|
/**
|
|
259
254
|
* Adds a DOM event listener that will be automatically removed when the module is destroyed.
|
|
260
255
|
*
|
|
261
|
-
* @param
|
|
256
|
+
* @param element - The target element for the event listener.
|
|
262
257
|
* @param target - The event type to listen for (e.g., 'click', 'resize').
|
|
263
258
|
* @param callback - The callback function to execute when the event is triggered.
|
|
264
259
|
* @param options - Additional options for the event listener.
|
|
265
260
|
*/
|
|
266
261
|
public addEventListener<
|
|
267
|
-
El extends ListenerElement,
|
|
268
262
|
Target extends keyof HTMLElementEventMap,
|
|
269
|
-
|
|
263
|
+
Listener extends (event: DocumentEventMap[Target]) => void,
|
|
270
264
|
>(
|
|
271
|
-
|
|
265
|
+
element: Document | Element | Window,
|
|
272
266
|
target: Target,
|
|
273
|
-
callback:
|
|
274
|
-
options?:
|
|
275
|
-
)
|
|
276
|
-
const listener = addEventListener(
|
|
267
|
+
callback: Listener,
|
|
268
|
+
options?: boolean | AddEventListenerOptions,
|
|
269
|
+
) {
|
|
270
|
+
const listener = addEventListener(element, target, callback, options);
|
|
277
271
|
this._listeners.push(listener);
|
|
278
272
|
|
|
279
|
-
return
|
|
280
|
-
...listener,
|
|
281
|
-
remove: () => {
|
|
282
|
-
this._listeners = this._listeners.filter(
|
|
283
|
-
(item) => item.id !== listener.id,
|
|
284
|
-
);
|
|
285
|
-
|
|
286
|
-
return listener.remove();
|
|
287
|
-
},
|
|
288
|
-
};
|
|
273
|
+
return listener;
|
|
289
274
|
}
|
|
290
275
|
|
|
291
276
|
/**
|
|
@@ -341,7 +326,7 @@ export class Module<
|
|
|
341
326
|
this._mutableProps.destroy();
|
|
342
327
|
|
|
343
328
|
this._destroyableActions.forEach((action) => action());
|
|
344
|
-
this._listeners.forEach((listener) => listener
|
|
329
|
+
this._listeners.forEach((listener) => listener());
|
|
345
330
|
|
|
346
331
|
this._classNamesToRemove.forEach(({ element, className }) =>
|
|
347
332
|
element.classList.remove(className),
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { addEventListener, createElement, selectOne } from 'vevet-dom';
|
|
2
1
|
import { AnimationFrame } from '../AnimationFrame';
|
|
3
2
|
import { NCustomCursor } from './types';
|
|
4
3
|
import { Component as ComponentClass } from '@/base/Component';
|
|
5
4
|
import { lerp } from '@/utils/math';
|
|
6
5
|
import { getApp } from '@/utils/internal/getApp';
|
|
6
|
+
import { selectOne } from '@/utils/dom/selectOne';
|
|
7
|
+
import { addEventListener } from '@/utils/dom/addEventListener';
|
|
7
8
|
|
|
8
9
|
export type { NCustomCursor };
|
|
9
10
|
|
|
@@ -215,20 +216,24 @@ export class CustomCursor<
|
|
|
215
216
|
domContainer.classList.add(this.className('-container'));
|
|
216
217
|
|
|
217
218
|
// Create outer element
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
219
|
+
const outer = document.createElement('div');
|
|
220
|
+
this._outerElement = outer;
|
|
221
|
+
domContainer.append(outer);
|
|
222
|
+
outer.classList.add(this.className(''));
|
|
223
|
+
outer.classList.add(
|
|
224
|
+
this.className(
|
|
221
225
|
container instanceof Window ? '-in-window' : '-in-element',
|
|
222
|
-
'-disabled',
|
|
223
226
|
),
|
|
224
|
-
|
|
225
|
-
|
|
227
|
+
);
|
|
228
|
+
outer.classList.add(this.className('-disabled'));
|
|
226
229
|
|
|
227
230
|
// Create inner element
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
231
|
+
const inner = document.createElement('div');
|
|
232
|
+
this._innerElement = inner;
|
|
233
|
+
outer.append(inner);
|
|
234
|
+
inner.classList.add(this.className('__inner'));
|
|
235
|
+
inner.classList.add(this.className('-disabled'));
|
|
236
|
+
outer.append(inner);
|
|
232
237
|
|
|
233
238
|
// Call events
|
|
234
239
|
this.callbacks.tbt('create', {
|
|
@@ -372,8 +377,8 @@ export class CustomCursor<
|
|
|
372
377
|
this.hoveredElement = undefined;
|
|
373
378
|
}
|
|
374
379
|
|
|
375
|
-
mouseEnter
|
|
376
|
-
mouseLeave
|
|
380
|
+
mouseEnter();
|
|
381
|
+
mouseLeave();
|
|
377
382
|
|
|
378
383
|
if (timeout) {
|
|
379
384
|
clearTimeout(timeout);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { selectOne } from '@/utils/dom/selectOne';
|
|
2
2
|
import { NCustomScroll } from './types';
|
|
3
|
+
import { selectAll } from '@/utils/dom/selectAll';
|
|
3
4
|
|
|
4
5
|
type TPickedProps = 'elements' | 'hasWillChange' | 'translatePrecision';
|
|
5
6
|
|
|
@@ -16,8 +17,6 @@ export class Elements {
|
|
|
16
17
|
return this._wrapper;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
private _wrapperExists!: boolean;
|
|
20
|
-
|
|
21
20
|
private _elements!: NCustomScroll.IElement[];
|
|
22
21
|
|
|
23
22
|
get elements() {
|
|
@@ -29,30 +28,21 @@ export class Elements {
|
|
|
29
28
|
}
|
|
30
29
|
|
|
31
30
|
constructor(private _props: IProps) {
|
|
32
|
-
this.
|
|
31
|
+
this._getWrapper();
|
|
33
32
|
this._createElements();
|
|
34
33
|
}
|
|
35
34
|
|
|
36
|
-
/**
|
|
37
|
-
private
|
|
35
|
+
/** Get scrollable wrapper */
|
|
36
|
+
private _getWrapper() {
|
|
38
37
|
const { wrapperClassName, container } = this.props;
|
|
39
38
|
|
|
40
39
|
const existingWrapper = selectOne(`.${wrapperClassName}`, container);
|
|
41
40
|
|
|
42
|
-
if (existingWrapper instanceof HTMLElement) {
|
|
41
|
+
if (!(existingWrapper instanceof HTMLElement)) {
|
|
42
|
+
throw new Error(`No wrapper found: .${wrapperClassName}`);
|
|
43
|
+
} else {
|
|
43
44
|
this._wrapper = existingWrapper;
|
|
44
|
-
this._wrapperExists = true;
|
|
45
|
-
|
|
46
|
-
return;
|
|
47
45
|
}
|
|
48
|
-
|
|
49
|
-
this._wrapper = createElement('div', {
|
|
50
|
-
class: wrapperClassName,
|
|
51
|
-
parent: container,
|
|
52
|
-
children: Array.from(container.children),
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
this._wrapperExists = false;
|
|
56
46
|
}
|
|
57
47
|
|
|
58
48
|
/** Create scrollable elements */
|
|
@@ -128,15 +118,6 @@ export class Elements {
|
|
|
128
118
|
}
|
|
129
119
|
|
|
130
120
|
public destroy() {
|
|
131
|
-
// remove wrapper
|
|
132
|
-
if (!this._wrapperExists) {
|
|
133
|
-
while (this.wrapper.firstChild) {
|
|
134
|
-
this.props.container.appendChild(this.wrapper.firstChild);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
this._wrapper.remove();
|
|
138
|
-
}
|
|
139
|
-
|
|
140
121
|
// reset styles
|
|
141
122
|
this._elements.forEach((element) => {
|
|
142
123
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { selectOne } from 'vevet-dom';
|
|
2
1
|
import { Component as ComponentClass } from '@/base/Component';
|
|
3
2
|
import { NCustomScroll } from './types';
|
|
4
3
|
import { IScrollLike } from '@/types/general';
|
|
@@ -8,6 +7,7 @@ import { Elements } from './Elements';
|
|
|
8
7
|
import { AnimationFrame } from './AnimatonFrame';
|
|
9
8
|
import { onResize } from '@/utils/listeners/onResize';
|
|
10
9
|
import { getApp } from '@/utils/internal/getApp';
|
|
10
|
+
import { selectOne } from '@/utils/dom/selectOne';
|
|
11
11
|
|
|
12
12
|
export type { NCustomScroll };
|
|
13
13
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { childOf } from 'vevet-dom';
|
|
2
1
|
import { Plugin } from '@/base/Plugin';
|
|
3
2
|
import { NCustomScrollKeyboardPlugin } from './types';
|
|
4
3
|
import type { CustomScroll as CustomScrollInstance } from '../CustomScroll';
|
|
5
4
|
import { getApp } from '@/utils/internal/getApp';
|
|
5
|
+
import { childOf } from '@/utils/dom/childOf';
|
|
6
6
|
|
|
7
7
|
export type { NCustomScrollKeyboardPlugin };
|
|
8
8
|
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
IAddEventListener,
|
|
3
|
-
addEventListener,
|
|
4
|
-
isElement,
|
|
5
|
-
isWindow,
|
|
6
|
-
selectOne,
|
|
7
|
-
} from 'vevet-dom';
|
|
1
|
+
import { addEventListener } from '@/utils/dom/addEventListener';
|
|
8
2
|
import { NDraggerBase } from './types';
|
|
9
3
|
import { Component as ComponentClass } from '@/base/Component';
|
|
4
|
+
import { isElement } from '@/utils/dom/isElement';
|
|
5
|
+
import { isWindow } from '@/utils/dom/isWindow';
|
|
6
|
+
import { selectOne } from '@/utils/dom/selectOne';
|
|
10
7
|
import { getApp } from '@/utils/internal/getApp';
|
|
11
8
|
|
|
12
9
|
export type { NDraggerBase };
|
|
@@ -52,7 +49,7 @@ export abstract class DraggerBase<
|
|
|
52
49
|
/**
|
|
53
50
|
* Stores runtime event listeners added during dragging.
|
|
54
51
|
*/
|
|
55
|
-
protected _runtimeListeners:
|
|
52
|
+
protected _runtimeListeners: (() => void)[];
|
|
56
53
|
|
|
57
54
|
/**
|
|
58
55
|
* Indicates whether dragging is currently happening.
|
|
@@ -230,7 +227,7 @@ export abstract class DraggerBase<
|
|
|
230
227
|
* Removes runtime events after the drag operation ends or is canceled.
|
|
231
228
|
*/
|
|
232
229
|
protected _removeRuntimeEvents() {
|
|
233
|
-
this._runtimeListeners.forEach((listener) => listener
|
|
230
|
+
this._runtimeListeners.forEach((listener) => listener());
|
|
234
231
|
|
|
235
232
|
this._runtimeListeners = [];
|
|
236
233
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { selectOne } from 'vevet-dom';
|
|
2
1
|
import { NMarquee } from './types';
|
|
3
2
|
import { Component as ComponentClass } from '@/base/Component';
|
|
4
3
|
import { AnimationFrame } from '../AnimationFrame';
|
|
5
4
|
import { getApp } from '@/utils/internal/getApp';
|
|
6
5
|
import { wrap } from '@/utils/math';
|
|
7
6
|
import { onResize } from '@/utils/listeners';
|
|
7
|
+
import { selectOne } from '@/utils/dom/selectOne';
|
|
8
8
|
|
|
9
9
|
export type { NMarquee };
|
|
10
10
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { selectOne } from 'vevet-dom';
|
|
2
1
|
import { PCancelable } from '@/utils/common/PCancelable';
|
|
3
2
|
import { NPreloader } from './types';
|
|
4
3
|
import { Component as ComponentClass } from '@/base/Component';
|
|
5
4
|
import { normalizedTimeoutCallback } from '@/utils/common';
|
|
6
5
|
import { getApp } from '@/utils/internal/getApp';
|
|
6
|
+
import { selectOne } from '@/utils/dom/selectOne';
|
|
7
7
|
|
|
8
8
|
export type { NPreloader };
|
|
9
9
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { selectAll } from 'vevet-dom';
|
|
2
1
|
import { PCancelable } from '@/utils/common/PCancelable';
|
|
3
2
|
import { AnimationFrame } from '../AnimationFrame';
|
|
4
3
|
import { Preloader } from '../Preloader';
|
|
@@ -9,6 +8,7 @@ import { preloadImage } from './utils/preloadImage';
|
|
|
9
8
|
import { preloadVideo } from './utils/preloadVideo';
|
|
10
9
|
import { preloadCustomElement } from './utils/preloadCustomElement';
|
|
11
10
|
import { getApp } from '@/utils/internal/getApp';
|
|
11
|
+
import { selectAll } from '@/utils/dom/selectAll';
|
|
12
12
|
|
|
13
13
|
export type { NProgressPreloader };
|
|
14
14
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IAddEventListener, addEventListener } from 'vevet-dom';
|
|
2
1
|
import { IBarProps } from './types';
|
|
3
2
|
import { IRemovable } from '@/types/general';
|
|
4
3
|
import { DraggerMove, NDraggerMove } from '@/components/DraggerMove';
|
|
5
4
|
import { IOnScrollCallbackParameter, onScroll } from '@/utils/scroll/onScroll';
|
|
6
5
|
import { clamp } from '@/utils/math';
|
|
7
6
|
import { getScrollValues } from '@/utils/scroll';
|
|
7
|
+
import { addEventListener } from '@/utils/dom/addEventListener';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Represents a custom scroll bar with a draggable thumb.
|
|
@@ -49,7 +49,7 @@ export class Bar {
|
|
|
49
49
|
private _coordsAtDragStart = { scrollLeft: 0, scrollTop: 0 };
|
|
50
50
|
|
|
51
51
|
/** Stores the list of event listeners */
|
|
52
|
-
private _listeners:
|
|
52
|
+
private _listeners: (() => void)[] = [];
|
|
53
53
|
|
|
54
54
|
/** The scroll event handler */
|
|
55
55
|
private _scrollEvent?: IRemovable;
|
|
@@ -184,7 +184,7 @@ export class Bar {
|
|
|
184
184
|
* Removes all the event listeners for the scroll bar.
|
|
185
185
|
*/
|
|
186
186
|
private _removeEvents() {
|
|
187
|
-
this._listeners?.forEach((listener) => listener
|
|
187
|
+
this._listeners?.forEach((listener) => listener());
|
|
188
188
|
this._scrollEvent?.remove();
|
|
189
189
|
this._dragger?.destroy();
|
|
190
190
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { selectOne } from 'vevet-dom';
|
|
2
1
|
import type { CustomScroll } from '../CustomScroll';
|
|
3
2
|
import { Bar } from './Bar';
|
|
4
3
|
import { NScrollBar } from './types';
|
|
@@ -6,6 +5,7 @@ import { Component as ComponentClass } from '@/base/Component';
|
|
|
6
5
|
import { IBarProps } from './Bar/types';
|
|
7
6
|
import { onResize } from '@/utils/listeners/onResize';
|
|
8
7
|
import { getApp } from '@/utils/internal/getApp';
|
|
8
|
+
import { selectOne } from '@/utils/dom/selectOne';
|
|
9
9
|
|
|
10
10
|
export type { NScrollBar };
|
|
11
11
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { selectOne } from 'vevet-dom';
|
|
2
1
|
import type { CustomScroll } from '../CustomScroll';
|
|
3
2
|
import { NScrollSectionProgress } from './types';
|
|
4
3
|
import { Component as ComponentClass } from '@/base/Component';
|
|
@@ -6,6 +5,7 @@ import { clampScope } from '@/utils/math';
|
|
|
6
5
|
import { IGetScrollValues, getScrollValues, onScroll } from '@/utils/scroll';
|
|
7
6
|
import { onResize } from '@/utils/listeners/onResize';
|
|
8
7
|
import { getApp } from '@/utils/internal/getApp';
|
|
8
|
+
import { selectOne } from '@/utils/dom/selectOne';
|
|
9
9
|
|
|
10
10
|
export type { NScrollSectionProgress };
|
|
11
11
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { selectOne } from 'vevet-dom';
|
|
2
1
|
import { Component as ComponentClass } from '@/base/Component';
|
|
3
2
|
import { NSplitText } from './types';
|
|
4
3
|
import { onResize } from '@/utils/listeners/onResize';
|
|
5
4
|
import { splitBase } from './utils/splitBase';
|
|
6
5
|
import { wrapLines } from './utils/wrapLines';
|
|
7
6
|
import { getApp } from '@/utils/internal/getApp';
|
|
7
|
+
import { selectOne } from '@/utils/dom/selectOne';
|
|
8
8
|
|
|
9
9
|
export type { NSplitText };
|
|
10
10
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A utility function to add an event listener to a specified element.
|
|
3
|
+
*
|
|
4
|
+
* This function adds an event listener for the specified event type and
|
|
5
|
+
* returns a function that can be called to remove the event listener.
|
|
6
|
+
*
|
|
7
|
+
* @param element - The target element to which the event listener will be attached.
|
|
8
|
+
* @param target - The name of the event to listen for (e.g., 'click', 'scroll').
|
|
9
|
+
* @param listener - The callback function to execute when the event occurs.
|
|
10
|
+
* @param options - Optional parameters for the event listener.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const button = document.getElementById('myButton');
|
|
14
|
+
* const removeClickListener = addEventListener(button, 'click', (event) => {
|
|
15
|
+
* console.log('Button clicked!');
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* // To remove the event listener later
|
|
19
|
+
* removeClickListener();
|
|
20
|
+
*/
|
|
21
|
+
export function addEventListener<
|
|
22
|
+
Target extends keyof HTMLElementEventMap,
|
|
23
|
+
Listener extends (event: DocumentEventMap[Target]) => void,
|
|
24
|
+
>(
|
|
25
|
+
element: Document | Element | Window,
|
|
26
|
+
target: Target,
|
|
27
|
+
listener: Listener,
|
|
28
|
+
options?: boolean | AddEventListenerOptions,
|
|
29
|
+
) {
|
|
30
|
+
element.addEventListener(target, listener as any, options);
|
|
31
|
+
|
|
32
|
+
const remove = () => {
|
|
33
|
+
element.removeEventListener(target, listener as any, options);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
return remove;
|
|
37
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
function childOfCheck(el: Element, parent: Element): boolean {
|
|
2
|
+
if (el === parent) {
|
|
3
|
+
return true;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
if (el !== null) {
|
|
7
|
+
return childOfCheck(el.parentNode as Element, parent);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function childOf(element: Element, parent: Element) {
|
|
14
|
+
return childOfCheck(element, parent);
|
|
15
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { isElement } from './isElement';
|
|
2
|
+
import { selectOne } from './selectOne';
|
|
3
|
+
|
|
4
|
+
export type TSelectAll = string | NodeList | Element | Element[];
|
|
5
|
+
|
|
6
|
+
type TNodeListByTagName<T extends keyof HTMLElementTagNameMap> = NodeListOf<
|
|
7
|
+
HTMLElementTagNameMap[T]
|
|
8
|
+
>;
|
|
9
|
+
|
|
10
|
+
export function selectAll<T extends TSelectAll | keyof HTMLElementTagNameMap>(
|
|
11
|
+
selector: T,
|
|
12
|
+
parent?: Element | string,
|
|
13
|
+
): T extends Element[]
|
|
14
|
+
? Element[]
|
|
15
|
+
: T extends Element
|
|
16
|
+
? Element[]
|
|
17
|
+
: T extends keyof HTMLElementTagNameMap
|
|
18
|
+
? TNodeListByTagName<T>
|
|
19
|
+
: NodeListOf<Element> {
|
|
20
|
+
if (selector instanceof NodeList) {
|
|
21
|
+
return selector as any;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (isElement(selector)) {
|
|
25
|
+
return [selector] as any;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (Array.isArray(selector)) {
|
|
29
|
+
return selector as any;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// if string
|
|
33
|
+
if (typeof parent !== 'undefined') {
|
|
34
|
+
const parenElement = selectOne(parent);
|
|
35
|
+
|
|
36
|
+
if (parenElement) {
|
|
37
|
+
return parenElement.querySelectorAll(selector) as any;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return document.querySelectorAll(selector) as any;
|
|
42
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { isElement } from './isElement';
|
|
2
|
+
import { isWindow } from './isWindow';
|
|
3
|
+
|
|
4
|
+
export type TSelectOne = string | Element | Window;
|
|
5
|
+
|
|
6
|
+
export function selectOne<T extends TSelectOne | keyof HTMLElementTagNameMap>(
|
|
7
|
+
selector: T,
|
|
8
|
+
parent?: Element | string,
|
|
9
|
+
): T extends Window
|
|
10
|
+
? Window
|
|
11
|
+
: T extends keyof HTMLElementTagNameMap
|
|
12
|
+
? HTMLElementTagNameMap[T]
|
|
13
|
+
: HTMLElement | Element | null {
|
|
14
|
+
if (isWindow(selector)) {
|
|
15
|
+
return selector as any;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
if (isElement(selector)) {
|
|
19
|
+
return selector as any;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// if string
|
|
23
|
+
if (typeof parent !== 'undefined') {
|
|
24
|
+
const parenEl = selectOne(parent);
|
|
25
|
+
if (parenEl) {
|
|
26
|
+
return parenEl.querySelector(selector as string) as any;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return document.querySelector(selector as string) as any;
|
|
31
|
+
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { addEventListener } from 'vevet-dom';
|
|
2
|
-
import { IRemovable } from '@/types/general';
|
|
3
1
|
import { uid } from '../common';
|
|
2
|
+
import { addEventListener } from '../dom/addEventListener';
|
|
4
3
|
|
|
5
4
|
let ids: string[] = [];
|
|
6
5
|
|
|
7
6
|
let timeout: NodeJS.Timeout | null = null;
|
|
8
|
-
let listener:
|
|
7
|
+
let listener: (() => void) | undefined;
|
|
9
8
|
|
|
10
9
|
let isScrolling = false;
|
|
11
10
|
|
|
@@ -34,7 +33,7 @@ function createListener() {
|
|
|
34
33
|
*/
|
|
35
34
|
function destroyListener() {
|
|
36
35
|
if (ids.length === 0) {
|
|
37
|
-
listener?.
|
|
36
|
+
listener?.();
|
|
38
37
|
listener = undefined;
|
|
39
38
|
}
|
|
40
39
|
}
|