@egjs/flicking 4.3.0 → 4.4.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/README.md +1 -2
- package/declaration/Flicking.d.ts +23 -11
- package/declaration/camera/Camera.d.ts +3 -2
- package/declaration/camera/CircularCamera.d.ts +2 -1
- package/declaration/const/error.d.ts +3 -1
- package/declaration/const/external.d.ts +5 -0
- package/declaration/core/AutoResizer.d.ts +13 -0
- package/declaration/core/VirtualManager.d.ts +37 -0
- package/declaration/core/index.d.ts +2 -1
- package/declaration/core/panel/Panel.d.ts +13 -7
- package/declaration/core/panel/VirtualPanel.d.ts +19 -0
- package/declaration/core/panel/index.d.ts +4 -4
- package/declaration/core/panel/provider/ElementProvider.d.ts +8 -0
- package/declaration/core/panel/provider/VanillaElementProvider.d.ts +12 -0
- package/declaration/core/panel/provider/VirtualElementProvider.d.ts +15 -0
- package/declaration/core/panel/provider/index.d.ts +5 -0
- package/declaration/index.d.ts +11 -1
- package/declaration/renderer/ExternalRenderer.d.ts +1 -1
- package/declaration/renderer/Renderer.d.ts +17 -12
- package/declaration/renderer/VanillaRenderer.d.ts +2 -7
- package/declaration/renderer/index.d.ts +1 -0
- package/declaration/renderer/strategy/NormalRenderingStrategy.d.ts +23 -0
- package/declaration/renderer/strategy/RenderingStrategy.d.ts +15 -0
- package/declaration/renderer/strategy/VirtualRenderingStrategy.d.ts +17 -0
- package/declaration/renderer/strategy/index.d.ts +5 -0
- package/declaration/utils.d.ts +7 -1
- package/dist/flicking.esm.js +1401 -421
- package/dist/flicking.esm.js.map +1 -1
- package/dist/flicking.js +1429 -425
- 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 +8683 -8061
- 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 +9 -22
- package/src/Flicking.ts +146 -30
- package/src/camera/BoundCamera.ts +2 -2
- package/src/camera/Camera.ts +50 -27
- package/src/camera/CircularCamera.ts +52 -27
- package/src/camera/LinearCamera.ts +1 -1
- package/src/cfc/sync.ts +10 -5
- package/src/const/error.ts +6 -3
- package/src/const/external.ts +6 -0
- package/src/control/AxesController.ts +11 -6
- package/src/control/Control.ts +6 -6
- package/src/control/FreeControl.ts +2 -2
- package/src/control/SnapControl.ts +3 -3
- package/src/control/StrictControl.ts +2 -2
- package/src/core/AutoResizer.ts +81 -0
- package/src/core/Viewport.ts +4 -4
- package/src/core/VirtualManager.ts +188 -0
- package/src/core/index.ts +3 -1
- package/src/core/panel/Panel.ts +54 -34
- package/src/core/panel/VirtualPanel.ts +110 -0
- package/src/core/panel/index.ts +5 -7
- package/src/core/panel/provider/ElementProvider.ts +14 -0
- package/src/core/panel/provider/VanillaElementProvider.ts +45 -0
- package/src/core/panel/provider/VirtualElementProvider.ts +48 -0
- package/src/core/panel/provider/index.ts +16 -0
- package/src/index.ts +12 -1
- package/src/index.umd.ts +2 -0
- package/src/renderer/ExternalRenderer.ts +7 -7
- package/src/renderer/Renderer.ts +106 -65
- package/src/renderer/VanillaRenderer.ts +28 -86
- package/src/renderer/index.ts +2 -0
- package/src/renderer/strategy/NormalRenderingStrategy.ts +106 -0
- package/src/renderer/strategy/RenderingStrategy.ts +21 -0
- package/src/renderer/strategy/VirtualRenderingStrategy.ts +110 -0
- package/src/renderer/strategy/index.ts +17 -0
- package/src/utils.ts +36 -2
- package/declaration/core/panel/ElementPanel.d.ts +0 -14
- package/declaration/core/panel/ExternalPanel.d.ts +0 -9
- package/declaration/exports.d.ts +0 -10
- package/src/core/panel/ElementPanel.ts +0 -52
- package/src/core/panel/ExternalPanel.ts +0 -32
- package/src/exports.ts +0 -16
package/README.md
CHANGED
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
<p align="center" style="line-height: 2;">
|
|
7
7
|
<a href="https://www.npmjs.com/package/@egjs/flicking" target="_blank"><img src="https://img.shields.io/npm/v/@egjs/flicking.svg?style=flat-square&color=007acc&label=version&logo=NPM" alt="version" /></a>
|
|
8
8
|
<a href="https://www.npmjs.com/package/@egjs/flicking" target="_blank"><img alt="npm bundle size (scoped)" src="https://img.shields.io/bundlephobia/minzip/@egjs/flicking.svg?style=flat-square&label=%F0%9F%92%BE%20gzipped&color=007acc" /></a>
|
|
9
|
-
<a href="https://travis-ci.org/naver/egjs-flicking" target="_blank"><img alt="Travis (.org)" src="https://img.shields.io/travis/naver/egjs-flicking.svg?style=flat-square&label=build&logo=travis%20ci" /></a>
|
|
10
9
|
<a href="https://coveralls.io/github/naver/egjs-flicking?branch=master&style=flat-square" target="_blank"><img alt="Coveralls github" src="https://img.shields.io/coveralls/github/naver/egjs-flicking.svg?style=flat-square&label=%E2%9C%85%20coverage" /></a>
|
|
11
10
|
<a href="https://deepscan.io/dashboard#view=project&tid=3998&pid=5802&bid=46086"><img src="https://deepscan.io/api/teams/3998/projects/5802/branches/46086/badge/grade.svg" alt="DeepScan grade" /></a>
|
|
12
11
|
</p>
|
|
@@ -131,7 +130,7 @@ var flicking = new Flicking("#my-flicking", { circular: true });
|
|
|
131
130
|
|[**@egjs/vue-flicking**](https://github.com/naver/egjs-flicking/blob/master/packages/vue-flicking/README.md)|<a href="https://www.npmjs.com/package/@egjs/vue-flicking" target="_blank"><img src="https://img.shields.io/npm/v/@egjs/vue-flicking.svg?style=flat-square&color=42b883&label=%F0%9F%94%96" alt="version" /></a>|<img width="15" src="https://naver.github.io/egjs-flicking/img/icons/vue.svg" valign="middle" alt="Vue.js" /> [Vue.js@2](https://vuejs.org/v2/guide/index.html) port of @egjs/flicking|
|
|
132
131
|
|[**@egjs/vue3-flicking**](https://github.com/naver/egjs-flicking/blob/master/packages/vue3-flicking/README.md)|<a href="https://www.npmjs.com/package/@egjs/vue3-flicking" target="_blank"><img src="https://img.shields.io/npm/v/@egjs/vue3-flicking.svg?style=flat-square&color=42b883&label=%F0%9F%94%96" alt="version" /></a>|<img width="15" src="https://naver.github.io/egjs-flicking/img/icons/vue.svg" valign="middle" alt="Vue.js" /> [Vue.js@3](https://v3.vuejs.org/) port of @egjs/flicking|
|
|
133
132
|
|[**@egjs/preact-flicking**](https://github.com/naver/egjs-flicking/blob/master/packages/preact-flicking/README.md)|<a href="https://www.npmjs.com/package/@egjs/preact-flicking" target="_blank"><img src="https://img.shields.io/npm/v/@egjs/preact-flicking.svg?style=flat-square&color=673ab8&label=%F0%9F%94%96" alt="version" /></a>|<img width="15" src="https://naver.github.io/egjs-flicking/img/icons/preact.svg" valign="middle" alt="Preact" /> [Preact](https://preactjs.com/guide/v10/getting-started) port of @egjs/flicking|
|
|
134
|
-
|[**@egjs/svelte-flicking**](https://github.com/naver/egjs-flicking/blob/master/packages/svelte-flicking/README.md)|<a href="https://www.npmjs.com/package/@egjs/svelte-flicking" target="_blank"><img src="https://img.shields.io/npm/v/@egjs/svelte-flicking.svg?style=flat-square&color=FF3E00&label=%F0%9F%94%96" alt="version" /></a>|<img width="15" src="https://naver.github.io/egjs-flicking/
|
|
133
|
+
|[**@egjs/svelte-flicking**](https://github.com/naver/egjs-flicking/blob/master/packages/svelte-flicking/README.md)|<a href="https://www.npmjs.com/package/@egjs/svelte-flicking" target="_blank"><img src="https://img.shields.io/npm/v/@egjs/svelte-flicking.svg?style=flat-square&color=FF3E00&label=%F0%9F%94%96" alt="version" /></a>|<img width="15" src="https://naver.github.io/egjs-flicking/img/icons/svelte.svg" valign="middle" alt="Svelte" /> [Svelte](https://svelte.dev/) port of @egjs/flicking|
|
|
135
134
|
|
|
136
135
|
## 🌐 Supported Browsers
|
|
137
136
|
|<img width="20" src="https://simpleicons.org/icons/internetexplorer.svg" alt="IE" />|<img width="20" src="https://simpleicons.org/icons/googlechrome.svg" alt="Chrome" />|<img width="20" src="https://simpleicons.org/icons/firefoxbrowser.svg" alt="Firefox" />|<img width="20" src="https://simpleicons.org/icons/safari.svg" alt="Safari" />|<img width="20" src="https://simpleicons.org/icons/apple.svg" alt="iOS" />|<img width="20" src="https://simpleicons.org/icons/android.svg" alt="Android" />|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import Component from "@egjs/component";
|
|
2
2
|
import Viewport from "./core/Viewport";
|
|
3
3
|
import { Panel } from "./core/panel";
|
|
4
|
+
import VirtualManager, { VirtualOptions } from "./core/VirtualManager";
|
|
4
5
|
import { Control } from "./control";
|
|
5
6
|
import { Camera } from "./camera";
|
|
6
|
-
import { Renderer, ExternalRenderer } from "./renderer";
|
|
7
|
+
import { Renderer, ExternalRenderer, RendererOptions } from "./renderer";
|
|
7
8
|
import { EVENTS, ALIGN, MOVE_TYPE, DIRECTION } from "./const/external";
|
|
8
9
|
import { HoldStartEvent, HoldEndEvent, MoveStartEvent, SelectEvent, MoveEvent, MoveEndEvent, WillChangeEvent, WillRestoreEvent, NeedPanelEvent, VisibleChangeEvent, ReachEdgeEvent, ReadyEvent, AfterResizeEvent, BeforeResizeEvent, ChangedEvent, RestoredEvent, PanelChangeEvent } from "./type/event";
|
|
9
10
|
import { LiteralUnion, ValueOf } from "./type/internal";
|
|
@@ -54,21 +55,24 @@ export interface FlickingOptions {
|
|
|
54
55
|
preventClickOnDrag: boolean;
|
|
55
56
|
disableOnInit: boolean;
|
|
56
57
|
renderOnlyVisible: boolean;
|
|
58
|
+
virtual: VirtualOptions | null;
|
|
57
59
|
autoInit: boolean;
|
|
58
60
|
autoResize: boolean;
|
|
61
|
+
useResizeObserver: boolean;
|
|
62
|
+
externalRenderer: ExternalRenderer | null;
|
|
59
63
|
renderExternal: {
|
|
60
|
-
renderer:
|
|
61
|
-
rendererOptions:
|
|
62
|
-
[key: string]: any;
|
|
63
|
-
};
|
|
64
|
+
renderer: new (options: RendererOptions) => ExternalRenderer;
|
|
65
|
+
rendererOptions: RendererOptions;
|
|
64
66
|
} | null;
|
|
65
67
|
}
|
|
66
68
|
declare class Flicking extends Component<FlickingEvents> {
|
|
67
69
|
static VERSION: string;
|
|
68
70
|
private _viewport;
|
|
71
|
+
private _autoResizer;
|
|
69
72
|
private _camera;
|
|
70
73
|
private _control;
|
|
71
74
|
private _renderer;
|
|
75
|
+
private _virtualManager;
|
|
72
76
|
private _align;
|
|
73
77
|
private _defaultIndex;
|
|
74
78
|
private _horizontal;
|
|
@@ -78,6 +82,7 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
78
82
|
private _panelsPerView;
|
|
79
83
|
private _noPanelStyleOverride;
|
|
80
84
|
private _resizeOnContentsReady;
|
|
85
|
+
private _virtual;
|
|
81
86
|
private _needPanelThreshold;
|
|
82
87
|
private _preventEventsBeforeInit;
|
|
83
88
|
private _deceleration;
|
|
@@ -92,8 +97,10 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
92
97
|
private _preventClickOnDrag;
|
|
93
98
|
private _disableOnInit;
|
|
94
99
|
private _renderOnlyVisible;
|
|
95
|
-
private _autoResize;
|
|
96
100
|
private _autoInit;
|
|
101
|
+
private _autoResize;
|
|
102
|
+
private _useResizeObserver;
|
|
103
|
+
private _externalRenderer;
|
|
97
104
|
private _renderExternal;
|
|
98
105
|
private _initialized;
|
|
99
106
|
private _plugins;
|
|
@@ -103,6 +110,7 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
103
110
|
get viewport(): Viewport;
|
|
104
111
|
get initialized(): boolean;
|
|
105
112
|
get circularEnabled(): boolean;
|
|
113
|
+
get virtualEnabled(): boolean;
|
|
106
114
|
get index(): number;
|
|
107
115
|
get element(): HTMLElement;
|
|
108
116
|
get currentPanel(): Panel;
|
|
@@ -135,13 +143,14 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
135
143
|
get preventClickOnDrag(): FlickingOptions["preventClickOnDrag"];
|
|
136
144
|
get disableOnInit(): FlickingOptions["disableOnInit"];
|
|
137
145
|
get renderOnlyVisible(): FlickingOptions["renderOnlyVisible"];
|
|
146
|
+
get virtual(): VirtualManager;
|
|
138
147
|
get autoInit(): boolean;
|
|
139
148
|
get autoResize(): FlickingOptions["autoResize"];
|
|
149
|
+
get useResizeObserver(): FlickingOptions["useResizeObserver"];
|
|
150
|
+
get externalRenderer(): ExternalRenderer;
|
|
140
151
|
get renderExternal(): {
|
|
141
|
-
renderer:
|
|
142
|
-
rendererOptions:
|
|
143
|
-
[key: string]: any;
|
|
144
|
-
};
|
|
152
|
+
renderer: new (options: RendererOptions) => ExternalRenderer;
|
|
153
|
+
rendererOptions: RendererOptions;
|
|
145
154
|
};
|
|
146
155
|
set align(val: FlickingOptions["align"]);
|
|
147
156
|
set defaultIndex(val: FlickingOptions["defaultIndex"]);
|
|
@@ -167,7 +176,8 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
167
176
|
set disableOnInit(val: FlickingOptions["disableOnInit"]);
|
|
168
177
|
set renderOnlyVisible(val: FlickingOptions["renderOnlyVisible"]);
|
|
169
178
|
set autoResize(val: FlickingOptions["autoResize"]);
|
|
170
|
-
|
|
179
|
+
set useResizeObserver(val: FlickingOptions["useResizeObserver"]);
|
|
180
|
+
constructor(root: HTMLElement | string, { align, defaultIndex, horizontal, circular, 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>);
|
|
171
181
|
init(): Promise<void>;
|
|
172
182
|
destroy(): void;
|
|
173
183
|
prev(duration?: number): Promise<void>;
|
|
@@ -193,6 +203,8 @@ declare class Flicking extends Component<FlickingEvents> {
|
|
|
193
203
|
private _createControl;
|
|
194
204
|
private _createCamera;
|
|
195
205
|
private _createRenderer;
|
|
206
|
+
private _createExternalRenderer;
|
|
207
|
+
private _createVanillaRenderer;
|
|
196
208
|
private _moveToInitialPanel;
|
|
197
209
|
}
|
|
198
210
|
export default Flicking;
|
|
@@ -23,6 +23,7 @@ declare abstract class Camera {
|
|
|
23
23
|
next: boolean;
|
|
24
24
|
};
|
|
25
25
|
get element(): HTMLElement;
|
|
26
|
+
get children(): HTMLElement[];
|
|
26
27
|
get position(): number;
|
|
27
28
|
get alignPosition(): number;
|
|
28
29
|
get offset(): number;
|
|
@@ -67,13 +68,13 @@ declare abstract class Camera {
|
|
|
67
68
|
updateAlignPos(): this;
|
|
68
69
|
updateAnchors(): this;
|
|
69
70
|
updateAdaptiveHeight(): void;
|
|
70
|
-
updateOffset():
|
|
71
|
+
updateOffset(): this;
|
|
71
72
|
resetNeedPanelHistory(): this;
|
|
73
|
+
applyTransform(): this;
|
|
72
74
|
protected _resetInternalValues(): void;
|
|
73
75
|
protected _refreshVisiblePanels(): void;
|
|
74
76
|
protected _checkNeedPanel(): void;
|
|
75
77
|
protected _checkReachEnd(prevPos: number, newPos: number): void;
|
|
76
|
-
protected _applyTransform(): void;
|
|
77
78
|
protected _checkTranslateSupport: () => void;
|
|
78
79
|
}
|
|
79
80
|
export default Camera;
|
|
@@ -27,8 +27,9 @@ declare class CircularCamera extends Camera {
|
|
|
27
27
|
canReach(panel: Panel): boolean;
|
|
28
28
|
canSee(panel: Panel): boolean;
|
|
29
29
|
updateRange(): this;
|
|
30
|
+
updateOffset(): this;
|
|
30
31
|
lookAt(pos: number): void;
|
|
31
|
-
|
|
32
|
+
applyTransform(): this;
|
|
32
33
|
protected _resetInternalValues(): void;
|
|
33
34
|
private _calcPanelAreaSum;
|
|
34
35
|
private _updateCircularOffset;
|
|
@@ -13,12 +13,13 @@ export declare const CODE: {
|
|
|
13
13
|
readonly NOT_ALLOWED_IN_FRAMEWORK: 11;
|
|
14
14
|
readonly NOT_INITIALIZED: 12;
|
|
15
15
|
readonly NO_ACTIVE: 13;
|
|
16
|
+
readonly NOT_ALLOWED_IN_VIRTUAL: 14;
|
|
16
17
|
};
|
|
17
18
|
export declare const MESSAGE: {
|
|
18
19
|
readonly WRONG_TYPE: (wrongVal: any, correctTypes: string[]) => string;
|
|
19
20
|
readonly ELEMENT_NOT_FOUND: (selector: string) => string;
|
|
20
21
|
readonly VAL_MUST_NOT_NULL: (val: any, name: string) => string;
|
|
21
|
-
readonly NOT_ATTACHED_TO_FLICKING: (
|
|
22
|
+
readonly NOT_ATTACHED_TO_FLICKING: "This module is not attached to the Flicking instance. \"init()\" should be called first.";
|
|
22
23
|
readonly WRONG_OPTION: (optionName: string, val: any) => string;
|
|
23
24
|
readonly INDEX_OUT_OF_RANGE: (val: number, min: number, max: number) => string;
|
|
24
25
|
readonly POSITION_NOT_REACHABLE: (position: number) => string;
|
|
@@ -29,4 +30,5 @@ export declare const MESSAGE: {
|
|
|
29
30
|
readonly NOT_ALLOWED_IN_FRAMEWORK: "This behavior is not allowed in the frameworks like React, Vue, or Angular.";
|
|
30
31
|
readonly NOT_INITIALIZED: "Flicking is not initialized yet, call init() first.";
|
|
31
32
|
readonly NO_ACTIVE: "There's no active panel that Flicking has selected. This may be due to the absence of any panels.";
|
|
33
|
+
readonly NOT_ALLOWED_IN_VIRTUAL: "This behavior is not allowed when the virtual option is enabled";
|
|
32
34
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Flicking from "../Flicking";
|
|
2
|
+
declare class AutoResizer {
|
|
3
|
+
private _flicking;
|
|
4
|
+
private _enabled;
|
|
5
|
+
private _resizeObserver;
|
|
6
|
+
get enabled(): boolean;
|
|
7
|
+
constructor(flicking: Flicking);
|
|
8
|
+
enable(): this;
|
|
9
|
+
disable(): this;
|
|
10
|
+
private _onResize;
|
|
11
|
+
private _skipFirstResize;
|
|
12
|
+
}
|
|
13
|
+
export default AutoResizer;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import Flicking from "../Flicking";
|
|
2
|
+
import VirtualPanel from "./panel/VirtualPanel";
|
|
3
|
+
export interface VirtualOptions {
|
|
4
|
+
renderPanel: (panel: VirtualPanel, index: number) => string;
|
|
5
|
+
initialPanelCount: number;
|
|
6
|
+
cache?: boolean;
|
|
7
|
+
panelClass?: string;
|
|
8
|
+
}
|
|
9
|
+
declare class VirtualManager {
|
|
10
|
+
private _flicking;
|
|
11
|
+
private _renderPanel;
|
|
12
|
+
private _initialPanelCount;
|
|
13
|
+
private _cache;
|
|
14
|
+
private _panelClass;
|
|
15
|
+
private _elements;
|
|
16
|
+
get elements(): {
|
|
17
|
+
nativeElement: HTMLElement;
|
|
18
|
+
visible: boolean;
|
|
19
|
+
}[];
|
|
20
|
+
get renderPanel(): VirtualOptions["renderPanel"];
|
|
21
|
+
get initialPanelCount(): number;
|
|
22
|
+
get cache(): NonNullable<VirtualOptions["cache"]>;
|
|
23
|
+
get panelClass(): NonNullable<VirtualOptions["panelClass"]>;
|
|
24
|
+
set renderPanel(val: VirtualOptions["renderPanel"]);
|
|
25
|
+
set cache(val: NonNullable<VirtualOptions["cache"]>);
|
|
26
|
+
set panelClass(val: NonNullable<VirtualOptions["panelClass"]>);
|
|
27
|
+
constructor(flicking: Flicking, options: VirtualOptions | null);
|
|
28
|
+
init(): void;
|
|
29
|
+
show(index: number): void;
|
|
30
|
+
hide(index: number): void;
|
|
31
|
+
append(count?: number): VirtualPanel[];
|
|
32
|
+
prepend(count?: number): VirtualPanel[];
|
|
33
|
+
insert(index: number, count?: number): VirtualPanel[];
|
|
34
|
+
remove(index: number, count: number): VirtualPanel[];
|
|
35
|
+
private _initVirtualElements;
|
|
36
|
+
}
|
|
37
|
+
export default VirtualManager;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Viewport from "./Viewport";
|
|
2
2
|
import FlickingError from "./FlickingError";
|
|
3
3
|
import AnchorPoint from "./AnchorPoint";
|
|
4
|
-
|
|
4
|
+
import VirtualManager from "./VirtualManager";
|
|
5
|
+
export { Viewport, FlickingError, AnchorPoint, VirtualManager };
|
|
5
6
|
export * from "./panel";
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import Flicking from "../../Flicking";
|
|
2
2
|
import { ALIGN, DIRECTION } from "../../const/external";
|
|
3
3
|
import { LiteralUnion, ValueOf } from "../../type/internal";
|
|
4
|
+
import ElementProvider from "./provider/ElementProvider";
|
|
4
5
|
export interface PanelOptions {
|
|
5
6
|
index: number;
|
|
6
7
|
align: LiteralUnion<ValueOf<typeof ALIGN>> | number;
|
|
7
8
|
flicking: Flicking;
|
|
9
|
+
elementProvider: ElementProvider;
|
|
8
10
|
}
|
|
9
|
-
declare
|
|
11
|
+
declare class Panel {
|
|
10
12
|
protected _flicking: Flicking;
|
|
13
|
+
protected _elProvider: ElementProvider;
|
|
11
14
|
protected _index: number;
|
|
12
15
|
protected _pos: number;
|
|
13
16
|
protected _size: number;
|
|
@@ -17,13 +20,15 @@ declare abstract class Panel {
|
|
|
17
20
|
next: number;
|
|
18
21
|
};
|
|
19
22
|
protected _alignPos: number;
|
|
23
|
+
protected _rendered: boolean;
|
|
20
24
|
protected _removed: boolean;
|
|
21
25
|
protected _loading: boolean;
|
|
22
26
|
protected _toggleDirection: ValueOf<typeof DIRECTION>;
|
|
23
27
|
protected _toggled: boolean;
|
|
24
28
|
protected _togglePosition: number;
|
|
25
29
|
protected _align: PanelOptions["align"];
|
|
26
|
-
|
|
30
|
+
get element(): HTMLElement;
|
|
31
|
+
get elementProvider(): ElementProvider;
|
|
27
32
|
get index(): number;
|
|
28
33
|
get position(): number;
|
|
29
34
|
get size(): number;
|
|
@@ -35,8 +40,8 @@ declare abstract class Panel {
|
|
|
35
40
|
};
|
|
36
41
|
get alignPosition(): number;
|
|
37
42
|
get removed(): boolean;
|
|
43
|
+
get rendered(): boolean;
|
|
38
44
|
get loading(): boolean;
|
|
39
|
-
abstract get rendered(): any;
|
|
40
45
|
get range(): {
|
|
41
46
|
min: number;
|
|
42
47
|
max: number;
|
|
@@ -50,9 +55,9 @@ declare abstract class Panel {
|
|
|
50
55
|
set loading(val: boolean);
|
|
51
56
|
get align(): PanelOptions["align"];
|
|
52
57
|
set align(val: PanelOptions["align"]);
|
|
53
|
-
constructor({ index, align, flicking }: PanelOptions);
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
constructor({ index, align, flicking, elementProvider }: PanelOptions);
|
|
59
|
+
markForShow(): void;
|
|
60
|
+
markForHide(): void;
|
|
56
61
|
resize(cached?: {
|
|
57
62
|
size: number;
|
|
58
63
|
height: number;
|
|
@@ -61,7 +66,7 @@ declare abstract class Panel {
|
|
|
61
66
|
next: number;
|
|
62
67
|
};
|
|
63
68
|
}): this;
|
|
64
|
-
setSize(
|
|
69
|
+
setSize(size: Partial<{
|
|
65
70
|
width: number | string;
|
|
66
71
|
height: number | string;
|
|
67
72
|
}>): this;
|
|
@@ -69,6 +74,7 @@ declare abstract class Panel {
|
|
|
69
74
|
destroy(): void;
|
|
70
75
|
includePosition(pos: number, includeMargin?: boolean): boolean;
|
|
71
76
|
includeRange(min: number, max: number, includeMargin?: boolean): boolean;
|
|
77
|
+
isVisibleOnRange(min: number, max: number): boolean;
|
|
72
78
|
focus(duration?: number): Promise<void>;
|
|
73
79
|
prev(): Panel | null;
|
|
74
80
|
next(): Panel | null;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import Panel, { PanelOptions } from "./Panel";
|
|
2
|
+
import VirtualElementProvider from "./provider/VirtualElementProvider";
|
|
3
|
+
interface VirtualPanelOptions extends PanelOptions {
|
|
4
|
+
elementProvider: VirtualElementProvider;
|
|
5
|
+
}
|
|
6
|
+
declare class VirtualPanel extends Panel {
|
|
7
|
+
protected _elProvider: VirtualElementProvider;
|
|
8
|
+
protected _cachedInnerHTML: string | null;
|
|
9
|
+
get element(): HTMLElement;
|
|
10
|
+
get cachedInnerHTML(): string;
|
|
11
|
+
get elementIndex(): number;
|
|
12
|
+
constructor(options: VirtualPanelOptions);
|
|
13
|
+
cacheRenderResult(result: string): void;
|
|
14
|
+
uncacheRenderResult(): void;
|
|
15
|
+
render(): void;
|
|
16
|
+
increaseIndex(val: number): this;
|
|
17
|
+
decreaseIndex(val: number): this;
|
|
18
|
+
}
|
|
19
|
+
export default VirtualPanel;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Panel, { PanelOptions } from "./Panel";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
export { Panel,
|
|
5
|
-
export type { PanelOptions
|
|
2
|
+
import VirtualPanel from "./VirtualPanel";
|
|
3
|
+
export * from "./provider";
|
|
4
|
+
export { Panel, VirtualPanel };
|
|
5
|
+
export type { PanelOptions };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Flicking from "../../../Flicking";
|
|
2
|
+
import ElementProvider from "./ElementProvider";
|
|
3
|
+
declare class VanillaElementProvider implements ElementProvider {
|
|
4
|
+
private _element;
|
|
5
|
+
private _rendered;
|
|
6
|
+
get element(): HTMLElement;
|
|
7
|
+
get rendered(): boolean;
|
|
8
|
+
constructor(element: HTMLElement);
|
|
9
|
+
show(flicking: Flicking): void;
|
|
10
|
+
hide(flicking: Flicking): void;
|
|
11
|
+
}
|
|
12
|
+
export default VanillaElementProvider;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Flicking from "../../../Flicking";
|
|
2
|
+
import VirtualPanel from "../VirtualPanel";
|
|
3
|
+
import ElementProvider from "./ElementProvider";
|
|
4
|
+
declare class VirtualElementProvider implements ElementProvider {
|
|
5
|
+
private _flicking;
|
|
6
|
+
private _panel;
|
|
7
|
+
get element(): HTMLElement;
|
|
8
|
+
get rendered(): boolean;
|
|
9
|
+
private get _virtualElement();
|
|
10
|
+
constructor(flicking: Flicking);
|
|
11
|
+
init(panel: VirtualPanel): void;
|
|
12
|
+
show(): void;
|
|
13
|
+
hide(): void;
|
|
14
|
+
}
|
|
15
|
+
export default VirtualElementProvider;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import ElementProvider from "./ElementProvider";
|
|
2
|
+
import VanillaElementProvider from "./VanillaElementProvider";
|
|
3
|
+
import VirtualElementProvider from "./VirtualElementProvider";
|
|
4
|
+
export { VanillaElementProvider, VirtualElementProvider };
|
|
5
|
+
export type { ElementProvider };
|
package/declaration/index.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import Flicking from "./Flicking";
|
|
2
|
-
|
|
2
|
+
import type { FlickingOptions, FlickingEvents } from "./Flicking";
|
|
3
|
+
export * from "./core";
|
|
4
|
+
export * from "./camera";
|
|
5
|
+
export * from "./control";
|
|
6
|
+
export * from "./renderer";
|
|
7
|
+
export * from "./const/external";
|
|
8
|
+
export * from "./cfc";
|
|
9
|
+
export * from "./utils";
|
|
10
|
+
export * from "./type/event";
|
|
11
|
+
export * from "./type/external";
|
|
12
|
+
export type { FlickingOptions, FlickingEvents };
|
|
3
13
|
export default Flicking;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Panel from "../core/panel/Panel";
|
|
2
2
|
import Renderer from "./Renderer";
|
|
3
3
|
declare abstract class ExternalRenderer extends Renderer {
|
|
4
|
-
protected _insertPanelElements(panels: Panel[], nextSibling: Panel | null): void;
|
|
5
4
|
protected _removePanelElements(panels: Panel[]): void;
|
|
5
|
+
protected _removeAllChildsFromCamera(): void;
|
|
6
6
|
}
|
|
7
7
|
export default ExternalRenderer;
|
|
@@ -1,40 +1,45 @@
|
|
|
1
1
|
import Flicking, { FlickingOptions } from "../Flicking";
|
|
2
2
|
import Panel, { PanelOptions } from "../core/panel/Panel";
|
|
3
|
+
import RenderingStrategy from "./strategy/RenderingStrategy";
|
|
3
4
|
export interface RendererOptions {
|
|
4
|
-
align
|
|
5
|
+
align?: FlickingOptions["align"];
|
|
6
|
+
strategy: RenderingStrategy;
|
|
5
7
|
}
|
|
6
8
|
declare abstract class Renderer {
|
|
7
9
|
protected _flicking: Flicking | null;
|
|
8
10
|
protected _panels: Panel[];
|
|
9
|
-
protected _align: RendererOptions["align"]
|
|
11
|
+
protected _align: NonNullable<RendererOptions["align"]>;
|
|
12
|
+
protected _strategy: RendererOptions["strategy"];
|
|
10
13
|
get panels(): Panel[];
|
|
11
14
|
get panelCount(): number;
|
|
12
|
-
get
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
get strategy(): RenderingStrategy;
|
|
16
|
+
get align(): NonNullable<RendererOptions["align"]>;
|
|
17
|
+
set align(val: NonNullable<RendererOptions["align"]>);
|
|
18
|
+
constructor({ align, strategy }: RendererOptions);
|
|
15
19
|
abstract render(): Promise<void>;
|
|
16
|
-
abstract forceRenderAllPanels(): Promise<void>;
|
|
17
20
|
protected abstract _collectPanels(): void;
|
|
18
|
-
protected abstract _createPanel(el: any, options: PanelOptions): Panel;
|
|
19
|
-
protected abstract _insertPanelElements(panels: Panel[], nextSibling: Panel | null): void;
|
|
20
|
-
protected abstract _removePanelElements(panels: Panel[]): void;
|
|
21
|
+
protected abstract _createPanel(el: any, options: Omit<PanelOptions, "elementProvider">): Panel;
|
|
21
22
|
init(flicking: Flicking): this;
|
|
22
23
|
destroy(): void;
|
|
23
24
|
getPanel(index: number): Panel | null;
|
|
25
|
+
forceRenderAllPanels(): Promise<void>;
|
|
24
26
|
updatePanelSize(): this;
|
|
25
27
|
batchInsert(...items: Array<{
|
|
26
28
|
index: number;
|
|
27
29
|
elements: any[];
|
|
30
|
+
hasDOMInElements: boolean;
|
|
28
31
|
}>): Panel[];
|
|
29
32
|
batchRemove(...items: Array<{
|
|
30
33
|
index: number;
|
|
31
34
|
deleteCount: number;
|
|
35
|
+
hasDOMInElements: boolean;
|
|
32
36
|
}>): Panel[];
|
|
33
37
|
checkPanelContentsReady(checkingPanels: Panel[]): void;
|
|
34
|
-
protected _getPanelAlign(): string | number;
|
|
35
38
|
protected _updateCameraAndControl(): void;
|
|
36
|
-
protected _updateRenderingPanels(): void;
|
|
37
39
|
protected _showOnlyVisiblePanels(flicking: Flicking): void;
|
|
38
|
-
protected _updatePanelSizeByGrid(
|
|
40
|
+
protected _updatePanelSizeByGrid(referencePanel: Panel, panels: Panel[]): void;
|
|
41
|
+
protected _removeAllChildsFromCamera(): void;
|
|
42
|
+
protected _insertPanelElements(panels: Panel[], nextSibling?: Panel | null): void;
|
|
43
|
+
protected _removePanelElements(panels: Panel[]): void;
|
|
39
44
|
}
|
|
40
45
|
export default Renderer;
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import Panel, { PanelOptions } from "../core/panel/Panel";
|
|
2
|
-
import ElementPanel from "../core/panel/ElementPanel";
|
|
3
2
|
import Renderer from "./Renderer";
|
|
4
3
|
declare class VanillaRenderer extends Renderer {
|
|
5
4
|
render(): Promise<void>;
|
|
6
|
-
forceRenderAllPanels(): Promise<void>;
|
|
7
5
|
protected _collectPanels(): void;
|
|
8
|
-
protected _createPanel(el: HTMLElement, options: PanelOptions):
|
|
9
|
-
protected _insertPanelElements(panels: Panel[], nextSibling: Panel | null): this;
|
|
10
|
-
protected _removePanelElements(panels: Panel[]): this;
|
|
6
|
+
protected _createPanel(el: HTMLElement, options: Omit<PanelOptions, "elementProvider">): Panel;
|
|
11
7
|
private _resetPanelElementOrder;
|
|
12
|
-
private
|
|
13
|
-
private _getRenderingPanelsByOrder;
|
|
8
|
+
private _removeAllTextNodes;
|
|
14
9
|
}
|
|
15
10
|
export default VanillaRenderer;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Renderer, { RendererOptions } from "./Renderer";
|
|
2
2
|
import VanillaRenderer from "./VanillaRenderer";
|
|
3
3
|
import ExternalRenderer from "./ExternalRenderer";
|
|
4
|
+
export * from "./strategy";
|
|
4
5
|
export { Renderer, VanillaRenderer, ExternalRenderer };
|
|
5
6
|
export type { RendererOptions };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import Flicking from "../../Flicking";
|
|
2
|
+
import Panel, { PanelOptions } from "../../core/panel/Panel";
|
|
3
|
+
import ElementProvider from "../../core/panel/provider/ElementProvider";
|
|
4
|
+
import RenderingStrategy from "./RenderingStrategy";
|
|
5
|
+
export interface NormalRenderingStrategyOptions {
|
|
6
|
+
providerCtor: new (...args: any) => ElementProvider;
|
|
7
|
+
}
|
|
8
|
+
declare class NormalRenderingStrategy implements RenderingStrategy {
|
|
9
|
+
private _providerCtor;
|
|
10
|
+
constructor({ providerCtor }: NormalRenderingStrategyOptions);
|
|
11
|
+
renderPanels(): void;
|
|
12
|
+
getRenderingIndexesByOrder(flicking: Flicking): number[];
|
|
13
|
+
getRenderingElementsByOrder(flicking: Flicking): HTMLElement[];
|
|
14
|
+
updateRenderingPanels(flicking: Flicking): void;
|
|
15
|
+
collectPanels(flicking: Flicking, elements: any[]): Panel[];
|
|
16
|
+
createPanel(element: any, options: Omit<PanelOptions, "elementProvider">): Panel;
|
|
17
|
+
updatePanelSizes(flicking: Flicking, size: Partial<{
|
|
18
|
+
width: number | string;
|
|
19
|
+
height: number | string;
|
|
20
|
+
}>): void;
|
|
21
|
+
private _showOnlyVisiblePanels;
|
|
22
|
+
}
|
|
23
|
+
export default NormalRenderingStrategy;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Flicking from "../../Flicking";
|
|
2
|
+
import Panel, { PanelOptions } from "../../core/panel/Panel";
|
|
3
|
+
interface RenderingStrategy {
|
|
4
|
+
renderPanels(flicking: Flicking): void;
|
|
5
|
+
getRenderingIndexesByOrder(flicking: Flicking): number[];
|
|
6
|
+
getRenderingElementsByOrder(flicking: Flicking): HTMLElement[];
|
|
7
|
+
updateRenderingPanels(flicking: Flicking): void;
|
|
8
|
+
createPanel(element: any, options: Omit<PanelOptions, "elementProvider">): Panel;
|
|
9
|
+
collectPanels(flicking: Flicking, elements: any[]): Panel[];
|
|
10
|
+
updatePanelSizes(flicking: Flicking, size: Partial<{
|
|
11
|
+
width: number | string;
|
|
12
|
+
height: number | string;
|
|
13
|
+
}>): void;
|
|
14
|
+
}
|
|
15
|
+
export default RenderingStrategy;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Flicking from "../../Flicking";
|
|
2
|
+
import { PanelOptions } from "../../core/panel/Panel";
|
|
3
|
+
import VirtualPanel from "../../core/panel/VirtualPanel";
|
|
4
|
+
import RenderingStrategy from "./RenderingStrategy";
|
|
5
|
+
declare class VirtualRenderingStrategy implements RenderingStrategy {
|
|
6
|
+
renderPanels(flicking: Flicking): void;
|
|
7
|
+
getRenderingIndexesByOrder(flicking: Flicking): number[];
|
|
8
|
+
getRenderingElementsByOrder(flicking: Flicking): HTMLElement[];
|
|
9
|
+
updateRenderingPanels(flicking: Flicking): void;
|
|
10
|
+
collectPanels(flicking: Flicking): VirtualPanel[];
|
|
11
|
+
createPanel(_el: any, options: PanelOptions): VirtualPanel;
|
|
12
|
+
updatePanelSizes(flicking: Flicking, size: Partial<{
|
|
13
|
+
width: number | string;
|
|
14
|
+
height: number | string;
|
|
15
|
+
}>): void;
|
|
16
|
+
}
|
|
17
|
+
export default VirtualRenderingStrategy;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import RenderingStrategy from "./RenderingStrategy";
|
|
2
|
+
import NormalRenderingStrategy, { NormalRenderingStrategyOptions } from "./NormalRenderingStrategy";
|
|
3
|
+
import VirtualRenderingStrategy from "./VirtualRenderingStrategy";
|
|
4
|
+
export { NormalRenderingStrategy, VirtualRenderingStrategy };
|
|
5
|
+
export type { RenderingStrategy, NormalRenderingStrategyOptions };
|
package/declaration/utils.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare const merge: <From extends object, To extends object>(target: Fro
|
|
|
6
6
|
export declare const getElement: (el: HTMLElement | string | null, parent?: HTMLElement) => HTMLElement;
|
|
7
7
|
export declare const checkExistence: (value: any, nameOnErrMsg: string) => void;
|
|
8
8
|
export declare const clamp: (x: number, min: number, max: number) => number;
|
|
9
|
-
export declare const getFlickingAttached: (val: Flicking | null
|
|
9
|
+
export declare const getFlickingAttached: (val: Flicking | null) => Flicking;
|
|
10
10
|
export declare const toArray: <T>(iterable: ArrayLike<T>) => T[];
|
|
11
11
|
export declare const parseAlign: (align: LiteralUnion<ValueOf<typeof ALIGN>> | number, size: number) => number;
|
|
12
12
|
export declare const parseBounce: (bounce: FlickingOptions["bounce"], size: number) => number[];
|
|
@@ -16,6 +16,7 @@ export declare const parseArithmeticExpression: (cssValue: number | string) => {
|
|
|
16
16
|
absolute: number;
|
|
17
17
|
} | null;
|
|
18
18
|
export declare const parseCSSSizeValue: (val: string | number) => string;
|
|
19
|
+
export declare const parsePanelAlign: (align: FlickingOptions["align"]) => string | number;
|
|
19
20
|
export declare const getDirection: (start: number, end: number) => ValueOf<typeof DIRECTION>;
|
|
20
21
|
export declare const parseElement: (element: ElementLike | ElementLike[]) => HTMLElement[];
|
|
21
22
|
export declare const getMinusCompensatedIndex: (idx: number, max: number) => number;
|
|
@@ -27,6 +28,11 @@ export declare const findRight: <T>(array: T[], checker: (val: T) => boolean) =>
|
|
|
27
28
|
export declare const findIndex: <T>(array: T[], checker: (val: T) => boolean) => number;
|
|
28
29
|
export declare const getProgress: (pos: number, prev: number, next: number) => number;
|
|
29
30
|
export declare const getStyle: (el: HTMLElement) => CSSStyleDeclaration;
|
|
31
|
+
export declare const setSize: (el: HTMLElement, { width, height }: Partial<{
|
|
32
|
+
width: number | string;
|
|
33
|
+
height: number | string;
|
|
34
|
+
}>) => void;
|
|
30
35
|
export declare const isBetween: (val: number, min: number, max: number) => boolean;
|
|
31
36
|
export declare const circulateIndex: (index: number, max: number) => number;
|
|
37
|
+
export declare const range: (end: number) => number[];
|
|
32
38
|
export declare const setPrototypeOf: (o: any, proto: object) => any;
|