@egjs/react-flicking 4.10.2-beta.0 → 4.10.2-beta.2

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.
@@ -0,0 +1,44 @@
1
+ .flicking-viewport {
2
+ position: relative;
3
+ overflow: hidden;
4
+ }
5
+
6
+ .flicking-viewport.vertical {
7
+ display: -webkit-inline-box;
8
+ display: -ms-inline-flexbox;
9
+ display: inline-flex;
10
+ }
11
+
12
+ .flicking-viewport.vertical > .flicking-camera {
13
+ display: -webkit-inline-box;
14
+ display: -ms-inline-flexbox;
15
+ display: inline-flex;
16
+ -webkit-box-orient: vertical;
17
+ -webkit-box-direction: normal;
18
+ -ms-flex-direction: column;
19
+ flex-direction: column;
20
+ }
21
+
22
+ .flicking-viewport.flicking-hidden > .flicking-camera > * {
23
+ visibility: hidden;
24
+ }
25
+
26
+ .flicking-camera {
27
+ width: 100%;
28
+ height: 100%;
29
+ display: -webkit-box;
30
+ display: -ms-flexbox;
31
+ display: flex;
32
+ position: relative;
33
+ -webkit-box-orient: horizontal;
34
+ -webkit-box-direction: normal;
35
+ -ms-flex-direction: row;
36
+ flex-direction: row;
37
+ z-index: 1;
38
+ will-change: transform;
39
+ }
40
+
41
+ .flicking-camera > * {
42
+ -ms-flex-negative: 0;
43
+ flex-shrink: 0;
44
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["<input css 2>"],"names":[],"mappings":"AAAA,mBAAmB,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,YAAY,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,mBAAmB,mBAAmB,CAAC,aAAa,CAAC,4BAA4B,0BAA0B,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,6CAA6C,0BAA0B,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,4BAA4B,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,sDAAsD,iBAAiB","file":"flicking.css","sourcesContent":[".flicking-viewport{position:relative;overflow:hidden}.flicking-camera{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;z-index:1}.flicking-camera>*{-ms-flex-negative:0;flex-shrink:0}.flicking-viewport.vertical{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flicking-viewport.vertical>.flicking-camera{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flicking-viewport.flicking-hidden .flicking-camera>*{visibility:hidden}"]}
@@ -4,7 +4,7 @@ name: @egjs/react-flicking
4
4
  license: MIT
5
5
  author: NAVER Corp.
6
6
  repository: https://github.com/naver/egjs-flicking/tree/master/packages/react-flicking
7
- version: 4.10.0
7
+ version: 4.10.2-beta.2
8
8
  */
9
9
  import * as React from 'react';
10
10
  import React__default from 'react';
@@ -438,9 +438,9 @@ function (_super) {
438
438
  return NonStrictPanel;
439
439
  }(React.Component);
440
440
 
441
- /*
442
- * Copyright (c) 2015 NAVER Corp.
443
- * egjs projects are licensed under the MIT license
441
+ /*
442
+ * Copyright (c) 2015 NAVER Corp.
443
+ * egjs projects are licensed under the MIT license
444
444
  */
445
445
  var ViewportSlot = React__default.memo(function (props) {
446
446
  return React__default.createElement(React__default.Fragment, null, props.children);
@@ -579,8 +579,10 @@ function (_super) {
579
579
  var vanillaFlicking = this._vanillaFlicking;
580
580
  var props = this.props;
581
581
  var prevChildren = this._prevChildren; // Ignore updates before init, they will be updated after "ready" event's force update
582
+ // Also, prevent updates when another update is already queued.
583
+ // This usually happens when render() called twice without calling componentDidMount, like in the case of React.StrictMode.
582
584
 
583
- if (!vanillaFlicking || !vanillaFlicking.initialized) return;
585
+ if (!vanillaFlicking || !vanillaFlicking.initialized || this._diffResult) return;
584
586
 
585
587
  var nextChildren = this._getChildren(props.children);
586
588
 
@@ -685,16 +687,6 @@ function (_super) {
685
687
  });
686
688
  });
