@egjs/react-flicking 3.8.0 → 3.8.3
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/types.d.ts +4 -2
- package/dist/flicking.cjs.js +15 -2
- package/dist/flicking.cjs.js.map +1 -1
- package/dist/flicking.esm.js +15 -2
- package/dist/flicking.esm.js.map +1 -1
- package/package.json +5 -3
- package/src/demo/App.tsx +22 -14
- package/src/demo/Header.tsx +13 -11
- package/src/demo/features/Image.tsx +24 -0
- package/src/react-flicking/Flicking.tsx +18 -1
- package/src/react-flicking/consts.ts +3 -1
- package/src/react-flicking/types.ts +15 -2
package/declaration/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { ChangeEvent, FlickingEvent, SelectEvent, Plugin, NeedPanelEvent, FlickingStatus, FlickingMethods, VisibleChangeEvent } from "@egjs/flicking";
|
|
2
|
+
import { ChangeEvent, FlickingEvent, SelectEvent, Plugin, NeedPanelEvent, FlickingStatus, FlickingMethods, VisibleChangeEvent, ContentErrorEvent, ContentLoadEvent } from "@egjs/flicking";
|
|
3
3
|
import NativeFlicking from "@egjs/flicking";
|
|
4
4
|
export declare type ParametersType<T, R> = T extends (...params: infer U) => any ? (...params: U) => R : never;
|
|
5
5
|
export declare type FlickingType<T> = {
|
|
@@ -16,10 +16,12 @@ export interface FlickingProps {
|
|
|
16
16
|
onMoveStart: (e: FlickingEvent) => any;
|
|
17
17
|
onMove: (e: FlickingEvent) => any;
|
|
18
18
|
onMoveEnd: (e: FlickingEvent) => any;
|
|
19
|
+
onChange: (e: ChangeEvent) => any;
|
|
19
20
|
onRestore: (e: FlickingEvent) => any;
|
|
20
21
|
onSelect: (e: SelectEvent) => any;
|
|
21
|
-
onChange: (e: ChangeEvent) => any;
|
|
22
22
|
onNeedPanel: (e: NeedPanelEvent) => any;
|
|
23
23
|
onVisibleChange: (e: VisibleChangeEvent) => any;
|
|
24
|
+
onContentLoad: (e: ContentLoadEvent) => any;
|
|
25
|
+
onContentError: (e: ContentErrorEvent) => any;
|
|
24
26
|
[key: string]: any;
|
|
25
27
|
}
|
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: 3.8.
|
|
7
|
+
version: 3.8.3
|
|
8
8
|
*/
|
|
9
9
|
'use strict';
|
|
10
10
|
|
|
@@ -35,13 +35,14 @@ var extendStatics = function (d, b) {
|
|
|
35
35
|
} instanceof Array && function (d, b) {
|
|
36
36
|
d.__proto__ = b;
|
|
37
37
|
} || function (d, b) {
|
|
38
|
-
for (var p in b) if (
|
|
38
|
+
for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
return extendStatics(d, b);
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
function __extends(d, b) {
|
|
45
|
+
if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
45
46
|
extendStatics(d, b);
|
|
46
47
|
|
|
47
48
|
function __() {
|
|
@@ -70,6 +71,8 @@ function __decorate(decorators, target, key, desc) {
|
|
|
70
71
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
71
72
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
72
73
|
}
|
|
74
|
+
/** @deprecated */
|
|
75
|
+
|
|
73
76
|
function __spreadArrays() {
|
|
74
77
|
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
75
78
|
|
|
@@ -111,6 +114,8 @@ var FLICKING_PROPS = {
|
|
|
111
114
|
onRestore: function (e) {},
|
|
112
115
|
onSelect: function (e) {},
|
|
113
116
|
onChange: function (e) {},
|
|
117
|
+
onContentLoad: function (e) {},
|
|
118
|
+
onContentError: function (e) {},
|
|
114
119
|
onVisibleChange: function (e) {}
|
|
115
120
|
};
|
|
116
121
|
|
|
@@ -224,6 +229,14 @@ function (_super) {
|
|
|
224
229
|
_this.props.onVisibleChange(e);
|
|
225
230
|
|
|
226
231
|
_this.forceUpdate();
|
|
232
|
+
},
|
|
233
|
+
contentLoad: function (e) {
|
|
234
|
+
_this.props.onContentLoad(e);
|
|
235
|
+
|
|
236
|
+
_this.forceUpdate();
|
|
237
|
+
},
|
|
238
|
+
contentError: function (e) {
|
|
239
|
+
return _this.props.onContentError(e);
|
|
227
240
|
}
|
|
228
241
|
});
|
|
229
242
|
var children = this.getChildren();
|
package/dist/flicking.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flicking.cjs.js","sources":["../src/react-flicking/Clone.tsx","../src/react-flicking/consts.ts","../src/react-flicking/Flicking.tsx"],"sourcesContent":["import { Component } from \"react\";\n\nexport class CloneComponent extends Component {\n public render() {\n return this.props.children;\n }\n}\n","import { ChangeEvent, FlickingEvent, SelectEvent, NeedPanelEvent, VisibleChangeEvent } from \"@egjs/flicking\";\nimport { FlickingProps } from \"./types\";\n\nexport const FLICKING_PROPS: FlickingProps = {\n tag: \"div\",\n viewportTag: \"div\",\n cameraTag: \"div\",\n classPrefix: \"eg-flick\",\n plugins: [],\n onNeedPanel: (e: NeedPanelEvent) => {},\n onMoveStart: (e: FlickingEvent) => {},\n onMove: (e: FlickingEvent) => {},\n onMoveEnd: (e: FlickingEvent) => {},\n onHoldStart: (e: FlickingEvent) => {},\n onHoldEnd: (e: FlickingEvent) => {},\n onRestore: (e: FlickingEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onChange: (e: ChangeEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n};\n","import NativeFlicking, { FlickingOptions, Plugin, FlickingEvent, NeedPanelEvent, withFlickingMethods, DEFAULT_OPTIONS, VisibleChangeEvent, SelectEvent, ChangeEvent } from \"@egjs/flicking\";\nimport * as React from \"react\";\nimport { CloneComponent } from \"./Clone\";\nimport { FLICKING_PROPS } from \"./consts\";\nimport { FlickingProps, FlickingType } from \"./types\";\nimport ListDiffer, { ListFormat } from \"@egjs/list-differ\";\nimport ChildrenDiffer from \"@egjs/children-differ\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = FLICKING_PROPS;\n public state: {\n cloneCount: number,\n } = {\n cloneCount: 0,\n };\n // Flicking\n @withFlickingMethods\n private flicking?: NativeFlicking | null;\n private options: FlickingOptions = {\n ...DEFAULT_OPTIONS,\n renderExternal: true,\n };\n // differ\n private pluginsDiffer: ListDiffer<Plugin> = new ListDiffer<Plugin>();\n private childrenDiffer: ChildrenDiffer<HTMLElement>;\n private jsxDiffer: ListDiffer<string>;\n private containerElement: HTMLElement;\n private cameraElement: HTMLElement;\n\n // life cycle\n constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n const options = this.options;\n for (const name in props) {\n if (name in DEFAULT_OPTIONS) {\n options[name] = props[name];\n }\n }\n }\n\n public render() {\n const props = this.props;\n /* tslint:disable:naming-convention */\n const Tag = props.tag as any;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n /* tslint:enable:naming-convention */\n const classPrefix = props.classPrefix;\n const attributes: { [key: string]: any } = {};\n\n for (const name in props) {\n if (!(name in FLICKING_PROPS) && !(name in DEFAULT_OPTIONS)) {\n attributes[name] = props[name];\n }\n }\n return (\n <Tag {...attributes} ref={e => {\n e && (this.containerElement = e);\n }}>\n <Viewport className={`${classPrefix}-viewport`}>\n <Camera className={`${classPrefix}-camera`} ref={e => {\n e && (this.cameraElement = e);\n }}>\n {this.renderPanels()}\n </Camera>\n </Viewport>\n </Tag>\n );\n }\n\n public componentDidUpdate() {\n const result = this.childrenDiffer!.update(this.getElements());\n this.flicking!.sync(result);\n this.checkPlugins();\n this.checkCloneCount();\n }\n\n public componentDidMount() {\n this.childrenDiffer = new ChildrenDiffer<HTMLElement>(this.getElements());\n this.flicking = new NativeFlicking(\n this.containerElement,\n {\n ...this.options,\n framework: \"react\",\n frameworkVersion: React.version,\n } as object,\n ).on({\n moveStart: (e: FlickingEvent) => this.props.onMoveStart!(e),\n move: (e: FlickingEvent) => this.props.onMove!(e),\n moveEnd: (e: FlickingEvent) => this.props.onMoveEnd!(e),\n holdStart: (e: FlickingEvent) => this.props.onHoldStart!(e),\n holdEnd: (e: FlickingEvent) => this.props.onHoldEnd!(e),\n select: (e: SelectEvent) => this.props.onSelect!(e),\n needPanel: (e: NeedPanelEvent) => this.props.onNeedPanel!(e),\n change: (e: ChangeEvent) => this.props.onChange!(e),\n restore: (e: FlickingEvent) => this.props.onRestore!(e),\n visibleChange: (e: VisibleChangeEvent) => {\n this.props.onVisibleChange!(e);\n this.forceUpdate();\n },\n });\n const children = this.getChildren();\n this.jsxDiffer = new ListDiffer<string>(children.map(child => `${child.key}`));\n\n if (this.props.status) {\n this.setStatus(this.props.status);\n }\n this.checkPlugins();\n this.checkCloneCount();\n\n if (this.props.renderOnlyVisible) {\n this.forceUpdate();\n }\n }\n\n public componentWillUnmount() {\n this.destroy({ preserveUI: true });\n }\n\n // private\n private checkPlugins() {\n const { list, added, removed, prevList } = this.pluginsDiffer.update(this.props.plugins!);\n\n this.flicking!.addPlugins(added.map(index => list[index]));\n this.flicking!.removePlugins(removed.map(index => prevList[index]));\n }\n\n private checkCloneCount() {\n const cloneCount = this.flicking!.getCloneCount();\n\n if (this.state.cloneCount !== cloneCount) {\n this.setState({\n cloneCount,\n });\n }\n }\n\n private renderPanels() {\n const { renderOnlyVisible } = this.props;\n const flicking = this.flicking;\n const reactChildren = this.getChildren();\n let panels: Array<React.ReactElement<any>>;\n\n if (flicking && renderOnlyVisible) {\n const diffResult = this.jsxDiffer.update(reactChildren.map(child => `${child.key}`));\n const panelCnt = reactChildren.length;\n\n flicking.beforeSync(diffResult);\n\n const indexesToRender = flicking.getRenderingIndexes(diffResult);\n panels = indexesToRender.map(index => {\n if (index >= panelCnt) {\n const relativeIndex = index % panelCnt;\n const cloneIndex = Math.floor(index / panelCnt) - 1;\n const origEl = reactChildren[relativeIndex];\n\n return <CloneComponent key={`clone${cloneIndex}${origEl.key}`}>{origEl}</CloneComponent>;\n } else {\n return reactChildren[index];\n }\n });\n } else {\n const cloneCount = this.state.cloneCount;\n panels = [...reactChildren];\n\n for (let i = 0; i < cloneCount; ++i) {\n panels = panels.concat(reactChildren.map(el => {\n return <CloneComponent key={`clone${i}${el.key}`}>{el}</CloneComponent>;\n }));\n }\n }\n\n return panels;\n }\n\n private getChildren() {\n const children = React.Children.toArray(this.props.children).slice() as Array<React.ReactElement<any>>;\n return typeof this.props.lastIndex === \"number\"\n ? children.slice(0, this.props.lastIndex + 1)\n : children;\n }\n\n private getElements(): ListFormat<HTMLElement> {\n return this.cameraElement.children as any;\n }\n}\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, FlickingType<Flicking> { }\nexport default Flicking;\n"],"names":["__extends","props","children","Component","FLICKING_PROPS","tag","viewportTag","cameraTag","classPrefix","plugins","onNeedPanel","e","onMoveStart","onMove","onMoveEnd","onHoldStart","onHoldEnd","onRestore","onSelect","onChange","onVisibleChange","_super","_this","cloneCount","DEFAULT_OPTIONS","renderExternal","ListDiffer","options","name","Tag","Viewport","Camera","attributes","React","ref","containerElement","className","cameraElement","renderPanels","result","childrenDiffer","update","getElements","flicking","sync","checkPlugins","checkCloneCount","ChildrenDiffer","NativeFlicking","__assign","framework","frameworkVersion","on","moveStart","move","moveEnd","holdStart","holdEnd","select","needPanel","change","restore","visibleChange","forceUpdate","getChildren","jsxDiffer","map","child","key","status","setStatus","renderOnlyVisible","destroy","preserveUI","_a","pluginsDiffer","list","added","removed","prevList","addPlugins","index","removePlugins","getCloneCount","state","setState","reactChildren","panels","diffResult","panelCnt_1","length","beforeSync","indexesToRender","getRenderingIndexes","relativeIndex","cloneIndex","Math","floor","origEl","CloneComponent","i","concat","el","toArray","slice","lastIndex","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flicking.cjs.js","sources":["../src/react-flicking/Clone.tsx","../src/react-flicking/consts.ts","../src/react-flicking/Flicking.tsx"],"sourcesContent":["import { Component } from \"react\";\n\nexport class CloneComponent extends Component {\n public render() {\n return this.props.children;\n }\n}\n","import { ChangeEvent, FlickingEvent, SelectEvent, NeedPanelEvent, VisibleChangeEvent, ContentLoadEvent, ContentErrorEvent } from \"@egjs/flicking\";\nimport { FlickingProps } from \"./types\";\n\nexport const FLICKING_PROPS: FlickingProps = {\n tag: \"div\",\n viewportTag: \"div\",\n cameraTag: \"div\",\n classPrefix: \"eg-flick\",\n plugins: [],\n onNeedPanel: (e: NeedPanelEvent) => {},\n onMoveStart: (e: FlickingEvent) => {},\n onMove: (e: FlickingEvent) => {},\n onMoveEnd: (e: FlickingEvent) => {},\n onHoldStart: (e: FlickingEvent) => {},\n onHoldEnd: (e: FlickingEvent) => {},\n onRestore: (e: FlickingEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onChange: (e: ChangeEvent) => {},\n onContentLoad: (e: ContentLoadEvent) => {},\n onContentError: (e: ContentErrorEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n};\n","import NativeFlicking, {\n FlickingOptions,\n Plugin,\n FlickingEvent,\n NeedPanelEvent,\n withFlickingMethods,\n DEFAULT_OPTIONS,\n VisibleChangeEvent,\n SelectEvent,\n ChangeEvent,\n ContentLoadEvent,\n ContentErrorEvent\n} from \"@egjs/flicking\";\nimport * as React from \"react\";\nimport { CloneComponent } from \"./Clone\";\nimport { FLICKING_PROPS } from \"./consts\";\nimport { FlickingProps, FlickingType } from \"./types\";\nimport ListDiffer, { ListFormat } from \"@egjs/list-differ\";\nimport ChildrenDiffer from \"@egjs/children-differ\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = FLICKING_PROPS;\n public state: {\n cloneCount: number,\n } = {\n cloneCount: 0,\n };\n // Flicking\n @withFlickingMethods\n private flicking?: NativeFlicking | null;\n private options: FlickingOptions = {\n ...DEFAULT_OPTIONS,\n renderExternal: true,\n };\n // differ\n private pluginsDiffer: ListDiffer<Plugin> = new ListDiffer<Plugin>();\n private childrenDiffer: ChildrenDiffer<HTMLElement>;\n private jsxDiffer: ListDiffer<string>;\n private containerElement: HTMLElement;\n private cameraElement: HTMLElement;\n\n // life cycle\n constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n const options = this.options;\n for (const name in props) {\n if (name in DEFAULT_OPTIONS) {\n options[name] = props[name];\n }\n }\n }\n\n public render() {\n const props = this.props;\n /* tslint:disable:naming-convention */\n const Tag = props.tag as any;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n /* tslint:enable:naming-convention */\n const classPrefix = props.classPrefix;\n const attributes: { [key: string]: any } = {};\n\n for (const name in props) {\n if (!(name in FLICKING_PROPS) && !(name in DEFAULT_OPTIONS)) {\n attributes[name] = props[name];\n }\n }\n return (\n <Tag {...attributes} ref={e => {\n e && (this.containerElement = e);\n }}>\n <Viewport className={`${classPrefix}-viewport`}>\n <Camera className={`${classPrefix}-camera`} ref={e => {\n e && (this.cameraElement = e);\n }}>\n {this.renderPanels()}\n </Camera>\n </Viewport>\n </Tag>\n );\n }\n\n public componentDidUpdate() {\n const result = this.childrenDiffer!.update(this.getElements());\n this.flicking!.sync(result);\n this.checkPlugins();\n this.checkCloneCount();\n }\n\n public componentDidMount() {\n this.childrenDiffer = new ChildrenDiffer<HTMLElement>(this.getElements());\n this.flicking = new NativeFlicking(\n this.containerElement,\n {\n ...this.options,\n framework: \"react\",\n frameworkVersion: React.version,\n } as object,\n ).on({\n moveStart: (e: FlickingEvent) => this.props.onMoveStart!(e),\n move: (e: FlickingEvent) => this.props.onMove!(e),\n moveEnd: (e: FlickingEvent) => this.props.onMoveEnd!(e),\n holdStart: (e: FlickingEvent) => this.props.onHoldStart!(e),\n holdEnd: (e: FlickingEvent) => this.props.onHoldEnd!(e),\n select: (e: SelectEvent) => this.props.onSelect!(e),\n needPanel: (e: NeedPanelEvent) => this.props.onNeedPanel!(e),\n change: (e: ChangeEvent) => this.props.onChange!(e),\n restore: (e: FlickingEvent) => this.props.onRestore!(e),\n visibleChange: (e: VisibleChangeEvent) => {\n this.props.onVisibleChange!(e);\n this.forceUpdate();\n },\n contentLoad: (e: ContentLoadEvent) => {\n this.props.onContentLoad!(e);\n this.forceUpdate();\n },\n contentError: (e: ContentErrorEvent) => this.props.onContentError!(e)\n });\n const children = this.getChildren();\n this.jsxDiffer = new ListDiffer<string>(children.map(child => `${child.key}`));\n\n if (this.props.status) {\n this.setStatus(this.props.status);\n }\n this.checkPlugins();\n this.checkCloneCount();\n\n if (this.props.renderOnlyVisible) {\n this.forceUpdate();\n }\n }\n\n public componentWillUnmount() {\n this.destroy({ preserveUI: true });\n }\n\n // private\n private checkPlugins() {\n const { list, added, removed, prevList } = this.pluginsDiffer.update(this.props.plugins!);\n\n this.flicking!.addPlugins(added.map(index => list[index]));\n this.flicking!.removePlugins(removed.map(index => prevList[index]));\n }\n\n private checkCloneCount() {\n const cloneCount = this.flicking!.getCloneCount();\n\n if (this.state.cloneCount !== cloneCount) {\n this.setState({\n cloneCount,\n });\n }\n }\n\n private renderPanels() {\n const { renderOnlyVisible } = this.props;\n const flicking = this.flicking;\n const reactChildren = this.getChildren();\n let panels: Array<React.ReactElement<any>>;\n\n if (flicking && renderOnlyVisible) {\n const diffResult = this.jsxDiffer.update(reactChildren.map(child => `${child.key}`));\n const panelCnt = reactChildren.length;\n\n flicking.beforeSync(diffResult);\n\n const indexesToRender = flicking.getRenderingIndexes(diffResult);\n panels = indexesToRender.map(index => {\n if (index >= panelCnt) {\n const relativeIndex = index % panelCnt;\n const cloneIndex = Math.floor(index / panelCnt) - 1;\n const origEl = reactChildren[relativeIndex];\n\n return <CloneComponent key={`clone${cloneIndex}${origEl.key}`}>{origEl}</CloneComponent>;\n } else {\n return reactChildren[index];\n }\n });\n } else {\n const cloneCount = this.state.cloneCount;\n panels = [...reactChildren];\n\n for (let i = 0; i < cloneCount; ++i) {\n panels = panels.concat(reactChildren.map(el => {\n return <CloneComponent key={`clone${i}${el.key}`}>{el}</CloneComponent>;\n }));\n }\n }\n\n return panels;\n }\n\n private getChildren() {\n const children = React.Children.toArray(this.props.children).slice() as Array<React.ReactElement<any>>;\n return typeof this.props.lastIndex === \"number\"\n ? children.slice(0, this.props.lastIndex + 1)\n : children;\n }\n\n private getElements(): ListFormat<HTMLElement> {\n return this.cameraElement.children as any;\n }\n}\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, FlickingType<Flicking> { }\nexport default Flicking;\n"],"names":["__extends","props","children","Component","FLICKING_PROPS","tag","viewportTag","cameraTag","classPrefix","plugins","onNeedPanel","e","onMoveStart","onMove","onMoveEnd","onHoldStart","onHoldEnd","onRestore","onSelect","onChange","onContentLoad","onContentError","onVisibleChange","_super","_this","cloneCount","DEFAULT_OPTIONS","renderExternal","ListDiffer","options","name","Tag","Viewport","Camera","attributes","React","ref","containerElement","className","cameraElement","renderPanels","result","childrenDiffer","update","getElements","flicking","sync","checkPlugins","checkCloneCount","ChildrenDiffer","NativeFlicking","__assign","framework","frameworkVersion","on","moveStart","move","moveEnd","holdStart","holdEnd","select","needPanel","change","restore","visibleChange","forceUpdate","contentLoad","contentError","getChildren","jsxDiffer","map","child","key","status","setStatus","renderOnlyVisible","destroy","preserveUI","_a","pluginsDiffer","list","added","removed","prevList","addPlugins","index","removePlugins","getCloneCount","state","setState","reactChildren","panels","diffResult","panelCnt_1","length","beforeSync","indexesToRender","getRenderingIndexes","relativeIndex","cloneIndex","Math","floor","origEl","CloneComponent","i","concat","el","toArray","slice","lastIndex","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
package/dist/flicking.esm.js
CHANGED
|
@@ -4,7 +4,7 @@ name: @egjs/react-flicking
|
|
|
4
4
|
license: MIT
|
|
5
5
|
author: NAVER Corp.
|
|
6
6
|
repository: https://github.com/naver/egjs-flicking/tree/master/packages/react-flicking
|
|
7
|
-
version: 3.8.
|
|
7
|
+
version: 3.8.3
|
|
8
8
|
*/
|
|
9
9
|
import NativeFlicking, { DEFAULT_OPTIONS, withFlickingMethods } from '@egjs/flicking';
|
|
10
10
|
import { Component, createElement, version, Children } from 'react';
|
|
@@ -33,13 +33,14 @@ var extendStatics = function (d, b) {
|
|
|
33
33
|
} instanceof Array && function (d, b) {
|
|
34
34
|
d.__proto__ = b;
|
|
35
35
|
} || function (d, b) {
|
|
36
|
-
for (var p in b) if (
|
|
36
|
+
for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
return extendStatics(d, b);
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
function __extends(d, b) {
|
|
43
|
+
if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
43
44
|
extendStatics(d, b);
|
|
44
45
|
|
|
45
46
|
function __() {
|
|
@@ -68,6 +69,8 @@ function __decorate(decorators, target, key, desc) {
|
|
|
68
69
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
69
70
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
70
71
|
}
|
|
72
|
+
/** @deprecated */
|
|
73
|
+
|
|
71
74
|
function __spreadArrays() {
|
|
72
75
|
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
73
76
|
|
|
@@ -109,6 +112,8 @@ var FLICKING_PROPS = {
|
|
|
109
112
|
onRestore: function (e) {},
|
|
110
113
|
onSelect: function (e) {},
|
|
111
114
|
onChange: function (e) {},
|
|
115
|
+
onContentLoad: function (e) {},
|
|
116
|
+
onContentError: function (e) {},
|
|
112
117
|
onVisibleChange: function (e) {}
|
|
113
118
|
};
|
|
114
119
|
|
|
@@ -222,6 +227,14 @@ function (_super) {
|
|
|
222
227
|
_this.props.onVisibleChange(e);
|
|
223
228
|
|
|
224
229
|
_this.forceUpdate();
|
|
230
|
+
},
|
|
231
|
+
contentLoad: function (e) {
|
|
232
|
+
_this.props.onContentLoad(e);
|
|
233
|
+
|
|
234
|
+
_this.forceUpdate();
|
|
235
|
+
},
|
|
236
|
+
contentError: function (e) {
|
|
237
|
+
return _this.props.onContentError(e);
|
|
225
238
|
}
|
|
226
239
|
});
|
|
227
240
|
var children = this.getChildren();
|
package/dist/flicking.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flicking.esm.js","sources":["../src/react-flicking/Clone.tsx","../src/react-flicking/consts.ts","../src/react-flicking/Flicking.tsx"],"sourcesContent":["import { Component } from \"react\";\n\nexport class CloneComponent extends Component {\n public render() {\n return this.props.children;\n }\n}\n","import { ChangeEvent, FlickingEvent, SelectEvent, NeedPanelEvent, VisibleChangeEvent } from \"@egjs/flicking\";\nimport { FlickingProps } from \"./types\";\n\nexport const FLICKING_PROPS: FlickingProps = {\n tag: \"div\",\n viewportTag: \"div\",\n cameraTag: \"div\",\n classPrefix: \"eg-flick\",\n plugins: [],\n onNeedPanel: (e: NeedPanelEvent) => {},\n onMoveStart: (e: FlickingEvent) => {},\n onMove: (e: FlickingEvent) => {},\n onMoveEnd: (e: FlickingEvent) => {},\n onHoldStart: (e: FlickingEvent) => {},\n onHoldEnd: (e: FlickingEvent) => {},\n onRestore: (e: FlickingEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onChange: (e: ChangeEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n};\n","import NativeFlicking, { FlickingOptions, Plugin, FlickingEvent, NeedPanelEvent, withFlickingMethods, DEFAULT_OPTIONS, VisibleChangeEvent, SelectEvent, ChangeEvent } from \"@egjs/flicking\";\nimport * as React from \"react\";\nimport { CloneComponent } from \"./Clone\";\nimport { FLICKING_PROPS } from \"./consts\";\nimport { FlickingProps, FlickingType } from \"./types\";\nimport ListDiffer, { ListFormat } from \"@egjs/list-differ\";\nimport ChildrenDiffer from \"@egjs/children-differ\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = FLICKING_PROPS;\n public state: {\n cloneCount: number,\n } = {\n cloneCount: 0,\n };\n // Flicking\n @withFlickingMethods\n private flicking?: NativeFlicking | null;\n private options: FlickingOptions = {\n ...DEFAULT_OPTIONS,\n renderExternal: true,\n };\n // differ\n private pluginsDiffer: ListDiffer<Plugin> = new ListDiffer<Plugin>();\n private childrenDiffer: ChildrenDiffer<HTMLElement>;\n private jsxDiffer: ListDiffer<string>;\n private containerElement: HTMLElement;\n private cameraElement: HTMLElement;\n\n // life cycle\n constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n const options = this.options;\n for (const name in props) {\n if (name in DEFAULT_OPTIONS) {\n options[name] = props[name];\n }\n }\n }\n\n public render() {\n const props = this.props;\n /* tslint:disable:naming-convention */\n const Tag = props.tag as any;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n /* tslint:enable:naming-convention */\n const classPrefix = props.classPrefix;\n const attributes: { [key: string]: any } = {};\n\n for (const name in props) {\n if (!(name in FLICKING_PROPS) && !(name in DEFAULT_OPTIONS)) {\n attributes[name] = props[name];\n }\n }\n return (\n <Tag {...attributes} ref={e => {\n e && (this.containerElement = e);\n }}>\n <Viewport className={`${classPrefix}-viewport`}>\n <Camera className={`${classPrefix}-camera`} ref={e => {\n e && (this.cameraElement = e);\n }}>\n {this.renderPanels()}\n </Camera>\n </Viewport>\n </Tag>\n );\n }\n\n public componentDidUpdate() {\n const result = this.childrenDiffer!.update(this.getElements());\n this.flicking!.sync(result);\n this.checkPlugins();\n this.checkCloneCount();\n }\n\n public componentDidMount() {\n this.childrenDiffer = new ChildrenDiffer<HTMLElement>(this.getElements());\n this.flicking = new NativeFlicking(\n this.containerElement,\n {\n ...this.options,\n framework: \"react\",\n frameworkVersion: React.version,\n } as object,\n ).on({\n moveStart: (e: FlickingEvent) => this.props.onMoveStart!(e),\n move: (e: FlickingEvent) => this.props.onMove!(e),\n moveEnd: (e: FlickingEvent) => this.props.onMoveEnd!(e),\n holdStart: (e: FlickingEvent) => this.props.onHoldStart!(e),\n holdEnd: (e: FlickingEvent) => this.props.onHoldEnd!(e),\n select: (e: SelectEvent) => this.props.onSelect!(e),\n needPanel: (e: NeedPanelEvent) => this.props.onNeedPanel!(e),\n change: (e: ChangeEvent) => this.props.onChange!(e),\n restore: (e: FlickingEvent) => this.props.onRestore!(e),\n visibleChange: (e: VisibleChangeEvent) => {\n this.props.onVisibleChange!(e);\n this.forceUpdate();\n },\n });\n const children = this.getChildren();\n this.jsxDiffer = new ListDiffer<string>(children.map(child => `${child.key}`));\n\n if (this.props.status) {\n this.setStatus(this.props.status);\n }\n this.checkPlugins();\n this.checkCloneCount();\n\n if (this.props.renderOnlyVisible) {\n this.forceUpdate();\n }\n }\n\n public componentWillUnmount() {\n this.destroy({ preserveUI: true });\n }\n\n // private\n private checkPlugins() {\n const { list, added, removed, prevList } = this.pluginsDiffer.update(this.props.plugins!);\n\n this.flicking!.addPlugins(added.map(index => list[index]));\n this.flicking!.removePlugins(removed.map(index => prevList[index]));\n }\n\n private checkCloneCount() {\n const cloneCount = this.flicking!.getCloneCount();\n\n if (this.state.cloneCount !== cloneCount) {\n this.setState({\n cloneCount,\n });\n }\n }\n\n private renderPanels() {\n const { renderOnlyVisible } = this.props;\n const flicking = this.flicking;\n const reactChildren = this.getChildren();\n let panels: Array<React.ReactElement<any>>;\n\n if (flicking && renderOnlyVisible) {\n const diffResult = this.jsxDiffer.update(reactChildren.map(child => `${child.key}`));\n const panelCnt = reactChildren.length;\n\n flicking.beforeSync(diffResult);\n\n const indexesToRender = flicking.getRenderingIndexes(diffResult);\n panels = indexesToRender.map(index => {\n if (index >= panelCnt) {\n const relativeIndex = index % panelCnt;\n const cloneIndex = Math.floor(index / panelCnt) - 1;\n const origEl = reactChildren[relativeIndex];\n\n return <CloneComponent key={`clone${cloneIndex}${origEl.key}`}>{origEl}</CloneComponent>;\n } else {\n return reactChildren[index];\n }\n });\n } else {\n const cloneCount = this.state.cloneCount;\n panels = [...reactChildren];\n\n for (let i = 0; i < cloneCount; ++i) {\n panels = panels.concat(reactChildren.map(el => {\n return <CloneComponent key={`clone${i}${el.key}`}>{el}</CloneComponent>;\n }));\n }\n }\n\n return panels;\n }\n\n private getChildren() {\n const children = React.Children.toArray(this.props.children).slice() as Array<React.ReactElement<any>>;\n return typeof this.props.lastIndex === \"number\"\n ? children.slice(0, this.props.lastIndex + 1)\n : children;\n }\n\n private getElements(): ListFormat<HTMLElement> {\n return this.cameraElement.children as any;\n }\n}\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, FlickingType<Flicking> { }\nexport default Flicking;\n"],"names":["__extends","props","children","Component","FLICKING_PROPS","tag","viewportTag","cameraTag","classPrefix","plugins","onNeedPanel","e","onMoveStart","onMove","onMoveEnd","onHoldStart","onHoldEnd","onRestore","onSelect","onChange","onVisibleChange","_super","_this","cloneCount","DEFAULT_OPTIONS","renderExternal","ListDiffer","options","name","Tag","Viewport","Camera","attributes","React","ref","containerElement","className","cameraElement","renderPanels","result","childrenDiffer","update","getElements","flicking","sync","checkPlugins","checkCloneCount","ChildrenDiffer","NativeFlicking","__assign","framework","frameworkVersion","on","moveStart","move","moveEnd","holdStart","holdEnd","select","needPanel","change","restore","visibleChange","forceUpdate","getChildren","jsxDiffer","map","child","key","status","setStatus","renderOnlyVisible","destroy","preserveUI","_a","pluginsDiffer","list","added","removed","prevList","addPlugins","index","removePlugins","getCloneCount","state","setState","reactChildren","panels","diffResult","panelCnt_1","length","beforeSync","indexesToRender","getRenderingIndexes","relativeIndex","cloneIndex","Math","floor","origEl","CloneComponent","i","concat","el","toArray","slice","lastIndex","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flicking.esm.js","sources":["../src/react-flicking/Clone.tsx","../src/react-flicking/consts.ts","../src/react-flicking/Flicking.tsx"],"sourcesContent":["import { Component } from \"react\";\n\nexport class CloneComponent extends Component {\n public render() {\n return this.props.children;\n }\n}\n","import { ChangeEvent, FlickingEvent, SelectEvent, NeedPanelEvent, VisibleChangeEvent, ContentLoadEvent, ContentErrorEvent } from \"@egjs/flicking\";\nimport { FlickingProps } from \"./types\";\n\nexport const FLICKING_PROPS: FlickingProps = {\n tag: \"div\",\n viewportTag: \"div\",\n cameraTag: \"div\",\n classPrefix: \"eg-flick\",\n plugins: [],\n onNeedPanel: (e: NeedPanelEvent) => {},\n onMoveStart: (e: FlickingEvent) => {},\n onMove: (e: FlickingEvent) => {},\n onMoveEnd: (e: FlickingEvent) => {},\n onHoldStart: (e: FlickingEvent) => {},\n onHoldEnd: (e: FlickingEvent) => {},\n onRestore: (e: FlickingEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onChange: (e: ChangeEvent) => {},\n onContentLoad: (e: ContentLoadEvent) => {},\n onContentError: (e: ContentErrorEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n};\n","import NativeFlicking, {\n FlickingOptions,\n Plugin,\n FlickingEvent,\n NeedPanelEvent,\n withFlickingMethods,\n DEFAULT_OPTIONS,\n VisibleChangeEvent,\n SelectEvent,\n ChangeEvent,\n ContentLoadEvent,\n ContentErrorEvent\n} from \"@egjs/flicking\";\nimport * as React from \"react\";\nimport { CloneComponent } from \"./Clone\";\nimport { FLICKING_PROPS } from \"./consts\";\nimport { FlickingProps, FlickingType } from \"./types\";\nimport ListDiffer, { ListFormat } from \"@egjs/list-differ\";\nimport ChildrenDiffer from \"@egjs/children-differ\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = FLICKING_PROPS;\n public state: {\n cloneCount: number,\n } = {\n cloneCount: 0,\n };\n // Flicking\n @withFlickingMethods\n private flicking?: NativeFlicking | null;\n private options: FlickingOptions = {\n ...DEFAULT_OPTIONS,\n renderExternal: true,\n };\n // differ\n private pluginsDiffer: ListDiffer<Plugin> = new ListDiffer<Plugin>();\n private childrenDiffer: ChildrenDiffer<HTMLElement>;\n private jsxDiffer: ListDiffer<string>;\n private containerElement: HTMLElement;\n private cameraElement: HTMLElement;\n\n // life cycle\n constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n const options = this.options;\n for (const name in props) {\n if (name in DEFAULT_OPTIONS) {\n options[name] = props[name];\n }\n }\n }\n\n public render() {\n const props = this.props;\n /* tslint:disable:naming-convention */\n const Tag = props.tag as any;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n /* tslint:enable:naming-convention */\n const classPrefix = props.classPrefix;\n const attributes: { [key: string]: any } = {};\n\n for (const name in props) {\n if (!(name in FLICKING_PROPS) && !(name in DEFAULT_OPTIONS)) {\n attributes[name] = props[name];\n }\n }\n return (\n <Tag {...attributes} ref={e => {\n e && (this.containerElement = e);\n }}>\n <Viewport className={`${classPrefix}-viewport`}>\n <Camera className={`${classPrefix}-camera`} ref={e => {\n e && (this.cameraElement = e);\n }}>\n {this.renderPanels()}\n </Camera>\n </Viewport>\n </Tag>\n );\n }\n\n public componentDidUpdate() {\n const result = this.childrenDiffer!.update(this.getElements());\n this.flicking!.sync(result);\n this.checkPlugins();\n this.checkCloneCount();\n }\n\n public componentDidMount() {\n this.childrenDiffer = new ChildrenDiffer<HTMLElement>(this.getElements());\n this.flicking = new NativeFlicking(\n this.containerElement,\n {\n ...this.options,\n framework: \"react\",\n frameworkVersion: React.version,\n } as object,\n ).on({\n moveStart: (e: FlickingEvent) => this.props.onMoveStart!(e),\n move: (e: FlickingEvent) => this.props.onMove!(e),\n moveEnd: (e: FlickingEvent) => this.props.onMoveEnd!(e),\n holdStart: (e: FlickingEvent) => this.props.onHoldStart!(e),\n holdEnd: (e: FlickingEvent) => this.props.onHoldEnd!(e),\n select: (e: SelectEvent) => this.props.onSelect!(e),\n needPanel: (e: NeedPanelEvent) => this.props.onNeedPanel!(e),\n change: (e: ChangeEvent) => this.props.onChange!(e),\n restore: (e: FlickingEvent) => this.props.onRestore!(e),\n visibleChange: (e: VisibleChangeEvent) => {\n this.props.onVisibleChange!(e);\n this.forceUpdate();\n },\n contentLoad: (e: ContentLoadEvent) => {\n this.props.onContentLoad!(e);\n this.forceUpdate();\n },\n contentError: (e: ContentErrorEvent) => this.props.onContentError!(e)\n });\n const children = this.getChildren();\n this.jsxDiffer = new ListDiffer<string>(children.map(child => `${child.key}`));\n\n if (this.props.status) {\n this.setStatus(this.props.status);\n }\n this.checkPlugins();\n this.checkCloneCount();\n\n if (this.props.renderOnlyVisible) {\n this.forceUpdate();\n }\n }\n\n public componentWillUnmount() {\n this.destroy({ preserveUI: true });\n }\n\n // private\n private checkPlugins() {\n const { list, added, removed, prevList } = this.pluginsDiffer.update(this.props.plugins!);\n\n this.flicking!.addPlugins(added.map(index => list[index]));\n this.flicking!.removePlugins(removed.map(index => prevList[index]));\n }\n\n private checkCloneCount() {\n const cloneCount = this.flicking!.getCloneCount();\n\n if (this.state.cloneCount !== cloneCount) {\n this.setState({\n cloneCount,\n });\n }\n }\n\n private renderPanels() {\n const { renderOnlyVisible } = this.props;\n const flicking = this.flicking;\n const reactChildren = this.getChildren();\n let panels: Array<React.ReactElement<any>>;\n\n if (flicking && renderOnlyVisible) {\n const diffResult = this.jsxDiffer.update(reactChildren.map(child => `${child.key}`));\n const panelCnt = reactChildren.length;\n\n flicking.beforeSync(diffResult);\n\n const indexesToRender = flicking.getRenderingIndexes(diffResult);\n panels = indexesToRender.map(index => {\n if (index >= panelCnt) {\n const relativeIndex = index % panelCnt;\n const cloneIndex = Math.floor(index / panelCnt) - 1;\n const origEl = reactChildren[relativeIndex];\n\n return <CloneComponent key={`clone${cloneIndex}${origEl.key}`}>{origEl}</CloneComponent>;\n } else {\n return reactChildren[index];\n }\n });\n } else {\n const cloneCount = this.state.cloneCount;\n panels = [...reactChildren];\n\n for (let i = 0; i < cloneCount; ++i) {\n panels = panels.concat(reactChildren.map(el => {\n return <CloneComponent key={`clone${i}${el.key}`}>{el}</CloneComponent>;\n }));\n }\n }\n\n return panels;\n }\n\n private getChildren() {\n const children = React.Children.toArray(this.props.children).slice() as Array<React.ReactElement<any>>;\n return typeof this.props.lastIndex === \"number\"\n ? children.slice(0, this.props.lastIndex + 1)\n : children;\n }\n\n private getElements(): ListFormat<HTMLElement> {\n return this.cameraElement.children as any;\n }\n}\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, FlickingType<Flicking> { }\nexport default Flicking;\n"],"names":["__extends","props","children","Component","FLICKING_PROPS","tag","viewportTag","cameraTag","classPrefix","plugins","onNeedPanel","e","onMoveStart","onMove","onMoveEnd","onHoldStart","onHoldEnd","onRestore","onSelect","onChange","onContentLoad","onContentError","onVisibleChange","_super","_this","cloneCount","DEFAULT_OPTIONS","renderExternal","ListDiffer","options","name","Tag","Viewport","Camera","attributes","React","ref","containerElement","className","cameraElement","renderPanels","result","childrenDiffer","update","getElements","flicking","sync","checkPlugins","checkCloneCount","ChildrenDiffer","NativeFlicking","__assign","framework","frameworkVersion","on","moveStart","move","moveEnd","holdStart","holdEnd","select","needPanel","change","restore","visibleChange","forceUpdate","contentLoad","contentError","getChildren","jsxDiffer","map","child","key","status","setStatus","renderOnlyVisible","destroy","preserveUI","_a","pluginsDiffer","list","added","removed","prevList","addPlugins","index","removePlugins","getCloneCount","state","setState","reactChildren","panels","diffResult","panelCnt_1","length","beforeSync","indexesToRender","getRenderingIndexes","relativeIndex","cloneIndex","Math","floor","origEl","CloneComponent","i","concat","el","toArray","slice","lastIndex","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": "3.8.
|
|
3
|
+
"version": "3.8.3",
|
|
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",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"types": "declaration/index.d.ts",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@egjs/children-differ": "^1.0.1",
|
|
12
|
-
"@egjs/flicking": "
|
|
12
|
+
"@egjs/flicking": "~3.9.3",
|
|
13
13
|
"@egjs/list-differ": "^1.0.0"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
@@ -20,10 +20,12 @@
|
|
|
20
20
|
"@types/node": "12.0.0",
|
|
21
21
|
"@types/react": "16.8.17",
|
|
22
22
|
"@types/react-dom": "16.8.4",
|
|
23
|
+
"@typescript-eslint/eslint-plugin": "^5.12.0",
|
|
23
24
|
"highlight.js": "^9.15.6",
|
|
24
25
|
"react": "^16.8.6",
|
|
25
26
|
"react-dom": "^16.8.6",
|
|
26
|
-
"react-
|
|
27
|
+
"react-router-dom": "^6.2.1",
|
|
28
|
+
"react-scripts": "^5.0.0",
|
|
27
29
|
"typescript": "^3.9.7"
|
|
28
30
|
},
|
|
29
31
|
"repository": {
|
package/src/demo/App.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { Component } from "react";
|
|
3
3
|
import * as React from "react";
|
|
4
|
+
import { BrowserRouter, Route, Routes } from "react-router-dom";
|
|
4
5
|
import "./css/common.css";
|
|
5
6
|
import "./css/features.css";
|
|
6
7
|
import "./css/highlight.css";
|
|
@@ -13,6 +14,7 @@ import Snap from "./features/Snap";
|
|
|
13
14
|
import Gap from "./features/Gap";
|
|
14
15
|
import Progress from "./features/Progress";
|
|
15
16
|
import Bound from "./features/Bound";
|
|
17
|
+
import ImageLoadDemo from "./features/Image";
|
|
16
18
|
import ParallaxDemo from "./plugins/Parallax";
|
|
17
19
|
import FadeDemo from "./plugins/Fade";
|
|
18
20
|
import AutoPlayDemo from "./plugins/AutoPlay";
|
|
@@ -21,20 +23,26 @@ import Header from "./Header";
|
|
|
21
23
|
export default class App extends Component<{}> {
|
|
22
24
|
public render() {
|
|
23
25
|
return (
|
|
24
|
-
<
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
<BrowserRouter>
|
|
27
|
+
<div>
|
|
28
|
+
<Header/>
|
|
29
|
+
<Routes>
|
|
30
|
+
<Route path="/infinite" element={<InfiniteFlicking/>}></Route>
|
|
31
|
+
<Route path="/free-scroll" element={<FreeScroll/>}></Route>
|
|
32
|
+
<Route path="/variable-size" element={<VariableSize/>}></Route>
|
|
33
|
+
<Route path="/align" element={<Align/>}></Route>
|
|
34
|
+
<Route path="/snap" element={<Snap/>}></Route>
|
|
35
|
+
<Route path="/gap" element={<Gap/>}></Route>
|
|
36
|
+
<Route path="/progress" element={<Progress/>}></Route>
|
|
37
|
+
<Route path="/bound" element={<Bound/>}></Route>
|
|
38
|
+
<Route path="/image" element={<ImageLoadDemo />}></Route>
|
|
39
|
+
<Route path="/parallax" element={<ParallaxDemo/>}></Route>
|
|
40
|
+
<Route path="/fade" element={<FadeDemo/>}></Route>
|
|
41
|
+
<Route path="/autoplay" element={<AutoPlayDemo/>}></Route>
|
|
42
|
+
</Routes>
|
|
43
|
+
</div>
|
|
44
|
+
</BrowserRouter>
|
|
45
|
+
);
|
|
38
46
|
}
|
|
39
47
|
public componentDidMount() {
|
|
40
48
|
hljs.initHighlighting();
|
package/src/demo/Header.tsx
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { Link } from "react-router-dom";
|
|
2
3
|
|
|
3
4
|
export default class Header extends React.Component {
|
|
4
5
|
public render() {
|
|
5
6
|
return (
|
|
6
7
|
<ul className="header">
|
|
7
|
-
<li><
|
|
8
|
-
<li><
|
|
9
|
-
<li><
|
|
10
|
-
<li><
|
|
11
|
-
<li><
|
|
12
|
-
<li><
|
|
13
|
-
<li><
|
|
14
|
-
<li><
|
|
15
|
-
<li><
|
|
16
|
-
<li><
|
|
17
|
-
<li><
|
|
8
|
+
<li><Link to="/infinite">Infinite Flicking</Link></li>
|
|
9
|
+
<li><Link to="/free-scroll">Free Scroll</Link></li>
|
|
10
|
+
<li><Link to="/variable-size">Variable Size</Link></li>
|
|
11
|
+
<li><Link to="/align">Align</Link></li>
|
|
12
|
+
<li><Link to="/snap">Snap</Link></li>
|
|
13
|
+
<li><Link to="/gap">Gap</Link></li>
|
|
14
|
+
<li><Link to="/progress">Progress</Link></li>
|
|
15
|
+
<li><Link to="/bound">Bound</Link></li>
|
|
16
|
+
<li><Link to="/image">Image</Link></li>
|
|
17
|
+
<li><Link to="/parallax">Parallax Plugin</Link></li>
|
|
18
|
+
<li><Link to="/fade">Fade Plugin</Link></li>
|
|
19
|
+
<li><Link to="/autoplay">AutoPlay Plugin</Link></li>
|
|
18
20
|
</ul>
|
|
19
21
|
);
|
|
20
22
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import Flicking from "../../react-flicking/Flicking";
|
|
4
|
+
import "../css/infinite.css";
|
|
5
|
+
|
|
6
|
+
export default class ImageLoadDemo extends React.Component<{}, { show: boolean }> {
|
|
7
|
+
public state = {
|
|
8
|
+
show: false
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
public render() {
|
|
12
|
+
console.log("rendering")
|
|
13
|
+
return (
|
|
14
|
+
<div id="image" className="container">
|
|
15
|
+
<button onClick={() => { this.setState({ show: true }); }}>Click me</button>
|
|
16
|
+
{this.state.show && <Flicking circular={true} duration={300} resizeOnContentsReady={true}>
|
|
17
|
+
<img src="https://picsum.photos/seed/1/200/300" />
|
|
18
|
+
<img src="https://picsum.photos/seed/2/200/300" />
|
|
19
|
+
<img src="https://picsum.photos/seed/3/200/300" />
|
|
20
|
+
</Flicking>}
|
|
21
|
+
</div>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import NativeFlicking, {
|
|
1
|
+
import NativeFlicking, {
|
|
2
|
+
FlickingOptions,
|
|
3
|
+
Plugin,
|
|
4
|
+
FlickingEvent,
|
|
5
|
+
NeedPanelEvent,
|
|
6
|
+
withFlickingMethods,
|
|
7
|
+
DEFAULT_OPTIONS,
|
|
8
|
+
VisibleChangeEvent,
|
|
9
|
+
SelectEvent,
|
|
10
|
+
ChangeEvent,
|
|
11
|
+
ContentLoadEvent,
|
|
12
|
+
ContentErrorEvent
|
|
13
|
+
} from "@egjs/flicking";
|
|
2
14
|
import * as React from "react";
|
|
3
15
|
import { CloneComponent } from "./Clone";
|
|
4
16
|
import { FLICKING_PROPS } from "./consts";
|
|
@@ -98,6 +110,11 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
|
|
|
98
110
|
this.props.onVisibleChange!(e);
|
|
99
111
|
this.forceUpdate();
|
|
100
112
|
},
|
|
113
|
+
contentLoad: (e: ContentLoadEvent) => {
|
|
114
|
+
this.props.onContentLoad!(e);
|
|
115
|
+
this.forceUpdate();
|
|
116
|
+
},
|
|
117
|
+
contentError: (e: ContentErrorEvent) => this.props.onContentError!(e)
|
|
101
118
|
});
|
|
102
119
|
const children = this.getChildren();
|
|
103
120
|
this.jsxDiffer = new ListDiffer<string>(children.map(child => `${child.key}`));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeEvent, FlickingEvent, SelectEvent, NeedPanelEvent, VisibleChangeEvent } from "@egjs/flicking";
|
|
1
|
+
import { ChangeEvent, FlickingEvent, SelectEvent, NeedPanelEvent, VisibleChangeEvent, ContentLoadEvent, ContentErrorEvent } from "@egjs/flicking";
|
|
2
2
|
import { FlickingProps } from "./types";
|
|
3
3
|
|
|
4
4
|
export const FLICKING_PROPS: FlickingProps = {
|
|
@@ -16,5 +16,7 @@ export const FLICKING_PROPS: FlickingProps = {
|
|
|
16
16
|
onRestore: (e: FlickingEvent) => {},
|
|
17
17
|
onSelect: (e: SelectEvent) => {},
|
|
18
18
|
onChange: (e: ChangeEvent) => {},
|
|
19
|
+
onContentLoad: (e: ContentLoadEvent) => {},
|
|
20
|
+
onContentError: (e: ContentErrorEvent) => {},
|
|
19
21
|
onVisibleChange: (e: VisibleChangeEvent) => {},
|
|
20
22
|
};
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
ChangeEvent,
|
|
3
|
+
FlickingEvent,
|
|
4
|
+
SelectEvent,
|
|
5
|
+
Plugin,
|
|
6
|
+
NeedPanelEvent,
|
|
7
|
+
FlickingStatus,
|
|
8
|
+
FlickingMethods,
|
|
9
|
+
VisibleChangeEvent,
|
|
10
|
+
ContentErrorEvent,
|
|
11
|
+
ContentLoadEvent
|
|
12
|
+
} from "@egjs/flicking";
|
|
2
13
|
import NativeFlicking from "@egjs/flicking";
|
|
3
14
|
|
|
4
15
|
export type ParametersType<T, R> = T extends (...params: infer U) => any ? (...params: U) => R : never;
|
|
@@ -19,10 +30,12 @@ export interface FlickingProps {
|
|
|
19
30
|
onMoveStart: (e: FlickingEvent) => any;
|
|
20
31
|
onMove: (e: FlickingEvent) => any;
|
|
21
32
|
onMoveEnd: (e: FlickingEvent) => any;
|
|
33
|
+
onChange: (e: ChangeEvent) => any;
|
|
22
34
|
onRestore: (e: FlickingEvent) => any;
|
|
23
35
|
onSelect: (e: SelectEvent) => any;
|
|
24
|
-
onChange: (e: ChangeEvent) => any;
|
|
25
36
|
onNeedPanel: (e: NeedPanelEvent) => any;
|
|
26
37
|
onVisibleChange: (e: VisibleChangeEvent) => any;
|
|
38
|
+
onContentLoad: (e: ContentLoadEvent) => any;
|
|
39
|
+
onContentError: (e: ContentErrorEvent) => any;
|
|
27
40
|
[key: string]: any;
|
|
28
41
|
}
|