1
- /**
2
- * Patterns bumper - Add bumping classes for sticky elements.
3
- */
4
-
5
- import Base from "../../core/base" ;
1
+ import { BasePattern } from "@patternslib/patternslib/src/core/basepattern" ;
6
2
import dom from "../../core/dom" ;
7
3
import Parser from "../../core/parser" ;
4
+ import registry from "@patternslib/patternslib/src/core/registry" ;
8
5
import utils from "../../core/utils" ;
9
6
10
7
export const parser = new Parser ( "bumper" ) ;
@@ -14,15 +11,14 @@ parser.addArgument("bump-remove");
14
11
parser . addArgument ( "unbump-add" ) ;
15
12
parser . addArgument ( "unbump-remove" , "bumped" ) ;
16
13
17
- export default Base . extend ( {
18
- name : "bumper" ,
19
- trigger : ".pat-bumper" ,
14
+ class Pattern extends BasePattern {
15
+ static name = "bumper" ;
16
+ static trigger = ".pat-bumper" ;
17
+ static parser = parser ;
20
18
21
19
async init ( ) {
22
20
// Based on: https://davidwalsh.name/detect-sticky
23
21
24
- this . options = parser . parse ( this . el , this . options ) ;
25
-
26
22
this . target_element = this . options . selector
27
23
? document . querySelector ( this . options . selector )
28
24
: this . el ;
@@ -31,7 +27,7 @@ export default Base.extend({
31
27
// e.g. CSS applied for injected content.
32
28
await utils . timeout ( 1 ) ;
33
29
this . _init ( ) ;
34
- } ,
30
+ }
35
31
36
32
_init ( ) {
37
33
const scroll_container_y = dom . find_scroll_container (
@@ -76,7 +72,7 @@ export default Base.extend({
76
72
) ;
77
73
observer_x . observe ( this . el ) ;
78
74
}
79
- } ,
75
+ }
80
76
81
77
_intersection_observer_callback ( entries ) {
82
78
const el = this . target_element ;
@@ -134,5 +130,10 @@ export default Base.extend({
134
130
el . classList . remove ( "bumped-bottom" ) ;
135
131
}
136
132
}
137
- } ,
138
- } ) ;
133
+ }
134
+ }
135
+
136
+ registry . register ( Pattern ) ;
137
+
138
+ export default Pattern ;
139
+ export { Pattern } ;
0 commit comments