@egjs/react-flicking 4.16.2 → 4.16.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,58 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __reflectGet = Reflect.get;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ var __objRest = (source, exclude) => {
24
+ var target = {};
25
+ for (var prop in source)
26
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
+ target[prop] = source[prop];
28
+ if (source != null && __getOwnPropSymbols)
29
+ for (var prop of __getOwnPropSymbols(source)) {
30
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
+ target[prop] = source[prop];
32
+ }
33
+ return target;
34
+ };
35
+ var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
36
+ var __async = (__this, __arguments, generator) => {
37
+ return new Promise((resolve, reject) => {
38
+ var fulfilled = (value) => {
39
+ try {
40
+ step(generator.next(value));
41
+ } catch (e) {
42
+ reject(e);
43
+ }
44
+ };
45
+ var rejected = (value) => {
46
+ try {
47
+ step(generator.throw(value));
48
+ } catch (e) {
49
+ reject(e);
50
+ }
51
+ };
52
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
53
+ step((generator = generator.apply(__this, __arguments)).next());
54
+ });
55
+ };
2
56
  const jsxRuntime = require("react/jsx-runtime");
3
57
  const Component = require("@egjs/component");
4
58
  const VanillaFlicking = require("@egjs/flicking");
@@ -67,19 +121,23 @@ const DEFAULT_PROPS = {
67
121
  };
68
122
  class ReactElementProvider {
69
123
  get element() {
70
- return this._el?.nativeElement;
124
+ var _a;
125
+ return (_a = this._el) == null ? void 0 : _a.nativeElement;
71
126
  }
72
127
  get rendered() {
73
- return this._el?.rendered;
128
+ var _a;
129
+ return (_a = this._el) == null ? void 0 : _a.rendered;
74
130
  }
75
131
  constructor(el) {
76
132
  this._el = el;
77
133
  }
78
134
  show() {
79
- this._el?.show();
135
+ var _a;
136
+ (_a = this._el) == null ? void 0 : _a.show();
80
137
  }
81
138
  hide() {
82
- this._el?.hide();
139
+ var _a;
140
+ (_a = this._el) == null ? void 0 : _a.hide();
83
141
  }
84
142
  }
