@egjs/react-flicking 4.4.0 → 4.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/declaration/Flicking.d.ts +4 -1
- package/declaration/ViewportSlot.d.ts +1 -1
- package/dist/flicking.cjs.js +54 -27
- package/dist/flicking.cjs.js.map +1 -1
- package/dist/flicking.esm.js +55 -28
- package/dist/flicking.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/react-flicking/Flicking.tsx +57 -19
- package/src/react-flicking/ViewportSlot.tsx +1 -1
|
@@ -4,7 +4,7 @@ import VanillaFlicking, { FlickingOptions } from "@egjs/flicking";
|
|
|
4
4
|
import { FlickingProps } from "./types";
|
|
5
5
|
import StrictPanel from "./StrictPanel";
|
|
6
6
|
import NonStrictPanel from "./NonStrictPanel";
|
|
7
|
-
declare class Flicking extends React.
|
|
7
|
+
declare class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {
|
|
8
8
|
static defaultProps: FlickingProps;
|
|
9
9
|
private _vanillaFlicking;
|
|
10
10
|
private _panels;
|
|
@@ -13,12 +13,15 @@ declare class Flicking extends React.PureComponent<Partial<FlickingProps & Flick
|
|
|
13
13
|
private _viewportElement;
|
|
14
14
|
private _diffResult;
|
|
15
15
|
private _renderEmitter;
|
|
16
|
+
private _currentState;
|
|
16
17
|
get reactPanels(): (StrictPanel | NonStrictPanel | HTMLDivElement)[];
|
|
17
18
|
get renderEmitter(): Component<{
|
|
18
19
|
render: void;
|
|
19
20
|
}>;
|
|
21
|
+
constructor(props: Partial<FlickingProps & FlickingOptions>);
|
|
20
22
|
componentDidMount(): void;
|
|
21
23
|
componentWillUnmount(): void;
|
|
24
|
+
shouldComponentUpdate(nextProps: this["props"]): boolean;
|
|
22
25
|
componentDidUpdate(): void;
|
|
23
26
|
render(): JSX.Element;
|
|
24
27
|
private _createPanelRefs;
|
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.4.
|
|
7
|
+
version: 4.4.1
|
|
8
8
|
*/
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
@@ -417,11 +417,10 @@ function (_super) {
|
|
|
417
417
|
* Copyright (c) 2015 NAVER Corp.
|
|
418
418
|
* egjs projects are licensed under the MIT license
|
|
419
419
|
*/
|
|
420
|
-
|
|
421
|
-
var ViewportSlot = function (_a) {
|
|
420
|
+
var ViewportSlot = React.memo(function (_a) {
|
|
422
421
|
var children = _a.children;
|
|
423
422
|
return React.createElement(React.Fragment, null, children);
|
|
424
|
-
};
|
|
423
|
+
});
|
|
425
424
|
|
|
426
425
|
var ReactElementProvider =
|
|
427
426
|
/*#__PURE__*/
|
|
@@ -457,16 +456,26 @@ function () {
|
|
|
457
456
|
return ReactElementProvider;
|
|
458
457
|
}();
|
|
459
458
|
|
|
459
|
+
var LifeCycleState;
|
|
460
|
+
|
|
461
|
+
(function (LifeCycleState) {
|
|
462
|
+
LifeCycleState[LifeCycleState["BEFORE_UPDATE"] = 0] = "BEFORE_UPDATE";
|
|
463
|
+
LifeCycleState[LifeCycleState["RENDER"] = 1] = "RENDER";
|
|
464
|
+
LifeCycleState[LifeCycleState["UPDATED"] = 2] = "UPDATED";
|
|
465
|
+
})(LifeCycleState || (LifeCycleState = {}));
|
|
466
|
+
|
|
460
467
|
var Flicking =
|
|
461
468
|
/*#__PURE__*/
|
|
462
469
|
function (_super) {
|
|
463
470
|
__extends(Flicking, _super);
|
|
464
471
|
|
|
465
|
-
function Flicking() {
|
|
466
|
-
var _this = _super
|
|
472
|
+
function Flicking(props) {
|
|
473
|
+
var _this = _super.call(this, props) || this;
|
|
467
474
|
|
|
468
475
|
_this._panels = [];
|
|
469
476
|
_this._renderEmitter = new Component();
|
|
477
|
+
_this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
478
|
+
_this._panels = _this._createPanelRefs(props, _this._getChildren());
|
|
470
479
|
return _this;
|
|
471
480
|
}
|
|
472
481
|
|
|
@@ -504,6 +513,7 @@ function (_super) {
|
|
|
504
513
|
}
|
|
505
514
|
}));
|
|
506
515
|
this._vanillaFlicking = flicking;
|
|
516
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
507
517
|
|
|
508
518
|
var children = this._getChildren();
|
|
509
519
|
|
|
@@ -527,40 +537,52 @@ function (_super) {
|
|
|
527
537
|
(_a = this._vanillaFlicking) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
528
538
|
};
|
|
529
539
|
|
|
540
|
+
__proto.shouldComponentUpdate = function (nextProps) {
|
|
541
|
+
var props = this.props;
|
|
542
|
+
|
|
543
|
+
if (this._currentState !== LifeCycleState.BEFORE_UPDATE && props.children !== nextProps.children) {
|
|
544
|
+
var nextChildren = this._getChildren(nextProps.children);
|
|
545
|
+
|
|
546
|
+
this._panels = this._createPanelRefs(nextProps, nextChildren);
|
|
547
|
+
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
551
|
+
|
|
552
|
+
for (var key in nextProps) {
|
|
553
|
+
if (props[key] !== nextProps[key]) {
|
|
554
|
+
return true;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
return false;
|
|
559
|
+
};
|
|
560
|
+
|
|
530
561
|
__proto.componentDidUpdate = function () {
|
|
531
562
|
var flicking = this._vanillaFlicking;
|
|
563
|
+
var renderEmitter = this._renderEmitter;
|
|
532
564
|
var diffResult = this._diffResult;
|
|
533
565
|
|
|
534
566
|
this._checkPlugins();
|
|
535
567
|
|
|
536
|
-
|
|
537
|
-
|
|
568
|
+
renderEmitter.trigger("render");
|
|
569
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
538
570
|
if (!diffResult || !flicking.initialized) return;
|
|
539
571
|
VanillaFlicking.sync(flicking, diffResult, this.reactPanels);
|
|
540
|
-
|
|
541
|
-
if (diffResult.added.length > 0 || diffResult.removed.length > 0) {
|
|
542
|
-
this.forceUpdate();
|
|
543
|
-
}
|
|
544
|
-
|
|
545
572
|
this._diffResult = null;
|
|
546
573
|
};
|
|
547
574
|
|
|
548
575
|
__proto.render = function () {
|
|
549
576
|
var _this = this;
|
|
550
577
|
|
|
551
|
-
var _a, _b
|
|
578
|
+
var _a, _b;
|
|
552
579
|
|
|
553
580
|
var props = this.props;
|
|
554
581
|
var Viewport = props.viewportTag;
|
|
555
582
|
var Camera = props.cameraTag;
|
|
556
583
|
var attributes = {};
|
|
557
584
|
var flicking = this._vanillaFlicking;
|
|
558
|
-
|
|
559
|
-
var children = this._getChildren(props.children);
|
|
560
|
-
|
|
561
|
-
var diffResult = (_b = (_a = this._jsxDiffer) === null || _a === void 0 ? void 0 : _a.update(children)) !== null && _b !== void 0 ? _b : null;
|
|
562
|
-
this._panels = this._createPanelRefs(props, children);
|
|
563
|
-
this._diffResult = diffResult;
|
|
585
|
+
this._currentState = LifeCycleState.RENDER;
|
|
564
586
|
|
|
565
587
|
for (var name in props) {
|
|
566
588
|
if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {
|
|
@@ -568,9 +590,9 @@ function (_super) {
|
|
|
568
590
|
}
|
|
569
591
|
}
|
|
570
592
|
|
|
571
|
-
var initialized =
|
|
593
|
+
var initialized = flicking && flicking.initialized;
|
|
572
594
|
var viewportClasses = ["flicking-viewport"];
|
|
573
|
-
var isHorizontal = flicking ? flicking.horizontal : (
|
|
595
|
+
var isHorizontal = flicking ? flicking.horizontal : (_a = props.horizontal) !== null && _a !== void 0 ? _a : true;
|
|
574
596
|
|
|
575
597
|
if (!isHorizontal) {
|
|
576
598
|
viewportClasses.push("vertical");
|
|
@@ -589,7 +611,7 @@ function (_super) {
|
|
|
589
611
|
transform: VanillaFlicking.getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)
|
|
590
612
|
}
|
|
591
613
|
} : {};
|
|
592
|
-
var panels = !!props.virtual && ((
|
|
614
|
+
var panels = !!props.virtual && ((_b = props.panelsPerView) !== null && _b !== void 0 ? _b : -1) > 0 ? this._getVirtualPanels() : this._getPanels();
|
|
593
615
|
return React.createElement(Viewport, __assign({}, attributes, {
|
|
594
616
|
className: viewportClasses.join(" "),
|
|
595
617
|
ref: function (e) {
|
|
@@ -674,13 +696,14 @@ function (_super) {
|
|
|
674
696
|
}, []) : [child];
|
|
675
697
|
};
|
|
676
698
|
|
|
677
|
-
__proto._getVirtualPanels = function (
|
|
699
|
+
__proto._getVirtualPanels = function () {
|
|
678
700
|
var _this = this;
|
|
679
701
|
|
|
680
702
|
var _a = this.props.virtual.panelClass,
|
|
681
703
|
panelClass = _a === void 0 ? "flicking-panel" : _a;
|
|
682
704
|
var panelsPerView = this.props.panelsPerView;
|
|
683
705
|
var flicking = this._vanillaFlicking;
|
|
706
|
+
var initialized = flicking && flicking.initialized;
|
|
684
707
|
var renderingIndexes = initialized ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking) : VanillaFlicking.range(panelsPerView + 1);
|
|
685
708
|
var firstPanel = flicking && flicking.panels[0];
|
|
686
709
|
var size = firstPanel ? flicking.horizontal ? {
|
|
@@ -699,10 +722,14 @@ function (_super) {
|
|
|
699
722
|
});
|
|
700
723
|
};
|
|
701
724
|
|
|
702
|
-
__proto._getPanels = function (
|
|
725
|
+
__proto._getPanels = function () {
|
|
703
726
|
var _this = this;
|
|
704
727
|
|
|
705
|
-
var
|
|
728
|
+
var origChildren = this._getChildren();
|
|
729
|
+
|
|
730
|
+
var vanillaFlicking = this._vanillaFlicking;
|
|
731
|
+
var diffResult = this._diffResult;
|
|
732
|
+
var children = vanillaFlicking && vanillaFlicking.initialized ? diffResult ? VanillaFlicking.getRenderingPanels(vanillaFlicking, diffResult) : VanillaFlicking.getRenderingPanels(vanillaFlicking, ListDiffer.diff(origChildren, origChildren)) : origChildren;
|
|
706
733
|
return this.props.useFindDOMNode ? children.map(function (child, idx) {
|
|
707
734
|
return React.createElement(NonStrictPanel, {
|
|
708
735
|
key: child.key,
|
|
@@ -721,7 +748,7 @@ function (_super) {
|
|
|
721
748
|
__decorate([VanillaFlicking.withFlickingMethods], Flicking.prototype, "_vanillaFlicking", void 0);
|
|
722
749
|
|
|
723
750
|
return Flicking;
|
|
724
|
-
}(React.
|
|
751
|
+
}(React.Component);
|
|
725
752
|
|
|
726
753
|
/*
|
|
727
754
|
* Copyright (c) 2015 NAVER Corp.
|
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 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 strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", resolve);\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", resolve);\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 {\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 {\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 from \"react\";\n\nconst ViewportSlot: React.FC = ({ children }) => <>{children}</>;\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ExternalElementProvider {\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, { 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 ExternalPanel\n} from \"@egjs/flicking\";\nimport { isFragment } from \"react-is\";\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.PureComponent<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\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider,\n panelCtor: ExternalPanel\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n ...{ renderExternal: {\n renderer: ReactRenderer,\n rendererOptions\n }}\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\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 componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n this._renderEmitter.trigger(\"render\");\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this.forceUpdate();\n }\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 const children = this._getChildren(props.children);\n const diffResult = this._jsxDiffer?.update(children) ?? null;\n\n this._panels = this._createPanelRefs(props, children);\n this._diffResult = diffResult;\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 = !!this._diffResult && flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\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\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(initialized)\n : this._getPanels(initialized);\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className=\"flicking-camera\" {...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 const props = this.props as Required<FlickingProps>;\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 props[propName](e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\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 _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 isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds, fragChild) => [...allChilds, ...this._unpackFragment(fragChild)], [])\n : [child];\n }\n\n private _getVirtualPanels(initialized: boolean) {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\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(initialized: boolean) {\n const children = initialized\n ? getRenderingPanels(this._vanillaFlicking, this._diffResult!)\n : this._getChildren();\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\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","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","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","el","_el","nativeElement","rendered","show","hide","map","panel","_renderEmitter","rendererOptions","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","panelCtor","ExternalPanel","VanillaFlicking","_viewportElement","renderExternal","renderer","ReactRenderer","_vanillaFlicking","_getChildren","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","diffResult","_diffResult","trigger","initialized","sync","added","length","removed","Viewport","Camera","attributes","update","_createPanelRefs","name","prototype","viewportClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","align","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","READY","list","prevList","addPlugins","index","removePlugins","toArray","filter","child","type","reduce","all","_unpackFragment","isFragment","allChilds","fragChild","panelClass","renderingIndexes","getRenderingIndexesByOrder","firstPanel","size","width","height","idx","getRenderingPanels","NonStrictPanel","StrictPanel","Flicking","__decorate","withFlickingMethods","PureComponent"],"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 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 strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", resolve);\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", resolve);\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 {\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 {\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 from \"react\";\n\nconst ViewportSlot = React.memo(({ children }) => <>{children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ExternalElementProvider {\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 ExternalPanel\n} from \"@egjs/flicking\";\nimport { isFragment } from \"react-is\";\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 LifeCycleState {\n BEFORE_UPDATE,\n RENDER,\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 _currentState: LifeCycleState = LifeCycleState.BEFORE_UPDATE;\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 }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider,\n panelCtor: ExternalPanel\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n ...{ renderExternal: {\n renderer: ReactRenderer,\n rendererOptions\n }}\n },\n );\n\n this._vanillaFlicking = flicking;\n this._currentState = LifeCycleState.UPDATED;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\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: this[\"props\"]) {\n const props = this.props;\n\n if (this._currentState !== LifeCycleState.BEFORE_UPDATE && props.children !== nextProps.children) {\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 this._currentState = LifeCycleState.BEFORE_UPDATE;\n\n for (const key in nextProps) {\n if (props[key] !== nextProps[key]) {\n return true;\n }\n }\n\n return false;\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\n this._currentState = LifeCycleState.UPDATED;\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._currentState = LifeCycleState.RENDER;\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 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\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 return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className=\"flicking-camera\" {...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 const props = this.props as Required<FlickingProps>;\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 props[propName](e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\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 _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 isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds, fragChild) => [...allChilds, ...this._unpackFragment(fragChild)], [])\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 = 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\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","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","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","LifeCycleState","BEFORE_UPDATE","_createPanelRefs","_getChildren","map","panel","_renderEmitter","rendererOptions","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","panelCtor","ExternalPanel","VanillaFlicking","_viewportElement","renderExternal","renderer","ReactRenderer","_vanillaFlicking","_currentState","UPDATED","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","nextChildren","_diffResult","update","diffResult","trigger","initialized","sync","Viewport","Camera","attributes","RENDER","name","prototype","viewportClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","align","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","READY","list","added","removed","prevList","addPlugins","index","removePlugins","toArray","filter","child","type","reduce","all","_unpackFragment","isFragment","allChilds","fragChild","panelClass","renderingIndexes","getRenderingIndexesByOrder","firstPanel","size","width","height","idx","origChildren","vanillaFlicking","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
package/dist/flicking.esm.js
CHANGED
|
@@ -4,12 +4,12 @@ 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.4.
|
|
7
|
+
version: 4.4.1
|
|
8
8
|
*/
|
|
9
9
|
import * as React from 'react';
|
|
10
10
|
import React__default from 'react';
|
|
11
11
|
import Component from '@egjs/component';
|
|
12
|
-
import ListDiffer from '@egjs/list-differ';
|
|
12
|
+
import ListDiffer, { diff } from '@egjs/list-differ';
|
|
13
13
|
import VanillaFlicking__default, { getFlickingAttached, ExternalRenderer, VirtualRenderingStrategy, NormalRenderingStrategy, ExternalPanel, sync, getDefaultCameraTransform, range, EVENTS, getRenderingPanels, withFlickingMethods } from '@egjs/flicking';
|
|
14
14
|
export * from '@egjs/flicking';
|
|
15
15
|
import { isFragment } from 'react-is';
|
|
@@ -417,11 +417,10 @@ function (_super) {
|
|
|
417
417
|
* Copyright (c) 2015 NAVER Corp.
|
|
418
418
|
* egjs projects are licensed under the MIT license
|
|
419
419
|
*/
|
|
420
|
-
|
|
421
|
-
var ViewportSlot = function (_a) {
|
|
420
|
+
var ViewportSlot = React__default.memo(function (_a) {
|
|
422
421
|
var children = _a.children;
|
|
423
422
|
return React__default.createElement(React__default.Fragment, null, children);
|
|
424
|
-
};
|
|
423
|
+
});
|
|
425
424
|
|
|
426
425
|
var ReactElementProvider =
|
|
427
426
|
/*#__PURE__*/
|
|
@@ -457,16 +456,26 @@ function () {
|
|
|
457
456
|
return ReactElementProvider;
|
|
458
457
|
}();
|
|
459
458
|
|
|
459
|
+
var LifeCycleState;
|
|
460
|
+
|
|
461
|
+
(function (LifeCycleState) {
|
|
462
|
+
LifeCycleState[LifeCycleState["BEFORE_UPDATE"] = 0] = "BEFORE_UPDATE";
|
|
463
|
+
LifeCycleState[LifeCycleState["RENDER"] = 1] = "RENDER";
|
|
464
|
+
LifeCycleState[LifeCycleState["UPDATED"] = 2] = "UPDATED";
|
|
465
|
+
})(LifeCycleState || (LifeCycleState = {}));
|
|
466
|
+
|
|
460
467
|
var Flicking =
|
|
461
468
|
/*#__PURE__*/
|
|
462
469
|
function (_super) {
|
|
463
470
|
__extends(Flicking, _super);
|
|
464
471
|
|
|
465
|
-
function Flicking() {
|
|
466
|
-
var _this = _super
|
|
472
|
+
function Flicking(props) {
|
|
473
|
+
var _this = _super.call(this, props) || this;
|
|
467
474
|
|
|
468
475
|
_this._panels = [];
|
|
469
476
|
_this._renderEmitter = new Component();
|
|
477
|
+
_this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
478
|
+
_this._panels = _this._createPanelRefs(props, _this._getChildren());
|
|
470
479
|
return _this;
|
|
471
480
|
}
|
|
472
481
|
|
|
@@ -504,6 +513,7 @@ function (_super) {
|
|
|
504
513
|
}
|
|
505
514
|
}));
|
|
506
515
|
this._vanillaFlicking = flicking;
|
|
516
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
507
517
|
|
|
508
518
|
var children = this._getChildren();
|
|
509
519
|
|
|
@@ -527,40 +537,52 @@ function (_super) {
|
|
|
527
537
|
(_a = this._vanillaFlicking) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
528
538
|
};
|
|
529
539
|
|
|
540
|
+
__proto.shouldComponentUpdate = function (nextProps) {
|
|
541
|
+
var props = this.props;
|
|
542
|
+
|
|
543
|
+
if (this._currentState !== LifeCycleState.BEFORE_UPDATE && props.children !== nextProps.children) {
|
|
544
|
+
var nextChildren = this._getChildren(nextProps.children);
|
|
545
|
+
|
|
546
|
+
this._panels = this._createPanelRefs(nextProps, nextChildren);
|
|
547
|
+
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
551
|
+
|
|
552
|
+
for (var key in nextProps) {
|
|
553
|
+
if (props[key] !== nextProps[key]) {
|
|
554
|
+
return true;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
return false;
|
|
559
|
+
};
|
|
560
|
+
|
|
530
561
|
__proto.componentDidUpdate = function () {
|
|
531
562
|
var flicking = this._vanillaFlicking;
|
|
563
|
+
var renderEmitter = this._renderEmitter;
|
|
532
564
|
var diffResult = this._diffResult;
|
|
533
565
|
|
|
534
566
|
this._checkPlugins();
|
|
535
567
|
|
|
536
|
-
|
|
537
|
-
|
|
568
|
+
renderEmitter.trigger("render");
|
|
569
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
538
570
|
if (!diffResult || !flicking.initialized) return;
|
|
539
571
|
sync(flicking, diffResult, this.reactPanels);
|
|
540
|
-
|
|
541
|
-
if (diffResult.added.length > 0 || diffResult.removed.length > 0) {
|
|
542
|
-
this.forceUpdate();
|
|
543
|
-
}
|
|
544
|
-
|
|
545
572
|
this._diffResult = null;
|
|
546
573
|
};
|
|
547
574
|
|
|
548
575
|
__proto.render = function () {
|
|
549
576
|
var _this = this;
|
|
550
577
|
|
|
551
|
-
var _a, _b
|
|
578
|
+
var _a, _b;
|
|
552
579
|
|
|
553
580
|
var props = this.props;
|
|
554
581
|
var Viewport = props.viewportTag;
|
|
555
582
|
var Camera = props.cameraTag;
|
|
556
583
|
var attributes = {};
|
|
557
584
|
var flicking = this._vanillaFlicking;
|
|
558
|
-
|
|
559
|
-
var children = this._getChildren(props.children);
|
|
560
|
-
|
|
561
|
-
var diffResult = (_b = (_a = this._jsxDiffer) === null || _a === void 0 ? void 0 : _a.update(children)) !== null && _b !== void 0 ? _b : null;
|
|
562
|
-
this._panels = this._createPanelRefs(props, children);
|
|
563
|
-
this._diffResult = diffResult;
|
|
585
|
+
this._currentState = LifeCycleState.RENDER;
|
|
564
586
|
|
|
565
587
|
for (var name in props) {
|
|
566
588
|
if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking__default.prototype)) {
|
|
@@ -568,9 +590,9 @@ function (_super) {
|
|
|
568
590
|
}
|
|
569
591
|
}
|
|
570
592
|
|
|
571
|
-
var initialized =
|
|
593
|
+
var initialized = flicking && flicking.initialized;
|
|
572
594
|
var viewportClasses = ["flicking-viewport"];
|
|
573
|
-
var isHorizontal = flicking ? flicking.horizontal : (
|
|
595
|
+
var isHorizontal = flicking ? flicking.horizontal : (_a = props.horizontal) !== null && _a !== void 0 ? _a : true;
|
|
574
596
|
|
|
575
597
|
if (!isHorizontal) {
|
|
576
598
|
viewportClasses.push("vertical");
|
|
@@ -589,7 +611,7 @@ function (_super) {
|
|
|
589
611
|
transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)
|
|
590
612
|
}
|
|
591
613
|
} : {};
|
|
592
|
-
var panels = !!props.virtual && ((
|
|
614
|
+
var panels = !!props.virtual && ((_b = props.panelsPerView) !== null && _b !== void 0 ? _b : -1) > 0 ? this._getVirtualPanels() : this._getPanels();
|
|
593
615
|
return React.createElement(Viewport, __assign({}, attributes, {
|
|
594
616
|
className: viewportClasses.join(" "),
|
|
595
617
|
ref: function (e) {
|
|
@@ -674,13 +696,14 @@ function (_super) {
|
|
|
674
696
|
}, []) : [child];
|
|
675
697
|
};
|
|
676
698
|
|
|
677
|
-
__proto._getVirtualPanels = function (
|
|
699
|
+
__proto._getVirtualPanels = function () {
|
|
678
700
|
var _this = this;
|
|
679
701
|
|
|
680
702
|
var _a = this.props.virtual.panelClass,
|
|
681
703
|
panelClass = _a === void 0 ? "flicking-panel" : _a;
|
|
682
704
|
var panelsPerView = this.props.panelsPerView;
|
|
683
705
|
var flicking = this._vanillaFlicking;
|
|
706
|
+
var initialized = flicking && flicking.initialized;
|
|
684
707
|
var renderingIndexes = initialized ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking) : range(panelsPerView + 1);
|
|
685
708
|
var firstPanel = flicking && flicking.panels[0];
|
|
686
709
|
var size = firstPanel ? flicking.horizontal ? {
|
|
@@ -699,10 +722,14 @@ function (_super) {
|
|
|
699
722
|
});
|
|
700
723
|
};
|
|
701
724
|
|
|
702
|
-
__proto._getPanels = function (
|
|
725
|
+
__proto._getPanels = function () {
|
|
703
726
|
var _this = this;
|
|
704
727
|
|
|
705
|
-
var
|
|
728
|
+
var origChildren = this._getChildren();
|
|
729
|
+
|
|
730
|
+
var vanillaFlicking = this._vanillaFlicking;
|
|
731
|
+
var diffResult = this._diffResult;
|
|
732
|
+
var children = vanillaFlicking && vanillaFlicking.initialized ? diffResult ? getRenderingPanels(vanillaFlicking, diffResult) : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren)) : origChildren;
|
|
706
733
|
return this.props.useFindDOMNode ? children.map(function (child, idx) {
|
|
707
734
|
return React.createElement(NonStrictPanel, {
|
|
708
735
|
key: child.key,
|
|
@@ -721,7 +748,7 @@ function (_super) {
|
|
|
721
748
|
__decorate([withFlickingMethods], Flicking.prototype, "_vanillaFlicking", void 0);
|
|
722
749
|
|
|
723
750
|
return Flicking;
|
|
724
|
-
}(React.
|
|
751
|
+
}(React.Component);
|
|
725
752
|
|
|
726
753
|
/*
|
|
727
754
|
* Copyright (c) 2015 NAVER Corp.
|
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 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 strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", resolve);\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", resolve);\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 {\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 {\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 from \"react\";\n\nconst ViewportSlot: React.FC = ({ children }) => <>{children}</>;\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ExternalElementProvider {\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, { 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 ExternalPanel\n} from \"@egjs/flicking\";\nimport { isFragment } from \"react-is\";\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.PureComponent<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\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider,\n panelCtor: ExternalPanel\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n ...{ renderExternal: {\n renderer: ReactRenderer,\n rendererOptions\n }}\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\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 componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n this._renderEmitter.trigger(\"render\");\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this.forceUpdate();\n }\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 const children = this._getChildren(props.children);\n const diffResult = this._jsxDiffer?.update(children) ?? null;\n\n this._panels = this._createPanelRefs(props, children);\n this._diffResult = diffResult;\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 = !!this._diffResult && flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\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\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(initialized)\n : this._getPanels(initialized);\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className=\"flicking-camera\" {...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 const props = this.props as Required<FlickingProps>;\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 props[propName](e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\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 _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 isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds, fragChild) => [...allChilds, ...this._unpackFragment(fragChild)], [])\n : [child];\n }\n\n private _getVirtualPanels(initialized: boolean) {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\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(initialized: boolean) {\n const children = initialized\n ? getRenderingPanels(this._vanillaFlicking, this._diffResult!)\n : this._getChildren();\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\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","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","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","el","_el","nativeElement","rendered","show","hide","map","panel","_renderEmitter","rendererOptions","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","panelCtor","ExternalPanel","VanillaFlicking","_viewportElement","renderExternal","renderer","ReactRenderer","_vanillaFlicking","_getChildren","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","diffResult","_diffResult","trigger","initialized","sync","added","length","removed","Viewport","Camera","attributes","update","_createPanelRefs","name","prototype","viewportClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","align","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","READY","list","prevList","addPlugins","index","removePlugins","toArray","filter","child","type","reduce","all","_unpackFragment","isFragment","allChilds","fragChild","panelClass","renderingIndexes","getRenderingIndexesByOrder","firstPanel","size","width","height","idx","getRenderingPanels","NonStrictPanel","StrictPanel","Flicking","__decorate","withFlickingMethods","PureComponent"],"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 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 strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", resolve);\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", resolve);\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 {\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 {\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 from \"react\";\n\nconst ViewportSlot = React.memo(({ children }) => <>{children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ExternalElementProvider {\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 ExternalPanel\n} from \"@egjs/flicking\";\nimport { isFragment } from \"react-is\";\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 LifeCycleState {\n BEFORE_UPDATE,\n RENDER,\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 _currentState: LifeCycleState = LifeCycleState.BEFORE_UPDATE;\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 }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider,\n panelCtor: ExternalPanel\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n ...{ renderExternal: {\n renderer: ReactRenderer,\n rendererOptions\n }}\n },\n );\n\n this._vanillaFlicking = flicking;\n this._currentState = LifeCycleState.UPDATED;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\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: this[\"props\"]) {\n const props = this.props;\n\n if (this._currentState !== LifeCycleState.BEFORE_UPDATE && props.children !== nextProps.children) {\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 this._currentState = LifeCycleState.BEFORE_UPDATE;\n\n for (const key in nextProps) {\n if (props[key] !== nextProps[key]) {\n return true;\n }\n }\n\n return false;\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\n this._currentState = LifeCycleState.UPDATED;\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._currentState = LifeCycleState.RENDER;\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 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\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 return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className=\"flicking-camera\" {...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 const props = this.props as Required<FlickingProps>;\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 props[propName](e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\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 _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 isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds, fragChild) => [...allChilds, ...this._unpackFragment(fragChild)], [])\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 = 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\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","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","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","LifeCycleState","BEFORE_UPDATE","_createPanelRefs","_getChildren","map","panel","_renderEmitter","rendererOptions","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","panelCtor","ExternalPanel","VanillaFlicking","_viewportElement","renderExternal","renderer","ReactRenderer","_vanillaFlicking","_currentState","UPDATED","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","nextChildren","_diffResult","update","diffResult","trigger","initialized","sync","Viewport","Camera","attributes","RENDER","name","prototype","viewportClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","align","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","READY","list","added","removed","prevList","addPlugins","index","removePlugins","toArray","filter","child","type","reduce","all","_unpackFragment","isFragment","allChilds","fragChild","panelClass","renderingIndexes","getRenderingIndexesByOrder","firstPanel","size","width","height","idx","origChildren","vanillaFlicking","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import Component from "@egjs/component";
|
|
7
|
-
import ListDiffer, { DiffResult } from "@egjs/list-differ";
|
|
7
|
+
import ListDiffer, { diff, DiffResult } from "@egjs/list-differ";
|
|
8
8
|
import VanillaFlicking, {
|
|
9
9
|
FlickingOptions,
|
|
10
10
|
VirtualRenderingStrategy,
|
|
@@ -28,7 +28,13 @@ import NonStrictPanel from "./NonStrictPanel";
|
|
|
28
28
|
import ViewportSlot from "./ViewportSlot";
|
|
29
29
|
import ReactElementProvider from "./ReactElementProvider";
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
enum LifeCycleState {
|
|
32
|
+
BEFORE_UPDATE,
|
|
33
|
+
RENDER,
|
|
34
|
+
UPDATED
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {
|
|
32
38
|
public static defaultProps: FlickingProps = DEFAULT_PROPS;
|
|
33
39
|
|
|
34
40
|
@withFlickingMethods private _vanillaFlicking: VanillaFlicking;
|
|
@@ -38,10 +44,17 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
38
44
|
private _viewportElement: HTMLElement;
|
|
39
45
|
private _diffResult: DiffResult<React.ReactElement> | null;
|
|
40
46
|
private _renderEmitter = new Component<{ render: void }>();
|
|
47
|
+
private _currentState: LifeCycleState = LifeCycleState.BEFORE_UPDATE;
|
|
41
48
|
|
|
42
49
|
public get reactPanels() { return this._panels.map(panel => panel.current!); }
|
|
43
50
|
public get renderEmitter() { return this._renderEmitter; }
|
|
44
51
|
|
|
52
|
+
public constructor(props: Partial<FlickingProps & FlickingOptions>) {
|
|
53
|
+
super(props);
|
|
54
|
+
|
|
55
|
+
this._panels = this._createPanelRefs(props, this._getChildren());
|
|
56
|
+
}
|
|
57
|
+
|
|
45
58
|
public componentDidMount() {
|
|
46
59
|
const props = this.props as Required<FlickingProps & FlickingOptions>;
|
|
47
60
|
const rendererOptions: ReactRendererOptions = {
|
|
@@ -66,6 +79,7 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
66
79
|
);
|
|
67
80
|
|
|
68
81
|
this._vanillaFlicking = flicking;
|
|
82
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
69
83
|
|
|
70
84
|
const children = this._getChildren();
|
|
71
85
|
this._jsxDiffer = new ListDiffer(children, panel => panel.key!);
|
|
@@ -83,21 +97,41 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
83
97
|
this._vanillaFlicking?.destroy();
|
|
84
98
|
}
|
|
85
99
|
|
|
100
|
+
public shouldComponentUpdate(nextProps: this["props"]) {
|
|
101
|
+
const props = this.props;
|
|
102
|
+
|
|
103
|
+
if (this._currentState !== LifeCycleState.BEFORE_UPDATE && props.children !== nextProps.children) {
|
|
104
|
+
const nextChildren = this._getChildren(nextProps.children);
|
|
105
|
+
|
|
106
|
+
this._panels = this._createPanelRefs(nextProps, nextChildren);
|
|
107
|
+
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
111
|
+
|
|
112
|
+
for (const key in nextProps) {
|
|
113
|
+
if (props[key] !== nextProps[key]) {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
|
|
86
121
|
public componentDidUpdate() {
|
|
87
122
|
const flicking = this._vanillaFlicking;
|
|
123
|
+
const renderEmitter = this._renderEmitter;
|
|
88
124
|
const diffResult = this._diffResult;
|
|
89
125
|
|
|
90
126
|
this._checkPlugins();
|
|
91
|
-
|
|
127
|
+
renderEmitter.trigger("render");
|
|
128
|
+
|
|
129
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
92
130
|
|
|
93
131
|
if (!diffResult || !flicking.initialized) return;
|
|
94
132
|
|
|
95
133
|
sync(flicking, diffResult, this.reactPanels);
|
|
96
134
|
|
|
97
|
-
if (diffResult.added.length > 0 || diffResult.removed.length > 0) {
|
|
98
|
-
this.forceUpdate();
|
|
99
|
-
}
|
|
100
|
-
|
|
101
135
|
this._diffResult = null;
|
|
102
136
|
}
|
|
103
137
|
|
|
@@ -107,11 +141,8 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
107
141
|
const Camera = props.cameraTag as any;
|
|
108
142
|
const attributes: { [key: string]: any } = {};
|
|
109
143
|
const flicking = this._vanillaFlicking;
|
|
110
|
-
const children = this._getChildren(props.children);
|
|
111
|
-
const diffResult = this._jsxDiffer?.update(children) ?? null;
|
|
112
144
|
|
|
113
|
-
this.
|
|
114
|
-
this._diffResult = diffResult;
|
|
145
|
+
this._currentState = LifeCycleState.RENDER;
|
|
115
146
|
|
|
116
147
|
for (const name in props) {
|
|
117
148
|
if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {
|
|
@@ -119,7 +150,7 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
119
150
|
}
|
|
120
151
|
}
|
|
121
152
|
|
|
122
|
-
const initialized =
|
|
153
|
+
const initialized = flicking && flicking.initialized;
|
|
123
154
|
const viewportClasses: string[] = ["flicking-viewport"];
|
|
124
155
|
const isHorizontal = flicking
|
|
125
156
|
? flicking.horizontal
|
|
@@ -142,8 +173,8 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
142
173
|
: {};
|
|
143
174
|
|
|
144
175
|
const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0
|
|
145
|
-
? this._getVirtualPanels(
|
|
146
|
-
: this._getPanels(
|
|
176
|
+
? this._getVirtualPanels()
|
|
177
|
+
: this._getPanels();
|
|
147
178
|
|
|
148
179
|
return (
|
|
149
180
|
<Viewport {...attributes} className={viewportClasses.join(" ")} ref={(e?: HTMLElement) => {
|
|
@@ -213,12 +244,13 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
213
244
|
: [child];
|
|
214
245
|
}
|
|
215
246
|
|
|
216
|
-
private _getVirtualPanels(
|
|
247
|
+
private _getVirtualPanels() {
|
|
217
248
|
const {
|
|
218
249
|
panelClass = "flicking-panel"
|
|
219
250
|
} = this.props.virtual!;
|
|
220
251
|
const panelsPerView = this.props.panelsPerView!;
|
|
221
252
|
const flicking = this._vanillaFlicking;
|
|
253
|
+
const initialized = flicking && flicking.initialized;
|
|
222
254
|
|
|
223
255
|
const renderingIndexes = initialized
|
|
224
256
|
? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)
|
|
@@ -241,10 +273,16 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
241
273
|
});
|
|
242
274
|
}
|
|
243
275
|
|
|
244
|
-
private _getPanels(
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
|
|
276
|
+
private _getPanels() {
|
|
277
|
+
const origChildren = this._getChildren();
|
|
278
|
+
const vanillaFlicking = this._vanillaFlicking;
|
|
279
|
+
const diffResult = this._diffResult;
|
|
280
|
+
|
|
281
|
+
const children = vanillaFlicking && vanillaFlicking.initialized
|
|
282
|
+
? diffResult
|
|
283
|
+
? getRenderingPanels(vanillaFlicking, diffResult)
|
|
284
|
+
: getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))
|
|
285
|
+
: origChildren;
|
|
248
286
|
|
|
249
287
|
return this.props.useFindDOMNode
|
|
250
288
|
? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)
|