backend-management-ui 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
1
  (function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory();
3
+ module.exports = factory(require("vue"));
4
4
  else if(typeof define === 'function' && define.amd)
5
5
  define([], factory);
6
6
  else if(typeof exports === 'object')
7
- exports["backend-management-ui"] = factory();
7
+ exports["backend-management-ui"] = factory(require("vue"));
8
8
  else
9
- root["backend-management-ui"] = factory();
10
- })((typeof self !== 'undefined' ? self : this), function() {
9
+ root["backend-management-ui"] = factory(root["Vue"]);
10
+ })((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__9274__) {
11
11
  return /******/ (function() { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
@@ -210,6 +210,26 @@ module.exports = function (it, Prototype) {
210
210
  };
211
211
 
212
212
 
213
+ /***/ }),
214
+
215
+ /***/ 684:
216
+ /***/ (function(module) {
217
+
218
+ "use strict";
219
+
220
+ // Should throw an error on invalid iterator
221
+ // https://issues.chromium.org/issues/336839115
222
+ module.exports = function (methodName, argument) {
223
+ // eslint-disable-next-line es/no-iterator -- required for testing
224
+ var method = typeof Iterator == 'function' && Iterator.prototype[methodName];
225
+ if (method) try {
226
+ method.call({ next: null }, argument).next();
227
+ } catch (error) {
228
+ return true;
229
+ }
230
+ };
231
+
232
+
213
233
  /***/ }),
214
234
 
215
235
  /***/ 741:
@@ -428,6 +448,30 @@ module.exports = function (argument) {
428
448
  };
429
449
 
430
450
 
451
+ /***/ }),
452
+
453
+ /***/ 1385:
454
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
455
+
456
+ "use strict";
457
+
458
+ var iteratorClose = __webpack_require__(9539);
459
+
460
+ module.exports = function (iters, kind, value) {
461
+ for (var i = iters.length - 1; i >= 0; i--) {
462
+ if (iters[i] === undefined) continue;
463
+ try {
464
+ value = iteratorClose(iters[i].iterator, kind, value);
465
+ } catch (error) {
466
+ kind = 'throw';
467
+ value = error;
468
+ }
469
+ }
470
+ if (kind === 'throw') throw value;
471
+ return value;
472
+ };
473
+
474
+
431
475
  /***/ }),
432
476
 
433
477
  /***/ 1548:
@@ -485,6 +529,58 @@ $({ target: 'Set', proto: true, real: true, forced: FORCED }, {
485
529
  });
486
530
 
487
531
 
532
+ /***/ }),
533
+
534
+ /***/ 1701:
535
+ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
536
+
537
+ "use strict";
538
+
539
+ var $ = __webpack_require__(6518);
540
+ var call = __webpack_require__(9565);
541
+ var aCallable = __webpack_require__(9306);
542
+ var anObject = __webpack_require__(8551);
543
+ var getIteratorDirect = __webpack_require__(1767);
544
+ var createIteratorProxy = __webpack_require__(9462);
545
+ var callWithSafeIterationClosing = __webpack_require__(6319);
546
+ var iteratorClose = __webpack_require__(9539);
547
+ var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
548
+ var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
549
+ var IS_PURE = __webpack_require__(6395);
550
+
551
+ var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });
552
+ var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
553
+ && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);
554
+
555
+ var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;
556
+
557
+ var IteratorProxy = createIteratorProxy(function () {
558
+ var iterator = this.iterator;
559
+ var result = anObject(call(this.next, iterator));
560
+ var done = this.done = !!result.done;
561
+ if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
562
+ });
563
+
564
+ // `Iterator.prototype.map` method
565
+ // https://tc39.es/ecma262/#sec-iterator.prototype.map
566
+ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
567
+ map: function map(mapper) {
568
+ anObject(this);
569
+ try {
570
+ aCallable(mapper);
571
+ } catch (error) {
572
+ iteratorClose(this, 'throw', error);
573
+ }
574
+
575
+ if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);
576
+
577
+ return new IteratorProxy(getIteratorDirect(this), {
578
+ mapper: mapper
579
+ });
580
+ }
581
+ });
582
+
583
+
488
584
  /***/ }),
489
585
 
490
586
  /***/ 1767:
@@ -532,6 +628,1045 @@ module.exports = function (object, names) {
532
628
  };
533
629
 
534
630
 
