y-design-ssr 0.0.21 → 0.0.22

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/libs/swipeItem.js CHANGED
@@ -115,6 +115,44 @@ function _slicedToArray(arr, i) {
115
115
 
116
116
  /***/ }),
117
117
 
118
+ /***/ 7329:
119
+ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
120
+
121
+ "use strict";
122
+
123
+ // EXPORTS
124
+ __webpack_require__.d(__webpack_exports__, {
125
+ "Z": function() { return /* binding */ _toConsumableArray; }
126
+ });
127
+
128
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
129
+ var arrayLikeToArray = __webpack_require__(676);
130
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
131
+
132
+ function _arrayWithoutHoles(arr) {
133
+ if (Array.isArray(arr)) return (0,arrayLikeToArray/* default */.Z)(arr);
134
+ }
135
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
136
+ function _iterableToArray(iter) {
137
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
138
+ }
139
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
140
+ var unsupportedIterableToArray = __webpack_require__(2961);
141
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
142
+ function _nonIterableSpread() {
143
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
144
+ }
145
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
146
+
147
+
148
+
149
+
150
+ function _toConsumableArray(arr) {
151
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || (0,unsupportedIterableToArray/* default */.Z)(arr) || _nonIterableSpread();
152
+ }
153
+
154
+ /***/ }),
155
+
118
156
  /***/ 2961:
119
157
  /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
120
158
 
@@ -142,11 +180,14 @@ function _unsupportedIterableToArray(o, minLen) {
142
180
 
143
181
  // EXPORTS
144
182
  __webpack_require__.d(__webpack_exports__, {
183
+ "tG": function() { return /* reexport */ setRelation; },
145
184
  "jQ": function() { return /* reexport */ useRelation; }
146
185
  });
147
186
 
148
- // UNUSED EXPORTS: filterChildren, setRelation, sortChildren
187
+ // UNUSED EXPORTS: filterChildren, sortChildren
149
188
 
189
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
190
+ var defineProperty = __webpack_require__(6156);
150
191
  // EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js
151
192
  var web_dom_collections_for_each = __webpack_require__(4747);
152
193
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.sort.js
@@ -172,7 +213,7 @@ var external_vue_ = __webpack_require__(4103);
172
213
 
173
214
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
174
215
 
175
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
216
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0,defineProperty/* default */.Z)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
176
217
 
177
218
 
178
219
 