85
143
  class ReactRenderer extends VanillaFlicking.ExternalRenderer {
@@ -88,37 +146,41 @@ class ReactRenderer extends VanillaFlicking.ExternalRenderer {
88
146
  this._reactFlicking = options.reactFlicking;
89
147
  }
90
148
  // eslint-disable-next-line @typescript-eslint/require-await
91
- async render() {
92
- const flicking = VanillaFlicking.getFlickingAttached(this._flicking);
93
- const reactFlicking = this._reactFlicking;
94
- const strategy = this._strategy;
95
- if (flicking.virtualEnabled) {
96
- strategy.updateRenderingPanels(flicking);
97
- this._rendering = true;
98
- } else {
99
- this._rendering = true;
100
- strategy.updateRenderingPanels(flicking);
101
- }
102
- strategy.renderPanels(flicking);
103
- return new Promise((resolve) => {
104
- reactFlicking.renderEmitter.once("render", () => {
105
- this._rendering = false;
106
- this._afterRender();
107
- resolve();
149
+ render() {
150
+ return __async(this, null, function* () {
151
+ const flicking = VanillaFlicking.getFlickingAttached(this._flicking);
152
+ const reactFlicking = this._reactFlicking;
153
+ const strategy = this._strategy;
154
+ if (flicking.virtualEnabled) {
155
+ strategy.updateRenderingPanels(flicking);
156
+ this._rendering = true;
157
+ } else {
158
+ this._rendering = true;
159
+ strategy.updateRenderingPanels(flicking);
160
+ }
161
+ strategy.renderPanels(flicking);
162
+ return new Promise((resolve) => {
163
+ reactFlicking.renderEmitter.once("render", () => {
164
+ this._rendering = false;
165
+ this._afterRender();
166
+ resolve();
167
+ });
168
+ reactFlicking.forceUpdate();
108
169
  });
109
- reactFlicking.forceUpdate();
110
170
  });
111
171
  }
112
- async forceRenderAllPanels() {
113
- const reactFlicking = this._reactFlicking;
114
- this._rendering = true;
115
- await super.forceRenderAllPanels();
116
- return new Promise((resolve) => {
117
- reactFlicking.renderEmitter.once("render", () => {
118
- this._rendering = false;
119
- resolve();
172
+ forceRenderAllPanels() {
173
+ return __async(this, null, function* () {
174
+ const reactFlicking = this._reactFlicking;
175
+ this._rendering = true;
176
+ yield __superGet(ReactRenderer.prototype, this, "forceRenderAllPanels").call(this);
177
+ return new Promise((resolve) => {
178
+ reactFlicking.renderEmitter.once("render", () => {
179
+ this._rendering = false;
180
+ resolve();
181
+ });
182
+ reactFlicking.forceUpdate();
120
183
  });
121
- reactFlicking.forceUpdate();
122
184
  });
123
185
  }
124
186
  destroy() {
@@ -166,13 +228,13 @@ class StrictPanel extends React__namespace.Component {
166
228
  }
167
229
  }
168
230
  const ViewportSlot = React.memo((props) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children }));
169
- var __defProp = Object.defineProperty;
231
+ var __defProp2 = Object.defineProperty;
170
232
  var __decorateClass = (decorators, target, key, kind) => {
171
233
  var result = void 0;
172
234
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
173
235
  if (decorator = decorators[i])
174
236
  result = decorator(target, key, result) || result;
175
- if (result) __defProp(target, key, result);
237
+ if (result) __defProp2(target, key, result);
176
238
  return result;
177
239
  };
178
240
  const _Flicking = class _Flicking extends React__namespace.Component {
@@ -199,10 +261,9 @@ const _Flicking = class _Flicking extends React__namespace.Component {
199
261
  providerCtor: ReactElementProvider
200
262
  })
201
263
  };
202
- const flicking = new VanillaFlicking(this._viewportElement, {
203
- ...props,
264
+ const flicking = new VanillaFlicking(this._viewportElement, __spreadProps(__spreadValues({}, props), {
204
265
  externalRenderer: new ReactRenderer(rendererOptions)
205
- });
266
+ }));
206
267
  this._vanillaFlicking = flicking;
207
268
  const children = this._getChildren();
208
269
  this._jsxDiffer = new ListDiffer(children, (panel) => panel.key);
@@ -215,13 +276,14 @@ const _Flicking = class _Flicking extends React__namespace.Component {
215
276
  }
216
277
  }
217
278
  componentWillUnmount() {
218
- this._vanillaFlicking?.destroy();
279
+ var _a;
280
+ (_a = this._vanillaFlicking) == null ? void 0 : _a.destroy();
219
281
  }
220
282
  shouldComponentUpdate(nextProps) {
221
283
  const vanillaFlicking = this._vanillaFlicking;
222
284
  const prevProps = this.props;
223
285
  if (!vanillaFlicking || !vanillaFlicking.initialized) return false;
224
- const { children, ...restProps } = nextProps;
286
+ const _a = nextProps, { children } = _a, restProps = __objRest(_a, ["children"]);
225
287
  for (const key in restProps) {
226
288
  if (prevProps[key] !== nextProps[key]) {
227
289
  return true;
@@ -251,7 +313,7 @@ const _Flicking = class _Flicking extends React__namespace.Component {
251
313
  this._checkPlugins();
252
314
  renderEmitter.trigger("render");
253
315
  flicking.camera.updateOffset();
254
- const { virtual, ...props } = this.props;
316
+ const _a = this.props, { virtual } = _a, props = __objRest(_a, ["virtual"]);
255
317
  for (const key in props) {
256
318
  if (key in flicking && flicking[key] !== props[key]) {
257
319
  flicking[key] = props[key];
@@ -262,6 +324,7 @@ const _Flicking = class _Flicking extends React__namespace.Component {
262
324
  this._diffResult = null;
263
325
  }
264
326
  render() {
327
+ var _a;
265
328
  const props = this.props;
266
329
  const Viewport = props.viewportTag;
267
330
  const Camera = props.cameraTag;
@@ -273,24 +336,24 @@ const _Flicking = class _Flicking extends React__namespace.Component {
273
336
  }
274
337
  }
275
338
  const { viewportClasses, cameraClasses, cameraProps } = this._getClasses(attributes, props);
276
- const panels = !!props.virtual && (props.panelsPerView ?? -1) > 0 ? this._getVirtualPanels() : this._getPanels();
339
+ const panels = !!props.virtual && ((_a = props.panelsPerView) != null ? _a : -1) > 0 ? this._getVirtualPanels() : this._getPanels();
277
340
  return /* @__PURE__ */ jsxRuntime.jsxs(
278
341
  Viewport,
279
- {
280
- ...attributes,
342
+ __spreadProps(__spreadValues({}, attributes), {
281
343
  className: viewportClasses.join(" "),
282
344
  ref: (e) => {
283
345
  e && (this._viewportElement = e);
284
346
  },
285
347
  children: [
286
- /* @__PURE__ */ jsxRuntime.jsx(Camera, { className: cameraClasses.join(" "), ...cameraProps, children: panels }),
348
+ /* @__PURE__ */ jsxRuntime.jsx(Camera, __spreadProps(__spreadValues({ className: cameraClasses.join(" ") }, cameraProps), { children: panels })),
287
349
  this._getViewportSlot()
288
350
  ]
289
- }
351
+ })
290
352
  );
291
353
  }
292
354
  _createPanelRefs(props, children) {
293
- const panelsPerView = props.panelsPerView ?? -1;
355
+ var _a;
356
+ const panelsPerView = (_a = props.panelsPerView) != null ? _a : -1;
294
357
  return panelsPerView > 0 && !!props.virtual ? VanillaFlicking.range(panelsPerView + 1).map(() => React__namespace.createRef()) : children.map(() => React__namespace.createRef());
295
358
  }
296
359
  _bindEvents() {
@@ -318,11 +381,12 @@ const _Flicking = class _Flicking extends React__namespace.Component {
318
381
  flicking.removePlugins(...removed.map((index) => prevList[index]));
319
382
  }
320
383
  _getClasses(attributes, props) {
384
+ var _a;
321
385
  const flicking = this._vanillaFlicking;
322
- const initialized = flicking?.initialized;
386
+ const initialized = flicking == null ? void 0 : flicking.initialized;
323
387
  const viewportClasses = ["flicking-viewport"];
324
388
  const cameraClasses = ["flicking-camera"];
325
- const isHorizontal = flicking ? flicking.horizontal : props.horizontal ?? true;
389
+ const isHorizontal = flicking ? flicking.horizontal : (_a = props.horizontal) != null ? _a : true;
326
390
  if (!isHorizontal) {
327
391
  viewportClasses.push("vertical");
328
392
  }
@@ -377,9 +441,9 @@ const _Flicking = class _Flicking extends React__namespace.Component {
377
441
  const { panelClass = "flicking-panel" } = this.props.virtual;
378
442
  const panelsPerView = this.props.panelsPerView;
379
443
  const flicking = this._vanillaFlicking;
380
- const initialized = flicking?.initialized;
444
+ const initialized = flicking == null ? void 0 : flicking.initialized;
381
445
  const renderingIndexes = initialized ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking) : VanillaFlicking.range(panelsPerView + 1);
382
- const firstPanel = flicking?.panels[0];
446
+ const firstPanel = flicking == null ? void 0 : flicking.panels[0];
383
447
  const size = firstPanel ? flicking.horizontal ? { width: firstPanel.size } : { height: firstPanel.size } : {};
384
448
  return renderingIndexes.map((idx) => {
385
449
  return /* @__PURE__ */ jsxRuntime.jsx(StrictPanel, { ref: this._panels[idx], children: /* @__PURE__ */ jsxRuntime.jsx("div", { "data-element-index": idx, className: panelClass, style: size }) }, idx);
@@ -389,7 +453,7 @@ const _Flicking = class _Flicking extends React__namespace.Component {
389
453
  const origChildren = this._getChildren();
390
454
  const vanillaFlicking = this._vanillaFlicking;
391
455
  const diffResult = this._diffResult;
392
- const children = vanillaFlicking?.initialized ? diffResult ? VanillaFlicking.getRenderingPanels(vanillaFlicking, diffResult) : VanillaFlicking.getRenderingPanels(vanillaFlicking, ListDiffer.diff(origChildren, origChildren)) : origChildren;
456
+ const children = (vanillaFlicking == null ? void 0 : vanillaFlicking.initialized) ? diffResult ? VanillaFlicking.getRenderingPanels(vanillaFlicking, diffResult) : VanillaFlicking.getRenderingPanels(vanillaFlicking, ListDiffer.diff(origChildren, origChildren)) : origChildren;
393
457
  return children.map((child, idx) => /* @__PURE__ */ jsxRuntime.jsx(StrictPanel, { ref: this._panels[idx], children: child }, child.key));
394
458
  }
395
459
  _isFragment(child) {
@@ -714,10 +778,13 @@ function useReactive(reactiveAdapter, props) {
714
778
  return result;
715
779
  }
716
780
  const useFlickingReactiveAPI = (flickingRef, options) => {
717
- return useReactive(VanillaFlicking.flickingReactiveAPIAdapter, () => ({
718
- flicking: flickingRef.current ?? void 0,
719
- options
720
- }));
781
+ return useReactive(VanillaFlicking.flickingReactiveAPIAdapter, () => {
782
+ var _a;
783
+ return {
784
+ flicking: (_a = flickingRef.current) != null ? _a : void 0,
785
+ options
786
+ };
787
+ });
721
788
  };
722
789
  Flicking.ViewportSlot = ViewportSlot;
723
790
  Flicking.useFlickingReactiveAPI = useFlickingReactiveAPI;
@@ -1 +1 @@
1
- {"version":3,"file":"flicking.cjs.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/Flicking.tsx","../../../node_modules/.pnpm/@cfcs+core@0.1.0/node_modules/@cfcs/core/dist/cfcs.esm.js","../../../node_modules/.pnpm/@cfcs+react@0.1.0/node_modules/@cfcs/react/dist/cfcs.esm.js","../src/react-flicking/reactive.ts","../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 AfterResizeEvent,\n BeforeResizeEvent,\n ChangedEvent,\n HoldEndEvent,\n HoldStartEvent,\n MoveEndEvent,\n MoveEvent,\n MoveStartEvent,\n NeedPanelEvent,\n PanelChangeEvent,\n ReachEdgeEvent,\n ReadyEvent,\n RestoredEvent,\n SelectEvent,\n VisibleChangeEvent,\n WillChangeEvent,\n WillRestoreEvent\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 { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel;\n\n public get element() {\n return this._el?.nativeElement;\n }\n public get rendered() {\n return this._el?.rendered;\n }\n\n public constructor(el: StrictPanel) {\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 { ExternalRenderer, getFlickingAttached, PanelOptions, RendererOptions } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\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 if (flicking.virtualEnabled) {\n // virtual 값은 VirtualManager Object 이므로 virtualEnabled 로 검사하는 것이 맞습니다.\n // applyTransform does not work when renderer.rendering is true. #916\n // updateRenderingPanels should be called before rendering becomes true, or transform will be applied later.\n strategy.updateRenderingPanels(flicking);\n this._rendering = true;\n } else {\n this._rendering = true;\n strategy.updateRenderingPanels(flicking);\n }\n\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, 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() {\n return this._elRef.current!;\n }\n public get rendered() {\n return !this._hide;\n }\n public get elRef() {\n return this._elRef;\n }\n\n public render() {\n return this._hide ? <></> : 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 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 */\n\nimport Component from \"@egjs/component\";\nimport VanillaFlicking, {\n EVENTS,\n FlickingEvents,\n FlickingOptions,\n getDefaultCameraTransform,\n getRenderingPanels,\n NormalRenderingStrategy,\n Plugin,\n range,\n sync,\n VirtualRenderingStrategy,\n withFlickingMethods\n} from \"@egjs/flicking\";\nimport ListDiffer, { DiffResult, diff } from \"@egjs/list-differ\";\nimport * as React from \"react\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ReactElementProvider from \"./ReactElementProvider\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport { FlickingProps } from \"./types\";\nimport ViewportSlot from \"./ViewportSlot\";\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: undefined }>();\n protected _prevChildren: React.ReactElement[];\n\n public get reactPanels() {\n return this._panels.map(panel => panel.current!);\n }\n public get renderEmitter() {\n return this._renderEmitter;\n }\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:\n props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(this._viewportElement, {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\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 ? this._getVirtualPanels() : this._getPanels();\n\n return (\n <Viewport\n {...attributes}\n className={viewportClasses.join(\" \")}\n ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}\n >\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n {panels}\n </Camera>\n {this._getViewportSlot()}\n </Viewport>\n );\n }\n\n private _createPanelRefs(\n props: this[\"props\"],\n children: Array<React.ReactElement<any>>\n ): 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?.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking ? flicking.horizontal : (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 =\n !initialized && props.firstPanelSize\n ? {\n style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }\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 return child === nextChild;\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>>).filter(\n child => child.type === ViewportSlot\n );\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children).reduce(\n (allChilds: React.ReactElement[], fragChild: React.ReactElement) => [\n ...allChilds,\n ...this._unpackFragment(fragChild)\n ],\n [] as React.ReactElement[]\n )\n : [child];\n }\n\n private _getVirtualPanels() {\n const { panelClass = \"flicking-panel\" } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking?.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking?.panels[0];\n const size = firstPanel ? (flicking.horizontal ? { width: firstPanel.size } : { height: firstPanel.size }) : {};\n\n return renderingIndexes.map(idx => {\n return (\n <StrictPanel key={idx} ref={this._panels[idx] as any}>\n <div data-element-index={idx} className={panelClass} style={size} />\n </StrictPanel>\n );\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?.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return children.map((child, idx) => (\n <StrictPanel key={child.key!} ref={this._panels[idx] as any}>\n {child}\n </StrictPanel>\n ));\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","/*\nCopyright (c) 2022-present NAVER Corp.\nname: @cfcs/core\nlicense: MIT\nauthor: NAVER Crop.\nrepository: https://github.com/naver/cfcs/tree/main/packages/core\nversion: 0.1.0\n*/\nimport Component from '@egjs/component';\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n\n/**\n * @hidden\n */\nfunction keys(obj) {\n return Object.keys(obj);\n}\n/**\n * @hidden\n */\n\nfunction camelize(str) {\n return str.replace(/[\\s-_]([a-z])/g, function (all, letter) {\n return letter.toUpperCase();\n });\n}\n/**\n * @hidden\n */\n\nfunction isString(val) {\n return typeof val === \"string\";\n}\n/**\n * @hidden\n */\n\nfunction isObject(val) {\n return typeof val === \"object\";\n}\n/**\n * @hidden\n */\n\nfunction isFunction(val) {\n return typeof val === \"function\";\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * @hidden\n */\n\nfunction findTarget(target) {\n var el;\n\n if (!target) {\n return null;\n }\n\n if (isString(target)) {\n el = document.querySelector(target);\n } else if (target instanceof Element) {\n el = target;\n } else if (\"value\" in target || \"current\" in target) {\n el = target.value || target.current;\n }\n\n return el;\n}\n/**\n * @description Sets the name of the class method to be exposed to the outside.\n * @category DOM\n * @return Property Decorator\n * @example\n * ```ts\n * import { withClassMethods } from \"@cfcs/core\";\n *\n * class YourFrameworkComponent {\n * @withClassMethod(METHOD_NAMES)\n * inst = new YourComponent();\n * }\n * ```\n */\n\nfunction withClassMethods(methods) {\n return function (prototype, memberName) {\n methods.forEach(function (name) {\n if (name in prototype) {\n return;\n }\n\n prototype[name] = function () {\n var _a;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var result = (_a = this[memberName])[name].apply(_a, args); // fix `this` type to return your own `class` instance to the instance using the decorator.\n\n\n if (result === this[memberName]) {\n return this;\n } else {\n return result;\n }\n };\n });\n };\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\nvar OBSERVERS_PATH = \"__observers__\";\nvar COMPUTED_PATH = \"__computed__\";\nvar CFCS_DETECTED_DEPENDENCIES_VERSION = 1;\nvar CFCS_DETECTED_DEPENDENCIES = \"__CFCS_DETECTED_DEPENDENCIES__\";\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\nfunction getDetectedStack() {\n // Version issues do not occur when you access the native object in the global.\n Object[CFCS_DETECTED_DEPENDENCIES] = Object[CFCS_DETECTED_DEPENDENCIES] || {};\n var versionList = Object[CFCS_DETECTED_DEPENDENCIES];\n versionList[CFCS_DETECTED_DEPENDENCIES_VERSION] = versionList[CFCS_DETECTED_DEPENDENCIES_VERSION] || [];\n return versionList[CFCS_DETECTED_DEPENDENCIES_VERSION];\n}\nfunction getCurrentDetected() {\n var stack = getDetectedStack();\n return stack[stack.length - 1];\n}\nfunction detectDependencies(host) {\n var stack = getDetectedStack();\n var observers = [];\n var detected = {\n host: host,\n observers: observers,\n push: function (observer) {\n if (host !== observer && observers.indexOf(observer) === -1) {\n observers.push(observer);\n }\n }\n };\n stack.push(detected);\n return detected;\n}\nfunction endDetectDependencies() {\n var stack = getDetectedStack();\n return stack.pop();\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * Creates a mutable ref object. You can access the `.current` value and detect the value change through `.subscribe`.\n * @category Reactive\n * @see observe\n */\n\nvar Observer =\n/*#__PURE__*/\nfunction () {\n /**\n *\n */\n function Observer(value) {\n this._emitter = new Component();\n this._current = value;\n }\n\n var __proto = Observer.prototype;\n Object.defineProperty(__proto, \"current\", {\n /**\n * return the current value.\n */\n get: function () {\n var currentDetected = getCurrentDetected();\n currentDetected === null || currentDetected === void 0 ? void 0 : currentDetected.push(this);\n return this._current;\n },\n set: function (value) {\n this._setCurrent(value);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * When the current value changes, the callback function is called.\n */\n\n __proto.subscribe = function (callback) {\n this.current;\n\n this._emitter.on(\"update\", callback);\n\n return this;\n };\n /**\n * Cancel the registered subscription through callback.\n */\n\n\n __proto.unsubscribe = function (callback) {\n this._emitter.off(\"update\", callback);\n\n return this;\n };\n\n __proto._setCurrent = function (value) {\n var prevValue = this._current;\n var isUpdate = value !== prevValue;\n this._current = value;\n\n if (isUpdate) {\n this._emitter.trigger(\"update\", value, prevValue);\n }\n };\n /**\n * @hidden\n */\n\n\n __proto.toString = function () {\n return \"\".concat(this.current);\n };\n /**\n * @hidden\n */\n\n\n __proto.valueOf = function () {\n return this.current;\n };\n\n return Observer;\n}();\n\n/**\n * @category Reactive\n * @hidden\n */\n\nvar ComputedObserver =\n/*#__PURE__*/\nfunction (_super) {\n __extends(ComputedObserver, _super);\n /**\n * @description Creates a new computed observer from the values of other observers.\n * It is read-only and if you change the value of the observer used inside the callback, its value will be automatically updated.\n * @param _computedCallback A function for observers to be computed.\n */\n\n\n function ComputedObserver(_computedCallback) {\n var _this = _super.call(this) || this;\n\n _this._computedCallback = _computedCallback;\n _this._registered = [];\n\n _this._onCheckUpdate = function () {\n _this._setCurrent(_this.current);\n };\n\n _this._current = _this.current;\n return _this;\n }\n\n var __proto = ComputedObserver.prototype;\n Object.defineProperty(__proto, \"current\", {\n get: function () {\n var _this = this;\n\n detectDependencies(this);\n\n var value = this._computedCallback();\n\n var results = endDetectDependencies();\n\n this._registered.forEach(function (observer) {\n observer.unsubscribe(_this._onCheckUpdate);\n });\n\n results.observers.forEach(function (observer) {\n observer.subscribe(_this._onCheckUpdate);\n });\n this._registered = results.observers;\n return value;\n },\n enumerable: false,\n configurable: true\n });\n return ComputedObserver;\n}(Observer);\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n\nfunction injectObserve(prototype, memberName, publicName) {\n if (publicName === void 0) {\n publicName = memberName;\n }\n\n var nextAttributes = {\n configurable: true,\n get: function () {\n return getObserver(this, publicName).current;\n },\n set: function (value) {\n getObserver(this, publicName, value).current = value;\n }\n };\n Object.defineProperty(prototype, memberName, nextAttributes);\n\n if (publicName !== memberName) {\n Object.defineProperty(prototype, publicName, {\n configurable: true,\n get: function () {\n return getObserver(this, publicName).current;\n }\n });\n }\n}\n/**\n * @description `Observe` is a property decorator and converts the property into a `reactive state`. You can detect its status through `.subscribe`.\n * @category Reactive-Decorator\n * @see ReactiveSubscribe\n * @example\n* ```ts\nimport { ReactiveSubscribe, Observe } from \"@cfcs/core\";\n\n@ReactiveSubscribe\nclass Component {\n // The public name and state name are the same.\n @Observe value1 = 1;\n // If you want to set public name and private properties separately\n @Observe(\"value2\") _value2 = 1;\n\n constructor() {\n requestAnimationFrame(() => {\n this.value1 = 2;\n });\n }\n}\ninterface C\n```\n */\n\n\nfunction Observe() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (args.length > 1) {\n return injectObserve(args[0], args[1]);\n }\n\n return function (prototype, memberName) {\n return injectObserve(prototype, memberName, args[0]);\n };\n}\n/**\n * @hidden\n */\n\nfunction Reactive() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return Observe.apply(void 0, args);\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * @hidden\n */\n\nfunction injectReactiveSubscribe(object) {\n object[\"subscribe\"] = function (name, callback) {\n this[name];\n getObserver(this, name).subscribe(callback);\n };\n\n object[\"unsubscribe\"] = function (name, callback) {\n var _this = this;\n\n if (!name) {\n keys(getObservers(this)).forEach(function (observerName) {\n _this.unsubscribe(observerName);\n });\n return;\n }\n\n if (!(name in this)) {\n return;\n }\n\n getObserver(this, name).unsubscribe(callback);\n };\n}\n/**\n * @description `ReactiveSubscribe` is a class decorator and adds `.subscribe` and `.unsubscribe` methods.\n * @category Reactive-Decorator\n * @see Observe\n * @example\n * ```ts\nimport { ReactiveSubscribe, Observe } from \"@cfcs/core\";\n\n@ReactiveSubscribe\nclass Component {\n @Observe value1 = 1;\n\n constructor() {\n requestAnimationFrame(() => {\n this.value1 = 2;\n });\n }\n}\n\ninterface Component extends ReactiveSubscribe<{\n value1: number;\n value2: number;\n}> {}\n\nconst component = new Component();\n\n// 1\nconsole.log(component.value1);\n\ncomponent.subscribe(\"value1\", nextValue => {\n // When the change event occurs => (2, 2)\n console.log(nextValue, component.value2);\n});\n```\n */\n\nfunction ReactiveSubscribe(Constructor) {\n var prototype = Constructor.prototype;\n injectReactiveSubscribe(prototype);\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n\nfunction makeReactiveObject(setup, all) {\n var result = isFunction(setup) ? setup() : setup;\n var reactiveObject = {};\n defineObservers(reactiveObject);\n keys(result).forEach(function (name) {\n var value = result[name];\n\n if (isObserver(value)) {\n setObserver(reactiveObject, name, value);\n } else {\n setObserver(reactiveObject, name, observe(value));\n }\n\n Observe(name)(reactiveObject, name);\n });\n injectReactiveSubscribe(reactiveObject);\n return reactiveObject;\n}\n/**\n * @description Make the return value of the corresponding object or function a reactive object.\n * @category Reactive\n * @param setup - The target object or function to which reactive is applied\n * @returns Makes all values into reactive objects.\n * @example\n * ```ts\n * import { reactive } from \"@cfcs/core\";\n *\n * const obj = reactive({\n * value1: 1,\n * value2: 2,\n * });\n *\n * obj.subscribe(\"value1\", value1 => {\n * console.log(value1);\n * });\n * obj.value1 = 2;\n * ```\n */\n\n\nfunction reactive(setup) {\n return makeReactiveObject(setup);\n}\n/**\n * @description Make the return value of the corresponding object or function a reactive object.\n * @category Reactive\n * @param setup - The target object or function to which reactive is applied\n * @returns Only the values to which observer is applied are objects to which reactive is applied.\n * @example\n * ```ts\n * import { partialReactive, observe } from \"@cfcs/core\";\n *\n * const value1 = observe(1);\n * const value2 = observe(2);\n * const obj = partialReactive({\n * value1,\n * value2,\n * });\n *\n * obj.subscribe(\"value1\", value1 => {\n * console.log(value1);\n * });\n * value1.current = 2;\n * ```\n */\n\nfunction partialReactive(setup) {\n return makeReactiveObject(setup);\n}\n/**\n * @description Creates a mutable ref object. You can access the `.current` value and detect the value change through `.subscribe`.\n * @category Reactive\n * @example\n * ```ts\n * import { observe } from \"@cfcs/core\";\n *\n * const ob1 = observe(1);\n *\n * ob1.subscribe(nextValue => {\n * console.log(nextValue);\n * });\n *\n * ob1.current = 2;\n * ```\n */\n\nfunction observe(defaultValue) {\n return new Observer(defaultValue);\n}\n/**\n * @hidden\n */\n\nfunction computed(computedCallback) {\n return new ComputedObserver(computedCallback);\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * @hidden\n */\n\nfunction withReactiveMethods(ref, methods) {\n var obj = {};\n\n if (!methods) {\n return obj;\n }\n\n methods.forEach(function (name) {\n obj[name] = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var current = ref.current || ref.value;\n return current[name].apply(current, args);\n };\n });\n return obj;\n}\n/**\n * @hidden\n */\n\nfunction defineObservers(instance) {\n var observers = {};\n Object.defineProperty(instance, OBSERVERS_PATH, {\n get: function () {\n return observers;\n }\n });\n return observers;\n}\n/**\n * @hidden\n */\n\nfunction getObservers(instance, isComputed) {\n var _a, _b;\n\n if (!instance[OBSERVERS_PATH]) {\n defineObservers(instance);\n }\n\n var observers = instance[OBSERVERS_PATH];\n\n if (!isComputed) {\n var computedList = (_b = (_a = instance === null || instance === void 0 ? void 0 : instance.constructor) === null || _a === void 0 ? void 0 : _a.prototype) === null || _b === void 0 ? void 0 : _b[COMPUTED_PATH];\n\n if (computedList) {\n computedList.forEach(function (name) {\n if (!(name in observers) && name in instance) {\n instance[name];\n }\n });\n }\n }\n\n return observers;\n}\n/**\n * @hidden\n */\n\nfunction getObserver(instance, name, defaultValue) {\n var observers = getObservers(instance);\n\n if (!observers[name]) {\n observers[name] = observe(defaultValue);\n }\n\n return observers[name];\n}\n/**\n * @hidden\n */\n\nfunction setObserver(instance, name, observer) {\n var observers = getObservers(instance);\n observers[name] = observer;\n}\n/**\n * @description Whether that object is an observer instance\n * @category Reactive\n */\n\nfunction isObserver(val) {\n return val && isObject(val) && \"current\" in val && \"subscribe\" in val && \"unsubscribe\" in val;\n}\n/**\n * @description Whether the object is reactive\n * @category Reactive\n */\n\nfunction isReactive(val) {\n return val && !isObserver(val) && \"subscribe\" in val && \"unsubscribe\" in val;\n}\n\n/**\n * @category Reactive\n * @hidden\n */\n\nfunction adaptReactive(adapter, props) {\n var objectAdapter = isFunction(adapter) ? {\n setup: adapter\n } : adapter;\n\n function getProps() {\n var _a, _b, _c, _d, _e;\n\n return (_e = (_c = (_a = props === null || props === void 0 ? void 0 : props()) !== null && _a !== void 0 ? _a : (_b = objectAdapter.props) === null || _b === void 0 ? void 0 : _b.call(objectAdapter)) !== null && _c !== void 0 ? _c : (_d = objectAdapter.data) === null || _d === void 0 ? void 0 : _d.call(objectAdapter)) !== null && _e !== void 0 ? _e : {};\n }\n\n var eventEmitter = new Component();\n var mountedHooks = [];\n var initHooks = [];\n var destroyHooks = [];\n var onHooks = [];\n var instanceRef = {\n current: null\n };\n var offHooksList = [];\n var initialState = null;\n var eventNames = [];\n var methodNames = [];\n\n var onMounted = function (callback) {\n mountedHooks.push(callback);\n };\n\n var onInit = function (callback) {\n initHooks.push(callback);\n };\n\n var onDestroy = function (callback) {\n destroyHooks.push(callback);\n };\n\n var on = function (callback) {\n onHooks.push(callback);\n };\n\n var emit = function (eventName) {\n var params = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n\n eventEmitter.trigger.apply(eventEmitter, __spreadArray([eventName], params, false));\n };\n\n var setInitialState = function (state) {\n initialState = state;\n };\n\n var setEvents = function (events) {\n eventNames = events;\n };\n\n var setMethods = function (methods) {\n methodNames = methods;\n };\n\n if (objectAdapter.setup) {\n instanceRef.current = objectAdapter.setup({\n getProps: getProps,\n setInitialState: setInitialState,\n setEvents: setEvents,\n setMethods: setMethods,\n onMounted: onMounted,\n onDestroy: onDestroy,\n onInit: onInit,\n emit: emit,\n on: on\n }) || null;\n }\n\n if (objectAdapter.created) {\n instanceRef.current = objectAdapter.created(getProps()) || null;\n }\n\n if (objectAdapter.events) {\n setEvents(objectAdapter.events);\n }\n\n if (objectAdapter.state) {\n setInitialState(objectAdapter.state);\n }\n\n if (objectAdapter.methods) {\n setMethods(objectAdapter.methods);\n }\n\n if (objectAdapter.mounted) {\n onMounted(objectAdapter.mounted);\n }\n\n if (objectAdapter.destroy) {\n destroyHooks.push(objectAdapter.destroy);\n }\n\n if (objectAdapter.init) {\n initHooks.push(objectAdapter.init);\n }\n\n if (objectAdapter.on) {\n onHooks.push(function (instance, eventName, listener) {\n var off = objectAdapter.on(instance, eventName, listener);\n return function () {\n var _a;\n\n off && off();\n (_a = objectAdapter.off) === null || _a === void 0 ? void 0 : _a.call(objectAdapter, instance, eventName, listener);\n };\n });\n }\n\n return {\n events: function () {\n return eventNames;\n },\n state: function () {\n var inst = instanceRef.current;\n\n if (initialState) {\n return initialState;\n }\n\n if (inst) {\n var observers_1 = getObservers(inst);\n setInitialState(keys(observers_1).reduce(function (prev, cur) {\n prev[cur] = observers_1[cur].current;\n return prev;\n }, {}));\n }\n\n return initialState || {};\n },\n instance: function () {\n return instanceRef.current;\n },\n mounted: function () {\n var props = getProps();\n mountedHooks.forEach(function (hook) {\n instanceRef.current = hook(props, instanceRef.current) || instanceRef.current;\n });\n },\n init: function () {\n // on events\n var instance = instanceRef.current;\n var props = getProps();\n offHooksList = eventNames.map(function (eventName) {\n var listener = function () {\n var _a;\n\n var params = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n\n (_a = eventEmitter).trigger.apply(_a, __spreadArray([eventName], params, false));\n };\n\n var instance = instanceRef.current;\n return onHooks.map(function (hook) {\n return hook(instance, eventName, listener);\n }).filter(Boolean);\n }); // init\n\n initHooks.forEach(function (hook) {\n hook(instance, props);\n });\n },\n destroy: function () {\n // off events\n offHooksList.forEach(function (offHooks) {\n offHooks.forEach(function (hook) {\n hook();\n });\n }); // destroy\n\n eventEmitter.off();\n var instance = instanceRef.current;\n var props = getProps();\n destroyHooks.forEach(function (hook) {\n hook(instance, props);\n });\n },\n methods: function () {\n return withReactiveMethods(instanceRef, methodNames);\n },\n on: function (eventName, listener) {\n eventEmitter.on(eventName, listener);\n },\n off: function (eventName, listener) {\n eventEmitter.off(eventName, listener);\n }\n };\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * @description `Computed` is a property decorator.\n * Changes in computed state values are also recognized according to changes in observers used within the getter function.\n * You can detect its status through `.subscribe`.\n * @hidden\n * @category Reactive-Decorator\n * @see ReactiveSubscribe\n * @example\n * ```ts\nconst ob1 = observe(0);\nconst ob2 = observe(1);\n\n// When\n@ReactiveSubscribe\nclass TestComputed {\n @Computed\n get ob3() {\n return ob1.current + ob2.current;\n }\n}\nconst inst = new TestComputed();\n\ninst.subscribe(\"ob3\", ob3 => {\n console.log(ob3);\n});\n\nob1.current = 1;\n```\n */\n\nfunction Computed(prototype, memberName, attributes) {\n var get = attributes.get;\n\n function getComputed() {\n var observers = getObservers(this, true);\n\n if (!(memberName in observers)) {\n observers[memberName] = computed(get.bind(this));\n }\n\n return getObserver(this, memberName).current;\n }\n\n var nextAttributes = {\n configurable: true,\n get: getComputed\n };\n prototype[COMPUTED_PATH] || (prototype[COMPUTED_PATH] = []);\n var computedList = prototype[COMPUTED_PATH];\n\n if (computedList.indexOf(memberName) === -1) {\n computedList.push(memberName);\n }\n\n Object.defineProperty(prototype, memberName, nextAttributes);\n return nextAttributes;\n}\n\nexport { Computed, ComputedObserver, Observe, Observer, Reactive, ReactiveSubscribe, adaptReactive, camelize, computed, defineObservers, findTarget, getObserver, getObservers, injectReactiveSubscribe, isFunction, isObject, isObserver, isReactive, isString, keys, observe, partialReactive, reactive, setObserver, withClassMethods, withReactiveMethods };\n//# sourceMappingURL=cfcs.esm.js.map\n","/*\nCopyright (c) 2022-present NAVER Corp.\nname: @cfcs/react\nlicense: MIT\nauthor: NAVER Corp.\nrepository: https://github.com/naver/cfcs/tree/main/packages/react\nversion: 0.1.0\n*/\nimport { adaptReactive, keys, camelize } from '@cfcs/core';\nimport { useRef, useMemo, useState, useEffect } from 'react';\n\n/**\n * @description In React, you can create reactive components through adapters.\n * @category Reactive\n * @example\n * ```ts\n * import { useReactive } from \"@cfcs/react\";\n *\n * export function useReactiveComponent() {\n * return useReactive(REACTIVE_ADAPTER);\n * }\n * ```\n */\n\nfunction useReactive(reactiveAdapter, props) {\n var readRef = useRef(true);\n var adaptResult = useMemo(function () {\n return adaptReactive(reactiveAdapter, props);\n }, []);\n var reactiveState = adaptResult.state();\n var names = keys(reactiveState);\n var states = useState({})[0];\n\n var _loop_1 = function (name) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var state = useState(function () {\n return reactiveState[name];\n });\n states[name] = {\n getter: false,\n set: state[1],\n value: state[0]\n };\n };\n\n for (var name in reactiveState) {\n _loop_1(name);\n }\n\n readRef.current = true;\n var methods = useMemo(function () {\n return adaptResult.methods();\n }, []);\n useEffect(function () {\n readRef.current = false;\n });\n useEffect(function () {\n adaptResult.mounted();\n var inst = adaptResult.instance();\n names.forEach(function (name) {\n inst.subscribe(name, function (value) {\n states[name].value = value;\n\n if (states[name].getter) {\n states[name].set(value);\n }\n });\n });\n adaptResult.init();\n return function () {\n adaptResult.destroy();\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var result = names.reduce(function (result, name) {\n if (!methods[name]) {\n Object.defineProperty(result, name, {\n enumerable: true,\n get: function () {\n if (readRef.current) {\n states[name].getter = true;\n }\n\n return states[name].value;\n }\n });\n }\n\n return result;\n }, {});\n var reactiveEvents = adaptResult.events();\n reactiveEvents.forEach(function (name) {\n result[camelize(\"on \".concat(name))] = function (callback, dependencies) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var listener = useMemo(function () {\n adaptResult.on(name, callback);\n return callback;\n }, dependencies);\n useEffect(function () {\n adaptResult.off(name, listener);\n adaptResult.on(name, listener);\n return function () {\n adaptResult.off(name, listener);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [listener]);\n };\n });\n keys(methods).forEach(function (name) {\n result[name] = methods[name];\n });\n return result;\n}\n\nexport { useReactive };\n//# sourceMappingURL=cfcs.esm.js.map\n","import { useReactive } from \"@cfcs/react\";\nimport { FlickingReactiveAPIOptions, flickingReactiveAPIAdapter } from \"@egjs/flicking\";\nimport { RefObject } from \"react\";\nimport Flicking from \"./Flicking\";\n\nexport const useFlickingReactiveAPI = (flickingRef: RefObject<Flicking>, options?: FlickingReactiveAPIOptions) => {\n return useReactive(flickingReactiveAPIAdapter, () => ({\n flicking: flickingRef.current ?? undefined,\n options\n }));\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport { useFlickingReactiveAPI } from \"./reactive\";\nimport ViewportSlot from \"./ViewportSlot\";\n\n(Flicking as any).ViewportSlot = ViewportSlot;\n(Flicking as any).useFlickingReactiveAPI = useFlickingReactiveAPI;\nexport default Flicking;\n"],"names":["ExternalRenderer","getFlickingAttached","React","jsx","Fragment","VirtualRenderingStrategy","NormalRenderingStrategy","sync","jsxs","range","EVENTS","getDefaultCameraTransform","getRenderingPanels","diff","withFlickingMethods","props","instance","useRef","useMemo","useState","name","useEffect","result","flickingReactiveAPIAdapter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0BO,MAAM,gBAA+B;AAAA,EAC1C,aAAa;AAAA,EACb,WAAW;AAAA,EACX,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,SAAS,CAAA;AAAA,EACT,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,SAAS,CAAC,MAAkB;AAAA,EAAC;AAAA,EAC7B,gBAAgB,CAAC,MAAyB;AAAA,EAAC;AAAA,EAC3C,eAAe,CAAC,MAAwB;AAAA,EAAC;AAAA,EACzC,aAAa,CAAC,MAAsB;AAAA,EAAC;AAAA,EACrC,WAAW,CAAC,MAAoB;AAAA,EAAC;AAAA,EACjC,aAAa,CAAC,MAAsB;AAAA,EAAC;AAAA,EACrC,QAAQ,CAAC,MAAiB;AAAA,EAAC;AAAA,EAC3B,WAAW,CAAC,MAAoB;AAAA,EAAC;AAAA,EACjC,cAAc,CAAC,MAAuB;AAAA,EAAC;AAAA,EACvC,WAAW,CAAC,MAAoB;AAAA,EAAC;AAAA,EACjC,eAAe,CAAC,MAAwB;AAAA,EAAC;AAAA,EACzC,YAAY,CAAC,MAAqB;AAAA,EAAC;AAAA,EACnC,UAAU,CAAC,MAAmB;AAAA,EAAC;AAAA,EAC/B,aAAa,CAAC,MAAsB;AAAA,EAAC;AAAA,EACrC,iBAAiB,CAAC,MAA0B;AAAA,EAAC;AAAA,EAC7C,aAAa,CAAC,MAAsB;AAAA,EAAC;AAAA,EACrC,eAAe,CAAC,MAAwB;AAAA,EAAC;AAC3C;AC7CA,MAAM,qBAAgD;AAAA,EAGpD,IAAW,UAAU;AACnB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAW,WAAW;AACpB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEO,YAAY,IAAiB;AAClC,SAAK,MAAM;AAAA,EACb;AAAA,EAEO,OAAO;AACZ,SAAK,KAAK,KAAA;AAAA,EACZ;AAAA,EAEO,OAAO;AACZ,SAAK,KAAK,KAAA;AAAA,EACZ;AACF;ACfA,MAAM,sBAAsBA,gBAAAA,iBAAiB;AAAA,EAIpC,YAAY,SAA+B;AAChD,UAAM,OAAO;AAEb,SAAK,iBAAiB,QAAQ;AAAA,EAChC;AAAA;AAAA,EAGA,MAAa,SAAS;AACpB,UAAM,WAAWC,gBAAAA,oBAAoB,KAAK,SAAS;AACnD,UAAM,gBAAgB,KAAK;AAC3B,UAAM,WAAW,KAAK;AAEtB,QAAI,SAAS,gBAAgB;AAI3B,eAAS,sBAAsB,QAAQ;AACvC,WAAK,aAAa;AAAA,IACpB,OAAO;AACL,WAAK,aAAa;AAClB,eAAS,sBAAsB,QAAQ;AAAA,IACzC;AAEA,aAAS,aAAa,QAAQ;AAE9B,WAAO,IAAI,QAAc,CAAA,YAAW;AAClC,oBAAc,cAAc,KAAK,UAAU,MAAM;AAC/C,aAAK,aAAa;AAClB,aAAK,aAAA;AACL,gBAAA;AAAA,MACF,CAAC;AACD,oBAAc,YAAA;AAAA,IAChB,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,uBAAuB;AAClC,UAAM,gBAAgB,KAAK;AAE3B,SAAK,aAAa;AAClB,UAAM,MAAM,qBAAA;AAEZ,WAAO,IAAI,QAAc,CAAA,YAAW;AAClC,oBAAc,cAAc,KAAK,UAAU,MAAM;AAC/C,aAAK,aAAa;AAClB,gBAAA;AAAA,MACF,CAAC;AACD,oBAAc,YAAA;AAAA,IAChB,CAAC;AAAA,EACH;AAAA,EAEO,UAAU;AACf,UAAM,QAAA;AACN,SAAK,eAAe,cAAc,IAAI,QAAQ;AAAA,EAChD;AAAA,EAEU,iBAAiB;AACzB,UAAM,WAAWA,gBAAAA,oBAAoB,KAAK,SAAS;AACnD,UAAM,gBAAgB,KAAK;AAC3B,UAAM,cAAc,cAAc;AAElC,SAAK,UAAU,KAAK,UAAU,cAAc,UAAU,WAAW;AAAA,EACnE;AAAA,EAEU,aAAa,mBAAgC,SAAuB;AAC5E,WAAO,KAAK,UAAU,YAAY,mBAAmB,OAAO;AAAA,EAC9D;AACF;AC7EA,MAAM,oBAAoBC,iBAAM,UAA6C;AAAA,EAA7E,cAAA;AAAA,UAAA,GAAA,SAAA;AACE,SAAQ,QAAiB;AAEzB,SAAQ,SAAuCA,iBAAM,UAAA;AAAA,EAAU;AAAA,EAE/D,IAAW,gBAAgB;AACzB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EACA,IAAW,WAAW;AACpB,WAAO,CAAC,KAAK;AAAA,EACf;AAAA,EACA,IAAW,QAAQ;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,SAAS;AACd,WAAO,KAAK,QAAQC,2BAAAA,IAAAC,WAAAA,UAAA,EAAE,IAAM,KAAK,YAAA;AAAA,EACnC;AAAA,EAEO,OAAO;AACZ,SAAK,QAAQ;AAAA,EACf;AAAA,EAEO,OAAO;AACZ,SAAK,QAAQ;AAAA,EACf;AAAA,EAEQ,cAAc;AACpB,WAAOF,iBAAM,aAAaA,iBAAM,SAAS,KAAK,KAAK,MAAM,QAAQ,GAAyB;AAAA,MACxF,KAAK,KAAK;AAAA,IAAA,CACX;AAAA,EACH;AACF;AChCA,MAAM,eAAe,MAAM,KAAK,CAAC,UAAoCC,2BAAAA,IAAAC,WAAAA,UAAA,EAAG,UAAA,MAAM,UAAS,CAAG;;;;;;;;;;ACwB1F,MAAM,YAAN,MAAM,kBAAiBF,iBAAM,UAAoD;AAAA,EAmBxE,YAAY,OAAiD;AAClE,UAAM,KAAK;AAhBb,SAAQ,UAA4E,CAAA;AAKpF,SAAQ,iBAAiB,IAAI,UAAA;AAa3B,UAAM,WAAW,KAAK,aAAA;AACtB,SAAK,UAAU,KAAK,iBAAiB,OAAO,QAAQ;AACpD,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAbA,IAAW,cAAc;AACvB,WAAO,KAAK,QAAQ,IAAI,CAAA,UAAS,MAAM,OAAQ;AAAA,EACjD;AAAA,EACA,IAAW,gBAAgB;AACzB,WAAO,KAAK;AAAA,EACd;AAAA,EAUO,oBAAoB;AACzB,UAAM,QAAQ,KAAK;AACnB,UAAM,kBAAwC;AAAA,MAC5C,eAAe;AAAA,MACf,OAAO,MAAM;AAAA,MACb,UACE,MAAM,WAAW,MAAM,gBAAgB,IACnC,IAAIG,gBAAAA,6BACJ,IAAIC,wCAAwB;AAAA,QAC1B,cAAc;AAAA,MAAA,CACf;AAAA,IAAA;AAGT,UAAM,WAAW,IAAI,gBAAgB,KAAK,kBAAkB;AAAA,MAC1D,GAAG;AAAA,MACH,kBAAkB,IAAI,cAAc,eAAe;AAAA,IAAA,CACpD;AAED,SAAK,mBAAmB;AAExB,UAAM,WAAW,KAAK,aAAA;AACtB,SAAK,aAAa,IAAI,WAAW,UAAU,CAAA,UAAS,MAAM,GAAI;AAC9D,SAAK,iBAAiB,IAAI,WAAA;AAC1B,SAAK,gBAAgB;AAErB,SAAK,YAAA;AACL,SAAK,cAAA;AAEL,QAAI,MAAM,QAAQ;AAChB,eAAS,UAAU,MAAM,MAAM;AAAA,IACjC;AAAA,EACF;AAAA,EAEO,uBAAuB;AAC5B,SAAK,kBAAkB,QAAA;AAAA,EACzB;AAAA,EAEO,sBAAsB,WAAwE;AACnG,UAAM,kBAAkB,KAAK;AAC7B,UAAM,YAAY,KAAK;AAEvB,QAAI,CAAC,mBAAmB,CAAC,gBAAgB,YAAa,QAAO;AAE7D,UAAM,EAAE,UAAU,GAAG,UAAA,IAAc;AAEnC,eAAW,OAAO,WAAW;AAC3B,UAAI,UAAU,GAAG,MAAM,UAAU,GAAG,GAAG;AACrC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,eAAe,KAAK;AAC1B,UAAM,eAAe,KAAK,aAAa,QAAQ;AAC/C,QAAI,UAAU,mBAAmB,CAAC,KAAK,iBAAiB,cAAc,YAAY,EAAG,QAAO;AAE5F,WAAO;AAAA,EACT;AAAA,EAEO,eAAe;AACpB,UAAM,kBAAkB,KAAK;AAC7B,UAAM,QAAQ,KAAK;AACnB,UAAM,eAAe,KAAK;AAK1B,QAAI,CAAC,mBAAmB,CAAC,gBAAgB,eAAe,KAAK,YAAa;AAE1E,UAAM,eAAe,KAAK,aAAa,MAAM,QAAQ;AACrD,QAAI,MAAM,mBAAmB,CAAC,KAAK,iBAAiB,cAAc,YAAY,GAAG;AAC/E,WAAK,UAAU,KAAK,iBAAiB,OAAO,YAAY;AACxD,WAAK,cAAc,KAAK,WAAW,OAAO,YAAY;AACtD,WAAK,gBAAgB;AAAA,IACvB;AAAA,EACF;AAAA,EAEO,qBAAqB;AAC1B,UAAM,WAAW,KAAK;AACtB,UAAM,gBAAgB,KAAK;AAC3B,UAAM,aAAa,KAAK;AAExB,SAAK,cAAA;AACL,kBAAc,QAAQ,QAAQ;AAC9B,aAAS,OAAO,aAAA;AAGhB,UAAM,EAAE,SAAS,GAAG,MAAA,IAAU,KAAK;AACnC,eAAW,OAAO,OAAO;AACvB,UAAI,OAAO,YAAY,SAAS,GAAG,MAAM,MAAM,GAAG,GAAG;AACnD,iBAAS,GAAG,IAAI,MAAM,GAAG;AAAA,MAC3B;AAAA,IACF;AAEA,QAAI,CAAC,cAAc,CAAC,SAAS,YAAa;AAE1CC,oBAAAA,KAAK,UAAU,YAAY,KAAK,WAAW;AAE3C,SAAK,cAAc;AAAA,EACrB;AAAA,EAEO,SAAS;AACd,UAAM,QAAQ,KAAK;AACnB,UAAM,WAAW,MAAM;AACvB,UAAM,SAAS,MAAM;AACrB,UAAM,aAAqC,CAAA;AAE3C,SAAK,aAAA;AAEL,eAAW,QAAQ,OAAO;AACxB,UAAI,EAAE,QAAQ,kBAAkB,EAAE,QAAQ,gBAAgB,YAAY;AACpE,mBAAW,IAAI,IAAI,MAAM,IAAI;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,EAAE,iBAAiB,eAAe,YAAA,IAAgB,KAAK,YAAY,YAAY,KAAK;AAE1F,UAAM,SAAS,CAAC,CAAC,MAAM,YAAY,MAAM,iBAAiB,MAAM,IAAI,KAAK,kBAAA,IAAsB,KAAK,WAAA;AAEpG,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ,WAAW,gBAAgB,KAAK,GAAG;AAAA,QACnC,KAAK,CAAC,MAAoB;AACxB,gBAAM,KAAK,mBAAmB;AAAA,QAChC;AAAA,QAEA,UAAA;AAAA,UAAAL,2BAAAA,IAAC,QAAA,EAAO,WAAW,cAAc,KAAK,GAAG,GAAI,GAAG,aAC7C,UAAA,OAAA,CACH;AAAA,UACC,KAAK,iBAAA;AAAA,QAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,EAG7B;AAAA,EAEQ,iBACN,OACA,UACkE;AAClE,UAAM,gBAAgB,MAAM,iBAAiB;AAE7C,WAAO,gBAAgB,KAAK,CAAC,CAAC,MAAM,UAChCM,gBAAAA,MAAM,gBAAgB,CAAC,EAAE,IAAI,MAAMP,iBAAM,WAAW,IACpD,SAAS,IAAI,MAAMA,iBAAM,WAAW;AAAA,EAC1C;AAAA,EAEU,cAAc;AACtB,UAAM,WAAW,KAAK;AAEtB,WAAO,KAAKQ,gBAAAA,MAAM,EAAE,QAAQ,CAAC,aAAkC;AAC7D,YAAM,YAAYA,gBAAAA,OAAO,QAAQ;AACjC,WAAK,WAAW,SAAS;AAAA,IAC3B,CAAC;AAED,aAAS,KAAKA,uBAAO,OAAO,MAAM;AAChC,WAAK,YAAA;AAAA,IACP,CAAC;AAAA,EACH;AAAA,EAEU,WAAW,WAAiC;AACpD,UAAM,WAAW,KAAK,UAAU,OAAO,CAAC,EAAE,YAAA,IAAgB,UAAU,MAAM,CAAC,CAAC;AAE5E,SAAK,iBAAkB,GAAG,WAAW,CAAA,MAAK;AACxC,QAAE,gBAAgB;AAElB,YAAM,aAAa,KAAK,MAAM,QAAQ;AACtC,iBAAW,CAAC;AAAA,IACd,CAAC;AAAA,EACH;AAAA,EAEU,gBAAgB;AACxB,UAAM,WAAW,KAAK;AACtB,UAAM,EAAE,MAAM,OAAO,SAAS,SAAA,IAAa,KAAK,eAAe,OAAO,KAAK,MAAM,OAAQ;AAEzF,aAAS,WAAW,GAAG,MAAM,IAAI,WAAS,KAAK,KAAK,CAAC,CAAC;AACtD,aAAS,cAAc,GAAG,QAAQ,IAAI,WAAS,SAAS,KAAK,CAAC,CAAC;AAAA,EACjE;AAAA,EAEU,YAAY,YAAoC,OAA0B;AAClF,UAAM,WAAW,KAAK;AAEtB,UAAM,cAAc,UAAU;AAC9B,UAAM,kBAA4B,CAAC,mBAAmB;AACtD,UAAM,gBAA0B,CAAC,iBAAiB;AAClD,UAAM,eAAe,WAAW,SAAS,aAAc,MAAM,cAAc;AAE3E,QAAI,CAAC,cAAc;AACjB,sBAAgB,KAAK,UAAU;AAAA,IACjC;AACA,QAAI,MAAM,kBAAkB,CAAC,aAAa;AACxC,sBAAgB,KAAK,iBAAiB;AAAA,IACxC;AACA,QAAI,WAAW,WAAW;AACxB,sBAAgB,KAAK,WAAW,SAAS;AAAA,IAC3C;AACA,QAAI,MAAM,aAAa;AACrB,oBAAc,KAAK,MAAM,WAAW;AAAA,IACtC;AAEA,UAAM,cACJ,CAAC,eAAe,MAAM,iBAClB;AAAA,MACE,OAAO;AAAA,QACL,WAAWC,gBAAAA,0BAA0B,KAAK,MAAM,OAAO,KAAK,MAAM,YAAY,KAAK,MAAM,cAAc;AAAA,MAAA;AAAA,IACzG,IAEF,CAAA;AAEN,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEQ,iBAAiB,cAAoC,cAAoC;AAC/F,QAAI,aAAa,WAAW,aAAa,UAAU,aAAa,WAAW,EAAG,QAAO;AAErF,UAAM,OAAO,aAAa,MAAM,CAAC,OAAO,QAAQ;AAC9C,YAAM,YAAY,aAAa,GAAG;AAElC,aAAO,UAAU;AAAA,IACnB,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEU,aAAa,WAA4B,KAAK,MAAM,UAAU;AACtE,WAAQT,iBAAM,SAAS,QAAQ,QAAQ,EACpC,OAAO,CAAA,UAAS,MAAM,SAAS,YAAY,EAC3C,OAAO,CAAC,KAAK,UAAU;AACtB,aAAO,CAAC,GAAG,KAAK,GAAG,KAAK,gBAAgB,KAAK,CAAC;AAAA,IAChD,GAAG,CAAA,CAAE;AAAA,EACT;AAAA,EAEU,mBAAmB;AAC3B,WAAQA,iBAAM,SAAS,QAAQ,KAAK,MAAM,QAAQ,EAAqC;AAAA,MACrF,CAAA,UAAS,MAAM,SAAS;AAAA,IAAA;AAAA,EAE5B;AAAA,EAEQ,gBAAgB,OAA2B;AACjD,WAAO,KAAK,YAAY,KAAK,IACzBA,iBAAM,SAAS,QAAQ,MAAM,MAAM,QAAQ,EAAE;AAAA,MAC3C,CAAC,WAAiC,cAAkC;AAAA,QAClE,GAAG;AAAA,QACH,GAAG,KAAK,gBAAgB,SAAS;AAAA,MAAA;AAAA,MAEnC,CAAA;AAAA,IAAC,IAEH,CAAC,KAAK;AAAA,EACZ;AAAA,EAEQ,oBAAoB;AAC1B,UAAM,EAAE,aAAa,iBAAA,IAAqB,KAAK,MAAM;AACrD,UAAM,gBAAgB,KAAK,MAAM;AACjC,UAAM,WAAW,KAAK;AACtB,UAAM,cAAc,UAAU;AAE9B,UAAM,mBAAmB,cACrB,SAAS,SAAS,SAAS,2BAA2B,QAAQ,IAC9DO,sBAAM,gBAAgB,CAAC;AAE3B,UAAM,aAAa,UAAU,OAAO,CAAC;AACrC,UAAM,OAAO,aAAc,SAAS,aAAa,EAAE,OAAO,WAAW,KAAA,IAAS,EAAE,QAAQ,WAAW,KAAA,IAAU,CAAA;AAE7G,WAAO,iBAAiB,IAAI,CAAA,QAAO;AACjC,4CACG,aAAA,EAAsB,KAAK,KAAK,QAAQ,GAAG,GAC1C,UAAAN,2BAAAA,IAAC,OAAA,EAAI,sBAAoB,KAAK,WAAW,YAAY,OAAO,KAAA,CAAM,KADlD,GAElB;AAAA,IAEJ,CAAC;AAAA,EACH;AAAA,EAEU,aAAa;AACrB,UAAM,eAAe,KAAK,aAAA;AAC1B,UAAM,kBAAkB,KAAK;AAC7B,UAAM,aAAa,KAAK;AAExB,UAAM,WAAiC,iBAAiB,cACpD,aACES,gBAAAA,mBAAmB,iBAAiB,UAAU,IAC9CA,gBAAAA,mBAAmB,iBAAiBC,WAAAA,KAAK,cAAc,YAAY,CAAC,IACtE;AAEJ,WAAO,SAAS,IAAI,CAAC,OAAO,QAC1BV,2BAAAA,IAAC,aAAA,EAA6B,KAAK,KAAK,QAAQ,GAAG,GAChD,UAAA,SADe,MAAM,GAExB,CACD;AAAA,EACH;AAAA,EAEQ,YAAY,OAA2B;AAC7C,QAAI,MAAM,MAAM;AACd,aAAO,MAAM,SAASD,iBAAM;AAAA,IAC9B;AAEA,WAAQ,UAAkBA,iBAAM;AAAA,EAClC;AACF;AArUE,UAAc,eAA8B;AAD9C,IAAM,WAAN;AAGiC,gBAAA;AAAA,EAA9BY,gBAAAA;AAAA,GAHG,SAG2B,WAAA,kBAAA;ACdjC,SAAS,KAAK,KAAK;AACjB,SAAO,OAAO,KAAK,GAAG;AACxB;AAKA,SAAS,SAAS,KAAK;AACrB,SAAO,IAAI,QAAQ,kBAAkB,SAAU,KAAK,QAAQ;AAC1D,WAAO,OAAO,YAAW;AAAA,EAC3B,CAAC;AACH;AAmBA,SAAS,WAAW,KAAK;AACvB,SAAO,OAAO,QAAQ;AACxB;AA6EA,IAAI,iBAAiB;AACrB,IAAI,gBAAgB;AA0CpB,SAAS,cAAc,IAAI,MAAM,MAAM;AACrC,MAAY,UAAU,WAAW,EAAG,UAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,KAAK;AACnF,QAAI,MAAM,EAAE,KAAK,OAAO;AACtB,UAAI,CAAC,GAAI,MAAK,MAAM,UAAU,MAAM,KAAK,MAAM,GAAG,CAAC;AACnD,SAAG,CAAC,IAAI,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACA,SAAO,GAAG,OAAO,MAAM,MAAM,UAAU,MAAM,KAAK,IAAI,CAAC;AACzD;AAucA,SAAS,oBAAoB,KAAK,SAAS;AACzC,MAAI,MAAM,CAAA;AAEV,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,UAAQ,QAAQ,SAAU,MAAM;AAC9B,QAAI,IAAI,IAAI,WAAY;AACtB,UAAI,OAAO,CAAA;AAEX,eAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC5C,aAAK,EAAE,IAAI,UAAU,EAAE;AAAA,MACzB;AAEA,UAAI,UAAU,IAAI,WAAW,IAAI;AACjC,aAAO,QAAQ,IAAI,EAAE,MAAM,SAAS,IAAI;AAAA,IAC1C;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAKA,SAAS,gBAAgB,UAAU;AACjC,MAAI,YAAY,CAAA;AAChB,SAAO,eAAe,UAAU,gBAAgB;AAAA,IAC9C,KAAK,WAAY;AACf,aAAO;AAAA,IACT;AAAA,EACJ,CAAG;AACD,SAAO;AACT;AAKA,SAAS,aAAa,UAAU,YAAY;AAC1C,MAAI,IAAI;AAER,MAAI,CAAC,SAAS,cAAc,GAAG;AAC7B,oBAAgB,QAAQ;AAAA,EAC1B;AAEA,MAAI,YAAY,SAAS,cAAc;AAEtB;AACf,QAAI,gBAAgB,MAAM,KAAK,aAAa,QAAQ,aAAa,SAAS,SAAS,SAAS,iBAAiB,QAAQ,OAAO,SAAS,SAAS,GAAG,eAAe,QAAQ,OAAO,SAAS,SAAS,GAAG,aAAa;AAEjN,QAAI,cAAc;AAChB,mBAAa,QAAQ,SAAU,MAAM;AACnC,YAAI,EAAE,QAAQ,cAAc,QAAQ,UAAU;AAC5C,mBAAS,IAAI;AAAA,QACf;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AA4CA,SAAS,cAAc,SAAS,OAAO;AACrC,MAAI,gBAAgB,WAAW,OAAO,IAAI;AAAA,IACxC,OAAO;AAAA,EACX,IAAM;AAEJ,WAAS,WAAW;AAClB,QAAI,IAAI,IAAI,IAAI,IAAI;AAEpB,YAAQ,MAAM,MAAM,KAAK,UAAU,QAAQ,UAAU,SAAS,SAAS,aAAa,QAAQ,OAAO,SAAS,MAAM,KAAK,cAAc,WAAW,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAK,aAAa,OAAO,QAAQ,OAAO,SAAS,MAAM,KAAK,cAAc,UAAU,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAK,aAAa,OAAO,QAAQ,OAAO,SAAS,KAAK,CAAA;AAAA,EACpW;AAEA,MAAI,eAAe,IAAI,UAAS;AAChC,MAAI,eAAe,CAAA;AACnB,MAAI,YAAY,CAAA;AAChB,MAAI,eAAe,CAAA;AACnB,MAAI,UAAU,CAAA;AACd,MAAI,cAAc;AAAA,IAChB,SAAS;AAAA,EACb;AACE,MAAI,eAAe,CAAA;AACnB,MAAI,eAAe;AACnB,MAAI,aAAa,CAAA;AACjB,MAAI,cAAc,CAAA;AAElB,MAAI,YAAY,SAAU,UAAU;AAClC,iBAAa,KAAK,QAAQ;AAAA,EAC5B;AAEA,MAAI,SAAS,SAAU,UAAU;AAC/B,cAAU,KAAK,QAAQ;AAAA,EACzB;AAEA,MAAI,YAAY,SAAU,UAAU;AAClC,iBAAa,KAAK,QAAQ;AAAA,EAC5B;AAEA,MAAI,KAAK,SAAU,UAAU;AAC3B,YAAQ,KAAK,QAAQ;AAAA,EACvB;AAEA,MAAI,OAAO,SAAU,WAAW;AAC9B,QAAI,SAAS,CAAA;AAEb,aAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC5C,aAAO,KAAK,CAAC,IAAI,UAAU,EAAE;AAAA,IAC/B;AAEA,iBAAa,QAAQ,MAAM,cAAc,cAAc,CAAC,SAAS,GAAG,QAAQ,KAAK,CAAC;AAAA,EACpF;AAEA,MAAI,kBAAkB,SAAU,OAAO;AACrC,mBAAe;AAAA,EACjB;AAEA,MAAI,YAAY,SAAU,QAAQ;AAChC,iBAAa;AAAA,EACf;AAEA,MAAI,aAAa,SAAU,SAAS;AAClC,kBAAc;AAAA,EAChB;AAEA,MAAI,cAAc,OAAO;AACvB,gBAAY,UAAU,cAAc,MAAM;AAAA,MACxC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN,CAAK,KAAK;AAAA,EACR;AAEA,MAAI,cAAc,SAAS;AACzB,gBAAY,UAAU,cAAc,QAAQ,SAAQ,CAAE,KAAK;AAAA,EAC7D;AAEA,MAAI,cAAc,QAAQ;AACxB,cAAU,cAAc,MAAM;AAAA,EAChC;AAEA,MAAI,cAAc,OAAO;AACvB,oBAAgB,cAAc,KAAK;AAAA,EACrC;AAEA,MAAI,cAAc,SAAS;AACzB,eAAW,cAAc,OAAO;AAAA,EAClC;AAEA,MAAI,cAAc,SAAS;AACzB,cAAU,cAAc,OAAO;AAAA,EACjC;AAEA,MAAI,cAAc,SAAS;AACzB,iBAAa,KAAK,cAAc,OAAO;AAAA,EACzC;AAEA,MAAI,cAAc,MAAM;AACtB,cAAU,KAAK,cAAc,IAAI;AAAA,EACnC;AAEA,MAAI,cAAc,IAAI;AACpB,YAAQ,KAAK,SAAU,UAAU,WAAW,UAAU;AACpD,UAAI,MAAM,cAAc,GAAG,UAAU,WAAW,QAAQ;AACxD,aAAO,WAAY;AACjB,YAAI;AAEJ,eAAO,IAAG;AACV,SAAC,KAAK,cAAc,SAAS,QAAQ,OAAO,SAAS,SAAS,GAAG,KAAK,eAAe,UAAU,WAAW,QAAQ;AAAA,MACpH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,QAAQ,WAAY;AAClB,aAAO;AAAA,IACT;AAAA,IACA,OAAO,WAAY;AACjB,UAAI,OAAO,YAAY;AAEvB,UAAI,cAAc;AAChB,eAAO;AAAA,MACT;AAEA,UAAI,MAAM;AACR,YAAI,cAAc,aAAa,IAAI;AACnC,wBAAgB,KAAK,WAAW,EAAE,OAAO,SAAU,MAAM,KAAK;AAC5D,eAAK,GAAG,IAAI,YAAY,GAAG,EAAE;AAC7B,iBAAO;AAAA,QACT,GAAG,CAAA,CAAE,CAAC;AAAA,MACR;AAEA,aAAO,gBAAgB,CAAA;AAAA,IACzB;AAAA,IACA,UAAU,WAAY;AACpB,aAAO,YAAY;AAAA,IACrB;AAAA,IACA,SAAS,WAAY;AACnB,UAAIC,SAAQ,SAAQ;AACpB,mBAAa,QAAQ,SAAU,MAAM;AACnC,oBAAY,UAAU,KAAKA,QAAO,YAAY,OAAO,KAAK,YAAY;AAAA,MACxE,CAAC;AAAA,IACH;AAAA,IACA,MAAM,WAAY;AAEhB,UAAI,WAAW,YAAY;AAC3B,UAAIA,SAAQ,SAAQ;AACpB,qBAAe,WAAW,IAAI,SAAU,WAAW;AACjD,YAAI,WAAW,WAAY;AACzB,cAAI;AAEJ,cAAI,SAAS,CAAA;AAEb,mBAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC5C,mBAAO,EAAE,IAAI,UAAU,EAAE;AAAA,UAC3B;AAEA,WAAC,KAAK,cAAc,QAAQ,MAAM,IAAI,cAAc,CAAC,SAAS,GAAG,QAAQ,KAAK,CAAC;AAAA,QACjF;AAEA,YAAIC,YAAW,YAAY;AAC3B,eAAO,QAAQ,IAAI,SAAU,MAAM;AACjC,iBAAO,KAAKA,WAAU,WAAW,QAAQ;AAAA,QAC3C,CAAC,EAAE,OAAO,OAAO;AAAA,MACnB,CAAC;AAED,gBAAU,QAAQ,SAAU,MAAM;AAChC,aAAK,UAAUD,MAAK;AAAA,MACtB,CAAC;AAAA,IACH;AAAA,IACA,SAAS,WAAY;AAEnB,mBAAa,QAAQ,SAAU,UAAU;AACvC,iBAAS,QAAQ,SAAU,MAAM;AAC/B,eAAI;AAAA,QACN,CAAC;AAAA,MACH,CAAC;AAED,mBAAa,IAAG;AAChB,UAAI,WAAW,YAAY;AAC3B,UAAIA,SAAQ,SAAQ;AACpB,mBAAa,QAAQ,SAAU,MAAM;AACnC,aAAK,UAAUA,MAAK;AAAA,MACtB,CAAC;AAAA,IACH;AAAA,IACA,SAAS,WAAY;AACnB,aAAO,oBAAoB,aAAa,WAAW;AAAA,IACrD;AAAA,IACA,IAAI,SAAU,WAAW,UAAU;AACjC,mBAAa,GAAG,WAAW,QAAQ;AAAA,IACrC;AAAA,IACA,KAAK,SAAU,WAAW,UAAU;AAClC,mBAAa,IAAI,WAAW,QAAQ;AAAA,IACtC;AAAA,EACJ;AACA;ACh5BA,SAAS,YAAY,iBAAiB,OAAO;AAC3C,MAAI,UAAUE,MAAAA,OAAO,IAAI;AACzB,MAAI,cAAcC,MAAAA,QAAQ,WAAY;AACpC,WAAO,cAAc,iBAAiB,KAAK;AAAA,EAC7C,GAAG,CAAA,CAAE;AACL,MAAI,gBAAgB,YAAY,MAAK;AACrC,MAAI,QAAQ,KAAK,aAAa;AAC9B,MAAI,SAASC,MAAAA,SAAS,CAAA,CAAE,EAAE,CAAC;AAE3B,MAAI,UAAU,SAAUC,OAAM;AAE5B,QAAI,QAAQD,MAAAA,SAAS,WAAY;AAC/B,aAAO,cAAcC,KAAI;AAAA,IAC3B,CAAC;AACD,WAAOA,KAAI,IAAI;AAAA,MACb,QAAQ;AAAA,MACR,KAAK,MAAM,CAAC;AAAA,MACZ,OAAO,MAAM,CAAC;AAAA,IACpB;AAAA,EACE;AAEA,WAAS,QAAQ,eAAe;AAC9B,YAAQ,IAAI;AAAA,EACd;AAEA,UAAQ,UAAU;AAClB,MAAI,UAAUF,MAAAA,QAAQ,WAAY;AAChC,WAAO,YAAY,QAAO;AAAA,EAC5B,GAAG,CAAA,CAAE;AACLG,QAAAA,UAAU,WAAY;AACpB,YAAQ,UAAU;AAAA,EACpB,CAAC;AACDA,QAAAA,UAAU,WAAY;AACpB,gBAAY,QAAO;AACnB,QAAI,OAAO,YAAY,SAAQ;AAC/B,UAAM,QAAQ,SAAUD,OAAM;AAC5B,WAAK,UAAUA,OAAM,SAAU,OAAO;AACpC,eAAOA,KAAI,EAAE,QAAQ;AAErB,YAAI,OAAOA,KAAI,EAAE,QAAQ;AACvB,iBAAOA,KAAI,EAAE,IAAI,KAAK;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,gBAAY,KAAI;AAChB,WAAO,WAAY;AACjB,kBAAY,QAAO;AAAA,IACrB;AAAA,EACF,GAAG,CAAA,CAAE;AACL,MAAI,SAAS,MAAM,OAAO,SAAUE,SAAQF,OAAM;AAChD,QAAI,CAAC,QAAQA,KAAI,GAAG;AAClB,aAAO,eAAeE,SAAQF,OAAM;AAAA,QAClC,YAAY;AAAA,QACZ,KAAK,WAAY;AACf,cAAI,QAAQ,SAAS;AACnB,mBAAOA,KAAI,EAAE,SAAS;AAAA,UACxB;AAEA,iBAAO,OAAOA,KAAI,EAAE;AAAA,QACtB;AAAA,MACR,CAAO;AAAA,IACH;AAEA,WAAOE;AAAA,EACT,GAAG,CAAA,CAAE;AACL,MAAI,iBAAiB,YAAY,OAAM;AACvC,iBAAe,QAAQ,SAAUF,OAAM;AACrC,WAAO,SAAS,MAAM,OAAOA,KAAI,CAAC,CAAC,IAAI,SAAU,UAAU,cAAc;AAEvE,UAAI,WAAWF,MAAAA,QAAQ,WAAY;AACjC,oBAAY,GAAGE,OAAM,QAAQ;AAC7B,eAAO;AAAA,MACT,GAAG,YAAY;AACfC,YAAAA,UAAU,WAAY;AACpB,oBAAY,IAAID,OAAM,QAAQ;AAC9B,oBAAY,GAAGA,OAAM,QAAQ;AAC7B,eAAO,WAAY;AACjB,sBAAY,IAAIA,OAAM,QAAQ;AAAA,QAChC;AAAA,MACF,GAAG,CAAC,QAAQ,CAAC;AAAA,IACf;AAAA,EACF,CAAC;AACD,OAAK,OAAO,EAAE,QAAQ,SAAUA,OAAM;AACpC,WAAOA,KAAI,IAAI,QAAQA,KAAI;AAAA,EAC7B,CAAC;AACD,SAAO;AACT;ACzGO,MAAM,yBAAyB,CAAC,aAAkC,YAAyC;AAChH,SAAO,YAAYG,gBAAAA,4BAA4B,OAAO;AAAA,IACpD,UAAU,YAAY,WAAW;AAAA,IACjC;AAAA,EAAA,EACA;AACJ;ACFC,SAAiB,eAAe;AAChC,SAAiB,yBAAyB;;","x_google_ignoreList":[6,7]}
1
+ {"version":3,"file":"flicking.cjs.js","sources":["../src/react-flicking/consts.ts","../src/react-flicking/ReactElementProvider.ts","../src/react-flicking/ReactRenderer.ts","../src/react-flicking/StrictPanel.tsx","../src/react-flicking/ViewportSlot.tsx","../src/react-flicking/Flicking.tsx","../../../node_modules/.pnpm/@cfcs+core@0.1.0/node_modules/@cfcs/core/dist/cfcs.esm.js","../../../node_modules/.pnpm/@cfcs+react@0.1.0/node_modules/@cfcs/react/dist/cfcs.esm.js","../src/react-flicking/reactive.ts","../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 AfterResizeEvent,\n BeforeResizeEvent,\n ChangedEvent,\n HoldEndEvent,\n HoldStartEvent,\n MoveEndEvent,\n MoveEvent,\n MoveStartEvent,\n NeedPanelEvent,\n PanelChangeEvent,\n ReachEdgeEvent,\n ReadyEvent,\n RestoredEvent,\n SelectEvent,\n VisibleChangeEvent,\n WillChangeEvent,\n WillRestoreEvent\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 { ElementProvider } from \"@egjs/flicking\";\nimport StrictPanel from \"./StrictPanel\";\n\nclass ReactElementProvider implements ElementProvider {\n private _el: StrictPanel;\n\n public get element() {\n return this._el?.nativeElement;\n }\n public get rendered() {\n return this._el?.rendered;\n }\n\n public constructor(el: StrictPanel) {\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 { ExternalRenderer, getFlickingAttached, PanelOptions, RendererOptions } from \"@egjs/flicking\";\n\nimport ReactFlicking from \"./Flicking\";\nimport StrictPanel from \"./StrictPanel\";\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 if (flicking.virtualEnabled) {\n // virtual 값은 VirtualManager Object 이므로 virtualEnabled 로 검사하는 것이 맞습니다.\n // applyTransform does not work when renderer.rendering is true. #916\n // updateRenderingPanels should be called before rendering becomes true, or transform will be applied later.\n strategy.updateRenderingPanels(flicking);\n this._rendering = true;\n } else {\n this._rendering = true;\n strategy.updateRenderingPanels(flicking);\n }\n\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, 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() {\n return this._elRef.current!;\n }\n public get rendered() {\n return !this._hide;\n }\n public get elRef() {\n return this._elRef;\n }\n\n public render() {\n return this._hide ? <></> : 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 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 */\n\nimport Component from \"@egjs/component\";\nimport VanillaFlicking, {\n EVENTS,\n FlickingEvents,\n FlickingOptions,\n getDefaultCameraTransform,\n getRenderingPanels,\n NormalRenderingStrategy,\n Plugin,\n range,\n sync,\n VirtualRenderingStrategy,\n withFlickingMethods\n} from \"@egjs/flicking\";\nimport ListDiffer, { DiffResult, diff } from \"@egjs/list-differ\";\nimport * as React from \"react\";\n\nimport { DEFAULT_PROPS } from \"./consts\";\nimport NonStrictPanel from \"./NonStrictPanel\";\nimport ReactElementProvider from \"./ReactElementProvider\";\nimport ReactRenderer, { ReactRendererOptions } from \"./ReactRenderer\";\nimport StrictPanel from \"./StrictPanel\";\nimport { FlickingProps } from \"./types\";\nimport ViewportSlot from \"./ViewportSlot\";\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: undefined }>();\n protected _prevChildren: React.ReactElement[];\n\n public get reactPanels() {\n return this._panels.map(panel => panel.current!);\n }\n public get renderEmitter() {\n return this._renderEmitter;\n }\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:\n props.virtual && props.panelsPerView > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: ReactElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(this._viewportElement, {\n ...props,\n externalRenderer: new ReactRenderer(rendererOptions)\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 ? this._getVirtualPanels() : this._getPanels();\n\n return (\n <Viewport\n {...attributes}\n className={viewportClasses.join(\" \")}\n ref={(e?: HTMLElement) => {\n e && (this._viewportElement = e);\n }}\n >\n <Camera className={cameraClasses.join(\" \")} {...cameraProps}>\n {panels}\n </Camera>\n {this._getViewportSlot()}\n </Viewport>\n );\n }\n\n private _createPanelRefs(\n props: this[\"props\"],\n children: Array<React.ReactElement<any>>\n ): 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?.initialized;\n const viewportClasses: string[] = [\"flicking-viewport\"];\n const cameraClasses: string[] = [\"flicking-camera\"];\n const isHorizontal = flicking ? flicking.horizontal : (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 =\n !initialized && props.firstPanelSize\n ? {\n style: {\n transform: getDefaultCameraTransform(this.props.align, this.props.horizontal, this.props.firstPanelSize)\n }\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 return child === nextChild;\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>>).filter(\n child => child.type === ViewportSlot\n );\n }\n\n private _unpackFragment(child: React.ReactElement) {\n return this._isFragment(child)\n ? React.Children.toArray(child.props.children).reduce(\n (allChilds: React.ReactElement[], fragChild: React.ReactElement) => [\n ...allChilds,\n ...this._unpackFragment(fragChild)\n ],\n [] as React.ReactElement[]\n )\n : [child];\n }\n\n private _getVirtualPanels() {\n const { panelClass = \"flicking-panel\" } = this.props.virtual!;\n const panelsPerView = this.props.panelsPerView!;\n const flicking = this._vanillaFlicking;\n const initialized = flicking?.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = flicking?.panels[0];\n const size = firstPanel ? (flicking.horizontal ? { width: firstPanel.size } : { height: firstPanel.size }) : {};\n\n return renderingIndexes.map(idx => {\n return (\n <StrictPanel key={idx} ref={this._panels[idx] as any}>\n <div data-element-index={idx} className={panelClass} style={size} />\n </StrictPanel>\n );\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?.initialized\n ? diffResult\n ? getRenderingPanels(vanillaFlicking, diffResult)\n : getRenderingPanels(vanillaFlicking, diff(origChildren, origChildren))\n : origChildren;\n\n return children.map((child, idx) => (\n <StrictPanel key={child.key!} ref={this._panels[idx] as any}>\n {child}\n </StrictPanel>\n ));\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","/*\nCopyright (c) 2022-present NAVER Corp.\nname: @cfcs/core\nlicense: MIT\nauthor: NAVER Crop.\nrepository: https://github.com/naver/cfcs/tree/main/packages/core\nversion: 0.1.0\n*/\nimport Component from '@egjs/component';\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n\n/**\n * @hidden\n */\nfunction keys(obj) {\n return Object.keys(obj);\n}\n/**\n * @hidden\n */\n\nfunction camelize(str) {\n return str.replace(/[\\s-_]([a-z])/g, function (all, letter) {\n return letter.toUpperCase();\n });\n}\n/**\n * @hidden\n */\n\nfunction isString(val) {\n return typeof val === \"string\";\n}\n/**\n * @hidden\n */\n\nfunction isObject(val) {\n return typeof val === \"object\";\n}\n/**\n * @hidden\n */\n\nfunction isFunction(val) {\n return typeof val === \"function\";\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * @hidden\n */\n\nfunction findTarget(target) {\n var el;\n\n if (!target) {\n return null;\n }\n\n if (isString(target)) {\n el = document.querySelector(target);\n } else if (target instanceof Element) {\n el = target;\n } else if (\"value\" in target || \"current\" in target) {\n el = target.value || target.current;\n }\n\n return el;\n}\n/**\n * @description Sets the name of the class method to be exposed to the outside.\n * @category DOM\n * @return Property Decorator\n * @example\n * ```ts\n * import { withClassMethods } from \"@cfcs/core\";\n *\n * class YourFrameworkComponent {\n * @withClassMethod(METHOD_NAMES)\n * inst = new YourComponent();\n * }\n * ```\n */\n\nfunction withClassMethods(methods) {\n return function (prototype, memberName) {\n methods.forEach(function (name) {\n if (name in prototype) {\n return;\n }\n\n prototype[name] = function () {\n var _a;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var result = (_a = this[memberName])[name].apply(_a, args); // fix `this` type to return your own `class` instance to the instance using the decorator.\n\n\n if (result === this[memberName]) {\n return this;\n } else {\n return result;\n }\n };\n });\n };\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\nvar OBSERVERS_PATH = \"__observers__\";\nvar COMPUTED_PATH = \"__computed__\";\nvar CFCS_DETECTED_DEPENDENCIES_VERSION = 1;\nvar CFCS_DETECTED_DEPENDENCIES = \"__CFCS_DETECTED_DEPENDENCIES__\";\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\nfunction getDetectedStack() {\n // Version issues do not occur when you access the native object in the global.\n Object[CFCS_DETECTED_DEPENDENCIES] = Object[CFCS_DETECTED_DEPENDENCIES] || {};\n var versionList = Object[CFCS_DETECTED_DEPENDENCIES];\n versionList[CFCS_DETECTED_DEPENDENCIES_VERSION] = versionList[CFCS_DETECTED_DEPENDENCIES_VERSION] || [];\n return versionList[CFCS_DETECTED_DEPENDENCIES_VERSION];\n}\nfunction getCurrentDetected() {\n var stack = getDetectedStack();\n return stack[stack.length - 1];\n}\nfunction detectDependencies(host) {\n var stack = getDetectedStack();\n var observers = [];\n var detected = {\n host: host,\n observers: observers,\n push: function (observer) {\n if (host !== observer && observers.indexOf(observer) === -1) {\n observers.push(observer);\n }\n }\n };\n stack.push(detected);\n return detected;\n}\nfunction endDetectDependencies() {\n var stack = getDetectedStack();\n return stack.pop();\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * Creates a mutable ref object. You can access the `.current` value and detect the value change through `.subscribe`.\n * @category Reactive\n * @see observe\n */\n\nvar Observer =\n/*#__PURE__*/\nfunction () {\n /**\n *\n */\n function Observer(value) {\n this._emitter = new Component();\n this._current = value;\n }\n\n var __proto = Observer.prototype;\n Object.defineProperty(__proto, \"current\", {\n /**\n * return the current value.\n */\n get: function () {\n var currentDetected = getCurrentDetected();\n currentDetected === null || currentDetected === void 0 ? void 0 : currentDetected.push(this);\n return this._current;\n },\n set: function (value) {\n this._setCurrent(value);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * When the current value changes, the callback function is called.\n */\n\n __proto.subscribe = function (callback) {\n this.current;\n\n this._emitter.on(\"update\", callback);\n\n return this;\n };\n /**\n * Cancel the registered subscription through callback.\n */\n\n\n __proto.unsubscribe = function (callback) {\n this._emitter.off(\"update\", callback);\n\n return this;\n };\n\n __proto._setCurrent = function (value) {\n var prevValue = this._current;\n var isUpdate = value !== prevValue;\n this._current = value;\n\n if (isUpdate) {\n this._emitter.trigger(\"update\", value, prevValue);\n }\n };\n /**\n * @hidden\n */\n\n\n __proto.toString = function () {\n return \"\".concat(this.current);\n };\n /**\n * @hidden\n */\n\n\n __proto.valueOf = function () {\n return this.current;\n };\n\n return Observer;\n}();\n\n/**\n * @category Reactive\n * @hidden\n */\n\nvar ComputedObserver =\n/*#__PURE__*/\nfunction (_super) {\n __extends(ComputedObserver, _super);\n /**\n * @description Creates a new computed observer from the values of other observers.\n * It is read-only and if you change the value of the observer used inside the callback, its value will be automatically updated.\n * @param _computedCallback A function for observers to be computed.\n */\n\n\n function ComputedObserver(_computedCallback) {\n var _this = _super.call(this) || this;\n\n _this._computedCallback = _computedCallback;\n _this._registered = [];\n\n _this._onCheckUpdate = function () {\n _this._setCurrent(_this.current);\n };\n\n _this._current = _this.current;\n return _this;\n }\n\n var __proto = ComputedObserver.prototype;\n Object.defineProperty(__proto, \"current\", {\n get: function () {\n var _this = this;\n\n detectDependencies(this);\n\n var value = this._computedCallback();\n\n var results = endDetectDependencies();\n\n this._registered.forEach(function (observer) {\n observer.unsubscribe(_this._onCheckUpdate);\n });\n\n results.observers.forEach(function (observer) {\n observer.subscribe(_this._onCheckUpdate);\n });\n this._registered = results.observers;\n return value;\n },\n enumerable: false,\n configurable: true\n });\n return ComputedObserver;\n}(Observer);\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n\nfunction injectObserve(prototype, memberName, publicName) {\n if (publicName === void 0) {\n publicName = memberName;\n }\n\n var nextAttributes = {\n configurable: true,\n get: function () {\n return getObserver(this, publicName).current;\n },\n set: function (value) {\n getObserver(this, publicName, value).current = value;\n }\n };\n Object.defineProperty(prototype, memberName, nextAttributes);\n\n if (publicName !== memberName) {\n Object.defineProperty(prototype, publicName, {\n configurable: true,\n get: function () {\n return getObserver(this, publicName).current;\n }\n });\n }\n}\n/**\n * @description `Observe` is a property decorator and converts the property into a `reactive state`. You can detect its status through `.subscribe`.\n * @category Reactive-Decorator\n * @see ReactiveSubscribe\n * @example\n* ```ts\nimport { ReactiveSubscribe, Observe } from \"@cfcs/core\";\n\n@ReactiveSubscribe\nclass Component {\n // The public name and state name are the same.\n @Observe value1 = 1;\n // If you want to set public name and private properties separately\n @Observe(\"value2\") _value2 = 1;\n\n constructor() {\n requestAnimationFrame(() => {\n this.value1 = 2;\n });\n }\n}\ninterface C\n```\n */\n\n\nfunction Observe() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (args.length > 1) {\n return injectObserve(args[0], args[1]);\n }\n\n return function (prototype, memberName) {\n return injectObserve(prototype, memberName, args[0]);\n };\n}\n/**\n * @hidden\n */\n\nfunction Reactive() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return Observe.apply(void 0, args);\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * @hidden\n */\n\nfunction injectReactiveSubscribe(object) {\n object[\"subscribe\"] = function (name, callback) {\n this[name];\n getObserver(this, name).subscribe(callback);\n };\n\n object[\"unsubscribe\"] = function (name, callback) {\n var _this = this;\n\n if (!name) {\n keys(getObservers(this)).forEach(function (observerName) {\n _this.unsubscribe(observerName);\n });\n return;\n }\n\n if (!(name in this)) {\n return;\n }\n\n getObserver(this, name).unsubscribe(callback);\n };\n}\n/**\n * @description `ReactiveSubscribe` is a class decorator and adds `.subscribe` and `.unsubscribe` methods.\n * @category Reactive-Decorator\n * @see Observe\n * @example\n * ```ts\nimport { ReactiveSubscribe, Observe } from \"@cfcs/core\";\n\n@ReactiveSubscribe\nclass Component {\n @Observe value1 = 1;\n\n constructor() {\n requestAnimationFrame(() => {\n this.value1 = 2;\n });\n }\n}\n\ninterface Component extends ReactiveSubscribe<{\n value1: number;\n value2: number;\n}> {}\n\nconst component = new Component();\n\n// 1\nconsole.log(component.value1);\n\ncomponent.subscribe(\"value1\", nextValue => {\n // When the change event occurs => (2, 2)\n console.log(nextValue, component.value2);\n});\n```\n */\n\nfunction ReactiveSubscribe(Constructor) {\n var prototype = Constructor.prototype;\n injectReactiveSubscribe(prototype);\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n\nfunction makeReactiveObject(setup, all) {\n var result = isFunction(setup) ? setup() : setup;\n var reactiveObject = {};\n defineObservers(reactiveObject);\n keys(result).forEach(function (name) {\n var value = result[name];\n\n if (isObserver(value)) {\n setObserver(reactiveObject, name, value);\n } else {\n setObserver(reactiveObject, name, observe(value));\n }\n\n Observe(name)(reactiveObject, name);\n });\n injectReactiveSubscribe(reactiveObject);\n return reactiveObject;\n}\n/**\n * @description Make the return value of the corresponding object or function a reactive object.\n * @category Reactive\n * @param setup - The target object or function to which reactive is applied\n * @returns Makes all values into reactive objects.\n * @example\n * ```ts\n * import { reactive } from \"@cfcs/core\";\n *\n * const obj = reactive({\n * value1: 1,\n * value2: 2,\n * });\n *\n * obj.subscribe(\"value1\", value1 => {\n * console.log(value1);\n * });\n * obj.value1 = 2;\n * ```\n */\n\n\nfunction reactive(setup) {\n return makeReactiveObject(setup);\n}\n/**\n * @description Make the return value of the corresponding object or function a reactive object.\n * @category Reactive\n * @param setup - The target object or function to which reactive is applied\n * @returns Only the values to which observer is applied are objects to which reactive is applied.\n * @example\n * ```ts\n * import { partialReactive, observe } from \"@cfcs/core\";\n *\n * const value1 = observe(1);\n * const value2 = observe(2);\n * const obj = partialReactive({\n * value1,\n * value2,\n * });\n *\n * obj.subscribe(\"value1\", value1 => {\n * console.log(value1);\n * });\n * value1.current = 2;\n * ```\n */\n\nfunction partialReactive(setup) {\n return makeReactiveObject(setup);\n}\n/**\n * @description Creates a mutable ref object. You can access the `.current` value and detect the value change through `.subscribe`.\n * @category Reactive\n * @example\n * ```ts\n * import { observe } from \"@cfcs/core\";\n *\n * const ob1 = observe(1);\n *\n * ob1.subscribe(nextValue => {\n * console.log(nextValue);\n * });\n *\n * ob1.current = 2;\n * ```\n */\n\nfunction observe(defaultValue) {\n return new Observer(defaultValue);\n}\n/**\n * @hidden\n */\n\nfunction computed(computedCallback) {\n return new ComputedObserver(computedCallback);\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * @hidden\n */\n\nfunction withReactiveMethods(ref, methods) {\n var obj = {};\n\n if (!methods) {\n return obj;\n }\n\n methods.forEach(function (name) {\n obj[name] = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var current = ref.current || ref.value;\n return current[name].apply(current, args);\n };\n });\n return obj;\n}\n/**\n * @hidden\n */\n\nfunction defineObservers(instance) {\n var observers = {};\n Object.defineProperty(instance, OBSERVERS_PATH, {\n get: function () {\n return observers;\n }\n });\n return observers;\n}\n/**\n * @hidden\n */\n\nfunction getObservers(instance, isComputed) {\n var _a, _b;\n\n if (!instance[OBSERVERS_PATH]) {\n defineObservers(instance);\n }\n\n var observers = instance[OBSERVERS_PATH];\n\n if (!isComputed) {\n var computedList = (_b = (_a = instance === null || instance === void 0 ? void 0 : instance.constructor) === null || _a === void 0 ? void 0 : _a.prototype) === null || _b === void 0 ? void 0 : _b[COMPUTED_PATH];\n\n if (computedList) {\n computedList.forEach(function (name) {\n if (!(name in observers) && name in instance) {\n instance[name];\n }\n });\n }\n }\n\n return observers;\n}\n/**\n * @hidden\n */\n\nfunction getObserver(instance, name, defaultValue) {\n var observers = getObservers(instance);\n\n if (!observers[name]) {\n observers[name] = observe(defaultValue);\n }\n\n return observers[name];\n}\n/**\n * @hidden\n */\n\nfunction setObserver(instance, name, observer) {\n var observers = getObservers(instance);\n observers[name] = observer;\n}\n/**\n * @description Whether that object is an observer instance\n * @category Reactive\n */\n\nfunction isObserver(val) {\n return val && isObject(val) && \"current\" in val && \"subscribe\" in val && \"unsubscribe\" in val;\n}\n/**\n * @description Whether the object is reactive\n * @category Reactive\n */\n\nfunction isReactive(val) {\n return val && !isObserver(val) && \"subscribe\" in val && \"unsubscribe\" in val;\n}\n\n/**\n * @category Reactive\n * @hidden\n */\n\nfunction adaptReactive(adapter, props) {\n var objectAdapter = isFunction(adapter) ? {\n setup: adapter\n } : adapter;\n\n function getProps() {\n var _a, _b, _c, _d, _e;\n\n return (_e = (_c = (_a = props === null || props === void 0 ? void 0 : props()) !== null && _a !== void 0 ? _a : (_b = objectAdapter.props) === null || _b === void 0 ? void 0 : _b.call(objectAdapter)) !== null && _c !== void 0 ? _c : (_d = objectAdapter.data) === null || _d === void 0 ? void 0 : _d.call(objectAdapter)) !== null && _e !== void 0 ? _e : {};\n }\n\n var eventEmitter = new Component();\n var mountedHooks = [];\n var initHooks = [];\n var destroyHooks = [];\n var onHooks = [];\n var instanceRef = {\n current: null\n };\n var offHooksList = [];\n var initialState = null;\n var eventNames = [];\n var methodNames = [];\n\n var onMounted = function (callback) {\n mountedHooks.push(callback);\n };\n\n var onInit = function (callback) {\n initHooks.push(callback);\n };\n\n var onDestroy = function (callback) {\n destroyHooks.push(callback);\n };\n\n var on = function (callback) {\n onHooks.push(callback);\n };\n\n var emit = function (eventName) {\n var params = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n\n eventEmitter.trigger.apply(eventEmitter, __spreadArray([eventName], params, false));\n };\n\n var setInitialState = function (state) {\n initialState = state;\n };\n\n var setEvents = function (events) {\n eventNames = events;\n };\n\n var setMethods = function (methods) {\n methodNames = methods;\n };\n\n if (objectAdapter.setup) {\n instanceRef.current = objectAdapter.setup({\n getProps: getProps,\n setInitialState: setInitialState,\n setEvents: setEvents,\n setMethods: setMethods,\n onMounted: onMounted,\n onDestroy: onDestroy,\n onInit: onInit,\n emit: emit,\n on: on\n }) || null;\n }\n\n if (objectAdapter.created) {\n instanceRef.current = objectAdapter.created(getProps()) || null;\n }\n\n if (objectAdapter.events) {\n setEvents(objectAdapter.events);\n }\n\n if (objectAdapter.state) {\n setInitialState(objectAdapter.state);\n }\n\n if (objectAdapter.methods) {\n setMethods(objectAdapter.methods);\n }\n\n if (objectAdapter.mounted) {\n onMounted(objectAdapter.mounted);\n }\n\n if (objectAdapter.destroy) {\n destroyHooks.push(objectAdapter.destroy);\n }\n\n if (objectAdapter.init) {\n initHooks.push(objectAdapter.init);\n }\n\n if (objectAdapter.on) {\n onHooks.push(function (instance, eventName, listener) {\n var off = objectAdapter.on(instance, eventName, listener);\n return function () {\n var _a;\n\n off && off();\n (_a = objectAdapter.off) === null || _a === void 0 ? void 0 : _a.call(objectAdapter, instance, eventName, listener);\n };\n });\n }\n\n return {\n events: function () {\n return eventNames;\n },\n state: function () {\n var inst = instanceRef.current;\n\n if (initialState) {\n return initialState;\n }\n\n if (inst) {\n var observers_1 = getObservers(inst);\n setInitialState(keys(observers_1).reduce(function (prev, cur) {\n prev[cur] = observers_1[cur].current;\n return prev;\n }, {}));\n }\n\n return initialState || {};\n },\n instance: function () {\n return instanceRef.current;\n },\n mounted: function () {\n var props = getProps();\n mountedHooks.forEach(function (hook) {\n instanceRef.current = hook(props, instanceRef.current) || instanceRef.current;\n });\n },\n init: function () {\n // on events\n var instance = instanceRef.current;\n var props = getProps();\n offHooksList = eventNames.map(function (eventName) {\n var listener = function () {\n var _a;\n\n var params = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n\n (_a = eventEmitter).trigger.apply(_a, __spreadArray([eventName], params, false));\n };\n\n var instance = instanceRef.current;\n return onHooks.map(function (hook) {\n return hook(instance, eventName, listener);\n }).filter(Boolean);\n }); // init\n\n initHooks.forEach(function (hook) {\n hook(instance, props);\n });\n },\n destroy: function () {\n // off events\n offHooksList.forEach(function (offHooks) {\n offHooks.forEach(function (hook) {\n hook();\n });\n }); // destroy\n\n eventEmitter.off();\n var instance = instanceRef.current;\n var props = getProps();\n destroyHooks.forEach(function (hook) {\n hook(instance, props);\n });\n },\n methods: function () {\n return withReactiveMethods(instanceRef, methodNames);\n },\n on: function (eventName, listener) {\n eventEmitter.on(eventName, listener);\n },\n off: function (eventName, listener) {\n eventEmitter.off(eventName, listener);\n }\n };\n}\n\n/**\n * cfcs\n * Copyright (c) 2022-present NAVER Corp.\n * MIT license\n */\n/**\n * @description `Computed` is a property decorator.\n * Changes in computed state values are also recognized according to changes in observers used within the getter function.\n * You can detect its status through `.subscribe`.\n * @hidden\n * @category Reactive-Decorator\n * @see ReactiveSubscribe\n * @example\n * ```ts\nconst ob1 = observe(0);\nconst ob2 = observe(1);\n\n// When\n@ReactiveSubscribe\nclass TestComputed {\n @Computed\n get ob3() {\n return ob1.current + ob2.current;\n }\n}\nconst inst = new TestComputed();\n\ninst.subscribe(\"ob3\", ob3 => {\n console.log(ob3);\n});\n\nob1.current = 1;\n```\n */\n\nfunction Computed(prototype, memberName, attributes) {\n var get = attributes.get;\n\n function getComputed() {\n var observers = getObservers(this, true);\n\n if (!(memberName in observers)) {\n observers[memberName] = computed(get.bind(this));\n }\n\n return getObserver(this, memberName).current;\n }\n\n var nextAttributes = {\n configurable: true,\n get: getComputed\n };\n prototype[COMPUTED_PATH] || (prototype[COMPUTED_PATH] = []);\n var computedList = prototype[COMPUTED_PATH];\n\n if (computedList.indexOf(memberName) === -1) {\n computedList.push(memberName);\n }\n\n Object.defineProperty(prototype, memberName, nextAttributes);\n return nextAttributes;\n}\n\nexport { Computed, ComputedObserver, Observe, Observer, Reactive, ReactiveSubscribe, adaptReactive, camelize, computed, defineObservers, findTarget, getObserver, getObservers, injectReactiveSubscribe, isFunction, isObject, isObserver, isReactive, isString, keys, observe, partialReactive, reactive, setObserver, withClassMethods, withReactiveMethods };\n//# sourceMappingURL=cfcs.esm.js.map\n","/*\nCopyright (c) 2022-present NAVER Corp.\nname: @cfcs/react\nlicense: MIT\nauthor: NAVER Corp.\nrepository: https://github.com/naver/cfcs/tree/main/packages/react\nversion: 0.1.0\n*/\nimport { adaptReactive, keys, camelize } from '@cfcs/core';\nimport { useRef, useMemo, useState, useEffect } from 'react';\n\n/**\n * @description In React, you can create reactive components through adapters.\n * @category Reactive\n * @example\n * ```ts\n * import { useReactive } from \"@cfcs/react\";\n *\n * export function useReactiveComponent() {\n * return useReactive(REACTIVE_ADAPTER);\n * }\n * ```\n */\n\nfunction useReactive(reactiveAdapter, props) {\n var readRef = useRef(true);\n var adaptResult = useMemo(function () {\n return adaptReactive(reactiveAdapter, props);\n }, []);\n var reactiveState = adaptResult.state();\n var names = keys(reactiveState);\n var states = useState({})[0];\n\n var _loop_1 = function (name) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var state = useState(function () {\n return reactiveState[name];\n });\n states[name] = {\n getter: false,\n set: state[1],\n value: state[0]\n };\n };\n\n for (var name in reactiveState) {\n _loop_1(name);\n }\n\n readRef.current = true;\n var methods = useMemo(function () {\n return adaptResult.methods();\n }, []);\n useEffect(function () {\n readRef.current = false;\n });\n useEffect(function () {\n adaptResult.mounted();\n var inst = adaptResult.instance();\n names.forEach(function (name) {\n inst.subscribe(name, function (value) {\n states[name].value = value;\n\n if (states[name].getter) {\n states[name].set(value);\n }\n });\n });\n adaptResult.init();\n return function () {\n adaptResult.destroy();\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var result = names.reduce(function (result, name) {\n if (!methods[name]) {\n Object.defineProperty(result, name, {\n enumerable: true,\n get: function () {\n if (readRef.current) {\n states[name].getter = true;\n }\n\n return states[name].value;\n }\n });\n }\n\n return result;\n }, {});\n var reactiveEvents = adaptResult.events();\n reactiveEvents.forEach(function (name) {\n result[camelize(\"on \".concat(name))] = function (callback, dependencies) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var listener = useMemo(function () {\n adaptResult.on(name, callback);\n return callback;\n }, dependencies);\n useEffect(function () {\n adaptResult.off(name, listener);\n adaptResult.on(name, listener);\n return function () {\n adaptResult.off(name, listener);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [listener]);\n };\n });\n keys(methods).forEach(function (name) {\n result[name] = methods[name];\n });\n return result;\n}\n\nexport { useReactive };\n//# sourceMappingURL=cfcs.esm.js.map\n","import { useReactive } from \"@cfcs/react\";\nimport { FlickingReactiveAPIOptions, flickingReactiveAPIAdapter } from \"@egjs/flicking\";\nimport { RefObject } from \"react\";\nimport Flicking from \"./Flicking\";\n\nexport const useFlickingReactiveAPI = (flickingRef: RefObject<Flicking>, options?: FlickingReactiveAPIOptions) => {\n return useReactive(flickingReactiveAPIAdapter, () => ({\n flicking: flickingRef.current ?? undefined,\n options\n }));\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport Flicking from \"./Flicking\";\nimport { useFlickingReactiveAPI } from \"./reactive\";\nimport ViewportSlot from \"./ViewportSlot\";\n\n(Flicking as any).ViewportSlot = ViewportSlot;\n(Flicking as any).useFlickingReactiveAPI = useFlickingReactiveAPI;\nexport default Flicking;\n"],"names":["ExternalRenderer","getFlickingAttached","React","jsx","Fragment","VirtualRenderingStrategy","NormalRenderingStrategy","sync","jsxs","range","EVENTS","getDefaultCameraTransform","getRenderingPanels","diff","withFlickingMethods","props","instance","useRef","useMemo","useState","name","useEffect","result","flickingReactiveAPIAdapter"],"mappings":"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","x_google_ignoreList":[6,7]}