@egjs/flicking 4.11.4 → 4.11.5-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.
- package/declaration/Flicking.d.ts +2 -0
- package/declaration/core/AutoResizer.d.ts +1 -0
- package/dist/flicking.cjs.js +41 -6
- package/dist/flicking.cjs.js.map +1 -1
- package/dist/flicking.esm.js +41 -6
- package/dist/flicking.esm.js.map +1 -1
- package/dist/flicking.js +41 -6
- package/dist/flicking.js.map +1 -1
- package/dist/flicking.min.js +2 -2
- package/dist/flicking.min.js.map +1 -1
- package/dist/flicking.pkgd.js +41 -6
- package/dist/flicking.pkgd.js.map +1 -1
- package/dist/flicking.pkgd.min.js +2 -2
- package/dist/flicking.pkgd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/Flicking.ts +12 -1
- package/src/core/AutoResizer.ts +16 -1
- package/src/renderer/Renderer.ts +6 -0
package/package.json
CHANGED
package/src/Flicking.ts
CHANGED
|
@@ -218,6 +218,13 @@ 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; }
|
|
221
228
|
// Internal States
|
|
222
229
|
/**
|
|
223
230
|
* Whether Flicking's {@link Flicking#init init()} is called.
|
|
@@ -906,6 +913,10 @@ class Flicking extends Component<FlickingEvents> {
|
|
|
906
913
|
public set autoResize(val: FlickingOptions["autoResize"]) {
|
|
907
914
|
this._autoResize = val;
|
|
908
915
|
|
|
916
|
+
if (!this._initialized) {
|
|
917
|
+
return;
|
|
918
|
+
}
|
|
919
|
+
|
|
909
920
|
if (val) {
|
|
910
921
|
this._autoResizer.enable();
|
|
911
922
|
} else {
|
|
@@ -916,7 +927,7 @@ class Flicking extends Component<FlickingEvents> {
|
|
|
916
927
|
public set useResizeObserver(val: FlickingOptions["useResizeObserver"]) {
|
|
917
928
|
this._useResizeObserver = val;
|
|
918
929
|
|
|
919
|
-
if (this._autoResize) {
|
|
930
|
+
if (this._initialized && this._autoResize) {
|
|
920
931
|
this._autoResizer.enable();
|
|
921
932
|
}
|
|
922
933
|
}
|
package/src/core/AutoResizer.ts
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
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
|
+
*/
|
|
7
11
|
class AutoResizer {
|
|
8
12
|
private _flicking: Flicking;
|
|
9
13
|
private _enabled: boolean;
|
|
@@ -36,7 +40,11 @@ class AutoResizer {
|
|
|
36
40
|
? new ResizeObserver(this._skipFirstResize)
|
|
37
41
|
: new ResizeObserver(this._onResize);
|
|
38
42
|
|
|
39
|
-
|
|
43
|
+
[
|
|
44
|
+
flicking.viewport.element,
|
|
45
|
+
flicking.camera.element,
|
|
46
|
+
...flicking.panels.map(panel => panel.element)
|
|
47
|
+
].forEach((element) => { resizeObserver.observe(element); });
|
|
40
48
|
|
|
41
49
|
this._resizeObserver = resizeObserver;
|
|
42
50
|
} else {
|
|
@@ -64,6 +72,13 @@ class AutoResizer {
|
|
|
64
72
|
return this;
|
|
65
73
|
}
|
|
66
74
|
|
|
75
|
+
public observe(element: Element): this {
|
|
76
|
+
if (this._resizeObserver) {
|
|
77
|
+
this._resizeObserver.observe(element);
|
|
78
|
+
}
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
|
|
67
82
|
private _onResize = () => {
|
|
68
83
|
const flicking = this._flicking;
|
|
69
84
|
const resizeDebounce = flicking.resizeDebounce;
|
package/src/renderer/Renderer.ts
CHANGED
|
@@ -335,6 +335,12 @@ 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
|
+
|
|
338
344
|
void this.render();
|
|
339
345
|
|
|
340
346
|
if (!flicking.animating) {
|