@egjs/vue3-flicking 4.4.0 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/declaration/Flicking.d.ts +3 -107
- package/declaration/FlickingProps.d.ts +37 -10
- package/declaration/VueElementProvider.d.ts +4 -3
- package/declaration/VuePanel.d.ts +4 -4
- package/declaration/types.d.ts +44 -0
- package/dist/flicking.cjs.js +164 -202
- package/dist/flicking.cjs.js.map +1 -1
- package/dist/flicking.esm.js +166 -204
- package/dist/flicking.esm.js.map +1 -1
- package/package.json +4 -5
- package/src/Flicking.ts +136 -147
- package/src/FlickingProps.ts +37 -18
- package/src/VueElementProvider.ts +12 -3
- package/src/VuePanel.ts +13 -8
- package/src/types.ts +75 -0
package/dist/flicking.cjs.js
CHANGED
|
@@ -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.
|
|
7
|
+
version: 4.5.0
|
|
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,45 +213,45 @@ function __spreadArray(to, from, pack) {
|
|
|
221
213
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
222
214
|
}
|
|
223
215
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
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
|
|
259
253
|
}
|
|
260
|
-
|
|
261
|
-
return FlickingProps;
|
|
262
|
-
}();
|
|
254
|
+
};
|
|
263
255
|
|
|
264
256
|
var VueRenderer =
|
|
265
257
|
/*#__PURE__*/
|
|
@@ -336,34 +328,21 @@ function (_super) {
|
|
|
336
328
|
return VueRenderer;
|
|
337
329
|
}(VanillaFlicking.ExternalRenderer);
|
|
338
330
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
function
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
var __proto = VuePanel.prototype;
|
|
352
|
-
Object.defineProperty(__proto, "nativeElement", {
|
|
353
|
-
get: function () {
|
|
354
|
-
return this.$.subTree.children[0].el;
|
|
355
|
-
},
|
|
356
|
-
enumerable: false,
|
|
357
|
-
configurable: true
|
|
358
|
-
});
|
|
359
|
-
|
|
360
|
-
__proto.render = function () {
|
|
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 () {
|
|
361
342
|
if (this.hide || !this.$slots.default) return;
|
|
362
343
|
return this.$slots.default();
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
return VuePanel;
|
|
366
|
-
}(vueClassComponent.Vue);
|
|
344
|
+
}
|
|
345
|
+
});
|
|
367
346
|
|
|
368
347
|
var VueElementProvider =
|
|
369
348
|
/*#__PURE__*/
|
|
@@ -373,16 +352,22 @@ function () {
|
|
|
373
352
|
}
|
|
374
353
|
|
|
375
354
|
var __proto = VueElementProvider.prototype;
|
|
376
|
-
Object.defineProperty(__proto, "
|
|
355
|
+
Object.defineProperty(__proto, "rendered", {
|
|
377
356
|
get: function () {
|
|
378
|
-
return this._el.
|
|
357
|
+
return !this._el.hide;
|
|
379
358
|
},
|
|
380
359
|
enumerable: false,
|
|
381
360
|
configurable: true
|
|
382
361
|
});
|
|
383
|
-
Object.defineProperty(__proto, "
|
|
362
|
+
Object.defineProperty(__proto, "element", {
|
|
384
363
|
get: function () {
|
|
385
|
-
|
|
364
|
+
var el = this._el.$el.nextSibling;
|
|
365
|
+
|
|
366
|
+
if (el && el.nodeType === Node.ELEMENT_NODE) {
|
|
367
|
+
this._cachedElement = el;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
return this._cachedElement;
|
|
386
371
|
},
|
|
387
372
|
enumerable: false,
|
|
388
373
|
configurable: true
|
|
@@ -399,19 +384,22 @@ function () {
|
|
|
399
384
|
return VueElementProvider;
|
|
400
385
|
}();
|
|
401
386
|
|
|
402
|
-
var Flicking =
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
function
|
|
408
|
-
|
|
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;
|
|
409
397
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
398
|
+
this.vanillaFlicking = null;
|
|
399
|
+
this.renderEmitter = new Component();
|
|
400
|
+
this.diffResult = null;
|
|
413
401
|
|
|
414
|
-
|
|
402
|
+
this.getPanels = function () {
|
|
415
403
|
var componentInstance = vue.getCurrentInstance();
|
|
416
404
|
var vueFlicking = componentInstance === null || componentInstance === void 0 ? void 0 : componentInstance.ctx;
|
|
417
405
|
var flicking = _this.vanillaFlicking;
|
|
@@ -432,7 +420,7 @@ function (_super) {
|
|
|
432
420
|
return panels;
|
|
433
421
|
};
|
|
434
422
|
|
|
435
|
-
|
|
423
|
+
this.getVirtualPanels = function () {
|
|
436
424
|
var options = _this.options;
|
|
437
425
|
var _a = options.virtual.panelClass,
|
|
438
426
|
panelClass = _a === void 0 ? "flicking-panel" : _a;
|
|
@@ -452,19 +440,14 @@ function (_super) {
|
|
|
452
440
|
ref: idx.toString(),
|
|
453
441
|
class: panelClass,
|
|
454
442
|
style: size,
|
|
455
|
-
|
|
456
|
-
"data-element-index": idx
|
|
457
|
-
}
|
|
443
|
+
"data-element-index": idx
|
|
458
444
|
});
|
|
459
445
|
});
|
|
460
446
|
};
|
|
461
447
|
|
|
462
|
-
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
var __proto = Flicking.prototype;
|
|
466
|
-
|
|
467
|
-
__proto.mounted = function () {
|
|
448
|
+
VanillaFlicking.withFlickingMethods(this, "vanillaFlicking");
|
|
449
|
+
},
|
|
450
|
+
mounted: function () {
|
|
468
451
|
var _this = this;
|
|
469
452
|
|
|
470
453
|
var _a;
|
|
@@ -473,16 +456,13 @@ function (_super) {
|
|
|
473
456
|
var viewportEl = this.$el;
|
|
474
457
|
var rendererOptions = {
|
|
475
458
|
vueFlicking: this,
|
|
459
|
+
align: options.align,
|
|
476
460
|
strategy: options.virtual && ((_a = options.panelsPerView) !== null && _a !== void 0 ? _a : -1) > 0 ? new VanillaFlicking.VirtualRenderingStrategy() : new VanillaFlicking.NormalRenderingStrategy({
|
|
477
|
-
providerCtor: VueElementProvider
|
|
478
|
-
panelCtor: VanillaFlicking.ExternalPanel
|
|
461
|
+
providerCtor: VueElementProvider
|
|
479
462
|
})
|
|
480
463
|
};
|
|
481
|
-
var flicking = new VanillaFlicking(viewportEl, __assign(__assign({},
|
|
482
|
-
|
|
483
|
-
renderer: VueRenderer,
|
|
484
|
-
rendererOptions: rendererOptions
|
|
485
|
-
}
|
|
464
|
+
var flicking = new VanillaFlicking(viewportEl, __assign(__assign({}, options), {
|
|
465
|
+
externalRenderer: new VueRenderer(rendererOptions)
|
|
486
466
|
}));
|
|
487
467
|
this.vanillaFlicking = flicking;
|
|
488
468
|
flicking.once(VanillaFlicking.EVENTS.READY, function () {
|
|
@@ -499,24 +479,20 @@ function (_super) {
|
|
|
499
479
|
if (this.status) {
|
|
500
480
|
flicking.setStatus(this.status);
|
|
501
481
|
}
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
__proto.beforeDestroy = function () {
|
|
482
|
+
},
|
|
483
|
+
beforeUnmount: function () {
|
|
505
484
|
var _a;
|
|
506
485
|
|
|
507
486
|
(_a = this.vanillaFlicking) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
__proto.beforeMount = function () {
|
|
487
|
+
},
|
|
488
|
+
beforeMount: function () {
|
|
511
489
|
this.fillKeys();
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
__proto.beforeUpdate = function () {
|
|
490
|
+
},
|
|
491
|
+
beforeUpdate: function () {
|
|
515
492
|
this.fillKeys();
|
|
516
493
|
this.diffResult = this.slotDiffer.update(this.getSlots());
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
__proto.updated = function () {
|
|
494
|
+
},
|
|
495
|
+
updated: function () {
|
|
520
496
|
var flicking = this.vanillaFlicking;
|
|
521
497
|
var diffResult = this.diffResult;
|
|
522
498
|
this.checkPlugins();
|
|
@@ -530,9 +506,8 @@ function (_super) {
|
|
|
530
506
|
}
|
|
531
507
|
|
|
532
508
|
this.diffResult = undefined;
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
__proto.render = function () {
|
|
509
|
+
},
|
|
510
|
+
render: function () {
|
|
536
511
|
var _a;
|
|
537
512
|
|
|
538
513
|
var flicking = this.vanillaFlicking;
|
|
@@ -559,96 +534,83 @@ function (_super) {
|
|
|
559
534
|
return vue.h(this.viewportTag, viewportData, __spreadArray([vue.h(this.cameraTag, cameraData, {
|
|
560
535
|
default: panels
|
|
561
536
|
})], viewportSlots, true));
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
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;
|
|
566
549
|
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
}, []);
|
|
571
|
-
};
|
|
550
|
+
if (childSlots === void 0) {
|
|
551
|
+
childSlots = [];
|
|
552
|
+
}
|
|
572
553
|
|
|
573
|
-
|
|
574
|
-
|
|
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
|
+
}
|
|
575
563
|
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
564
|
+
return childSlots;
|
|
565
|
+
},
|
|
566
|
+
bindEvents: function () {
|
|
567
|
+
var _this = this;
|
|
579
568
|
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
return
|
|
583
|
-
}).forEach(function (child) {
|
|
584
|
-
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];
|
|
585
572
|
});
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
573
|
+
events.forEach(function (eventName) {
|
|
574
|
+
flicking.on(eventName, function (e) {
|
|
575
|
+
e.currentTarget = _this; // Make events from camelCase to kebab-case
|
|
589
576
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
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];
|
|
605
610
|
});
|
|
606
|
-
});
|
|
607
|
-
};
|
|
608
|
-
|
|
609
|
-
__proto.checkPlugins = function () {
|
|
610
|
-
var _a, _b;
|
|
611
|
-
|
|
612
|
-
var _c = this.pluginsDiffer.update(this.plugins),
|
|
613
|
-
list = _c.list,
|
|
614
|
-
added = _c.added,
|
|
615
|
-
removed = _c.removed,
|
|
616
|
-
prevList = _c.prevList;
|
|
617
|
-
|
|
618
|
-
(_a = this.vanillaFlicking).addPlugins.apply(_a, added.map(function (index) {
|
|
619
|
-
return list[index];
|
|
620
|
-
}));
|
|
621
|
-
|
|
622
|
-
(_b = this.vanillaFlicking).removePlugins.apply(_b, removed.map(function (index) {
|
|
623
|
-
return prevList[index];
|
|
624
|
-
}));
|
|
625
|
-
};
|
|
626
|
-
|
|
627
|
-
__proto.fillKeys = function () {
|
|
628
|
-
var vnodes = this.getSlots();
|
|
629
|
-
vnodes.forEach(function (node, idx) {
|
|
630
|
-
if (node.key == null) {
|
|
631
|
-
node.key = "$_" + idx;
|
|
632
|
-
}
|
|
633
|
-
});
|
|
634
|
-
};
|
|
635
|
-
|
|
636
|
-
__proto.getChildren = function () {
|
|
637
|
-
var childRefs = this.$refs;
|
|
638
|
-
return Object.keys(childRefs).map(function (refKey) {
|
|
639
|
-
return childRefs[refKey];
|
|
640
|
-
});
|
|
641
|
-
};
|
|
642
|
-
|
|
643
|
-
__decorate([VanillaFlicking.withFlickingMethods], Flicking.prototype, "vanillaFlicking", void 0);
|
|
644
|
-
|
|
645
|
-
Flicking = __decorate([vueClassComponent.Options({
|
|
646
|
-
components: {
|
|
647
|
-
Panel: VuePanel
|
|
648
611
|
}
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
}(vueClassComponent.Vue.with(FlickingProps));
|
|
612
|
+
}
|
|
613
|
+
});
|
|
652
614
|
|
|
653
615
|
module.exports = Flicking;
|
|
654
616
|
//# sourceMappingURL=flicking.cjs.js.map
|
package/dist/flicking.cjs.js.map
CHANGED
|
@@ -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 });\n options = prop<Partial<FlickingOptions>>({ required: false, default: {} });\n plugins = prop<Plugin[]>({ required: false, default: [] });\n status = prop<Status>({ required: false });\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 get nativeElement() { return this.$.subTree.children![0].el as HTMLElement; }\n\n public render() {\n if (this.hide || !this.$slots.default) return;\n\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\n public get element() { return this._el.nativeElement; }\n public get rendered() { return !this._el.hide; }\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","$","subTree","children","el","hide","$slots","Vue","_el","nativeElement","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","$el","rendererOptions","VirtualRenderingStrategy","NormalRenderingStrategy","providerCtor","VueElementProvider","panelCtor","ExternalPanel","VanillaFlicking","renderExternal","VueRenderer","EVENTS","READY","slotDiffer","ListDiffer","vnode","pluginsDiffer","bindEvents","checkPlugins","status","setStatus","destroy","fillKeys","update","trigger","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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"}
|