@egjs/flicking 4.5.1 → 4.6.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/TODO.md +3 -0
- package/declaration/Flicking.d.ts +8 -1
- package/declaration/camera/Camera.d.ts +2 -2
- package/declaration/control/Control.d.ts +1 -1
- package/declaration/core/AutoResizer.d.ts +3 -0
- package/declaration/core/ResizeWatcher.d.ts +33 -0
- package/declaration/renderer/Renderer.d.ts +13 -0
- package/dist/flicking-inline.css +45 -2
- package/dist/flicking-inline.min.css +1 -0
- package/dist/flicking.css +44 -2
- package/dist/flicking.esm.js +416 -289
- package/dist/flicking.esm.js.map +1 -1
- package/dist/flicking.js +416 -289
- package/dist/flicking.js.map +1 -1
- package/dist/flicking.min.css +1 -0
- package/dist/flicking.min.js +2 -2
- package/dist/flicking.min.js.map +1 -1
- package/dist/flicking.pkgd.js +416 -289
- 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 +13 -4
- package/sass/flicking-inline.sass +30 -0
- package/sass/flicking.sass +23 -0
- package/src/Flicking.ts +102 -21
- package/src/camera/Camera.ts +10 -14
- package/src/cfc/sync.ts +31 -23
- package/src/cfc/withFlickingMethods.ts +1 -1
- package/src/control/Control.ts +2 -2
- package/src/control/FreeControl.ts +1 -1
- package/src/control/SnapControl.ts +1 -1
- package/src/control/StrictControl.ts +1 -1
- package/src/control/states/AnimatingState.ts +4 -1
- package/src/control/states/DraggingState.ts +7 -2
- package/src/core/AutoResizer.ts +33 -0
- package/src/core/ResizeWatcher.ts +133 -0
- package/src/renderer/Renderer.ts +95 -44
- package/css/flicking-inline.css +0 -38
- package/css/flicking.css +0 -28
- package/dist/flicking-inline.css.map +0 -1
- package/dist/flicking.css.map +0 -1
package/TODO.md
ADDED
|
@@ -60,6 +60,8 @@ export interface FlickingOptions {
|
|
|
60
60
|
autoInit: boolean;
|
|
61
61
|
autoResize: boolean;
|
|
62
62
|
useResizeObserver: boolean;
|
|
63
|
+
resizeDebounce: number;
|
|
64
|
+
maxResizeDebounce: number;
|
|
63
65
|
externalRenderer: ExternalRenderer | null;
|
|
64
66
|
renderExternal: {
|
|
65
67
|
renderer: new (options: RendererOptions) => ExternalRenderer;
|
|
@@ -102,6 +104,8 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
102
104
|
private _autoInit;
|
|
103
105
|
private _autoResize;
|
|
104
106
|
private _useResizeObserver;
|
|
107
|
+
private _resizeDebounce;
|
|
108
|
+
private _maxResizeDebounce;
|
|
105
109
|
private _externalRenderer;
|
|
106
110
|
private _renderExternal;
|
|
107
111
|
private _initialized;
|
|
@@ -153,6 +157,8 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
153
157
|
get autoInit(): boolean;
|
|
154
158
|
get autoResize(): FlickingOptions["autoResize"];
|
|
155
159
|
get useResizeObserver(): FlickingOptions["useResizeObserver"];
|
|
160
|
+
get resizeDebounce(): number;
|
|
161
|
+
get maxResizeDebounce(): number;
|
|
156
162
|
get externalRenderer(): ExternalRenderer;
|
|
157
163
|
get renderExternal(): {
|
|
158
164
|
renderer: new (options: RendererOptions) => ExternalRenderer;
|
|
@@ -183,7 +189,7 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
183
189
|
set renderOnlyVisible(val: FlickingOptions["renderOnlyVisible"]);
|
|
184
190
|
set autoResize(val: FlickingOptions["autoResize"]);
|
|
185
191
|
set useResizeObserver(val: FlickingOptions["useResizeObserver"]);
|
|
186
|
-
constructor(root: HTMLElement | string, { align, defaultIndex, horizontal, circular, circularFallback, bound, adaptive, panelsPerView, noPanelStyleOverride, resizeOnContentsReady, needPanelThreshold, preventEventsBeforeInit, deceleration, duration, easing, inputType, moveType, threshold, interruptable, bounce, iOSEdgeSwipeThreshold, preventClickOnDrag, disableOnInit, renderOnlyVisible, virtual, autoInit, autoResize, useResizeObserver, externalRenderer, renderExternal }?: Partial<FlickingOptions>);
|
|
192
|
+
constructor(root: HTMLElement | string, { align, defaultIndex, horizontal, circular, circularFallback, bound, adaptive, panelsPerView, noPanelStyleOverride, resizeOnContentsReady, needPanelThreshold, preventEventsBeforeInit, deceleration, duration, easing, inputType, moveType, threshold, interruptable, bounce, iOSEdgeSwipeThreshold, preventClickOnDrag, disableOnInit, renderOnlyVisible, virtual, autoInit, autoResize, useResizeObserver, resizeDebounce, maxResizeDebounce, externalRenderer, renderExternal }?: Partial<FlickingOptions>);
|
|
187
193
|
init(): Promise<void>;
|
|
188
194
|
destroy(): void;
|
|
189
195
|
prev(duration?: number): Promise<void>;
|
|
@@ -212,5 +218,6 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
212
218
|
private _createExternalRenderer;
|
|
213
219
|
private _createVanillaRenderer;
|
|
214
220
|
private _moveToInitialPanel;
|
|
221
|
+
private _initialResize;
|
|
215
222
|
}
|
|
216
223
|
export default Flicking;
|
|
@@ -51,8 +51,8 @@ declare class Camera {
|
|
|
51
51
|
get progress(): number;
|
|
52
52
|
get align(): FlickingOptions["align"];
|
|
53
53
|
set align(val: FlickingOptions["align"]);
|
|
54
|
-
constructor({ align }?: Partial<CameraOptions>);
|
|
55
|
-
init(
|
|
54
|
+
constructor(flicking: Flicking, { align }?: Partial<CameraOptions>);
|
|
55
|
+
init(): this;
|
|
56
56
|
destroy(): this;
|
|
57
57
|
lookAt(pos: number): void;
|
|
58
58
|
getPrevAnchor(anchor: AnchorPoint): AnchorPoint | null;
|
|
@@ -19,7 +19,7 @@ declare abstract class Control {
|
|
|
19
19
|
destroy(): void;
|
|
20
20
|
enable(): this;
|
|
21
21
|
disable(): this;
|
|
22
|
-
updatePosition(
|
|
22
|
+
updatePosition(progressInPanel: number): void;
|
|
23
23
|
updateInput(): this;
|
|
24
24
|
resetActive(): this;
|
|
25
25
|
moveToPanel(panel: Panel, { duration, direction, axesEvent }: {
|
|
@@ -3,11 +3,14 @@ declare class AutoResizer {
|
|
|
3
3
|
private _flicking;
|
|
4
4
|
private _enabled;
|
|
5
5
|
private _resizeObserver;
|
|
6
|
+
private _resizeTimer;
|
|
7
|
+
private _maxResizeDebounceTimer;
|
|
6
8
|
get enabled(): boolean;
|
|
7
9
|
constructor(flicking: Flicking);
|
|
8
10
|
enable(): this;
|
|
9
11
|
disable(): this;
|
|
10
12
|
private _onResize;
|
|
13
|
+
private _doScheduledResize;
|
|
11
14
|
private _skipFirstResize;
|
|
12
15
|
}
|
|
13
16
|
export default AutoResizer;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface ResizeWatherOptions {
|
|
2
|
+
resizeDebounce?: number;
|
|
3
|
+
maxResizeDebounce?: number;
|
|
4
|
+
useResizeObserver?: boolean;
|
|
5
|
+
useWindowResize?: boolean;
|
|
6
|
+
watchDirection?: "width" | "height" | "box" | false;
|
|
7
|
+
rectBox?: "border-box" | "content-box";
|
|
8
|
+
}
|
|
9
|
+
declare class ResizeWatcher {
|
|
10
|
+
private _container;
|
|
11
|
+
private _rect;
|
|
12
|
+
private _resizeTimer;
|
|
13
|
+
private _maxResizeDebounceTimer;
|
|
14
|
+
private _emitter;
|
|
15
|
+
private _observer;
|
|
16
|
+
private _options;
|
|
17
|
+
constructor(container: HTMLElement | string, options?: ResizeWatherOptions);
|
|
18
|
+
getRect(): {
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
};
|
|
22
|
+
setRect(rect: {
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
}): void;
|
|
26
|
+
resize(): void;
|
|
27
|
+
listen(callback: () => void): this;
|
|
28
|
+
destroy(): void;
|
|
29
|
+
private _init;
|
|
30
|
+
private _onResize;
|
|
31
|
+
private _scheduleResize;
|
|
32
|
+
}
|
|
33
|
+
export default ResizeWatcher;
|
|
@@ -8,9 +8,11 @@ export interface RendererOptions {
|
|
|
8
8
|
declare abstract class Renderer {
|
|
9
9
|
protected _flicking: Flicking | null;
|
|
10
10
|
protected _panels: Panel[];
|
|
11
|
+
protected _rendering: boolean;
|
|
11
12
|
protected _align: NonNullable<RendererOptions["align"]>;
|
|
12
13
|
protected _strategy: RendererOptions["strategy"];
|
|
13
14
|
get panels(): Panel[];
|
|
15
|
+
get rendering(): boolean;
|
|
14
16
|
get panelCount(): number;
|
|
15
17
|
get strategy(): RenderingStrategy;
|
|
16
18
|
get align(): NonNullable<RendererOptions["align"]>;
|
|
@@ -29,11 +31,22 @@ declare abstract class Renderer {
|
|
|
29
31
|
elements: any[];
|
|
30
32
|
hasDOMInElements: boolean;
|
|
31
33
|
}>): Panel[];
|
|
34
|
+
batchInsertDefer(...items: Array<{
|
|
35
|
+
index: number;
|
|
36
|
+
elements: any[];
|
|
37
|
+
hasDOMInElements: boolean;
|
|
38
|
+
}>): any[];
|
|
32
39
|
batchRemove(...items: Array<{
|
|
33
40
|
index: number;
|
|
34
41
|
deleteCount: number;
|
|
35
42
|
hasDOMInElements: boolean;
|
|
36
43
|
}>): Panel[];
|
|
44
|
+
batchRemoveDefer(...items: Array<{
|
|
45
|
+
index: number;
|
|
46
|
+
deleteCount: number;
|
|
47
|
+
hasDOMInElements: boolean;
|
|
48
|
+
}>): any[];
|
|
49
|
+
updateAfterPanelChange(panelsAdded: Panel[], panelsRemoved: Panel[]): void;
|
|
37
50
|
checkPanelContentsReady(checkingPanels: Panel[]): void;
|
|
38
51
|
protected _updateCameraAndControl(): void;
|
|
39
52
|
protected _showOnlyVisiblePanels(flicking: Flicking): void;
|
package/dist/flicking-inline.css
CHANGED
|
@@ -1,2 +1,45 @@
|
|
|
1
|
-
.flicking-viewport{
|
|
2
|
-
|
|
1
|
+
.flicking-viewport {
|
|
2
|
+
position: relative;
|
|
3
|
+
overflow: hidden;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.flicking-viewport:not(.vertical) {
|
|
7
|
+
width: 100%;
|
|
8
|
+
height: 100%;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.flicking-viewport.vertical,
|
|
12
|
+
.flicking-viewport.vertical > .flicking-camera {
|
|
13
|
+
display: inline-block;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.flicking-viewport.vertical.middle > .flicking-camera > * {
|
|
17
|
+
vertical-align: middle;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.flicking-viewport.vertical.bottom > .flicking-camera > * {
|
|
21
|
+
vertical-align: bottom;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.flicking-viewport.vertical > .flicking-camera > * {
|
|
25
|
+
display: block;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.flicking-viewport.flicking-hidden > .flicking-camera > * {
|
|
29
|
+
visibility: hidden;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.flicking-camera {
|
|
33
|
+
width: 100%;
|
|
34
|
+
height: 100%;
|
|
35
|
+
position: relative;
|
|
36
|
+
z-index: 1;
|
|
37
|
+
white-space: nowrap;
|
|
38
|
+
will-change: transform;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.flicking-camera > * {
|
|
42
|
+
display: inline-block;
|
|
43
|
+
white-space: normal;
|
|
44
|
+
vertical-align: top;
|
|
45
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.flicking-viewport{position:relative;overflow:hidden}.flicking-viewport:not(.vertical){width:100%;height:100%}.flicking-viewport.vertical,.flicking-viewport.vertical>.flicking-camera{display:inline-block}.flicking-viewport.vertical.middle>.flicking-camera>*{vertical-align:middle}.flicking-viewport.vertical.bottom>.flicking-camera>*{vertical-align:bottom}.flicking-viewport.vertical>.flicking-camera>*{display:block}.flicking-viewport.flicking-hidden>.flicking-camera>*{visibility:hidden}.flicking-camera{width:100%;height:100%;position:relative;z-index:1;white-space:nowrap;will-change:transform}.flicking-camera>*{display:inline-block;white-space:normal;vertical-align:top}
|
package/dist/flicking.css
CHANGED
|
@@ -1,2 +1,44 @@
|
|
|
1
|
-
.flicking-viewport
|
|
2
|
-
|
|
1
|
+
.flicking-viewport {
|
|
2
|
+
position: relative;
|
|
3
|
+
overflow: hidden;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.flicking-viewport.vertical {
|
|
7
|
+
display: -webkit-inline-box;
|
|
8
|
+
display: -ms-inline-flexbox;
|
|
9
|
+
display: inline-flex;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.flicking-viewport.vertical > .flicking-camera {
|
|
13
|
+
display: -webkit-inline-box;
|
|
14
|
+
display: -ms-inline-flexbox;
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
-webkit-box-orient: vertical;
|
|
17
|
+
-webkit-box-direction: normal;
|
|
18
|
+
-ms-flex-direction: column;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.flicking-viewport.flicking-hidden > .flicking-camera > * {
|
|
23
|
+
visibility: hidden;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.flicking-camera {
|
|
27
|
+
width: 100%;
|
|
28
|
+
height: 100%;
|
|
29
|
+
display: -webkit-box;
|
|
30
|
+
display: -ms-flexbox;
|
|
31
|
+
display: flex;
|
|
32
|
+
position: relative;
|
|
33
|
+
-webkit-box-orient: horizontal;
|
|
34
|
+
-webkit-box-direction: normal;
|
|
35
|
+
-ms-flex-direction: row;
|
|
36
|
+
flex-direction: row;
|
|
37
|
+
z-index: 1;
|
|
38
|
+
will-change: transform;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.flicking-camera > * {
|
|
42
|
+
-ms-flex-negative: 0;
|
|
43
|
+
flex-shrink: 0;
|
|
44
|
+
}
|