631
+ /***/ }),
632
+
633
+ /***/ 2044:
634
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
635
+
636
+ __webpack_require__(4114);
637
+ __webpack_require__(8111);
638
+ __webpack_require__(2489);
639
+ __webpack_require__(7588);
640
+ __webpack_require__(1701);
641
+ __webpack_require__(8237);
642
+ /*!
643
+ * vue-virtual-scroll-list v2.3.4
644
+ * open source under the MIT license
645
+ * https://github.com/tangbc/vue-virtual-scroll-list#readme
646
+ */
647
+
648
+ (function (global, factory) {
649
+ true ? module.exports = factory(__webpack_require__(9274)) : 0;
650
+ })(this, function (Vue) {
651
+ 'use strict';
652
+
653
+ Vue = Vue && Object.prototype.hasOwnProperty.call(Vue, 'default') ? Vue['default'] : Vue;
654
+ function ownKeys(object, enumerableOnly) {
655
+ var keys = Object.keys(object);
656
+ if (Object.getOwnPropertySymbols) {
657
+ var symbols = Object.getOwnPropertySymbols(object);
658
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
659
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
660
+ })), keys.push.apply(keys, symbols);
661
+ }
662
+ return keys;
663
+ }
664
+ function _objectSpread2(target) {
665
+ for (var i = 1; i < arguments.length; i++) {
666
+ var source = null != arguments[i] ? arguments[i] : {};
667
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
668
+ _defineProperty(target, key, source[key]);
669
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
670
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
671
+ });
672
+ }
673
+ return target;
674
+ }
675
+ function _classCallCheck(instance, Constructor) {
676
+ if (!(instance instanceof Constructor)) {
677
+ throw new TypeError("Cannot call a class as a function");
678
+ }
679
+ }
680
+ function _defineProperties(target, props) {
681
+ for (var i = 0; i < props.length; i++) {
682
+ var descriptor = props[i];
683
+ descriptor.enumerable = descriptor.enumerable || false;
684
+ descriptor.configurable = true;
685
+ if ("value" in descriptor) descriptor.writable = true;
686
+ Object.defineProperty(target, descriptor.key, descriptor);
687
+ }
688
+ }
689
+ function _createClass(Constructor, protoProps, staticProps) {
690
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
691
+ if (staticProps) _defineProperties(Constructor, staticProps);
692
+ Object.defineProperty(Constructor, "prototype", {
693
+ writable: false
694
+ });
695
+ return Constructor;
696
+ }
697
+ function _defineProperty(obj, key, value) {
698
+ if (key in obj) {
699
+ Object.defineProperty(obj, key, {
700
+ value: value,
701
+ enumerable: true,
702
+ configurable: true,
703
+ writable: true
704
+ });
705
+ } else {
706
+ obj[key] = value;
707
+ }
708
+ return obj;
709
+ }
710
+ function _toConsumableArray(arr) {
711
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
712
+ }
713
+ function _arrayWithoutHoles(arr) {
714
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
715
+ }
716
+ function _iterableToArray(iter) {
717
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
718
+ }
719
+ function _unsupportedIterableToArray(o, minLen) {
720
+ if (!o) return;
721
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
722
+ var n = Object.prototype.toString.call(o).slice(8, -1);
723
+ if (n === "Object" && o.constructor) n = o.constructor.name;
724
+ if (n === "Map" || n === "Set") return Array.from(o);
725
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
726
+ }
727
+ function _arrayLikeToArray(arr, len) {
728
+ if (len == null || len > arr.length) len = arr.length;
729
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
730
+ return arr2;
731
+ }
732
+ function _nonIterableSpread() {
733
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
734
+ }
735
+
736
+ /**
737
+ * virtual list core calculating center
738
+ */
739
+
740
+ var DIRECTION_TYPE = {
741
+ FRONT: 'FRONT',
742
+ // scroll up or left
743
+ BEHIND: 'BEHIND' // scroll down or right
744
+ };
745
+ var CALC_TYPE = {
746
+ INIT: 'INIT',
747
+ FIXED: 'FIXED',
748
+ DYNAMIC: 'DYNAMIC'
749
+ };
750
+ var LEADING_BUFFER = 0;
751
+ var Virtual = /*#__PURE__*/function () {
752
+ function Virtual(param, callUpdate) {
753
+ _classCallCheck(this, Virtual);
754
+ this.init(param, callUpdate);
755
+ }
756
+ _createClass(Virtual, [{
757
+ key: "init",
758
+ value: function init(param, callUpdate) {
759
+ // param data
760
+ this.param = param;
761
+ this.callUpdate = callUpdate;
762
+
763
+ // size data
764
+ this.sizes = new Map();
765
+ this.firstRangeTotalSize = 0;
766
+ this.firstRangeAverageSize = 0;
767
+ this.fixedSizeValue = 0;
768
+ this.calcType = CALC_TYPE.INIT;
769
+
770
+ // scroll data
771
+ this.offset = 0;
772
+ this.direction = '';
773
+
774
+ // range data
775
+ this.range = Object.create(null);
776
+ if (param) {
777
+ this.checkRange(0, param.keeps - 1);
778
+ }
779
+
780
+ // benchmark test data
781
+ // this.__bsearchCalls = 0
782
+ // this.__getIndexOffsetCalls = 0
783
+ }
784
+ }, {
785
+ key: "destroy",
786
+ value: function destroy() {
787
+ this.init(null, null);
788
+ }
789
+
790
+ // return current render range
791
+ }, {
792
+ key: "getRange",
793
+ value: function getRange() {
794
+ var range = Object.create(null);
795
+ range.start = this.range.start;
796
+ range.end = this.range.end;
797
+ range.padFront = this.range.padFront;
798
+ range.padBehind = this.range.padBehind;
799
+ return range;
800
+ }
801
+ }, {
802
+ key: "isBehind",
803
+ value: function isBehind() {
804
+ return this.direction === DIRECTION_TYPE.BEHIND;
805
+ }
806
+ }, {
807
+ key: "isFront",
808
+ value: function isFront() {
809
+ return this.direction === DIRECTION_TYPE.FRONT;
810
+ }
811
+
812
+ // return start index offset
813
+ }, {
814
+ key: "getOffset",
815
+ value: function getOffset(start) {
816
+ return (start < 1 ? 0 : this.getIndexOffset(start)) + this.param.slotHeaderSize;
817
+ }
818
+ }, {
819
+ key: "updateParam",
820
+ value: function updateParam(key, value) {
821
+ var _this = this;
822
+ if (this.param && key in this.param) {
823
+ // if uniqueIds change, find out deleted id and remove from size map
824
+ if (key === 'uniqueIds') {
825
+ this.sizes.forEach(function (v, key) {
826
+ if (!value.includes(key)) {
827
+ _this.sizes["delete"](key);
828
+ }
829
+ });
830
+ }
831
+ this.param[key] = value;
832
+ }
833
+ }
834
+
835
+ // save each size map by id
836
+ }, {
837
+ key: "saveSize",
838
+ value: function saveSize(id, size) {
839
+ this.sizes.set(id, size);
840
+
841
+ // we assume size type is fixed at the beginning and remember first size value
842
+ // if there is no size value different from this at next comming saving
843
+ // we think it's a fixed size list, otherwise is dynamic size list
844
+ if (this.calcType === CALC_TYPE.INIT) {
845
+ this.fixedSizeValue = size;
846
+ this.calcType = CALC_TYPE.FIXED;
847
+ } else if (this.calcType === CALC_TYPE.FIXED && this.fixedSizeValue !== size) {
848
+ this.calcType = CALC_TYPE.DYNAMIC;
849
+ // it's no use at all
850
+ delete this.fixedSizeValue;
851
+ }
852
+
853
+ // calculate the average size only in the first range
854
+ if (this.calcType !== CALC_TYPE.FIXED && typeof this.firstRangeTotalSize !== 'undefined') {
855
+ if (this.sizes.size < Math.min(this.param.keeps, this.param.uniqueIds.length)) {
856
+ this.firstRangeTotalSize = _toConsumableArray(this.sizes.values()).reduce(function (acc, val) {
857
+ return acc + val;
858
+ }, 0);
859
+ this.firstRangeAverageSize = Math.round(this.firstRangeTotalSize / this.sizes.size);
860
+ } else {
861
+ // it's done using
862
+ delete this.firstRangeTotalSize;
863
+ }
864
+ }
865
+ }
866
+
867
+ // in some special situation (e.g. length change) we need to update in a row
868
+ // try goiong to render next range by a leading buffer according to current direction
869
+ }, {
870
+ key: "handleDataSourcesChange",
871
+ value: function handleDataSourcesChange() {
872
+ var start = this.range.start;
873
+ if (this.isFront()) {
874
+ start = start - LEADING_BUFFER;
875
+ } else if (this.isBehind()) {
876
+ start = start + LEADING_BUFFER;
877
+ }
878
+ start = Math.max(start, 0);
879
+ this.updateRange(this.range.start, this.getEndByStart(start));
880
+ }
881
+
882
+ // when slot size change, we also need force update
883
+ }, {
884
+ key: "handleSlotSizeChange",
885
+ value: function handleSlotSizeChange() {
886
+ this.handleDataSourcesChange();
887
+ }
888
+
889
+ // calculating range on scroll
890
+ }, {
891
+ key: "handleScroll",
892
+ value: function handleScroll(offset) {
893
+ this.direction = offset < this.offset || offset === 0 ? DIRECTION_TYPE.FRONT : DIRECTION_TYPE.BEHIND;
894
+ this.offset = offset;
895
+ if (!this.param) {
896
+ return;
897
+ }
898
+ if (this.direction === DIRECTION_TYPE.FRONT) {
899
+ this.handleFront();
900
+ } else if (this.direction === DIRECTION_TYPE.BEHIND) {
901
+ this.handleBehind();
902
+ }
903
+ }
904
+
905
+ // ----------- public method end -----------
906
+ }, {
907
+ key: "handleFront",
908
+ value: function handleFront() {
909
+ var overs = this.getScrollOvers();
910
+ // should not change range if start doesn't exceed overs
911
+ if (overs > this.range.start) {
912
+ return;
913
+ }
914
+
915
+ // move up start by a buffer length, and make sure its safety
916
+ var start = Math.max(overs - this.param.buffer, 0);
917
+ this.checkRange(start, this.getEndByStart(start));
918
+ }
919
+ }, {
920
+ key: "handleBehind",
921
+ value: function handleBehind() {
922
+ var overs = this.getScrollOvers();
923
+ // range should not change if scroll overs within buffer
924
+ if (overs < this.range.start + this.param.buffer) {
925
+ return;
926
+ }
927
+ this.checkRange(overs, this.getEndByStart(overs));
928
+ }
929
+
930
+ // return the pass overs according to current scroll offset
931
+ }, {
932
+ key: "getScrollOvers",
933
+ value: function getScrollOvers() {
934
+ // if slot header exist, we need subtract its size
935
+ var offset = this.offset - this.param.slotHeaderSize;
936
+ if (offset <= 0) {
937
+ return 0;
938
+ }
939
+
940
+ // if is fixed type, that can be easily
941
+ if (this.isFixedType()) {
942
+ return Math.floor(offset / this.fixedSizeValue);
943
+ }
944
+ var low = 0;
945
+ var middle = 0;
946
+ var middleOffset = 0;
947
+ var high = this.param.uniqueIds.length;
948
+ while (low <= high) {
949
+ // this.__bsearchCalls++
950
+ middle = low + Math.floor((high - low) / 2);
951
+ middleOffset = this.getIndexOffset(middle);
952
+ if (middleOffset === offset) {
953
+ return middle;
954
+ } else if (middleOffset < offset) {
955
+ low = middle + 1;
956
+ } else if (middleOffset > offset) {
957
+ high = middle - 1;
958
+ }
959
+ }
960
+ return low > 0 ? --low : 0;
961
+ }
962
+
963
+ // return a scroll offset from given index, can efficiency be improved more here?
964
+ // although the call frequency is very high, its only a superposition of numbers
965
+ }, {
966
+ key: "getIndexOffset",
967
+ value: function getIndexOffset(givenIndex) {
968
+ if (!givenIndex) {
969
+ return 0;
970
+ }
971
+ var offset = 0;
972
+ var indexSize = 0;
973
+ for (var index = 0; index < givenIndex; index++) {
974
+ // this.__getIndexOffsetCalls++
975
+ indexSize = this.sizes.get(this.param.uniqueIds[index]);
976
+ offset = offset + (typeof indexSize === 'number' ? indexSize : this.getEstimateSize());
977
+ }
978
+ return offset;
979
+ }
980
+
981
+ // is fixed size type
982
+ }, {
983
+ key: "isFixedType",
984
+ value: function isFixedType() {
985
+ return this.calcType === CALC_TYPE.FIXED;
986
+ }
987
+
988
+ // return the real last index
989
+ }, {
990
+ key: "getLastIndex",
991
+ value: function getLastIndex() {
992
+ return this.param.uniqueIds.length - 1;
993
+ }
994
+
995
+ // in some conditions range is broke, we need correct it
996
+ // and then decide whether need update to next range
997
+ }, {
998
+ key: "checkRange",
999
+ value: function checkRange(start, end) {
1000
+ var keeps = this.param.keeps;
1001
+ var total = this.param.uniqueIds.length;
1002
+
1003
+ // datas less than keeps, render all
1004
+ if (total <= keeps) {
1005
+ start = 0;
1006
+ end = this.getLastIndex();
1007
+ } else if (end - start < keeps - 1) {
1008
+ // if range length is less than keeps, corrent it base on end
1009
+ start = end - keeps + 1;
1010
+ }
1011
+ if (this.range.start !== start) {
1012
+ this.updateRange(start, end);
1013
+ }
1014
+ }
1015
+
1016
+ // setting to a new range and rerender
1017
+ }, {
1018
+ key: "updateRange",
1019
+ value: function updateRange(start, end) {
1020
+ this.range.start = start;
1021
+ this.range.end = end;
1022
+ this.range.padFront = this.getPadFront();
1023
+ this.range.padBehind = this.getPadBehind();
1024
+ this.callUpdate(this.getRange());
1025
+ }
1026
+
1027
+ // return end base on start
1028
+ }, {
1029
+ key: "getEndByStart",
1030
+ value: function getEndByStart(start) {
1031
+ var theoryEnd = start + this.param.keeps - 1;
1032
+ var truelyEnd = Math.min(theoryEnd, this.getLastIndex());
1033
+ return truelyEnd;
1034
+ }
1035
+
1036
+ // return total front offset
1037
+ }, {
1038
+ key: "getPadFront",
1039
+ value: function getPadFront() {
1040
+ if (this.isFixedType()) {
1041
+ return this.fixedSizeValue * this.range.start;
1042
+ } else {
1043
+ return this.getIndexOffset(this.range.start);
1044
+ }
1045
+ }
1046
+
1047
+ // return total behind offset
1048
+ }, {
1049
+ key: "getPadBehind",
1050
+ value: function getPadBehind() {
1051
+ var end = this.range.end;
1052
+ var lastIndex = this.getLastIndex();
1053
+ if (this.isFixedType()) {
1054
+ return (lastIndex - end) * this.fixedSizeValue;
1055
+ }
1056
+ return (lastIndex - end) * this.getEstimateSize();
1057
+ }
1058
+
1059
+ // get the item estimate size
1060
+ }, {
1061
+ key: "getEstimateSize",
1062
+ value: function getEstimateSize() {
1063
+ return this.isFixedType() ? this.fixedSizeValue : this.firstRangeAverageSize || this.param.estimateSize;
1064
+ }
1065
+ }]);
1066
+ return Virtual;
1067
+ }();
1068
+
1069
+ /**
1070
+ * props declaration for default, item and slot component
1071
+ */
1072
+
1073
+ var VirtualProps = {
1074
+ dataKey: {
1075
+ type: [String, Function],
1076
+ required: true
1077
+ },
1078
+ dataSources: {
1079
+ type: Array,
1080
+ required: true
1081
+ },
1082
+ dataComponent: {
1083
+ type: [Object, Function],
1084
+ required: true
1085
+ },
1086
+ keeps: {
1087
+ type: Number,
1088
+ "default": 30
1089
+ },
1090
+ extraProps: {
1091
+ type: Object
1092
+ },
1093
+ estimateSize: {
1094
+ type: Number,
1095
+ "default": 50
1096
+ },
1097
+ direction: {
1098
+ type: String,
1099
+ "default": 'vertical' // the other value is horizontal
1100
+ },
1101
+ start: {
1102
+ type: Number,
1103
+ "default": 0
1104
+ },
1105
+ offset: {
1106
+ type: Number,
1107
+ "default": 0
1108
+ },
1109
+ topThreshold: {
1110
+ type: Number,
1111
+ "default": 0
1112
+ },
1113
+ bottomThreshold: {
1114
+ type: Number,
1115
+ "default": 0
1116
+ },
1117
+ pageMode: {
1118
+ type: Boolean,
1119
+ "default": false
1120
+ },
1121
+ rootTag: {
1122
+ type: String,
1123
+ "default": 'div'
1124
+ },
1125
+ wrapTag: {
1126
+ type: String,
1127
+ "default": 'div'
1128
+ },
1129
+ wrapClass: {
1130
+ type: String,
1131
+ "default": ''
1132
+ },
1133
+ wrapStyle: {
1134
+ type: Object
1135
+ },
1136
+ itemTag: {
1137
+ type: String,
1138
+ "default": 'div'
1139
+ },
1140
+ itemClass: {
1141
+ type: String,
1142
+ "default": ''
1143
+ },
1144
+ itemClassAdd: {
1145
+ type: Function
1146
+ },
1147
+ itemStyle: {
1148
+ type: Object
1149
+ },
1150
+ headerTag: {
1151
+ type: String,
1152
+ "default": 'div'
1153
+ },
1154
+ headerClass: {
1155
+ type: String,
1156
+ "default": ''
1157
+ },
1158
+ headerStyle: {
1159
+ type: Object
1160
+ },
1161
+ footerTag: {
1162
+ type: String,
1163
+ "default": 'div'
1164
+ },
1165
+ footerClass: {
1166
+ type: String,
1167
+ "default": ''
1168
+ },
1169
+ footerStyle: {
1170
+ type: Object
1171
+ },
1172
+ itemScopedSlots: {
1173
+ type: Object
1174
+ }
1175
+ };
1176
+ var ItemProps = {
1177
+ index: {
1178
+ type: Number
1179
+ },
1180
+ event: {
1181
+ type: String
1182
+ },
1183
+ tag: {
1184
+ type: String
1185
+ },
1186
+ horizontal: {
1187
+ type: Boolean
1188
+ },
1189
+ source: {
1190
+ type: Object
1191
+ },
1192
+ component: {
1193
+ type: [Object, Function]
1194
+ },
1195
+ slotComponent: {
1196
+ type: Function
1197
+ },
1198
+ uniqueKey: {
1199
+ type: [String, Number]
1200
+ },
1201
+ extraProps: {
1202
+ type: Object
1203
+ },
1204
+ scopedSlots: {
1205
+ type: Object
1206
+ }
1207
+ };
1208
+ var SlotProps = {
1209
+ event: {
1210
+ type: String
1211
+ },
1212
+ uniqueKey: {
1213
+ type: String
1214
+ },
1215
+ tag: {
1216
+ type: String
1217
+ },
1218
+ horizontal: {
1219
+ type: Boolean
1220
+ }
1221
+ };
1222
+ var Wrapper = {
1223
+ created: function created() {
1224
+ this.shapeKey = this.horizontal ? 'offsetWidth' : 'offsetHeight';
1225
+ },
1226
+ mounted: function mounted() {
1227
+ var _this = this;
1228
+ if (typeof ResizeObserver !== 'undefined') {
1229
+ this.resizeObserver = new ResizeObserver(function () {
1230
+ _this.dispatchSizeChange();
1231
+ });
1232
+ this.resizeObserver.observe(this.$el);
1233
+ }
1234
+ },
1235
+ // since componet will be reused, so disptach when updated
1236
+ updated: function updated() {
1237
+ // this.dispatchSizeChange()
1238
+ this.resizeObserver.observe(this.$el);
1239
+ },
1240
+ beforeDestroy: function beforeDestroy() {
1241
+ if (this.resizeObserver) {
1242
+ this.resizeObserver.disconnect();
1243
+ this.resizeObserver = null;
1244
+ }
1245
+ },
1246
+ methods: {
1247
+ getCurrentSize: function getCurrentSize() {
1248
+ return this.$el ? this.$el[this.shapeKey] : 0;
1249
+ },
1250
+ // tell parent current size identify by unqiue key
1251
+ dispatchSizeChange: function dispatchSizeChange() {
1252
+ this.$parent.$emit(this.event, this.uniqueKey, this.getCurrentSize(), this.hasInitial);
1253
+ }
1254
+ }
1255
+ };
1256
+
1257
+ // wrapping for item
1258
+ var Item = Vue.component('virtual-list-item', {
1259
+ mixins: [Wrapper],
1260
+ props: ItemProps,
1261
+ render: function render(h) {
1262
+ var tag = this.tag,
1263
+ component = this.component,
1264
+ _this$extraProps = this.extraProps,
1265
+ extraProps = _this$extraProps === void 0 ? {} : _this$extraProps,
1266
+ index = this.index,
1267
+ source = this.source,
1268
+ _this$scopedSlots = this.scopedSlots,
1269
+ scopedSlots = _this$scopedSlots === void 0 ? {} : _this$scopedSlots,
1270
+ uniqueKey = this.uniqueKey,
1271
+ slotComponent = this.slotComponent;
1272
+ var props = _objectSpread2(_objectSpread2({}, extraProps), {}, {
1273
+ source: source,
1274
+ index: index
1275
+ });
1276
+ return h(tag, {
1277
+ key: uniqueKey,
1278
+ attrs: {
1279
+ role: 'listitem'
1280
+ }
1281
+ }, [slotComponent ? slotComponent({
1282
+ item: source,
1283
+ index: index,
1284
+ scope: props
1285
+ }) : h(component, {
1286
+ props: props,
1287
+ scopedSlots: scopedSlots
1288
+ })]);
1289
+ }
1290
+ });
1291
+
1292
+ // wrapping for slot
1293
+ var Slot = Vue.component('virtual-list-slot', {
1294
+ mixins: [Wrapper],
1295
+ props: SlotProps,
1296
+ render: function render(h) {
1297
+ var tag = this.tag,
1298
+ uniqueKey = this.uniqueKey;
1299
+ return h(tag, {
1300
+ key: uniqueKey,
1301
+ attrs: {
1302
+ role: uniqueKey
1303
+ }
1304
+ }, this.$slots["default"]);
1305
+ }
1306
+ });
1307
+
1308
+ /**
1309
+ * virtual list default component
1310
+ */
1311
+ var EVENT_TYPE = {
1312
+ ITEM: 'item_resize',
1313
+ SLOT: 'slot_resize'
1314
+ };
1315
+ var SLOT_TYPE = {
1316
+ HEADER: 'thead',
1317
+ // string value also use for aria role attribute
1318
+ FOOTER: 'tfoot'
1319
+ };
1320
+ var VirtualList = Vue.component('virtual-list', {
1321
+ props: VirtualProps,
1322
+ data: function data() {
1323
+ return {
1324
+ range: null
1325
+ };
1326
+ },
1327
+ watch: {
1328
+ 'dataSources.length': function dataSourcesLength() {
1329
+ this.virtual.updateParam('uniqueIds', this.getUniqueIdFromDataSources());
1330
+ this.virtual.handleDataSourcesChange();
1331
+ },
1332
+ keeps: function keeps(newValue) {
1333
+ this.virtual.updateParam('keeps', newValue);
1334
+ this.virtual.handleSlotSizeChange();
1335
+ },
1336
+ start: function start(newValue) {
1337
+ this.scrollToIndex(newValue);
1338
+ },
1339
+ offset: function offset(newValue) {
1340
+ this.scrollToOffset(newValue);
1341
+ }
1342
+ },
1343
+ created: function created() {
1344
+ this.isHorizontal = this.direction === 'horizontal';
1345
+ this.directionKey = this.isHorizontal ? 'scrollLeft' : 'scrollTop';
1346
+ this.installVirtual();
1347
+
1348
+ // listen item size change
1349
+ this.$on(EVENT_TYPE.ITEM, this.onItemResized);
1350
+
1351
+ // listen slot size change
1352
+ if (this.$slots.header || this.$slots.footer) {
1353
+ this.$on(EVENT_TYPE.SLOT, this.onSlotResized);
1354
+ }
1355
+ },
1356
+ activated: function activated() {
1357
+ // set back offset when awake from keep-alive
1358
+ this.scrollToOffset(this.virtual.offset);
1359
+ if (this.pageMode) {
1360
+ document.addEventListener('scroll', this.onScroll, {
1361
+ passive: false
1362
+ });
1363
+ }
1364
+ },
1365
+ deactivated: function deactivated() {
1366
+ if (this.pageMode) {
1367
+ document.removeEventListener('scroll', this.onScroll);
1368
+ }
1369
+ },
1370
+ mounted: function mounted() {
1371
+ // set position
1372
+ if (this.start) {
1373
+ this.scrollToIndex(this.start);
1374
+ } else if (this.offset) {
1375
+ this.scrollToOffset(this.offset);
1376
+ }
1377
+
1378
+ // in page mode we bind scroll event to document
1379
+ if (this.pageMode) {
1380
+ this.updatePageModeFront();
1381
+ document.addEventListener('scroll', this.onScroll, {
1382
+ passive: false
1383
+ });
1384
+ }
1385
+ },
1386
+ beforeDestroy: function beforeDestroy() {
1387
+ this.virtual.destroy();
1388
+ if (this.pageMode) {
1389
+ document.removeEventListener('scroll', this.onScroll);
1390
+ }
1391
+ },
1392
+ methods: {
1393
+ // get item size by id
1394
+ getSize: function getSize(id) {
1395
+ return this.virtual.sizes.get(id);
1396
+ },
1397
+ // get the total number of stored (rendered) items
1398
+ getSizes: function getSizes() {
1399
+ return this.virtual.sizes.size;
1400
+ },
1401
+ // return current scroll offset
1402
+ getOffset: function getOffset() {
1403
+ if (this.pageMode) {
1404
+ return document.documentElement[this.directionKey] || document.body[this.directionKey];
1405
+ } else {
1406
+ var root = this.$refs.root;
1407
+ return root ? Math.ceil(root[this.directionKey]) : 0;
1408
+ }
1409
+ },
1410
+ // return client viewport size
1411
+ getClientSize: function getClientSize() {
1412
+ var key = this.isHorizontal ? 'clientWidth' : 'clientHeight';
1413
+ if (this.pageMode) {
1414
+ return document.documentElement[key] || document.body[key];
1415
+ } else {
1416
+ var root = this.$refs.root;
1417
+ return root ? Math.ceil(root[key]) : 0;
1418
+ }
1419
+ },
1420
+ // return all scroll size
1421
+ getScrollSize: function getScrollSize() {
1422
+ var key = this.isHorizontal ? 'scrollWidth' : 'scrollHeight';
1423
+ if (this.pageMode) {
1424
+ return document.documentElement[key] || document.body[key];
1425
+ } else {
1426
+ var root = this.$refs.root;
1427
+ return root ? Math.ceil(root[key]) : 0;
1428
+ }
1429
+ },
1430
+ // set current scroll position to a expectant offset
1431
+ scrollToOffset: function scrollToOffset(offset) {
1432
+ if (this.pageMode) {
1433
+ document.body[this.directionKey] = offset;
1434
+ document.documentElement[this.directionKey] = offset;
1435
+ } else {
1436
+ var root = this.$refs.root;
1437
+ if (root) {
1438
+ root[this.directionKey] = offset;
1439
+ }
1440
+ }
1441
+ },
1442
+ // set current scroll position to a expectant index
1443
+ scrollToIndex: function scrollToIndex(index) {
1444
+ // scroll to bottom
1445
+ if (index >= this.dataSources.length - 1) {
1446
+ this.scrollToBottom();
1447
+ } else {
1448
+ var offset = this.virtual.getOffset(index);
1449
+ this.scrollToOffset(offset);
1450
+ }
1451
+ },
1452
+ // set current scroll position to bottom
1453
+ scrollToBottom: function scrollToBottom() {
1454
+ var _this = this;
1455
+ var shepherd = this.$refs.shepherd;
1456
+ if (shepherd) {
1457
+ var offset = shepherd[this.isHorizontal ? 'offsetLeft' : 'offsetTop'];
1458
+ this.scrollToOffset(offset);
1459
+
1460
+ // check if it's really scrolled to the bottom
1461
+ // maybe list doesn't render and calculate to last range
1462
+ // so we need retry in next event loop until it really at bottom
1463
+ setTimeout(function () {
1464
+ if (_this.getOffset() + _this.getClientSize() + 1 < _this.getScrollSize()) {
1465
+ _this.scrollToBottom();
1466
+ }
1467
+ }, 3);
1468
+ }
1469
+ },
1470
+ // when using page mode we need update slot header size manually
1471
+ // taking root offset relative to the browser as slot header size
1472
+ updatePageModeFront: function updatePageModeFront() {
1473
+ var root = this.$refs.root;
1474
+ if (root) {
1475
+ var rect = root.getBoundingClientRect();
1476
+ var defaultView = root.ownerDocument.defaultView;
1477
+ var offsetFront = this.isHorizontal ? rect.left + defaultView.pageXOffset : rect.top + defaultView.pageYOffset;
1478
+ this.virtual.updateParam('slotHeaderSize', offsetFront);
1479
+ }
1480
+ },
1481
+ // reset all state back to initial
1482
+ reset: function reset() {
1483
+ this.virtual.destroy();
1484
+ this.scrollToOffset(0);
1485
+ this.installVirtual();
1486
+ },
1487
+ // ----------- public method end -----------
1488
+ installVirtual: function installVirtual() {
1489
+ this.virtual = new Virtual({
1490
+ slotHeaderSize: 0,
1491
+ slotFooterSize: 0,
1492
+ keeps: this.keeps,
1493
+ estimateSize: this.estimateSize,
1494
+ buffer: Math.round(this.keeps / 3),
1495
+ // recommend for a third of keeps
1496
+ uniqueIds: this.getUniqueIdFromDataSources()
1497
+ }, this.onRangeChanged);
1498
+
1499
+ // sync initial range
1500
+ this.range = this.virtual.getRange();
1501
+ },
1502
+ getUniqueIdFromDataSources: function getUniqueIdFromDataSources() {
1503
+ var dataKey = this.dataKey;
1504
+ return this.dataSources.map(function (dataSource) {
1505
+ return typeof dataKey === 'function' ? dataKey(dataSource) : dataSource[dataKey];
1506
+ });
1507
+ },
1508
+ // event called when each item mounted or size changed
1509
+ onItemResized: function onItemResized(id, size) {
1510
+ this.virtual.saveSize(id, size);
1511
+ this.$emit('resized', id, size);
1512
+ },
1513
+ // event called when slot mounted or size changed
1514
+ onSlotResized: function onSlotResized(type, size, hasInit) {
1515
+ if (type === SLOT_TYPE.HEADER) {
1516
+ this.virtual.updateParam('slotHeaderSize', size);
1517
+ } else if (type === SLOT_TYPE.FOOTER) {
1518
+ this.virtual.updateParam('slotFooterSize', size);
1519
+ }
1520
+ if (hasInit) {
1521
+ this.virtual.handleSlotSizeChange();
1522
+ }
1523
+ },
1524
+ // here is the rerendering entry
1525
+ onRangeChanged: function onRangeChanged(range) {
1526
+ this.range = range;
1527
+ },
1528
+ onScroll: function onScroll(evt) {
1529
+ var offset = this.getOffset();
1530
+ var clientSize = this.getClientSize();
1531
+ var scrollSize = this.getScrollSize();
1532
+
1533
+ // iOS scroll-spring-back behavior will make direction mistake
1534
+ if (offset < 0 || offset + clientSize > scrollSize + 1 || !scrollSize) {
1535
+ return;
1536
+ }
1537
+ this.virtual.handleScroll(offset);
1538
+ this.emitEvent(offset, clientSize, scrollSize, evt);
1539
+ },
1540
+ // emit event in special position
1541
+ emitEvent: function emitEvent(offset, clientSize, scrollSize, evt) {
1542
+ this.$emit('scroll', evt, this.virtual.getRange());
1543
+ if (this.virtual.isFront() && !!this.dataSources.length && offset - this.topThreshold <= 0) {
1544
+ this.$emit('totop');
1545
+ } else if (this.virtual.isBehind() && offset + clientSize + this.bottomThreshold >= scrollSize) {
1546
+ this.$emit('tobottom');
1547
+ }
1548
+ },
1549
+ // get the real render slots based on range data
1550
+ // in-place patch strategy will try to reuse components as possible
1551
+ // so those components that are reused will not trigger lifecycle mounted
1552
+ getRenderSlots: function getRenderSlots(h) {
1553
+ var slots = [];
1554
+ var _this$range = this.range,
1555
+ start = _this$range.start,
1556
+ end = _this$range.end;
1557
+ var dataSources = this.dataSources,
1558
+ dataKey = this.dataKey,
1559
+ itemClass = this.itemClass,
1560
+ itemTag = this.itemTag,
1561
+ itemStyle = this.itemStyle,
1562
+ isHorizontal = this.isHorizontal,
1563
+ extraProps = this.extraProps,
1564
+ dataComponent = this.dataComponent,
1565
+ itemScopedSlots = this.itemScopedSlots;
1566
+ var slotComponent = this.$scopedSlots && this.$scopedSlots.item;
1567
+ for (var index = start; index <= end; index++) {
1568
+ var dataSource = dataSources[index];
1569
+ if (dataSource) {
1570
+ var uniqueKey = typeof dataKey === 'function' ? dataKey(dataSource) : dataSource[dataKey];
1571
+ if (typeof uniqueKey === 'string' || typeof uniqueKey === 'number') {
1572
+ slots.push(h(Item, {
1573
+ props: {
1574
+ index: index,
1575
+ tag: itemTag,
1576
+ event: EVENT_TYPE.ITEM,
1577
+ horizontal: isHorizontal,
1578
+ uniqueKey: uniqueKey,
1579
+ source: dataSource,
1580
+ extraProps: extraProps,
1581
+ component: dataComponent,
1582
+ slotComponent: slotComponent,
1583
+ scopedSlots: itemScopedSlots
1584
+ },
1585
+ style: itemStyle,
1586
+ "class": "".concat(itemClass).concat(this.itemClassAdd ? ' ' + this.itemClassAdd(index) : '')
1587
+ }));
1588
+ } else {
1589
+ console.warn("Cannot get the data-key '".concat(dataKey, "' from data-sources."));
1590
+ }
1591
+ } else {
1592
+ console.warn("Cannot get the index '".concat(index, "' from data-sources."));
1593
+ }
1594
+ }
1595
+ return slots;
1596
+ }
1597
+ },
1598
+ // render function, a closer-to-the-compiler alternative to templates
1599
+ // https://vuejs.org/v2/guide/render-function.html#The-Data-Object-In-Depth
1600
+ render: function render(h) {
1601
+ var _this$$slots = this.$slots,
1602
+ header = _this$$slots.header,
1603
+ footer = _this$$slots.footer;
1604
+ var _this$range2 = this.range,
1605
+ padFront = _this$range2.padFront,
1606
+ padBehind = _this$range2.padBehind;
1607
+ var isHorizontal = this.isHorizontal,
1608
+ pageMode = this.pageMode,
1609
+ rootTag = this.rootTag,
1610
+ wrapTag = this.wrapTag,
1611
+ wrapClass = this.wrapClass,
1612
+ wrapStyle = this.wrapStyle,
1613
+ headerTag = this.headerTag,
1614
+ headerClass = this.headerClass,
1615
+ headerStyle = this.headerStyle,
1616
+ footerTag = this.footerTag,
1617
+ footerClass = this.footerClass,
1618
+ footerStyle = this.footerStyle;
1619
+ var paddingStyle = {
1620
+ padding: isHorizontal ? "0px ".concat(padBehind, "px 0px ").concat(padFront, "px") : "".concat(padFront, "px 0px ").concat(padBehind, "px")
1621
+ };
1622
+ var wrapperStyle = wrapStyle ? Object.assign({}, wrapStyle, paddingStyle) : paddingStyle;
1623
+ return h(rootTag, {
1624
+ ref: 'root',
1625
+ on: {
1626
+ '&scroll': !pageMode && this.onScroll
1627
+ }
1628
+ }, [
1629
+ // header slot
1630
+ header ? h(Slot, {
1631
+ "class": headerClass,
1632
+ style: headerStyle,
1633
+ props: {
1634
+ tag: headerTag,
1635
+ event: EVENT_TYPE.SLOT,
1636
+ uniqueKey: SLOT_TYPE.HEADER
1637
+ }
1638
+ }, header) : null,
1639
+ // main list
1640
+ h(wrapTag, {
1641
+ "class": wrapClass,
1642
+ attrs: {
1643
+ role: 'group'
1644
+ },
1645
+ style: wrapperStyle
1646
+ }, this.getRenderSlots(h)),
1647
+ // footer slot
1648
+ footer ? h(Slot, {
1649
+ "class": footerClass,
1650
+ style: footerStyle,
1651
+ props: {
1652
+ tag: footerTag,
1653
+ event: EVENT_TYPE.SLOT,
1654
+ uniqueKey: SLOT_TYPE.FOOTER
1655
+ }
1656
+ }, footer) : null,
1657
+ // an empty element use to scroll to bottom
1658
+ h('div', {
1659
+ ref: 'shepherd',
1660
+ style: {
1661
+ width: isHorizontal ? '0px' : '100%',
1662
+ height: isHorizontal ? '100%' : '0px'
1663
+ }
1664
+ })]);
1665
+ }
1666
+ });
1667
+ return VirtualList;
1668
+ });
1669
+
535
1670
  /***/ }),
