@egjs/flicking 4.14.1 → 4.14.2-beta.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.
@@ -4,7 +4,7 @@ name: @egjs/flicking
4
4
  license: MIT
5
5
  author: NAVER Corp.
6
6
  repository: https://github.com/naver/egjs-flicking
7
- version: 4.14.1
7
+ version: 4.14.2-beta.1
8
8
  */
9
9
  (function (global, factory) {
10
10
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -26,7 +26,7 @@ version: 4.14.1
26
26
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
27
27
  PERFORMANCE OF THIS SOFTWARE.
28
28
  ***************************************************************************** */
29
- /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
29
+ /* global Reflect, Promise, SuppressedError, Symbol */
30
30
 
31
31
  var extendStatics$3 = function (d, b) {
32
32
  extendStatics$3 = Object.setPrototypeOf || {
@@ -96,8 +96,12 @@ version: 4.14.1
96
96
  f,
97
97
  y,
98
98
  t,
99
- g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
100
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function () {
99
+ g;
100
+ return g = {
101
+ next: verb(0),
102
+ "throw": verb(1),
103
+ "return": verb(2)
104
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
101
105
  return this;
102
106
  }), g;
103
107
  function verb(n) {
@@ -222,7 +226,7 @@ version: 4.14.1
222
226
  license: MIT
223
227
  author: NAVER Corp.
224
228
  repository: https://github.com/naver/egjs-component
225
- version: 3.0.5
229
+ version: 3.0.4
226
230
  */
227
231
  /*! *****************************************************************************
228
232
  Copyright (c) Microsoft Corporation.
@@ -554,6 +558,7 @@ version: 4.14.1
554
558
  * ```
555
559
  */
556
560
  __proto.off = function (eventName, handlerToDetach) {
561
+ var e_1, _a;
557
562
  // Detach all event handlers.
558
563
  if (isUndefined(eventName)) {
559
564
  this._eventHandler = {};
@@ -575,14 +580,28 @@ version: 4.14.1
575
580
  // Detach single event handler
576
581
  var handlerList = this._eventHandler[eventName];
577
582
  if (handlerList) {
578
- var length = handlerList.length;
579
- for (var i = 0; i < length; ++i) {
580
- if (handlerList[i] === handlerToDetach) {
581
- handlerList.splice(i, 1);
582
- if (length <= 1) {
583
- delete this._eventHandler[eventName];
583
+ var idx = 0;
584
+ try {
585
+ for (var handlerList_1 = __values(handlerList), handlerList_1_1 = handlerList_1.next(); !handlerList_1_1.done; handlerList_1_1 = handlerList_1.next()) {
586
+ var handlerFunction = handlerList_1_1.value;
587
+ if (handlerFunction === handlerToDetach) {
588
+ handlerList.splice(idx, 1);
589
+ if (handlerList.length <= 0) {
590
+ delete this._eventHandler[eventName];
591
+ }
592
+ break;
584
593
  }
585
- break;
594
+ idx++;
595
+ }
596
+ } catch (e_1_1) {
597
+ e_1 = {
598
+ error: e_1_1
599
+ };
600
+ } finally {
601
+ try {
602
+ if (handlerList_1_1 && !handlerList_1_1.done && (_a = handlerList_1.return)) _a.call(handlerList_1);
603
+ } finally {
604
+ if (e_1) throw e_1.error;
586
605
  }
587
606
  }
588
607
  }
@@ -597,7 +616,7 @@ version: 4.14.1
597
616
  * Component.VERSION; // ex) 3.0.0
598
617
  * @memberof Component
599
618
  */
600
- Component.VERSION = "3.0.5";
619
+ Component.VERSION = "3.0.4";
601
620
  return Component;
602
621
  }();
603
622
 
@@ -1394,6 +1413,9 @@ version: 4.14.1
1394
1413
  * @ko autoResize 옵션을 사용할 때 크기 변화를 감지하고 Flicking의 resize를 호출하는 컴포넌트
1395
1414
  */
1396
1415
  var AutoResizer = /*#__PURE__*/function () {
1416
+ /**
1417
+ * @param flicking
1418
+ */
1397
1419
  function AutoResizer(flicking) {
1398
1420
  var _this = this;
1399
1421
  this._onResizeWrapper = function () {
@@ -1843,8 +1865,8 @@ version: 4.14.1
1843
1865
  name: @egjs/agent
1844
1866
  license: MIT
1845
1867
  author: NAVER Corp.
1846
- repository: git+https://github.com/naver/egjs-agent.git
1847
- version: 2.4.4
1868
+ repository: git+https://github.com/naver/agent.git
1869
+ version: 2.4.3
1848
1870
  */
1849
1871
  function some(arr, callback) {
1850
1872
  var length = arr.length;
@@ -2146,12 +2168,12 @@ version: 4.14.1
2146
2168
  });
2147
2169
  var chromiumBrand = findPresetBrand(CHROMIUM_PRESETS, brands);
2148
2170
  browser.chromium = !!chromiumBrand.brand;
2149
- browser.chromiumVersion = chromiumBrand.version || "-1";
2171
+ browser.chromiumVersion = chromiumBrand.version;
2150
2172
 
2151
2173
  if (!browser.chromium) {
2152
2174
  var webkitBrand = findPresetBrand(WEBKIT_PRESETS, brands);
2153
2175
  browser.webkit = !!webkitBrand.brand;
2154
- browser.webkitVersion = webkitBrand.version || "-1";
2176
+ browser.webkitVersion = webkitBrand.version;
2155
2177
  }
2156
2178
 
2157
2179
  var platfomResult = find(OS_PRESETS, function (preset) {
@@ -2160,7 +2182,7 @@ version: 4.14.1
2160
2182
  os.name = platfomResult ? platfomResult.id : "";
2161
2183
 
2162
2184
  if (osData) {
2163
- os.version = osData.platformVersion || "-1";
2185
+ os.version = osData.platformVersion;
2164
2186
  }
2165
2187
 
2166
2188
  if (fullVersionList && fullVersionList.length) {
@@ -3085,7 +3107,7 @@ version: 4.14.1
3085
3107
  license: MIT
3086
3108
  author: NAVER Corp.
3087
3109
  repository: https://github.com/naver/egjs-axes
3088
- version: 3.9.2
3110
+ version: 3.9.1
3089
3111
  */
3090
3112
 
3091
3113
  /*! *****************************************************************************
@@ -4011,19 +4033,6 @@ version: 4.14.1
4011
4033
  var deltaTime = latestInterval ? timeStamp - latestInterval.timestamp : 0;
4012
4034
  var velocityX = prevEvent ? prevEvent.velocityX : 0;
4013
4035
  var velocityY = prevEvent ? prevEvent.velocityY : 0;
4014
- var directionX = prevEvent ? prevEvent.directionX : 1;
4015
- var directionY = prevEvent ? prevEvent.directionY : 1;
4016
- // If offset is 0, it inherits the direction of the previous event.
4017
- if (offsetX > 0) {
4018
- directionX = 1;
4019
- } else if (offsetX < 0) {
4020
- directionX = -1;
4021
- }
4022
- if (offsetY > 0) {
4023
- directionY = 1;
4024
- } else if (offsetY < 0) {
4025
- directionY = -1;
4026
- }
4027
4036
  if (!latestInterval || deltaTime >= VELOCITY_INTERVAL) {
4028
4037
  if (latestInterval) {
4029
4038
  _a = [(deltaX - latestInterval.deltaX) / deltaTime, (deltaY - latestInterval.deltaY) / deltaTime], velocityX = _a[0], velocityY = _a[1];
@@ -4043,8 +4052,6 @@ version: 4.14.1
4043
4052
  deltaY: deltaY,
4044
4053
  offsetX: offsetX,
4045
4054
  offsetY: offsetY,
4046
- directionX: directionX,
4047
- directionY: directionY,
4048
4055
  velocityX: velocityX,
4049
4056
  velocityY: velocityY,
4050
4057
  preventSystemEvent: true
@@ -5508,7 +5515,7 @@ version: 4.14.1
5508
5515
  * eg.Axes.VERSION; // ex) 3.3.3
5509
5516
  * ```
5510
5517
  */
5511
- Axes.VERSION = "3.9.2";
5518
+ Axes.VERSION = "3.9.1";
5512
5519
  /* eslint-enable */
5513
5520
  /**
5514
5521
  * @name TRANSFORM
@@ -5725,10 +5732,7 @@ version: 4.14.1
5725
5732
  * @return {PanInput} An instance of a module itself <ko>모듈 자신의 인스턴스</ko>
5726
5733
  */
5727
5734
  __proto.enable = function () {
5728
- var activeEvent = convertInputType(this.options.inputType);
5729
- if (!activeEvent) {
5730
- throw new Error("PanInput cannot be enabled if there is no available input event.");
5731
- } else if (!this._enabled) {
5735
+ if (!this._enabled) {
5732
5736
  this._enabled = true;
5733
5737
  this._originalCssProps = setCssProps(this.element, this.options, this._direction);
5734
5738
  }
@@ -5862,7 +5866,7 @@ version: 4.14.1
5862
5866
  this._detachWindowEvent(activeEvent);
5863
5867
  clearTimeout(this._rightEdgeTimer);
5864
5868
  var prevEvent = activeEvent.prevEvent;
5865
- var velocity = this._isOverThreshold ? this._getOffset([Math.abs(prevEvent.velocityX) * prevEvent.directionX, Math.abs(prevEvent.velocityY) * prevEvent.directionY], [useDirection(DIRECTION_HORIZONTAL, this._direction), useDirection(DIRECTION_VERTICAL, this._direction)]) : [0, 0];
5869
+ var velocity = this._isOverThreshold ? this._getOffset([Math.abs(prevEvent.velocityX) * (prevEvent.offsetX < 0 ? -1 : 1), Math.abs(prevEvent.velocityY) * (prevEvent.offsetY < 0 ? -1 : 1)], [useDirection(DIRECTION_HORIZONTAL, this._direction), useDirection(DIRECTION_VERTICAL, this._direction)]) : [0, 0];
5866
5870
  activeEvent.onRelease();
5867
5871
  this._observer.release(this, prevEvent, velocity);
5868
5872
  };
@@ -6937,7 +6941,7 @@ version: 4.14.1
6937
6941
  if (!axes) {
6938
6942
  return Promise.reject(new FlickingError(MESSAGE.NOT_ATTACHED_TO_FLICKING, CODE.NOT_ATTACHED_TO_FLICKING));
6939
6943
  }
6940
- var startPos = axes.get([POSITION_KEY])[POSITION_KEY];
6944
+ var startPos = this.getCurrentPosition();
6941
6945
  if (startPos === position) {
6942
6946
  var flicking = getFlickingAttached(this._flicking);
6943
6947
  flicking.camera.lookAt(position);
@@ -6981,6 +6985,14 @@ version: 4.14.1
6981
6985
  animate();
6982
6986
  });
6983
6987
  };
6988
+ /**
6989
+ * Returns the current axes position
6990
+ * @ko 현재 axes의 position을 반환합니다.
6991
+ */
6992
+ __proto.getCurrentPosition = function () {
6993
+ var _a, _b;
6994
+ return (_b = (_a = this._axes) === null || _a === void 0 ? void 0 : _a.get([POSITION_KEY])[POSITION_KEY]) !== null && _b !== void 0 ? _b : 0;
6995
+ };
6984
6996
  __proto.updateDirection = function () {
6985
6997
  var flicking = getFlickingAttached(this._flicking);
6986
6998
  var axes = this._axes;
@@ -7318,16 +7330,20 @@ version: 4.14.1
7318
7330
  newActivePanel = _a.newActivePanel,
7319
7331
  axesEvent = _a.axesEvent;
7320
7332
  return __awaiter(this, void 0, void 0, function () {
7321
- var flicking, animate, state;
7333
+ var flicking, nextDuration, animate, state;
7322
7334
  var _this = this;
7323
7335
  return __generator(this, function (_b) {
7324
7336
  flicking = getFlickingAttached(this._flicking);
7337
+ nextDuration = duration;
7338
+ if (Math.abs(nextDuration - position) < flicking.animationThreshold) {
7339
+ nextDuration = 0;
7340
+ }
7325
7341
  animate = function () {
7326
- return _this._controller.animateTo(position, duration, axesEvent);
7342
+ return _this._controller.animateTo(position, nextDuration, axesEvent);
7327
7343
  };
7328
7344
  state = this._controller.state;
7329
7345
  state.targetPanel = newActivePanel;
7330
- if (duration <= 0) {
7346
+ if (nextDuration <= 0) {
7331
7347
  return [2 /*return*/, animate()];
7332
7348
  } else {
7333
7349
  return [2 /*return*/, animate().then(function () {
@@ -7353,6 +7369,7 @@ version: 4.14.1
7353
7369
  });
7354
7370
  });
7355
7371
  };
7372
+
7356
7373
  __proto._getPosition = function (panel, direction) {
7357
7374
  if (direction === void 0) {
7358
7375
  direction = DIRECTION.NONE;
@@ -7918,8 +7935,9 @@ version: 4.14.1
7918
7935
  var anchors = camera.anchorPoints;
7919
7936
  var firstAnchor = anchors[0];
7920
7937
  var lastAnchor = anchors[anchors.length - 1];
7921
- var shouldBounceToFirst = position <= cameraRange.min && isBetween(firstAnchor.panel.index, indexRange.min, indexRange.max);
7922
- var shouldBounceToLast = position >= cameraRange.max && isBetween(lastAnchor.panel.index, indexRange.min, indexRange.max);
7938
+ // position bounce으로 인하여 범위를 넘어가야 동작하도록 변경
7939
+ var shouldBounceToFirst = position < cameraRange.min && isBetween(firstAnchor.panel.index, indexRange.min, indexRange.max);
7940
+ var shouldBounceToLast = position > cameraRange.max && isBetween(lastAnchor.panel.index, indexRange.min, indexRange.max);
7923
7941
  var isAdjacent = adjacentAnchor && (indexRange.min <= indexRange.max ? isBetween(adjacentAnchor.index, indexRange.min, indexRange.max) : adjacentAnchor.index >= indexRange.min || adjacentAnchor.index <= indexRange.max);
7924
7942
  if (shouldBounceToFirst || shouldBounceToLast) {
7925
7943
  // In bounce area
@@ -9186,7 +9204,7 @@ version: 4.14.1
9186
9204
  license: MIT
9187
9205
  author: NAVER Corp.
9188
9206
  repository: https://github.com/naver/egjs-imready
9189
- version: 1.4.2
9207
+ version: 1.4.1
9190
9208
  */
9191
9209
 
9192
9210
  /******************************************************************************
@@ -9384,7 +9402,9 @@ version: 4.14.1
9384
9402
  // I'm not ready
9385
9403
  return;
9386
9404
  }
9387
- _this.onReady();
9405
+ // I'm pre-ready and ready!
9406
+ var withPreReady = !_this.hasDataSize && !_this.hasLoading;
9407
+ _this.onReady(withPreReady);
9388
9408
  };
9389
9409
  _this.options = __assign({
9390
9410
  prefix: "data-"
@@ -9400,7 +9420,7 @@ version: 4.14.1
9400
9420
  __proto.check = function () {
9401
9421
  if (this.isSkip || !this.checkElement()) {
9402
9422
  // I'm Ready
9403
- this.onAlreadyReady();
9423
+ this.onAlreadyReady(true);
9404
9424
  return false;
9405
9425
  }
9406
9426
  if (this.hasDataSize) {
@@ -9446,7 +9466,6 @@ version: 4.14.1
9446
9466
  });
9447
9467
  };
9448
9468
  __proto.onPreReady = function () {
9449
- // 이전에 호출되었거나 ready가 발생했다면 preReady를 발생하지 않는다.
9450
9469
  if (this.isPreReady) {
9451
9470
  return;
9452
9471
  }
@@ -9457,18 +9476,19 @@ version: 4.14.1
9457
9476
  isSkip: this.isSkip
9458
9477
  });
9459
9478
  };
9460
- __proto.onReady = function () {
9461
- var isPreReady = this.isPreReady;
9462
- this.isPreReady = true;
9479
+ __proto.onReady = function (withPreReady) {
9463
9480
  if (this.isReady) {
9464
9481
  return;
9465
9482
  }
9483
+ withPreReady = !this.isPreReady && withPreReady;
9484
+ if (withPreReady) {
9485
+ this.isPreReady = true;
9486
+ }
9466
9487
  this.removeAutoSizer();
9467
9488
  this.isReady = true;
9468
- // preReady가 호출이 되지 않았으면 ready 이벤트만 발생하고 대신 withPreReady가 활성화
9469
9489
  this.trigger("ready", {
9470
9490
  element: this.element,
9471
- withPreReady: !isPreReady,
9491
+ withPreReady: withPreReady,
9472
9492
  hasLoading: this.hasLoading,
9473
9493
  isSkip: this.isSkip
9474
9494
  });
@@ -9485,10 +9505,10 @@ version: 4.14.1
9485
9505
  _this.onPreReady();
9486
9506
  });
9487
9507
  };
9488
- __proto.onAlreadyReady = function () {
9508
+ __proto.onAlreadyReady = function (withPreReady) {
9489
9509
  var _this = this;
9490
9510
  setTimeout(function () {
9491
- _this.onReady();
9511
+ _this.onReady(withPreReady);
9492
9512
  });
9493
9513
  };
9494
9514
  Loader.EVENTS = [];
@@ -9507,7 +9527,7 @@ version: 4.14.1
9507
9527
  __proto.check = function () {
9508
9528
  if (this.isSkip) {
9509
9529
  // I'm Ready
9510
- this.onAlreadyReady();
9530
+ this.onAlreadyReady(true);
9511
9531
  return false;
9512
9532
  }
9513
9533
  if (this.hasDataSize) {
@@ -9714,17 +9734,18 @@ version: 4.14.1
9714
9734
  loader.setHasLoading(children.some(function (el) {
9715
9735
  return hasLoadingAttribute(el, prefix);
9716
9736
  }));
9737
+ var withPreReady = false;
9717
9738
  var childrenImReady = this.clone().on("error", function (e) {
9718
9739
  loader.onError(e.target);
9719
9740
  }).on("ready", function () {
9720
- loader.onReady();
9741
+ loader.onReady(withPreReady);
9721
9742
  });
9722
9743
  loader.on("requestChildren", function () {
9723
9744
  // has not data size
9724
9745
  var contentElements = getContentElements(element, tags, _this.options.prefix);
9725
9746
  childrenImReady.check(contentElements).on("preReady", function (e) {
9726
- if (!e.isReady) {
9727
- // isReady가 아닌 경우에만 발생 / ready에서 동시에 발생할 가능성 있음.
9747
+ withPreReady = e.isReady;
9748
+ if (!withPreReady) {
9728
9749
  loader.onPreReady();
9729
9750
  }
9730
9751
  });
@@ -10178,6 +10199,17 @@ version: 4.14.1
10178
10199
  });
10179
10200
  return Promise.resolve();
10180
10201
  };
10202
+ /**
10203
+ * Return Rendered Panels
10204
+ * @ko 렌더링이 된 패널을 반환합니다.
10205
+ * @return {Panel[]}
10206
+ */
10207
+ __proto.getRenderedPanels = function () {
10208
+ var flicking = getFlickingAttached(this._flicking);
10209
+ return flicking.renderer.panels.filter(function (panel) {
10210
+ return panel.rendered;
10211
+ });
10212
+ };
10181
10213
  /**
10182
10214
  * Update all panel sizes
10183
10215
  * @ko 모든 패널의 크기를 업데이트합니다
@@ -10538,6 +10570,13 @@ version: 4.14.1
10538
10570
  __proto._afterRender = function () {
10539
10571
  var flicking = getFlickingAttached(this._flicking);
10540
10572
  flicking.camera.applyTransform();
10573
+ if (flicking.useCSSOrderProperty) {
10574
+ // useCSSOrderProperty를 사용하는 경우 DOM은 변화가 없지만 대신 CSS Order가 추가 된다.
10575
+ var panels_1 = flicking.panels;
10576
+ this._strategy.getRenderingIndexesByOrder(flicking).forEach(function (domIndex, index) {
10577
+ panels_1[domIndex].element.style.order = "" + index;
10578
+ });
10579
+ }
10541
10580
  };
10542
10581
  return Renderer;
10543
10582
  }();
@@ -10566,6 +10605,7 @@ version: 4.14.1
10566
10605
  });
10567
10606
  });
10568
10607
  };
10608
+
10569
10609
  __proto._collectPanels = function () {
10570
10610
  var flicking = getFlickingAttached(this._flicking);
10571
10611
  var camera = flicking.camera;
@@ -10579,7 +10619,15 @@ version: 4.14.1
10579
10619
  var flicking = getFlickingAttached(this._flicking);
10580
10620
  var cameraEl = flicking.camera.element;
10581
10621
  // We're using reversed panels here as last panel should be the last element of camera element
10582
- var reversedElements = this._strategy.getRenderingElementsByOrder(flicking).reverse();
10622
+ var reversedElements = [];
10623
+ if (flicking.useCSSOrderProperty) {
10624
+ // useCSSOrderProperty를 사용하는 경우 원본 그대로 렌더링
10625
+ reversedElements = this.getRenderedPanels().map(function (panel) {
10626
+ return panel.element;
10627
+ }).reverse();
10628
+ } else {
10629
+ reversedElements = this._strategy.getRenderingElementsByOrder(flicking).reverse();
10630
+ }
10583
10631
  reversedElements.forEach(function (el, idx) {
10584
10632
  var nextEl = reversedElements[idx - 1] ? reversedElements[idx - 1] : null;
10585
10633
  if (el.nextElementSibling !== nextEl) {
@@ -11656,7 +11704,11 @@ version: 4.14.1
11656
11704
  _15 = _b.renderExternal,
11657
11705
  renderExternal = _15 === void 0 ? null : _15,
11658
11706
  _16 = _b.optimizeSizeUpdate,
11659
- optimizeSizeUpdate = _16 === void 0 ? false : _16;
11707
+ optimizeSizeUpdate = _16 === void 0 ? false : _16,
11708
+ _17 = _b.animationThreshold,
11709
+ animationThreshold = _17 === void 0 ? 0.5 : _17,
11710
+ _18 = _b.useCSSOrderProperty,
11711
+ useCSSOrderProperty = _18 === void 0 ? false : _18;
11660
11712
  var _this = _super.call(this) || this;
11661
11713
  // Internal states
11662
11714
  _this._initialized = false;
@@ -11702,6 +11754,8 @@ version: 4.14.1
11702
11754
  _this._externalRenderer = externalRenderer;
11703
11755
  _this._renderExternal = renderExternal;
11704
11756
  _this._optimizeSizeUpdate = optimizeSizeUpdate;
11757
+ _this._animationThreshold = animationThreshold;
11758
+ _this._useCSSOrderProperty = useCSSOrderProperty;
11705
11759
  // Create core components
11706
11760
  _this._viewport = new Viewport(_this, getElement(root));
11707
11761
  _this._autoResizer = new AutoResizer(_this);
@@ -12413,6 +12467,43 @@ version: 4.14.1
12413
12467
  enumerable: false,
12414
12468
  configurable: true
12415
12469
  });
12470
+ Object.defineProperty(__proto, "animationThreshold", {
12471
+ /**
12472
+ * The minimum distance for animation to proceed. If the distance to be moved is less than `animationThreshold`, the movement proceeds immediately without animation (duration: 0).
12473
+ * @ko animation이 진행되기 위한 최소한의 거리. 이동하려는 거리가 `animationThreshold`보다 적으면 애니메이션 없이(duration: 0) 즉시 이동한다.
12474
+ * @type {number}
12475
+ * @default 0.5
12476
+ * @see {@link https://naver.github.io/egjs-flicking/Options#animationThreshold animationThreshold ( Options )}
12477
+ */
12478
+ get: function () {
12479
+ return this._animationThreshold;
12480
+ },
12481
+ set: function (val) {
12482
+ this._animationThreshold = val;
12483
+ },
12484
+ enumerable: false,
12485
+ configurable: true
12486
+ });
12487
+ Object.defineProperty(__proto, "useCSSOrderProperty", {
12488
+ /**
12489
+ * When `circular` is used, the DOM order changes depending on the position. Using `useCSSOrderProperty` does not change the DOM order, but the `order` CSS property changes the order on the screen.
12490
+ * When using `iframe`, you can prevent reloading when the DOM order changes.
12491
+ * @ko `circular`를 사용한 경우 위치에 따라 DOM의 순서가 변경된다. `useCSSOrderProperty`를 사용하면 DOM의 순서는 변경되지 않지만 `order` css가 설정되면서 화면상 순서가 바뀐다.
12492
+ * `iframe`을 사용하는 경우 DOM의 순서가 변경되면서 reload가 되는 것을 막을 수 있다.
12493
+ * @type {boolean}
12494
+ * @requires `circular`
12495
+ * @default false
12496
+ * @see {@link https://naver.github.io/egjs-flicking/Options#useCSSOrderProperty animationThreshold ( Options )}
12497
+ */
12498
+ get: function () {
12499
+ return this._useCSSOrderProperty;
12500
+ },
12501
+ set: function (val) {
12502
+ this._useCSSOrderProperty = val;
12503
+ },
12504
+ enumerable: false,
12505
+ configurable: true
12506
+ });
12416
12507
  Object.defineProperty(__proto, "interruptable", {
12417
12508
  /**
12418
12509
  * Set animation to be interruptable by click/touch.
@@ -13301,6 +13392,7 @@ version: 4.14.1
13301
13392
  if (!this._initialized) {
13302
13393
  return [2 /*return*/];
13303
13394
  }
13395
+
13304
13396
  renderer.updatePanelSize();
13305
13397
  camera.updateAlignPos();
13306
13398
  camera.updateRange();
@@ -13314,6 +13406,7 @@ version: 4.14.1
13314
13406
  if (!this._initialized) {
13315
13407
  return [2 /*return*/];
13316
13408
  }
13409
+
13317
13410
  if (control.animating) ; else {
13318
13411
  control.updatePosition(prevProgressInPanel);
13319
13412
  control.updateInput();
@@ -13551,7 +13644,7 @@ version: 4.14.1
13551
13644
  * Flicking.VERSION; // ex) 4.0.0
13552
13645
  * ```
13553
13646
  */
13554
- Flicking.VERSION = "4.14.1";
13647
+ Flicking.VERSION = "4.14.2-beta.1";
13555
13648
  return Flicking;
13556
13649
  }(Component);
13557
13650
 
@@ -14090,13 +14183,16 @@ version: 4.14.1
14090
14183
  map[prev] = current;
14091
14184
  return map;
14092
14185
  }, {});
14093
- return __spread$1(flicking.panels.filter(function (panel) {
14186
+ var renderingPanels = flicking.panels.filter(function (panel) {
14094
14187
  return !removedPanels[panel.index];
14095
- })
14096
- // Sort panels by position
14097
- .sort(function (panel1, panel2) {
14098
- return panel1.position + panel1.offset - (panel2.position + panel2.offset);
14099
- }).map(function (panel) {
14188
+ });
14189
+ if (!flicking.useCSSOrderProperty) {
14190
+ // useCSSOrderProperty를 사용하게 되는 경우 sort 하지 않는다.
14191
+ renderingPanels.sort(function (panel1, panel2) {
14192
+ return panel1.position + panel1.offset - (panel2.position + panel2.offset);
14193
+ });
14194
+ }
14195
+ return __spread$1(renderingPanels.map(function (panel) {
14100
14196
  return diffResult.list[maintainedMap[panel.index]];
14101
14197
  }), diffResult.added.map(function (idx) {
14102
14198
  return diffResult.list[idx];