@egjs/react-flicking 4.12.0-beta.0 → 4.12.0-beta.11

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.
@@ -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 { 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 this._afterRender();\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 public destroy() {\n super.destroy();\n this._reactFlicking.renderEmitter.off(\"render\");\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 // Omit 'virtual', as it can't have any setter\n const { virtual, ...props } = this.props;\n for (const key in props) {\n if (key in flicking && flicking[key] !== props[key]) {\n flicking[key] = props[key];\n }\n }\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","ReactRenderer","_super","__extends","options","_this","call","_reactFlicking","reactFlicking","__proto","prototype","render","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","_afterRender","forceUpdate","forceRenderAllPanels","_a","sent","destroy","off","_collectPanels","reactPanels","_panels","collectPanels","_createPanel","externalComponent","createPanel","ExternalRenderer","StrictPanel","apply","arguments","_hide","_elRef","React","createRef","Object","defineProperty","current","get","createElement","Fragment","_getElement","show","hide","cloneElement","Children","only","props","children","ref","Component","NonStrictPanel","findDOMNode","ViewportSlot","memo","ReactElementProvider","el","_el","nativeElement","rendered","Flicking","_renderEmitter","_getChildren","_createPanelRefs","_prevChildren","map","panel","componentDidMount","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","VanillaFlicking","_viewportElement","__assign","externalRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","componentWillUnmount","shouldComponentUpdate","nextProps","vanillaFlicking","prevProps","initialized","restProps","__rest","prevChildren","nextChildren","_hasSameChildren","beforeRender","_diffResult","update","componentDidUpdate","diffResult","trigger","camera","updateOffset","sync","Viewport","Camera","attributes","name","viewportClasses","cameraClasses","isHorizontal","horizontal","push","className","cameraProps","firstPanelSize","style","transform","getDefaultCameraTransform","panels","_b","_getVirtualPanels","_getPanels","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","propName","concat","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","__spreadArray","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","defaultProps","__decorate","withFlickingMethods"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BO,IAAMA,aAAa,GAAkB;IAC1CC,EAAAA,WAAW,EAAE,KAAK;IAClBC,EAAAA,SAAS,EAAE,KAAK;IAChBC,EAAAA,WAAW,EAAE,EAAE;IACfC,EAAAA,eAAe,EAAE,KAAK;IACtBC,EAAAA,OAAO,EAAE,EAAE;IACXC,EAAAA,cAAc,EAAE,KAAK;IACrBC,EAAAA,cAAc,EAAE,KAAK;IACrBC,EAAAA,OAAO,EAAE,UAACC,CAAa,EAAA,EAAO;IAC9BC,EAAAA,cAAc,EAAE,UAACD,CAAoB,EAAA,EAAO;IAC5CE,EAAAA,aAAa,EAAE,UAACF,CAAmB,EAAA,EAAO;IAC1CG,EAAAA,WAAW,EAAE,UAACH,CAAiB,EAAA,EAAO;IACtCI,EAAAA,SAAS,EAAE,UAACJ,CAAe,EAAA,EAAO;IAClCK,EAAAA,WAAW,EAAE,UAACL,CAAiB,EAAA,EAAO;IACtCM,EAAAA,MAAM,EAAE,UAACN,CAAY,EAAA,EAAO;IAC5BO,EAAAA,SAAS,EAAE,UAACP,CAAe,EAAA,EAAO;IAClCQ,EAAAA,YAAY,EAAE,UAACR,CAAkB,EAAA,EAAO;IACxCS,EAAAA,SAAS,EAAE,UAACT,CAAe,EAAA,EAAO;IAClCU,EAAAA,aAAa,EAAE,UAACV,CAAmB,EAAA,EAAO;IAC1CW,EAAAA,UAAU,EAAE,UAACX,CAAgB,EAAA,EAAO;IACpCY,EAAAA,QAAQ,EAAE,UAACZ,CAAc,EAAA,EAAO;IAChCa,EAAAA,WAAW,EAAE,UAACb,CAAiB,EAAA,EAAO;IACtCc,EAAAA,eAAe,EAAE,UAACd,CAAqB,EAAA,EAAO;IAC9Ce,EAAAA,WAAW,EAAE,UAACf,CAAiB,EAAA,EAAO;IACtCgB,EAAAA,aAAa,EAAE,UAAChB,CAAmB,EAAA,EAAM;KAC1C;;ICrCD,IAAAiB,aAAA,gBAAA,UAAAC,MAAA,EAAA;IAA4BC,EAAAA,SAAgB,CAAAF,aAAA,EAAAC,MAAA,CAAA,CAAA;MAI1C,SAAAD,aAAAA,CAAmBG,OAA6B,EAAA;QAAhD,IACEC,KAAA,GAAAH,MAAA,CAAAI,IAAA,CAAA,IAAA,EAAMF,OAAO,CAAC,IAGf,IAAA,CAAA;IADCC,IAAAA,KAAI,CAACE,cAAc,GAAGH,OAAO,CAACI,aAAa,CAAA;;IAC7C,GAAA;IAEA;IAAA,EAAA,IAAAC,OAAA,GAAAR,aAAA,CAAAS,SAAA,CAAA;MACaD,OAAA,CAAAE,MAAM,GAAnB,YAAA;;;;;IACQC,QAAAA,QAAQ,GAAGC,mCAAmB,CAAC,IAAI,CAACC,SAAS,CAAC,CAAA;YAC9CN,aAAa,GAAG,IAAI,CAACD,cAAc,CAAA;YACnCQ,QAAQ,GAAG,IAAI,CAACC,SAAS,CAAA;YAE/B,IAAI,CAACC,UAAU,GAAG,IAAI,CAAA;IAEtBF,QAAAA,QAAQ,CAACG,qBAAqB,CAACN,QAAQ,CAAC,CAAA;IACxCG,QAAAA,QAAQ,CAACI,YAAY,CAACP,QAAQ,CAAC,CAAA;YAE/B,OAAA,CAAA,CAAA,aAAO,IAAIQ,OAAO,CAAO,UAAAC,OAAO,EAAA;IAC9Bb,UAAAA,aAAa,CAACc,aAAa,CAACC,IAAI,CAAC,QAAQ,EAAE,YAAA;gBACzClB,KAAI,CAACY,UAAU,GAAG,KAAK,CAAA;gBACvBZ,KAAI,CAACmB,YAAY,EAAE,CAAA;IACnBH,YAAAA,OAAO,EAAE,CAAA;IACX,WAAC,CAAC,CAAA;cACFb,aAAa,CAACiB,WAAW,EAAE,CAAA;IAC7B,SAAC,CAAC,CAAC,CAAA;;;OACJ,CAAA;MAEYhB,OAAA,CAAAiB,oBAAoB,GAAjC,YAAA;;;;;;;gBACQlB,aAAa,GAAG,IAAI,CAACD,cAAc,CAAA;gBAEzC,IAAI,CAACU,UAAU,GAAG,IAAI,CAAA;IACtB,YAAA,OAAM,CAAA,CAAA,YAAAf,MAAA,CAAAQ,SAAA,CAAMgB,oBAAoB,CAAApB,IAAA,CAAA,IAAA,CAAE,CAAA,CAAA;;gBAAlCqB,EAAA,CAAAC,IAAA,EAAkC,CAAA;gBAElC,OAAA,CAAA,CAAA,aAAO,IAAIR,OAAO,CAAO,UAAAC,OAAO,EAAA;IAC9Bb,cAAAA,aAAa,CAACc,aAAa,CAACC,IAAI,CAAC,QAAQ,EAAE,YAAA;oBACzClB,KAAI,CAACY,UAAU,GAAG,KAAK,CAAA;IACvBI,gBAAAA,OAAO,EAAE,CAAA;IACX,eAAC,CAAC,CAAA;kBACFb,aAAa,CAACiB,WAAW,EAAE,CAAA;IAC7B,aAAC,CAAC,CAAC,CAAA;IAAA,SAAA;;;OACJ,CAAA;MAEMhB,OAAA,CAAAoB,OAAO,GAAd,YAAA;QACE3B,MAAM,CAAAQ,SAAA,CAAAmB,OAAO,WAAE,CAAA;QACf,IAAI,CAACtB,cAAc,CAACe,aAAa,CAACQ,GAAG,CAAC,QAAQ,CAAC,CAAA;OAChD,CAAA;MAESrB,OAAA,CAAAsB,cAAc,GAAxB,YAAA;IACE,IAAA,IAAMnB,QAAQ,GAAGC,mCAAmB,CAAC,IAAI,CAACC,SAAS,CAAC,CAAA;IACpD,IAAA,IAAMN,aAAa,GAAG,IAAI,CAACD,cAAc,CAAA;IACzC,IAAA,IAAMyB,WAAW,GAAGxB,aAAa,CAACwB,WAAW,CAAA;IAE7C,IAAA,IAAI,CAACC,OAAO,GAAG,IAAI,CAACjB,SAAS,CAACkB,aAAa,CAACtB,QAAQ,EAAEoB,WAAW,CAAC,CAAA;OACnE,CAAA;IAESvB,EAAAA,OAAA,CAAA0B,YAAY,GAAtB,UAAuBC,iBAAgE,EAAEhC,OAAqB,EAAA;QAC5G,OAAO,IAAI,CAACY,SAAS,CAACqB,WAAW,CAACD,iBAAiB,EAAEhC,OAAO,CAAC,CAAA;OAC9D,CAAA;IACH,EAAA,OAACH,aAAA,CAAA;IAAD,CA9DA,CAA4BqC,gCAAgB,CA8D3C;;ICtED,IAAAC,WAAA,gBAAA,UAAArC,MAAA,EAAA;IAA0BC,EAAAA,SAAkD,CAAAoC,WAAA,EAAArC,MAAA,CAAA,CAAA;MAA5E,SAAAqC,WAAAA,GAAA;IAAA,IAAA,IA2BClC,KAAA,GAAAH,MAAA,KAAA,IAAA,IAAAA,MAAA,CAAAsC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,IAAA,IAAA,CAAA;QA1BSpC,KAAK,CAAAqC,KAAA,GAAY,KAAK,CAAA;IAEtBrC,IAAAA,KAAA,CAAAsC,MAAM,GAAiCC,KAAK,CAACC,SAAS,EAAE,CAAA;;IAwBlE,GAAA;IAAC,EAAA,IAAApC,OAAA,GAAA8B,WAAA,CAAA7B,SAAA,CAAA;IAtBCoC,EAAAA,MAAA,CAAAC,cAAA,CAAAtC,OAAA,EAAwB,eAAA,EAAA;aAAxB,YAA6B;IAAA,MAAA,OAAO,IAAI,CAACkC,MAAM,CAACK,OAAQ,CAAA;SAAG;;;IAAA,GAAA,CAAA,CAAA;IAC3DF,EAAAA,MAAA,CAAAC,cAAA,CAAAtC,OAAA,EAAmB,UAAA,EAAA;QAAnBwC,GAAA,EAAA,YAAA;UAAwB,OAAO,CAAC,IAAI,CAACP,KAAK,CAAA;SAAG;;;IAAA,GAAA,CAAA,CAAA;MAEtCjC,OAAA,CAAAE,MAAM,GAAb,YAAA;IACE,IAAA,OAAO,IAAI,CAAC+B,KAAK,GACbE,KAAK,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,EAAA,IAAA,CAAA,GACL,IAAI,CAACC,WAAW,EAAE,CAAA;OACvB,CAAA;MAEM3C,OAAA,CAAA4C,IAAI,GAAX,YAAA;QACE,IAAI,CAACX,KAAK,GAAG,KAAK,CAAA;OACnB,CAAA;MAEMjC,OAAA,CAAA6C,IAAI,GAAX,YAAA;QACE,IAAI,CAACZ,KAAK,GAAG,IAAI,CAAA;OAClB,CAAA;MAEOjC,OAAA,CAAA2C,WAAW,GAAnB,YAAA;IACE,IAAA,OAAOR,KAAK,CAACW,YAAY,CAACX,KAAK,CAACY,QAAQ,CAACC,IAAI,CAAC,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAuB,EAAE;UACxFC,GAAG,EAAE,IAAI,CAACjB,MAAAA;IACX,KAAA,CAAC,CAAA;OACH,CAAA;IACH,EAAA,OAACJ,WAAA,CAAA;IAAD,CAAC,CA3ByBK,KAAK,CAACiB,SAAS,CA2BxC;;IC1BD,IAAAC,cAAA,gBAAA,UAAA5D,MAAA,EAAA;IAA6BC,EAAAA,SAAkD,CAAA2D,cAAA,EAAA5D,MAAA,CAAA,CAAA;MAA/E,SAAA4D,cAAAA,GAAA;IAAA,IAAA,IAmBCzD,KAAA,GAAAH,MAAA,KAAA,IAAA,IAAAA,MAAA,CAAAsC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,IAAA,IAAA,CAAA;QAlBSpC,KAAK,CAAAqC,KAAA,GAAY,KAAK,CAAA;;IAkBhC,GAAA;IAAC,EAAA,IAAAjC,OAAA,GAAAqD,cAAA,CAAApD,SAAA,CAAA;IAhBCoC,EAAAA,MAAA,CAAAC,cAAA,CAAAtC,OAAA,EAAwB,eAAA,EAAA;QAAxBwC,GAAA,EAAA,YAAA;UAA6B,OAAOc,oBAAW,CAAC,IAAI,CAAgB,CAAA;SAAG;;;IAAA,GAAA,CAAA,CAAA;IACvEjB,EAAAA,MAAA,CAAAC,cAAA,CAAAtC,OAAA,EAAmB,UAAA,EAAA;QAAnBwC,GAAA,EAAA,YAAA;UAAwB,OAAO,CAAC,IAAI,CAACP,KAAK,CAAA;SAAG;;;IAAA,GAAA,CAAA,CAAA;MAEtCjC,OAAA,CAAAE,MAAM,GAAb,YAAA;IACE,IAAA,OAAO,IAAI,CAAC+B,KAAK,GACbE,KAAK,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,EAAA,IAAA,CAAA,GACL,IAAI,CAACO,KAAK,CAACC,QAAQ,CAAA;OACxB,CAAA;MAEMlD,OAAA,CAAA4C,IAAI,GAAX,YAAA;QACE,IAAI,CAACX,KAAK,GAAG,KAAK,CAAA;OACnB,CAAA;MAEMjC,OAAA,CAAA6C,IAAI,GAAX,YAAA;QACE,IAAI,CAACZ,KAAK,GAAG,IAAI,CAAA;OAClB,CAAA;IACH,EAAA,OAACoB,cAAA,CAAA;IAAD,CAAC,CAnB4BlB,KAAK,CAACiB,SAAS,CAmB3C;;IC1BD;;;IAGG;IAGH,IAAMG,YAAY,GAAGpB,KAAK,CAACqB,IAAI,CAAC,UAACP,KAA+B,EAAA;IAAK,EAAA,OAAAd,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,EAAA,IAAA,EAAGO,KAAK,CAACC,QAAQ,CAAI,CAAA;IAArB,CAAqB,CAAC;;ICE3F,IAAAO,oBAAA,gBAAA,YAAA;MAME,SAAAA,oBAAAA,CAAmBC,EAAgC,EAAA;QACjD,IAAI,CAACC,GAAG,GAAGD,EAAE,CAAA;IACf,GAAA;IAAC,EAAA,IAAA1D,OAAA,GAAAyD,oBAAA,CAAAxD,SAAA,CAAA;IALDoC,EAAAA,MAAA,CAAAC,cAAA,CAAAtC,OAAA,EAAkB,SAAA,EAAA;aAAlB,YAAuB;IAAA,MAAA,OAAO,IAAI,CAAC2D,GAAG,CAACC,aAAa,CAAA;SAAG;;;IAAA,GAAA,CAAA,CAAA;IACvDvB,EAAAA,MAAA,CAAAC,cAAA,CAAAtC,OAAA,EAAmB,UAAA,EAAA;aAAnB,YAAwB;IAAA,MAAA,OAAO,IAAI,CAAC2D,GAAG,CAACE,QAAQ,CAAA;SAAG;;;IAAA,GAAA,CAAA,CAAA;MAM5C7D,OAAA,CAAA4C,IAAI,GAAX,YAAA;IACE,IAAA,IAAI,CAACe,GAAG,CAACf,IAAI,EAAE,CAAA;OAChB,CAAA;MAEM5C,OAAA,CAAA6C,IAAI,GAAX,YAAA;IACE,IAAA,IAAI,CAACc,GAAG,CAACd,IAAI,EAAE,CAAA;OAChB,CAAA;IACH,EAAA,OAACY,oBAAA,CAAA;IAAD,CAAC,EAAA;;ACGD,QAAAK,QAAA,gBAAA,UAAArE,MAAA,EAAA;IAAuBC,EAAAA,SAAyD,CAAAoE,QAAA,EAAArE,MAAA,CAAA,CAAA;MAe9E,SAAAqE,QAAAA,CAAmBb,KAA+C,EAAA;QAAlE,IACErD,KAAA,GAAAH,MAAA,CAAAI,IAAA,CAAA,IAAA,EAAMoD,KAAK,CAAC,IAKb,IAAA,CAAA;QAjBOrD,KAAO,CAAA4B,OAAA,GAAqE,EAAE,CAAA;IAK9E5B,IAAAA,KAAA,CAAAmE,cAAc,GAAG,IAAIX,SAAS,EAAoB,CAAA;IASxD,IAAA,IAAMF,QAAQ,GAAGtD,KAAI,CAACoE,YAAY,EAAE,CAAA;QACpCpE,KAAI,CAAC4B,OAAO,GAAG5B,KAAI,CAACqE,gBAAgB,CAAChB,KAAK,EAAEC,QAAQ,CAAC,CAAA;QACrDtD,KAAI,CAACsE,aAAa,GAAGhB,QAAQ,CAAA;;IAC/B,GAAA;IAAC,EAAA,IAAAlD,OAAA,GAAA8D,QAAA,CAAA7D,SAAA,CAAA;IATDoC,EAAAA,MAAA,CAAAC,cAAA,CAAAtC,OAAA,EAAsB,aAAA,EAAA;QAAtBwC,GAAA,EAAA,YAAA;UAA2B,OAAO,IAAI,CAAChB,OAAO,CAAC2C,GAAG,CAAC,UAAAC,KAAK;YAAI,OAAAA,KAAK,CAAC7B,OAAQ,CAAA;IAAd,OAAc,CAAC,CAAA;SAAG;;;IAAA,GAAA,CAAA,CAAA;IAC9EF,EAAAA,MAAA,CAAAC,cAAA,CAAAtC,OAAA,EAAwB,eAAA,EAAA;QAAxBwC,GAAA,EAAA,YAAA;UAA6B,OAAO,IAAI,CAACuB,cAAc,CAAA;SAAG;;;IAAA,GAAA,CAAA,CAAA;MAUnD/D,OAAA,CAAAqE,iBAAiB,GAAxB,YAAA;IACE,IAAA,IAAMpB,KAAK,GAAG,IAAI,CAACA,KAAkD,CAAA;IACrE,IAAA,IAAMqB,eAAe,GAAyB;IAC5CvE,MAAAA,aAAa,EAAE,IAAI;UACnBwE,KAAK,EAAEtB,KAAK,CAACsB,KAAK;IAClBjE,MAAAA,QAAQ,EAAE2C,KAAK,CAACuB,OAAO,IAAIvB,KAAK,CAACwB,aAAa,GAAG,CAAC,GAC9C,IAAIC,wCAAwB,EAAE,GAC9B,IAAIC,uCAAuB,CAAC;IAC5BC,QAAAA,YAAY,EAAEnB,oBAAAA;WACf,CAAA;SACJ,CAAA;IAED,IAAA,IAAMtD,QAAQ,GAAG,IAAI0E,eAAe,CAClC,IAAI,CAACC,gBAAgB,EAAAC,QAAA,CAAAA,QAAA,CAAA,EAAA,EAEhB9B,KAAK,CACR,EAAA;IAAA+B,MAAAA,gBAAgB,EAAE,IAAIxF,aAAa,CAAC8E,eAAe,CAAA;WAEtD,CAAA;QAED,IAAI,CAACW,gBAAgB,GAAG9E,QAAQ,CAAA;IAEhC,IAAA,IAAM+C,QAAQ,GAAG,IAAI,CAACc,YAAY,EAAE,CAAA;QACpC,IAAI,CAACkB,UAAU,GAAG,IAAIC,UAAU,CAACjC,QAAQ,EAAE,UAAAkB,KAAK,EAAA;UAAI,OAAAA,KAAK,CAACgB,GAAI,CAAA;IAAV,KAAU,CAAC,CAAA;IAC/D,IAAA,IAAI,CAACC,cAAc,GAAG,IAAIF,UAAU,EAAO,CAAA;QAC3C,IAAI,CAACjB,aAAa,GAAGhB,QAAQ,CAAA;QAE7B,IAAI,CAACoC,WAAW,EAAE,CAAA;QAClB,IAAI,CAACC,aAAa,EAAE,CAAA;QAEpB,IAAItC,KAAK,CAACuC,MAAM,EAAE;IAChBrF,MAAAA,QAAQ,CAACsF,SAAS,CAACxC,KAAK,CAACuC,MAAM,CAAC,CAAA;IACjC,KAAA;OACF,CAAA;MAEMxF,OAAA,CAAA0F,oBAAoB,GAA3B,YAAA;;IACE,IAAA,CAAAxE,EAAA,GAAA,IAAI,CAAC+D,gBAAgB,MAAE,IAAA,IAAA/D,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAAE,OAAO,EAAE,CAAA;OACjC,CAAA;IAEMpB,EAAAA,OAAA,CAAqB2F,qBAAA,GAA5B,UAA6BC,SAA6D,EAAA;IACxF,IAAA,IAAMC,eAAe,GAAG,IAAI,CAACZ,gBAAgB,CAAA;IAC7C,IAAA,IAAMa,SAAS,GAAG,IAAI,CAAC7C,KAAK,CAAA;QAE5B,IAAI,CAAC4C,eAAe,IAAI,CAACA,eAAe,CAACE,WAAW,EAAE,OAAO,KAAK,CAAA;IAE1D,IAAA,IAAA7C,QAAQ,GAAmB0C,SAAS,CAA5B1C,QAAA;UAAK8C,SAAS,GAAAC,MAAA,CAAKL,SAAS,EAAtC,CAA0B,UAAA,CAAA,CAAF,CAAA;IAE9B,IAAA,KAAK,IAAMR,GAAG,IAAIY,SAAS,EAAE;UAC3B,IAAIF,SAAS,CAACV,GAAG,CAAC,KAAKQ,SAAS,CAACR,GAAG,CAAC,EAAE;IACrC,QAAA,OAAO,IAAI,CAAA;IACZ,OAAA;IACF,KAAA;IAED,IAAA,IAAMc,YAAY,GAAG,IAAI,CAAChC,aAAa,CAAA;IACvC,IAAA,IAAMiC,YAAY,GAAG,IAAI,CAACnC,YAAY,CAACd,QAAQ,CAAC,CAAA;IAChD,IAAA,IAAI0C,SAAS,CAAC1H,eAAe,IAAI,CAAC,IAAI,CAACkI,gBAAgB,CAACF,YAAY,EAAEC,YAAY,CAAC,EAAE,OAAO,IAAI,CAAA;IAEhG,IAAA,OAAO,KAAK,CAAA;OACb,CAAA;MAEMnG,OAAA,CAAAqG,YAAY,GAAnB,YAAA;IACE,IAAA,IAAMR,eAAe,GAAG,IAAI,CAACZ,gBAAgB,CAAA;IAC7C,IAAA,IAAMhC,KAAK,GAAG,IAAI,CAACA,KAAK,CAAA;IACxB,IAAA,IAAMiD,YAAY,GAAG,IAAI,CAAChC,aAAa,CAAA;IAEvC;IACA;IACA;QACA,IAAI,CAAC2B,eAAe,IAAI,CAACA,eAAe,CAACE,WAAW,IAAI,IAAI,CAACO,WAAW,EAAE,OAAA;QAE1E,IAAMH,YAAY,GAAG,IAAI,CAACnC,YAAY,CAACf,KAAK,CAACC,QAAQ,CAAC,CAAA;IACtD,IAAA,IAAID,KAAK,CAAC/E,eAAe,IAAI,CAAC,IAAI,CAACkI,gBAAgB,CAACF,YAAY,EAAEC,YAAY,CAAC,EAAE;UAC/E,IAAI,CAAC3E,OAAO,GAAG,IAAI,CAACyC,gBAAgB,CAAChB,KAAK,EAAEkD,YAAY,CAAC,CAAA;UACzD,IAAI,CAACG,WAAW,GAAG,IAAI,CAACpB,UAAU,CAACqB,MAAM,CAACJ,YAAY,CAAC,CAAA;UACvD,IAAI,CAACjC,aAAa,GAAGiC,YAAY,CAAA;IAClC,KAAA;OACF,CAAA;MAEMnG,OAAA,CAAAwG,kBAAkB,GAAzB,YAAA;IACE,IAAA,IAAMrG,QAAQ,GAAG,IAAI,CAAC8E,gBAAgB,CAAA;IACtC,IAAA,IAAMpE,aAAa,GAAG,IAAI,CAACkD,cAAc,CAAA;IACzC,IAAA,IAAM0C,UAAU,GAAG,IAAI,CAACH,WAAW,CAAA;QAEnC,IAAI,CAACf,aAAa,EAAE,CAAA;IACpB1E,IAAAA,aAAa,CAAC6F,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/BvG,IAAAA,QAAQ,CAACwG,MAAM,CAACC,YAAY,EAAE,CAAA;IAE9B;IACA,IAAA,IAAM1F,EAAwB,GAAA,IAAI,CAAC+B,KAAK,CAAA;UAAzB/B,EAAA,CAAAsD,OAAA,CAAA;cAAKvB,KAAK,GAAAgD,MAAA,CAAA/E,EAAA,EAAnB,CAAqB,SAAA,CAAA,EAAa;IACxC,IAAA,KAAK,IAAMkE,GAAG,IAAInC,KAAK,EAAE;IACvB,MAAA,IAAImC,GAAG,IAAIjF,QAAQ,IAAIA,QAAQ,CAACiF,GAAG,CAAC,KAAKnC,KAAK,CAACmC,GAAG,CAAC,EAAE;IACnDjF,QAAAA,QAAQ,CAACiF,GAAG,CAAC,GAAGnC,KAAK,CAACmC,GAAG,CAAC,CAAA;IAC3B,OAAA;IACF,KAAA;IAED,IAAA,IAAI,CAACqB,UAAU,IAAI,CAACtG,QAAQ,CAAC4F,WAAW,EAAE,OAAA;QAE1Cc,oBAAI,CAAC1G,QAAQ,EAAEsG,UAAU,EAAE,IAAI,CAAClF,WAAW,CAAC,CAAA;QAE5C,IAAI,CAAC+E,WAAW,GAAG,IAAI,CAAA;OACxB,CAAA;MAEMtG,OAAA,CAAAE,MAAM,GAAb,YAAA;QAAA,IAuDCN,KAAA,GAAA,IAAA,CAAA;;IAtDC,IAAA,IAAMqD,KAAK,GAAG,IAAI,CAACA,KAAK,CAAA;IACxB,IAAA,IAAM6D,QAAQ,GAAG7D,KAAK,CAAClF,WAAkB,CAAA;IACzC,IAAA,IAAMgJ,MAAM,GAAG9D,KAAK,CAACjF,SAAgB,CAAA;QACrC,IAAMgJ,UAAU,GAA2B,EAAE,CAAA;IAC7C,IAAA,IAAM7G,QAAQ,GAAG,IAAI,CAAC8E,gBAAgB,CAAA;QAEtC,IAAI,CAACoB,YAAY,EAAE,CAAA;IAEnB,IAAA,KAAK,IAAMY,IAAI,IAAIhE,KAAK,EAAE;IACxB,MAAA,IAAI,EAAEgE,IAAI,IAAInJ,aAAa,CAAC,IAAI,EAAEmJ,IAAI,IAAIpC,eAAe,CAAC5E,SAAS,CAAC,EAAE;IACpE+G,QAAAA,UAAU,CAACC,IAAI,CAAC,GAAGhE,KAAK,CAACgE,IAAI,CAAC,CAAA;IAC/B,OAAA;IACF,KAAA;IAED,IAAA,IAAMlB,WAAW,GAAG5F,QAAQ,IAAIA,QAAQ,CAAC4F,WAAW,CAAA;IACpD,IAAA,IAAMmB,eAAe,GAAa,CAAC,mBAAmB,CAAC,CAAA;IACvD,IAAA,IAAMC,aAAa,GAAa,CAAC,iBAAiB,CAAC,CAAA;QACnD,IAAMC,YAAY,GAAGjH,QAAQ,GACzBA,QAAQ,CAACkH,UAAU,GACnB,CAAAnG,EAAA,GAAA+B,KAAK,CAACoE,UAAU,MAAA,IAAA,IAAAnG,EAAA,KAAA,KAAA,CAAA,GAAAA,EAAA,GAAI,IAAI,CAAA;QAE5B,IAAI,CAACkG,YAAY,EAAE;IACjBF,MAAAA,eAAe,CAACI,IAAI,CAAC,UAAU,CAAC,CAAA;IACjC,KAAA;IACD,IAAA,IAAIrE,KAAK,CAAC5E,cAAc,IAAI,CAAC0H,WAAW,EAAE;IACxCmB,MAAAA,eAAe,CAACI,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACxC,KAAA;QACD,IAAIN,UAAU,CAACO,SAAS,EAAE;IACxBL,MAAAA,eAAe,CAACI,IAAI,CAACN,UAAU,CAACO,SAAS,CAAC,CAAA;IAC3C,KAAA;QACD,IAAItE,KAAK,CAAChF,WAAW,EAAE;IACrBkJ,MAAAA,aAAa,CAACG,IAAI,CAACrE,KAAK,CAAChF,WAAW,CAAC,CAAA;IACtC,KAAA;QAED,IAAMuJ,WAAW,GAAG,CAACzB,WAAW,IAAI9C,KAAK,CAACwE,cAAc,GACpD;IAAEC,MAAAA,KAAK,EAAE;IACTC,QAAAA,SAAS,EAAEC,yCAAyB,CAAC,IAAI,CAAC3E,KAAK,CAACsB,KAAK,EAAE,IAAI,CAACtB,KAAK,CAACoE,UAAU,EAAE,IAAI,CAACpE,KAAK,CAACwE,cAAc,CAAA;;SACvG,GACA,EAAE,CAAA;IAEN,IAAA,IAAMI,MAAM,GAAG,CAAC,CAAC5E,KAAK,CAACuB,OAAO,IAAI,CAAC,CAAAsD,EAAA,GAAA7E,KAAK,CAACwB,aAAa,MAAA,IAAA,IAAAqD,EAAA,KAAA,KAAA,CAAA,GAAAA,EAAA,GAAI,CAAC,CAAC,IAAI,CAAC,GAC7D,IAAI,CAACC,iBAAiB,EAAE,GACxB,IAAI,CAACC,UAAU,EAAE,CAAA;IAErB,IAAA,OACE7F,KAAC,CAAAM,aAAA,CAAAqE,QAAQ,eAAKE,UAAU,EAAA;IAAEO,MAAAA,SAAS,EAAEL,eAAe,CAACe,IAAI,CAAC,GAAG,CAAC;IAAE9E,MAAAA,GAAG,EAAE,UAAC5E,CAAe,EAAA;IACnFA,QAAAA,CAAC,KAAKqB,KAAI,CAACkF,gBAAgB,GAAGvG,CAAC,CAAC,CAAA;IAClC,OAAA;SAAC,CAAA,EACC4D,KAAA,CAAAM,aAAA,CAACsE,MAAM,EAAAhC,QAAA,CAAA;IAACwC,MAAAA,SAAS,EAAEJ,aAAa,CAACc,IAAI,CAAC,GAAG,CAAA;SAAC,EAAMT,WAAW,CAAA,EACvDK,MAAM,CACD,EACP,IAAI,CAACK,gBAAgB,EAAE,CAChB,CAAA;OAEd,CAAA;IAEOlI,EAAAA,OAAA,CAAAiE,gBAAgB,GAAxB,UAAyBhB,KAAoB,EAAEC,QAAwC,EAAA;;IACrF,IAAA,IAAMuB,aAAa,GAAG,CAAAvD,EAAA,GAAA+B,KAAK,CAACwB,aAAa,MAAA,IAAA,IAAAvD,EAAA,KAAA,KAAA,CAAA,GAAAA,EAAA,GAAI,CAAC,CAAC,CAAA;IAE/C,IAAA,OAAOuD,aAAa,GAAG,CAAC,IAAI,CAAC,CAACxB,KAAK,CAACuB,OAAO,GACvC2D,qBAAK,CAAC1D,aAAa,GAAG,CAAC,CAAC,CAACN,GAAG,CAAC,YAAA;UAAM,OAAAhC,KAAK,CAACC,SAAS,EAAE,CAAA;IAAjB,KAAiB,CAAC,GACrDc,QAAQ,CAACiB,GAAG,CAAC,YAAM;UAAA,OAAAhC,KAAK,CAACC,SAAS,EAAE,CAAA;IAAjB,KAAiB,CAAC,CAAA;OAC1C,CAAA;MAEOpC,OAAA,CAAAsF,WAAW,GAAnB,YAAA;QAAA,IAkBC1F,KAAA,GAAA,IAAA,CAAA;IAjBC,IAAA,IAAMO,QAAQ,GAAG,IAAI,CAAC8E,gBAAiB,CAAA;QAEvC5C,MAAM,CAAC+F,IAAI,CAACC,sBAAM,CAAC,CAACC,OAAO,CAAC,UAACC,QAA6B,EAAA;IACxD,MAAA,IAAMC,SAAS,GAAGH,sBAAM,CAACE,QAAQ,CAAC,CAAA;UAClC,IAAME,QAAQ,GAAG,IAAK,CAAAC,MAAA,CAAAF,SAAS,CAACG,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGJ,SAAS,CAACK,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;IAE9E1I,MAAAA,QAAQ,CAAC2I,EAAE,CAACN,SAAS,EAAE,UAAAjK,CAAC,EAAA;YACtBA,CAAC,CAACwK,aAAa,GAAGnJ,KAAI,CAAA;IAEtB,QAAA,IAAMoJ,UAAU,GAAGpJ,KAAI,CAACqD,KAAK,CAACwF,QAAQ,CAAC,CAAA;YACvCO,UAAU,CAACzK,CAAC,CAAC,CAAA;IACf,OAAC,CAAC,CAAA;IACJ,KAAC,CAAC,CAAA;IAEF4B,IAAAA,QAAQ,CAACW,IAAI,CAACuH,sBAAM,CAACY,KAAK,EAAE,YAAA;UAC1BrJ,KAAI,CAACoB,WAAW,EAAE,CAAA;IACpB,KAAC,CAAC,CAAA;OACH,CAAA;MAEOhB,OAAA,CAAAuF,aAAa,GAArB,YAAA;IACE,IAAA,IAAMpF,QAAQ,GAAG,IAAI,CAAC8E,gBAAgB,CAAA;IAChC,IAAA,IAAA/D,EAAA,GAAqC,IAAI,CAACmE,cAAc,CAACkB,MAAM,CAAC,IAAI,CAACtD,KAAK,CAAC9E,OAAQ,CAAuB;UAAxG+K,IAAI,GAAAhI,EAAA,CAAAgI,IAAA;UAAEC,KAAK,GAAAjI,EAAA,CAAAiI,KAAA;UAAEC,OAAO,GAAAlI,EAAA,CAAAkI,OAAA;UAAEC,QAAQ,GAAAnI,EAAA,CAAAmI,QAA0E,CAAA;IAEhHlJ,IAAAA,QAAQ,CAACmJ,UAAU,CAAnBvH,KAAA,CAAA5B,QAAQ,EAAegJ,KAAK,CAAChF,GAAG,CAAC,UAAAoF,KAAK,EAAI;UAAA,OAAAL,IAAI,CAACK,KAAK,CAAC,CAAA;IAAX,KAAW,CAAC,CAAE,CAAA;IACxDpJ,IAAAA,QAAQ,CAACqJ,aAAa,CAAtBzH,KAAA,CAAA5B,QAAQ,EAAkBiJ,OAAO,CAACjF,GAAG,CAAC,UAAAoF,KAAK,EAAI;UAAA,OAAAF,QAAQ,CAACE,KAAK,CAAC,CAAA;IAAf,KAAe,CAAC,CAAE,CAAA;OAClE,CAAA;IAEOvJ,EAAAA,OAAA,CAAAoG,gBAAgB,GAAxB,UAAyBF,YAAkC,EAAEC,YAAkC,EAAA;IAC7F,IAAA,IAAID,YAAY,CAACuD,MAAM,KAAKtD,YAAY,CAACsD,MAAM,IAAIvD,YAAY,CAACuD,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;QAE1F,IAAMC,IAAI,GAAGxD,YAAY,CAACyD,KAAK,CAAC,UAACC,KAAK,EAAEC,GAAG,EAAA;IACzC,MAAA,IAAMC,SAAS,GAAG3D,YAAY,CAAC0D,GAAG,CAAC,CAAA;IAEnC,MAAA,IAAID,KAAK,CAACxE,GAAG,IAAI0E,SAAS,CAAC1E,GAAG,EAAE;IAC9B,QAAA,OAAOwE,KAAK,CAACxE,GAAG,KAAK0E,SAAS,CAAC1E,GAAG,CAAA;IACnC,OAAA,MAAM;YACL,OAAOwE,KAAK,KAAKE,SAAS,CAAA;IAC3B,OAAA;IACH,KAAC,CAAC,CAAA;IAEF,IAAA,OAAOJ,IAAI,CAAA;OACZ,CAAA;IAEO1J,EAAAA,OAAA,CAAYgE,YAAA,GAApB,UAAqBd,QAA+C,EAAA;QAApE,IAMCtD,KAAA,GAAA,IAAA,CAAA;IANoB,IAAA,IAAAsD,QAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,MAAAA,QAA4B,GAAA,IAAI,CAACD,KAAK,CAACC,QAAQ,CAAA;IAAA,KAAA;IAClE,IAAA,OAAQf,KAAK,CAACY,QAAQ,CAACgH,OAAO,CAAC7G,QAAQ,CAAoC,CACxE8G,MAAM,CAAC,UAAAJ,KAAK,EAAA;IAAI,MAAA,OAAAA,KAAK,CAACK,IAAI,KAAK1G,YAAY,CAAA;SAAA,CAAC,CAC5C2G,MAAM,CAAC,UAACC,GAAG,EAAEP,KAAK,EAAA;IACjB,MAAA,OAAWQ,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAD,GAAG,SAAKvK,KAAI,CAACyK,eAAe,CAACT,KAAK,CAAC,EAAE,IAAA,CAAA,CAAA;SACjD,EAAE,EAAE,CAAmC,CAAA;OAC3C,CAAA;MAEO5J,OAAA,CAAAkI,gBAAgB,GAAxB,YAAA;IACE,IAAA,OAAQ/F,KAAK,CAACY,QAAQ,CAACgH,OAAO,CAAC,IAAI,CAAC9G,KAAK,CAACC,QAAQ,CAAoC,CACnF8G,MAAM,CAAC,UAAAJ,KAAK,EAAA;IAAI,MAAA,OAAAA,KAAK,CAACK,IAAI,KAAK1G,YAAY,CAAA;IAA3B,KAA2B,CAAC,CAAA;OAChD,CAAA;IAEOvD,EAAAA,OAAA,CAAeqK,eAAA,GAAvB,UAAwBT,KAAyB,EAAA;QAAjD,IAKChK,KAAA,GAAA,IAAA,CAAA;QAJC,OAAO,IAAI,CAAC0K,WAAW,CAACV,KAAK,CAAC,GAC1BzH,KAAK,CAACY,QAAQ,CAACgH,OAAO,CAACH,KAAK,CAAC3G,KAAK,CAACC,QAAQ,CAAC,CAC3CgH,MAAM,CAAC,UAACK,SAA+B,EAAEC,SAA6B,EAAA;IAAK,MAAA,uCAAID,SAAS,EAAA,IAAA,CAAA,EAAK3K,KAAI,CAACyK,eAAe,CAACG,SAAS,CAAC;IAAjD,KAAkD,EAAE,EAA0B,CAAC,GAC3J,CAACZ,KAAK,CAAC,CAAA;OACZ,CAAA;MAEO5J,OAAA,CAAA+H,iBAAiB,GAAzB,YAAA;QAAA,IA2BCnI,KAAA,GAAA,IAAA,CAAA;QAzBG,IAAAsB,EACE,GAAA,IAAI,CAAC+B,KAAK,CAACuB,OAAQ,CADQiG,UAAA;UAA7BA,UAAU,GAAAvJ,EAAA,KAAA,KAAA,CAAA,GAAG,gBAAgB,GAAAA,EAAA,CAAA;IAE/B,IAAA,IAAMuD,aAAa,GAAG,IAAI,CAACxB,KAAK,CAACwB,aAAc,CAAA;IAC/C,IAAA,IAAMtE,QAAQ,GAAG,IAAI,CAAC8E,gBAAgB,CAAA;IACtC,IAAA,IAAMc,WAAW,GAAG5F,QAAQ,IAAIA,QAAQ,CAAC4F,WAAW,CAAA;QAEpD,IAAM2E,gBAAgB,GAAG3E,WAAW,GAChC5F,QAAQ,CAACwK,QAAQ,CAACrK,QAAQ,CAACsK,0BAA0B,CAACzK,QAAQ,CAAC,GAC/DgI,qBAAK,CAAC1D,aAAa,GAAG,CAAC,CAAC,CAAA;QAE5B,IAAMoG,UAAU,GAAG1K,QAAQ,IAAIA,QAAQ,CAAC0H,MAAM,CAAC,CAAC,CAAC,CAAA;IACjD,IAAA,IAAMiD,IAAI,GAAGD,UAAU,GACnB1K,QAAQ,CAACkH,UAAU,GACjB;UAAE0D,KAAK,EAAEF,UAAU,CAACC,IAAAA;IAAM,KAAA,GAC1B;UAAEE,MAAM,EAAEH,UAAU,CAACC,IAAAA;SAAM,GAC7B,EAAE,CAAA;IAEN,IAAA,OAAOJ,gBAAgB,CAACvG,GAAG,CAAC,UAAA0F,GAAG,EAAA;IAC7B,MAAA,OAAO1H,KAAA,CAAAM,aAAA,CAAA,KAAA,EAAA;IACL2C,QAAAA,GAAG,EAAEyE,GAAG;IAAA,QAAA,oBAAA,EACYA,GAAG;IACvB1G,QAAAA,GAAG,EAAEvD,KAAI,CAAC4B,OAAO,CAACqI,GAAG,CAAoC;IACzDtC,QAAAA,SAAS,EAAEkD,UAAU;IACrB/C,QAAAA,KAAK,EAAEoD,IAAAA;IAAI,OAAA,CAAI,CAAA;IACnB,KAAC,CAAC,CAAA;OACH,CAAA;MAEO9K,OAAA,CAAAgI,UAAU,GAAlB,YAAA;QAAA,IAcCpI,KAAA,GAAA,IAAA,CAAA;IAbC,IAAA,IAAMqL,YAAY,GAAG,IAAI,CAACjH,YAAY,EAAE,CAAA;IACxC,IAAA,IAAM6B,eAAe,GAAG,IAAI,CAACZ,gBAAgB,CAAA;IAC7C,IAAA,IAAMwB,UAAU,GAAG,IAAI,CAACH,WAAW,CAAA;IAEnC,IAAA,IAAMpD,QAAQ,GAAyB2C,eAAe,IAAIA,eAAe,CAACE,WAAW,GACjFU,UAAU,GACRyE,kCAAkB,CAACrF,eAAe,EAAEY,UAAU,CAAC,GAC/CyE,kCAAkB,CAACrF,eAAe,EAAEsF,eAAI,CAACF,YAAY,EAAEA,YAAY,CAAC,CAAC,GACvEA,YAAY,CAAA;IAEhB,IAAA,OAAO,IAAI,CAAChI,KAAK,CAAC7E,cAAc,GAC5B8E,QAAQ,CAACiB,GAAG,CAAC,UAACyF,KAAK,EAAEC,GAAG,EAAK;IAAA,MAAA,OAAA1H,KAAC,CAAAM,aAAA,CAAAY,cAAc;YAAC+B,GAAG,EAAEwE,KAAK,CAACxE,GAAI;IAAEjC,QAAAA,GAAG,EAAEvD,KAAI,CAAC4B,OAAO,CAACqI,GAAG,CAAA;WAAW,EAAAD,KAAK,CAAkB,CAAA;SAAA,CAAC,GACtH1G,QAAQ,CAACiB,GAAG,CAAC,UAACyF,KAAK,EAAEC,GAAG;IAAK,MAAA,OAAA1H,KAAA,CAAAM,aAAA,CAACX,WAAW,EAAA;YAACsD,GAAG,EAAEwE,KAAK,CAACxE,GAAI;IAAEjC,QAAAA,GAAG,EAAEvD,KAAI,CAAC4B,OAAO,CAACqI,GAAG,CAAA;aAAWD,KAAK,CAAe,CAAA;IAAlF,KAAkF,CAAC,CAAA;OACrH,CAAA;IAEO5J,EAAAA,OAAA,CAAWsK,WAAA,GAAnB,UAAoBV,KAAyB,EAAA;QAC3C,IAAIA,KAAK,CAACK,IAAI,EAAE;IACd,MAAA,OAAOL,KAAK,CAACK,IAAI,KAAK9H,KAAK,CAACO,QAAQ,CAAA;IACrC,KAAA;IAED,IAAA,OAAQkH,KAAa,KAAKzH,KAAK,CAACO,QAAQ,CAAA;OACzC,CAAA;MAhTaoB,QAAY,CAAAsH,YAAA,GAAkBtN,aAAa,CAAA;IAEpCuN,EAAAA,UAAA,CAAA,CAApBC,mCAAmB,CAA2C,EAAAxH,QAAA,CAAA7D,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;IA+SjE,EAAA,OAAC6D,QAAA,CAAA;IAAA,CAlTD,CAAuB3B,KAAK,CAACiB,SAAS;;IC5BtC;;;IAGG;IAIFU,QAAgB,CAACP,YAAY,GAAGA,YAAY;;;;;;;;"}
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 firstPanelSize: \"\",\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 this._afterRender();\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 public destroy() {\n super.destroy();\n this._reactFlicking.renderEmitter.off(\"render\");\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 FlickingEvents,\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 protected _vanillaFlicking: VanillaFlicking;\n private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];\n protected _pluginsDiffer: ListDiffer<any>;\n protected _jsxDiffer: ListDiffer<React.ReactElement>;\n protected _viewportElement: HTMLElement;\n private _diffResult: DiffResult<React.ReactElement> | null;\n private _renderEmitter = new Component<{ render: void }>();\n protected _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 // Omit 'virtual', as it can't have any setter\n const { virtual, ...props } = this.props;\n for (const key in props) {\n if (key in flicking && flicking[key] !== props[key]) {\n flicking[key] = props[key];\n }\n }\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\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 { viewportClasses, cameraClasses, cameraProps } = this._getClasses(attributes, props);\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 protected _bindEvents() {\n const flicking = this._vanillaFlicking!;\n\n Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {\n const eventName = EVENTS[eventKey];\n this._bindEvent(eventName);\n });\n\n flicking.once(EVENTS.READY, () => {\n this.forceUpdate();\n });\n }\n\n protected _bindEvent(eventName: keyof FlickingEvents) {\n const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;\n\n this._vanillaFlicking!.on(eventName, e => {\n e.currentTarget = this;\n\n const evtHandler = this.props[propName];\n evtHandler(e);\n });\n }\n\n protected _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 protected _getClasses(attributes: { [key: string]: any }, props: typeof this.props) {\n const flicking = this._vanillaFlicking;\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 return {\n viewportClasses,\n cameraClasses,\n cameraProps,\n };\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 protected _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 protected _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 protected _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","firstPanelSize","renderOnSameKey","plugins","useFindDOMNode","hideBeforeInit","onReady","e","onBeforeResize","onAfterResize","onHoldStart","onHoldEnd","onMoveStart","onMove","onMoveEnd","onWillChange","onChanged","onWillRestore","onRestored","onSelect","onNeedPanel","onVisibleChange","onReachEdge","onPanelChange","ReactRenderer","_super","__extends","options","_this","call","_reactFlicking","reactFlicking","__proto","prototype","render","flicking","getFlickingAttached","_flicking","strategy","_strategy","_rendering","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","_afterRender","forceUpdate","forceRenderAllPanels","_a","sent","destroy","off","_collectPanels","reactPanels","_panels","collectPanels","_createPanel","externalComponent","createPanel","ExternalRenderer","StrictPanel","apply","arguments","_hide","_elRef","React","createRef","Object","defineProperty","current","get","createElement","Fragment","_getElement","show","hide","cloneElement","Children","only","props","children","ref","Component","NonStrictPanel","findDOMNode","ViewportSlot","memo","ReactElementProvider","el","_el","nativeElement","rendered","Flicking","_renderEmitter","_getChildren","_createPanelRefs","_prevChildren","map","panel","componentDidMount","rendererOptions","align","virtual","panelsPerView","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","VanillaFlicking","_viewportElement","__assign","externalRenderer","_vanillaFlicking","_jsxDiffer","ListDiffer","key","_pluginsDiffer","_bindEvents","_checkPlugins","status","setStatus","componentWillUnmount","shouldComponentUpdate","nextProps","vanillaFlicking","prevProps","initialized","restProps","__rest","prevChildren","nextChildren","_hasSameChildren","beforeRender","_diffResult","update","componentDidUpdate","diffResult","trigger","camera","updateOffset","sync","Viewport","Camera","attributes","name","_b","_getClasses","viewportClasses","cameraClasses","cameraProps","panels","_getVirtualPanels","_getPanels","className","join","_getViewportSlot","range","keys","EVENTS","forEach","eventKey","eventName","_bindEvent","READY","propName","concat","charAt","toUpperCase","slice","on","currentTarget","evtHandler","list","added","removed","prevList","addPlugins","index","removePlugins","isHorizontal","horizontal","push","style","transform","getDefaultCameraTransform","length","same","every","child","idx","nextChild","toArray","filter","type","reduce","all","__spreadArray","_unpackFragment","_isFragment","allChilds","fragChild","panelClass","renderingIndexes","renderer","getRenderingIndexesByOrder","firstPanel","size","width","height","origChildren","getRenderingPanels","diff","defaultProps","__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.12.0-beta.0",
3
+ "version": "4.12.0-beta.11",
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",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@egjs/component": "^3.0.2",
23
- "@egjs/flicking": "^4.12.0-beta.0",
23
+ "@egjs/flicking": "^4.12.0-beta.11",
24
24
  "@egjs/list-differ": "^1.0.1"
25
25
  },
26
26
  "devDependencies": {
@@ -39,7 +39,7 @@
39
39
  "react-app-rewired": "^2.1.8",
40
40
  "react-dom": "^18.0.0",
41
41
  "react-router-dom": "^6.3.0",
42
- "react-scripts": "^4.0.3",
42
+ "react-scripts": "5.0.1",
43
43
  "rollup": "^2.45.2",
44
44
  "tslib": "^2.2.0",
45
45
  "typescript": "4.8.4"
@@ -0,0 +1,146 @@
1
+ /*
2
+ * Copyright (c) 2015 NAVER Corp.
3
+ * egjs projects are licensed under the MIT license
4
+ */
5
+ import * as React from "react";
6
+ import ListDiffer from "@egjs/list-differ";
7
+ import {
8
+ CrossFlicking as VanillaCrossFlicking,
9
+ NormalRenderingStrategy,
10
+ CrossFlickingEvent,
11
+ HoldStartEvent,
12
+ HoldEndEvent,
13
+ MoveStartEvent,
14
+ MoveEvent,
15
+ MoveEndEvent,
16
+ WillChangeEvent,
17
+ ChangedEvent,
18
+ EVENTS,
19
+ SIDE_EVENTS,
20
+ CrossFlickingOptions,
21
+ FlickingOptions,
22
+ } from "@egjs/flicking";
23
+
24
+ import { DEFAULT_PROPS } from "./consts";
25
+ import { FlickingProps } from "./types";
26
+ import ReactRenderer, { ReactRendererOptions } from "./ReactRenderer";
27
+ import ReactElementProvider from "./ReactElementProvider";
28
+ import Flicking from "./Flicking";
29
+
30
+ export interface CrossFlickingProps extends FlickingProps {
31
+ onSideHoldStart: (e: CrossFlickingEvent<HoldStartEvent<Flicking>>) => any;
32
+ onSideHoldEnd: (e: CrossFlickingEvent<HoldEndEvent<Flicking>>) => any;
33
+ onSideMoveStart: (e: CrossFlickingEvent<MoveStartEvent<Flicking>>) => any;
34
+ onSideMove: (e: CrossFlickingEvent<MoveEvent<Flicking>>) => any;
35
+ onSideMoveEnd: (e: CrossFlickingEvent<MoveEndEvent<Flicking>>) => any;
36
+ onSideWillChange: (e: CrossFlickingEvent<WillChangeEvent<Flicking>>) => any;
37
+ onSideChanged: (e: CrossFlickingEvent<ChangedEvent<Flicking>>) => any;
38
+ onSideWillRestore: (e: CrossFlickingEvent<WillChangeEvent<Flicking>>) => any;
39
+ onSideRestored: (e: CrossFlickingEvent<ChangedEvent<Flicking>>) => any;
40
+ }
41
+
42
+ export const CROSSFLICKING_DEFAULT_PROPS: CrossFlickingProps = {
43
+ ...DEFAULT_PROPS,
44
+ onSideHoldStart: (e: CrossFlickingEvent<HoldStartEvent>) => {},
45
+ onSideHoldEnd: (e: CrossFlickingEvent<HoldEndEvent>) => {},
46
+ onSideMoveStart: (e: CrossFlickingEvent<MoveStartEvent>) => {},
47
+ onSideMove: (e: CrossFlickingEvent<MoveEvent>) => {},
48
+ onSideMoveEnd: (e: CrossFlickingEvent<MoveEndEvent>) => {},
49
+ onSideWillChange: (e: CrossFlickingEvent<WillChangeEvent>) => {},
50
+ onSideChanged: (e: CrossFlickingEvent<ChangedEvent>) => {},
51
+ onSideWillRestore: (e: CrossFlickingEvent<WillChangeEvent>) => {},
52
+ onSideRestored: (e: CrossFlickingEvent<ChangedEvent>) => {},
53
+ };
54
+
55
+ class CrossFlicking extends Flicking {
56
+ public static defaultProps: CrossFlickingProps = CROSSFLICKING_DEFAULT_PROPS;
57
+
58
+ public constructor(
59
+ props: Partial<
60
+ FlickingProps &
61
+ FlickingOptions &
62
+ CrossFlickingOptions &
63
+ CrossFlickingProps
64
+ >
65
+ ) {
66
+ super(props);
67
+ }
68
+
69
+ public componentDidMount() {
70
+ const props: { [key: string]: any } = {};
71
+
72
+ for (const name in this.props) {
73
+ if ((name in CROSSFLICKING_DEFAULT_PROPS) || (name in VanillaCrossFlicking.prototype)) {
74
+ props[name] = this.props[name];
75
+ }
76
+ }
77
+
78
+ const rendererOptions: ReactRendererOptions = {
79
+ reactFlicking: this,
80
+ strategy: new NormalRenderingStrategy({
81
+ providerCtor: ReactElementProvider,
82
+ }),
83
+ };
84
+
85
+ const flicking = new VanillaCrossFlicking(this._viewportElement, {
86
+ ...props,
87
+ externalRenderer: new ReactRenderer(rendererOptions),
88
+ });
89
+
90
+ this._vanillaFlicking = flicking;
91
+
92
+ const children = this._getChildren();
93
+ this._jsxDiffer = new ListDiffer(children, (panel) => panel.key!);
94
+ this._pluginsDiffer = new ListDiffer<any>();
95
+ this._prevChildren = children;
96
+
97
+ this._bindEvents();
98
+ this._checkPlugins();
99
+
100
+ if (props.status) {
101
+ flicking.setStatus(props.status);
102
+ }
103
+ }
104
+
105
+ public render() {
106
+ const props = this.props;
107
+ const Viewport = props.viewportTag as any;
108
+ const Camera = props.cameraTag as any;
109
+ const attributes: { [key: string]: any } = {};
110
+
111
+ this.beforeRender();
112
+
113
+ for (const name in props) {
114
+ if (!(name in CROSSFLICKING_DEFAULT_PROPS) && !(name in VanillaCrossFlicking.prototype)) {
115
+ attributes[name] = props[name];
116
+ }
117
+ }
118
+
119
+ const { viewportClasses, cameraClasses, cameraProps } = this._getClasses(attributes, props);
120
+
121
+ const panels = this._getPanels();
122
+
123
+ return (
124
+ <Viewport {...attributes} className={viewportClasses.join(" ")} ref={(e?: HTMLElement) => {
125
+ e && (this._viewportElement = e);
126
+ }}>
127
+ <Camera className={cameraClasses.join(" ")} {...cameraProps}>
128
+ { panels }
129
+ </Camera>
130
+ { this._getViewportSlot() }
131
+ </Viewport>
132
+ );
133
+ }
134
+
135
+ protected _bindEvents() {
136
+ super._bindEvents();
137
+
138
+ Object.keys(SIDE_EVENTS).forEach((eventKey: keyof typeof EVENTS) => {
139
+ const eventName = SIDE_EVENTS[eventKey];
140
+ this._bindEvent(eventName);
141
+ });
142
+ }
143
+ }
144
+
145
+ interface CrossFlicking extends Flicking {}
146
+ export default CrossFlicking;
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright (c) 2015 NAVER Corp.
3
+ * egjs projects are licensed under the MIT license
4
+ */
5
+ import React, { ReactNode, HTMLAttributes } from "react";
6
+
7
+ interface CrossGroupProps extends HTMLAttributes<HTMLDivElement> {
8
+ children?: ReactNode;
9
+ }
10
+
11
+ const CrossGroup = React.forwardRef<HTMLDivElement, CrossGroupProps>(
12
+ ({ children, ...rest }, ref) => (
13
+ <div ref={ref} {...rest}>
14
+ {children}
15
+ </div>
16
+ )
17
+ );
18
+
19
+ export default CrossGroup;
@@ -15,7 +15,8 @@ import VanillaFlicking, {
15
15
  getDefaultCameraTransform,
16
16
  Plugin,
17
17
  range,
18
- NormalRenderingStrategy
18
+ NormalRenderingStrategy,
19
+ FlickingEvents,
19
20
  } from "@egjs/flicking";
20
21
 
21
22
  import { DEFAULT_PROPS } from "./consts";
@@ -29,14 +30,14 @@ import ReactElementProvider from "./ReactElementProvider";
29
30
  class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>> {
30
31
  public static defaultProps: FlickingProps = DEFAULT_PROPS;
31
32
 
32
- @withFlickingMethods private _vanillaFlicking: VanillaFlicking;
33
+ @withFlickingMethods protected _vanillaFlicking: VanillaFlicking;
33
34
  private _panels: React.RefObject<StrictPanel | NonStrictPanel | HTMLDivElement>[] = [];
34
- private _pluginsDiffer: ListDiffer<any>;
35
- private _jsxDiffer: ListDiffer<React.ReactElement>;
36
- private _viewportElement: HTMLElement;
35
+ protected _pluginsDiffer: ListDiffer<any>;
36
+ protected _jsxDiffer: ListDiffer<React.ReactElement>;
37
+ protected _viewportElement: HTMLElement;
37
38
  private _diffResult: DiffResult<React.ReactElement> | null;
38
39
  private _renderEmitter = new Component<{ render: void }>();
39
- private _prevChildren: React.ReactElement[];
40
+ protected _prevChildren: React.ReactElement[];
40
41
 
41
42
  public get reactPanels() { return this._panels.map(panel => panel.current!); }
42
43
  public get renderEmitter() { return this._renderEmitter; }
@@ -156,7 +157,6 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
156
157
  const Viewport = props.viewportTag as any;
157
158
  const Camera = props.cameraTag as any;
158
159
  const attributes: { [key: string]: any } = {};
159
- const flicking = this._vanillaFlicking;
160
160
 
161
161
  this.beforeRender();
162
162
 
@@ -166,31 +166,7 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
166
166
  }
167
167
  }
168
168
 
169
- const initialized = flicking && flicking.initialized;
170
- const viewportClasses: string[] = ["flicking-viewport"];
171
- const cameraClasses: string[] = ["flicking-camera"];
172
- const isHorizontal = flicking
173
- ? flicking.horizontal
174
- : props.horizontal ?? true;
175
-
176
- if (!isHorizontal) {
177
- viewportClasses.push("vertical");
178
- }
179
- if (props.hideBeforeInit && !initialized) {
180
- viewportClasses.push("flicking-hidden");
181
- }
182
- if (attributes.className) {
183
- viewportClasses.push(attributes.className);
184
- }
185
- if (props.cameraClass) {
186
- cameraClasses.push(props.cameraClass);
187
- }
188
-
189
- const cameraProps = !initialized && props.firstPanelSize
190
- ? { style: {
191
- transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)
192
- }}
193
- : {};
169
+ const { viewportClasses, cameraClasses, cameraProps } = this._getClasses(attributes, props);
194
170
 
195
171
  const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0
196
172
  ? this._getVirtualPanels()
@@ -216,19 +192,12 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
216
192
  : children.map(() => React.createRef());
217
193
  }