536
1671
 
537
1672
  /***/ 2106:
@@ -708,11 +1843,84 @@ var INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {
708
1843
  return !result;
709
1844
  });
710
1845
 
711
- // `Set.prototype.isSupersetOf` method
712
- // https://tc39.es/ecma262/#sec-set.prototype.issupersetof
713
- $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
714
- isSupersetOf: isSupersetOf
715
- });
1846
+ // `Set.prototype.isSupersetOf` method
1847
+ // https://tc39.es/ecma262/#sec-set.prototype.issupersetof
1848
+ $({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
1849
+ isSupersetOf: isSupersetOf
1850
+ });
1851
+
1852
+
1853
+ /***/ }),
1854
+
1855
+ /***/ 2489:
1856
+ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1857
+
1858
+ "use strict";
1859
+
1860
+ var $ = __webpack_require__(6518);
1861
+ var call = __webpack_require__(9565);
1862
+ var aCallable = __webpack_require__(9306);
1863
+ var anObject = __webpack_require__(8551);
1864
+ var getIteratorDirect = __webpack_require__(1767);
1865
+ var createIteratorProxy = __webpack_require__(9462);
1866
+ var callWithSafeIterationClosing = __webpack_require__(6319);
1867
+ var IS_PURE = __webpack_require__(6395);
1868
+ var iteratorClose = __webpack_require__(9539);
1869
+ var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
1870
+ var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
1871
+
1872
+ var FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });
1873
+ var filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR
1874
+ && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);
1875
+
1876
+ var FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;
1877
+
1878
+ var IteratorProxy = createIteratorProxy(function () {
1879
+ var iterator = this.iterator;
1880
+ var predicate = this.predicate;
1881
+ var next = this.next;
1882
+ var result, done, value;
1883
+ while (true) {
1884
+ result = anObject(call(next, iterator));
1885
+ done = this.done = !!result.done;
1886
+ if (done) return;
1887
+ value = result.value;
1888
+ if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;
1889
+ }
1890
+ });
1891
+
1892
+ // `Iterator.prototype.filter` method
1893
+ // https://tc39.es/ecma262/#sec-iterator.prototype.filter
1894
+ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
1895
+ filter: function filter(predicate) {
1896
+ anObject(this);
1897
+ try {
1898
+ aCallable(predicate);
1899
+ } catch (error) {
1900
+ iteratorClose(this, 'throw', error);
1901
+ }
1902
+
1903
+ if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);
1904
+
1905
+ return new IteratorProxy(getIteratorDirect(this), {
1906
+ predicate: predicate
1907
+ });
1908
+ }
1909
+ });
1910
+
1911
+
1912
+ /***/ }),
1913
+
1914
+ /***/ 2529:
1915
+ /***/ (function(module) {
1916
+
1917
+ "use strict";
1918
+
1919
+ // `CreateIterResultObject` abstract operation
1920
+ // https://tc39.es/ecma262/#sec-createiterresultobject
1921
+ module.exports = function (value, done) {
1922
+ return { value: value, done: done };
1923
+ };
716
1924
 
717
1925
 
718
1926
  /***/ }),
