@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.
- package/declaration/Flicking.d.ts +3 -107
- package/declaration/FlickingProps.d.ts +37 -10
- package/declaration/VueElementProvider.d.ts +2 -2
- package/declaration/VuePanel.d.ts +4 -3
- package/declaration/types.d.ts +44 -0
- package/dist/flicking.cjs.js +155 -195
- package/dist/flicking.cjs.js.map +1 -1
- package/dist/flicking.esm.js +157 -197
- 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 +2 -2
- package/src/VuePanel.ts +13 -7
- 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.4.
|
|
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
|
-
|
|
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
|
-
|
|
259
|
-
|
|
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
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
function
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
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
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
function
|
|
410
|
-
|
|
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
|
-
|
|
413
|
-
|
|
414
|
-
|
|
398
|
+
this.vanillaFlicking = null;
|
|
399
|
+
this.renderEmitter = new Component();
|
|
400
|
+
this.diffResult = null;
|
|
415
401
|
|
|
416
|
-
|
|
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
|
-
|
|
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
|
-
|
|
458
|
-
"data-element-index": idx
|
|
459
|
-
}
|
|
443
|
+
"data-element-index": idx
|
|
460
444
|
});
|
|
461
445
|
});
|
|
462
446
|
};
|
|
463
447
|
|
|
464
|
-
|
|
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({},
|
|
484
|
-
|
|
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
|
-
|
|
567
|
-
|
|
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
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
}, []);
|
|
573
|
-
};
|
|
550
|
+
if (childSlots === void 0) {
|
|
551
|
+
childSlots = [];
|
|
552
|
+
}
|
|
574
553
|
|
|
575
|
-
|
|
576
|
-
|
|
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
|
-
|
|
579
|
-
|
|
580
|
-
|
|
564
|
+
return childSlots;
|
|
565
|
+
},
|
|
566
|
+
bindEvents: function () {
|
|
567
|
+
var _this = this;
|
|
581
568
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
return
|
|
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
|
-
|
|
589
|
-
|
|
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
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
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
|
-
}
|
|
652
|
-
|
|
653
|
-
}(vueClassComponent.Vue.with(FlickingProps));
|
|
612
|
+
}
|
|
613
|
+
});
|
|
654
614
|
|
|
655
615
|
module.exports = Flicking;
|
|
656
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, 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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"}
|