@egjs/flicking 4.5.0 → 4.6.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/TODO.md ADDED
@@ -0,0 +1,3 @@
1
+ ## React 18 대응
2
+ - [] updateoffset을 미루기
3
+ - render가 완료되기 전에 updateOffset이 3번 호출되었음
@@ -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(flicking: Flicking): this;
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;
@@ -12,6 +12,7 @@ declare class StrictControl extends Control {
12
12
  constructor({ count }?: Partial<StrictControlOptions>);
13
13
  destroy(): void;
14
14
  updateInput(): this;
15
+ moveToPanel(panel: Panel, options: Parameters<Control["moveToPanel"]>[1]): Promise<void>;
15
16
  moveToPosition(position: number, duration: number, axesEvent?: OnRelease): Promise<void>;
16
17
  setActive: (newActivePanel: Panel, prevActivePanel: Panel | null, isTrusted: boolean) => void;
17
18
  private _resetIndexRange;
@@ -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;
@@ -1,2 +1,45 @@
1
- .flicking-viewport{position:relative;overflow:hidden}.flicking-viewport:not(.vertical){width:100%;height:100%}.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}.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}
2
- /*# sourceMappingURL=flicking-inline.css.map */
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{position:relative;overflow:hidden}.flicking-camera{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;z-index:1}.flicking-camera>*{-ms-flex-negative:0;flex-shrink:0}.flicking-viewport.vertical{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flicking-viewport.vertical>.flicking-camera{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flicking-viewport.flicking-hidden .flicking-camera>*{visibility:hidden}
2
- /*# sourceMappingURL=flicking.css.map */
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
+ }