@@ -2912,6 +4120,41 @@ module.exports = function (obj) {
2912
4120
  module.exports = {};
2913
4121
 
2914
4122
 
4123
+ /***/ }),
4124
+
4125
+ /***/ 6279:
4126
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4127
+
4128
+ "use strict";
4129
+
4130
+ var defineBuiltIn = __webpack_require__(6840);
4131
+
4132
+ module.exports = function (target, src, options) {
4133
+ for (var key in src) defineBuiltIn(target, key, src[key], options);
4134
+ return target;
4135
+ };
4136
+
4137
+
4138
+ /***/ }),
4139
+
4140
+ /***/ 6319:
4141
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
4142
+
4143
+ "use strict";
4144
+
4145
+ var anObject = __webpack_require__(8551);
4146
+ var iteratorClose = __webpack_require__(9539);
4147
+
4148
+ // call something on iterator step with safe closing on error
4149
+ module.exports = function (iterator, fn, value, ENTRIES) {
4150
+ try {
4151
+ return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
4152
+ } catch (error) {
4153
+ iteratorClose(iterator, 'throw', error);
4154
+ }
4155
+ };
4156
+
4157
+
2915
4158
  /***/ }),
2916
4159
 
2917
4160
  /***/ 6395:
@@ -3791,6 +5034,66 @@ module.exports = function (name) {
3791
5034
  };