@@ -199,7 +240,7 @@ var filterChildren = function filterChildren(children) {
199
240
  var _filterChildren = function _filterChildren(childrens) {
200
241
  if (Array.isArray(childrens)) {
201
242
  childrens.forEach(function (child) {
202
- if (isVNode(child)) {
243
+ if ((0,external_vue_.isVNode)(child)) {
203
244
  var _child$component;
204
245
 
205
246
  vnodes.push(child);
@@ -227,8 +268,8 @@ var sortChildren = function sortChildren(childrens, instance) {
227
268
  });
228
269
  };
229
270
  var setRelation = function setRelation(key) {
230
- var instance = getCurrentInstance();
231
- var childrens = reactive([]);
271
+ var instance = (0,external_vue_.getCurrentInstance)();
272
+ var childrens = (0,external_vue_.reactive)([]);
232
273
 
233
274
  var initProvide = function initProvide(value) {
234
275
  var addChild = function addChild(child) {
@@ -243,7 +284,7 @@ var setRelation = function setRelation(key) {
243
284
  childrens.splice(index, 1);
244
285
  };
245
286
 
246
- provide(key, _objectSpread({
287
+ (0,external_vue_.provide)(key, _objectSpread({
247
288
  addChild: addChild,
248
289
  removeChild: removeChild,
249
290
  childrens: childrens
@@ -380,22 +421,13 @@ var langs = (0,external_vue_.reactive)({
380
421
 
381
422
  "use strict";
382
423
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
383
- /* harmony export */ "pB": function() { return /* binding */ SWIPE_PROVIDE_KEY; }
424
+ /* harmony export */ "Ly": function() { return /* binding */ Position; },
425
+ /* harmony export */ "xM": function() { return /* binding */ Align; },
426
+ /* harmony export */ "Gn": function() { return /* binding */ swipeProps; }
384
427
  /* harmony export */ });
385
- /* unused harmony exports Position, Align, swipeProps */
386
- /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2526);
387
- /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0__);
388
- /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1817);
389
- /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_1__);
390
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1539);
391
- /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__);
392
- /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9653);
393
- /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_3__);
428
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9653);
429
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);
394
430
 
395
-
396
-
397
-
398
- var SWIPE_PROVIDE_KEY = Symbol('y-swipe');
399
431
  var Position;
400
432
 
401
433
  (function (Position) {
@@ -482,6 +514,583 @@ var swipeProps = {
482
514
 
483
515
  /***/ }),
484
516
 
517
+ /***/ 7832:
518
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
519
+
520
+ "use strict";
521
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
522
+ /* harmony export */ "p": function() { return /* binding */ SWIPE_PROVIDE_KEY; }
523
+ /* harmony export */ });
524
+ /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(7329);
525
+ /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(4699);
526
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4103);
527
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
528
+ /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2526);
529
+ /* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__);
530
+ /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1817);
531
+ /* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_2__);
532
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1539);
533
+ /* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__);
534
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9653);
535
+ /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_4__);
536
+ /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1249);
537
+ /* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_5__);
538
+ /* harmony import */ var core_js_modules_es_array_fill_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3290);
539
+ /* harmony import */ var core_js_modules_es_array_fill_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_fill_js__WEBPACK_IMPORTED_MODULE_6__);
540
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(4105);
541
+ /* harmony import */ var _swipeItem_src_swipeItem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7481);
542
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2530);
543
+ /* harmony import */ var _context_relation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(874);
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+ /* eslint-disable max-statements */
555
+
556
+
557
+
558
+
559
+
560
+
561
+ var _createNamespace = (0,_utils__WEBPACK_IMPORTED_MODULE_7__/* .createNamespace */ .do)('swipe'),
562
+ _createNamespace2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_11__/* .default */ .Z)(_createNamespace, 2),
563
+ name = _createNamespace2[0],
564
+ bem = _createNamespace2[1];
565
+
566
+ var SWIPE_PROVIDE_KEY = Symbol(name);
567
+ /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({
568
+ name: name,
569
+ components: {
570
+ YSwipeItem: _swipeItem_src_swipeItem__WEBPACK_IMPORTED_MODULE_8__/* .default */ .Z
571
+ },
572
+ props: _constants__WEBPACK_IMPORTED_MODULE_9__/* .swipeProps */ .Gn,
573
+ setup: function setup(props, _ref) {
574
+ var slots = _ref.slots,
575
+ emit = _ref.emit,
576
+ expose = _ref.expose;
577
+
578
+ var _setRelation = (0,_context_relation__WEBPACK_IMPORTED_MODULE_10__/* .setRelation */ .tG)(SWIPE_PROVIDE_KEY),
579
+ initProvide = _setRelation.initProvide; // swipe item列表
580
+
581
+
582
+ var itemList = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)([]); // 当前Index
583
+
584
+ var activeIndex = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(Number(props.initIndex)); // 元素详情
585
+
586
+ var itemDetail = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({
587
+ // 元素尺寸
588
+ size: 0,
589
+ // 间距
590
+ space: 0,
591
+ // 元素宽度比swipe小,占满整个视窗
592
+ isFillViewport: false
593
+ }); // track轨道
594
+
595
+ var trackDetail = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({
596
+ // 偏移量
597
+ offset: 0,
598
+ // 视窗大小
599
+ viewportSize: 0,
600
+ // 重复节点个数
601
+ cloneNodeCount: 0
602
+ });
603
+ var swipeRef = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)();
604
+ var swipeTrackRef = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)();
605
+ /* -----------懒加载-------------*/
606
+
607
+ var getBooleanList = function getBooleanList() {
608
+ var l = itemList.length;
609
+ var result = [];
610
+
611
+ for (var i = 0; i < l; i++) {
612
+ result.push(!props.lazy);
613
+ }
614
+
615
+ return result;
616
+ }; // 检查某个位置是否已经加载,如果没有,进行加载
617
+
618
+
619
+ var checkItemShowed = function checkItemShowed() {
620
+ if (!props.lazy) return;
621
+ var itemSizeSpace = itemDetail.size + itemDetail.space;
622
+ var trackSize = itemList.length * itemSizeSpace; // 视窗左边相对track的距离
623
+
624
+ var viewportLeft = -(trackDetail.offset + dragDetail.offset) - trackDetail.cloneNodeCount * itemSizeSpace;
625
+
626
+ if (viewportLeft < 0) {
627
+ viewportLeft += trackSize;
628
+ } // 视窗右边相对track的距离
629
+
630
+
631
+ var viewportRight = viewportLeft + trackDetail.viewportSize;
632
+
633
+ for (var i = 0; i < itemList.length; i++) {
634
+ if (!itemShowedList.list[i]) {
635
+ // 元素相对track的距离
636
+ var left = itemSizeSpace * i;
637
+ var right = left + itemDetail.size; // 如果出现在视窗内
638
+
639
+ if (left >= viewportLeft && left < viewportRight || right > viewportLeft && right < viewportRight || left < viewportLeft && right > viewportRight) {
640
+ itemShowedList.list[i] = true;
641
+ }
642
+ }
643
+ }
644
+ }; // items是否加载
645
+
646
+
647
+ var itemShowedList = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({
648
+ list: getBooleanList()
649
+ }); // 初始化加载情况
650
+
651
+ var initItemShowList = function initItemShowList() {
652
+ itemShowedList.list = getBooleanList();
653
+ checkItemShowed();
654
+ };
655
+
656
+ (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(function () {
657
+ return (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_12__/* .default */ .Z)(itemList);
658
+ }, initItemShowList);
659
+ /* -----------初始化-------------*/
660
+ // 计算初始的滑块/容器/间距宽度
661
+
662
+ var setItemSize = function setItemSize(itemSize, viewportSize) {
663
+ if (itemSize) {
664
+ itemDetail.size = (0,_utils__WEBPACK_IMPORTED_MODULE_7__/* .parsePercent */ .GM)(itemSize, viewportSize);
665
+ } else {
666
+ itemDetail.size = viewportSize;
667
+ }
668
+
669
+ itemDetail.space = Number(props.itemSpace) || 0;
670
+ itemDetail.isFillViewport = itemDetail.size >= viewportSize;
671
+ trackDetail.viewportSize = viewportSize;
672
+ trackDetail.cloneNodeCount = getCloneNodeCount();
673
+ }; // 得到重复元素数量
674
+
675
+
676
+ var getCloneNodeCount = function getCloneNodeCount() {
677
+ if (needLoop.value) {
678
+ // 除去当前显示,滑动过程中最大可能显示的宽度
679
+ var sizeSpace = itemDetail.size + itemDetail.space;
680
+ if (sizeSpace === 0) return 0;
681
+ var freeSize = trackDetail.viewportSize * 2 - sizeSpace;
682
+ var count = Math.ceil(freeSize / sizeSpace);
683
+ return Math.min(count, itemList.length - 1);
684
+ }
685
+
686
+ return 0;
687
+ };
688
+
689
+ var resize = function resize() {
690
+ if (!swipeRef.value) return; // 获取容器Size,itemSize
691
+
692
+ var _swipeRef$value$getBo = swipeRef.value.getBoundingClientRect(),
693
+ width = _swipeRef$value$getBo.width,
694
+ height = _swipeRef$value$getBo.height;
695
+
696
+ if (props.vertical) {
697
+ setItemSize(props.itemSize, height);
698
+ } else {
699
+ setItemSize(props.itemSize, width);
700
+ }
701
+
702
+ activeIndex.value = activeIndex.value >= itemList.length ? itemList.length - 1 : activeIndex.value;
703
+
704
+ if (activeIndex.value < 0) {
705
+ activeIndex.value = 0;
706
+ } // 初始化offset
707
+
708
+
709
+ updateTransform(activeIndex.value); // 初始化item加载情况
710
+
711
+ initItemShowList(); // 开始自动播放
712
+
713
+ startAutoplay();
714
+ };
715
+
716
+ (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(function () {
717
+ (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)(resize).catch(function () {// do nothing
718
+ }); // 初始化事件监听
719
+
720
+ if (props.touchable && swipeRef.value) {
721
+ var swipeEl = swipeRef.value;
722
+ swipeEl.addEventListener('touchstart', onTouchStart, false);
723
+ swipeEl.addEventListener('mousedown', onTouchStart, false);
724
+ swipeEl.addEventListener('touchmove', onTouch, false);
725
+ swipeEl.addEventListener('mousemove', onTouch, false);
726
+ swipeEl.addEventListener('touchend', onTouchEnd, false);
727
+ swipeEl.addEventListener('mouseup', onTouchEnd, false);
728
+ swipeEl.addEventListener('mouseleave', onTouchEnd, false);
729
+ swipeEl.addEventListener('touchcancel', onTouchEnd, false);
730
+ }
731
+
732
+ window.addEventListener('resize', resize, false);
733
+ window.addEventListener('orientationchange', resize, false);
734
+ });
735
+ (0,vue__WEBPACK_IMPORTED_MODULE_0__.onBeforeUnmount)(function () {
736
+ stopAutoPlay();
737
+
738
+ if (props.touchable && swipeRef.value) {
739
+ var swipeEl = swipeRef.value;
740
+ swipeEl.removeEventListener('touchstart', onTouchStart, false);
741
+ swipeEl.removeEventListener('mousedown', onTouchStart, false);
742
+ swipeEl.removeEventListener('mousemove', onTouch, false);
743
+ swipeEl.removeEventListener('touchmove', onTouch, false);
744
+ swipeEl.removeEventListener('mouseup', onTouchEnd, false);
745
+ swipeEl.removeEventListener('touchend', onTouchEnd, false);
746
+ swipeEl.removeEventListener('mouseleave', onTouchEnd, false);
747
+ swipeEl.removeEventListener('touchcancel', onTouchEnd, false);
748
+ }
749
+
750
+ window.removeEventListener('resize', resize, false);
751
+ window.removeEventListener('orientationchange', resize, false);
752
+ });
753
+ /* -----------更新index-------------*/
754
+ // 滑块整体的对齐偏移,根据对齐方式计算
755
+
756
+ var positionOffset = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
757
+ var offset = 0;
758
+
759
+ switch (props.align) {
760
+ case _constants__WEBPACK_IMPORTED_MODULE_9__/* .Align.start */ .xM.start:
761
+ offset = 0;
762
+ break;
763
+
764
+ case _constants__WEBPACK_IMPORTED_MODULE_9__/* .Align.center */ .xM.center:
765
+ offset = (trackDetail.viewportSize - itemDetail.size) / 2;
766
+ break;
767
+
768
+ case _constants__WEBPACK_IMPORTED_MODULE_9__/* .Align.end */ .xM.end:
769
+ offset = trackDetail.viewportSize - itemDetail.size;
770
+ break;
771
+
772
+ default:
773
+ offset = 0;
774
+ }
775
+
776
+ return offset;
777
+ });
778
+ var needLoop = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
779
+ return props.loop && itemList.length > 1;
780
+ }); // 如果当前显示的是clone的item则会返回到原本item的位置
781
+
782
+ var updateTransform = function updateTransform(index) {
783
+ var itemSizeSpace = itemDetail.size + itemDetail.space;
784
+
785
+ if (needLoop.value) {
786
+ // track开始部分,重复元素数量
787
+ trackDetail.offset = -itemSizeSpace * (index + trackDetail.cloneNodeCount) + positionOffset.value;
788
+ } else {
789
+ trackDetail.offset = -itemSizeSpace * index + positionOffset.value; // 非循环类型并且非center的边缘item不留白
790
+
791
+ if (props.align !== 'center') {
792
+ if (index === 0) {
793
+ trackDetail.offset = 0;
794
+ }
795
+
796
+ if (index === itemList.length - 1) {
797
+ trackDetail.offset = -itemSizeSpace * index + trackDetail.viewportSize - itemDetail.size;
798
+ }
799
+ }
800
+ }
801
+ };
802
+
803
+ var afterChange = function afterChange() {
804
+ updateTransform(activeIndex.value);
805
+ emit('afterChange', activeIndex.value);
806
+ }; // 循环时index可能会超出列表范围,这里找到对应的index
807
+
808
+
809
+ var getIndex = function getIndex(index) {
810
+ return (itemList.length + index) % itemList.length;
811
+ };
812
+
813
+ var moveTo = function moveTo(index) {
814
+ var withAnimation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
815
+ activeIndex.value = getIndex(index);
816
+ updateTransform(index);
817
+ checkItemShowed();
818
+ emit('change', activeIndex.value);
819
+
820
+ if (withAnimation) {
821
+ dragDetail.transitionEnabled = true;
822
+
823
+ if (swipeTrackRef.value) {
824
+ swipeTrackRef.value.addEventListener('transitionend', function () {
825
+ dragDetail.transitionEnabled = false;
826
+ afterChange();
827
+ }, {
828
+ once: true
829
+ });
830
+ }
831
+ } else {
832
+ afterChange();
833
+ }
834
+ };
835
+
836
+ var prev = function prev() {
837
+ var withAnimation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
838
+ moveTo(activeIndex.value - 1, withAnimation);
839
+ };
840
+
841
+ var next = function next() {
842
+ var withAnimation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
843
+ moveTo(activeIndex.value + 1, withAnimation);
844
+ };
845
+ /* -----------自动播放-------------*/
846
+ // 停止自动轮播
847
+
848
+
849
+ var timer = null;
850
+
851
+ var stopAutoPlay = function stopAutoPlay() {
852
+ if (props.autoplayTime && timer) {
853
+ clearInterval(timer);
854
+ }
855
+ }; // 重置自动轮播
856
+
857
+
858
+ var startAutoplay = function startAutoplay() {
859
+ if (props.autoplayTime && itemList.length > 1) {
860
+ if (timer) {
861
+ clearInterval(timer);
862
+ }
863
+
864
+ timer = setInterval(function () {
865
+ next();
866
+ }, Number(props.autoplayTime));
867
+ }
868
+ };
869
+ /* -----------拖拽-------------*/
870
+ // 拖拽详情
871
+
872
+
873
+ var dragDetail = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({
874
+ // 拖拽中
875
+ isDragging: false,
876
+ // 是否首次拖动
877
+ isFirstTouch: true,
878
+ // 拖拽起始位置X
879
+ startX: 0,
880
+ // 拖拽起始位置Y
881
+ startY: 0,
882
+ // 拖拽距离
883
+ offset: 0,
884
+ // 开始拖动时间
885
+ startTime: new Date(),
886
+ // 是否在执行动画
887
+ transitionEnabled: false
888
+ }); // 开始拖动
889
+
890
+ var onTouchStart = function onTouchStart(e) {
891
+ // 在执行动画期间,不允许滑动
892
+ if (dragDetail.transitionEnabled) {
893
+ return;
894
+ }
895
+
896
+ var clientX = 0;
897
+ var clientY = 0;
898
+
899
+ if ('touches' in e) {
900
+ clientX = e.touches[0].clientX;
901
+ clientY = e.touches[0].clientY;
902
+ } else {
903
+ clientX = e.clientX;
904
+ clientY = e.clientY;
905
+ }
906
+
907
+ dragDetail.startX = clientX;
908
+ dragDetail.startY = clientY;
909
+ dragDetail.isDragging = true;
910
+ dragDetail.isFirstTouch = true;
911
+ dragDetail.startTime = new Date();
912
+ }; // 拖拽中
913
+
914
+
915
+ var onTouch = function onTouch(e) {
916
+ if (!dragDetail.isDragging) {
917
+ return;
918
+ }
919
+
920
+ var clientX = 0;
921
+ var clientY = 0;
922
+
923
+ if ('touches' in e) {
924
+ clientX = e.touches[0].clientX;
925
+ clientY = e.touches[0].clientY;
926
+ } else {
927
+ clientX = e.clientX;
928
+ clientY = e.clientY;
929
+ }
930
+
931
+ var offsetX = clientX - dragDetail.startX;
932
+ var offsetY = clientY - dragDetail.startY;
933
+
934
+ if (dragDetail.isFirstTouch) {
935
+ dragDetail.isFirstTouch = false; // 根据首次滑动水平/垂直距离得到滑动方向
936
+
937
+ var isVerticalTouch = Math.abs(offsetX) < Math.abs(offsetY); // 若滑动方向不是轮播的方向,则停止滑动
938
+
939
+ if (isVerticalTouch !== props.vertical) {
940
+ dragDetail.isDragging = false;
941
+ return;
942
+ }
943
+ }
944
+
945
+ e.preventDefault();
946
+ dragDetail.offset = props.vertical ? offsetY : offsetX;
947
+ checkItemShowed();
948
+ emit('dragging', {
949
+ percent: dragDetail.offset / (itemDetail.size + itemDetail.space),
950
+ offset: dragDetail.offset
951
+ });
952
+ }; // 拖动结束
953
+
954
+
955
+ var onTouchEnd = function onTouchEnd() {
956
+ if (!dragDetail.isDragging) {
957
+ return;
958
+ }
959
+
960
+ dragDetail.isDragging = false;
961
+ var now = new Date();
962
+ var dragTime = now.getTime() - dragDetail.startTime.getTime();
963
+
964
+ if (canGoForward() && (Math.abs(dragDetail.offset) > minSwipeDistance.value || Math.abs(dragDetail.offset) / dragTime > 0.5)) {
965
+ // 滑动距离/速度足够,跳转到下一个位置
966
+ dragDetail.offset > 0 ? prev() : next();
967
+ dragDetail.offset = 0;
968
+ } else {
969
+ // 滑动距离不够,退回到之前的位置
970
+ dragDetail.offset = 0;
971
+ }
972
+
973
+ startAutoplay();
974
+ }; // 最小滑动距离
975
+
976
+
977
+ var minSwipeDistance = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
978
+ return (0,_utils__WEBPACK_IMPORTED_MODULE_7__/* .parsePercent */ .GM)(props.minSwipeDistance, itemDetail.size + itemDetail.space);
979
+ }); // 是否能滑动到下一个
980
+
981
+ var canGoForward = function canGoForward() {
982
+ if (needLoop.value) {
983
+ return true;
984
+ }
985
+
986
+ var nextIndex = dragDetail.offset > 0 ? activeIndex.value - 1 : activeIndex.value + 1;
987
+ return nextIndex >= 0 && nextIndex < itemList.length;
988
+ };
989
+
990
+ var trackStyle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
991
+ var offset = dragDetail.isDragging && !props.isFollowHand ? trackDetail.offset : trackDetail.offset + dragDetail.offset;
992
+ var style = {};
993
+
994
+ if (props.vertical) {
995
+ style.transform = "translate3d(0, ".concat(offset, "px, 0)");
996
+ style.transitionDuration = dragDetail.transitionEnabled ? "".concat(props.duration, "ms") : '0ms';
997
+ } else {
998
+ style.transform = "translate3d(".concat(offset, "px, 0, 0)");
999
+ style.transitionDuration = dragDetail.transitionEnabled ? "".concat(props.duration, "ms") : '0ms';
1000
+ }
1001
+
1002
+ if (dragDetail.isDragging) {
1003
+ style.transition = 'none';
1004
+ }
1005
+
1006
+ if (props.vertical) {
1007
+ style.flexDirection = 'column';
1008
+ }
1009
+
1010
+ if (props.autoHeight) {
1011
+ style.display = 'block';
1012
+ style.whiteSpace = 'nowrap';
1013
+ }
1014
+
1015
+ return style;
1016
+ });
1017
+ var dotsClass = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
1018
+ var position = props.dotsPosition || (props.vertical ? _constants__WEBPACK_IMPORTED_MODULE_9__/* .Position.left */ .Ly.left : _constants__WEBPACK_IMPORTED_MODULE_9__/* .Position.bottom */ .Ly.bottom);
1019
+ return ['y-swipe__dots', "y-swipe__dots--".concat(position)];
1020
+ });
1021
+ expose({
1022
+ moveTo: moveTo,
1023
+ next: next,
1024
+ prev: prev,
1025
+ resize: resize
1026
+ });
1027
+ /* -----------provide-------------*/
1028
+
1029
+ var tabs = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({
1030
+ children: itemList,
1031
+ activeIndex: activeIndex,
1032
+ props: props,
1033
+ itemDetail: itemDetail,
1034
+ itemShowedList: itemShowedList
1035
+ });
1036
+ initProvide(tabs);
1037
+
1038
+ var renderDots = function renderDots() {
1039
+ if (props.dots) {
1040
+ return (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", {
1041
+ "class": dotsClass.value
1042
+ }, [itemList.map(function (_, index) {
1043
+ var className = bem('dot', {
1044
+ active: index === activeIndex.value
1045
+ });
1046
+ return (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", {
1047
+ "class": className,
1048
+ "style": {
1049
+ backgroundColor: props.dotsColor
1050
+ },
1051
+ "key": index
1052
+ }, null);
1053
+ })]);
1054
+ }
1055
+
1056
+ return null;
1057
+ };
1058
+
1059
+ return function () {
1060
+ var _slots$default;
1061
+
1062
+ return (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", {
1063
+ "class": bem(),
1064
+ "ref": swipeRef
1065
+ }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)("div", {
1066
+ "class": bem('track'),
1067
+ "style": trackStyle.value,
1068
+ "ref": swipeTrackRef
1069
+ }, [Array(trackDetail.cloneNodeCount).fill('').map(function (_, index) {
1070
+ var _itemList$nodeIndex, _itemList$nodeIndex$s, _itemList$nodeIndex$s2;
1071
+
1072
+ var nodeIndex = getIndex(index - trackDetail.cloneNodeCount);
1073
+ var item = (_itemList$nodeIndex = itemList[nodeIndex]) === null || _itemList$nodeIndex === void 0 ? void 0 : (_itemList$nodeIndex$s = (_itemList$nodeIndex$s2 = _itemList$nodeIndex.slots).default) === null || _itemList$nodeIndex$s === void 0 ? void 0 : _itemList$nodeIndex$s.call(_itemList$nodeIndex$s2);
1074
+ return item ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_swipeItem_src_swipeItem__WEBPACK_IMPORTED_MODULE_8__/* .default */ .Z, {
1075
+ "clonenNode": item,
1076
+ "index": nodeIndex
1077
+ }, null) : null;
1078
+ }), (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots), Array(trackDetail.cloneNodeCount).fill('').map(function (_, index) {
1079
+ var _itemList$nodeIndex2, _itemList$nodeIndex2$, _itemList$nodeIndex2$2;
1080
+
1081
+ var nodeIndex = getIndex(index);
1082
+ var item = (_itemList$nodeIndex2 = itemList[nodeIndex]) === null || _itemList$nodeIndex2 === void 0 ? void 0 : (_itemList$nodeIndex2$ = (_itemList$nodeIndex2$2 = _itemList$nodeIndex2.slots).default) === null || _itemList$nodeIndex2$ === void 0 ? void 0 : _itemList$nodeIndex2$.call(_itemList$nodeIndex2$2);
1083
+ return item ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_swipeItem_src_swipeItem__WEBPACK_IMPORTED_MODULE_8__/* .default */ .Z, {
1084
+ "clonenNode": item,
1085
+ "index": nodeIndex
1086
+ }, null) : null;
1087
+ })]), slots.dots ? slots.dots() : renderDots()]);
1088
+ };
1089
+ }
1090
+ }));
1091
+
1092
+ /***/ }),
1093
+
485
1094
  /***/ 7481:
