@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
|
@@ -8,6 +8,7 @@ export interface PaginationOptions {
|
|
|
8
8
|
bulletCount: number;
|
|
9
9
|
renderBullet: (className: string, index: number) => string;
|
|
10
10
|
renderFraction: (currentClass: string, totalClass: string) => string;
|
|
11
|
+
renderActiveBullet: ((className: string, index: number) => string) | null;
|
|
11
12
|
fractionCurrentFormat: (index: number) => string;
|
|
12
13
|
fractionTotalFormat: (total: number) => string;
|
|
13
14
|
scrollOnChange: (index: number, ctx: ScrollContext) => any;
|
|
@@ -22,6 +23,7 @@ declare class Pagination implements Plugin {
|
|
|
22
23
|
private _classPrefix;
|
|
23
24
|
private _bulletCount;
|
|
24
25
|
private _renderBullet;
|
|
26
|
+
private _renderActiveBullet;
|
|
25
27
|
private _renderFraction;
|
|
26
28
|
private _fractionCurrentFormat;
|
|
27
29
|
private _fractionTotalFormat;
|
|
@@ -32,6 +34,7 @@ declare class Pagination implements Plugin {
|
|
|
32
34
|
get classPrefix(): string;
|
|
33
35
|
get bulletCount(): PaginationOptions["bulletCount"];
|
|
34
36
|
get renderBullet(): PaginationOptions["renderBullet"];
|
|
37
|
+
get renderActiveBullet(): PaginationOptions["renderActiveBullet"];
|
|
35
38
|
get renderFraction(): PaginationOptions["renderFraction"];
|
|
36
39
|
get fractionCurrentFormat(): PaginationOptions["fractionCurrentFormat"];
|
|
37
40
|
get fractionTotalFormat(): PaginationOptions["fractionTotalFormat"];
|
|
@@ -42,11 +45,12 @@ declare class Pagination implements Plugin {
|
|
|
42
45
|
set bulletWrapperclassPrefixClass(val: PaginationOptions["classPrefix"]);
|
|
43
46
|
set bulletCount(val: PaginationOptions["bulletCount"]);
|
|
44
47
|
set renderBullet(val: PaginationOptions["renderBullet"]);
|
|
48
|
+
set renderActiveBullet(val: PaginationOptions["renderActiveBullet"]);
|
|
45
49
|
set renderFraction(val: PaginationOptions["renderFraction"]);
|
|
46
50
|
set fractionCurrentFormat(val: PaginationOptions["fractionCurrentFormat"]);
|
|
47
51
|
set fractionTotalFormat(val: PaginationOptions["fractionTotalFormat"]);
|
|
48
52
|
set scrollOnChange(val: PaginationOptions["scrollOnChange"]);
|
|
49
|
-
constructor({ parentEl, selector, type, classPrefix, bulletCount, renderBullet, renderFraction, fractionCurrentFormat, fractionTotalFormat, scrollOnChange }?: Partial<PaginationOptions>);
|
|
53
|
+
constructor({ parentEl, selector, type, classPrefix, bulletCount, renderBullet, renderActiveBullet, renderFraction, fractionCurrentFormat, fractionTotalFormat, scrollOnChange }?: Partial<PaginationOptions>);
|
|
50
54
|
init(flicking: Flicking): void;
|
|
51
55
|
destroy(): void;
|
|
52
56
|
update: () => void;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import Renderer from "./Renderer";
|
|
2
2
|
declare class BulletRenderer extends Renderer {
|
|
3
|
-
private
|
|
3
|
+
private _bullets;
|
|
4
|
+
private _prevIndex;
|
|
5
|
+
private get _bulletClass();
|
|
6
|
+
private get _activeClass();
|
|
7
|
+
destroy(): void;
|
|
4
8
|
render(): void;
|
|
5
9
|
update(index: number): void;
|
|
6
10
|
}
|
|
@@ -10,7 +10,10 @@ declare abstract class Renderer {
|
|
|
10
10
|
protected _pagination: Pagination;
|
|
11
11
|
protected _wrapper: HTMLElement;
|
|
12
12
|
constructor({ flicking, pagination, wrapper }: RendererOptions);
|
|
13
|
+
abstract destroy(): void;
|
|
13
14
|
abstract render(): void;
|
|
14
15
|
abstract update(index: number): void;
|
|
16
|
+
protected _createBulletFromString(html: string, index: number): HTMLElement;
|
|
17
|
+
protected _addBulletEvents(bullet: HTMLElement, index: number): void;
|
|
15
18
|
}
|
|
16
19
|
export default Renderer;
|
package/dist/plugins.esm.js
CHANGED
|
@@ -4,9 +4,9 @@ name: @egjs/flicking-plugins
|
|
|
4
4
|
license: MIT
|
|
5
5
|
author: NAVER Corp.
|
|
6
6
|
repository: https://github.com/naver/egjs-flicking-plugins
|
|
7
|
-
version: 4.
|
|
7
|
+
version: 4.7.1
|
|
8
8
|
*/
|
|
9
|
-
import { EVENTS, DIRECTION, FlickingError, clamp } from '@egjs/flicking';
|
|
9
|
+
import { EVENTS, MOVE_TYPE, DIRECTION, FlickingError, clamp } from '@egjs/flicking';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* You can apply parallax effect while panel is moving.
|
|
@@ -152,8 +152,11 @@ function () {
|
|
|
152
152
|
var progress = panel.outsetProgress;
|
|
153
153
|
var el = panel.element;
|
|
154
154
|
var target = selector ? el.querySelector(selector) : el;
|
|
155
|
-
|
|
156
|
-
target
|
|
155
|
+
|
|
156
|
+
if (target) {
|
|
157
|
+
var opacity = Math.min(1, Math.max(0, 1 - Math.abs(progress * scale)));
|
|
158
|
+
target.style.opacity = "" + opacity;
|
|
159
|
+
}
|
|
157
160
|
});
|
|
158
161
|
};
|
|
159
162
|
|
|
@@ -397,12 +400,61 @@ function () {
|
|
|
397
400
|
|
|
398
401
|
this._playing = true;
|
|
399
402
|
this._timerId = window.setTimeout(function () {
|
|
403
|
+
var _a, _b;
|
|
404
|
+
|
|
405
|
+
var animationDuration = _this._animationDuration || flicking.duration;
|
|
406
|
+
var moveType = flicking.moveType; // for freeScroll
|
|
407
|
+
|
|
408
|
+
if (moveType === MOVE_TYPE.FREE_SCROLL || (moveType === null || moveType === void 0 ? void 0 : moveType[0]) === MOVE_TYPE.FREE_SCROLL) {
|
|
409
|
+
var range = flicking.camera.range;
|
|
410
|
+
var cameraPosition = flicking.camera.position;
|
|
411
|
+
var currentPanel = flicking.currentPanel;
|
|
412
|
+
var prevPanel = currentPanel.prev();
|
|
413
|
+
var nextPanel = currentPanel.next();
|
|
414
|
+
var currentPosition = currentPanel.position;
|
|
415
|
+
var nextPosition = (_a = nextPanel === null || nextPanel === void 0 ? void 0 : nextPanel.position) !== null && _a !== void 0 ? _a : range.max;
|
|
416
|
+
var prevPosition = (_b = prevPanel === null || prevPanel === void 0 ? void 0 : prevPanel.position) !== null && _b !== void 0 ? _b : range.min; // circular: prev (last) > cur (0) => prev(-1) < cur(0)
|
|
417
|
+
|
|
418
|
+
if (prevPosition > currentPosition) {
|
|
419
|
+
prevPosition = range.min - (range.max - prevPosition);
|
|
420
|
+
} // current (last) > next (0)
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
if (nextPosition < currentPosition) {
|
|
424
|
+
nextPosition += range.max;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
if (direction === DIRECTION.NEXT) {
|
|
428
|
+
// prev - cur - camera - next
|
|
429
|
+
var size = nextPosition - currentPosition;
|
|
430
|
+
var restSize = nextPosition - cameraPosition;
|
|
431
|
+
|
|
432
|
+
if (cameraPosition < currentPosition) {
|
|
433
|
+
// prev - camera - cur - next
|
|
434
|
+
restSize = nextPosition - cameraPosition;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
animationDuration *= restSize / size;
|
|
438
|
+
} else {
|
|
439
|
+
// prev - caemra - cur - next
|
|
440
|
+
var size = currentPosition - prevPosition;
|
|
441
|
+
var restSize = cameraPosition - prevPosition;
|
|
442
|
+
|
|
443
|
+
if (cameraPosition > currentPosition) {
|
|
444
|
+
// prev - cur - camera - next
|
|
445
|
+
restSize = cameraPosition - prevPosition;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
animationDuration *= restSize / size;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
|
|
400
452
|
if (direction === DIRECTION.NEXT) {
|
|
401
|
-
flicking.next(
|
|
453
|
+
flicking.next(animationDuration).catch(function () {
|
|
402
454
|
return void 0;
|
|
403
455
|
});
|
|
404
456
|
} else {
|
|
405
|
-
flicking.prev(
|
|
457
|
+
flicking.prev(animationDuration).catch(function () {
|
|
406
458
|
return void 0;
|
|
407
459
|
});
|
|
408
460
|
}
|
|
@@ -1195,6 +1247,39 @@ function () {
|
|
|
1195
1247
|
this._wrapper = wrapper;
|
|
1196
1248
|
}
|
|
1197
1249
|
|
|
1250
|
+
var __proto = Renderer.prototype;
|
|
1251
|
+
|
|
1252
|
+
__proto._createBulletFromString = function (html, index) {
|
|
1253
|
+
var range = document.createRange();
|
|
1254
|
+
var frag = range.createContextualFragment(html);
|
|
1255
|
+
var bullet = frag.firstChild;
|
|
1256
|
+
|
|
1257
|
+
this._addBulletEvents(bullet, index);
|
|
1258
|
+
|
|
1259
|
+
return bullet;
|
|
1260
|
+
};
|
|
1261
|
+
|
|
1262
|
+
__proto._addBulletEvents = function (bullet, index) {
|
|
1263
|
+
var _this = this;
|
|
1264
|
+
|
|
1265
|
+
var anchorPoints = this._flicking.camera.anchorPoints;
|
|
1266
|
+
var panelIndex = anchorPoints[index].panel.index;
|
|
1267
|
+
bullet.addEventListener(BROWSER.MOUSE_DOWN, function (e) {
|
|
1268
|
+
e.stopPropagation();
|
|
1269
|
+
});
|
|
1270
|
+
bullet.addEventListener(BROWSER.TOUCH_START, function (e) {
|
|
1271
|
+
e.stopPropagation();
|
|
1272
|
+
}, {
|
|
1273
|
+
passive: true
|
|
1274
|
+
});
|
|
1275
|
+
bullet.addEventListener(BROWSER.CLICK, function () {
|
|
1276
|
+
_this._flicking.moveTo(panelIndex).catch(function (err) {
|
|
1277
|
+
if (err instanceof FlickingError) return;
|
|
1278
|
+
throw err;
|
|
1279
|
+
});
|
|
1280
|
+
});
|
|
1281
|
+
};
|
|
1282
|
+
|
|
1198
1283
|
return Renderer;
|
|
1199
1284
|
}();
|
|
1200
1285
|
|
|
@@ -1206,64 +1291,112 @@ function (_super) {
|
|
|
1206
1291
|
function BulletRenderer() {
|
|
1207
1292
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
1208
1293
|
|
|
1209
|
-
_this.
|
|
1294
|
+
_this._bullets = [];
|
|
1295
|
+
_this._prevIndex = -1;
|
|
1210
1296
|
return _this;
|
|
1211
1297
|
}
|
|
1212
1298
|
|
|
1213
1299
|
var __proto = BulletRenderer.prototype;
|
|
1300
|
+
Object.defineProperty(__proto, "_bulletClass", {
|
|
1301
|
+
get: function () {
|
|
1302
|
+
var pagination = this._pagination;
|
|
1303
|
+
return pagination.classPrefix + "-" + PAGINATION.BULLET_SUFFIX;
|
|
1304
|
+
},
|
|
1305
|
+
enumerable: false,
|
|
1306
|
+
configurable: true
|
|
1307
|
+
});
|
|
1308
|
+
Object.defineProperty(__proto, "_activeClass", {
|
|
1309
|
+
get: function () {
|
|
1310
|
+
var pagination = this._pagination;
|
|
1311
|
+
return pagination.classPrefix + "-" + PAGINATION.BULLET_ACTIVE_SUFFIX;
|
|
1312
|
+
},
|
|
1313
|
+
enumerable: false,
|
|
1314
|
+
configurable: true
|
|
1315
|
+
});
|
|
1316
|
+
|
|
1317
|
+
__proto.destroy = function () {
|
|
1318
|
+
this._bullets = [];
|
|
1319
|
+
this._prevIndex = -1;
|
|
1320
|
+
};
|
|
1214
1321
|
|
|
1215
1322
|
__proto.render = function () {
|
|
1323
|
+
var _this = this;
|
|
1324
|
+
|
|
1216
1325
|
var flicking = this._flicking;
|
|
1217
1326
|
var pagination = this._pagination;
|
|
1327
|
+
var wrapper = this._wrapper;
|
|
1328
|
+
var bulletClass = this._bulletClass;
|
|
1329
|
+
var activeClass = this._activeClass;
|
|
1218
1330
|
var renderBullet = pagination.renderBullet;
|
|
1331
|
+
var renderActiveBullet = pagination.renderActiveBullet;
|
|
1219
1332
|
var bulletWrapperClass = pagination.classPrefix + "-" + PAGINATION.BULLET_WRAPPER_SUFFIX;
|
|
1220
|
-
var bulletClass = pagination.classPrefix + "-" + PAGINATION.BULLET_SUFFIX;
|
|
1221
|
-
var bulletActiveClass = pagination.classPrefix + "-" + PAGINATION.BULLET_ACTIVE_SUFFIX;
|
|
1222
1333
|
var anchorPoints = flicking.camera.anchorPoints;
|
|
1223
|
-
var wrapper = this._wrapper;
|
|
1224
1334
|
addClass(wrapper, bulletWrapperClass);
|
|
1225
|
-
wrapper.innerHTML = anchorPoints.map(function (
|
|
1226
|
-
|
|
1335
|
+
wrapper.innerHTML = anchorPoints.map(function (anchorPoint, index) {
|
|
1336
|
+
if (renderActiveBullet && anchorPoint.panel.index === flicking.index) {
|
|
1337
|
+
return renderActiveBullet(bulletClass, index);
|
|
1338
|
+
} else {
|
|
1339
|
+
return renderBullet(bulletClass, index);
|
|
1340
|
+
}
|
|
1227
1341
|
}).join("\n");
|
|
1228
1342
|
var bullets = [].slice.call(wrapper.children);
|
|
1229
1343
|
bullets.forEach(function (bullet, index) {
|
|
1230
1344
|
var anchorPoint = anchorPoints[index];
|
|
1231
1345
|
|
|
1232
1346
|
if (anchorPoint.panel.index === flicking.index) {
|
|
1233
|
-
addClass(bullet,
|
|
1347
|
+
addClass(bullet, activeClass);
|
|
1348
|
+
_this._prevIndex = index;
|
|
1234
1349
|
}
|
|
1235
1350
|
|
|
1236
|
-
|
|
1237
|
-
e.stopPropagation();
|
|
1238
|
-
});
|
|
1239
|
-
bullet.addEventListener(BROWSER.TOUCH_START, function (e) {
|
|
1240
|
-
e.stopPropagation();
|
|
1241
|
-
}, {
|
|
1242
|
-
passive: true
|
|
1243
|
-
});
|
|
1244
|
-
bullet.addEventListener(BROWSER.CLICK, function () {
|
|
1245
|
-
flicking.moveTo(anchorPoint.panel.index).catch(function (err) {
|
|
1246
|
-
if (err instanceof FlickingError) return;
|
|
1247
|
-
throw err;
|
|
1248
|
-
});
|
|
1249
|
-
});
|
|
1351
|
+
_this._addBulletEvents(bullet, index);
|
|
1250
1352
|
});
|
|
1251
|
-
this.
|
|
1353
|
+
this._bullets = bullets;
|
|
1252
1354
|
};
|
|
1253
1355
|
|
|
1254
1356
|
__proto.update = function (index) {
|
|
1255
1357
|
var flicking = this._flicking;
|
|
1256
1358
|
var pagination = this._pagination;
|
|
1257
|
-
var
|
|
1258
|
-
var
|
|
1359
|
+
var wrapper = this._wrapper;
|
|
1360
|
+
var bullets = this._bullets;
|
|
1361
|
+
var bulletClass = this._bulletClass;
|
|
1362
|
+
var activeClass = this._activeClass;
|
|
1363
|
+
var prevIndex = this._prevIndex;
|
|
1259
1364
|
var anchorPoints = flicking.camera.anchorPoints;
|
|
1365
|
+
var renderBullet = pagination.renderBullet;
|
|
1366
|
+
var renderActiveBullet = pagination.renderActiveBullet;
|
|
1260
1367
|
if (anchorPoints.length <= 0) return;
|
|
1261
|
-
bullets.forEach(function (bullet) {
|
|
1262
|
-
removeClass(bullet, activeClass);
|
|
1263
|
-
});
|
|
1264
1368
|
var anchorOffset = anchorPoints[0].panel.index;
|
|
1265
|
-
var
|
|
1266
|
-
|
|
1369
|
+
var activeBulletIndex = index - anchorOffset;
|
|
1370
|
+
if (prevIndex === activeBulletIndex) return;
|
|
1371
|
+
|
|
1372
|
+
if (renderActiveBullet) {
|
|
1373
|
+
var prevBullet = bullets[prevIndex];
|
|
1374
|
+
|
|
1375
|
+
if (prevBullet) {
|
|
1376
|
+
var newBullet = this._createBulletFromString(renderBullet(bulletClass, prevIndex), prevIndex);
|
|
1377
|
+
|
|
1378
|
+
prevBullet.parentElement.replaceChild(newBullet, prevBullet);
|
|
1379
|
+
bullets[prevIndex] = newBullet;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
var activeBullet = bullets[activeBulletIndex];
|
|
1383
|
+
|
|
1384
|
+
var newActiveBullet = this._createBulletFromString(renderActiveBullet(bulletClass + " " + activeClass, activeBulletIndex), activeBulletIndex);
|
|
1385
|
+
|
|
1386
|
+
wrapper.replaceChild(newActiveBullet, activeBullet);
|
|
1387
|
+
bullets[activeBulletIndex] = newActiveBullet;
|
|
1388
|
+
} else {
|
|
1389
|
+
var activeBullet = bullets[activeBulletIndex];
|
|
1390
|
+
var prevBullet = bullets[prevIndex];
|
|
1391
|
+
|
|
1392
|
+
if (prevBullet) {
|
|
1393
|
+
removeClass(prevBullet, activeClass);
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
addClass(activeBullet, activeClass);
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
this._prevIndex = activeBulletIndex;
|
|
1267
1400
|
};
|
|
1268
1401
|
|
|
1269
1402
|
return BulletRenderer;
|
|
@@ -1275,11 +1408,20 @@ function (_super) {
|
|
|
1275
1408
|
__extends(FractionRenderer, _super);
|
|
1276
1409
|
|
|
1277
1410
|
function FractionRenderer() {
|
|
1278
|
-
|
|
1411
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
1412
|
+
|
|
1413
|
+
_this._prevIndex = -1;
|
|
1414
|
+
_this._prevTotal = -1;
|
|
1415
|
+
return _this;
|
|
1279
1416
|
}
|
|
1280
1417
|
|
|
1281
1418
|
var __proto = FractionRenderer.prototype;
|
|
1282
1419
|
|
|
1420
|
+
__proto.destroy = function () {
|
|
1421
|
+
this._prevIndex = -1;
|
|
1422
|
+
this._prevTotal = -1;
|
|
1423
|
+
};
|
|
1424
|
+
|
|
1283
1425
|
__proto.render = function () {
|
|
1284
1426
|
var flicking = this._flicking;
|
|
1285
1427
|
var wrapper = this._wrapper;
|
|
@@ -1296,14 +1438,18 @@ function (_super) {
|
|
|
1296
1438
|
var flicking = this._flicking;
|
|
1297
1439
|
var wrapper = this._wrapper;
|
|
1298
1440
|
var pagination = this._pagination;
|
|
1299
|
-
var fractionCurrentClass = pagination.classPrefix + "-" + PAGINATION.FRACTION_CURRENT_SUFFIX;
|
|
1300
|
-
var fractionTotalClass = pagination.classPrefix + "-" + PAGINATION.FRACTION_TOTAL_SUFFIX;
|
|
1301
|
-
var currentWrapper = wrapper.querySelector("." + fractionCurrentClass);
|
|
1302
|
-
var totalWrapper = wrapper.querySelector("." + fractionTotalClass);
|
|
1303
1441
|
var anchorPoints = flicking.camera.anchorPoints;
|
|
1304
1442
|
var currentIndex = anchorPoints.length > 0 ? index - anchorPoints[0].panel.index + 1 : 0;
|
|
1443
|
+
var anchorCount = anchorPoints.length;
|
|
1444
|
+
if (currentIndex === this._prevIndex && anchorCount === this._prevTotal) return;
|
|
1445
|
+
var fractionCurrentSelector = "." + pagination.classPrefix + "-" + PAGINATION.FRACTION_CURRENT_SUFFIX;
|
|
1446
|
+
var fractionTotalSelector = "." + pagination.classPrefix + "-" + PAGINATION.FRACTION_TOTAL_SUFFIX;
|
|
1447
|
+
var currentWrapper = wrapper.querySelector(fractionCurrentSelector);
|
|
1448
|
+
var totalWrapper = wrapper.querySelector(fractionTotalSelector);
|
|
1305
1449
|
currentWrapper.innerHTML = pagination.fractionCurrentFormat(currentIndex);
|
|
1306
|
-
totalWrapper.innerHTML = pagination.fractionTotalFormat(
|
|
1450
|
+
totalWrapper.innerHTML = pagination.fractionTotalFormat(anchorCount);
|
|
1451
|
+
this._prevIndex = currentIndex;
|
|
1452
|
+
this._prevTotal = anchorCount;
|
|
1307
1453
|
};
|
|
1308
1454
|
|
|
1309
1455
|
return FractionRenderer;
|
|
@@ -1336,7 +1482,16 @@ function (_super) {
|
|
|
1336
1482
|
|
|
1337
1483
|
var __proto = ScrollBulletRenderer.prototype;
|
|
1338
1484
|
|
|
1485
|
+
__proto.destroy = function () {
|
|
1486
|
+
this._bullets = [];
|
|
1487
|
+
this._bulletSize = 0;
|
|
1488
|
+
this._previousIndex = -1;
|
|
1489
|
+
this._sliderIndex = -1;
|
|
1490
|
+
};
|
|
1491
|
+
|
|
1339
1492
|
__proto.render = function () {
|
|
1493
|
+
var _this = this;
|
|
1494
|
+
|
|
1340
1495
|
var wrapper = this._wrapper;
|
|
1341
1496
|
var flicking = this._flicking;
|
|
1342
1497
|
var pagination = this._pagination;
|
|
@@ -1356,21 +1511,7 @@ function (_super) {
|
|
|
1356
1511
|
}).join("\n");
|
|
1357
1512
|
var bullets = [].slice.call(sliderEl.children);
|
|
1358
1513
|
bullets.forEach(function (bullet, index) {
|
|
1359
|
-
|
|
1360
|
-
bullet.addEventListener(BROWSER.MOUSE_DOWN, function (e) {
|
|
1361
|
-
e.stopPropagation();
|
|
1362
|
-
});
|
|
1363
|
-
bullet.addEventListener(BROWSER.TOUCH_START, function (e) {
|
|
1364
|
-
e.stopPropagation();
|
|
1365
|
-
}, {
|
|
1366
|
-
passive: true
|
|
1367
|
-
});
|
|
1368
|
-
bullet.addEventListener(BROWSER.CLICK, function () {
|
|
1369
|
-
flicking.moveTo(anchorPoint.panel.index).catch(function (err) {
|
|
1370
|
-
if (err instanceof FlickingError) return;
|
|
1371
|
-
throw err;
|
|
1372
|
-
});
|
|
1373
|
-
});
|
|
1514
|
+
_this._addBulletEvents(bullet, index);
|
|
1374
1515
|
});
|
|
1375
1516
|
if (bullets.length <= 0) return;
|
|
1376
1517
|
var bulletStyle = getComputedStyle(bullets[0]);
|
|
@@ -1378,6 +1519,7 @@ function (_super) {
|
|
|
1378
1519
|
wrapper.style.width = bulletSize * pagination.bulletCount + "px";
|
|
1379
1520
|
this._bullets = bullets;
|
|
1380
1521
|
this._bulletSize = bulletSize;
|
|
1522
|
+
this._previousIndex = -1;
|
|
1381
1523
|
this.update(this._flicking.index);
|
|
1382
1524
|
window.requestAnimationFrame(function () {
|
|
1383
1525
|
removeClass(wrapper, uninitClass);
|
|
@@ -1389,10 +1531,13 @@ function (_super) {
|
|
|
1389
1531
|
var flicking = this._flicking;
|
|
1390
1532
|
var bullets = this._bullets;
|
|
1391
1533
|
var prevIndex = this._previousIndex;
|
|
1534
|
+
var renderBullet = pagination.renderBullet;
|
|
1535
|
+
var renderActiveBullet = pagination.renderActiveBullet;
|
|
1392
1536
|
var anchorPoints = flicking.camera.anchorPoints;
|
|
1393
1537
|
var anchorOffset = anchorPoints[0].panel.index;
|
|
1394
1538
|
var activeIndex = index - anchorOffset;
|
|
1395
1539
|
if (anchorPoints.length <= 0) return;
|
|
1540
|
+
var bulletClass = pagination.classPrefix + "-" + PAGINATION.BULLET_SUFFIX;
|
|
1396
1541
|
var bulletActiveClass = pagination.classPrefix + "-" + PAGINATION.BULLET_ACTIVE_SUFFIX;
|
|
1397
1542
|
var prevClassPrefix = pagination.classPrefix + "-" + PAGINATION.SCROLL_PREV_SUFFIX;
|
|
1398
1543
|
var nextClassPrefix = pagination.classPrefix + "-" + PAGINATION.SCROLL_NEXT_SUFFIX;
|
|
@@ -1407,6 +1552,27 @@ function (_super) {
|
|
|
1407
1552
|
|
|
1408
1553
|
var prevClassRegex = new RegExp("^" + prevClassPrefix);
|
|
1409
1554
|
var nextClassRegex = new RegExp("^" + nextClassPrefix);
|
|
1555
|
+
|
|
1556
|
+
if (renderActiveBullet) {
|
|
1557
|
+
var prevBullet = bullets[prevIndex];
|
|
1558
|
+
|
|
1559
|
+
if (prevBullet) {
|
|
1560
|
+
var newBullet = this._createBulletFromString(renderBullet(bulletClass, prevIndex), prevIndex);
|
|
1561
|
+
|
|
1562
|
+
prevBullet.parentElement.replaceChild(newBullet, prevBullet);
|
|
1563
|
+
bullets[prevIndex] = newBullet;
|
|
1564
|
+
}
|
|
1565
|
+
|
|
1566
|
+
var activeBullet = bullets[activeIndex];
|
|
1567
|
+
|
|
1568
|
+
if (activeBullet) {
|
|
1569
|
+
var newActiveBullet = this._createBulletFromString(renderActiveBullet(bulletClass, activeIndex), activeIndex);
|
|
1570
|
+
|
|
1571
|
+
activeBullet.parentElement.replaceChild(newActiveBullet, activeBullet);
|
|
1572
|
+
bullets[activeIndex] = newActiveBullet;
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1410
1576
|
bullets.forEach(function (bullet, idx) {
|
|
1411
1577
|
var indexOffset = idx - activeIndex;
|
|
1412
1578
|
var classList = bullet.className.split(" ");
|
|
@@ -1466,22 +1632,24 @@ function () {
|
|
|
1466
1632
|
renderBullet = _h === void 0 ? function (className) {
|
|
1467
1633
|
return "<span class=\"" + className + "\"></span>";
|
|
1468
1634
|
} : _h,
|
|
1469
|
-
_j = _b.
|
|
1470
|
-
|
|
1635
|
+
_j = _b.renderActiveBullet,
|
|
1636
|
+
renderActiveBullet = _j === void 0 ? null : _j,
|
|
1637
|
+
_k = _b.renderFraction,
|
|
1638
|
+
renderFraction = _k === void 0 ? function (currentClass, totalClass) {
|
|
1471
1639
|
return "<span class=\"" + currentClass + "\"></span>/<span class=\"" + totalClass + "\"></span>";
|
|
1472
|
-
} : _j,
|
|
1473
|
-
_k = _b.fractionCurrentFormat,
|
|
1474
|
-
fractionCurrentFormat = _k === void 0 ? function (index) {
|
|
1475
|
-
return index.toString();
|
|
1476
1640
|
} : _k,
|
|
1477
|
-
_l = _b.
|
|
1478
|
-
|
|
1641
|
+
_l = _b.fractionCurrentFormat,
|
|
1642
|
+
fractionCurrentFormat = _l === void 0 ? function (index) {
|
|
1479
1643
|
return index.toString();
|
|
1480
1644
|
} : _l,
|
|
1481
|
-
_m = _b.
|
|
1482
|
-
|
|
1645
|
+
_m = _b.fractionTotalFormat,
|
|
1646
|
+
fractionTotalFormat = _m === void 0 ? function (index) {
|
|
1647
|
+
return index.toString();
|
|
1648
|
+
} : _m,
|
|
1649
|
+
_o = _b.scrollOnChange,
|
|
1650
|
+
scrollOnChange = _o === void 0 ? function (index, ctx) {
|
|
1483
1651
|
return ctx.moveTo(index);
|
|
1484
|
-
} :
|
|
1652
|
+
} : _o;
|
|
1485
1653
|
/* Internal Values */
|
|
1486
1654
|
|
|
1487
1655
|
|
|
@@ -1503,6 +1671,7 @@ function () {
|
|
|
1503
1671
|
this._classPrefix = classPrefix;
|
|
1504
1672
|
this._bulletCount = bulletCount;
|
|
1505
1673
|
this._renderBullet = renderBullet;
|
|
1674
|
+
this._renderActiveBullet = renderActiveBullet;
|
|
1506
1675
|
this._renderFraction = renderFraction;
|
|
1507
1676
|
this._fractionCurrentFormat = fractionCurrentFormat;
|
|
1508
1677
|
this._fractionTotalFormat = fractionTotalFormat;
|
|
@@ -1567,6 +1736,16 @@ function () {
|
|
|
1567
1736
|
enumerable: false,
|
|
1568
1737
|
configurable: true
|
|
1569
1738
|
});
|
|
1739
|
+
Object.defineProperty(__proto, "renderActiveBullet", {
|
|
1740
|
+
get: function () {
|
|
1741
|
+
return this._renderActiveBullet;
|
|
1742
|
+
},
|
|
1743
|
+
set: function (val) {
|
|
1744
|
+
this._renderActiveBullet = val;
|
|
1745
|
+
},
|
|
1746
|
+
enumerable: false,
|
|
1747
|
+
configurable: true
|
|
1748
|
+
});
|
|
1570
1749
|
Object.defineProperty(__proto, "renderFraction", {
|
|
1571
1750
|
get: function () {
|
|
1572
1751
|
return this._renderFraction;
|
|
@@ -1649,6 +1828,8 @@ function () {
|
|
|
1649
1828
|
flicking.off(EVENTS.WILL_RESTORE, this._onIndexChange);
|
|
1650
1829
|
flicking.off(EVENTS.PANEL_CHANGE, this.update);
|
|
1651
1830
|
|
|
1831
|
+
this._renderer.destroy();
|
|
1832
|
+
|
|
1652
1833
|
this._removeAllChilds();
|
|
1653
1834
|
|
|
1654
1835
|
this._flicking = null;
|