3792
5035
 
3793
5036
 
5037
+ /***/ }),
5038
+
5039
+ /***/ 8237:
5040
+ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5041
+
5042
+ "use strict";
5043
+
5044
+ var $ = __webpack_require__(6518);
5045
+ var iterate = __webpack_require__(2652);
5046
+ var aCallable = __webpack_require__(9306);
5047
+ var anObject = __webpack_require__(8551);
5048
+ var getIteratorDirect = __webpack_require__(1767);
5049
+ var iteratorClose = __webpack_require__(9539);
5050
+ var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
5051
+ var apply = __webpack_require__(8745);
5052
+ var fails = __webpack_require__(9039);
5053
+
5054
+ var $TypeError = TypeError;
5055
+
5056
+ // https://bugs.webkit.org/show_bug.cgi?id=291651
5057
+ var FAILS_ON_INITIAL_UNDEFINED = fails(function () {
5058
+ // eslint-disable-next-line es/no-iterator-prototype-reduce, es/no-array-prototype-keys, array-callback-return -- required for testing
5059
+ [].keys().reduce(function () { /* empty */ }, undefined);
5060
+ });
5061
+
5062
+ var reduceWithoutClosingOnEarlyError = !FAILS_ON_INITIAL_UNDEFINED && iteratorHelperWithoutClosingOnEarlyError('reduce', $TypeError);
5063
+
5064
+ // `Iterator.prototype.reduce` method
5065
+ // https://tc39.es/ecma262/#sec-iterator.prototype.reduce
5066
+ $({ target: 'Iterator', proto: true, real: true, forced: FAILS_ON_INITIAL_UNDEFINED || reduceWithoutClosingOnEarlyError }, {
5067
+ reduce: function reduce(reducer /* , initialValue */) {
5068
+ anObject(this);
5069
+ try {
5070
+ aCallable(reducer);
5071
+ } catch (error) {
5072
+ iteratorClose(this, 'throw', error);
5073
+ }
5074
+
5075
+ var noInitial = arguments.length < 2;
5076
+ var accumulator = noInitial ? undefined : arguments[1];
5077
+ if (reduceWithoutClosingOnEarlyError) {
5078
+ return apply(reduceWithoutClosingOnEarlyError, this, noInitial ? [reducer] : [reducer, accumulator]);
5079
+ }
5080
+ var record = getIteratorDirect(this);
5081
+ var counter = 0;
5082
+ iterate(record, function (value) {
5083
+ if (noInitial) {
5084
+ noInitial = false;
5085
+ accumulator = value;
5086
+ } else {
5087
+ accumulator = reducer(accumulator, value, counter);
5088
+ }
5089
+ counter++;
5090
+ }, { IS_RECORD: true });
5091
+ if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');
5092
+ return accumulator;
5093
+ }
5094
+ });
5095
+
5096
+
3794
5097
  /***/ }),