218
194
 
219
- private _bindEvents() {
195
+ protected _bindEvents() {
220
196
  const flicking = this._vanillaFlicking!;
221
197
 
222
198
  Object.keys(EVENTS).forEach((eventKey: keyof typeof EVENTS) => {
223
199
  const eventName = EVENTS[eventKey];
224
- const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;
225
-
226
- flicking.on(eventName, e => {
227
- e.currentTarget = this;
228
-
229
- const evtHandler = this.props[propName];
230
- evtHandler(e);
231
- });
200
+ this._bindEvent(eventName);
232
201
  });
233
202
 
234
203
  flicking.once(EVENTS.READY, () => {
@@ -236,7 +205,18 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
236
205
  });
237
206
  }
238
207
 
239
- private _checkPlugins() {
208
+ protected _bindEvent(eventName: keyof FlickingEvents) {
209
+ const propName = `on${eventName.charAt(0).toUpperCase() + eventName.slice(1)}`;
210
+
211
+ this._vanillaFlicking!.on(eventName, e => {
212
+ e.currentTarget = this;
213
+
214
+ const evtHandler = this.props[propName];
215
+ evtHandler(e);
216
+ });
217
+ }
218
+
219
+ protected _checkPlugins() {
240
220
  const flicking = this._vanillaFlicking;
241
221
  const { list, added, removed, prevList } = this._pluginsDiffer.update(this.props.plugins!) as DiffResult<Plugin>;
242
222
 
@@ -244,6 +224,42 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
244
224
  flicking.removePlugins(...removed.map(index => prevList[index]));
245
225
  }
246
226
 
227
+ protected _getClasses(attributes: { [key: string]: any }, props: typeof this.props) {
228
+ const flicking = this._vanillaFlicking;
229
+
230
+ const initialized = flicking && flicking.initialized;
231
+ const viewportClasses: string[] = ["flicking-viewport"];
232
+ const cameraClasses: string[] = ["flicking-camera"];
233
+ const isHorizontal = flicking
234
+ ? flicking.horizontal
235
+ : props.horizontal ?? true;
236
+
237
+ if (!isHorizontal) {
238
+ viewportClasses.push("vertical");
239
+ }
240
+ if (props.hideBeforeInit && !initialized) {
241
+ viewportClasses.push("flicking-hidden");
242
+ }
243
+ if (attributes.className) {
244
+ viewportClasses.push(attributes.className);
245
+ }
246
+ if (props.cameraClass) {
247
+ cameraClasses.push(props.cameraClass);
248
+ }
249
+
250
+ const cameraProps = !initialized && props.firstPanelSize
251
+ ? { style: {
252
+ transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)
253
+ }}
254
+ : {};
255
+
256
+ return {
257
+ viewportClasses,
258
+ cameraClasses,
259
+ cameraProps,
260
+ };
261
+ }
262
+
247
263
  private _hasSameChildren(prevChildren: React.ReactElement[], nextChildren: React.ReactElement[]) {
248
264
  if (prevChildren.length !== nextChildren.length || prevChildren.length === 0) return false;
249
265
 
@@ -260,7 +276,7 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
260
276
  return same;
261
277
  }
262
278
 
263
- private _getChildren(children: React.ReactNode = this.props.children) {
279
+ protected _getChildren(children: React.ReactNode = this.props.children) {
264
280
  return (React.Children.toArray(children) as Array<React.ReactElement<any>>)
265
281
  .filter(child => child.type !== ViewportSlot)
266
282
  .reduce((all, child) => {
@@ -268,7 +284,7 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
268
284
  }, []) as Array<React.ReactElement<any>>;
269
285
  }
270
286
 
271
- private _getViewportSlot() {
287
+ protected _getViewportSlot() {
272
288
  return (React.Children.toArray(this.props.children) as Array<React.ReactElement<any>>)
273
289
  .filter(child => child.type === ViewportSlot);
274
290
  }
@@ -309,7 +325,7 @@ class Flicking extends React.Component<Partial<FlickingProps & FlickingOptions>>
309
325
  });
310
326
  }
