@egjs/flicking 4.11.5-beta.1 → 4.11.5-beta.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@egjs/flicking",
3
- "version": "4.11.5-beta.1",
3
+ "version": "4.11.5-beta.2",
4
4
  "description": "Everyday 30 million people experience. It's reliable, flexible and extendable carousel.",
5
5
  "main": "dist/flicking.cjs.js",
6
6
  "module": "dist/flicking.esm.js",
package/src/Flicking.ts CHANGED
@@ -218,13 +218,6 @@ class Flicking extends Component<FlickingEvents> {
218
218
  * @see Viewport
219
219
  */
220
220
  public get viewport() { return this._viewport; }
221
- /**
222
- * {@link AutoResizer} instance of the Flicking
223
- * @ko 현재 Flicking에 활성화된 {@link AutoResizer} 인스턴스
224
- * @internal
225
- * @readonly
226
- */
227
- public get autoResizer() { return this._autoResizer; }
228
221
  // Internal States
229
222
  /**
230
223
  * Whether Flicking's {@link Flicking#init init()} is called.
@@ -913,10 +906,6 @@ class Flicking extends Component<FlickingEvents> {
913
906
  public set autoResize(val: FlickingOptions["autoResize"]) {
914
907
  this._autoResize = val;
915
908
 
916
- if (!this._initialized) {
917
- return;
918
- }
919
-
920
909
  if (val) {
921
910
  this._autoResizer.enable();
922
911
  } else {
@@ -927,7 +916,7 @@ class Flicking extends Component<FlickingEvents> {
927
916
  public set useResizeObserver(val: FlickingOptions["useResizeObserver"]) {
928
917
  this._useResizeObserver = val;
929
918
 
930
- if (this._initialized && this._autoResize) {
919
+ if (this._autoResize) {
931
920
  this._autoResizer.enable();
932
921
  }
933
922
  }
@@ -32,6 +32,7 @@ class Camera {
32
32
  private _mode: CameraMode;
33
33
  private _el: HTMLElement;
34
34
  private _transform: string;
35
+ private _lookedOffset: number;
35
36
  private _position: number;
36
37
  private _alignPos: number;
37
38
  private _offset: number;
@@ -292,6 +293,8 @@ class Camera {
292
293
  * @return {this}
293
294
  */
294
295
  public lookAt(pos: number): void {
296
+ const prevOffset = this._offset;
297
+ const isChangedOffset = this._lookedOffset !== prevOffset;
295
298
  const flicking = getFlickingAttached(this._flicking);
296
299
  const prevPos = this._position;
297
300
 
@@ -301,10 +304,15 @@ class Camera {
301
304
  this._checkNeedPanel();
302
305
  this._checkReachEnd(prevPos, pos);
303
306
 
304
- if (toggled) {
307
+ if (isChangedOffset || toggled) {
305
308
  void flicking.renderer.render().then(() => {
306
309
  this.updateOffset();
310
+ this._lookedOffset = this._offset;
307
311
  });
312
+ } else if (isChangedOffset) {
313
+ // sync offset for renderOnlyVisible on resize
314
+ this.updateOffset();
315
+ this._lookedOffset = this._offset;
308
316
  } else {
309
317
  this.applyTransform();
310
318
  }
@@ -4,10 +4,6 @@
4
4
  */
5
5
  import Flicking from "../Flicking";
6
6
 
7
- /**
8
- * A component that detects size change and trigger resize method when the autoResize option is used
9
- * @ko autoResize 옵션을 사용할 때 크기 변화를 감지하고 Flicking의 resize를 호출하는 컴포넌트
10
- */
11
7
  class AutoResizer {
12
8
  private _flicking: Flicking;
13
9
  private _enabled: boolean;
@@ -40,11 +36,7 @@ class AutoResizer {
40
36
  ? new ResizeObserver(this._skipFirstResize)
41
37
  : new ResizeObserver(this._onResize);
42
38
 
43
- [
44
- flicking.viewport.element,
45
- flicking.camera.element,
46
- ...flicking.panels.map(panel => panel.element)
47
- ].forEach((element) => { resizeObserver.observe(element); });
39
+ resizeObserver.observe(flicking.viewport.element);
48
40
 
49
41
  this._resizeObserver = resizeObserver;
50
42
  } else {
@@ -72,13 +64,6 @@ class AutoResizer {
72
64
  return this;
73
65
  }
74
66
 
75
- public observe(element: Element): this {
76
- if (this._resizeObserver) {
77
- this._resizeObserver.observe(element);
78
- }
79
- return this;
80
- }
81
-
82
67
  private _onResize = () => {
83
68
  const flicking = this._flicking;
84
69
  const resizeDebounce = flicking.resizeDebounce;
@@ -335,12 +335,6 @@ abstract class Renderer {
335
335
  // Update camera & control
336
336
  this._updateCameraAndControl();
337
337
 
338
- if (flicking.autoResize && flicking.useResizeObserver) {
339
- panelsAdded.forEach((panel) => {
340
- flicking.autoResizer.observe(panel.element);
341
- });
342
- }
343
-
344
338
  void this.render();
345
339
 
346
340
  if (!flicking.animating) {