3795
5098
 
3796
5099
  /***/ 8469:
@@ -3934,6 +5237,25 @@ module.exports = [
3934
5237
  ];
3935
5238
 
3936
5239
 
5240
+ /***/ }),
5241
+
5242
+ /***/ 8745:
5243
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5244
+
5245
+ "use strict";
5246
+
5247
+ var NATIVE_BIND = __webpack_require__(616);
5248
+
5249
+ var FunctionPrototype = Function.prototype;
5250
+ var apply = FunctionPrototype.apply;
5251
+ var call = FunctionPrototype.call;
5252
+
5253
+ // eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe
5254
+ module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {
5255
+ return call.apply(apply, arguments);
5256
+ });
5257
+
5258
+
3937
5259
  /***/ }),
3938
5260
 
3939
5261
  /***/ 8750:
@@ -4029,6 +5351,14 @@ module.exports = function (exec) {
4029
5351
  };
4030
5352
 
4031
5353
 
5354
+ /***/ }),
5355
+
5356
+ /***/ 9274:
5357
+ /***/ (function(module) {
5358
+
5359
+ "use strict";
5360
+ module.exports = __WEBPACK_EXTERNAL_MODULE__9274__;
5361
+
4032
5362
  /***/ }),
4033
5363
 
4034
5364
  /***/ 9286:
@@ -4134,6 +5464,100 @@ module.exports = function (key, value) {
4134
5464
  };
4135
5465
 
4136
5466
 