311
327
 
312
- private _getPanels() {
328
+ protected _getPanels() {
313
329
  const origChildren = this._getChildren();
314
330
  const vanillaFlicking = this._vanillaFlicking;
315
331
  const diffResult = this._diffResult;
@@ -28,6 +28,7 @@ export const DEFAULT_PROPS: FlickingProps = {
28
28
  viewportTag: "div",
29
29
  cameraTag: "div",
30
30
  cameraClass: "",
31
+ firstPanelSize: "",
31
32
  renderOnSameKey: false,
32
33
  plugins: [],
33
34
  useFindDOMNode: false,
@@ -3,12 +3,16 @@
3
3
  * egjs projects are licensed under the MIT license
4
4
  */
5
5
  import Flicking from "./Flicking";
6
+ import CrossFlicking from "./CrossFlicking";
7
+ import CrossGroup from "./CrossGroup";
6
8
  import ViewportSlot from "./ViewportSlot";
7
9
 
8
10
  export * from "@egjs/flicking";
9
11
  export * from "./types";
10
12
 
11
13
  export {
12
- ViewportSlot
14
+ CrossFlicking,
15
+ CrossGroup,
16
+ ViewportSlot,
13
17
  }
14
18
  export default Flicking;
@@ -54,3 +54,4 @@ export interface FlickingProps {
54
54
  onPanelChange: (e: PanelChangeEvent<ReactFlicking>) => any;
55
55
  [key: string]: any;
56
56
  }
57
+