687
689
  flicking.once(EVENTS.READY, function () {
688
- var children = _this._getChildren();
689
-
690
- var diffResult = _this._jsxDiffer.update(children); // children is changed before init
691
-
692
-
693
- if (diffResult.added.length > 0 || diffResult.removed.length > 0) {
694
- _this._panels = _this._createPanelRefs(_this.props, children);
695
- _this._diffResult = diffResult;
696
- }
697
-
698
690
  _this.forceUpdate();
699
691
  });
700
692
  };
@@ -720,7 +712,6 @@ function (_super) {
720
712
  if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;
721
713
  var same = prevChildren.every(function (child, idx) {
722
714
  var nextChild = nextChildren[idx];
723
- console.log(child, nextChild);
724
715
 
725
716
  if (child.key && nextChild.key) {
726
717
  return child.key === nextChild.key;
@@ -821,9 +812,9 @@ function (_super) {
821
812
  return Flicking;
822
813
  }(React.Component);
823
814
 
824
- /*
825
- * Copyright (c) 2015 NAVER Corp.
826
- * egjs projects are licensed under the MIT license
815
+ /*
816
+ * Copyright (c) 2015 NAVER Corp.
817
+ * egjs projects are licensed under the MIT license
827
818
  */
828
819
 
829
820
  export { ViewportSlot, Flicking as default };
@@ -1 +1 @@
1
- {"version":3,"file":"flicking.esm.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n renderOnSameKey: false,\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { flushSync } from \"react-dom\";\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevChildren: React.ReactElement[];\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n const children = this._getChildren();\n this._panels = this._createPanelRefs(props, children);\n this._prevChildren = children;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevChildren = children;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n const prevChildren = this._prevChildren;\n const nextChildren = this._getChildren(children);\n if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const props = this.props;\n const prevChildren = this._prevChildren;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n if (!vanillaFlicking || !vanillaFlicking.initialized) return;\n\n const nextChildren = this._getChildren(props.children);\n if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {\n this._panels = this._createPanelRefs(props, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n this._prevChildren = nextChildren;\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n const children = this._getChildren();\n const diffResult = this._jsxDiffer.update(children);\n\n // children is changed before init\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this._panels = this._createPanelRefs(this.props, children);\n this._diffResult = diffResult;\n }\n\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevChildren: React.ReactElement[], nextChildren: React.ReactElement[]) {\n if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n\n console.log(child, nextChild);\n\n if (child.key && nextChild.key) {\n return child.key === nextChild.key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\nexport * from \"@egjs/flicking\";\nexport * from \"./types\";\n\nexport {\n ViewportSlot\n}\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","renderOnSameKey","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","_getChildren","_createPanelRefs","_prevChildren","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","restProps","prevChildren","nextChildren","_hasSameChildren","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","added","length","removed","list","prevList","addPlugins","index","removePlugins","same","every","child","idx","nextChild","console","log","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
1
+ {"version":3,"file":"flicking.esm.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n renderOnSameKey: false,\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevChildren: React.ReactElement[];\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n const children = this._getChildren();\n this._panels = this._createPanelRefs(props, children);\n this._prevChildren = children;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevChildren = children;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n const prevChildren = this._prevChildren;\n const nextChildren = this._getChildren(children);\n if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const props = this.props;\n const prevChildren = this._prevChildren;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n // Also, prevent updates when another update is already queued.\n // This usually happens when render() called twice without calling componentDidMount, like in the case of React.StrictMode.\n if (!vanillaFlicking || !vanillaFlicking.initialized || this._diffResult) return;\n\n const nextChildren = this._getChildren(props.children);\n if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {\n this._panels = this._createPanelRefs(props, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n this._prevChildren = nextChildren;\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevChildren: React.ReactElement[], nextChildren: React.ReactElement[]) {\n if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n\n if (child.key && nextChild.key) {\n return child.key === nextChild.key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\nexport * from \"@egjs/flicking\";\nexport * from \"./types\";\n\nexport {\n ViewportSlot\n}\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","renderOnSameKey","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","_getChildren","_createPanelRefs","_prevChildren","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","restProps","prevChildren","nextChildren","_hasSameChildren","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","list","added","removed","prevList","addPlugins","index","removePlugins","length","same","every","child","idx","nextChild","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ .flicking-viewport{position:relative;overflow:hidden}.flicking-viewport.vertical{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flicking-viewport.vertical>.flicking-camera{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flicking-viewport.flicking-hidden>.flicking-camera>*{visibility:hidden}.flicking-camera{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;z-index:1;will-change:transform}.flicking-camera>*{-ms-flex-negative:0;flex-shrink:0}
@@ -4,7 +4,7 @@ name: @egjs/react-flicking
4
4
  license: MIT
5
5
  author: NAVER Corp.
6
6
  repository: https://github.com/naver/egjs-flicking/tree/master/packages/react-flicking
7
- version: 4.10.0
7
+ version: 4.10.2-beta.2
8
8
  */
9
9
  (function (global, factory) {
10
10
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('@egjs/component'), require('@egjs/list-differ'), require('@egjs/flicking'), require('react-dom')) :
@@ -436,9 +436,9 @@ version: 4.10.0
436
436
  return NonStrictPanel;
437
437
  }(React.Component);
438
438
 
439
- /*
440
- * Copyright (c) 2015 NAVER Corp.
441
- * egjs projects are licensed under the MIT license
439
+ /*
440
+ * Copyright (c) 2015 NAVER Corp.
441
+ * egjs projects are licensed under the MIT license
442
442
  */
443
443
  var ViewportSlot = React.memo(function (props) {
444
444
  return React.createElement(React.Fragment, null, props.children);
@@ -577,8 +577,10 @@ version: 4.10.0
577
577
  var vanillaFlicking = this._vanillaFlicking;
578
578
  var props = this.props;
579
579
  var prevChildren = this._prevChildren; // Ignore updates before init, they will be updated after "ready" event's force update
580
+ // Also, prevent updates when another update is already queued.
581
+ // This usually happens when render() called twice without calling componentDidMount, like in the case of React.StrictMode.
580
582
 
581
- if (!vanillaFlicking || !vanillaFlicking.initialized) return;
583
+ if (!vanillaFlicking || !vanillaFlicking.initialized || this._diffResult) return;
582
584
 
583
585
  var nextChildren = this._getChildren(props.children);
584
586
 
@@ -683,16 +685,6 @@ version: 4.10.0
683
685
  });
684
686
  });
685
687
  flicking.once(VanillaFlicking.EVENTS.READY, function () {
686
- var children = _this._getChildren();
687
-
688
- var diffResult = _this._jsxDiffer.update(children); // children is changed before init
689
-
690
-
691
- if (diffResult.added.length > 0 || diffResult.removed.length > 0) {
692
- _this._panels = _this._createPanelRefs(_this.props, children);
693
- _this._diffResult = diffResult;
694
- }
695
-
696
688
  _this.forceUpdate();
697
689
  });
698
690
  };
@@ -718,7 +710,6 @@ version: 4.10.0
718
710
  if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;
719
711
  var same = prevChildren.every(function (child, idx) {
720
712
  var nextChild = nextChildren[idx];
721
- console.log(child, nextChild);
722
713
 
723
714
  if (child.key && nextChild.key) {
724
715
  return child.key === nextChild.key;
@@ -819,9 +810,9 @@ version: 4.10.0
819
810
  return Flicking;
820
811
  }(React.Component);
821
812
 
822
- /*
823
- * Copyright (c) 2015 NAVER Corp.
824
- * egjs projects are licensed under the MIT license
813
+ /*
814
+ * Copyright (c) 2015 NAVER Corp.
815
+ * egjs projects are licensed under the MIT license
825
816
  */
826
817
  Flicking.ViewportSlot = ViewportSlot;
827
818
 
@@ -1 +1 @@
1
- {"version":3,"file":"flicking.umd.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.umd.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n renderOnSameKey: false,\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { flushSync } from \"react-dom\";\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevChildren: React.ReactElement[];\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n const children = this._getChildren();\n this._panels = this._createPanelRefs(props, children);\n this._prevChildren = children;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevChildren = children;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n const prevChildren = this._prevChildren;\n const nextChildren = this._getChildren(children);\n if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const props = this.props;\n const prevChildren = this._prevChildren;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n if (!vanillaFlicking || !vanillaFlicking.initialized) return;\n\n const nextChildren = this._getChildren(props.children);\n if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {\n this._panels = this._createPanelRefs(props, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n this._prevChildren = nextChildren;\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n const children = this._getChildren();\n const diffResult = this._jsxDiffer.update(children);\n\n // children is changed before init\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this._panels = this._createPanelRefs(this.props, children);\n this._diffResult = diffResult;\n }\n\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevChildren: React.ReactElement[], nextChildren: React.ReactElement[]) {\n if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n\n console.log(child, nextChild);\n\n if (child.key && nextChild.key) {\n return child.key === nextChild.key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\n(Flicking as any).ViewportSlot = ViewportSlot;\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","renderOnSameKey","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","_getChildren","_createPanelRefs","_prevChildren","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","restProps","prevChildren","nextChildren","_hasSameChildren","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","added","length","removed","list","prevList","addPlugins","index","removePlugins","same","every","child","idx","nextChild","console","log","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
1
+ {"version":3,"file":"flicking.umd.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/NonStrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/Flicking.tsx","../src/react-flicking/index.umd.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n SelectEvent,\n NeedPanelEvent,\n VisibleChangeEvent,\n HoldStartEvent,\n HoldEndEvent,\n MoveStartEvent,\n MoveEvent,\n MoveEndEvent,\n WillChangeEvent,\n ChangedEvent,\n WillRestoreEvent,\n RestoredEvent,\n ReadyEvent,\n BeforeResizeEvent,\n AfterResizeEvent,\n ReachEdgeEvent,\n PanelChangeEvent\n} from \"@egjs/flicking\";\n\nimport { FlickingProps } from \"./types\";\n\nexport const DEFAULT_PROPS: FlickingProps = {\n viewportTag: \"div\",\n cameraTag: \"div\",\n cameraClass: \"\",\n renderOnSameKey: false,\n plugins: [],\n useFindDOMNode: false,\n hideBeforeInit: false,\n onReady: (e: ReadyEvent) => {},\n onBeforeResize: (e: BeforeResizeEvent) => {},\n onAfterResize: (e: AfterResizeEvent) => {},\n onHoldStart: (e: HoldStartEvent) => {},\n onHoldEnd: (e: HoldEndEvent) => {},\n onMoveStart: (e: MoveStartEvent) => {},\n onMove: (e: MoveEvent) => {},\n onMoveEnd: (e: MoveEndEvent) => {},\n onWillChange: (e: WillChangeEvent) => {},\n onChanged: (e: ChangedEvent) => {},\n onWillRestore: (e: WillRestoreEvent) => {},\n onRestored: (e: RestoredEvent) => {},\n onSelect: (e: SelectEvent) => {},\n onNeedPanel: (e: NeedPanelEvent) => {},\n onVisibleChange: (e: VisibleChangeEvent) => {},\n onReachEdge: (e: ReachEdgeEvent) => {},\n onPanelChange: (e: PanelChangeEvent) => {}\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalRenderer, PanelOptions, RendererOptions, getFlickingAttached } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nexport interface ReactRendererOptions extends RendererOptions {\n reactFlicking: ReactFlicking;\n}\n\nclass ReactRenderer extends ExternalRenderer {\n // Internal States\n protected _reactFlicking: ReactFlicking;\n\n public constructor(options: ReactRendererOptions) {\n super(options);\n\n this._reactFlicking = options.reactFlicking;\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const strategy = this._strategy;\n\n this._rendering = true;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve()\n });\n reactFlicking.forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const reactFlicking = this._reactFlicking;\n\n this._rendering = true;\n await super.forceRenderAllPanels();\n\n return new Promise<void>(resolve => {\n reactFlicking.renderEmitter.once(\"render\", () => {\n this._rendering = false;\n resolve();\n });\n reactFlicking.forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const reactFlicking = this._reactFlicking;\n const reactPanels = reactFlicking.reactPanels;\n\n this._panels = this._strategy.collectPanels(flicking, reactPanels);\n }\n\n protected _createPanel(externalComponent: StrictPanel | NonStrictPanel | HTMLDivElement, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default ReactRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\n\nclass StrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n private _elRef: React.RefObject<HTMLElement> = React.createRef();\n\n public get nativeElement() { return this._elRef.current!; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this._getElement();\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n\n private _getElement() {\n return React.cloneElement(React.Children.only(this.props.children) as React.ReactElement, {\n ref: this._elRef\n });\n }\n}\n\nexport default StrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport { findDOMNode } from \"react-dom\";\n\nclass NonStrictPanel extends React.Component<{ children?: React.ReactElement }> {\n private _hide: boolean = false;\n\n public get nativeElement() { return findDOMNode(this) as HTMLElement; }\n public get rendered() { return !this._hide; }\n\n public render() {\n return this._hide\n ? <></>\n : this.props.children;\n }\n\n public show() {\n this._hide = false;\n }\n\n public hide() {\n this._hide = true;\n }\n}\n\nexport default NonStrictPanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport React, { ReactNode } from \"react\";\n\nconst ViewportSlot = React.memo((props: { children?: ReactNode }) => <>{props.children}</>);\n\nexport default ViewportSlot;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel | NonStrictPanel;\n\n public get element() { return this._el.nativeElement; }\n public get rendered() { return this._el.rendered; }\n\n public constructor(el: StrictPanel | NonStrictPanel) {\n this._el = el;\n }\n\n public show() {\n this._el.show();\n }\n\n public hide() {\n this._el.hide();\n }\n}\n\nexport default ReactElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport * as React from \"react\";\nimport Component from \"@egjs/component\";\nimport ListDiffer, { diff, DiffResult } from \"@egjs/list-differ\";\nimport VanillaFlicking, {\n FlickingOptions,\n VirtualRenderingStrategy,\n EVENTS,\n withFlickingMethods,\n sync,\n getRenderingPanels,\n getDefaultCameraTransform,\n Plugin,\n range,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport { FlickingProps } from \"./types\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ViewportSlot from \"./ViewportSlot\";\nimport ReactElementProvider from \"./ReactElementProvider\";\n\nclass Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {\n public static defaultProps: FlickingProps = DEFAULT_PROPS;\n\n @withFlickingMethods private _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n private _pluginsDiffer: ListDiffer<any>;\n private _jsxDiffer: ListDiffer<React.ReactElement>;\n private _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n private _prevChildren: React.ReactElement[];\n\n public get reactPanels() { return this._panels.map(panel => panel.current!); }\n public get renderEmitter() { return this._renderEmitter; }\n\n public constructor(props: Partial<FlickingProps & FlickingOptions>) {\n super(props);\n\n const children = this._getChildren();\n this._panels = this._createPanelRefs(props, children);\n this._prevChildren = children;\n }\n\n public componentDidMount() {\n const props = this.props as Required<FlickingProps & FlickingOptions>;\n const rendererOptions: ReactRendererOptions = {\n reactFlicking: this,\n align: props.align,\n strategy: props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(\n this._viewportElement,\n {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\n },\n );\n\n this._vanillaFlicking = flicking;\n\n const children = this._getChildren();\n this._jsxDiffer = new ListDiffer(children, panel => panel.key!);\n this._pluginsDiffer = new ListDiffer<any>();\n this._prevChildren = children;\n\n this._bindEvents();\n this._checkPlugins();\n\n if (props.status) {\n flicking.setStatus(props.status);\n }\n }\n\n public componentWillUnmount() {\n this._vanillaFlicking?.destroy();\n }\n\n public shouldComponentUpdate(nextProps: Readonly<Partial<FlickingProps & FlickingOptions>>): boolean {\n const vanillaFlicking = this._vanillaFlicking;\n const prevProps = this.props;\n\n if (!vanillaFlicking || !vanillaFlicking.initialized) return false;\n\n const { children, ...restProps } = nextProps;\n\n for (const key in restProps) {\n if (prevProps[key] !== nextProps[key]) {\n return true;\n }\n }\n\n const prevChildren = this._prevChildren;\n const nextChildren = this._getChildren(children);\n if (nextProps.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) return true;\n\n return false;\n }\n\n public beforeRender() {\n const vanillaFlicking = this._vanillaFlicking;\n const props = this.props;\n const prevChildren = this._prevChildren;\n\n // Ignore updates before init, they will be updated after \"ready\" event's force update\n // Also, prevent updates when another update is already queued.\n // This usually happens when render() called twice without calling componentDidMount, like in the case of React.StrictMode.\n if (!vanillaFlicking || !vanillaFlicking.initialized || this._diffResult) return;\n\n const nextChildren = this._getChildren(props.children);\n if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {\n this._panels = this._createPanelRefs(props, nextChildren);\n this._diffResult = this._jsxDiffer.update(nextChildren);\n this._prevChildren = nextChildren;\n }\n }\n\n public componentDidUpdate() {\n const flicking = this._vanillaFlicking;\n const renderEmitter = this._renderEmitter;\n const diffResult = this._diffResult;\n\n this._checkPlugins();\n renderEmitter.trigger(\"render\");\n flicking.camera.updateOffset();\n\n if (!diffResult || !flicking.initialized) return;\n\n sync(flicking, diffResult, this.reactPanels);\n\n this._diffResult = null;\n }\n\n public render() {\n const props = this.props;\n const Viewport = props.viewportTag as any;\n const Camera = props.cameraTag as any;\n const attributes: { [key: string]: any } = {};\n const flicking = this._vanillaFlicking;\n\n this.beforeRender();\n\n for (const name in props) {\n if (!(name in DEFAULT_PROPS) && !(name in VanillaFlicking.prototype)) {\n attributes[name] = props[name];\n }\n }\n\n const initialized = flicking && flicking.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking\n ? flicking.horizontal\n : props.horizontal ?? true;\n\n if (!isHorizontal) {\n viewportClasses.push(\"vertical\");\n }\n if (props.hideBeforeInit && !initialized) {\n viewportClasses.push(\"flicking-hidden\");\n }\n if (attributes.className) {\n viewportClasses.push(attributes.className);\n }\n if (props.cameraClass) {\n cameraClasses.push(props.cameraClass);\n }\n\n const cameraProps = !initialized && props.firstPanelSize\n ? { style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }}\n : {};\n\n const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0\n ? this._getVirtualPanels()\n : this._getPanels();\n\n return (\n <Viewport {...attributes} className={viewportClasses.join(\" \")} ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}>\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n { panels }\n </Camera>\n { this._getViewportSlot() }\n </Viewport>\n );\n }\n\n private _createPanelRefs(props: this[\"props\"], children: Array<React.ReactElement<any>>): React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] {\n const panelsPerView = props.panelsPerView ?? -1;\n\n return panelsPerView > 0 && !!props.virtual\n ? range(panelsPerView + 1).map(() => React.createRef())\n : children.map(() => React.createRef());\n }\n\n private _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n flicking.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n });\n\n flicking.once(EVENTS.READY, () => {\n this.forceUpdate();\n });\n }\n\n private _checkPlugins() {\n const flicking = this._vanillaFlicking;\n const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;\n\n flicking.addPlugins(...added.map(index => list[index]));\n flicking.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private _hasSameChildren(prevChildren: React.ReactElement[], nextChildren: React.ReactElement[]) {\n if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;\n\n const same = prevChildren.every((child, idx) => {\n const nextChild = nextChildren[idx];\n\n if (child.key && nextChild.key) {\n return child.key === nextChild.key;\n } else {\n return child === nextChild;\n }\n });\n\n return same;\n }\n\n private _getChildren(children: React.ReactNode = this.props.children) {\n return (React.Children.toArray(children) as Array<React.ReactElement<any>>)\n .filter(child => child.type !== ViewportSlot)\n .reduce((all, child) => {\n return [...all, ...this._unpackFragment(child)];\n }, []) as Array<React.ReactElement<any>>;\n }\n\n private _getViewportSlot() {\n return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)\n .filter(child => child.type === ViewportSlot);\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children)\n .reduce((allChilds: React.ReactElement[], fragChild: React.ReactElement) => [...allChilds, ...this._unpackFragment(fragChild)], [] as React.ReactElement[])\n : [child];\n }\n\n private _getVirtualPanels() {\n const {\n panelClass = \"flicking-panel\"\n } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => {\n return <div\n key={idx}\n data-element-index={idx}\n ref={this._panels[idx] as React.RefObject<HTMLDivElement>}\n className={panelClass}\n style={size} />\n });\n }\n\n private _getPanels() {\n const origChildren = this._getChildren();\n const vanillaFlicking = this._vanillaFlicking;\n const diffResult = this._diffResult;\n\n const children: React.ReactElement[] = vanillaFlicking && vanillaFlicking.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return this.props.useFindDOMNode\n ? children.map((child, idx) => <NonStrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</NonStrictPanel>)\n : children.map((child, idx) => <StrictPanel key={child.key!} ref={this._panels[idx] as any}>{child}</StrictPanel>)\n }\n\n private _isFragment(child: React.ReactElement) {\n if (child.type) {\n return child.type === React.Fragment;\n }\n\n return (child as any) === React.Fragment;\n }\n}\n\ninterface Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>, VanillaFlicking { }\nexport default Flicking;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport ViewportSlot from \"./ViewportSlot\";\n\n(Flicking as any).ViewportSlot = ViewportSlot;\nexport default Flicking;\n"],"names":["DEFAULT_PROPS","viewportTag","cameraTag","cameraClass","renderOnSameKey","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","__extends","options","_super","_this","_reactFlicking","reactFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","forceUpdate","forceRenderAllPanels","_a","reactPanels","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","React","createRef","Object","_elRef","current","_hide","_getElement","cloneElement","Children","only","props","children","ref","Component","findDOMNode","ViewportSlot","memo","el","_el","nativeElement","rendered","show","hide","_getChildren","_createPanelRefs","_prevChildren","map","panel","_renderEmitter","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","ReactElementProvider","VanillaFlicking","_viewportElement","externalRenderer","ReactRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","destroy","nextProps","vanillaFlicking","prevProps","initialized","restProps","prevChildren","nextChildren","_hasSameChildren","_diffResult","update","diffResult","trigger","camera","updateOffset","sync","Viewport","Camera","attributes","beforeRender","name","prototype","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","charAt","toUpperCase","slice","on","currentTarget","evtHandler","READY","list","added","removed","prevList","addPlugins","index","removePlugins","length","same","every","child","idx","nextChild","toArray","filter","type","reduce","all","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","NonStrictPanel","StrictPanel","Fragment","Flicking","__decorate","withFlickingMethods"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@egjs/react-flicking",
3
- "version": "4.10.2-beta.0",
3
+ "version": "4.10.2-beta.2",
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",
@@ -29,7 +29,7 @@
29
29
  "@types/jest": "24.0.12",
30
30
  "@types/node": "12.0.0",
31
31
  "@types/react": "^18.0.5",
32
- "@types/react-dom": "18.0.0",
32
+ "@types/react-dom": "16.8.4",
33
33
  "@types/react-is": "^17.0.0",
34
34
  "cpx": "^1.5.0",
35
35
  "highlight.js": "^9.15.6",
@@ -3,7 +3,6 @@
3
3
  * egjs projects are licensed under the MIT license
4
4
  */
5
5
  import * as React from "react";
6
- import { flushSync } from "react-dom";
7
6
  import Component from "@egjs/component";
8
7
  import ListDiffer, { diff, DiffResult } from "@egjs/list-differ";
9
8
  import VanillaFlicking, {
@@ -116,7 +115,9 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
116
115
  const prevChildren = this._prevChildren;
117
116
 
118
117
  // Ignore updates before init, they will be updated after "ready" event's force update
119
- if (!vanillaFlicking || !vanillaFlicking.initialized) return;
118
+ // Also, prevent updates when another update is already queued.
119
+ // This usually happens when render() called twice without calling componentDidMount, like in the case of React.StrictMode.
120
+ if (!vanillaFlicking || !vanillaFlicking.initialized || this._diffResult) return;
120
121
 
121
122
  const nextChildren = this._getChildren(props.children);
122
123
  if (props.renderOnSameKey || !this._hasSameChildren(prevChildren, nextChildren)) {
@@ -223,16 +224,7 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
223
224
  });
224
225
 
225
226
  flicking.once(EVENTS.READY, () => {
226
- const children = this._getChildren();
227
- const diffResult = this._jsxDiffer.update(children);
228
-
229
- // children is changed before init
230
- if (diffResult.added.length > 0 || diffResult.removed.length > 0) {
231
- this._panels = this._createPanelRefs(this.props, children);
232
- this._diffResult = diffResult;
233
- }
234
-
235
- this.forceUpdate();
227
+ this.forceUpdate();
236
228
  });
237
229
  }
238
230
 
@@ -250,8 +242,6 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
250
242
  const same = prevChildren.every((child, idx) => {
251
243
  const nextChild = nextChildren[idx];
252
244
 
253
- console.log(child, nextChild);
254
-
255
245
  if (child.key && nextChild.key) {
256
246
  return child.key === nextChild.key;
257
247
  } else {