5467
+ /***/ }),
5468
+
5469
+ /***/ 9462:
5470
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
5471
+
5472
+ "use strict";
5473
+
5474
+ var call = __webpack_require__(9565);
5475
+ var create = __webpack_require__(2360);
5476
+ var createNonEnumerableProperty = __webpack_require__(6699);
5477
+ var defineBuiltIns = __webpack_require__(6279);
5478
+ var wellKnownSymbol = __webpack_require__(8227);
5479
+ var InternalStateModule = __webpack_require__(1181);
5480
+ var getMethod = __webpack_require__(5966);
5481
+ var IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);
5482
+ var createIterResultObject = __webpack_require__(2529);
5483
+ var iteratorClose = __webpack_require__(9539);
5484
+ var iteratorCloseAll = __webpack_require__(1385);
5485
+
5486
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
5487
+ var ITERATOR_HELPER = 'IteratorHelper';
5488
+ var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';
5489
+ var NORMAL = 'normal';
5490
+ var THROW = 'throw';
5491
+ var setInternalState = InternalStateModule.set;
5492
+
5493
+ var createIteratorProxyPrototype = function (IS_ITERATOR) {
5494
+ var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);
5495
+
5496
+ return defineBuiltIns(create(IteratorPrototype), {
5497
+ next: function next() {
5498
+ var state = getInternalState(this);
5499
+ // for simplification:
5500
+ // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`
5501
+ // for `%IteratorHelperPrototype%.next` - just a value
5502
+ if (IS_ITERATOR) return state.nextHandler();
5503
+ if (state.done) return createIterResultObject(undefined, true);
5504
+ try {
5505
+ var result = state.nextHandler();
5506
+ return state.returnHandlerResult ? result : createIterResultObject(result, state.done);
5507
+ } catch (error) {
5508
+ state.done = true;
5509
+ throw error;
5510
+ }
5511
+ },
5512
+ 'return': function () {
5513
+ var state = getInternalState(this);
5514
+ var iterator = state.iterator;
5515
+ state.done = true;
5516
+ if (IS_ITERATOR) {
5517
+ var returnMethod = getMethod(iterator, 'return');
5518
+ return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);
5519
+ }
5520
+ if (state.inner) try {
5521
+ iteratorClose(state.inner.iterator, NORMAL);
5522
+ } catch (error) {
5523
+ return iteratorClose(iterator, THROW, error);
5524
+ }
5525
+ if (state.openIters) try {
5526
+ iteratorCloseAll(state.openIters, NORMAL);
5527
+ } catch (error) {
5528
+ return iteratorClose(iterator, THROW, error);
5529
+ }
5530
+ if (iterator) iteratorClose(iterator, NORMAL);
5531
+ return createIterResultObject(undefined, true);
5532
+ }
5533
+ });
5534
+ };
5535
+
5536
+ var WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);
5537
+ var IteratorHelperPrototype = createIteratorProxyPrototype(false);
5538
+
5539
+ createNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');
5540
+
5541
+ module.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {
5542
+ var IteratorProxy = function Iterator(record, state) {
5543
+ if (state) {
5544
+ state.iterator = record.iterator;
5545
+ state.next = record.next;
5546
+ } else state = record;
5547
+ state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;
5548
+ state.returnHandlerResult = !!RETURN_HANDLER_RESULT;
5549
+ state.nextHandler = nextHandler;
5550
+ state.counter = 0;
5551
+ state.done = false;
5552
+ setInternalState(this, state);
5553
+ };
5554
+
5555
+ IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;
5556
+
5557
+ return IteratorProxy;
5558
+ };
5559
+
5560
+
4137
5561
  /***/ }),
4138
5562
 
4139
5563
  /***/ 9504:
@@ -4420,6 +5844,7 @@ __webpack_require__.d(__webpack_exports__, {
4420
5844
  UiDialog: function() { return /* reexport */ ui_dialog; },
4421
5845
  UiForm: function() { return /* reexport */ ui_form; },
4422
5846
  UiTable: function() { return /* reexport */ ui_table; },
5847
+ UiVirtualSelect: function() { return /* reexport */ ui_virtual_select; },
4423
5848
  "default": function() { return /* binding */ entry_lib; }
4424
5849
  });
4425
5850
 
@@ -5430,13 +6855,304 @@ var ui_dialog_component = normalizeComponent(
5430
6855
  )
5431
6856
 
5432
6857
  /* harmony default export */ var ui_dialog = (ui_dialog_component.exports);