486
1095
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
487
1096
 
@@ -493,9 +1102,9 @@ var swipeProps = {
493
1102
  /* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_1__);
494
1103
  /* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4553);
495
1104
  /* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_2__);
496
- /* harmony import */ var _swipe_src_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2530);
497
- /* harmony import */ var _context_relation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(874);
498
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4105);
1105
+ /* harmony import */ var _context_relation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(874);
1106
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4105);
1107
+ /* harmony import */ var _swipe_src_swipe__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7832);
499
1108
 
500
1109
 
501
1110
 
@@ -505,7 +1114,7 @@ var swipeProps = {
505
1114
 
506
1115
 
507
1116
 
508
- var _createNamespace = (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .createNamespace */ .do)('swipe-item'),
1117
+ var _createNamespace = (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .createNamespace */ .do)('swipe-item'),
509
1118
  _createNamespace2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_6__/* .default */ .Z)(_createNamespace, 2),
510
1119
  name = _createNamespace2[0],
511
1120
  bem = _createNamespace2[1];
@@ -526,7 +1135,7 @@ var _createNamespace = (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .createNamespace
526
1135
  var slots = _ref.slots;
527
1136
  var instance = (0,vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)();
528
1137
 
529
- var _useRelation = (0,_context_relation__WEBPACK_IMPORTED_MODULE_4__/* .useRelation */ .jQ)(_swipe_src_constants__WEBPACK_IMPORTED_MODULE_3__/* .SWIPE_PROVIDE_KEY */ .pB),
1138
+ var _useRelation = (0,_context_relation__WEBPACK_IMPORTED_MODULE_3__/* .useRelation */ .jQ)(_swipe_src_swipe__WEBPACK_IMPORTED_MODULE_5__/* .SWIPE_PROVIDE_KEY */ .p),
530
1139
  parent = _useRelation.parent;
531
1140
 
532
1141
  if (!props.clonenNode && instance) {
@@ -586,10 +1195,11 @@ var _createNamespace = (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .createNamespace
586
1195
 
587
1196
  // EXPORTS
588
1197
  __webpack_require__.d(__webpack_exports__, {
589
- "do": function() { return /* reexport */ createNamespace; }
1198
+ "do": function() { return /* reexport */ createNamespace; },
1199
+ "GM": function() { return /* reexport */ parsePercent; }
590
1200
  });
591
1201
 
592
- // UNUSED EXPORTS: Direction, Horizontal, Location, Position, Size, Vertical, createLocale, isArguments, isDate, isError, isFunction, isMap, isNumber, isObject, isPromise, isRegExp, isSet, isString, isSymbol, isWeakMap, isWeakSet, parseFlexDirection, parsePercent, parseUnit
1202
+ // UNUSED EXPORTS: Direction, Horizontal, Location, Position, Size, Vertical, createLocale, isArguments, isDate, isError, isFunction, isMap, isNumber, isObject, isPromise, isRegExp, isSet, isString, isSymbol, isWeakMap, isWeakSet, parseFlexDirection, parseUnit
593
1203
 
594
1204
  // EXTERNAL MODULE: ./packages/utils/is.ts
595
1205
  var is = __webpack_require__(3703);
@@ -899,6 +1509,31 @@ module.exports = function (it) {
899
1509
  };
900
1510
 
901
1511
 
1512
+ /***/ }),
1513
+
1514
+ /***/ 1285:
1515
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
1516
+
1517
+ "use strict";
1518
+
1519
+ var toObject = __webpack_require__(7908);
1520
+ var toAbsoluteIndex = __webpack_require__(1400);
1521
+ var toLength = __webpack_require__(7466);
1522
+
1523
+ // `Array.prototype.fill` method implementation
1524
+ // https://tc39.es/ecma262/#sec-array.prototype.fill
1525
+ module.exports = function fill(value /* , start = 0, end = @length */) {
1526
+ var O = toObject(this);
1527
+ var length = toLength(O.length);
1528
+ var argumentsLength = arguments.length;
1529
+ var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
1530
+ var end = argumentsLength > 2 ? arguments[2] : undefined;
1531
+ var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
1532
+ while (endPos > index) O[index++] = value;
1533
+ return O;
1534
+ };
1535
+
1536
+
902
1537
  /***/ }),
