@egjs/flicking-plugins 4.6.0 → 4.7.1
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/declaration/pagination/Pagination.d.ts +5 -1
- package/declaration/pagination/index.d.ts +2 -2
- package/declaration/pagination/renderer/BulletRenderer.d.ts +5 -1
- package/declaration/pagination/renderer/FractionRenderer.d.ts +3 -0
- package/declaration/pagination/renderer/Renderer.d.ts +3 -0
- package/declaration/pagination/renderer/ScrollBulletRenderer.d.ts +1 -0
- package/dist/plugins.esm.js +248 -67
- package/dist/plugins.esm.js.map +1 -1
- package/dist/plugins.js +252 -71
- package/dist/plugins.js.map +1 -1
- package/dist/plugins.min.js +2 -2
- package/dist/plugins.min.js.map +1 -1
- package/package.json +1 -1
- package/src/AutoPlay.ts +48 -3
- package/src/Fade.ts +4 -2
- package/src/pagination/Pagination.ts +7 -0
- package/src/pagination/index.ts +5 -2
- package/src/pagination/renderer/BulletRenderer.ts +73 -33
- package/src/pagination/renderer/FractionRenderer.ts +21 -6
- package/src/pagination/renderer/Renderer.ts +34 -1
- package/src/pagination/renderer/ScrollBulletRenderer.ts +38 -20
- package/declaration/pagination/renderer/index.d.ts +0 -2
- package/src/pagination/renderer/index.ts +0 -5
|
@@ -16,6 +16,7 @@ export interface PaginationOptions {
|
|
|
16
16
|
bulletCount: number;
|
|
17
17
|
renderBullet: (className: string, index: number) => string;
|
|
18
18
|
renderFraction: (currentClass: string, totalClass: string) => string;
|
|
19
|
+
renderActiveBullet: ((className: string, index: number) => string) | null;
|
|
19
20
|
fractionCurrentFormat: (index: number) => string;
|
|
20
21
|
fractionTotalFormat: (total: number) => string;
|
|
21
22
|
scrollOnChange: (index: number, ctx: ScrollContext) => any;
|
|
@@ -37,6 +38,7 @@ class Pagination implements Plugin {
|
|
|
37
38
|
private _classPrefix: PaginationOptions["classPrefix"];
|
|
38
39
|
private _bulletCount: PaginationOptions["bulletCount"];
|
|
39
40
|
private _renderBullet: PaginationOptions["renderBullet"];
|
|
41
|
+
private _renderActiveBullet: PaginationOptions["renderActiveBullet"];
|
|
40
42
|
private _renderFraction: PaginationOptions["renderFraction"];
|
|
41
43
|
private _fractionCurrentFormat: PaginationOptions["fractionCurrentFormat"];
|
|
42
44
|
private _fractionTotalFormat: PaginationOptions["fractionTotalFormat"];
|
|
@@ -48,6 +50,7 @@ class Pagination implements Plugin {
|
|
|
48
50
|
public get classPrefix() { return this._classPrefix; }
|
|
49
51
|
public get bulletCount() { return this._bulletCount; }
|
|
50
52
|
public get renderBullet() { return this._renderBullet; }
|
|
53
|
+
public get renderActiveBullet() { return this._renderActiveBullet; }
|
|
51
54
|
public get renderFraction() { return this._renderFraction; }
|
|
52
55
|
public get fractionCurrentFormat() { return this._fractionCurrentFormat; }
|
|
53
56
|
public get fractionTotalFormat() { return this._fractionTotalFormat; }
|
|
@@ -59,6 +62,7 @@ class Pagination implements Plugin {
|
|
|
59
62
|
public set bulletWrapperclassPrefixClass(val: PaginationOptions["classPrefix"]) { this._classPrefix = val; }
|
|
60
63
|
public set bulletCount(val: PaginationOptions["bulletCount"]) { this._bulletCount = val; }
|
|
61
64
|
public set renderBullet(val: PaginationOptions["renderBullet"]) { this._renderBullet = val; }
|
|
65
|
+
public set renderActiveBullet(val: PaginationOptions["renderActiveBullet"]) { this._renderActiveBullet = val; }
|
|
62
66
|
public set renderFraction(val: PaginationOptions["renderFraction"]) { this._renderFraction = val; }
|
|
63
67
|
public set fractionCurrentFormat(val: PaginationOptions["fractionCurrentFormat"]) { this._fractionCurrentFormat = val; }
|
|
64
68
|
public set fractionTotalFormat(val: PaginationOptions["fractionTotalFormat"]) { this._fractionTotalFormat = val; }
|
|
@@ -71,6 +75,7 @@ class Pagination implements Plugin {
|
|
|
71
75
|
classPrefix = PAGINATION.PREFIX,
|
|
72
76
|
bulletCount = 5,
|
|
73
77
|
renderBullet = (className: string) => `<span class="${className}"></span>`,
|
|
78
|
+
renderActiveBullet = null,
|
|
74
79
|
renderFraction = (currentClass: string, totalClass: string) => `<span class="${currentClass}"></span>/<span class="${totalClass}"></span>`,
|
|
75
80
|
fractionCurrentFormat = (index: number) => index.toString(),
|
|
76
81
|
fractionTotalFormat = (index: number) => index.toString(),
|
|
@@ -82,6 +87,7 @@ class Pagination implements Plugin {
|
|
|
82
87
|
this._classPrefix = classPrefix;
|
|
83
88
|
this._bulletCount = bulletCount;
|
|
84
89
|
this._renderBullet = renderBullet;
|
|
90
|
+
this._renderActiveBullet = renderActiveBullet;
|
|
85
91
|
this._renderFraction = renderFraction;
|
|
86
92
|
this._fractionCurrentFormat = fractionCurrentFormat;
|
|
87
93
|
this._fractionTotalFormat = fractionTotalFormat;
|
|
@@ -125,6 +131,7 @@ class Pagination implements Plugin {
|
|
|
125
131
|
flicking.off(EVENTS.WILL_RESTORE, this._onIndexChange);
|
|
126
132
|
flicking.off(EVENTS.PANEL_CHANGE, this.update);
|
|
127
133
|
|
|
134
|
+
this._renderer.destroy();
|
|
128
135
|
this._removeAllChilds();
|
|
129
136
|
this._flicking = null;
|
|
130
137
|
}
|
package/src/pagination/index.ts
CHANGED
|
@@ -1,28 +1,48 @@
|
|
|
1
|
-
import { FlickingError } from "@egjs/flicking";
|
|
2
|
-
|
|
3
1
|
import { PAGINATION } from "../../const";
|
|
4
|
-
import { BROWSER } from "../../event";
|
|
5
2
|
import { addClass, removeClass } from "../../utils";
|
|
6
3
|
|
|
7
4
|
import Renderer from "./Renderer";
|
|
8
5
|
|
|
9
6
|
class BulletRenderer extends Renderer {
|
|
10
|
-
private
|
|
7
|
+
private _bullets: HTMLElement[] = [];
|
|
8
|
+
private _prevIndex: number = -1;
|
|
9
|
+
|
|
10
|
+
private get _bulletClass() {
|
|
11
|
+
const pagination = this._pagination;
|
|
12
|
+
return `${pagination.classPrefix}-${PAGINATION.BULLET_SUFFIX}`;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
private get _activeClass() {
|
|
16
|
+
const pagination = this._pagination;
|
|
17
|
+
return `${pagination.classPrefix}-${PAGINATION.BULLET_ACTIVE_SUFFIX}`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public destroy() {
|
|
21
|
+
this._bullets = [];
|
|
22
|
+
this._prevIndex = -1;
|
|
23
|
+
}
|
|
11
24
|
|
|
12
25
|
public render() {
|
|
13
26
|
const flicking = this._flicking;
|
|
14
27
|
const pagination = this._pagination;
|
|
28
|
+
const wrapper = this._wrapper;
|
|
29
|
+
const bulletClass = this._bulletClass;
|
|
30
|
+
const activeClass = this._activeClass;
|
|
15
31
|
const renderBullet = pagination.renderBullet;
|
|
32
|
+
const renderActiveBullet = pagination.renderActiveBullet;
|
|
16
33
|
const bulletWrapperClass = `${pagination.classPrefix}-${PAGINATION.BULLET_WRAPPER_SUFFIX}`;
|
|
17
|
-
const bulletClass = `${pagination.classPrefix}-${PAGINATION.BULLET_SUFFIX}`;
|
|
18
|
-
const bulletActiveClass = `${pagination.classPrefix}-${PAGINATION.BULLET_ACTIVE_SUFFIX}`;
|
|
19
34
|
const anchorPoints = flicking.camera.anchorPoints;
|
|
20
|
-
const wrapper = this._wrapper;
|
|
21
35
|
|
|
22
36
|
addClass(wrapper, bulletWrapperClass);
|
|
23
37
|
|
|
24
38
|
wrapper.innerHTML = anchorPoints
|
|
25
|
-
.map((
|
|
39
|
+
.map((anchorPoint, index) => {
|
|
40
|
+
if (renderActiveBullet && anchorPoint.panel.index === flicking.index) {
|
|
41
|
+
return renderActiveBullet(bulletClass, index);
|
|
42
|
+
} else {
|
|
43
|
+
return renderBullet(bulletClass, index);
|
|
44
|
+
}
|
|
45
|
+
})
|
|
26
46
|
.join("\n");
|
|
27
47
|
|
|
28
48
|
const bullets = [].slice.call(wrapper.children) as HTMLElement[];
|
|
@@ -31,46 +51,66 @@ class BulletRenderer extends Renderer {
|
|
|
31
51
|
const anchorPoint = anchorPoints[index];
|
|
32
52
|
|
|
33
53
|
if (anchorPoint.panel.index === flicking.index) {
|
|
34
|
-
addClass(bullet,
|
|
54
|
+
addClass(bullet, activeClass);
|
|
55
|
+
this._prevIndex = index;
|
|
35
56
|
}
|
|
36
57
|
|
|
37
|
-
|
|
38
|
-
e.stopPropagation();
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
bullet.addEventListener(BROWSER.TOUCH_START, e => {
|
|
42
|
-
e.stopPropagation();
|
|
43
|
-
}, { passive: true });
|
|
44
|
-
|
|
45
|
-
bullet.addEventListener(BROWSER.CLICK, () => {
|
|
46
|
-
flicking.moveTo(anchorPoint.panel.index)
|
|
47
|
-
.catch(err => {
|
|
48
|
-
if (err instanceof FlickingError) return;
|
|
49
|
-
throw err;
|
|
50
|
-
});
|
|
51
|
-
});
|
|
58
|
+
this._addBulletEvents(bullet, index);
|
|
52
59
|
});
|
|
53
60
|
|
|
54
|
-
this.
|
|
61
|
+
this._bullets = bullets;
|
|
55
62
|
}
|
|
56
63
|
|
|
57
64
|
public update(index: number) {
|
|
58
65
|
const flicking = this._flicking;
|
|
59
66
|
const pagination = this._pagination;
|
|
60
|
-
const
|
|
61
|
-
const
|
|
67
|
+
const wrapper = this._wrapper;
|
|
68
|
+
const bullets = this._bullets;
|
|
69
|
+
const bulletClass = this._bulletClass;
|
|
70
|
+
const activeClass = this._activeClass;
|
|
71
|
+
const prevIndex = this._prevIndex;
|
|
62
72
|
const anchorPoints = flicking.camera.anchorPoints;
|
|
73
|
+
const renderBullet = pagination.renderBullet;
|
|
74
|
+
const renderActiveBullet = pagination.renderActiveBullet;
|
|
63
75
|
|
|
64
76
|
if (anchorPoints.length <= 0) return;
|
|
65
77
|
|
|
66
|
-
bullets.forEach(bullet => {
|
|
67
|
-
removeClass(bullet, activeClass);
|
|
68
|
-
});
|
|
69
|
-
|
|
70
78
|
const anchorOffset = anchorPoints[0].panel.index;
|
|
71
|
-
const
|
|
79
|
+
const activeBulletIndex = index - anchorOffset;
|
|
80
|
+
|
|
81
|
+
if (prevIndex === activeBulletIndex) return;
|
|
82
|
+
|
|
83
|
+
if (renderActiveBullet) {
|
|
84
|
+
const prevBullet = bullets[prevIndex];
|
|
85
|
+
if (prevBullet) {
|
|
86
|
+
const newBullet = this._createBulletFromString(
|
|
87
|
+
renderBullet(bulletClass, prevIndex),
|
|
88
|
+
prevIndex
|
|
89
|
+
);
|
|
90
|
+
prevBullet.parentElement!.replaceChild(newBullet, prevBullet);
|
|
91
|
+
bullets[prevIndex] = newBullet;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const activeBullet = bullets[activeBulletIndex];
|
|
95
|
+
const newActiveBullet = this._createBulletFromString(
|
|
96
|
+
renderActiveBullet(`${bulletClass} ${activeClass}`, activeBulletIndex),
|
|
97
|
+
activeBulletIndex
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
wrapper.replaceChild(newActiveBullet, activeBullet);
|
|
101
|
+
bullets[activeBulletIndex] = newActiveBullet;
|
|
102
|
+
} else {
|
|
103
|
+
const activeBullet = bullets[activeBulletIndex];
|
|
104
|
+
const prevBullet = bullets[prevIndex];
|
|
105
|
+
|
|
106
|
+
if (prevBullet) {
|
|
107
|
+
removeClass(prevBullet, activeClass);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
addClass(activeBullet, activeClass);
|
|
111
|
+
}
|
|
72
112
|
|
|
73
|
-
|
|
113
|
+
this._prevIndex = activeBulletIndex;
|
|
74
114
|
}
|
|
75
115
|
}
|
|
76
116
|
|
|
@@ -4,6 +4,14 @@ import { addClass } from "../../utils";
|
|
|
4
4
|
import Renderer from "./Renderer";
|
|
5
5
|
|
|
6
6
|
class FractionRenderer extends Renderer {
|
|
7
|
+
private _prevIndex: number = -1;
|
|
8
|
+
private _prevTotal: number = -1;
|
|
9
|
+
|
|
10
|
+
public destroy(): void {
|
|
11
|
+
this._prevIndex = -1;
|
|
12
|
+
this._prevTotal = -1;
|
|
13
|
+
}
|
|
14
|
+
|
|
7
15
|
public render() {
|
|
8
16
|
const flicking = this._flicking;
|
|
9
17
|
const wrapper = this._wrapper;
|
|
@@ -23,19 +31,26 @@ class FractionRenderer extends Renderer {
|
|
|
23
31
|
const flicking = this._flicking;
|
|
24
32
|
const wrapper = this._wrapper;
|
|
25
33
|
const pagination = this._pagination;
|
|
26
|
-
const fractionCurrentClass = `${pagination.classPrefix}-${PAGINATION.FRACTION_CURRENT_SUFFIX}`;
|
|
27
|
-
const fractionTotalClass = `${pagination.classPrefix}-${PAGINATION.FRACTION_TOTAL_SUFFIX}`;
|
|
28
34
|
|
|
29
|
-
const currentWrapper = wrapper.querySelector(`.${fractionCurrentClass}`) as HTMLElement;
|
|
30
|
-
const totalWrapper = wrapper.querySelector(`.${fractionTotalClass}`) as HTMLElement;
|
|
31
35
|
const anchorPoints = flicking.camera.anchorPoints;
|
|
32
|
-
|
|
33
36
|
const currentIndex = anchorPoints.length > 0
|
|
34
37
|
? index - anchorPoints[0].panel.index + 1
|
|
35
38
|
: 0;
|
|
39
|
+
const anchorCount = anchorPoints.length;
|
|
40
|
+
|
|
41
|
+
if (currentIndex === this._prevIndex && anchorCount === this._prevTotal) return;
|
|
42
|
+
|
|
43
|
+
const fractionCurrentSelector = `.${pagination.classPrefix}-${PAGINATION.FRACTION_CURRENT_SUFFIX}`;
|
|
44
|
+
const fractionTotalSelector = `.${pagination.classPrefix}-${PAGINATION.FRACTION_TOTAL_SUFFIX}`;
|
|
45
|
+
|
|
46
|
+
const currentWrapper = wrapper.querySelector(fractionCurrentSelector) as HTMLElement;
|
|
47
|
+
const totalWrapper = wrapper.querySelector(fractionTotalSelector) as HTMLElement;
|
|
36
48
|
|
|
37
49
|
currentWrapper.innerHTML = pagination.fractionCurrentFormat(currentIndex);
|
|
38
|
-
totalWrapper.innerHTML = pagination.fractionTotalFormat(
|
|
50
|
+
totalWrapper.innerHTML = pagination.fractionTotalFormat(anchorCount);
|
|
51
|
+
|
|
52
|
+
this._prevIndex = currentIndex;
|
|
53
|
+
this._prevTotal = anchorCount;
|
|
39
54
|
}
|
|
40
55
|
}
|
|
41
56
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import Flicking from "@egjs/flicking";
|
|
1
|
+
import Flicking, { FlickingError } from "@egjs/flicking";
|
|
2
2
|
|
|
3
|
+
import { BROWSER } from "../../event";
|
|
3
4
|
import Pagination from "../Pagination";
|
|
4
5
|
|
|
5
6
|
export interface RendererOptions {
|
|
@@ -23,8 +24,40 @@ abstract class Renderer {
|
|
|
23
24
|
this._wrapper = wrapper;
|
|
24
25
|
}
|
|
25
26
|
|
|
27
|
+
public abstract destroy(): void;
|
|
26
28
|
public abstract render(): void;
|
|
27
29
|
public abstract update(index: number): void;
|
|
30
|
+
|
|
31
|
+
protected _createBulletFromString(html: string, index: number) {
|
|
32
|
+
const range = document.createRange();
|
|
33
|
+
const frag = range.createContextualFragment(html);
|
|
34
|
+
const bullet = frag.firstChild as HTMLElement;
|
|
35
|
+
|
|
36
|
+
this._addBulletEvents(bullet, index);
|
|
37
|
+
|
|
38
|
+
return bullet;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
protected _addBulletEvents(bullet: HTMLElement, index: number) {
|
|
42
|
+
const anchorPoints = this._flicking.camera.anchorPoints;
|
|
43
|
+
const panelIndex = anchorPoints[index].panel.index;
|
|
44
|
+
|
|
45
|
+
bullet.addEventListener(BROWSER.MOUSE_DOWN, e => {
|
|
46
|
+
e.stopPropagation();
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
bullet.addEventListener(BROWSER.TOUCH_START, e => {
|
|
50
|
+
e.stopPropagation();
|
|
51
|
+
}, { passive: true });
|
|
52
|
+
|
|
53
|
+
bullet.addEventListener(BROWSER.CLICK, () => {
|
|
54
|
+
this._flicking.moveTo(panelIndex)
|
|
55
|
+
.catch(err => {
|
|
56
|
+
if (err instanceof FlickingError) return;
|
|
57
|
+
throw err;
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
28
61
|
}
|
|
29
62
|
|
|
30
63
|
export default Renderer;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { DIRECTION
|
|
1
|
+
import { DIRECTION } from "@egjs/flicking";
|
|
2
2
|
|
|
3
3
|
import { PAGINATION } from "../../const";
|
|
4
|
-
import { BROWSER } from "../../event";
|
|
5
4
|
import { addClass, removeClass } from "../../utils";
|
|
6
5
|
|
|
7
6
|
import Renderer from "./Renderer";
|
|
@@ -12,6 +11,13 @@ class ScrollBulletRenderer extends Renderer {
|
|
|
12
11
|
private _previousIndex: number = -1;
|
|
13
12
|
private _sliderIndex: number = -1;
|
|
14
13
|
|
|
14
|
+
public destroy(): void {
|
|
15
|
+
this._bullets = [];
|
|
16
|
+
this._bulletSize = 0;
|
|
17
|
+
this._previousIndex = -1;
|
|
18
|
+
this._sliderIndex = -1;
|
|
19
|
+
}
|
|
20
|
+
|
|
15
21
|
public render() {
|
|
16
22
|
const wrapper = this._wrapper;
|
|
17
23
|
const flicking = this._flicking;
|
|
@@ -38,23 +44,7 @@ class ScrollBulletRenderer extends Renderer {
|
|
|
38
44
|
const bullets = [].slice.call(sliderEl.children) as HTMLElement[];
|
|
39
45
|
|
|
40
46
|
bullets.forEach((bullet, index) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
bullet.addEventListener(BROWSER.MOUSE_DOWN, e => {
|
|
44
|
-
e.stopPropagation();
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
bullet.addEventListener(BROWSER.TOUCH_START, e => {
|
|
48
|
-
e.stopPropagation();
|
|
49
|
-
}, { passive: true });
|
|
50
|
-
|
|
51
|
-
bullet.addEventListener(BROWSER.CLICK, () => {
|
|
52
|
-
flicking.moveTo(anchorPoint.panel.index)
|
|
53
|
-
.catch(err => {
|
|
54
|
-
if (err instanceof FlickingError) return;
|
|
55
|
-
throw err;
|
|
56
|
-
});
|
|
57
|
-
});
|
|
47
|
+
this._addBulletEvents(bullet, index);
|
|
58
48
|
});
|
|
59
49
|
|
|
60
50
|
if (bullets.length <= 0) return;
|
|
@@ -66,6 +56,7 @@ class ScrollBulletRenderer extends Renderer {
|
|
|
66
56
|
|
|
67
57
|
this._bullets = bullets;
|
|
68
58
|
this._bulletSize = bulletSize;
|
|
59
|
+
this._previousIndex = -1;
|
|
69
60
|
|
|
70
61
|
this.update(this._flicking.index);
|
|
71
62
|
|
|
@@ -80,12 +71,16 @@ class ScrollBulletRenderer extends Renderer {
|
|
|
80
71
|
const bullets = this._bullets;
|
|
81
72
|
const prevIndex = this._previousIndex;
|
|
82
73
|
|
|
74
|
+
const renderBullet = pagination.renderBullet;
|
|
75
|
+
const renderActiveBullet = pagination.renderActiveBullet;
|
|
76
|
+
|
|
83
77
|
const anchorPoints = flicking.camera.anchorPoints;
|
|
84
78
|
const anchorOffset = anchorPoints[0].panel.index;
|
|
85
79
|
const activeIndex = index - anchorOffset;
|
|
86
80
|
|
|
87
81
|
if (anchorPoints.length <= 0) return;
|
|
88
82
|
|
|
83
|
+
const bulletClass = `${pagination.classPrefix}-${PAGINATION.BULLET_SUFFIX}`;
|
|
89
84
|
const bulletActiveClass = `${pagination.classPrefix}-${PAGINATION.BULLET_ACTIVE_SUFFIX}`;
|
|
90
85
|
const prevClassPrefix = `${pagination.classPrefix}-${PAGINATION.SCROLL_PREV_SUFFIX}`;
|
|
91
86
|
const nextClassPrefix = `${pagination.classPrefix}-${PAGINATION.SCROLL_NEXT_SUFFIX}`;
|
|
@@ -95,6 +90,29 @@ class ScrollBulletRenderer extends Renderer {
|
|
|
95
90
|
const prevClassRegex = new RegExp(`^${prevClassPrefix}`);
|
|
96
91
|
const nextClassRegex = new RegExp(`^${nextClassPrefix}`);
|
|
97
92
|
|
|
93
|
+
if (renderActiveBullet) {
|
|
94
|
+
const prevBullet = bullets[prevIndex];
|
|
95
|
+
if (prevBullet) {
|
|
96
|
+
const newBullet = this._createBulletFromString(
|
|
97
|
+
renderBullet(bulletClass, prevIndex),
|
|
98
|
+
prevIndex
|
|
99
|
+
);
|
|
100
|
+
prevBullet.parentElement!.replaceChild(newBullet, prevBullet);
|
|
101
|
+
bullets[prevIndex] = newBullet;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const activeBullet = bullets[activeIndex];
|
|
105
|
+
if (activeBullet) {
|
|
106
|
+
const newActiveBullet = this._createBulletFromString(
|
|
107
|
+
renderActiveBullet(bulletClass, activeIndex),
|
|
108
|
+
activeIndex
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
activeBullet.parentElement!.replaceChild(newActiveBullet, activeBullet);
|
|
112
|
+
bullets[activeIndex] = newActiveBullet;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
98
116
|
bullets.forEach((bullet, idx) => {
|
|
99
117
|
const indexOffset = idx - activeIndex;
|
|
100
118
|
const classList = bullet.className.split(" ");
|
|
@@ -116,7 +134,7 @@ class ScrollBulletRenderer extends Renderer {
|
|
|
116
134
|
|
|
117
135
|
pagination.scrollOnChange(activeIndex, {
|
|
118
136
|
total: bullets.length,
|
|
119
|
-
prevIndex
|
|
137
|
+
prevIndex,
|
|
120
138
|
sliderIndex: this._sliderIndex,
|
|
121
139
|
direction: activeIndex > prevIndex ? DIRECTION.NEXT : DIRECTION.PREV,
|
|
122
140
|
bullets: [...bullets],
|