6858
+ ;// ./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elementConfig/ui-virtual-select/index.vue?vue&type=template&id=4776e956&scoped=true
6859
+ var ui_virtual_selectvue_type_template_id_4776e956_scoped_true_render = function render() {
6860
+ var _vm = this,
6861
+ _c = _vm._self._c;
6862
+ return _c('div', {
6863
+ staticClass: "select-wrap"
6864
+ }, [_c('el-select', _vm._b({
6865
+ ref: "elSelectRef",
6866
+ attrs: {
6867
+ "value": _vm.innerValue,
6868
+ "popper-class": "virtual-select-popper",
6869
+ "filterable": "",
6870
+ "filter-method": _vm.filterMethod,
6871
+ "popper-append-to-body": true
6872
+ },
6873
+ on: {
6874
+ "visible-change": _vm.handleVisibleChange,
6875
+ "change": _vm.handleSelectChange
6876
+ }
6877
+ }, 'el-select', _vm.$attrs, false), [_c('vue-virtual-scroll-list', {
6878
+ ref: "virtualList",
6879
+ staticClass: "virtual-list",
6880
+ attrs: {
6881
+ "data-key": _vm.fields.value,
6882
+ "data-sources": _vm.filteredData,
6883
+ "data-component": _vm.itemComponent,
6884
+ "keeps": 20,
6885
+ "extra-props": {
6886
+ label: _vm.fields.label,
6887
+ value: _vm.fields.value,
6888
+ rightLabel: _vm.fields.rightLabel
6889
+ },
6890
+ "estimate-size": 34
6891
+ },
6892
+ on: {
6893
+ "item-click": _vm.handleItemClick
6894
+ }
6895
+ })], 1)], 1);
6896
+ };
6897
+ var ui_virtual_selectvue_type_template_id_4776e956_scoped_true_staticRenderFns = [];
6898
+
6899
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
6900
+ var es_array_push = __webpack_require__(4114);
6901
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js
6902
+ var es_iterator_filter = __webpack_require__(2489);
6903
+ // EXTERNAL MODULE: ./node_modules/vue-virtual-scroll-list/dist/index.js
6904
+ var dist = __webpack_require__(2044);
6905
+ var dist_default = /*#__PURE__*/__webpack_require__.n(dist);
6906
+ ;// ./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elementConfig/ui-virtual-select/itemComponent.vue?vue&type=template&id=68d8f45e&scoped=true
6907
+ var itemComponentvue_type_template_id_68d8f45e_scoped_true_render = function render() {
6908
+ var _vm = this,
6909
+ _c = _vm._self._c;
6910
+ return _c('div', {
6911
+ staticClass: "item",
6912
+ on: {
6913
+ "click": _vm.handleItemClick
6914
+ }
6915
+ }, [_c('el-option', {
6916
+ attrs: {
6917
+ "label": _vm.source[_vm.label],
6918
+ "value": _vm.source[_vm.value]
6919
+ }
6920
+ }, [_c('span', {
6921
+ staticClass: "left-text"
6922
+ }, [_vm._v(_vm._s(_vm.source[_vm.label]))]), _vm.rightLabel ? _c('span', {
6923
+ staticClass: "right-text"
6924
+ }, [_vm._v(_vm._s(_vm.source[_vm.rightLabel]))]) : _vm._e()])], 1);
6925
+ };
6926
+ var itemComponentvue_type_template_id_68d8f45e_scoped_true_staticRenderFns = [];
6927
+
6928
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elementConfig/ui-virtual-select/itemComponent.vue?vue&type=script&lang=js
6929
+ /* harmony default export */ var itemComponentvue_type_script_lang_js = ({
6930
+ props: {
6931
+ source: {
6932
+ type: Object,
6933
+ default: () => ({})
6934
+ },
6935
+ label: {
6936
+ type: String,
6937
+ required: true
6938
+ },
6939
+ value: {
6940
+ type: String,
6941
+ required: true
6942
+ },
6943
+ rightLabel: {
6944
+ type: String,
6945
+ default: ''
6946
+ }
6947
+ },
6948
+ methods: {
6949
+ // 核心:点击选项时,向上传递选中值
6950
+ handleItemClick() {
6951
+ const selectedValue = this.source[this.value];
6952
+ // 触发自定义事件,将选中值传递给父组件
6953
+ this.$emit('item-click', selectedValue);
6954
+ }
6955
+ }
6956
+ });
6957
+ ;// ./src/elementConfig/ui-virtual-select/itemComponent.vue?vue&type=script&lang=js
6958
+ /* harmony default export */ var ui_virtual_select_itemComponentvue_type_script_lang_js = (itemComponentvue_type_script_lang_js);
6959
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elementConfig/ui-virtual-select/itemComponent.vue?vue&type=style&index=0&id=68d8f45e&prod&scoped=true&lang=css
6960
+ // extracted by mini-css-extract-plugin
6961
+
6962
+ ;// ./src/elementConfig/ui-virtual-select/itemComponent.vue?vue&type=style&index=0&id=68d8f45e&prod&scoped=true&lang=css
6963
+
6964
+ ;// ./src/elementConfig/ui-virtual-select/itemComponent.vue
6965
+
6966
+
6967
+
6968
+ ;
6969
+
6970
+
6971
+ /* normalize component */
6972
+
6973
+ var itemComponent_component = normalizeComponent(
6974
+ ui_virtual_select_itemComponentvue_type_script_lang_js,
6975
+ itemComponentvue_type_template_id_68d8f45e_scoped_true_render,
6976
+ itemComponentvue_type_template_id_68d8f45e_scoped_true_staticRenderFns,
6977
+ false,
6978
+ null,
6979
+ "68d8f45e",
6980
+ null
6981
+
6982
+ )
6983
+
6984
+ /* harmony default export */ var itemComponent = (itemComponent_component.exports);
6985
+ ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elementConfig/ui-virtual-select/index.vue?vue&type=script&lang=js
6986
+
6987
+
6988
+
6989
+
6990
+
6991
+
6992
+ /* harmony default export */ var ui_virtual_selectvue_type_script_lang_js = ({
6993
+ name: 'UiVirtualSelect',
6994
+ components: {
6995
+ VueVirtualScrollList: (dist_default())
6996
+ },
6997
+ props: {
6998
+ options: {
6999
+ type: Array,
7000
+ default: () => []
7001
+ },
7002
+ fields: {
7003
+ type: Object,
7004
+ default: () => ({
7005
+ label: 'label',
7006
+ value: 'value'
7007
+ })
7008
+ },
7009
+ value: {
7010
+ type: [String, Array],
7011
+ default: () => []
7012
+ } // 接收父组件v-model传递的值
7013
+ },
7014
+ data() {
7015
+ return {
7016
+ filteredData: [...this.options],
7017
+ maxItemWidth: 0,
7018
+ itemComponent: itemComponent,
7019
+ innerValue: [...this.value] // 内部维护选中值,避免直接修改props
7020
+ };
7021
+ },
7022
+ watch: {
7023
+ // 监听父组件v-model值变化,同步更新内部选中值
7024
+ value: {
7025
+ deep: true,
7026
+ immediate: true,
7027
+ handler(newVal) {
7028
+ this.innerValue = Array.isArray(newVal) ? [...newVal] : newVal;
7029
+ }
7030
+ },
7031
+ options: {
7032
+ deep: true,
7033
+ handler() {
7034
+ this.filteredData = [...this.options];
7035
+ this.calcMaxItemWidth();
7036
+ }
7037
+ }
7038
+ },
7039
+ mounted() {
7040
+ this.calcMaxItemWidth();
7041
+ },
7042
+ methods: {
7043
+ calcMaxItemWidth() {
7044
+ if (!this.options.length) return;
7045
+ const temp = document.createElement('div');
7046
+ temp.style.cssText = `
7047
+ position: absolute;
7048
+ top: -9999px;
7049
+ left: -9999px;
7050
+ white-space: nowrap;
7051
+ padding: 0 20px;
7052
+ font-size: 14px;
7053
+ box-sizing: border-box;
7054
+ `;
7055
+ document.body.appendChild(temp);
7056
+ let maxWidth = 0;
7057
+ this.options.forEach(item => {
7058
+ const label = item[this.fields.label] || '';
7059
+ const rightLabel = item[this.fields.rightLabel] || '';
7060
+ temp.innerHTML = `<span>${label}</span><span style="margin-left:10px;color:#939393">${rightLabel}</span>`;
7061
+ maxWidth = Math.max(maxWidth, temp.offsetWidth);
7062
+ });
7063
+ this.maxItemWidth = maxWidth + 6;
7064
+ document.body.removeChild(temp);
7065
+ this.setPopperWidth();
7066
+ },
7067
+ setPopperWidth() {
7068
+ const popper = document.querySelector('.virtual-select-popper');
7069
+ if (popper) {
7070
+ popper.style.width = `${this.maxItemWidth}px`;
7071
+ popper.style.minWidth = 'unset';
7072
+ popper.style.maxWidth = 'unset';
7073
+ }
7074
+ },
7075
+ filterMethod(query) {
7076
+ this.filteredData = query ? this.options.filter(item => {
7077
+ const labelMatch = item[this.fields.label].toLowerCase().includes(query.toLowerCase());
7078
+ const rightLabelMatch = this.fields.rightLabel ? item[this.fields.rightLabel].toLowerCase().includes(query.toLowerCase()) : false;
7079
+ return labelMatch || rightLabelMatch;
7080
+ }) : [...this.options];
7081
+ this.$nextTick(() => this.$refs.virtualList?.scrollToIndex(0));
7082
+ },
7083
+ handleVisibleChange(visible) {
7084
+ if (visible) {
7085
+ this.$nextTick(() => {
7086
+ this.setPopperWidth();
7087
+ });
7088
+ } else {
7089
+ this.$refs.virtualList?.reset();
7090
+ }
7091
+ },
7092
+ // 核心:接收子组件选中值,更新内部状态并通知el-select
7093
+ handleItemClick(selectedValue) {
7094
+ const isMultiple = this.$attrs.multiple; // 判断是否为多选模式
7095
+
7096
+ if (isMultiple) {
7097
+ // 多选:切换选中状态(存在则移除,不存在则添加)
7098
+ const valueIndex = this.innerValue.findIndex(val => val === selectedValue);
7099
+ if (valueIndex > -1) {
7100
+ this.innerValue.splice(valueIndex, 1);
7101
+ } else {
7102
+ this.innerValue.push(selectedValue);
7103
+ }
7104
+ } else {
7105
+ // 单选:直接赋值,并关闭下拉面板
7106
+ this.innerValue = selectedValue;
7107
+ this.$refs.elSelectRef.visible = false; // 手动关闭下拉
7108
+ }
7109
+
7110
+ // 手动触发el-select的change事件,同步更新状态
7111
+ this.$refs.elSelectRef.$emit('change', isMultiple ? [...this.innerValue] : this.innerValue);
7112
+ },
7113
+ // 监听el-select原生change事件,向父组件传递更新后的值(支持v-model)
7114
+ handleSelectChange(val) {
7115
+ this.$emit('input', val); // v-model的核心:触发input事件更新绑定值
7116
+ this.$emit('change', val); // 保留原有change事件,兼容手动监听
7117
+ }
7118
+ }
7119
+ });
7120
+ ;// ./src/elementConfig/ui-virtual-select/index.vue?vue&type=script&lang=js
7121
+ /* harmony default export */ var elementConfig_ui_virtual_selectvue_type_script_lang_js = (ui_virtual_selectvue_type_script_lang_js);
7122
+ ;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-54.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-54.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-54.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/elementConfig/ui-virtual-select/index.vue?vue&type=style&index=0&id=4776e956&prod&scoped=true&lang=css
7123
+ // extracted by mini-css-extract-plugin
7124
+
7125
+ ;// ./src/elementConfig/ui-virtual-select/index.vue?vue&type=style&index=0&id=4776e956&prod&scoped=true&lang=css
7126
+
7127
+ ;// ./src/elementConfig/ui-virtual-select/index.vue
7128
+
7129
+
7130
+
7131
+ ;
7132
+
7133
+
7134
+ /* normalize component */
7135
+
7136
+ var ui_virtual_select_component = normalizeComponent(
7137
+ elementConfig_ui_virtual_selectvue_type_script_lang_js,
7138
+ ui_virtual_selectvue_type_template_id_4776e956_scoped_true_render,
7139
+ ui_virtual_selectvue_type_template_id_4776e956_scoped_true_staticRenderFns,
7140
+ false,
7141
+ null,
7142
+ "4776e956",
7143
+ null
7144
+
7145
+ )
7146
+
7147
+ /* harmony default export */ var ui_virtual_select = (ui_virtual_select_component.exports);
5433
7148
  ;// ./src/elementConfig/index.js
5434
7149
 
5435
7150
 
5436
7151
 
5437
7152
 
5438
7153
 
5439
- const components = [ui_form, ui_table, ui_btns, business_status, ui_dialog];
7154
+
7155
+ const components = [ui_form, ui_table, ui_btns, business_status, ui_dialog, ui_virtual_select];
5440
7156
  const install = function (Vue) {
5441
7157
  components.forEach(component => {
5442
7158
  Vue.component(component.name, component);