@egjs/react-flicking 4.4.0 → 4.5.0
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 +5 -1
- package/declaration/ReactElementProvider.d.ts +2 -2
- package/declaration/ViewportSlot.d.ts +1 -1
- package/dist/flicking.cjs.js +66 -35
- package/dist/flicking.cjs.js.map +1 -1
- package/dist/flicking.esm.js +68 -37
- package/dist/flicking.esm.js.map +1 -1
- package/package.json +3 -4
- package/src/react-flicking/Flicking.tsx +69 -29
- package/src/react-flicking/ReactElementProvider.ts +2 -2
- 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;
|
|
@@ -29,6 +32,7 @@ declare class Flicking extends React.PureComponent<Partial<FlickingProps & Flick
|
|
|
29
32
|
private _unpackFragment;
|
|
30
33
|
private _getVirtualPanels;
|
|
31
34
|
private _getPanels;
|
|
35
|
+
private _isFragment;
|
|
32
36
|
}
|
|
33
37
|
interface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking {
|
|
34
38
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ElementProvider } from "@egjs/flicking";
|
|
2
2
|
import StrictPanel from "./StrictPanel";
|
|
3
3
|
import NonStrictPanel from "./NonStrictPanel";
|
|
4
|
-
declare class ReactElementProvider implements
|
|
4
|
+
declare class ReactElementProvider implements ElementProvider {
|
|
5
5
|
private _el;
|
|
6
6
|
get element(): HTMLElement;
|
|
7
7
|
get rendered(): boolean;
|
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.
|
|
7
|
+
version: 4.5.0
|
|
8
8
|
*/
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
@@ -12,7 +12,6 @@ var React = require('react');
|
|
|
12
12
|
var Component = require('@egjs/component');
|
|
13
13
|
var ListDiffer = require('@egjs/list-differ');
|
|
14
14
|
var VanillaFlicking = require('@egjs/flicking');
|
|
15
|
-
var reactIs = require('react-is');
|
|
16
15
|
var reactDom = require('react-dom');
|
|
17
16
|
|
|
18
17
|
/*! *****************************************************************************
|
|
@@ -417,11 +416,10 @@ function (_super) {
|
|
|
417
416
|
* Copyright (c) 2015 NAVER Corp.
|
|
418
417
|
* egjs projects are licensed under the MIT license
|
|
419
418
|
*/
|
|
420
|
-
|
|
421
|
-
var ViewportSlot = function (_a) {
|
|
419
|
+
var ViewportSlot = React.memo(function (_a) {
|
|
422
420
|
var children = _a.children;
|
|
423
421
|
return React.createElement(React.Fragment, null, children);
|
|
424
|
-
};
|
|
422
|
+
});
|
|
425
423
|
|
|
426
424
|
var ReactElementProvider =
|
|
427
425
|
/*#__PURE__*/
|
|
@@ -457,16 +455,26 @@ function () {
|
|
|
457
455
|
return ReactElementProvider;
|
|
458
456
|
}();
|
|
459
457
|
|
|
458
|
+
var LifeCycleState;
|
|
459
|
+
|
|
460
|
+
(function (LifeCycleState) {
|
|
461
|
+
LifeCycleState[LifeCycleState["BEFORE_UPDATE"] = 0] = "BEFORE_UPDATE";
|
|
462
|
+
LifeCycleState[LifeCycleState["RENDER"] = 1] = "RENDER";
|
|
463
|
+
LifeCycleState[LifeCycleState["UPDATED"] = 2] = "UPDATED";
|
|
464
|
+
})(LifeCycleState || (LifeCycleState = {}));
|
|
465
|
+
|
|
460
466
|
var Flicking =
|
|
461
467
|
/*#__PURE__*/
|
|
462
468
|
function (_super) {
|
|
463
469
|
__extends(Flicking, _super);
|
|
464
470
|
|
|
465
|
-
function Flicking() {
|
|
466
|
-
var _this = _super
|
|
471
|
+
function Flicking(props) {
|
|
472
|
+
var _this = _super.call(this, props) || this;
|
|
467
473
|
|
|
468
474
|
_this._panels = [];
|
|
469
475
|
_this._renderEmitter = new Component();
|
|
476
|
+
_this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
477
|
+
_this._panels = _this._createPanelRefs(props, _this._getChildren());
|
|
470
478
|
return _this;
|
|
471
479
|
}
|
|
472
480
|
|
|
@@ -492,18 +500,16 @@ function (_super) {
|
|
|
492
500
|
var props = this.props;
|
|
493
501
|
var rendererOptions = {
|
|
494
502
|
reactFlicking: this,
|
|
503
|
+
align: props.align,
|
|
495
504
|
strategy: props.virtual && props.panelsPerView > 0 ? new VanillaFlicking.VirtualRenderingStrategy() : new VanillaFlicking.NormalRenderingStrategy({
|
|
496
|
-
providerCtor: ReactElementProvider
|
|
497
|
-
panelCtor: VanillaFlicking.ExternalPanel
|
|
505
|
+
providerCtor: ReactElementProvider
|
|
498
506
|
})
|
|
499
507
|
};
|
|
500
508
|
var flicking = new VanillaFlicking(this._viewportElement, __assign(__assign({}, props), {
|
|
501
|
-
|
|
502
|
-
renderer: ReactRenderer,
|
|
503
|
-
rendererOptions: rendererOptions
|
|
504
|
-
}
|
|
509
|
+
externalRenderer: new ReactRenderer(rendererOptions)
|
|
505
510
|
}));
|
|
506
511
|
this._vanillaFlicking = flicking;
|
|
512
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
507
513
|
|
|
508
514
|
var children = this._getChildren();
|
|
509
515
|
|
|
@@ -527,40 +533,52 @@ function (_super) {
|
|
|
527
533
|
(_a = this._vanillaFlicking) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
528
534
|
};
|
|
529
535
|
|
|
536
|
+
__proto.shouldComponentUpdate = function (nextProps) {
|
|
537
|
+
var props = this.props;
|
|
538
|
+
|
|
539
|
+
if (this._currentState !== LifeCycleState.BEFORE_UPDATE && props.children !== nextProps.children) {
|
|
540
|
+
var nextChildren = this._getChildren(nextProps.children);
|
|
541
|
+
|
|
542
|
+
this._panels = this._createPanelRefs(nextProps, nextChildren);
|
|
543
|
+
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
547
|
+
|
|
548
|
+
for (var key in nextProps) {
|
|
549
|
+
if (props[key] !== nextProps[key]) {
|
|
550
|
+
return true;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
return false;
|
|
555
|
+
};
|
|
556
|
+
|
|
530
557
|
__proto.componentDidUpdate = function () {
|
|
531
558
|
var flicking = this._vanillaFlicking;
|
|
559
|
+
var renderEmitter = this._renderEmitter;
|
|
532
560
|
var diffResult = this._diffResult;
|
|
533
561
|
|
|
534
562
|
this._checkPlugins();
|
|
535
563
|
|
|
536
|
-
|
|
537
|
-
|
|
564
|
+
renderEmitter.trigger("render");
|
|
565
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
538
566
|
if (!diffResult || !flicking.initialized) return;
|
|
539
567
|
VanillaFlicking.sync(flicking, diffResult, this.reactPanels);
|
|
540
|
-
|
|
541
|
-
if (diffResult.added.length > 0 || diffResult.removed.length > 0) {
|
|
542
|
-
this.forceUpdate();
|
|
543
|
-
}
|
|
544
|
-
|
|
545
568
|
this._diffResult = null;
|
|
546
569
|
};
|
|
547
570
|
|
|
548
571
|
__proto.render = function () {
|
|
549
572
|
var _this = this;
|
|
550
573
|
|
|
551
|
-
var _a, _b
|
|
574
|
+
var _a, _b;
|
|
552
575
|
|
|
553
576
|
var props = this.props;
|
|
554
577
|
var Viewport = props.viewportTag;
|
|
555
578
|
var Camera = props.cameraTag;
|
|
556
579
|
var attributes = {};
|
|
557
580
|
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;
|
|
581
|
+
this._currentState = LifeCycleState.RENDER;
|
|
564
582
|
|
|
565
583
|
for (var name in props) {
|
|
566
584
|
if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {
|
|
@@ -568,9 +586,9 @@ function (_super) {
|
|
|
568
586
|
}
|
|
569
587
|
}
|
|
570
588
|
|
|
571
|
-
var initialized =
|
|
589
|
+
var initialized = flicking && flicking.initialized;
|
|
572
590
|
var viewportClasses = ["flicking-viewport"];
|
|
573
|
-
var isHorizontal = flicking ? flicking.horizontal : (
|
|
591
|
+
var isHorizontal = flicking ? flicking.horizontal : (_a = props.horizontal) !== null && _a !== void 0 ? _a : true;
|
|
574
592
|
|
|
575
593
|
if (!isHorizontal) {
|
|
576
594
|
viewportClasses.push("vertical");
|
|
@@ -589,7 +607,7 @@ function (_super) {
|
|
|
589
607
|
transform: VanillaFlicking.getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)
|
|
590
608
|
}
|
|
591
609
|
} : {};
|
|
592
|
-
var panels = !!props.virtual && ((
|
|
610
|
+
var panels = !!props.virtual && ((_b = props.panelsPerView) !== null && _b !== void 0 ? _b : -1) > 0 ? this._getVirtualPanels() : this._getPanels();
|
|
593
611
|
return React.createElement(Viewport, __assign({}, attributes, {
|
|
594
612
|
className: viewportClasses.join(" "),
|
|
595
613
|
ref: function (e) {
|
|
@@ -669,18 +687,19 @@ function (_super) {
|
|
|
669
687
|
__proto._unpackFragment = function (child) {
|
|
670
688
|
var _this = this;
|
|
671
689
|
|
|
672
|
-
return
|
|
690
|
+
return this._isFragment(child) ? React.Children.toArray(child.props.children).reduce(function (allChilds, fragChild) {
|
|
673
691
|
return __spreadArray(__spreadArray([], allChilds, true), _this._unpackFragment(fragChild), true);
|
|
674
692
|
}, []) : [child];
|
|
675
693
|
};
|
|
676
694
|
|
|
677
|
-
__proto._getVirtualPanels = function (
|
|
695
|
+
__proto._getVirtualPanels = function () {
|
|
678
696
|
var _this = this;
|
|
679
697
|
|
|
680
698
|
var _a = this.props.virtual.panelClass,
|
|
681
699
|
panelClass = _a === void 0 ? "flicking-panel" : _a;
|
|
682
700
|
var panelsPerView = this.props.panelsPerView;
|
|
683
701
|
var flicking = this._vanillaFlicking;
|
|
702
|
+
var initialized = flicking && flicking.initialized;
|
|
684
703
|
var renderingIndexes = initialized ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking) : VanillaFlicking.range(panelsPerView + 1);
|
|
685
704
|
var firstPanel = flicking && flicking.panels[0];
|
|
686
705
|
var size = firstPanel ? flicking.horizontal ? {
|
|
@@ -699,10 +718,14 @@ function (_super) {
|
|
|
699
718
|
});
|
|
700
719
|
};
|
|
701
720
|
|
|
702
|
-
__proto._getPanels = function (
|
|
721
|
+
__proto._getPanels = function () {
|
|
703
722
|
var _this = this;
|
|
704
723
|
|
|
705
|
-
var
|
|
724
|
+
var origChildren = this._getChildren();
|
|
725
|
+
|
|
726
|
+
var vanillaFlicking = this._vanillaFlicking;
|
|
727
|
+
var diffResult = this._diffResult;
|
|
728
|
+
var children = vanillaFlicking && vanillaFlicking.initialized ? diffResult ? VanillaFlicking.getRenderingPanels(vanillaFlicking, diffResult) : VanillaFlicking.getRenderingPanels(vanillaFlicking, ListDiffer.diff(origChildren, origChildren)) : origChildren;
|
|
706
729
|
return this.props.useFindDOMNode ? children.map(function (child, idx) {
|
|
707
730
|
return React.createElement(NonStrictPanel, {
|
|
708
731
|
key: child.key,
|
|
@@ -716,12 +739,20 @@ function (_super) {
|
|
|
716
739
|
});
|
|
717
740
|
};
|
|
718
741
|
|
|
742
|
+
__proto._isFragment = function (child) {
|
|
743
|
+
if (child.type) {
|
|
744
|
+
return child.type === React.Fragment;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
return child === React.Fragment;
|
|
748
|
+
};
|
|
749
|
+
|
|
719
750
|
Flicking.defaultProps = DEFAULT_PROPS;
|
|
720
751
|
|
|
721
752
|
__decorate([VanillaFlicking.withFlickingMethods], Flicking.prototype, "_vanillaFlicking", void 0);
|
|
722
753
|
|
|
723
754
|
return Flicking;
|
|
724
|
-
}(React.
|
|
755
|
+
}(React.Component);
|
|
725
756
|
|
|
726
757
|
/*
|
|
727
758
|
* 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 { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nenum 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 align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n 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 this._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 private _isFragment(child: NonNullable<React.ReactNode>) {\n if ((child as React.ReactElement).type) {\n return (child as React.ReactElement).type === React.Fragment;\n }\n return child === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\n(Flicking as any).ViewportSlot = ViewportSlot;\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","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","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","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","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","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","idx","origChildren","vanillaFlicking","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
package/dist/flicking.esm.js
CHANGED
|
@@ -4,15 +4,14 @@ 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.
|
|
7
|
+
version: 4.5.0
|
|
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';
|
|
13
|
-
import VanillaFlicking__default, { getFlickingAttached, ExternalRenderer, VirtualRenderingStrategy, NormalRenderingStrategy,
|
|
12
|
+
import ListDiffer, { diff } from '@egjs/list-differ';
|
|
13
|
+
import VanillaFlicking__default, { getFlickingAttached, ExternalRenderer, VirtualRenderingStrategy, NormalRenderingStrategy, sync, getDefaultCameraTransform, range, EVENTS, getRenderingPanels, withFlickingMethods } from '@egjs/flicking';
|
|
14
14
|
export * from '@egjs/flicking';
|
|
15
|
-
import { isFragment } from 'react-is';
|
|
16
15
|
import { findDOMNode } from 'react-dom';
|
|
17
16
|
|
|
18
17
|
/*! *****************************************************************************
|
|
@@ -417,11 +416,10 @@ function (_super) {
|
|
|
417
416
|
* Copyright (c) 2015 NAVER Corp.
|
|
418
417
|
* egjs projects are licensed under the MIT license
|
|
419
418
|
*/
|
|
420
|
-
|
|
421
|
-
var ViewportSlot = function (_a) {
|
|
419
|
+
var ViewportSlot = React__default.memo(function (_a) {
|
|
422
420
|
var children = _a.children;
|
|
423
421
|
return React__default.createElement(React__default.Fragment, null, children);
|
|
424
|
-
};
|
|
422
|
+
});
|
|
425
423
|
|
|
426
424
|
var ReactElementProvider =
|
|
427
425
|
/*#__PURE__*/
|
|
@@ -457,16 +455,26 @@ function () {
|
|
|
457
455
|
return ReactElementProvider;
|
|
458
456
|
}();
|
|
459
457
|
|
|
458
|
+
var LifeCycleState;
|
|
459
|
+
|
|
460
|
+
(function (LifeCycleState) {
|
|
461
|
+
LifeCycleState[LifeCycleState["BEFORE_UPDATE"] = 0] = "BEFORE_UPDATE";
|
|
462
|
+
LifeCycleState[LifeCycleState["RENDER"] = 1] = "RENDER";
|
|
463
|
+
LifeCycleState[LifeCycleState["UPDATED"] = 2] = "UPDATED";
|
|
464
|
+
})(LifeCycleState || (LifeCycleState = {}));
|
|
465
|
+
|
|
460
466
|
var Flicking =
|
|
461
467
|
/*#__PURE__*/
|
|
462
468
|
function (_super) {
|
|
463
469
|
__extends(Flicking, _super);
|
|
464
470
|
|
|
465
|
-
function Flicking() {
|
|
466
|
-
var _this = _super
|
|
471
|
+
function Flicking(props) {
|
|
472
|
+
var _this = _super.call(this, props) || this;
|
|
467
473
|
|
|
468
474
|
_this._panels = [];
|
|
469
475
|
_this._renderEmitter = new Component();
|
|
476
|
+
_this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
477
|
+
_this._panels = _this._createPanelRefs(props, _this._getChildren());
|
|
470
478
|
return _this;
|
|
471
479
|
}
|
|
472
480
|
|
|
@@ -492,18 +500,16 @@ function (_super) {
|
|
|
492
500
|
var props = this.props;
|
|
493
501
|
var rendererOptions = {
|
|
494
502
|
reactFlicking: this,
|
|
503
|
+
align: props.align,
|
|
495
504
|
strategy: props.virtual && props.panelsPerView > 0 ? new VirtualRenderingStrategy() : new NormalRenderingStrategy({
|
|
496
|
-
providerCtor: ReactElementProvider
|
|
497
|
-
panelCtor: ExternalPanel
|
|
505
|
+
providerCtor: ReactElementProvider
|
|
498
506
|
})
|
|
499
507
|
};
|
|
500
508
|
var flicking = new VanillaFlicking__default(this._viewportElement, __assign(__assign({}, props), {
|
|
501
|
-
|
|
502
|
-
renderer: ReactRenderer,
|
|
503
|
-
rendererOptions: rendererOptions
|
|
504
|
-
}
|
|
509
|
+
externalRenderer: new ReactRenderer(rendererOptions)
|
|
505
510
|
}));
|
|
506
511
|
this._vanillaFlicking = flicking;
|
|
512
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
507
513
|
|
|
508
514
|
var children = this._getChildren();
|
|
509
515
|
|
|
@@ -527,40 +533,52 @@ function (_super) {
|
|
|
527
533
|
(_a = this._vanillaFlicking) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
528
534
|
};
|
|
529
535
|
|
|
536
|
+
__proto.shouldComponentUpdate = function (nextProps) {
|
|
537
|
+
var props = this.props;
|
|
538
|
+
|
|
539
|
+
if (this._currentState !== LifeCycleState.BEFORE_UPDATE && props.children !== nextProps.children) {
|
|
540
|
+
var nextChildren = this._getChildren(nextProps.children);
|
|
541
|
+
|
|
542
|
+
this._panels = this._createPanelRefs(nextProps, nextChildren);
|
|
543
|
+
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
547
|
+
|
|
548
|
+
for (var key in nextProps) {
|
|
549
|
+
if (props[key] !== nextProps[key]) {
|
|
550
|
+
return true;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
return false;
|
|
555
|
+
};
|
|
556
|
+
|
|
530
557
|
__proto.componentDidUpdate = function () {
|
|
531
558
|
var flicking = this._vanillaFlicking;
|
|
559
|
+
var renderEmitter = this._renderEmitter;
|
|
532
560
|
var diffResult = this._diffResult;
|
|
533
561
|
|
|
534
562
|
this._checkPlugins();
|
|
535
563
|
|
|
536
|
-
|
|
537
|
-
|
|
564
|
+
renderEmitter.trigger("render");
|
|
565
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
538
566
|
if (!diffResult || !flicking.initialized) return;
|
|
539
567
|
sync(flicking, diffResult, this.reactPanels);
|
|
540
|
-
|
|
541
|
-
if (diffResult.added.length > 0 || diffResult.removed.length > 0) {
|
|
542
|
-
this.forceUpdate();
|
|
543
|
-
}
|
|
544
|
-
|
|
545
568
|
this._diffResult = null;
|
|
546
569
|
};
|
|
547
570
|
|
|
548
571
|
__proto.render = function () {
|
|
549
572
|
var _this = this;
|
|
550
573
|
|
|
551
|
-
var _a, _b
|
|
574
|
+
var _a, _b;
|
|
552
575
|
|
|
553
576
|
var props = this.props;
|
|
554
577
|
var Viewport = props.viewportTag;
|
|
555
578
|
var Camera = props.cameraTag;
|
|
556
579
|
var attributes = {};
|
|
557
580
|
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;
|
|
581
|
+
this._currentState = LifeCycleState.RENDER;
|
|
564
582
|
|
|
565
583
|
for (var name in props) {
|
|
566
584
|
if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking__default.prototype)) {
|
|
@@ -568,9 +586,9 @@ function (_super) {
|
|
|
568
586
|
}
|
|
569
587
|
}
|
|
570
588
|
|
|
571
|
-
var initialized =
|
|
589
|
+
var initialized = flicking && flicking.initialized;
|
|
572
590
|
var viewportClasses = ["flicking-viewport"];
|
|
573
|
-
var isHorizontal = flicking ? flicking.horizontal : (
|
|
591
|
+
var isHorizontal = flicking ? flicking.horizontal : (_a = props.horizontal) !== null && _a !== void 0 ? _a : true;
|
|
574
592
|
|
|
575
593
|
if (!isHorizontal) {
|
|
576
594
|
viewportClasses.push("vertical");
|
|
@@ -589,7 +607,7 @@ function (_super) {
|
|
|
589
607
|
transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)
|
|
590
608
|
}
|
|
591
609
|
} : {};
|
|
592
|
-
var panels = !!props.virtual && ((
|
|
610
|
+
var panels = !!props.virtual && ((_b = props.panelsPerView) !== null && _b !== void 0 ? _b : -1) > 0 ? this._getVirtualPanels() : this._getPanels();
|
|
593
611
|
return React.createElement(Viewport, __assign({}, attributes, {
|
|
594
612
|
className: viewportClasses.join(" "),
|
|
595
613
|
ref: function (e) {
|
|
@@ -669,18 +687,19 @@ function (_super) {
|
|
|
669
687
|
__proto._unpackFragment = function (child) {
|
|
670
688
|
var _this = this;
|
|
671
689
|
|
|
672
|
-
return
|
|
690
|
+
return this._isFragment(child) ? React.Children.toArray(child.props.children).reduce(function (allChilds, fragChild) {
|
|
673
691
|
return __spreadArray(__spreadArray([], allChilds, true), _this._unpackFragment(fragChild), true);
|
|
674
692
|
}, []) : [child];
|
|
675
693
|
};
|
|
676
694
|
|
|
677
|
-
__proto._getVirtualPanels = function (
|
|
695
|
+
__proto._getVirtualPanels = function () {
|
|
678
696
|
var _this = this;
|
|
679
697
|
|
|
680
698
|
var _a = this.props.virtual.panelClass,
|
|
681
699
|
panelClass = _a === void 0 ? "flicking-panel" : _a;
|
|
682
700
|
var panelsPerView = this.props.panelsPerView;
|
|
683
701
|
var flicking = this._vanillaFlicking;
|
|
702
|
+
var initialized = flicking && flicking.initialized;
|
|
684
703
|
var renderingIndexes = initialized ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking) : range(panelsPerView + 1);
|
|
685
704
|
var firstPanel = flicking && flicking.panels[0];
|
|
686
705
|
var size = firstPanel ? flicking.horizontal ? {
|
|
@@ -699,10 +718,14 @@ function (_super) {
|
|
|
699
718
|
});
|
|
700
719
|
};
|
|
701
720
|
|
|
702
|
-
__proto._getPanels = function (
|
|
721
|
+
__proto._getPanels = function () {
|
|
703
722
|
var _this = this;
|
|
704
723
|
|
|
705
|
-
var
|
|
724
|
+
var origChildren = this._getChildren();
|
|
725
|
+
|
|
726
|
+
var vanillaFlicking = this._vanillaFlicking;
|
|
727
|
+
var diffResult = this._diffResult;
|
|
728
|
+
var children = vanillaFlicking && vanillaFlicking.initialized ? diffResult ? getRenderingPanels(vanillaFlicking, diffResult) : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren)) : origChildren;
|
|
706
729
|
return this.props.useFindDOMNode ? children.map(function (child, idx) {
|
|
707
730
|
return React.createElement(NonStrictPanel, {
|
|
708
731
|
key: child.key,
|
|
@@ -716,12 +739,20 @@ function (_super) {
|
|
|
716
739
|
});
|
|
717
740
|
};
|
|
718
741
|
|
|
742
|
+
__proto._isFragment = function (child) {
|
|
743
|
+
if (child.type) {
|
|
744
|
+
return child.type === React.Fragment;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
return child === React.Fragment;
|
|
748
|
+
};
|
|
749
|
+
|
|
719
750
|
Flicking.defaultProps = DEFAULT_PROPS;
|
|
720
751
|
|
|
721
752
|
__decorate([withFlickingMethods], Flicking.prototype, "_vanillaFlicking", void 0);
|
|
722
753
|
|
|
723
754
|
return Flicking;
|
|
724
|
-
}(React.
|
|
755
|
+
}(React.Component);
|
|
725
756
|
|
|
726
757
|
/*
|
|
727
758
|
* 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 { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nenum 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 align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n 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 this._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 private _isFragment(child: NonNullable<React.ReactNode>) {\n if ((child as React.ReactElement).type) {\n return (child as React.ReactElement).type === React.Fragment;\n }\n return child === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\nexport * from \"@egjs/flicking\";\nexport * from \"./types\";\n\nexport {\n ViewportSlot\n}\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","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","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","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","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","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","idx","origChildren","vanillaFlicking","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@egjs/react-flicking",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"description": "Everyday 30 million people experience. It's reliable, flexible and extendable carousel.",
|
|
5
5
|
"main": "dist/flicking.cjs.js",
|
|
6
6
|
"module": "dist/flicking.esm.js",
|
|
@@ -16,9 +16,8 @@
|
|
|
16
16
|
"eject": "react-scripts eject"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@egjs/flicking": "^4.4.
|
|
20
|
-
"@egjs/list-differ": "^1.0.0"
|
|
21
|
-
"react-is": "^17.0.2"
|
|
19
|
+
"@egjs/flicking": "^4.4.2",
|
|
20
|
+
"@egjs/list-differ": "^1.0.0"
|
|
22
21
|
},
|
|
23
22
|
"devDependencies": {
|
|
24
23
|
"@egjs/build-helper": "0.0.5",
|
|
@@ -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,
|
|
@@ -15,10 +15,8 @@ import VanillaFlicking, {
|
|
|
15
15
|
getDefaultCameraTransform,
|
|
16
16
|
Plugin,
|
|
17
17
|
range,
|
|
18
|
-
NormalRenderingStrategy
|
|
19
|
-
ExternalPanel
|
|
18
|
+
NormalRenderingStrategy
|
|
20
19
|
} from "@egjs/flicking";
|
|
21
|
-
import { isFragment } from "react-is";
|
|
22
20
|
|
|
23
21
|
import { DEFAULT_PROPS } from "./consts";
|
|
24
22
|
import { FlickingProps } from "./types";
|
|
@@ -28,7 +26,13 @@ import NonStrictPanel from "./NonStrictPanel";
|
|
|
28
26
|
import ViewportSlot from "./ViewportSlot";
|
|
29
27
|
import ReactElementProvider from "./ReactElementProvider";
|
|
30
28
|
|
|
31
|
-
|
|
29
|
+
enum LifeCycleState {
|
|
30
|
+
BEFORE_UPDATE,
|
|
31
|
+
RENDER,
|
|
32
|
+
UPDATED
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {
|
|
32
36
|
public static defaultProps: FlickingProps = DEFAULT_PROPS;
|
|
33
37
|
|
|
34
38
|
@withFlickingMethods private _vanillaFlicking: VanillaFlicking;
|
|
@@ -38,19 +42,26 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
38
42
|
private _viewportElement: HTMLElement;
|
|
39
43
|
private _diffResult: DiffResult<React.ReactElement> | null;
|
|
40
44
|
private _renderEmitter = new Component<{ render: void }>();
|
|
45
|
+
private _currentState: LifeCycleState = LifeCycleState.BEFORE_UPDATE;
|
|
41
46
|
|
|
42
47
|
public get reactPanels() { return this._panels.map(panel => panel.current!); }
|
|
43
48
|
public get renderEmitter() { return this._renderEmitter; }
|
|
44
49
|
|
|
50
|
+
public constructor(props: Partial<FlickingProps & FlickingOptions>) {
|
|
51
|
+
super(props);
|
|
52
|
+
|
|
53
|
+
this._panels = this._createPanelRefs(props, this._getChildren());
|
|
54
|
+
}
|
|
55
|
+
|
|
45
56
|
public componentDidMount() {
|
|
46
57
|
const props = this.props as Required<FlickingProps & FlickingOptions>;
|
|
47
58
|
const rendererOptions: ReactRendererOptions = {
|
|
48
59
|
reactFlicking: this,
|
|
60
|
+
align: props.align,
|
|
49
61
|
strategy: props.virtual && props.panelsPerView > 0
|
|
50
62
|
? new VirtualRenderingStrategy()
|
|
51
63
|
: new NormalRenderingStrategy({
|
|
52
|
-
providerCtor: ReactElementProvider
|
|
53
|
-
panelCtor: ExternalPanel
|
|
64
|
+
providerCtor: ReactElementProvider
|
|
54
65
|
})
|
|
55
66
|
};
|
|
56
67
|
|
|
@@ -58,14 +69,12 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
58
69
|
this._viewportElement,
|
|
59
70
|
{
|
|
60
71
|
...props,
|
|
61
|
-
|
|
62
|
-
renderer: ReactRenderer,
|
|
63
|
-
rendererOptions
|
|
64
|
-
}}
|
|
72
|
+
externalRenderer: new ReactRenderer(rendererOptions)
|
|
65
73
|
},
|
|
66
74
|
);
|
|
67
75
|
|
|
68
76
|
this._vanillaFlicking = flicking;
|
|
77
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
69
78
|
|
|
70
79
|
const children = this._getChildren();
|
|
71
80
|
this._jsxDiffer = new ListDiffer(children, panel => panel.key!);
|
|
@@ -83,21 +92,41 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
83
92
|
this._vanillaFlicking?.destroy();
|
|
84
93
|
}
|
|
85
94
|
|
|
95
|
+
public shouldComponentUpdate(nextProps: this["props"]) {
|
|
96
|
+
const props = this.props;
|
|
97
|
+
|
|
98
|
+
if (this._currentState !== LifeCycleState.BEFORE_UPDATE && props.children !== nextProps.children) {
|
|
99
|
+
const nextChildren = this._getChildren(nextProps.children);
|
|
100
|
+
|
|
101
|
+
this._panels = this._createPanelRefs(nextProps, nextChildren);
|
|
102
|
+
this._diffResult = this._jsxDiffer.update(nextChildren);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
this._currentState = LifeCycleState.BEFORE_UPDATE;
|
|
106
|
+
|
|
107
|
+
for (const key in nextProps) {
|
|
108
|
+
if (props[key] !== nextProps[key]) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
|
|
86
116
|
public componentDidUpdate() {
|
|
87
117
|
const flicking = this._vanillaFlicking;
|
|
118
|
+
const renderEmitter = this._renderEmitter;
|
|
88
119
|
const diffResult = this._diffResult;
|
|
89
120
|
|
|
90
121
|
this._checkPlugins();
|
|
91
|
-
|
|
122
|
+
renderEmitter.trigger("render");
|
|
123
|
+
|
|
124
|
+
this._currentState = LifeCycleState.UPDATED;
|
|
92
125
|
|
|
93
126
|
if (!diffResult || !flicking.initialized) return;
|
|
94
127
|
|
|
95
128
|
sync(flicking, diffResult, this.reactPanels);
|
|
96
129
|
|
|
97
|
-
if (diffResult.added.length > 0 || diffResult.removed.length > 0) {
|
|
98
|
-
this.forceUpdate();
|
|
99
|
-
}
|
|
100
|
-
|
|
101
130
|
this._diffResult = null;
|
|
102
131
|
}
|
|
103
132
|
|
|
@@ -107,11 +136,8 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
107
136
|
const Camera = props.cameraTag as any;
|
|
108
137
|
const attributes: { [key: string]: any } = {};
|
|
109
138
|
const flicking = this._vanillaFlicking;
|
|
110
|
-
const children = this._getChildren(props.children);
|
|
111
|
-
const diffResult = this._jsxDiffer?.update(children) ?? null;
|
|
112
139
|
|
|
113
|
-
this.
|
|
114
|
-
this._diffResult = diffResult;
|
|
140
|
+
this._currentState = LifeCycleState.RENDER;
|
|
115
141
|
|
|
116
142
|
for (const name in props) {
|
|
117
143
|
if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {
|
|
@@ -119,7 +145,7 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
119
145
|
}
|
|
120
146
|
}
|
|
121
147
|
|
|
122
|
-
const initialized =
|
|
148
|
+
const initialized = flicking && flicking.initialized;
|
|
123
149
|
const viewportClasses: string[] = ["flicking-viewport"];
|
|
124
150
|
const isHorizontal = flicking
|
|
125
151
|
? flicking.horizontal
|
|
@@ -142,8 +168,8 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
142
168
|
: {};
|
|
143
169
|
|
|
144
170
|
const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0
|
|
145
|
-
? this._getVirtualPanels(
|
|
146
|
-
: this._getPanels(
|
|
171
|
+
? this._getVirtualPanels()
|
|
172
|
+
: this._getPanels();
|
|
147
173
|
|
|
148
174
|
return (
|
|
149
175
|
<Viewport {...attributes} className={viewportClasses.join(" ")} ref={(e?: HTMLElement) => {
|
|
@@ -207,18 +233,19 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
207
233
|
}
|
|
208
234
|
|
|
209
235
|
private _unpackFragment(child: React.ReactElement) {
|
|
210
|
-
return
|
|
236
|
+
return this._isFragment(child)
|
|
211
237
|
? React.Children.toArray(child.props.children)
|
|
212
238
|
.reduce((allChilds, fragChild) => [...allChilds, ...this._unpackFragment(fragChild)], [])
|
|
213
239
|
: [child];
|
|
214
240
|
}
|
|
215
241
|
|
|
216
|
-
private _getVirtualPanels(
|
|
242
|
+
private _getVirtualPanels() {
|
|
217
243
|
const {
|
|
218
244
|
panelClass = "flicking-panel"
|
|
219
245
|
} = this.props.virtual!;
|
|
220
246
|
const panelsPerView = this.props.panelsPerView!;
|
|
221
247
|
const flicking = this._vanillaFlicking;
|
|
248
|
+
const initialized = flicking && flicking.initialized;
|
|
222
249
|
|
|
223
250
|
const renderingIndexes = initialized
|
|
224
251
|
? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)
|
|
@@ -241,15 +268,28 @@ class Flicking extends React.PureComponent<Partial<FlickingProps & FlickingOptio
|
|
|
241
268
|
});
|
|
242
269
|
}
|
|
243
270
|
|
|
244
|
-
private _getPanels(
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
|
|
271
|
+
private _getPanels() {
|
|
272
|
+
const origChildren = this._getChildren();
|
|
273
|
+
const vanillaFlicking = this._vanillaFlicking;
|
|
274
|
+
const diffResult = this._diffResult;
|
|
275
|
+
|
|
276
|
+
const children = vanillaFlicking && vanillaFlicking.initialized
|
|
277
|
+
? diffResult
|
|
278
|
+
? getRenderingPanels(vanillaFlicking, diffResult)
|
|
279
|
+
: getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))
|
|
280
|
+
: origChildren;
|
|
248
281
|
|
|
249
282
|
return this.props.useFindDOMNode
|
|
250
283
|
? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)
|
|
251
284
|
: children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)
|
|
252
285
|
}
|
|
286
|
+
|
|
287
|
+
private _isFragment(child: NonNullable<React.ReactNode>) {
|
|
288
|
+
if ((child as React.ReactElement).type) {
|
|
289
|
+
return (child as React.ReactElement).type === React.Fragment;
|
|
290
|
+
}
|
|
291
|
+
return child === React.Fragment;
|
|
292
|
+
}
|
|
253
293
|
}
|
|
254
294
|
|
|
255
295
|
interface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Copyright (c) 2015 NAVER Corp.
|
|
3
3
|
* egjs projects are licensed under the MIT license
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { ElementProvider } from "@egjs/flicking";
|
|
6
6
|
import StrictPanel from "./StrictPanel";
|
|
7
7
|
import NonStrictPanel from "./NonStrictPanel";
|
|
8
8
|
|
|
9
|
-
class ReactElementProvider implements
|
|
9
|
+
class ReactElementProvider implements ElementProvider {
|
|
10
10
|
private _el: StrictPanel | NonStrictPanel;
|
|
11
11
|
|
|
12
12
|
public get element() { return this._el.nativeElement; }
|