@egjs/vue3-flicking 4.4.1 → 4.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,12 +4,11 @@ name: @egjs/vue3-flicking
4
4
  license: MIT
5
5
  author: NAVER Corp.
6
6
  repository: https://github.com/naver/egjs-flicking/tree/master/packages/vue3-flicking
7
- version: 4.4.1
7
+ version: 4.4.2
8
8
  */
9
9
  'use strict';
10
10
 
11
11
  var vue = require('vue');
12
- var vueClassComponent = require('vue-class-component');
13
12
  var ListDiffer = require('@egjs/list-differ');
14
13
  var Component = require('@egjs/component');
15
14
  var VanillaFlicking = require('@egjs/flicking');
@@ -65,13 +64,6 @@ var __assign = function () {
65
64
 
66
65
  return __assign.apply(this, arguments);
67
66
  };
68
- function __decorate(decorators, target, key, desc) {
69
- var c = arguments.length,
70
- r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
71
- d;
72
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
73
- return c > 3 && r && Object.defineProperty(target, key, r), r;
74
- }
75
67
  function __awaiter(thisArg, _arguments, P, generator) {
76
68
  function adopt(value) {
77
69
  return value instanceof P ? value : new P(function (resolve) {
@@ -221,47 +213,45 @@ function __spreadArray(to, from, pack) {
221
213
  return to.concat(ar || Array.prototype.slice.call(from));
222
214
  }
223
215
 
224
- /*
225
- * Copyright (c) 2015 NAVER Corp.
226
- * egjs projects are licensed under the MIT license
227
- */
228
-
229
- var FlickingProps =
230
- /*#__PURE__*/
231
- function () {
232
- function FlickingProps() {
233
- this.viewportTag = vueClassComponent.prop({
234
- required: false,
235
- default: "div"
236
- });
237
- this.cameraTag = vueClassComponent.prop({
238
- required: false,
239
- default: "div"
240
- });
241
- this.hideBeforeInit = vueClassComponent.prop({
242
- required: false,
243
- default: false
244
- });
245
- this.firstPanelSize = vueClassComponent.prop({
246
- required: false,
247
- default: null
248
- });
249
- this.options = vueClassComponent.prop({
250
- required: false,
251
- default: {}
252
- });
253
- this.plugins = vueClassComponent.prop({
254
- required: false,
255
- default: []
256
- });
257
- this.status = vueClassComponent.prop({
258
- required: false,
259
- default: null
260
- });
216
+ var FlickingProps = {
217
+ viewportTag: {
218
+ type: String,
219
+ default: "div",
220
+ required: false
221
+ },
222
+ cameraTag: {
223
+ type: String,
224
+ default: "div",
225
+ required: false
226
+ },
227
+ hideBeforeInit: {
228
+ type: Boolean,
229
+ default: false,
230
+ required: false
231
+ },
232
+ firstPanelSize: {
233
+ type: String,
234
+ required: false
235
+ },
236
+ options: {
237
+ type: Object,
238
+ default: function () {
239
+ return {};
240
+ },
241
+ required: false
242
+ },
243
+ plugins: {
244
+ type: Array,
245
+ default: function () {
246
+ return [];
247
+ },
248
+ required: false
249
+ },
250
+ status: {
251
+ type: Object,
252
+ required: false
261
253
  }
262
-
263
- return FlickingProps;
264
- }();
254
+ };
265
255
 
266
256
  var VueRenderer =
267
257
  /*#__PURE__*/
@@ -338,28 +328,21 @@ function (_super) {
338
328
  return VueRenderer;
339
329
  }(VanillaFlicking.ExternalRenderer);
340
330
 
341
- var VuePanel =
342
- /*#__PURE__*/
343
- function (_super) {
344
- __extends(VuePanel, _super);
345
-
346
- function VuePanel() {
347
- var _this = _super !== null && _super.apply(this, arguments) || this;
348
-
349
- _this.hide = false;
350
- return _this;
351
- }
352
-
353
- var __proto = VuePanel.prototype;
354
-
355
- __proto.render = function () {
356
- if (this.hide || !this.$slots.default) return; // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
357
-
331
+ /*
332
+ * Copyright (c) 2015 NAVER Corp.
333
+ * egjs projects are licensed under the MIT license
334
+ */
335
+ var VuePanel = vue.defineComponent({
336
+ data: function () {
337
+ return {
338
+ hide: false
339
+ };
340
+ },
341
+ render: function () {
342
+ if (this.hide || !this.$slots.default) return;
358
343
  return this.$slots.default();
359
- };
360
-
361
- return VuePanel;
362
- }(vueClassComponent.Vue);
344
+ }
345
+ });
363
346
 
364
347
  var VueElementProvider =
365
348
  /*#__PURE__*/
@@ -401,19 +384,22 @@ function () {
401
384
  return VueElementProvider;
402
385
  }();
403
386
 
404
- var Flicking =
405
- /*#__PURE__*/
406
- function (_super) {
407
- __extends(Flicking, _super);
408
-
409
- function Flicking() {
410
- var _this = _super !== null && _super.apply(this, arguments) || this;
387
+ var Flicking = vue.defineComponent({
388
+ props: FlickingProps,
389
+ components: {
390
+ Panel: VuePanel
391
+ },
392
+ data: function () {
393
+ return {};
394
+ },
395
+ created: function () {
396
+ var _this = this;
411
397
 
412
- _this.renderEmitter = new Component();
413
- _this.vanillaFlicking = null;
414
- _this.diffResult = undefined;
398
+ this.vanillaFlicking = null;
399
+ this.renderEmitter = new Component();
400
+ this.diffResult = null;
415
401
 
416
- _this.getPanels = function () {
402
+ this.getPanels = function () {
417
403
  var componentInstance = vue.getCurrentInstance();
418
404
  var vueFlicking = componentInstance === null || componentInstance === void 0 ? void 0 : componentInstance.ctx;
419
405
  var flicking = _this.vanillaFlicking;
@@ -434,7 +420,7 @@ function (_super) {
434
420
  return panels;
435
421
  };
436
422
 
437
- _this.getVirtualPanels = function () {
423
+ this.getVirtualPanels = function () {
438
424
  var options = _this.options;
439
425
  var _a = options.virtual.panelClass,
440
426
  panelClass = _a === void 0 ? "flicking-panel" : _a;
@@ -454,19 +440,14 @@ function (_super) {
454
440
  ref: idx.toString(),
455
441
  class: panelClass,
456
442
  style: size,
457
- domProps: {
458
- "data-element-index": idx
459
- }
443
+ "data-element-index": idx
460
444
  });
461
445
  });
462
446
  };
463
447
 
464
- return _this;
465
- }
466
-
467
- var __proto = Flicking.prototype;
468
-
469
- __proto.mounted = function () {
448
+ VanillaFlicking.withFlickingMethods(this, "vanillaFlicking");
449
+ },
450
+ mounted: function () {
470
451
  var _this = this;
471
452
 
472
453
  var _a;
@@ -475,16 +456,13 @@ function (_super) {
475
456
  var viewportEl = this.$el;
476
457
  var rendererOptions = {
477
458
  vueFlicking: this,
459
+ align: options.align,
478
460
  strategy: options.virtual && ((_a = options.panelsPerView) !== null && _a !== void 0 ? _a : -1) > 0 ? new VanillaFlicking.VirtualRenderingStrategy() : new VanillaFlicking.NormalRenderingStrategy({
479
- providerCtor: VueElementProvider,
480
- panelCtor: VanillaFlicking.ExternalPanel
461
+ providerCtor: VueElementProvider
481
462
  })
482
463
  };
483
- var flicking = new VanillaFlicking(viewportEl, __assign(__assign({}, this.options), {
484
- renderExternal: {
485
- renderer: VueRenderer,
486
- rendererOptions: rendererOptions
487
- }
464
+ var flicking = new VanillaFlicking(viewportEl, __assign(__assign({}, options), {
465
+ externalRenderer: new VueRenderer(rendererOptions)
488
466
  }));
489
467
  this.vanillaFlicking = flicking;
490
468
  flicking.once(VanillaFlicking.EVENTS.READY, function () {
@@ -501,24 +479,20 @@ function (_super) {
501
479
  if (this.status) {
502
480
  flicking.setStatus(this.status);
503
481
  }
504
- };
505
-
506
- __proto.beforeDestroy = function () {
482
+ },
483
+ beforeUnmount: function () {
507
484
  var _a;
508
485
 
509
486
  (_a = this.vanillaFlicking) === null || _a === void 0 ? void 0 : _a.destroy();
510
- };
511
-
512
- __proto.beforeMount = function () {
487
+ },
488
+ beforeMount: function () {
513
489
  this.fillKeys();
514
- };
515
-
516
- __proto.beforeUpdate = function () {
490
+ },
491
+ beforeUpdate: function () {
517
492
  this.fillKeys();
518
493
  this.diffResult = this.slotDiffer.update(this.getSlots());
519
- };
520
-
521
- __proto.updated = function () {
494
+ },
495
+ updated: function () {
522
496
  var flicking = this.vanillaFlicking;
523
497
  var diffResult = this.diffResult;
524
498
  this.checkPlugins();
@@ -532,9 +506,8 @@ function (_super) {
532
506
  }
533
507
 
534
508
  this.diffResult = undefined;
535
- };
536
-
537
- __proto.render = function () {
509
+ },
510
+ render: function () {
538
511
  var _a;
539
512
 
540
513
  var flicking = this.vanillaFlicking;
@@ -561,96 +534,83 @@ function (_super) {
561
534
  return vue.h(this.viewportTag, viewportData, __spreadArray([vue.h(this.cameraTag, cameraData, {
562
535
  default: panels
563
536
  })], viewportSlots, true));
564
- };
565
-
566
- __proto.getSlots = function () {
567
- var _this = this;
537
+ },
538
+ methods: {
539
+ getSlots: function () {
540
+ var _this = this;
541
+
542
+ var slots = this.$slots.default ? this.$slots.default() : [];
543
+ return slots.reduce(function (elementSlots, slot) {
544
+ return __spreadArray(__spreadArray([], elementSlots, true), _this.getElementVNodes(slot), true);
545
+ }, []);
546
+ },
547
+ getElementVNodes: function (slot, childSlots) {
548
+ var _this = this;
568
549
 
569
- var slots = this.$slots.default ? this.$slots.default() : [];
570
- return slots.reduce(function (elementSlots, slot) {
571
- return __spreadArray(__spreadArray([], elementSlots, true), _this.getElementVNodes(slot), true);
572
- }, []);
573
- };
550
+ if (childSlots === void 0) {
551
+ childSlots = [];
552
+ }
574
553
 
575
- __proto.getElementVNodes = function (slot, childSlots) {
576
- var _this = this;
554
+ if (slot.type === vue.Fragment && Array.isArray(slot.children)) {
555
+ slot.children.filter(function (child) {
556
+ return child && typeof child === "object";
557
+ }).forEach(function (child) {
558
+ return _this.getElementVNodes(child, childSlots);
559
+ });
560
+ } else {
561
+ childSlots.push(slot);
562
+ }
577
563
 
578
- if (childSlots === void 0) {
579
- childSlots = [];
580
- }
564
+ return childSlots;
565
+ },
566
+ bindEvents: function () {
567
+ var _this = this;
581
568
 
582
- if (slot.type === vue.Fragment && Array.isArray(slot.children)) {
583
- slot.children.filter(function (child) {
584
- return child && typeof child === "object";
585
- }).forEach(function (child) {
586
- return _this.getElementVNodes(child, childSlots);
569
+ var flicking = this.vanillaFlicking;
570
+ var events = Object.keys(VanillaFlicking.EVENTS).map(function (key) {
571
+ return VanillaFlicking.EVENTS[key];
587
572
  });
588
- } else {
589
- childSlots.push(slot);
590
- }
591
-
592
- return childSlots;
593
- };
594
-
595
- __proto.bindEvents = function () {
596
- var _this = this;
573
+ events.forEach(function (eventName) {
574
+ flicking.on(eventName, function (e) {
575
+ e.currentTarget = _this; // Make events from camelCase to kebab-case
597
576
 
598
- var flicking = this.vanillaFlicking;
599
- var events = Object.keys(VanillaFlicking.EVENTS).map(function (key) {
600
- return VanillaFlicking.EVENTS[key];
601
- });
602
- events.forEach(function (eventName) {
603
- flicking.on(eventName, function (e) {
604
- e.currentTarget = _this; // Make events from camelCase to kebab-case
605
-
606
- _this.$emit(eventName.replace(/([A-Z])/g, "-$1").toLowerCase(), e);
577
+ _this.$emit(eventName.replace(/([A-Z])/g, "-$1").toLowerCase(), e);
578
+ });
579
+ });
580
+ },
581
+ checkPlugins: function () {
582
+ var _a, _b;
583
+
584
+ var _c = this.pluginsDiffer.update(this.plugins),
585
+ list = _c.list,
586
+ added = _c.added,
587
+ removed = _c.removed,
588
+ prevList = _c.prevList;
589
+
590
+ (_a = this.vanillaFlicking).addPlugins.apply(_a, added.map(function (index) {
591
+ return list[index];
592
+ }));
593
+
594
+ (_b = this.vanillaFlicking).removePlugins.apply(_b, removed.map(function (index) {
595
+ return prevList[index];
596
+ }));
597
+ },
598
+ fillKeys: function () {
599
+ var vnodes = this.getSlots();
600
+ vnodes.forEach(function (node, idx) {
601
+ if (node.key == null) {
602
+ node.key = "$_" + idx;
603
+ }
604
+ });
605
+ },
606
+ getChildren: function () {
607
+ var childRefs = this.$refs;
608
+ return Object.keys(childRefs).map(function (refKey) {
609
+ return childRefs[refKey];
607
610
  });
608
- });
609
- };
610
-
611
- __proto.checkPlugins = function () {
612
- var _a, _b;
613
-
614
- var _c = this.pluginsDiffer.update(this.plugins),
615
- list = _c.list,
616
- added = _c.added,
617
- removed = _c.removed,
618
- prevList = _c.prevList;
619
-
620
- (_a = this.vanillaFlicking).addPlugins.apply(_a, added.map(function (index) {
621
- return list[index];
622
- }));
623
-
624
- (_b = this.vanillaFlicking).removePlugins.apply(_b, removed.map(function (index) {
625
- return prevList[index];
626
- }));
627
- };
628
-
629
- __proto.fillKeys = function () {
630
- var vnodes = this.getSlots();
631
- vnodes.forEach(function (node, idx) {
632
- if (node.key == null) {
633
- node.key = "$_" + idx;
634
- }
635
- });
636
- };
637
-
638
- __proto.getChildren = function () {
639
- var childRefs = this.$refs;
640
- return Object.keys(childRefs).map(function (refKey) {
641
- return childRefs[refKey];
642
- });
643
- };
644
-
645
- __decorate([VanillaFlicking.withFlickingMethods], Flicking.prototype, "vanillaFlicking", void 0);
646
-
647
- Flicking = __decorate([vueClassComponent.Options({
648
- components: {
649
- Panel: VuePanel
650
611
  }
651
- })], Flicking);
652
- return Flicking;
653
- }(vueClassComponent.Vue.with(FlickingProps));
612
+ }
613
+ });
654
614
 
655
615
  module.exports = Flicking;
656
616
  //# sourceMappingURL=flicking.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flicking.cjs.js","sources":["../src/FlickingProps.ts","../src/VueRenderer.ts","../src/VuePanel.ts","../src/VueElementProvider.ts","../src/Flicking.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\n/* eslint-disable @typescript-eslint/explicit-member-accessibility */\nimport { prop } from \"vue-class-component\";\nimport {\n FlickingOptions,\n Plugin,\n Status\n} from \"@egjs/flicking\";\n\nclass FlickingProps {\n viewportTag = prop<string>({ required: false, default: \"div\" });\n cameraTag = prop<string>({ required: false, default: \"div\" });\n hideBeforeInit = prop<boolean>({ required: false, default: false });\n firstPanelSize = prop<string>({ required: false, default: null });\n options = prop<Partial<FlickingOptions>>({ required: false, default: {} });\n plugins = prop<Plugin[]>({ required: false, default: [] });\n status = prop<Status>({ required: false, default: null });\n}\n\nexport default FlickingProps;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n ExternalRenderer,\n getFlickingAttached,\n PanelOptions,\n RendererOptions\n} from \"@egjs/flicking\";\n\nimport VueFlicking from \"./Flicking\";\nimport VuePanel from \"./VuePanel\";\n\nexport interface VueRendererOptions extends RendererOptions {\n vueFlicking: VueFlicking;\n}\n\nclass VueRenderer extends ExternalRenderer {\n // Internal States\n private _vueFlicking: VueFlicking;\n\n public constructor(options: VueRendererOptions) {\n super(options);\n\n this._vueFlicking = options.vueFlicking;\n }\n\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const vueFlicking = this._vueFlicking;\n const strategy = this._strategy;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>((resolve) => {\n vueFlicking.renderEmitter.once(\"render\", resolve);\n vueFlicking.$forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const vueFlicking = this._vueFlicking;\n\n await super.forceRenderAllPanels();\n\n return new Promise<void>((resolve) => {\n vueFlicking.renderEmitter.once(\"render\", resolve);\n vueFlicking.$forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const vueFlicking = this._vueFlicking;\n const childRefs = vueFlicking.$refs;\n const vuePanels: any[] = Object.keys(childRefs).map(refKey => childRefs[refKey]);\n\n this._panels = this._strategy.collectPanels(flicking, vuePanels);\n }\n\n protected _createPanel(externalComponent: VuePanel, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default VueRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { Vue } from \"vue-class-component\";\n\nclass VuePanel extends Vue {\n public hide: boolean = false;\n\n public render() {\n if (this.hide || !this.$slots.default) return;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n return this.$slots.default() as any;\n }\n}\n\nexport default VuePanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ExternalElementProvider } from \"@egjs/flicking\";\n\nimport VuePanel from \"./VuePanel\";\n\nclass VueElementProvider implements ExternalElementProvider {\n private _el: VuePanel;\n private _cachedElement: HTMLElement;\n\n public get rendered() { return !this._el.hide; }\n public get element() {\n const el = this._el.$el.nextSibling as HTMLElement;\n\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n this._cachedElement = el;\n }\n\n return this._cachedElement;\n }\n\n public constructor(el: VuePanel) {\n this._el = el;\n }\n\n public show() {\n this._el.hide = false;\n }\n\n public hide() {\n this._el.hide = true;\n }\n}\n\nexport default VueElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\n/* eslint-disable @typescript-eslint/explicit-member-accessibility */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { h, VNode, resolveComponent, Fragment, getCurrentInstance } from \"vue\";\nimport { Vue, Options, VueConstructor } from \"vue-class-component\";\nimport ListDiffer, { DiffResult } from \"@egjs/list-differ\";\nimport Component from \"@egjs/component\";\nimport VanillaFlicking, {\n EVENTS,\n withFlickingMethods,\n sync,\n Plugin,\n getRenderingPanels,\n getDefaultCameraTransform,\n range,\n VirtualRenderingStrategy,\n NormalRenderingStrategy,\n ExternalPanel\n} from \"@egjs/flicking\";\n\nimport FlickingProps from \"./FlickingProps\";\nimport VueRenderer, { VueRendererOptions } from \"./VueRenderer\";\nimport VuePanel from \"./VuePanel\";\nimport VueElementProvider from \"./VueElementProvider\";\n\n@Options({\n components: {\n Panel: VuePanel\n }\n})\nclass Flicking extends Vue.with(FlickingProps) {\n public readonly renderEmitter = new Component<{ render: void }>();\n\n @withFlickingMethods private vanillaFlicking: VanillaFlicking | null = null;\n private pluginsDiffer!: ListDiffer<Plugin>;\n private slotDiffer!: ListDiffer<VNode>;\n private diffResult?: DiffResult<VNode> = undefined;\n\n public mounted() {\n const options = this.options;\n const viewportEl = this.$el as HTMLElement;\n const rendererOptions: VueRendererOptions = {\n vueFlicking: this,\n strategy: options.virtual && (options.panelsPerView ?? -1) > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: VueElementProvider,\n panelCtor: ExternalPanel\n })\n };\n\n const flicking = new VanillaFlicking(viewportEl, {\n ...this.options,\n ...{ renderExternal: {\n renderer: VueRenderer,\n rendererOptions\n }}\n });\n this.vanillaFlicking = flicking;\n\n flicking.once(EVENTS.READY, () => {\n this.$forceUpdate();\n });\n\n const slots = this.getSlots();\n this.slotDiffer = new ListDiffer<VNode>(slots, vnode => vnode.key! as string | number);\n this.pluginsDiffer = new ListDiffer<Plugin>();\n\n this.bindEvents();\n this.checkPlugins();\n\n if (this.status) {\n flicking.setStatus(this.status);\n }\n }\n\n public beforeDestroy() {\n this.vanillaFlicking?.destroy();\n }\n\n public beforeMount() {\n this.fillKeys();\n }\n\n public beforeUpdate() {\n this.fillKeys();\n\n this.diffResult = this.slotDiffer.update(this.getSlots());\n }\n\n public updated() {\n const flicking = this.vanillaFlicking;\n const diffResult = this.diffResult;\n\n this.checkPlugins();\n this.renderEmitter.trigger(\"render\");\n\n if (!diffResult || !flicking?.initialized) return;\n\n const children = this.getChildren();\n\n sync(flicking, diffResult, children);\n\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this.$forceUpdate();\n }\n\n this.diffResult = undefined;\n }\n\n public render() {\n const flicking = this.vanillaFlicking;\n const options = this.options;\n const initialized = flicking && flicking.initialized;\n const isHorizontal = flicking\n ? flicking.horizontal\n : this.options.horizontal ?? true;\n\n const viewportData = {\n class: {\n \"flicking-viewport\": true,\n \"vertical\": !isHorizontal,\n \"flicking-hidden\": this.hideBeforeInit && !initialized\n }\n };\n const cameraData = {\n class: {\n \"flicking-camera\": true\n },\n style: !initialized && this.firstPanelSize\n ? { transform: getDefaultCameraTransform(this.options.align, this.options.horizontal, this.firstPanelSize) }\n : {}\n };\n\n const panels = options.virtual && options.panelsPerView && options.panelsPerView > 0\n ? this.getVirtualPanels\n : this.getPanels;\n\n const viewportSlots = this.$slots.viewport\n ? this.$slots.viewport()\n : [];\n\n return h(this.viewportTag, viewportData,\n [h(this.cameraTag, cameraData, { default: panels }), ...viewportSlots]\n );\n }\n\n public getSlots() {\n const slots = this.$slots.default\n ? this.$slots.default()\n : [];\n\n return slots.reduce((elementSlots, slot) => [...elementSlots, ...this.getElementVNodes(slot)], [] as VNode[]);\n }\n\n public getElementVNodes(slot: VNode, childSlots: VNode[] = []): VNode[] {\n if (slot.type === Fragment && Array.isArray(slot.children)) {\n slot.children\n .filter(child => child && typeof child === \"object\")\n .forEach(child => this.getElementVNodes(child as VNode, childSlots));\n } else {\n childSlots.push(slot);\n }\n\n return childSlots;\n }\n\n private bindEvents() {\n const flicking = this.vanillaFlicking;\n const events = (Object.keys(EVENTS) as Array<keyof typeof EVENTS>)\n .map(key => EVENTS[key]);\n\n events.forEach(eventName => {\n flicking!.on(eventName, (e: any) => {\n e.currentTarget = this;\n // Make events from camelCase to kebab-case\n this.$emit(eventName.replace(/([A-Z])/g, \"-$1\").toLowerCase(), e);\n });\n });\n }\n\n private checkPlugins() {\n const { list, added, removed, prevList } = this.pluginsDiffer.update(this.plugins);\n\n this.vanillaFlicking!.addPlugins(...added.map(index => list[index]));\n this.vanillaFlicking!.removePlugins(...removed.map(index => prevList[index]));\n }\n\n private fillKeys() {\n const vnodes = this.getSlots();\n\n vnodes.forEach((node, idx) => {\n if (node.key == null) {\n node.key = `$_${idx}`;\n }\n });\n }\n\n private getChildren() {\n const childRefs = this.$refs;\n\n return Object.keys(childRefs).map(refKey => childRefs[refKey]);\n }\n\n private getPanels = () => {\n const componentInstance = getCurrentInstance() as unknown as { ctx: Flicking } | null;\n const vueFlicking = componentInstance?.ctx;\n const flicking = this.vanillaFlicking;\n const defaultSlots = this.getSlots();\n const diffResult = vueFlicking?.diffResult;\n\n const slots = diffResult\n ? getRenderingPanels(flicking!, diffResult)\n : defaultSlots;\n\n const panelComponent = resolveComponent(\"Panel\");\n const panels = slots.map((slot, idx) => h(panelComponent as any, {\n key: slot.key!,\n ref: idx.toString()\n }, () => slot));\n\n return panels;\n };\n\n private getVirtualPanels = () => {\n const options = this.options;\n const {\n panelClass = \"flicking-panel\"\n } = options.virtual!;\n const panelsPerView = options.panelsPerView!;\n const flicking = this.vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = initialized && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => h(\"div\", {\n key: idx,\n ref: idx.toString(),\n class: panelClass,\n style: size,\n domProps: {\n \"data-element-index\": idx\n }\n }));\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\ninterface Flicking extends VanillaFlicking, VueConstructor<Vue & FlickingProps> {}\nexport default Flicking;\n"],"names":["prop","required","default","__extends","options","_super","_this","_vueFlicking","vueFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","$forceUpdate","forceRenderAllPanels","_a","childRefs","$refs","vuePanels","Object","keys","map","refKey","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","hide","$slots","Vue","el","_el","$el","nextSibling","nodeType","Node","ELEMENT_NODE","_cachedElement","Component","undefined","componentInstance","getCurrentInstance","ctx","vanillaFlicking","defaultSlots","getSlots","diffResult","slots","getRenderingPanels","panelComponent","resolveComponent","panels","slot","idx","h","key","ref","toString","virtual","panelClass","panelsPerView","initialized","renderingIndexes","renderer","getRenderingIndexesByOrder","range","firstPanel","size","horizontal","width","height","class","style","domProps","viewportEl","rendererOptions","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","VueElementProvider","panelCtor","ExternalPanel","VanillaFlicking","renderExternal","VueRenderer","EVENTS","READY","slotDiffer","ListDiffer","vnode","pluginsDiffer","bindEvents","checkPlugins","status","setStatus","destroy","fillKeys","update","trigger","children","getChildren","sync","added","length","removed","isHorizontal","viewportData","hideBeforeInit","cameraData","firstPanelSize","transform","getDefaultCameraTransform","align","getVirtualPanels","getPanels","viewportSlots","viewport","viewportTag","cameraTag","reduce","elementSlots","getElementVNodes","childSlots","type","Fragment","Array","isArray","filter","child","forEach","push","events","eventName","on","e","currentTarget","$emit","replace","toLowerCase","_c","plugins","list","prevList","addPlugins","index","_b","removePlugins","vnodes","node","__decorate","withFlickingMethods","Flicking","Options","components","Panel","VuePanel","with","FlickingProps"],"mappings":"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"}
1
+ {"version":3,"file":"flicking.cjs.js","sources":["../src/FlickingProps.ts","../src/VueRenderer.ts","../src/VuePanel.ts","../src/VueElementProvider.ts","../src/Flicking.ts"],"sourcesContent":["/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { PropType } from \"vue\";\nimport { FlickingOptions, Plugin, Status } from \"@egjs/flicking\";\n\nexport default {\n viewportTag: {\n type: String,\n default: \"div\",\n required: false\n },\n cameraTag: {\n type: String,\n default: \"div\",\n required: false\n },\n hideBeforeInit: {\n type: Boolean,\n default: false,\n required: false\n },\n firstPanelSize: {\n type: String,\n required: false\n },\n options: {\n type: Object as unknown as () => Partial<FlickingOptions>,\n default: () => ({}),\n required: false\n },\n plugins: {\n type: Array as PropType<Plugin[]>,\n default: () => ([]),\n required: false\n },\n status: {\n type: Object as PropType<Status>,\n required: false\n }\n};\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport {\n ExternalRenderer,\n getFlickingAttached,\n PanelOptions,\n RendererOptions\n} from \"@egjs/flicking\";\n\nimport VueFlicking from \"./Flicking\";\nimport VuePanel from \"./VuePanel\";\n\nexport interface VueRendererOptions extends RendererOptions {\n vueFlicking: VueFlicking;\n}\n\nclass VueRenderer extends ExternalRenderer {\n // Internal States\n private _vueFlicking: VueFlicking;\n\n public constructor(options: VueRendererOptions) {\n super(options);\n\n this._vueFlicking = options.vueFlicking;\n }\n\n public async render() {\n const flicking = getFlickingAttached(this._flicking);\n const vueFlicking = this._vueFlicking;\n const strategy = this._strategy;\n\n strategy.updateRenderingPanels(flicking);\n strategy.renderPanels(flicking);\n\n return new Promise<void>((resolve) => {\n vueFlicking.renderEmitter.once(\"render\", resolve);\n vueFlicking.$forceUpdate();\n });\n }\n\n public async forceRenderAllPanels() {\n const vueFlicking = this._vueFlicking;\n\n await super.forceRenderAllPanels();\n\n return new Promise<void>((resolve) => {\n vueFlicking.renderEmitter.once(\"render\", resolve);\n vueFlicking.$forceUpdate();\n });\n }\n\n protected _collectPanels() {\n const flicking = getFlickingAttached(this._flicking);\n const vueFlicking = this._vueFlicking;\n const childRefs = vueFlicking.$refs;\n const vuePanels: any[] = Object.keys(childRefs).map(refKey => childRefs[refKey]);\n\n this._panels = this._strategy.collectPanels(flicking, vuePanels);\n }\n\n protected _createPanel(externalComponent: VuePanel, options: PanelOptions) {\n return this._strategy.createPanel(externalComponent, options);\n }\n}\n\nexport default VueRenderer;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\n\nimport { defineComponent } from \"vue\";\n\nconst VuePanel = defineComponent({\n data() {\n return {\n hide: false\n };\n },\n render() {\n if (this.hide || !this.$slots.default) return;\n\n return this.$slots.default();\n }\n});\n\ntype VuePanelType = InstanceType<typeof VuePanel>;\n\ninterface VuePanel extends VuePanelType {}\nexport default VuePanel;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { ElementProvider } from \"@egjs/flicking\";\n\nimport VuePanel from \"./VuePanel\";\n\nclass VueElementProvider implements ElementProvider {\n private _el: VuePanel;\n private _cachedElement: HTMLElement;\n\n public get rendered() { return !this._el.hide; }\n public get element() {\n const el = this._el.$el.nextSibling as HTMLElement;\n\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n this._cachedElement = el;\n }\n\n return this._cachedElement;\n }\n\n public constructor(el: VuePanel) {\n this._el = el;\n }\n\n public show() {\n this._el.hide = false;\n }\n\n public hide() {\n this._el.hide = true;\n }\n}\n\nexport default VueElementProvider;\n","/*\n * Copyright (c) 2015 NAVER Corp.\n * egjs projects are licensed under the MIT license\n */\nimport { h, defineComponent, VNode, resolveComponent, Fragment, getCurrentInstance } from \"vue\";\nimport ListDiffer, { DiffResult } from \"@egjs/list-differ\";\nimport Component from \"@egjs/component\";\nimport VanillaFlicking, {\n EVENTS,\n withFlickingMethods,\n sync,\n Plugin,\n getRenderingPanels,\n getDefaultCameraTransform,\n range,\n VirtualRenderingStrategy,\n NormalRenderingStrategy\n} from \"@egjs/flicking\";\n\nimport FlickingProps from \"./FlickingProps\";\nimport VueRenderer, { VueRendererOptions } from \"./VueRenderer\";\nimport VuePanel from \"./VuePanel\";\nimport VueElementProvider from \"./VueElementProvider\";\nimport { VueFlicking } from \"./types\";\n\nconst Flicking = defineComponent({\n props: FlickingProps,\n components: {\n Panel: VuePanel\n },\n data() {\n return {} as {\n renderEmitter: Component<{ render: void }>;\n vanillaFlicking: VanillaFlicking;\n pluginsDiffer: ListDiffer<Plugin>;\n slotDiffer: ListDiffer<VNode>;\n diffResult: DiffResult<VNode> | null;\n };\n },\n created() {\n this.vanillaFlicking = null;\n this.renderEmitter = new Component();\n this.diffResult = null;\n\n this.getPanels = () => {\n const componentInstance = getCurrentInstance() as unknown as { ctx: Flicking } | null;\n const vueFlicking = componentInstance?.ctx;\n const flicking = this.vanillaFlicking;\n const defaultSlots = this.getSlots();\n const diffResult = vueFlicking?.diffResult;\n\n const slots = diffResult\n ? getRenderingPanels(flicking, diffResult)\n : defaultSlots;\n\n const panelComponent = resolveComponent(\"Panel\");\n const panels = slots.map((slot, idx) => h(panelComponent as any, {\n key: slot.key!,\n ref: idx.toString()\n }, () => slot));\n\n return panels;\n };\n this.getVirtualPanels = () => {\n const options = this.options;\n const {\n panelClass = \"flicking-panel\"\n } = options.virtual!;\n const panelsPerView = options.panelsPerView as number;\n const flicking = this.vanillaFlicking;\n const initialized = flicking && flicking.initialized;\n\n const renderingIndexes = initialized\n ? flicking.renderer.strategy.getRenderingIndexesByOrder(flicking)\n : range(panelsPerView + 1);\n\n const firstPanel = initialized && flicking.panels[0];\n const size = firstPanel\n ? flicking.horizontal\n ? { width: firstPanel.size }\n : { height: firstPanel.size }\n : {};\n\n return renderingIndexes.map(idx => h(\"div\", {\n key: idx,\n ref: idx.toString(),\n class: panelClass,\n style: size,\n \"data-element-index\": idx\n }));\n };\n\n withFlickingMethods(this, \"vanillaFlicking\");\n },\n mounted() {\n const options = this.options;\n const viewportEl = this.$el as HTMLElement;\n const rendererOptions: VueRendererOptions = {\n vueFlicking: this,\n align: options.align,\n strategy: options.virtual && (options.panelsPerView ?? -1) > 0\n ? new VirtualRenderingStrategy()\n : new NormalRenderingStrategy({\n providerCtor: VueElementProvider\n })\n };\n\n const flicking = new VanillaFlicking(viewportEl, {\n ...options,\n externalRenderer: new VueRenderer(rendererOptions)\n });\n this.vanillaFlicking = flicking;\n\n flicking.once(EVENTS.READY, () => {\n this.$forceUpdate();\n });\n\n const slots = this.getSlots();\n this.slotDiffer = new ListDiffer<VNode>(slots, vnode => vnode.key! as string | number);\n this.pluginsDiffer = new ListDiffer<Plugin>();\n\n this.bindEvents();\n this.checkPlugins();\n\n if (this.status) {\n flicking.setStatus(this.status);\n }\n },\n beforeUnmount() {\n this.vanillaFlicking?.destroy();\n },\n beforeMount() {\n this.fillKeys();\n },\n beforeUpdate() {\n this.fillKeys();\n\n this.diffResult = this.slotDiffer.update(this.getSlots());\n },\n updated() {\n const flicking = this.vanillaFlicking;\n const diffResult = this.diffResult;\n\n this.checkPlugins();\n this.renderEmitter.trigger(\"render\");\n\n if (!diffResult || !flicking?.initialized) return;\n\n const children = this.getChildren();\n\n sync(flicking, diffResult, children);\n\n if (diffResult.added.length > 0 || diffResult.removed.length > 0) {\n this.$forceUpdate();\n }\n\n this.diffResult = undefined;\n },\n render() {\n const flicking = this.vanillaFlicking;\n const options = this.options;\n const initialized = flicking && flicking.initialized;\n const isHorizontal = flicking\n ? flicking.horizontal\n : this.options.horizontal ?? true;\n\n const viewportData = {\n class: {\n \"flicking-viewport\": true,\n \"vertical\": !isHorizontal,\n \"flicking-hidden\": this.hideBeforeInit && !initialized\n }\n };\n const cameraData = {\n class: {\n \"flicking-camera\": true\n },\n style: !initialized && this.firstPanelSize\n ? { transform: getDefaultCameraTransform(this.options.align, this.options.horizontal, this.firstPanelSize) }\n : {}\n };\n\n const panels = options.virtual && options.panelsPerView && options.panelsPerView > 0\n ? this.getVirtualPanels\n : this.getPanels;\n\n const viewportSlots = this.$slots.viewport\n ? this.$slots.viewport()\n : [];\n\n return h(this.viewportTag, viewportData,\n [h(this.cameraTag, cameraData, { default: panels }), ...viewportSlots]\n );\n },\n methods: {\n getSlots() {\n const slots = this.$slots.default\n ? this.$slots.default()\n : [];\n\n return slots.reduce((elementSlots, slot) => [...elementSlots, ...this.getElementVNodes(slot)], [] as VNode[]);\n },\n getElementVNodes(slot: VNode, childSlots: VNode[] = []): VNode[] {\n if (slot.type === Fragment && Array.isArray(slot.children)) {\n slot.children\n .filter(child => child && typeof child === \"object\")\n .forEach(child => this.getElementVNodes(child as VNode, childSlots));\n } else {\n childSlots.push(slot);\n }\n\n return childSlots;\n },\n bindEvents() {\n const flicking = this.vanillaFlicking;\n const events = (Object.keys(EVENTS) as Array<keyof typeof EVENTS>)\n .map(key => EVENTS[key]);\n\n events.forEach(eventName => {\n flicking.on(eventName, (e: any) => {\n e.currentTarget = this;\n // Make events from camelCase to kebab-case\n this.$emit(eventName.replace(/([A-Z])/g, \"-$1\").toLowerCase(), e);\n });\n });\n },\n checkPlugins() {\n const { list, added, removed, prevList } = this.pluginsDiffer.update(this.plugins);\n\n this.vanillaFlicking!.addPlugins(...added.map(index => list[index]));\n this.vanillaFlicking!.removePlugins(...removed.map(index => prevList[index]));\n },\n fillKeys() {\n const vnodes = this.getSlots();\n\n vnodes.forEach((node, idx) => {\n if (node.key == null) {\n node.key = `$_${idx}`;\n }\n });\n },\n getChildren() {\n const childRefs = this.$refs;\n\n return Object.keys(childRefs).map(refKey => childRefs[refKey]);\n }\n }\n}) as unknown as VueFlicking;\n\ninterface Flicking extends VueFlicking, VanillaFlicking {}\nexport default Flicking;\n"],"names":["viewportTag","type","String","default","required","cameraTag","hideBeforeInit","Boolean","firstPanelSize","options","Object","plugins","Array","status","__extends","_super","_this","_vueFlicking","vueFlicking","flicking","getFlickingAttached","_flicking","strategy","_strategy","updateRenderingPanels","renderPanels","Promise","resolve","renderEmitter","once","$forceUpdate","forceRenderAllPanels","_a","childRefs","$refs","vuePanels","keys","map","refKey","_panels","collectPanels","externalComponent","createPanel","ExternalRenderer","VuePanel","defineComponent","data","hide","render","$slots","el","_el","$el","nextSibling","nodeType","Node","ELEMENT_NODE","_cachedElement","Flicking","props","FlickingProps","components","Panel","created","vanillaFlicking","Component","diffResult","getPanels","componentInstance","getCurrentInstance","ctx","defaultSlots","getSlots","slots","getRenderingPanels","panelComponent","resolveComponent","panels","slot","idx","h","key","ref","toString","getVirtualPanels","virtual","panelClass","panelsPerView","initialized","renderingIndexes","renderer","getRenderingIndexesByOrder","range","firstPanel","size","horizontal","width","height","class","style","withFlickingMethods","mounted","viewportEl","rendererOptions","align","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","VueElementProvider","VanillaFlicking","externalRenderer","VueRenderer","EVENTS","READY","slotDiffer","ListDiffer","vnode","pluginsDiffer","bindEvents","checkPlugins","setStatus","beforeUnmount","destroy","beforeMount","fillKeys","beforeUpdate","update","updated","trigger","children","getChildren","sync","added","length","removed","undefined","isHorizontal","viewportData","cameraData","transform","getDefaultCameraTransform","viewportSlots","viewport","methods","reduce","elementSlots","getElementVNodes","childSlots","Fragment","isArray","filter","child","forEach","push","events","eventName","on","e","currentTarget","$emit","replace","toLowerCase","_c","list","prevList","addPlugins","index","_b","removePlugins","vnodes","node"],"mappings":"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"}