@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.
@@ -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,3 +1,3 @@
1
- import Pagination from "./Pagination";
2
- export * from "./renderer";
1
+ import Pagination, { PaginationOptions } from "./Pagination";
3
2
  export { Pagination };
3
+ export type { PaginationOptions };
@@ -1,6 +1,10 @@
1
1
  import Renderer from "./Renderer";
2
2
  declare class BulletRenderer extends Renderer {
3
- private _childs;
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
  }
@@ -1,5 +1,8 @@
1
1
  import Renderer from "./Renderer";
2
2
  declare class FractionRenderer extends Renderer {
3
+ private _prevIndex;
4
+ private _prevTotal;
5
+ destroy(): void;
3
6
  render(): void;
4
7
  update(index: number): void;
5
8
  }
@@ -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;
@@ -4,6 +4,7 @@ declare class ScrollBulletRenderer extends Renderer {
4
4
  private _bulletSize;
5
5
  private _previousIndex;
6
6
  private _sliderIndex;
7
+ destroy(): void;
7
8
  render(): void;
8
9
  update(index: number): void;
9
10
  moveTo: (index: number) => void;
@@ -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.6.0
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
- var opacity = Math.min(1, Math.max(0, 1 - Math.abs(progress * scale)));
156
- target.style.opacity = "" + opacity;
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(_this._animationDuration).catch(function () {
453
+ flicking.next(animationDuration).catch(function () {
402
454
  return void 0;
403
455
  });
404
456
  } else {
405
- flicking.prev(_this._animationDuration).catch(function () {
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._childs = [];
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 (_, index) {
1226
- return renderBullet(bulletClass, index);
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, bulletActiveClass);
1347
+ addClass(bullet, activeClass);
1348
+ _this._prevIndex = index;
1234
1349
  }
1235
1350
 
1236
- bullet.addEventListener(BROWSER.MOUSE_DOWN, function (e) {
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._childs = bullets;
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 bullets = this._childs;
1258
- var activeClass = pagination.classPrefix + "-" + PAGINATION.BULLET_ACTIVE_SUFFIX;
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 activeBullet = bullets[index - anchorOffset];
1266
- addClass(activeBullet, activeClass);
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
- return _super !== null && _super.apply(this, arguments) || this;
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(anchorPoints.length);
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
- var anchorPoint = anchorPoints[index];
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.renderFraction,
1470
- renderFraction = _j === void 0 ? function (currentClass, totalClass) {
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.fractionTotalFormat,
1478
- fractionTotalFormat = _l === void 0 ? function (index) {
1641
+ _l = _b.fractionCurrentFormat,
1642
+ fractionCurrentFormat = _l === void 0 ? function (index) {
1479
1643
  return index.toString();
1480
1644
  } : _l,
1481
- _m = _b.scrollOnChange,
1482
- scrollOnChange = _m === void 0 ? function (index, ctx) {
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
- } : _m;
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;