@egjs/react-flicking 4.10.1 → 4.10.2-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/README.md +17 -8
- package/declaration/Flicking.d.ts +2 -1
- package/declaration/types.d.ts +1 -0
- package/dist/flicking-inline.css.map +1 -0
- package/dist/flicking.cjs.js +37 -20
- package/dist/flicking.cjs.js.map +1 -1
- package/dist/flicking.css.map +1 -0
- package/dist/flicking.esm.js +37 -20
- package/dist/flicking.esm.js.map +1 -1
- package/dist/flicking.umd.js +37 -20
- package/dist/flicking.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/react-flicking/Flicking.tsx +39 -20
- package/src/react-flicking/consts.ts +1 -0
- package/src/react-flicking/types.ts +1 -0
package/README.md
CHANGED
|
@@ -42,14 +42,15 @@ npm install --save @egjs/react-flicking
|
|
|
42
42
|
import Flicking, { MoveEvent, WillChangeEvent } from "@egjs/react-flicking";
|
|
43
43
|
|
|
44
44
|
<Flicking
|
|
45
|
-
viewportTag
|
|
46
|
-
cameraTag
|
|
47
|
-
cameraClass
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
viewportTag="div"
|
|
46
|
+
cameraTag="div"
|
|
47
|
+
cameraClass=""
|
|
48
|
+
renderOnSameKey={false}
|
|
49
|
+
align="center"
|
|
50
|
+
onMove={(e: MoveEvent) => {}}
|
|
51
|
+
onWillChange={(e: WillChangeEvent) => {}}
|
|
52
|
+
horizontal={true}
|
|
53
|
+
circular={true}
|
|
53
54
|
>
|
|
54
55
|
<div>panel 0</div>
|
|
55
56
|
<div>panel 1</div>
|
|
@@ -57,6 +58,14 @@ import Flicking, { MoveEvent, WillChangeEvent } from "@egjs/react-flicking";
|
|
|
57
58
|
</Flicking>
|
|
58
59
|
```
|
|
59
60
|
|
|
61
|
+
## ✨ React exclusive options
|
|
62
|
+
- viewportTag: HTML tag for `.flicking-viewport` element. (default: **"div"**)
|
|
63
|
+
- cameraTag: HTML tag for `.flicking-camera` element. (default: **"div"**)
|
|
64
|
+
- cameraClass: `className` for `.flicking-camera` element. (default: **""**)
|
|
65
|
+
- renderOnSameKey: Whether to always render children even they have the same keys (default: **false**)
|
|
66
|
+
- Flicking doesn't rerender when children have same length & keys for performance by default.
|
|
67
|
+
- If you have to bypass this behavior, like when you have to update panel's innerHTML without changing the list of child elements, you can either set this option to `true`, or you can call Flicking component's `forceUpdate()`.
|
|
68
|
+
|
|
60
69
|
## 📦 Packages
|
|
61
70
|
You can use all plugins just like native @egjs/flicking.
|
|
62
71
|
|
|
@@ -13,7 +13,8 @@ declare class Flicking extends React.Component<Partial<FlickingProps & FlickingO
|
|
|
13
13
|
private _viewportElement;
|
|
14
14
|
private _diffResult;
|
|
15
15
|
private _renderEmitter;
|
|
16
|
-
private
|
|
16
|
+
private _prevChildren;
|
|
17
|
+
private _renderingState;
|
|
17
18
|
get reactPanels(): (StrictPanel | NonStrictPanel | HTMLDivElement)[];
|
|
18
19
|
get renderEmitter(): Component<{
|
|
19
20
|
render: void;
|
package/declaration/types.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["<input css 1>"],"names":[],"mappings":"AAAA,mBAAmB,iBAAiB,CAAC,eAAe,CAAC,kCAAkC,UAAU,CAAC,WAAW,CAAC,iBAAiB,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,mBAAmB,oBAAoB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,yEAAyE,oBAAoB,CAAC,sDAAsD,qBAAqB,CAAC,sDAAsD,qBAAqB,CAAC,+CAA+C,aAAa,CAAC,sDAAsD,iBAAiB","file":"flicking-inline.css","sourcesContent":[".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}"]}
|
package/dist/flicking.cjs.js
CHANGED
|
@@ -4,7 +4,7 @@ name: @egjs/react-flicking
|
|
|
4
4
|
license: MIT
|
|
5
5
|
author: NAVER Corp.
|
|
6
6
|
repository: https://github.com/naver/egjs-flicking/tree/master/packages/react-flicking
|
|
7
|
-
version: 4.10.
|
|
7
|
+
version: 4.10.2-beta.1
|
|
8
8
|
*/
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
@@ -235,6 +235,7 @@ var DEFAULT_PROPS = {
|
|
|
235
235
|
viewportTag: "div",
|
|
236
236
|
cameraTag: "div",
|
|
237
237
|
cameraClass: "",
|
|
238
|
+
renderOnSameKey: false,
|
|
238
239
|
plugins: [],
|
|
239
240
|
useFindDOMNode: false,
|
|
240
241
|
hideBeforeInit: false,
|
|
@@ -479,6 +480,14 @@ function () {
|
|
|
479
480
|
return ReactElementProvider;
|
|
480
481
|
}();
|
|
481
482
|
|
|
483
|
+
var RenderingState;
|
|
484
|
+
|
|
485
|
+
(function (RenderingState) {
|
|
486
|
+
RenderingState[RenderingState["NONE"] = 0] = "NONE";
|
|
487
|
+
RenderingState[RenderingState["RENDERED"] = 1] = "RENDERED";
|
|
488
|
+
RenderingState[RenderingState["UPDATED"] = 2] = "UPDATED";
|
|
489
|
+
})(RenderingState || (RenderingState = {}));
|
|
490
|
+
|
|
482
491
|
var Flicking =
|
|
483
492
|
/*#__PURE__*/
|
|
484
493
|
function (_super) {
|
|
@@ -489,8 +498,12 @@ function (_super) {
|
|
|
489
498
|
|
|
490
499
|
_this._panels = [];
|
|
491
500
|
_this._renderEmitter = new Component();
|
|
492
|
-
|
|
493
|
-
|
|
501
|
+
|
|
502
|
+
var children = _this._getChildren();
|
|
503
|
+
|
|
504
|
+
_this._panels = _this._createPanelRefs(props, children);
|
|
505
|
+
_this._prevChildren = children;
|
|
506
|
+
_this._renderingState = RenderingState.NONE;
|
|
494
507
|
return _this;
|
|
495
508
|
}
|
|
496
509
|
|
|
@@ -532,7 +545,7 @@ function (_super) {
|
|
|
532
545
|
return panel.key;
|
|
533
546
|
});
|
|
534
547
|
this._pluginsDiffer = new ListDiffer();
|
|
535
|
-
this.
|
|
548
|
+
this._prevChildren = children;
|
|
536
549
|
|
|
537
550
|
this._bindEvents();
|
|
538
551
|
|
|
@@ -553,10 +566,9 @@ function (_super) {
|
|
|
553
566
|
var vanillaFlicking = this._vanillaFlicking;
|
|
554
567
|
var prevProps = this.props;
|
|
555
568
|
if (!vanillaFlicking || !vanillaFlicking.initialized) return false;
|
|
556
|
-
if (!this._hasSameChildren(prevProps, nextProps)) return true;
|
|
557
569
|
|
|
558
|
-
nextProps.children
|
|
559
|
-
|
|
570
|
+
var children = nextProps.children,
|
|
571
|
+
restProps = __rest(nextProps, ["children"]);
|
|
560
572
|
|
|
561
573
|
for (var key in restProps) {
|
|
562
574
|
if (prevProps[key] !== nextProps[key]) {
|
|
@@ -564,21 +576,28 @@ function (_super) {
|
|
|
564
576
|
}
|
|
565
577
|
}
|
|
566
578
|
|
|
579
|
+
var prevChildren = this._prevChildren;
|
|
580
|
+
|
|
581
|
+
var nextChildren = this._getChildren(children);
|
|
582
|
+
|
|
583
|
+
if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;
|
|
567
584
|
return false;
|
|
568
585
|
};
|
|
569
586
|
|
|
570
587
|
__proto.beforeRender = function () {
|
|
571
588
|
var vanillaFlicking = this._vanillaFlicking;
|
|
572
|
-
var
|
|
573
|
-
var
|
|
589
|
+
var props = this.props;
|
|
590
|
+
var prevChildren = this._prevChildren; // Ignore updates before init, they will be updated after "ready" event's force update
|
|
591
|
+
// Also, ignore update between two successive rendering calls
|
|
574
592
|
|
|
575
|
-
if (!vanillaFlicking || !vanillaFlicking.initialized) return;
|
|
593
|
+
if (!vanillaFlicking || !vanillaFlicking.initialized || this._renderingState === RenderingState.RENDERED) return;
|
|
576
594
|
|
|
577
|
-
|
|
578
|
-
var nextChildren = this._getChildren(nextProps.children);
|
|
595
|
+
var nextChildren = this._getChildren(props.children);
|
|
579
596
|
|
|
580
|
-
|
|
597
|
+
if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {
|
|
598
|
+
this._panels = this._createPanelRefs(props, nextChildren);
|
|
581
599
|
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
600
|
+
this._prevChildren = nextChildren;
|
|
582
601
|
}
|
|
583
602
|
};
|
|
584
603
|
|
|
@@ -593,6 +612,7 @@ function (_super) {
|
|
|
593
612
|
flicking.camera.updateOffset();
|
|
594
613
|
if (!diffResult || !flicking.initialized) return;
|
|
595
614
|
VanillaFlicking.sync(flicking, diffResult, this.reactPanels);
|
|
615
|
+
this._renderingState = RenderingState.UPDATED;
|
|
596
616
|
this._diffResult = null;
|
|
597
617
|
};
|
|
598
618
|
|
|
@@ -641,7 +661,7 @@ function (_super) {
|
|
|
641
661
|
}
|
|
642
662
|
} : {};
|
|
643
663
|
var panels = !!props.virtual && ((_b = props.panelsPerView) !== null && _b !== void 0 ? _b : -1) > 0 ? this._getVirtualPanels() : this._getPanels();
|
|
644
|
-
this.
|
|
664
|
+
this._renderingState = RenderingState.RENDERED;
|
|
645
665
|
return React.createElement(Viewport, __assign({}, attributes, {
|
|
646
666
|
className: viewportClasses.join(" "),
|
|
647
667
|
ref: function (e) {
|
|
@@ -708,14 +728,11 @@ function (_super) {
|
|
|
708
728
|
}));
|
|
709
729
|
};
|
|
710
730
|
|
|
711
|
-
__proto._hasSameChildren = function (
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
var nextChildren = this._getChildren(nextProps.children);
|
|
715
|
-
|
|
716
|
-
if (prevChildren.length !== nextChildren.length) return false;
|
|
731
|
+
__proto._hasSameChildren = function (prevChildren, nextChildren) {
|
|
732
|
+
if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;
|
|
717
733
|
var same = prevChildren.every(function (child, idx) {
|
|
718
734
|
var nextChild = nextChildren[idx];
|
|
735
|
+
console.log(child, nextChild);
|
|
719
736
|
|
|
720
737
|
if (child.key && nextChild.key) {
|
|
721
738
|
return child.key === nextChild.key;
|
package/dist/flicking.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flicking.cjs.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.umd.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevProps: Partial<FlickingProps & FlickingOptions>;\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n this._panels = this._createPanelRefs(props, this._getChildren());\n this._prevProps = this.props;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevProps = this.props;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n if (!this._hasSameChildren(prevProps, nextProps)) return true;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const nextProps = this.props;\n const prevProps = this._prevProps;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n if (!vanillaFlicking || !vanillaFlicking.initialized) return;\n\n if (!this._hasSameChildren(prevProps, nextProps)) {\n const nextChildren = this._getChildren(nextProps.children);\n\n this._panels = this._createPanelRefs(nextProps, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n this._prevProps = props;\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n const children = this._getChildren();\n const diffResult = this._jsxDiffer.update(children);\n\n // children is changed before init\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this._panels = this._createPanelRefs(this.props, children);\n this._diffResult = diffResult;\n }\n\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevProps: this[\"props\"], nextProps: this[\"props\"]) {\n const prevChildren = this._getChildren(prevProps.children);\n const nextChildren = this._getChildren(nextProps.children);\n\n if (prevChildren.length !== nextChildren.length) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n if ((child as React.ReactElement).key && (nextChild as React.ReactElement).key) {\n return (child as React.ReactElement).key === (nextChild as React.ReactElement).key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\n(Flicking as any).ViewportSlot = ViewportSlot;\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","_createPanelRefs","_getChildren","_prevProps","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","_hasSameChildren","restProps","nextChildren","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","added","length","removed","list","prevList","addPlugins","index","removePlugins","prevChildren","same","every","child","idx","nextChild","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flicking.cjs.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.umd.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n renderOnSameKey: false,\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nenum RenderingState {\n NONE,\n RENDERED,\n UPDATED\n}\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevChildren: React.ReactElement[];\n /**\n * The Purpose of \"Rendering State\" is:\n * In some cases, like in <StrictMode>, React attempts to render twice without calling `componentDidUpdate`.\n * We ignore the diff update between the two rendering calls, using this rendering state.\n */\n private _renderingState: RenderingState;\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n const children = this._getChildren();\n this._panels = this._createPanelRefs(props, children);\n this._prevChildren = children;\n this._renderingState = RenderingState.NONE;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevChildren = children;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n const prevChildren = this._prevChildren;\n const nextChildren = this._getChildren(children);\n if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const props = this.props;\n const prevChildren = this._prevChildren;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n // Also, ignore update between two successive rendering calls\n if (!vanillaFlicking || !vanillaFlicking.initialized || this._renderingState === RenderingState.RENDERED) return;\n\n const nextChildren = this._getChildren(props.children);\n if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {\n this._panels = this._createPanelRefs(props, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n this._prevChildren = nextChildren;\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._renderingState = RenderingState.UPDATED;\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n this._renderingState = RenderingState.RENDERED;\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n const children = this._getChildren();\n const diffResult = this._jsxDiffer.update(children);\n\n // children is changed before init\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this._panels = this._createPanelRefs(this.props, children);\n this._diffResult = diffResult;\n }\n\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevChildren: React.ReactElement[], nextChildren: React.ReactElement[]) {\n if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n\n console.log(child, nextChild);\n\n if (child.key && nextChild.key) {\n return child.key === nextChild.key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\n(Flicking as any).ViewportSlot = ViewportSlot;\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","renderOnSameKey","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","RenderingState","_getChildren","_createPanelRefs","_prevChildren","_renderingState","NONE","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","restProps","prevChildren","nextChildren","_hasSameChildren","RENDERED","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","UPDATED","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","added","length","removed","list","prevList","addPlugins","index","removePlugins","same","every","child","idx","nextChild","console","log","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["<input css 2>"],"names":[],"mappings":"AAAA,mBAAmB,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,YAAY,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,mBAAmB,mBAAmB,CAAC,aAAa,CAAC,4BAA4B,0BAA0B,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,6CAA6C,0BAA0B,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,4BAA4B,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,sDAAsD,iBAAiB","file":"flicking.css","sourcesContent":[".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}"]}
|
package/dist/flicking.esm.js
CHANGED
|
@@ -4,7 +4,7 @@ name: @egjs/react-flicking
|
|
|
4
4
|
license: MIT
|
|
5
5
|
author: NAVER Corp.
|
|
6
6
|
repository: https://github.com/naver/egjs-flicking/tree/master/packages/react-flicking
|
|
7
|
-
version: 4.10.
|
|
7
|
+
version: 4.10.2-beta.1
|
|
8
8
|
*/
|
|
9
9
|
import * as React from 'react';
|
|
10
10
|
import React__default from 'react';
|
|
@@ -235,6 +235,7 @@ var DEFAULT_PROPS = {
|
|
|
235
235
|
viewportTag: "div",
|
|
236
236
|
cameraTag: "div",
|
|
237
237
|
cameraClass: "",
|
|
238
|
+
renderOnSameKey: false,
|
|
238
239
|
plugins: [],
|
|
239
240
|
useFindDOMNode: false,
|
|
240
241
|
hideBeforeInit: false,
|
|
@@ -479,6 +480,14 @@ function () {
|
|
|
479
480
|
return ReactElementProvider;
|
|
480
481
|
}();
|
|
481
482
|
|
|
483
|
+
var RenderingState;
|
|
484
|
+
|
|
485
|
+
(function (RenderingState) {
|
|
486
|
+
RenderingState[RenderingState["NONE"] = 0] = "NONE";
|
|
487
|
+
RenderingState[RenderingState["RENDERED"] = 1] = "RENDERED";
|
|
488
|
+
RenderingState[RenderingState["UPDATED"] = 2] = "UPDATED";
|
|
489
|
+
})(RenderingState || (RenderingState = {}));
|
|
490
|
+
|
|
482
491
|
var Flicking =
|
|
483
492
|
/*#__PURE__*/
|
|
484
493
|
function (_super) {
|
|
@@ -489,8 +498,12 @@ function (_super) {
|
|
|
489
498
|
|
|
490
499
|
_this._panels = [];
|
|
491
500
|
_this._renderEmitter = new Component();
|
|
492
|
-
|
|
493
|
-
|
|
501
|
+
|
|
502
|
+
var children = _this._getChildren();
|
|
503
|
+
|
|
504
|
+
_this._panels = _this._createPanelRefs(props, children);
|
|
505
|
+
_this._prevChildren = children;
|
|
506
|
+
_this._renderingState = RenderingState.NONE;
|
|
494
507
|
return _this;
|
|
495
508
|
}
|
|
496
509
|
|
|
@@ -532,7 +545,7 @@ function (_super) {
|
|
|
532
545
|
return panel.key;
|
|
533
546
|
});
|
|
534
547
|
this._pluginsDiffer = new ListDiffer();
|
|
535
|
-
this.
|
|
548
|
+
this._prevChildren = children;
|
|
536
549
|
|
|
537
550
|
this._bindEvents();
|
|
538
551
|
|
|
@@ -553,10 +566,9 @@ function (_super) {
|
|
|
553
566
|
var vanillaFlicking = this._vanillaFlicking;
|
|
554
567
|
var prevProps = this.props;
|
|
555
568
|
if (!vanillaFlicking || !vanillaFlicking.initialized) return false;
|
|
556
|
-
if (!this._hasSameChildren(prevProps, nextProps)) return true;
|
|
557
569
|
|
|
558
|
-
nextProps.children
|
|
559
|
-
|
|
570
|
+
var children = nextProps.children,
|
|
571
|
+
restProps = __rest(nextProps, ["children"]);
|
|
560
572
|
|
|
561
573
|
for (var key in restProps) {
|
|
562
574
|
if (prevProps[key] !== nextProps[key]) {
|
|
@@ -564,21 +576,28 @@ function (_super) {
|
|
|
564
576
|
}
|
|
565
577
|
}
|
|
566
578
|
|
|
579
|
+
var prevChildren = this._prevChildren;
|
|
580
|
+
|
|
581
|
+
var nextChildren = this._getChildren(children);
|
|
582
|
+
|
|
583
|
+
if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;
|
|
567
584
|
return false;
|
|
568
585
|
};
|
|
569
586
|
|
|
570
587
|
__proto.beforeRender = function () {
|
|
571
588
|
var vanillaFlicking = this._vanillaFlicking;
|
|
572
|
-
var
|
|
573
|
-
var
|
|
589
|
+
var props = this.props;
|
|
590
|
+
var prevChildren = this._prevChildren; // Ignore updates before init, they will be updated after "ready" event's force update
|
|
591
|
+
// Also, ignore update between two successive rendering calls
|
|
574
592
|
|
|
575
|
-
if (!vanillaFlicking || !vanillaFlicking.initialized) return;
|
|
593
|
+
if (!vanillaFlicking || !vanillaFlicking.initialized || this._renderingState === RenderingState.RENDERED) return;
|
|
576
594
|
|
|
577
|
-
|
|
578
|
-
var nextChildren = this._getChildren(nextProps.children);
|
|
595
|
+
var nextChildren = this._getChildren(props.children);
|
|
579
596
|
|
|
580
|
-
|
|
597
|
+
if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {
|
|
598
|
+
this._panels = this._createPanelRefs(props, nextChildren);
|
|
581
599
|
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
600
|
+
this._prevChildren = nextChildren;
|
|
582
601
|
}
|
|
583
602
|
};
|
|
584
603
|
|
|
@@ -593,6 +612,7 @@ function (_super) {
|
|
|
593
612
|
flicking.camera.updateOffset();
|
|
594
613
|
if (!diffResult || !flicking.initialized) return;
|
|
595
614
|
sync(flicking, diffResult, this.reactPanels);
|
|
615
|
+
this._renderingState = RenderingState.UPDATED;
|
|
596
616
|
this._diffResult = null;
|
|
597
617
|
};
|
|
598
618
|
|
|
@@ -641,7 +661,7 @@ function (_super) {
|
|
|
641
661
|
}
|
|
642
662
|
} : {};
|
|
643
663
|
var panels = !!props.virtual && ((_b = props.panelsPerView) !== null && _b !== void 0 ? _b : -1) > 0 ? this._getVirtualPanels() : this._getPanels();
|
|
644
|
-
this.
|
|
664
|
+
this._renderingState = RenderingState.RENDERED;
|
|
645
665
|
return React.createElement(Viewport, __assign({}, attributes, {
|
|
646
666
|
className: viewportClasses.join(" "),
|
|
647
667
|
ref: function (e) {
|
|
@@ -708,14 +728,11 @@ function (_super) {
|
|
|
708
728
|
}));
|
|
709
729
|
};
|
|
710
730
|
|
|
711
|
-
__proto._hasSameChildren = function (
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
var nextChildren = this._getChildren(nextProps.children);
|
|
715
|
-
|
|
716
|
-
if (prevChildren.length !== nextChildren.length) return false;
|
|
731
|
+
__proto._hasSameChildren = function (prevChildren, nextChildren) {
|
|
732
|
+
if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;
|
|
717
733
|
var same = prevChildren.every(function (child, idx) {
|
|
718
734
|
var nextChild = nextChildren[idx];
|
|
735
|
+
console.log(child, nextChild);
|
|
719
736
|
|
|
720
737
|
if (child.key && nextChild.key) {
|
|
721
738
|
return child.key === nextChild.key;
|
package/dist/flicking.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flicking.esm.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevProps: Partial<FlickingProps & FlickingOptions>;\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n this._panels = this._createPanelRefs(props, this._getChildren());\n this._prevProps = this.props;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevProps = this.props;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n if (!this._hasSameChildren(prevProps, nextProps)) return true;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const nextProps = this.props;\n const prevProps = this._prevProps;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n if (!vanillaFlicking || !vanillaFlicking.initialized) return;\n\n if (!this._hasSameChildren(prevProps, nextProps)) {\n const nextChildren = this._getChildren(nextProps.children);\n\n this._panels = this._createPanelRefs(nextProps, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n this._prevProps = props;\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n const children = this._getChildren();\n const diffResult = this._jsxDiffer.update(children);\n\n // children is changed before init\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this._panels = this._createPanelRefs(this.props, children);\n this._diffResult = diffResult;\n }\n\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevProps: this[\"props\"], nextProps: this[\"props\"]) {\n const prevChildren = this._getChildren(prevProps.children);\n const nextChildren = this._getChildren(nextProps.children);\n\n if (prevChildren.length !== nextChildren.length) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n if ((child as React.ReactElement).key && (nextChild as React.ReactElement).key) {\n return (child as React.ReactElement).key === (nextChild as React.ReactElement).key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\nexport * from \"@egjs/flicking\";\nexport * from \"./types\";\n\nexport {\n ViewportSlot\n}\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","_createPanelRefs","_getChildren","_prevProps","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","_hasSameChildren","restProps","nextChildren","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","added","length","removed","list","prevList","addPlugins","index","removePlugins","prevChildren","same","every","child","idx","nextChild","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flicking.esm.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n renderOnSameKey: false,\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nenum RenderingState {\n NONE,\n RENDERED,\n UPDATED\n}\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevChildren: React.ReactElement[];\n /**\n * The Purpose of \"Rendering State\" is:\n * In some cases, like in <StrictMode>, React attempts to render twice without calling `componentDidUpdate`.\n * We ignore the diff update between the two rendering calls, using this rendering state.\n */\n private _renderingState: RenderingState;\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n const children = this._getChildren();\n this._panels = this._createPanelRefs(props, children);\n this._prevChildren = children;\n this._renderingState = RenderingState.NONE;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevChildren = children;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n const prevChildren = this._prevChildren;\n const nextChildren = this._getChildren(children);\n if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const props = this.props;\n const prevChildren = this._prevChildren;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n // Also, ignore update between two successive rendering calls\n if (!vanillaFlicking || !vanillaFlicking.initialized || this._renderingState === RenderingState.RENDERED) return;\n\n const nextChildren = this._getChildren(props.children);\n if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {\n this._panels = this._createPanelRefs(props, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n this._prevChildren = nextChildren;\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._renderingState = RenderingState.UPDATED;\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n this._renderingState = RenderingState.RENDERED;\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n const children = this._getChildren();\n const diffResult = this._jsxDiffer.update(children);\n\n // children is changed before init\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this._panels = this._createPanelRefs(this.props, children);\n this._diffResult = diffResult;\n }\n\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevChildren: React.ReactElement[], nextChildren: React.ReactElement[]) {\n if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n\n console.log(child, nextChild);\n\n if (child.key && nextChild.key) {\n return child.key === nextChild.key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\nexport * from \"@egjs/flicking\";\nexport * from \"./types\";\n\nexport {\n ViewportSlot\n}\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","renderOnSameKey","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","RenderingState","_getChildren","_createPanelRefs","_prevChildren","_renderingState","NONE","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","restProps","prevChildren","nextChildren","_hasSameChildren","RENDERED","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","UPDATED","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","added","length","removed","list","prevList","addPlugins","index","removePlugins","same","every","child","idx","nextChild","console","log","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
package/dist/flicking.umd.js
CHANGED
|
@@ -4,7 +4,7 @@ name: @egjs/react-flicking
|
|
|
4
4
|
license: MIT
|
|
5
5
|
author: NAVER Corp.
|
|
6
6
|
repository: https://github.com/naver/egjs-flicking/tree/master/packages/react-flicking
|
|
7
|
-
version: 4.10.
|
|
7
|
+
version: 4.10.2-beta.1
|
|
8
8
|
*/
|
|
9
9
|
(function (global, factory) {
|
|
10
10
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('@egjs/component'), require('@egjs/list-differ'), require('@egjs/flicking'), require('react-dom')) :
|
|
@@ -233,6 +233,7 @@ version: 4.10.0
|
|
|
233
233
|
viewportTag: "div",
|
|
234
234
|
cameraTag: "div",
|
|
235
235
|
cameraClass: "",
|
|
236
|
+
renderOnSameKey: false,
|
|
236
237
|
plugins: [],
|
|
237
238
|
useFindDOMNode: false,
|
|
238
239
|
hideBeforeInit: false,
|
|
@@ -477,6 +478,14 @@ version: 4.10.0
|
|
|
477
478
|
return ReactElementProvider;
|
|
478
479
|
}();
|
|
479
480
|
|
|
481
|
+
var RenderingState;
|
|
482
|
+
|
|
483
|
+
(function (RenderingState) {
|
|
484
|
+
RenderingState[RenderingState["NONE"] = 0] = "NONE";
|
|
485
|
+
RenderingState[RenderingState["RENDERED"] = 1] = "RENDERED";
|
|
486
|
+
RenderingState[RenderingState["UPDATED"] = 2] = "UPDATED";
|
|
487
|
+
})(RenderingState || (RenderingState = {}));
|
|
488
|
+
|
|
480
489
|
var Flicking =
|
|
481
490
|
/*#__PURE__*/
|
|
482
491
|
function (_super) {
|
|
@@ -487,8 +496,12 @@ version: 4.10.0
|
|
|
487
496
|
|
|
488
497
|
_this._panels = [];
|
|
489
498
|
_this._renderEmitter = new Component();
|
|
490
|
-
|
|
491
|
-
|
|
499
|
+
|
|
500
|
+
var children = _this._getChildren();
|
|
501
|
+
|
|
502
|
+
_this._panels = _this._createPanelRefs(props, children);
|
|
503
|
+
_this._prevChildren = children;
|
|
504
|
+
_this._renderingState = RenderingState.NONE;
|
|
492
505
|
return _this;
|
|
493
506
|
}
|
|
494
507
|
|
|
@@ -530,7 +543,7 @@ version: 4.10.0
|
|
|
530
543
|
return panel.key;
|
|
531
544
|
});
|
|
532
545
|
this._pluginsDiffer = new ListDiffer();
|
|
533
|
-
this.
|
|
546
|
+
this._prevChildren = children;
|
|
534
547
|
|
|
535
548
|
this._bindEvents();
|
|
536
549
|
|
|
@@ -551,10 +564,9 @@ version: 4.10.0
|
|
|
551
564
|
var vanillaFlicking = this._vanillaFlicking;
|
|
552
565
|
var prevProps = this.props;
|
|
553
566
|
if (!vanillaFlicking || !vanillaFlicking.initialized) return false;
|
|
554
|
-
if (!this._hasSameChildren(prevProps, nextProps)) return true;
|
|
555
567
|
|
|
556
|
-
nextProps.children
|
|
557
|
-
|
|
568
|
+
var children = nextProps.children,
|
|
569
|
+
restProps = __rest(nextProps, ["children"]);
|
|
558
570
|
|
|
559
571
|
for (var key in restProps) {
|
|
560
572
|
if (prevProps[key] !== nextProps[key]) {
|
|
@@ -562,21 +574,28 @@ version: 4.10.0
|
|
|
562
574
|
}
|
|
563
575
|
}
|
|
564
576
|
|
|
577
|
+
var prevChildren = this._prevChildren;
|
|
578
|
+
|
|
579
|
+
var nextChildren = this._getChildren(children);
|
|
580
|
+
|
|
581
|
+
if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;
|
|
565
582
|
return false;
|
|
566
583
|
};
|
|
567
584
|
|
|
568
585
|
__proto.beforeRender = function () {
|
|
569
586
|
var vanillaFlicking = this._vanillaFlicking;
|
|
570
|
-
var
|
|
571
|
-
var
|
|
587
|
+
var props = this.props;
|
|
588
|
+
var prevChildren = this._prevChildren; // Ignore updates before init, they will be updated after "ready" event's force update
|
|
589
|
+
// Also, ignore update between two successive rendering calls
|
|
572
590
|
|
|
573
|
-
if (!vanillaFlicking || !vanillaFlicking.initialized) return;
|
|
591
|
+
if (!vanillaFlicking || !vanillaFlicking.initialized || this._renderingState === RenderingState.RENDERED) return;
|
|
574
592
|
|
|
575
|
-
|
|
576
|
-
var nextChildren = this._getChildren(nextProps.children);
|
|
593
|
+
var nextChildren = this._getChildren(props.children);
|
|
577
594
|
|
|
578
|
-
|
|
595
|
+
if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {
|
|
596
|
+
this._panels = this._createPanelRefs(props, nextChildren);
|
|
579
597
|
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
598
|
+
this._prevChildren = nextChildren;
|
|
580
599
|
}
|
|
581
600
|
};
|
|
582
601
|
|
|
@@ -591,6 +610,7 @@ version: 4.10.0
|
|
|
591
610
|
flicking.camera.updateOffset();
|
|
592
611
|
if (!diffResult || !flicking.initialized) return;
|
|
593
612
|
VanillaFlicking.sync(flicking, diffResult, this.reactPanels);
|
|
613
|
+
this._renderingState = RenderingState.UPDATED;
|
|
594
614
|
this._diffResult = null;
|
|
595
615
|
};
|
|
596
616
|
|
|
@@ -639,7 +659,7 @@ version: 4.10.0
|
|
|
639
659
|
}
|
|
640
660
|
} : {};
|
|
641
661
|
var panels = !!props.virtual && ((_b = props.panelsPerView) !== null && _b !== void 0 ? _b : -1) > 0 ? this._getVirtualPanels() : this._getPanels();
|
|
642
|
-
this.
|
|
662
|
+
this._renderingState = RenderingState.RENDERED;
|
|
643
663
|
return React.createElement(Viewport, __assign({}, attributes, {
|
|
644
664
|
className: viewportClasses.join(" "),
|
|
645
665
|
ref: function (e) {
|
|
@@ -706,14 +726,11 @@ version: 4.10.0
|
|
|
706
726
|
}));
|
|
707
727
|
};
|
|
708
728
|
|
|
709
|
-
__proto._hasSameChildren = function (
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
var nextChildren = this._getChildren(nextProps.children);
|
|
713
|
-
|
|
714
|
-
if (prevChildren.length !== nextChildren.length) return false;
|
|
729
|
+
__proto._hasSameChildren = function (prevChildren, nextChildren) {
|
|
730
|
+
if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;
|
|
715
731
|
var same = prevChildren.every(function (child, idx) {
|
|
716
732
|
var nextChild = nextChildren[idx];
|
|
733
|
+
console.log(child, nextChild);
|
|
717
734
|
|
|
718
735
|
if (child.key && nextChild.key) {
|
|
719
736
|
return child.key === nextChild.key;
|
package/dist/flicking.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flicking.umd.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.umd.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevProps: Partial<FlickingProps & FlickingOptions>;\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n this._panels = this._createPanelRefs(props, this._getChildren());\n this._prevProps = this.props;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevProps = this.props;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n if (!this._hasSameChildren(prevProps, nextProps)) return true;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const nextProps = this.props;\n const prevProps = this._prevProps;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n if (!vanillaFlicking || !vanillaFlicking.initialized) return;\n\n if (!this._hasSameChildren(prevProps, nextProps)) {\n const nextChildren = this._getChildren(nextProps.children);\n\n this._panels = this._createPanelRefs(nextProps, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n this._prevProps = props;\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n const children = this._getChildren();\n const diffResult = this._jsxDiffer.update(children);\n\n // children is changed before init\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this._panels = this._createPanelRefs(this.props, children);\n this._diffResult = diffResult;\n }\n\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevProps: this[\"props\"], nextProps: this[\"props\"]) {\n const prevChildren = this._getChildren(prevProps.children);\n const nextChildren = this._getChildren(nextProps.children);\n\n if (prevChildren.length !== nextChildren.length) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n if ((child as React.ReactElement).key && (nextChild as React.ReactElement).key) {\n return (child as React.ReactElement).key === (nextChild as React.ReactElement).key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\n(Flicking as any).ViewportSlot = ViewportSlot;\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","_createPanelRefs","_getChildren","_prevProps","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","_hasSameChildren","restProps","nextChildren","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","added","length","removed","list","prevList","addPlugins","index","removePlugins","prevChildren","same","every","child","idx","nextChild","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flicking.umd.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.umd.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n renderOnSameKey: false,\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nenum RenderingState {\n NONE,\n RENDERED,\n UPDATED\n}\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevChildren: React.ReactElement[];\n /**\n * The Purpose of \"Rendering State\" is:\n * In some cases, like in <StrictMode>, React attempts to render twice without calling `componentDidUpdate`.\n * We ignore the diff update between the two rendering calls, using this rendering state.\n */\n private _renderingState: RenderingState;\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n const children = this._getChildren();\n this._panels = this._createPanelRefs(props, children);\n this._prevChildren = children;\n this._renderingState = RenderingState.NONE;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevChildren = children;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n const prevChildren = this._prevChildren;\n const nextChildren = this._getChildren(children);\n if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const props = this.props;\n const prevChildren = this._prevChildren;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n // Also, ignore update between two successive rendering calls\n if (!vanillaFlicking || !vanillaFlicking.initialized || this._renderingState === RenderingState.RENDERED) return;\n\n const nextChildren = this._getChildren(props.children);\n if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {\n this._panels = this._createPanelRefs(props, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n this._prevChildren = nextChildren;\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._renderingState = RenderingState.UPDATED;\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n this._renderingState = RenderingState.RENDERED;\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n const children = this._getChildren();\n const diffResult = this._jsxDiffer.update(children);\n\n // children is changed before init\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this._panels = this._createPanelRefs(this.props, children);\n this._diffResult = diffResult;\n }\n\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevChildren: React.ReactElement[], nextChildren: React.ReactElement[]) {\n if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n\n console.log(child, nextChild);\n\n if (child.key && nextChild.key) {\n return child.key === nextChild.key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\n(Flicking as any).ViewportSlot = ViewportSlot;\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","renderOnSameKey","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","RenderingState","_getChildren","_createPanelRefs","_prevChildren","_renderingState","NONE","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","restProps","prevChildren","nextChildren","_hasSameChildren","RENDERED","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","UPDATED","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","added","length","removed","list","prevList","addPlugins","index","removePlugins","same","every","child","idx","nextChild","console","log","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -26,6 +26,12 @@ import NonStrictPanel from "./NonStrictPanel";
|
|
|
26
26
|
import ViewportSlot from "./ViewportSlot";
|
|
27
27
|
import ReactElementProvider from "./ReactElementProvider";
|
|
28
28
|
|
|
29
|
+
enum RenderingState {
|
|
30
|
+
NONE,
|
|
31
|
+
RENDERED,
|
|
32
|
+
UPDATED
|
|
33
|
+
}
|
|
34
|
+
|
|
29
35
|
class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {
|
|
30
36
|
public static defaultProps: FlickingProps = DEFAULT_PROPS;
|
|
31
37
|
|
|
@@ -36,7 +42,13 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
|
|
|
36
42
|
private _viewportElement: HTMLElement;
|
|
37
43
|
private _diffResult: DiffResult<React.ReactElement> | null;
|
|
38
44
|
private _renderEmitter = new Component<{ render: void }>();
|
|
39
|
-
private
|
|
45
|
+
private _prevChildren: React.ReactElement[];
|
|
46
|
+
/**
|
|
47
|
+
* The Purpose of "Rendering State" is:
|
|
48
|
+
* In some cases, like in <StrictMode>, React attempts to render twice without calling `componentDidUpdate`.
|
|
49
|
+
* We ignore the diff update between the two rendering calls, using this rendering state.
|
|
50
|
+
*/
|
|
51
|
+
private _renderingState: RenderingState;
|
|
40
52
|
|
|
41
53
|
public get reactPanels() { return this._panels.map(panel => panel.current!); }
|
|
42
54
|
public get renderEmitter() { return this._renderEmitter; }
|
|
@@ -44,8 +56,10 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
|
|
|
44
56
|
public constructor(props: Partial<FlickingProps & FlickingOptions>) {
|
|
45
57
|
super(props);
|
|
46
58
|
|
|
47
|
-
|
|
48
|
-
this.
|
|
59
|
+
const children = this._getChildren();
|
|
60
|
+
this._panels = this._createPanelRefs(props, children);
|
|
61
|
+
this._prevChildren = children;
|
|
62
|
+
this._renderingState = RenderingState.NONE;
|
|
49
63
|
}
|
|
50
64
|
|
|
51
65
|
public componentDidMount() {
|
|
@@ -73,7 +87,7 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
|
|
|
73
87
|
const children = this._getChildren();
|
|
74
88
|
this._jsxDiffer = new ListDiffer(children, panel => panel.key!);
|
|
75
89
|
this._pluginsDiffer = new ListDiffer<any>();
|
|
76
|
-
this.
|
|
90
|
+
this._prevChildren = children;
|
|
77
91
|
|
|
78
92
|
this._bindEvents();
|
|
79
93
|
this._checkPlugins();
|
|
@@ -92,7 +106,6 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
|
|
|
92
106
|
const prevProps = this.props;
|
|
93
107
|
|
|
94
108
|
if (!vanillaFlicking || !vanillaFlicking.initialized) return false;
|
|
95
|
-
if (!this._hasSameChildren(prevProps, nextProps)) return true;
|
|
96
109
|
|
|
97
110
|
const { children, ...restProps } = nextProps;
|
|
98
111
|
|
|
@@ -102,22 +115,27 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
|
|
|
102
115
|
}
|
|
103
116
|
}
|
|
104
117
|
|
|
118
|
+
const prevChildren = this._prevChildren;
|
|
119
|
+
const nextChildren = this._getChildren(children);
|
|
120
|
+
if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;
|
|
121
|
+
|
|
105
122
|
return false;
|
|
106
123
|
}
|
|
107
124
|
|
|
108
125
|
public beforeRender() {
|
|
109
126
|
const vanillaFlicking = this._vanillaFlicking;
|
|
110
|
-
const
|
|
111
|
-
const
|
|
127
|
+
const props = this.props;
|
|
128
|
+
const prevChildren = this._prevChildren;
|
|
112
129
|
|
|
113
130
|
// Ignore updates before init, they will be updated after "ready" event's force update
|
|
114
|
-
|
|
131
|
+
// Also, ignore update between two successive rendering calls
|
|
132
|
+
if (!vanillaFlicking || !vanillaFlicking.initialized || this._renderingState === RenderingState.RENDERED) return;
|
|
115
133
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
this._panels = this._createPanelRefs(nextProps, nextChildren);
|
|
134
|
+
const nextChildren = this._getChildren(props.children);
|
|
135
|
+
if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {
|
|
136
|
+
this._panels = this._createPanelRefs(props, nextChildren);
|
|
120
137
|
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
138
|
+
this._prevChildren = nextChildren;
|
|
121
139
|
}
|
|
122
140
|
}
|
|
123
141
|
|
|
@@ -134,6 +152,7 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
|
|
|
134
152
|
|
|
135
153
|
sync(flicking, diffResult, this.reactPanels);
|
|
136
154
|
|
|
155
|
+
this._renderingState = RenderingState.UPDATED;
|
|
137
156
|
this._diffResult = null;
|
|
138
157
|
}
|
|
139
158
|
|
|
@@ -182,7 +201,7 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
|
|
|
182
201
|
? this._getVirtualPanels()
|
|
183
202
|
: this._getPanels();
|
|
184
203
|
|
|
185
|
-
this.
|
|
204
|
+
this._renderingState = RenderingState.RENDERED;
|
|
186
205
|
|
|
187
206
|
return (
|
|
188
207
|
<Viewport {...attributes} className={viewportClasses.join(" ")} ref={(e?: HTMLElement) => {
|
|
@@ -241,16 +260,16 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
|
|
|
241
260
|
flicking.removePlugins(...removed.map(index => prevList[index]));
|
|
242
261
|
}
|
|
243
262
|
|
|
244
|
-
private _hasSameChildren(
|
|
245
|
-
|
|
246
|
-
const nextChildren = this._getChildren(nextProps.children);
|
|
247
|
-
|
|
248
|
-
if (prevChildren.length !== nextChildren.length) return false;
|
|
263
|
+
private _hasSameChildren(prevChildren: React.ReactElement[], nextChildren: React.ReactElement[]) {
|
|
264
|
+
if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;
|
|
249
265
|
|
|
250
266
|
const same = prevChildren.every((child, idx) => {
|
|
251
267
|
const nextChild = nextChildren[idx];
|
|
252
|
-
|
|
253
|
-
|
|
268
|
+
|
|
269
|
+
console.log(child, nextChild);
|
|
270
|
+
|
|
271
|
+
if (child.key && nextChild.key) {
|
|
272
|
+
return child.key === nextChild.key;
|
|
254
273
|
} else {
|
|
255
274
|
return child === nextChild;
|
|
256
275
|
}
|