vevet 2.0.1-dev.15 → 2.0.1-dev.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.
- package/build/cdn/index.js +1 -1
- package/build/cjs/components/canvas/Ctx2DPrerender.js +1 -1
- package/build/cjs/components/scroll/scrollable/ScrollView.js +65 -53
- package/build/cjs/components/scroll/scrollbar/Bar.js +5 -2
- package/build/cjs/components/text/SplitText.js +2 -2
- package/build/cjs/utils/listeners/onScroll.js +66 -30
- package/build/es/components/canvas/Ctx2DPrerender.js +1 -1
- package/build/es/components/scroll/scrollable/ScrollView.js +55 -48
- package/build/es/components/scroll/scrollbar/Bar.js +5 -2
- package/build/es/components/text/SplitText.js +2 -2
- package/build/es/utils/listeners/onScroll.js +65 -30
- package/build/types/components/canvas/Ctx2DPrerender.d.ts.map +1 -1
- package/build/types/components/scroll/scrollable/ScrollView.d.ts +27 -13
- package/build/types/components/scroll/scrollable/ScrollView.d.ts.map +1 -1
- package/build/types/components/scroll/scrollbar/Bar.d.ts.map +1 -1
- package/build/types/components/text/SplitText.d.ts +6 -0
- package/build/types/components/text/SplitText.d.ts.map +1 -1
- package/build/types/utils/listeners/onScroll.d.ts +10 -6
- package/build/types/utils/listeners/onScroll.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ts/components/canvas/Ctx2DPrerender.ts +2 -3
- package/src/ts/components/scroll/scrollable/ScrollView.ts +75 -64
- package/src/ts/components/scroll/scrollbar/Bar.ts +5 -2
- package/src/ts/components/text/SplitText.ts +8 -1
- package/src/ts/utils/listeners/onScroll.ts +101 -41
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ctx2DPrerender.d.ts","sourceRoot":"","sources":["../../../../src/ts/components/canvas/Ctx2DPrerender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIxC,yBAAiB,eAAe,CAAC;IAE7B;;OAEG;IACH,UAAiB,UAAW,SAAQ,MAAM,CAAC,UAAU;QACjD;;WAEG;QACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,cAAc,GAAG,KAAK,CAAC;KACtD;IAED;;OAEG;IACH,UAAiB,cAAe,SAAQ,MAAM,CAAC,cAAc;QACzD;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACrB;IAED;;OAEG;IACH,UAAiB,cAAe,SAAQ,MAAM,CAAC,cAAc;QACzD,WAAW,EAAE,KAAK,CAAA;KACrB;CAEJ;AAID;;GAEG;AACH,qBAAa,cAAc,CACvB,UAAU,SAAS,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,EAC1E,cAAc,SAAS,eAAe,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,EACtF,cAAc,SAAS,eAAe,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,CACxF,SAAQ,KAAK,CACX,UAAU,EACV,cAAc,EACd,cAAc,CACjB;IACG,SAAS,CAAC,eAAe,CACrB,CAAC,SAAS,kBAAkB,CAAC,UAAU,GAAG,cAAc,CAAC,KACvD,CAAC;IAQP;;OAEG;IACI,MAAM;IAKb,SAAS,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"Ctx2DPrerender.d.ts","sourceRoot":"","sources":["../../../../src/ts/components/canvas/Ctx2DPrerender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIxC,yBAAiB,eAAe,CAAC;IAE7B;;OAEG;IACH,UAAiB,UAAW,SAAQ,MAAM,CAAC,UAAU;QACjD;;WAEG;QACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,cAAc,GAAG,KAAK,CAAC;KACtD;IAED;;OAEG;IACH,UAAiB,cAAe,SAAQ,MAAM,CAAC,cAAc;QACzD;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACrB;IAED;;OAEG;IACH,UAAiB,cAAe,SAAQ,MAAM,CAAC,cAAc;QACzD,WAAW,EAAE,KAAK,CAAA;KACrB;CAEJ;AAID;;GAEG;AACH,qBAAa,cAAc,CACvB,UAAU,SAAS,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,EAC1E,cAAc,SAAS,eAAe,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,EACtF,cAAc,SAAS,eAAe,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,CACxF,SAAQ,KAAK,CACX,UAAU,EACV,cAAc,EACd,cAAc,CACjB;IACG,SAAS,CAAC,eAAe,CACrB,CAAC,SAAS,kBAAkB,CAAC,UAAU,GAAG,cAAc,CAAC,KACvD,CAAC;IAQP;;OAEG;IACI,MAAM;IAKb,SAAS,CAAC,UAAU;CA2CvB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SelectorAll } from 'vevet-dom';
|
|
2
1
|
import { ScrollEventsBase, NScrollEventsBase } from './ScrollEventsBase';
|
|
3
2
|
import { IRemovable } from '../../../utils/types/general';
|
|
4
3
|
import { RequiredModuleProp } from '../../../utils/types/utility';
|
|
@@ -8,10 +7,17 @@ export declare namespace NScrollView {
|
|
|
8
7
|
*/
|
|
9
8
|
interface StaticProp extends NScrollEventsBase.StaticProp {
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* If enabled, scrolling events will be created.
|
|
11
|
+
* You can use "false" to create just an instance of the ScrollView
|
|
12
|
+
* and later enable animations.
|
|
13
|
+
* @default true
|
|
14
|
+
*/
|
|
15
|
+
enabled?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* View elements.
|
|
18
|
+
* @default []
|
|
13
19
|
*/
|
|
14
|
-
elements?:
|
|
20
|
+
elements?: Element[];
|
|
15
21
|
/**
|
|
16
22
|
* The moment at which the element is considered to be in the viewport.
|
|
17
23
|
* The value is calculated from top to bottom or from left to right.
|
|
@@ -79,6 +85,11 @@ export declare class ScrollView<StaticProp extends NScrollView.StaticProp = NScr
|
|
|
79
85
|
* If first start
|
|
80
86
|
*/
|
|
81
87
|
protected _firstStart: boolean;
|
|
88
|
+
protected _elements: NScrollView.El[];
|
|
89
|
+
/**
|
|
90
|
+
* Elements to seek
|
|
91
|
+
*/
|
|
92
|
+
get elements(): NScrollView.El[];
|
|
82
93
|
constructor(initialProp?: (StaticProp & ChangeableProp), init?: boolean);
|
|
83
94
|
init(): void;
|
|
84
95
|
protected _setEvents(): void;
|
|
@@ -95,15 +106,6 @@ export declare class ScrollView<StaticProp extends NScrollView.StaticProp = NScr
|
|
|
95
106
|
* Remove View events: scroll or intersection
|
|
96
107
|
*/
|
|
97
108
|
protected _removeViewEvents(): void;
|
|
98
|
-
protected _elements: NScrollView.El[];
|
|
99
|
-
/**
|
|
100
|
-
* Element to seek
|
|
101
|
-
*/
|
|
102
|
-
get elements(): NScrollView.El[];
|
|
103
|
-
/**
|
|
104
|
-
* Update elements
|
|
105
|
-
*/
|
|
106
|
-
updateElements(): void;
|
|
107
109
|
/**
|
|
108
110
|
* Event on IntersectionObserver
|
|
109
111
|
*/
|
|
@@ -132,6 +134,18 @@ export declare class ScrollView<StaticProp extends NScrollView.StaticProp = NScr
|
|
|
132
134
|
* Remove elements that are mo more in need
|
|
133
135
|
*/
|
|
134
136
|
protected _processUnusedElements(): void;
|
|
137
|
+
/**
|
|
138
|
+
* Add a view element
|
|
139
|
+
*/
|
|
140
|
+
addElement(element: Element): void;
|
|
141
|
+
/**
|
|
142
|
+
* Remove a view element
|
|
143
|
+
*/
|
|
144
|
+
removeElement(element: Element): void;
|
|
145
|
+
/**
|
|
146
|
+
* Remove all view elements
|
|
147
|
+
*/
|
|
148
|
+
removeElements(): void;
|
|
135
149
|
/**
|
|
136
150
|
* Destroy the module
|
|
137
151
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/ts/components/scroll/scrollable/ScrollView.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/ts/components/scroll/scrollable/ScrollView.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bar.d.ts","sourceRoot":"","sources":["../../../../../src/ts/components/scroll/scrollbar/Bar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAmC,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,UAAU,IAAI;IACV,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,uBAAuB,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC9C;AAED,MAAM,CAAC,OAAO,OAAO,GAAG;IAmEhB,SAAS,CAAC,KAAK,EAAE,IAAI;IAjEzB,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,IAAI,KAAK,gBAER;IACD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,IAAI,KAAK,gBAER;IAGD,IAAI,MAAM,WAET;IACD,IAAI,GAAG,YAEN;IACD,IAAI,GAAG,YAEN;IAGD,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAE9B,IAAI,aAAa,yOAGhB;IAED,IAAI,UAAU,WAKb;IAED,IAAI,WAAW,WAEd;IACD,IAAI,YAAY,WAEf;IAGD,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,kBAAkB,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACf,CAAA;IAGD,SAAS,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAC1C,SAAS,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;IACpC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAIjC,IAAI,IAAI,SAEP;gBAGa,KAAK,EAAE,IAAI;IA+CzB,IAAI,YAAY;;;MAkBf;IAID;;OAEG;IACH,SAAS,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"Bar.d.ts","sourceRoot":"","sources":["../../../../../src/ts/components/scroll/scrollbar/Bar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAmC,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,UAAU,IAAI;IACV,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,uBAAuB,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC9C;AAED,MAAM,CAAC,OAAO,OAAO,GAAG;IAmEhB,SAAS,CAAC,KAAK,EAAE,IAAI;IAjEzB,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,IAAI,KAAK,gBAER;IACD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,IAAI,KAAK,gBAER;IAGD,IAAI,MAAM,WAET;IACD,IAAI,GAAG,YAEN;IACD,IAAI,GAAG,YAEN;IAGD,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAE9B,IAAI,aAAa,yOAGhB;IAED,IAAI,UAAU,WAKb;IAED,IAAI,WAAW,WAEd;IACD,IAAI,YAAY,WAEf;IAGD,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,kBAAkB,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACf,CAAA;IAGD,SAAS,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAC1C,SAAS,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;IACpC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAIjC,IAAI,IAAI,SAEP;gBAGa,KAAK,EAAE,IAAI;IA+CzB,IAAI,YAAY;;;MAkBf;IAID;;OAEG;IACH,SAAS,CAAC,UAAU;IAiCpB;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAC7B,IAAI,EAAE,OAAO;IAUjB;;OAEG;IACH,SAAS,CAAC,YAAY,CAClB,IAAI,EAAE,OAAO;IAKjB;;OAEG;IACH,SAAS,CAAC,aAAa,CAAE,IAAI,EAAE;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACtB;IAoCD;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACtB,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC;IA6B7C;;OAEG;IACH,SAAS,CAAC,YAAY;IAgBtB;;OAEG;IACI,MAAM;IA0CN,OAAO;CAejB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NViewport } from '../../app/events/Viewport';
|
|
1
2
|
import { Component, NComponent } from '../../base/Component';
|
|
2
3
|
import { RequiredModuleProp } from '../../utils/types/utility';
|
|
3
4
|
export declare namespace NSplitText {
|
|
@@ -20,6 +21,11 @@ export declare namespace NSplitText {
|
|
|
20
21
|
* @default false
|
|
21
22
|
*/
|
|
22
23
|
appendLines?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Viewport resize event target
|
|
26
|
+
* @default ''
|
|
27
|
+
*/
|
|
28
|
+
viewportTarget?: keyof NViewport.CallbacksTypes;
|
|
23
29
|
}
|
|
24
30
|
/**
|
|
25
31
|
* Changeable properties
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitText.d.ts","sourceRoot":"","sources":["../../../../src/ts/components/text/SplitText.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAI/D,yBAAiB,UAAU,CAAC;IAExB;;OAEG;IACH,UAAiB,UAAW,SAAQ,UAAU,CAAC,UAAU;QACrD;;;WAGG;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7B;;;WAGG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB;;;WAGG;QACH,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SplitText.d.ts","sourceRoot":"","sources":["../../../../src/ts/components/text/SplitText.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { SmoothScroll } from '../../components/scroll/smooth-scroll/SmoothScroll';
|
|
2
1
|
import { IRemovable } from '../types/general';
|
|
2
|
+
import { SmoothScroll } from '../../components/scroll/smooth-scroll/SmoothScroll';
|
|
3
|
+
declare type Container = string | Element | SmoothScroll | Window;
|
|
4
|
+
interface ArgData {
|
|
5
|
+
scrollTop: number;
|
|
6
|
+
scrollLeft: number;
|
|
7
|
+
}
|
|
3
8
|
interface Props {
|
|
4
|
-
|
|
9
|
+
container: Container;
|
|
10
|
+
callback: (data: ArgData) => void;
|
|
11
|
+
isPassive?: boolean;
|
|
5
12
|
}
|
|
6
13
|
/**
|
|
7
14
|
* Add OnScroll event
|
|
8
15
|
*/
|
|
9
|
-
export default function onScroll(
|
|
10
|
-
scrollTop: number;
|
|
11
|
-
scrollLeft: number;
|
|
12
|
-
}) => void, props?: Props): IRemovable;
|
|
16
|
+
export default function onScroll({ container, callback, isPassive, }: Props): IRemovable;
|
|
13
17
|
export {};
|
|
14
18
|
//# sourceMappingURL=onScroll.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onScroll.d.ts","sourceRoot":"","sources":["../../../../src/ts/utils/listeners/onScroll.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onScroll.d.ts","sourceRoot":"","sources":["../../../../src/ts/utils/listeners/onScroll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oDAAoD,CAAC;AAGlF,aAAK,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC;AAE1D,UAAU,OAAO;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB;AAeD,UAAU,KAAK;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAID;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAE,EAC9B,SAAS,EACT,QAAQ,EACR,SAAiB,GACpB,EAAE,KAAK,GAAG,UAAU,CAsFpB"}
|
package/package.json
CHANGED
|
@@ -104,9 +104,8 @@ export class Ctx2DPrerender <
|
|
|
104
104
|
// render the media
|
|
105
105
|
this._ctx.drawImage(
|
|
106
106
|
source,
|
|
107
|
-
|
|
108
|
-
size.
|
|
109
|
-
size.x, size.y, size.width, size.height,
|
|
107
|
+
size.x, size.y,
|
|
108
|
+
size.width, size.height,
|
|
110
109
|
);
|
|
111
110
|
// launch callbacks on prerender
|
|
112
111
|
this.callbacks.tbt('prerender', false);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { selectAll, SelectorAll } from 'vevet-dom';
|
|
2
1
|
import { ScrollEventsBase, NScrollEventsBase } from './ScrollEventsBase';
|
|
3
2
|
import { IRemovable } from '../../../utils/types/general';
|
|
4
3
|
import { RequiredModuleProp } from '../../../utils/types/utility';
|
|
@@ -16,10 +15,17 @@ export namespace NScrollView {
|
|
|
16
15
|
*/
|
|
17
16
|
export interface StaticProp extends NScrollEventsBase.StaticProp {
|
|
18
17
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* If enabled, scrolling events will be created.
|
|
19
|
+
* You can use "false" to create just an instance of the ScrollView
|
|
20
|
+
* and later enable animations.
|
|
21
|
+
* @default true
|
|
22
|
+
*/
|
|
23
|
+
enabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* View elements.
|
|
26
|
+
* @default []
|
|
21
27
|
*/
|
|
22
|
-
elements?:
|
|
28
|
+
elements?: Element[];
|
|
23
29
|
/**
|
|
24
30
|
* The moment at which the element is considered to be in the viewport.
|
|
25
31
|
* The value is calculated from top to bottom or from left to right.
|
|
@@ -96,8 +102,9 @@ export class ScrollView <
|
|
|
96
102
|
> (): T {
|
|
97
103
|
return {
|
|
98
104
|
...super._getDefaultProp(),
|
|
105
|
+
enabled: true,
|
|
99
106
|
container: window,
|
|
100
|
-
elements:
|
|
107
|
+
elements: [],
|
|
101
108
|
threshold: 0.9,
|
|
102
109
|
states: 'in',
|
|
103
110
|
classToToggle: 'viewed',
|
|
@@ -122,6 +129,14 @@ export class ScrollView <
|
|
|
122
129
|
*/
|
|
123
130
|
protected _firstStart: boolean;
|
|
124
131
|
|
|
132
|
+
protected _elements: NScrollView.El[];
|
|
133
|
+
/**
|
|
134
|
+
* Elements to seek
|
|
135
|
+
*/
|
|
136
|
+
get elements () {
|
|
137
|
+
return this._elements;
|
|
138
|
+
}
|
|
139
|
+
|
|
125
140
|
|
|
126
141
|
|
|
127
142
|
constructor (
|
|
@@ -133,9 +148,7 @@ export class ScrollView <
|
|
|
133
148
|
this._scrollEvent = undefined;
|
|
134
149
|
this._intersectionObserver = undefined;
|
|
135
150
|
this._firstStart = true;
|
|
136
|
-
|
|
137
|
-
// get view elements
|
|
138
|
-
this.updateElements();
|
|
151
|
+
this._elements = [...this.prop.elements];
|
|
139
152
|
|
|
140
153
|
// initialize the class
|
|
141
154
|
if (init) {
|
|
@@ -145,7 +158,6 @@ export class ScrollView <
|
|
|
145
158
|
|
|
146
159
|
public init () {
|
|
147
160
|
super.init();
|
|
148
|
-
this.seekBounding();
|
|
149
161
|
}
|
|
150
162
|
|
|
151
163
|
// Set Module Events
|
|
@@ -159,9 +171,7 @@ export class ScrollView <
|
|
|
159
171
|
|
|
160
172
|
protected _onPropMutate () {
|
|
161
173
|
super._onPropMutate();
|
|
162
|
-
this.
|
|
163
|
-
this.updateElements();
|
|
164
|
-
this._setViewEvents();
|
|
174
|
+
this.resize();
|
|
165
175
|
}
|
|
166
176
|
|
|
167
177
|
/**
|
|
@@ -169,7 +179,10 @@ export class ScrollView <
|
|
|
169
179
|
*/
|
|
170
180
|
public resize () {
|
|
171
181
|
this._removeViewEvents();
|
|
172
|
-
this.
|
|
182
|
+
if (this.prop.enabled) {
|
|
183
|
+
this._setViewEvents();
|
|
184
|
+
this.seekBounding();
|
|
185
|
+
}
|
|
173
186
|
}
|
|
174
187
|
|
|
175
188
|
/**
|
|
@@ -194,14 +207,15 @@ export class ScrollView <
|
|
|
194
207
|
},
|
|
195
208
|
);
|
|
196
209
|
// add elements
|
|
197
|
-
|
|
198
|
-
this.
|
|
199
|
-
|
|
200
|
-
});
|
|
201
|
-
}
|
|
210
|
+
this.elements.forEach((el) => {
|
|
211
|
+
this._intersectionObserver?.observe(el);
|
|
212
|
+
});
|
|
202
213
|
} else {
|
|
203
214
|
// set scroll bounding events
|
|
204
|
-
this._scrollEvent = onScroll(
|
|
215
|
+
this._scrollEvent = onScroll({
|
|
216
|
+
container: this.prop.container,
|
|
217
|
+
callback: this._handleScroll.bind(this),
|
|
218
|
+
});
|
|
205
219
|
}
|
|
206
220
|
}
|
|
207
221
|
|
|
@@ -221,46 +235,6 @@ export class ScrollView <
|
|
|
221
235
|
}
|
|
222
236
|
}
|
|
223
237
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
protected _elements!: NScrollView.El[];
|
|
227
|
-
/**
|
|
228
|
-
* Element to seek
|
|
229
|
-
*/
|
|
230
|
-
get elements () {
|
|
231
|
-
return this._elements;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* Update elements
|
|
236
|
-
*/
|
|
237
|
-
public updateElements () {
|
|
238
|
-
// check if elements exist
|
|
239
|
-
if (typeof this.elements === 'undefined') {
|
|
240
|
-
this._elements = [];
|
|
241
|
-
}
|
|
242
|
-
// unobserve old elements
|
|
243
|
-
this.elements.forEach((el) => {
|
|
244
|
-
if (this._intersectionObserver) {
|
|
245
|
-
this._intersectionObserver.unobserve(el);
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
|
-
// update elements
|
|
249
|
-
this._elements = Array.from(
|
|
250
|
-
selectAll(this.prop.elements as any, this.domParent || undefined),
|
|
251
|
-
).filter(
|
|
252
|
-
(el) => !el.classList.contains(this.prop.classToToggle),
|
|
253
|
-
);
|
|
254
|
-
// add them to the observer
|
|
255
|
-
this._elements.forEach((el) => {
|
|
256
|
-
if (this._intersectionObserver) {
|
|
257
|
-
this._intersectionObserver.observe(el);
|
|
258
|
-
}
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
238
|
/**
|
|
265
239
|
* Event on IntersectionObserver
|
|
266
240
|
*/
|
|
@@ -371,8 +345,6 @@ export class ScrollView <
|
|
|
371
345
|
};
|
|
372
346
|
}
|
|
373
347
|
|
|
374
|
-
|
|
375
|
-
|
|
376
348
|
/**
|
|
377
349
|
* Event that is triggered when an element appears or disappears
|
|
378
350
|
*/
|
|
@@ -393,9 +365,11 @@ export class ScrollView <
|
|
|
393
365
|
el.scrollViewIn = inViewport;
|
|
394
366
|
|
|
395
367
|
// toggle classes
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
368
|
+
if (this.prop.classToToggle) {
|
|
369
|
+
timeoutCallback(() => {
|
|
370
|
+
el.classList.toggle(this.prop.classToToggle, inViewport);
|
|
371
|
+
}, delay);
|
|
372
|
+
}
|
|
399
373
|
|
|
400
374
|
// process callbacks
|
|
401
375
|
if (inViewport && (states === 'in' || states === 'inout')) {
|
|
@@ -427,6 +401,43 @@ export class ScrollView <
|
|
|
427
401
|
}
|
|
428
402
|
|
|
429
403
|
|
|
404
|
+
/**
|
|
405
|
+
* Add a view element
|
|
406
|
+
*/
|
|
407
|
+
public addElement (
|
|
408
|
+
element: Element,
|
|
409
|
+
) {
|
|
410
|
+
this._elements.push(element);
|
|
411
|
+
if (this._intersectionObserver) {
|
|
412
|
+
this._intersectionObserver.observe(element);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Remove a view element
|
|
418
|
+
*/
|
|
419
|
+
public removeElement (
|
|
420
|
+
element: Element,
|
|
421
|
+
) {
|
|
422
|
+
this._elements = this._elements.filter((el) => el !== element);
|
|
423
|
+
if (this._intersectionObserver) {
|
|
424
|
+
this._intersectionObserver.unobserve(element);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Remove all view elements
|
|
430
|
+
*/
|
|
431
|
+
public removeElements () {
|
|
432
|
+
this._elements.forEach((el) => {
|
|
433
|
+
if (this._intersectionObserver) {
|
|
434
|
+
this._intersectionObserver.unobserve(el);
|
|
435
|
+
}
|
|
436
|
+
});
|
|
437
|
+
this._elements = [];
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
|
|
430
441
|
|
|
431
442
|
/**
|
|
432
443
|
* Destroy the module
|
|
@@ -163,8 +163,11 @@ export default class Bar {
|
|
|
163
163
|
this._listeners.push(addEventListener(this.outer, 'mouseleave', this._handleHover.bind(this, false)));
|
|
164
164
|
|
|
165
165
|
// set scroll events
|
|
166
|
-
this._scrollEvent = onScroll(
|
|
167
|
-
this.
|
|
166
|
+
this._scrollEvent = onScroll({
|
|
167
|
+
container: this.prop.container,
|
|
168
|
+
callback: (data) => {
|
|
169
|
+
this._handleScroll(data);
|
|
170
|
+
},
|
|
168
171
|
});
|
|
169
172
|
|
|
170
173
|
// set dragger
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createElement, selectOne } from 'vevet-dom';
|
|
2
|
+
import { NViewport } from '../../app/events/Viewport';
|
|
2
3
|
import { Component, NComponent } from '../../base/Component';
|
|
3
4
|
import { RequiredModuleProp } from '../../utils/types/utility';
|
|
4
5
|
|
|
@@ -25,6 +26,11 @@ export namespace NSplitText {
|
|
|
25
26
|
* @default false
|
|
26
27
|
*/
|
|
27
28
|
appendLines?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Viewport resize event target
|
|
31
|
+
* @default ''
|
|
32
|
+
*/
|
|
33
|
+
viewportTarget?: keyof NViewport.CallbacksTypes;
|
|
28
34
|
}
|
|
29
35
|
|
|
30
36
|
/**
|
|
@@ -84,6 +90,7 @@ export class SplitText <
|
|
|
84
90
|
container: `#${this.prefix}`,
|
|
85
91
|
appendLetters: true,
|
|
86
92
|
appendLines: false,
|
|
93
|
+
viewportTarget: '',
|
|
87
94
|
};
|
|
88
95
|
}
|
|
89
96
|
|
|
@@ -174,7 +181,7 @@ export class SplitText <
|
|
|
174
181
|
// split the text
|
|
175
182
|
this.splitText();
|
|
176
183
|
if (this.prop.appendLines) {
|
|
177
|
-
this.addViewportCallback(
|
|
184
|
+
this.addViewportCallback(this.prop.viewportTarget, () => {
|
|
178
185
|
this.splitText();
|
|
179
186
|
});
|
|
180
187
|
}
|
|
@@ -1,67 +1,127 @@
|
|
|
1
|
-
import { addEventListener,
|
|
2
|
-
import { NCallbacks } from '../..';
|
|
3
|
-
import { SmoothScroll } from '../../components/scroll/smooth-scroll/SmoothScroll';
|
|
1
|
+
import { addEventListener, selectOne } from 'vevet-dom';
|
|
4
2
|
import { IRemovable } from '../types/general';
|
|
3
|
+
import { SmoothScroll } from '../../components/scroll/smooth-scroll/SmoothScroll';
|
|
4
|
+
import { randID } from '../common';
|
|
5
|
+
|
|
6
|
+
type Container = string | Element | SmoothScroll | Window;
|
|
7
|
+
|
|
8
|
+
interface ArgData {
|
|
9
|
+
scrollTop: number;
|
|
10
|
+
scrollLeft: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface Instance {
|
|
14
|
+
id: string;
|
|
15
|
+
container: Container;
|
|
16
|
+
callbacks: {
|
|
17
|
+
id: string;
|
|
18
|
+
callback: (
|
|
19
|
+
data: ArgData,
|
|
20
|
+
) => void;
|
|
21
|
+
}[];
|
|
22
|
+
isPassive: boolean;
|
|
23
|
+
listeners: IRemovable[];
|
|
24
|
+
}
|
|
5
25
|
|
|
6
26
|
interface Props {
|
|
7
|
-
|
|
27
|
+
container: Container;
|
|
28
|
+
callback: (data: ArgData) => void;
|
|
29
|
+
isPassive?: boolean;
|
|
8
30
|
}
|
|
9
31
|
|
|
32
|
+
let instances: Instance[] = [];
|
|
33
|
+
|
|
10
34
|
/**
|
|
11
35
|
* Add OnScroll event
|
|
12
36
|
*/
|
|
13
|
-
export default function onScroll (
|
|
14
|
-
|
|
15
|
-
callback
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
37
|
+
export default function onScroll ({
|
|
38
|
+
container,
|
|
39
|
+
callback,
|
|
40
|
+
isPassive = false,
|
|
41
|
+
}: Props): IRemovable {
|
|
42
|
+
// check if listeners for this element already exist
|
|
43
|
+
let instance = instances.find((data) => (
|
|
44
|
+
data.container === container && data.isPassive === isPassive
|
|
45
|
+
))!;
|
|
46
|
+
const callbackId = randID('scroll-event');
|
|
23
47
|
|
|
24
|
-
if
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
});
|
|
48
|
+
// if a listener exists, we just add a new callback to its stack
|
|
49
|
+
if (instance) {
|
|
50
|
+
instance.callbacks.push({
|
|
51
|
+
id: callbackId,
|
|
52
|
+
callback,
|
|
30
53
|
});
|
|
31
54
|
} else {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
55
|
+
// otherwise we create a new instance
|
|
56
|
+
instance = {
|
|
57
|
+
id: randID('scroll-event-instance'),
|
|
58
|
+
container,
|
|
59
|
+
callbacks: [{
|
|
60
|
+
id: callbackId,
|
|
61
|
+
callback,
|
|
62
|
+
}],
|
|
63
|
+
isPassive,
|
|
64
|
+
listeners: [],
|
|
65
|
+
};
|
|
66
|
+
instances.push(instance);
|
|
67
|
+
|
|
68
|
+
// vars
|
|
69
|
+
const { listeners } = instance;
|
|
70
|
+
|
|
71
|
+
// smooth scroll events
|
|
72
|
+
if (container instanceof SmoothScroll) {
|
|
73
|
+
listeners.push(
|
|
74
|
+
container.addCallback('scroll', () => {
|
|
75
|
+
const { scrollTop, scrollLeft } = container;
|
|
76
|
+
for (let index = 0; index < instance.callbacks.length; index += 1) {
|
|
77
|
+
instance.callbacks[index].callback({
|
|
78
|
+
scrollTop,
|
|
79
|
+
scrollLeft,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}),
|
|
83
|
+
);
|
|
35
84
|
} else {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
85
|
+
// dom scroll events
|
|
86
|
+
const isWindow = container instanceof Window;
|
|
87
|
+
const domContainer = selectOne(container) as any;
|
|
39
88
|
listeners.push(addEventListener(
|
|
40
|
-
|
|
89
|
+
domContainer,
|
|
41
90
|
'scroll',
|
|
42
91
|
() => {
|
|
43
|
-
const scrollTop =
|
|
44
|
-
?
|
|
45
|
-
const scrollLeft =
|
|
46
|
-
?
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
92
|
+
const scrollTop = isWindow
|
|
93
|
+
? domContainer.pageYOffset : domContainer.scrollTop;
|
|
94
|
+
const scrollLeft = isWindow
|
|
95
|
+
? domContainer.pageXOffset : domContainer.scrollLeft;
|
|
96
|
+
for (let index = 0; index < instance.callbacks.length; index += 1) {
|
|
97
|
+
instance.callbacks[index].callback({
|
|
98
|
+
scrollTop,
|
|
99
|
+
scrollLeft,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
passive: isPassive,
|
|
51
105
|
},
|
|
52
|
-
props ? {
|
|
53
|
-
passive: props.passive,
|
|
54
|
-
} : undefined,
|
|
55
106
|
));
|
|
56
107
|
}
|
|
57
108
|
}
|
|
58
109
|
|
|
59
110
|
return {
|
|
60
111
|
remove: () => {
|
|
61
|
-
|
|
62
|
-
|
|
112
|
+
const newCallbacks = instance.callbacks.filter((item) => {
|
|
113
|
+
if (item.id !== callbackId) {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
63
117
|
});
|
|
64
|
-
|
|
118
|
+
instance.callbacks = newCallbacks;
|
|
119
|
+
if (newCallbacks.length === 0) {
|
|
120
|
+
instance.listeners.forEach((listener) => {
|
|
121
|
+
listener.remove();
|
|
122
|
+
});
|
|
123
|
+
instances = instances.filter((item) => item.id !== instance.id);
|
|
124
|
+
}
|
|
65
125
|
},
|
|
66
126
|
};
|
|
67
127
|
}
|