903
1538
 
904
1539
  /***/ 8533:
@@ -3159,6 +3794,25 @@ $({ target: 'Array', proto: true, forced: FORCED }, {
3159
3794
  });
3160
3795
 
3161
3796
 
3797
+ /***/ }),
3798
+
3799
+ /***/ 3290:
3800
+ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3801
+
3802
+ var $ = __webpack_require__(2109);
3803
+ var fill = __webpack_require__(1285);
3804
+ var addToUnscopables = __webpack_require__(1223);
3805
+
3806
+ // `Array.prototype.fill` method
3807
+ // https://tc39.es/ecma262/#sec-array.prototype.fill
3808
+ $({ target: 'Array', proto: true }, {
3809
+ fill: fill
3810
+ });
3811
+
3812
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
3813
+ addToUnscopables('fill');
3814
+
3815
+
3162
3816
  /***/ }),
3163
3817
 
3164
3818
  /***/ 7327:
@@ -3263,6 +3917,29 @@ $({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {
3263
3917
  });
3264
3918
 
3265
3919
 
3920
+ /***/ }),
3921
+
3922
+ /***/ 1249:
3923
+ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
3924
+
3925
+ "use strict";
3926
+
3927
+ var $ = __webpack_require__(2109);
3928
+ var $map = __webpack_require__(2092).map;
3929
+ var arrayMethodHasSpeciesSupport = __webpack_require__(1194);
3930
+
3931
+ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
3932
+
3933
+ // `Array.prototype.map` method
3934
+ // https://tc39.es/ecma262/#sec-array.prototype.map
3935
+ // with adding support of @@species
3936
+ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
3937
+ map: function map(callbackfn /* , thisArg */) {
3938
+ return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
3939
+ }
3940
+ });
3941
+
3942
+
3266
3943
  /***/ }),
3267
3944
 
3268
3945
  /***/ 5827: