eoss 0.1.0-alpha.21 → 0.1.0-alpha.23

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.
Files changed (213) hide show
  1. package/lib/account-login.js +125 -125
  2. package/lib/alert.js +2 -2
  3. package/lib/aside.js +2 -2
  4. package/lib/autocomplete.js +239 -239
  5. package/lib/avatar.js +2 -2
  6. package/lib/backtop.js +4 -4
  7. package/lib/badge.js +2 -2
  8. package/lib/breadcrumb-item.js +2 -2
  9. package/lib/breadcrumb.js +2 -2
  10. package/lib/button-group.js +2 -2
  11. package/lib/button.js +2 -2
  12. package/lib/ca-login.js +6 -6
  13. package/lib/calendar.js +2 -2
  14. package/lib/card.js +2 -2
  15. package/lib/carousel-item.js +22 -22
  16. package/lib/carousel.js +40 -26
  17. package/lib/cascader-panel.js +12 -12
  18. package/lib/cascader.js +506 -492
  19. package/lib/checkbox-button.js +2 -2
  20. package/lib/checkbox-group.js +137 -137
  21. package/lib/checkbox.js +2 -2
  22. package/lib/col.js +2 -2
  23. package/lib/collapse-item.js +1224 -1030
  24. package/lib/collapse.js +1225 -1030
  25. package/lib/color-picker.js +12 -12
  26. package/lib/container.js +2 -2
  27. package/lib/cron.js +2 -2
  28. package/lib/data-table.js +121 -121
  29. package/lib/date-picker.js +225 -225
  30. package/lib/dialog.js +17 -17
  31. package/lib/divider.js +2 -2
  32. package/lib/drawer.js +6 -6
  33. package/lib/dropdown-item.js +2 -2
  34. package/lib/dropdown-menu.js +10 -10
  35. package/lib/dropdown.js +13 -13
  36. package/lib/email-login.js +365 -365
  37. package/lib/empty.js +2 -2
  38. package/lib/eoss.common.js +21402 -20724
  39. package/lib/flip.js +2 -2
  40. package/lib/flow-group.js +251 -251
  41. package/lib/flow.js +15933 -18946
  42. package/lib/flows.js +9195 -0
  43. package/lib/footer.js +2 -2
  44. package/lib/form-item.js +28 -17
  45. package/lib/form.js +1228 -1033
  46. package/lib/header.js +2 -2
  47. package/lib/icon.js +129 -129
  48. package/lib/icons.js +4 -4
  49. package/lib/image-viewer.js +6 -6
  50. package/lib/image.js +4 -4
  51. package/lib/index.js +1 -1
  52. package/lib/infinite-scroll.js +4 -4
  53. package/lib/input-number.js +11 -11
  54. package/lib/input.js +28 -14
  55. package/lib/link.js +2 -2
  56. package/lib/loading.js +6 -6
  57. package/lib/login.js +277 -229
  58. package/lib/lowcode.js +964 -325
  59. package/lib/main.js +634 -565
  60. package/lib/marquee.js +6 -6
  61. package/lib/menu-item-group.js +2 -2
  62. package/lib/menu-item.js +2 -2
  63. package/lib/menu.js +1934 -1934
  64. package/lib/message-box.js +12 -12
  65. package/lib/message.js +10 -10
  66. package/lib/notification.js +16 -16
  67. package/lib/option-group.js +2 -2
  68. package/lib/option.js +6 -6
  69. package/lib/page-header.js +2 -2
  70. package/lib/pagination.js +16 -16
  71. package/lib/phone-login.js +127 -127
  72. package/lib/popconfirm.js +4 -4
  73. package/lib/popover.js +219 -219
  74. package/lib/progress.js +2 -2
  75. package/lib/qr-code.js +8 -8
  76. package/lib/qrcode-login.js +119 -119
  77. package/lib/radio-button.js +2 -2
  78. package/lib/radio-group.js +119 -119
  79. package/lib/radio.js +2 -2
  80. package/lib/rate.js +6 -6
  81. package/lib/row.js +2 -2
  82. package/lib/scrollbar.js +46 -32
  83. package/lib/select.js +823 -796
  84. package/lib/selector-panel.js +141 -141
  85. package/lib/selector.js +1040 -160
  86. package/lib/slider.js +2 -2
  87. package/lib/step.js +1225 -1030
  88. package/lib/steps.js +6 -6
  89. package/lib/submenu.js +27 -27
  90. package/lib/switch.js +15 -15
  91. package/lib/tab-pane.js +2 -2
  92. package/lib/table-column.js +8 -8
  93. package/lib/table.js +2530 -2516
  94. package/lib/tabs.js +28 -14
  95. package/lib/tag.js +2 -2
  96. package/lib/theme-chalk/autocomplete.css +1 -1
  97. package/lib/theme-chalk/base.css +1 -1
  98. package/lib/theme-chalk/cascader-panel.css +1 -1
  99. package/lib/theme-chalk/cascader.css +1 -1
  100. package/lib/theme-chalk/checkbox-group.css +1 -1
  101. package/lib/theme-chalk/date-picker.css +1 -1
  102. package/lib/theme-chalk/descriptions-item.css +1 -1
  103. package/lib/theme-chalk/descriptions.css +1 -1
  104. package/lib/theme-chalk/empty.css +1 -1
  105. package/lib/theme-chalk/flow.css +1 -1
  106. package/lib/theme-chalk/flows.css +1 -0
  107. package/lib/theme-chalk/form.css +1 -1
  108. package/lib/theme-chalk/index.css +1 -1
  109. package/lib/theme-chalk/input-number.css +1 -1
  110. package/lib/theme-chalk/input.css +1 -1
  111. package/lib/theme-chalk/lowcode.css +1 -1
  112. package/lib/theme-chalk/main.css +1 -1
  113. package/lib/theme-chalk/menu.css +1 -1
  114. package/lib/theme-chalk/message-box.css +1 -1
  115. package/lib/theme-chalk/message.css +1 -1
  116. package/lib/theme-chalk/notification.css +1 -1
  117. package/lib/theme-chalk/pagination.css +1 -1
  118. package/lib/theme-chalk/scrollbar.css +1 -1
  119. package/lib/theme-chalk/select.css +1 -1
  120. package/lib/theme-chalk/selector-panel.css +1 -1
  121. package/lib/theme-chalk/selector.css +1 -1
  122. package/lib/theme-chalk/slider.css +1 -1
  123. package/lib/theme-chalk/table.css +1 -1
  124. package/lib/theme-chalk/tabs.css +1 -1
  125. package/lib/theme-chalk/time-picker.css +1 -1
  126. package/lib/theme-chalk/time-select.css +1 -1
  127. package/lib/theme-chalk/timeline-item.css +1 -1
  128. package/lib/theme-chalk/transfer.css +1 -1
  129. package/lib/theme-chalk/tree.css +1 -1
  130. package/lib/theme-chalk/upload.css +1 -1
  131. package/lib/time-picker.js +16 -16
  132. package/lib/time-select.js +15 -15
  133. package/lib/timeline-item.js +2 -2
  134. package/lib/timeline.js +2 -2
  135. package/lib/tips.js +129 -129
  136. package/lib/toolbar.js +4 -4
  137. package/lib/tooltip.js +220 -220
  138. package/lib/transfer.js +8 -8
  139. package/lib/tree-group.js +124 -124
  140. package/lib/tree.js +144 -144
  141. package/lib/upload.js +155 -155
  142. package/lib/utils/resize-event.js +20 -6
  143. package/package.json +3 -1
  144. package/packages/carousel/src/carousel.vue +2 -2
  145. package/packages/flow/index.js +4 -4
  146. package/packages/flow/src/component/FreeCirculation.vue +4 -3
  147. package/packages/flow/src/component/SendMsg.vue +2 -4
  148. package/packages/flow/src/component/opinions.vue +203 -226
  149. package/packages/flow/src/component/taskUnionExamine.vue +2 -4
  150. package/packages/flow/src/freeStartFlow.vue +2 -2
  151. package/packages/flow/src/selectUser.vue +36 -1
  152. package/packages/flow/src/supervise.vue +4 -2
  153. package/packages/flows/index.js +7 -0
  154. package/packages/flows/readme.md +600 -0
  155. package/packages/flows/src/components/basis.vue +108 -0
  156. package/packages/flows/src/components/distribute.vue +42 -0
  157. package/packages/flows/src/components/opinions-file.vue +123 -0
  158. package/packages/{flow-copy/src/component → flows/src/components}/opinions.vue +227 -204
  159. package/packages/flows/src/components/quick-actions.vue +64 -0
  160. package/packages/flows/src/components/reject.vue +83 -0
  161. package/packages/flows/src/components/start-flow.vue +210 -0
  162. package/packages/flows/src/flow.vue +510 -0
  163. package/packages/{flow/src/flow.vue → flows/src/flows.vue} +40 -1327
  164. package/packages/form/src/form-item.vue +9 -2
  165. package/packages/form/src/label-wrap.vue +4 -1
  166. package/packages/login/src/login.vue +61 -32
  167. package/packages/lowcode/src/aside.vue +15 -2
  168. package/packages/lowcode/src/editor.vue +187 -0
  169. package/packages/lowcode/src/lowcode.vue +195 -41
  170. package/packages/lowcode/src/pages.vue +174 -26
  171. package/packages/lowcode/src/toolbar.vue +3 -18
  172. package/packages/main/src/components/pages.vue +97 -65
  173. package/packages/main/src/components/router-page.vue +0 -2
  174. package/packages/main/src/gzw.vue +3 -2
  175. package/packages/main/src/minxs.js +72 -51
  176. package/packages/menu/src/menu.vue +4 -4
  177. package/packages/select/src/select.vue +5 -0
  178. package/packages/selector/src/selector.vue +147 -17
  179. package/packages/theme-chalk/src/base.scss +6 -0
  180. package/packages/theme-chalk/src/checkbox-group.scss +1 -0
  181. package/packages/theme-chalk/src/common/var.scss +1 -1
  182. package/packages/theme-chalk/src/flow.scss +7 -4
  183. package/packages/theme-chalk/src/flows.scss +141 -0
  184. package/packages/theme-chalk/src/form.scss +1 -1
  185. package/packages/theme-chalk/src/index.scss +1 -0
  186. package/packages/theme-chalk/src/input.scss +1 -0
  187. package/packages/theme-chalk/src/lowcode.scss +21 -18
  188. package/packages/theme-chalk/src/select.scss +3 -1
  189. package/packages/theme-chalk/src/selector.scss +11 -5
  190. package/src/index.js +4 -1
  191. package/src/utils/resize-event.js +21 -7
  192. package/packages/flow/src/component/quick-actions.vue +0 -1168
  193. package/packages/flow-copy/index.js +0 -7
  194. package/packages/flow-copy/src/component/Circulate.vue +0 -452
  195. package/packages/flow-copy/src/component/CustomPreset.vue +0 -333
  196. package/packages/flow-copy/src/component/FreeCirculation.vue +0 -275
  197. package/packages/flow-copy/src/component/Preset.vue +0 -273
  198. package/packages/flow-copy/src/component/SendMsg.vue +0 -290
  199. package/packages/flow-copy/src/component/TimeLimit.vue +0 -205
  200. package/packages/flow-copy/src/component/taskUnionExamine.vue +0 -818
  201. package/packages/flow-copy/src/freeStartFlow.vue +0 -2912
  202. package/packages/flow-copy/src/processForm.vue +0 -1411
  203. package/packages/flow-copy/src/processReject.vue +0 -319
  204. package/packages/flow-copy/src/reset.vue +0 -944
  205. package/packages/flow-copy/src/selectUser.vue +0 -513
  206. package/packages/flow-copy/src/startTaskRead.vue +0 -723
  207. package/packages/flow-copy/src/supervise.vue +0 -182
  208. package/packages/flow-copy/src/table.vue +0 -65
  209. /package/packages/{flow-copy → flow}/src/component/FileList.vue +0 -0
  210. /package/packages/{flow-copy → flow}/src/main.vue +0 -0
  211. /package/packages/{flow-copy/src → flows/src/components}/form.vue +0 -0
  212. /package/packages/{flow/src/component → flows/src/components}/message.vue +0 -0
  213. /package/packages/{flow/src/component → flows/src/components}/opinions-list.vue +0 -0
package/lib/cascader.js CHANGED
@@ -82,7 +82,7 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 122);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 125);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
@@ -191,7 +191,7 @@ module.exports =
191
191
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ab", function() { return warning; });
192
192
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
193
193
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
194
- /* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
194
+ /* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
195
195
  /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
196
196
  /* harmony import */ var _storage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);
197
197
  /* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);
@@ -2143,7 +2143,7 @@ var loadJs = function loadJs(url, callback) {
2143
2143
  var loading = function loading() {
2144
2144
  var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '请求中...';
2145
2145
 
2146
- var Loading = __webpack_require__(19).default;
2146
+ var Loading = __webpack_require__(18).default;
2147
2147
  return Loading.service({
2148
2148
  text: text,
2149
2149
  spinner: 'es-icon-jiazai',
@@ -4040,14 +4040,231 @@ function _broadcast(componentName, eventName, params) {
4040
4040
  /***/ 12:
4041
4041
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4042
4042
 
4043
+ "use strict";
4044
+ /* unused harmony export getHue */
4045
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getColor; });
4046
+ /* unused harmony export getLightness */
4047
+ /* unused harmony export getSaturation */
4048
+ /* unused harmony export rgbToHsv */
4049
+ /* unused harmony export hsvTorgb */
4050
+ /* unused harmony export mixColor */
4051
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getRgb; });
4052
+ /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
4053
+
4054
+ var $hueStep = 2;
4055
+ var $saturationStep1 = 0.16;
4056
+ var $saturationStep2 = 0.05;
4057
+ var $brightnessStep1 = 0.05;
4058
+ var $brightnessStep2 = 0.15;
4059
+ var $lightColorCount = 5;
4060
+ var $darkColorCount = 4;
4061
+ /**
4062
+ * getHue
4063
+ * @desc:转换色相
4064
+ * @author huangbo
4065
+ * @date 2022年5月7日
4066
+ **/
4067
+ var getHue = function getHue($h, $i, $isLight) {
4068
+ var $hue = void 0;
4069
+ if ($h >= 60 && $h <= 240) {
4070
+ $hue = $isLight ? $h - $hueStep * $i : $h + $hueStep * $i;
4071
+ } else {
4072
+ $hue = $isLight ? $h + $hueStep * $i : $h - $hueStep * $i;
4073
+ }
4074
+ $hue = ($hue + 360) % 360;
4075
+ return Math.round($hue);
4076
+ };
4077
+
4078
+ /**
4079
+ * getColor
4080
+ * @desc:根据颜色和对应的色板位置,计算出对应的色板颜色
4081
+ * @author huangbo
4082
+ * @date 2022年5月7日
4083
+ **/
4084
+ var getColor = function getColor($color, $n) {
4085
+ var $isLight = $n < 7;
4086
+ var $hsv = rgbToHsv($color);
4087
+ // 这里将i转换成以主色为中心,两侧的i值逐渐增大
4088
+ var $i = $isLight ? $lightColorCount + 1 - $n : $n - $lightColorCount - 1;
4089
+ var color = hsvTorgb(getHue($hsv[0], $i, $isLight), getSaturation($hsv[1], $i, $isLight), getLightness($hsv[2], $i, $isLight));
4090
+ return color;
4091
+ };
4092
+
4093
+ /**
4094
+ * getLightness
4095
+ * @desc:转换明度
4096
+ * @author huangbo
4097
+ * @date 2022年5月7日
4098
+ * @return {string,array} 元素类名或者id
4099
+ **/
4100
+ var getLightness = function getLightness($v, $i, $isLight) {
4101
+ var $value = $isLight ? $v + $brightnessStep1 * $i : $v - $brightnessStep2 * $i;
4102
+ $value = $value < 1 ? $value : 1;
4103
+ return Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* toFixed */ "U"])($value, 2);
4104
+ };
4105
+
4106
+ /**
4107
+ * getSaturation
4108
+ * @desc:转换饱和度
4109
+ * @author huangbo
4110
+ * @date 2022年5月7日
4111
+ **/
4112
+ var getSaturation = function getSaturation($s, $i, $isLight) {
4113
+ var $saturation = void 0;
4114
+ if ($isLight) {
4115
+ $saturation = $s - $saturationStep1 * $i;
4116
+ } else if ($i === $darkColorCount) {
4117
+ $saturation = $s + $saturationStep1;
4118
+ } else {
4119
+ $saturation = $s + $saturationStep2 * $i;
4120
+ }
4121
+ $saturation = $saturation < 1 ? $saturation : 1;
4122
+
4123
+ if ($isLight && $i === $lightColorCount && $saturation > 0.1) {
4124
+ $saturation = 0.1;
4125
+ }
4126
+ $saturation = $saturation > 0.06 ? $saturation : 0.06;
4127
+ return Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* toFixed */ "U"])($saturation, 2);
4128
+ };
4129
+
4130
+ /**
4131
+ * rgbToHsv
4132
+ * @desc:rgb转化成hsv
4133
+ * @author huangbo
4134
+ * @date 2022年5月7日
4135
+ * @param {string} [$color] - 颜色值
4136
+ **/
4137
+ var rgbToHsv = function rgbToHsv($color) {
4138
+ var rgb = getRgb($color);
4139
+ var $red = rgb[0];
4140
+ var $green = rgb[1];
4141
+ var $blue = rgb[2];
4142
+ var $max = Math.max($red, $green, $blue);
4143
+ var $min = Math.min($red, $green, $blue);
4144
+ var $diff = $max - $min;
4145
+ var $h = 0;
4146
+ if ($max === $min) {
4147
+ $h = 0;
4148
+ } else if ($max === $red) {
4149
+ $h = 60 * ($green - $blue) / $diff + ($green > $blue - 1 ? 0 : 360);
4150
+ } else if ($max === $green) {
4151
+ $h = 60 * ($blue - $red) / $diff + 120;
4152
+ } else if ($max === $blue) {
4153
+ $h = 60 * ($red - $green) / $diff + 240;
4154
+ }
4155
+ var $s = $max === 0 ? 0 : $diff / $max;
4156
+ var $v = $max / 255;
4157
+ return [$h, $s, $v];
4158
+ };
4159
+
4160
+ /**
4161
+ * hsvTorgb
4162
+ * @desc:hsv转化成rgb
4163
+ * @author huangbo
4164
+ * @date 2022年5月7日
4165
+ * @param {string} [$color] - 颜色值
4166
+ **/
4167
+ var hsvTorgb = function hsvTorgb($h, $s, $v) {
4168
+ var $th = Math.floor($h / 60);
4169
+ var $t1 = $h / 60 - $th;
4170
+ var $t2 = $v * (1 - $s);
4171
+ var $t3 = $v * (1 - $t1 * $s);
4172
+ var $t4 = $v * (1 - (1 - $t1) * $s);
4173
+ var $r = [$v, $t3, $t2, $t2, $t4, $v][$th % 6];
4174
+ var $g = [$t4, $v, $v, $t3, $t2, $t2][$th % 6];
4175
+ var $b = [$t2, $t2, $t4, $v, $v, $t3][$th % 6];
4176
+ // return `rgb(${Math.round($r * 255)}, ${Math.round($g * 255)}, ${Math.round($b * 255)})`;
4177
+ var red = Math.round($r * 255);
4178
+ var green = Math.round($g * 255);
4179
+ var blue = Math.round($b * 255);
4180
+ red = red.toString(16);
4181
+ green = green.toString(16);
4182
+ blue = blue.toString(16);
4183
+ red = red.length === 1 ? '0' + red : red;
4184
+ green = green.length === 1 ? '0' + green : green;
4185
+ blue = blue.length === 1 ? '0' + blue : blue;
4186
+ return '#' + red + green + blue;
4187
+ };
4188
+
4189
+ /**
4190
+ * mixColor
4191
+ * @desc:生成混合色
4192
+ * @author huangbo
4193
+ * @date 2022年5月7日
4194
+ * @param {string} [$color1] - 颜色值
4195
+ * @param {string} [$color2] - 颜色值
4196
+ * @param {string} [$n] - 百分比 0~1
4197
+ **/
4198
+ var mixColor = function mixColor($color1, $color2, $n) {
4199
+ var rgb1 = getRgb($color1);
4200
+ var rgb2 = getRgb($color2);
4201
+ var r = rgb1[0] * $n + rgb2[0] * (1 - $n);
4202
+ var g = rgb1[1] * $n + rgb2[1] * (1 - $n);
4203
+ var b = rgb1[2] * $n + rgb2[2] * (1 - $n);
4204
+ return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
4205
+ };
4206
+
4207
+ /**
4208
+ * getRgb
4209
+ * @desc:获取颜色值的rgb值
4210
+ * @author huangbo
4211
+ * @date 2022年5月7日
4212
+ * @param {string} [$color] - 颜色值
4213
+ **/
4214
+ var getRgb = function getRgb($color) {
4215
+ var rgb = [];
4216
+ // 16进制颜色值的正则
4217
+ var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
4218
+ // 把颜色值变成小写
4219
+ $color = $color.toLowerCase();
4220
+ if (reg.test($color)) {
4221
+ // 如果只有三位的值,需变成六位,如:#fff => #ffffff
4222
+ if ($color.length === 4) {
4223
+ var colorNew = '#';
4224
+ for (var i = 1; i < 4; i++) {
4225
+ colorNew += $color.slice(i, i + 1).concat($color.slice(i, i + 1));
4226
+ }
4227
+ $color = colorNew;
4228
+ }
4229
+ // 处理六位的颜色值,转为RGB
4230
+ for (var _i = 1; _i < 7; _i += 2) {
4231
+ rgb.push(parseInt('0x' + $color.slice(_i, _i + 2), 16));
4232
+ }
4233
+ } else {
4234
+ rgb = $color.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',');
4235
+ }
4236
+ return rgb;
4237
+ };
4238
+
4239
+ /***/ }),
4240
+
4241
+ /***/ 125:
4242
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
4243
+
4244
+ "use strict";
4245
+ __webpack_require__.r(__webpack_exports__);
4246
+ /* harmony import */ var _src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69);
4247
+
4248
+
4249
+ _src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].install = function (Vue) {
4250
+ Vue.component(_src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].name, _src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]);
4251
+ };
4252
+
4253
+ /* harmony default export */ __webpack_exports__["default"] = (_src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]);
4254
+
4255
+ /***/ }),
4256
+
4257
+ /***/ 13:
4258
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
4259
+
4043
4260
  "use strict";
4044
4261
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
4045
4262
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
4046
- /* harmony import */ var eoss_src_utils_popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
4263
+ /* harmony import */ var eoss_src_utils_popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26);
4047
4264
 
4048
4265
 
4049
4266
 
4050
- var PopperJS = vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer ? function () {} : __webpack_require__(41);
4267
+ var PopperJS = vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer ? function () {} : __webpack_require__(42);
4051
4268
  var stopPropagation = function stopPropagation(e) {
4052
4269
  return e.stopPropagation();
4053
4270
  };
@@ -4264,275 +4481,51 @@ var stopPropagation = function stopPropagation(e) {
4264
4481
 
4265
4482
  // Find Vue hash attribute
4266
4483
  var hash = void 0;
4267
- for (var i = 0; i < element.attributes.length; i++) {
4268
- var attr = element.attributes[i];
4269
- if (/^_v-/.test(attr.name)) {
4270
- hash = attr.name;
4271
- break;
4272
- }
4273
- }
4274
-
4275
- // Create arrow element
4276
- var arrow = document.createElement('div');
4277
-
4278
- // Copy Vue hash attribute if exists
4279
- if (hash) {
4280
- arrow.setAttribute(hash, '');
4281
- }
4282
-
4283
- // Set arrow attributes
4284
- arrow.setAttribute('x-arrow', '');
4285
- arrow.className = 'popper__arrow';
4286
-
4287
- // Append to element
4288
- element.appendChild(arrow);
4289
- }
4290
- },
4291
-
4292
- beforeDestroy: function beforeDestroy() {
4293
- this.doDestroy(true);
4294
-
4295
- // Clean up DOM elements and event listeners
4296
- if (this.popperElm && this.popperElm.parentNode === document.body) {
4297
- this.popperElm.removeEventListener('click', stopPropagation);
4298
- document.body.removeChild(this.popperElm);
4299
- }
4300
- },
4301
-
4302
-
4303
- // call destroy in keep-alive mode
4304
- deactivated: function deactivated() {
4305
- this.$options.beforeDestroy[0].call(this);
4306
- }
4307
- });
4308
-
4309
- /***/ }),
4310
-
4311
- /***/ 122:
4312
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
4313
-
4314
- "use strict";
4315
- __webpack_require__.r(__webpack_exports__);
4316
- /* harmony import */ var _src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69);
4317
-
4318
-
4319
- _src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].install = function (Vue) {
4320
- Vue.component(_src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].name, _src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]);
4321
- };
4322
-
4323
- /* harmony default export */ __webpack_exports__["default"] = (_src_cascader_vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]);
4324
-
4325
- /***/ }),
4326
-
4327
- /***/ 13:
4328
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
4329
-
4330
- "use strict";
4331
- /* unused harmony export getHue */
4332
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getColor; });
4333
- /* unused harmony export getLightness */
4334
- /* unused harmony export getSaturation */
4335
- /* unused harmony export rgbToHsv */
4336
- /* unused harmony export hsvTorgb */
4337
- /* unused harmony export mixColor */
4338
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getRgb; });
4339
- /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
4340
-
4341
- var $hueStep = 2;
4342
- var $saturationStep1 = 0.16;
4343
- var $saturationStep2 = 0.05;
4344
- var $brightnessStep1 = 0.05;
4345
- var $brightnessStep2 = 0.15;
4346
- var $lightColorCount = 5;
4347
- var $darkColorCount = 4;
4348
- /**
4349
- * getHue
4350
- * @desc:转换色相
4351
- * @author huangbo
4352
- * @date 2022年5月7日
4353
- **/
4354
- var getHue = function getHue($h, $i, $isLight) {
4355
- var $hue = void 0;
4356
- if ($h >= 60 && $h <= 240) {
4357
- $hue = $isLight ? $h - $hueStep * $i : $h + $hueStep * $i;
4358
- } else {
4359
- $hue = $isLight ? $h + $hueStep * $i : $h - $hueStep * $i;
4360
- }
4361
- $hue = ($hue + 360) % 360;
4362
- return Math.round($hue);
4363
- };
4364
-
4365
- /**
4366
- * getColor
4367
- * @desc:根据颜色和对应的色板位置,计算出对应的色板颜色
4368
- * @author huangbo
4369
- * @date 2022年5月7日
4370
- **/
4371
- var getColor = function getColor($color, $n) {
4372
- var $isLight = $n < 7;
4373
- var $hsv = rgbToHsv($color);
4374
- // 这里将i转换成以主色为中心,两侧的i值逐渐增大
4375
- var $i = $isLight ? $lightColorCount + 1 - $n : $n - $lightColorCount - 1;
4376
- var color = hsvTorgb(getHue($hsv[0], $i, $isLight), getSaturation($hsv[1], $i, $isLight), getLightness($hsv[2], $i, $isLight));
4377
- return color;
4378
- };
4379
-
4380
- /**
4381
- * getLightness
4382
- * @desc:转换明度
4383
- * @author huangbo
4384
- * @date 2022年5月7日
4385
- * @return {string,array} 元素类名或者id
4386
- **/
4387
- var getLightness = function getLightness($v, $i, $isLight) {
4388
- var $value = $isLight ? $v + $brightnessStep1 * $i : $v - $brightnessStep2 * $i;
4389
- $value = $value < 1 ? $value : 1;
4390
- return Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* toFixed */ "U"])($value, 2);
4391
- };
4392
-
4393
- /**
4394
- * getSaturation
4395
- * @desc:转换饱和度
4396
- * @author huangbo
4397
- * @date 2022年5月7日
4398
- **/
4399
- var getSaturation = function getSaturation($s, $i, $isLight) {
4400
- var $saturation = void 0;
4401
- if ($isLight) {
4402
- $saturation = $s - $saturationStep1 * $i;
4403
- } else if ($i === $darkColorCount) {
4404
- $saturation = $s + $saturationStep1;
4405
- } else {
4406
- $saturation = $s + $saturationStep2 * $i;
4407
- }
4408
- $saturation = $saturation < 1 ? $saturation : 1;
4409
-
4410
- if ($isLight && $i === $lightColorCount && $saturation > 0.1) {
4411
- $saturation = 0.1;
4412
- }
4413
- $saturation = $saturation > 0.06 ? $saturation : 0.06;
4414
- return Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* toFixed */ "U"])($saturation, 2);
4415
- };
4416
-
4417
- /**
4418
- * rgbToHsv
4419
- * @desc:rgb转化成hsv
4420
- * @author huangbo
4421
- * @date 2022年5月7日
4422
- * @param {string} [$color] - 颜色值
4423
- **/
4424
- var rgbToHsv = function rgbToHsv($color) {
4425
- var rgb = getRgb($color);
4426
- var $red = rgb[0];
4427
- var $green = rgb[1];
4428
- var $blue = rgb[2];
4429
- var $max = Math.max($red, $green, $blue);
4430
- var $min = Math.min($red, $green, $blue);
4431
- var $diff = $max - $min;
4432
- var $h = 0;
4433
- if ($max === $min) {
4434
- $h = 0;
4435
- } else if ($max === $red) {
4436
- $h = 60 * ($green - $blue) / $diff + ($green > $blue - 1 ? 0 : 360);
4437
- } else if ($max === $green) {
4438
- $h = 60 * ($blue - $red) / $diff + 120;
4439
- } else if ($max === $blue) {
4440
- $h = 60 * ($red - $green) / $diff + 240;
4441
- }
4442
- var $s = $max === 0 ? 0 : $diff / $max;
4443
- var $v = $max / 255;
4444
- return [$h, $s, $v];
4445
- };
4446
-
4447
- /**
4448
- * hsvTorgb
4449
- * @desc:hsv转化成rgb
4450
- * @author huangbo
4451
- * @date 2022年5月7日
4452
- * @param {string} [$color] - 颜色值
4453
- **/
4454
- var hsvTorgb = function hsvTorgb($h, $s, $v) {
4455
- var $th = Math.floor($h / 60);
4456
- var $t1 = $h / 60 - $th;
4457
- var $t2 = $v * (1 - $s);
4458
- var $t3 = $v * (1 - $t1 * $s);
4459
- var $t4 = $v * (1 - (1 - $t1) * $s);
4460
- var $r = [$v, $t3, $t2, $t2, $t4, $v][$th % 6];
4461
- var $g = [$t4, $v, $v, $t3, $t2, $t2][$th % 6];
4462
- var $b = [$t2, $t2, $t4, $v, $v, $t3][$th % 6];
4463
- // return `rgb(${Math.round($r * 255)}, ${Math.round($g * 255)}, ${Math.round($b * 255)})`;
4464
- var red = Math.round($r * 255);
4465
- var green = Math.round($g * 255);
4466
- var blue = Math.round($b * 255);
4467
- red = red.toString(16);
4468
- green = green.toString(16);
4469
- blue = blue.toString(16);
4470
- red = red.length === 1 ? '0' + red : red;
4471
- green = green.length === 1 ? '0' + green : green;
4472
- blue = blue.length === 1 ? '0' + blue : blue;
4473
- return '#' + red + green + blue;
4474
- };
4475
-
4476
- /**
4477
- * mixColor
4478
- * @desc:生成混合色
4479
- * @author huangbo
4480
- * @date 2022年5月7日
4481
- * @param {string} [$color1] - 颜色值
4482
- * @param {string} [$color2] - 颜色值
4483
- * @param {string} [$n] - 百分比 0~1
4484
- **/
4485
- var mixColor = function mixColor($color1, $color2, $n) {
4486
- var rgb1 = getRgb($color1);
4487
- var rgb2 = getRgb($color2);
4488
- var r = rgb1[0] * $n + rgb2[0] * (1 - $n);
4489
- var g = rgb1[1] * $n + rgb2[1] * (1 - $n);
4490
- var b = rgb1[2] * $n + rgb2[2] * (1 - $n);
4491
- return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
4492
- };
4484
+ for (var i = 0; i < element.attributes.length; i++) {
4485
+ var attr = element.attributes[i];
4486
+ if (/^_v-/.test(attr.name)) {
4487
+ hash = attr.name;
4488
+ break;
4489
+ }
4490
+ }
4493
4491
 
4494
- /**
4495
- * getRgb
4496
- * @desc:获取颜色值的rgb值
4497
- * @author huangbo
4498
- * @date 2022年5月7日
4499
- * @param {string} [$color] - 颜色值
4500
- **/
4501
- var getRgb = function getRgb($color) {
4502
- var rgb = [];
4503
- // 16进制颜色值的正则
4504
- var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
4505
- // 把颜色值变成小写
4506
- $color = $color.toLowerCase();
4507
- if (reg.test($color)) {
4508
- // 如果只有三位的值,需变成六位,如:#fff => #ffffff
4509
- if ($color.length === 4) {
4510
- var colorNew = '#';
4511
- for (var i = 1; i < 4; i++) {
4512
- colorNew += $color.slice(i, i + 1).concat($color.slice(i, i + 1));
4492
+ // Create arrow element
4493
+ var arrow = document.createElement('div');
4494
+
4495
+ // Copy Vue hash attribute if exists
4496
+ if (hash) {
4497
+ arrow.setAttribute(hash, '');
4513
4498
  }
4514
- $color = colorNew;
4515
- }
4516
- // 处理六位的颜色值,转为RGB
4517
- for (var _i = 1; _i < 7; _i += 2) {
4518
- rgb.push(parseInt('0x' + $color.slice(_i, _i + 2), 16));
4499
+
4500
+ // Set arrow attributes
4501
+ arrow.setAttribute('x-arrow', '');
4502
+ arrow.className = 'popper__arrow';
4503
+
4504
+ // Append to element
4505
+ element.appendChild(arrow);
4519
4506
  }
4520
- } else {
4521
- rgb = $color.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',');
4522
- }
4523
- return rgb;
4524
- };
4507
+ },
4525
4508
 
4526
- /***/ }),
4509
+ beforeDestroy: function beforeDestroy() {
4510
+ this.doDestroy(true);
4527
4511
 
4528
- /***/ 14:
4529
- /***/ (function(module, exports) {
4512
+ // Clean up DOM elements and event listeners
4513
+ if (this.popperElm && this.popperElm.parentNode === document.body) {
4514
+ this.popperElm.removeEventListener('click', stopPropagation);
4515
+ document.body.removeChild(this.popperElm);
4516
+ }
4517
+ },
4530
4518
 
4531
- module.exports = require("throttle-debounce");
4519
+
4520
+ // call destroy in keep-alive mode
4521
+ deactivated: function deactivated() {
4522
+ this.$options.beforeDestroy[0].call(this);
4523
+ }
4524
+ });
4532
4525
 
4533
4526
  /***/ }),
4534
4527
 
4535
- /***/ 15:
4528
+ /***/ 14:
4536
4529
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4537
4530
 
4538
4531
  "use strict";
@@ -4677,6 +4670,13 @@ function scrollMove(wrap) {
4677
4670
 
4678
4671
  /***/ }),
4679
4672
 
4673
+ /***/ 15:
4674
+ /***/ (function(module, exports) {
4675
+
4676
+ module.exports = require("throttle-debounce");
4677
+
4678
+ /***/ }),
4679
+
4680
4680
  /***/ 16:
4681
4681
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4682
4682
 
@@ -4707,6 +4707,13 @@ module.exports = require("eoss/lib/input");
4707
4707
  /***/ }),
4708
4708
 
4709
4709
  /***/ 18:
4710
+ /***/ (function(module, exports) {
4711
+
4712
+ module.exports = require("eoss/lib/loading");
4713
+
4714
+ /***/ }),
4715
+
4716
+ /***/ 19:
4710
4717
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4711
4718
 
4712
4719
  "use strict";
@@ -4827,13 +4834,6 @@ function createDocumentHandler(el, binding, vnode) {
4827
4834
 
4828
4835
  /***/ }),
4829
4836
 
4830
- /***/ 19:
4831
- /***/ (function(module, exports) {
4832
-
4833
- module.exports = require("eoss/lib/loading");
4834
-
4835
- /***/ }),
4836
-
4837
4837
  /***/ 2:
4838
4838
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
4839
4839
 
@@ -5070,30 +5070,243 @@ var removeCookie = function removeCookie(key) {
5070
5070
  }
5071
5071
  };
5072
5072
 
5073
- /***/ }),
5073
+ /***/ }),
5074
+
5075
+ /***/ 20:
5076
+ /***/ (function(module, exports) {
5077
+
5078
+ module.exports = require("lodash/get");
5079
+
5080
+ /***/ }),
5081
+
5082
+ /***/ 21:
5083
+ /***/ (function(module, exports) {
5084
+
5085
+ module.exports = require("lodash/set");
5086
+
5087
+ /***/ }),
5088
+
5089
+ /***/ 22:
5090
+ /***/ (function(module, exports) {
5091
+
5092
+ module.exports = require("lodash/cloneDeep");
5093
+
5094
+ /***/ }),
5095
+
5096
+ /***/ 23:
5097
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
5098
+
5099
+ "use strict";
5100
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addResizeListener; });
5101
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return removeResizeListener; });
5102
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5103
+
5104
+ // 注意:此文件完全重写以解决 ResizeObserver 循环错误
5105
+
5106
+ var isServer = typeof window === 'undefined';
5107
+
5108
+ // 使用 WeakMap 存储:
5109
+ // 1. 每个元素的监听器列表
5110
+ // 2. 每个元素的最后处理时间
5111
+ // 3. 每个元素的动画帧ID(用于requestAnimationFrame)
5112
+ var listenersMap = new WeakMap();
5113
+ var lastProcessedMap = new WeakMap();
5114
+ var animationFrameMap = new WeakMap();
5115
+ var pendingRetryMap = new WeakMap();
5116
+ var PROCESSING_DELAY = 100; // 增加处理延迟到100ms
5117
+
5118
+ // 更安全的resize处理器,使用requestAnimationFrame和严格的频率控制
5119
+ function safeResizeHandler(element) {
5120
+ var now = Date.now();
5121
+ var lastTime = lastProcessedMap.get(element) || 0;
5122
+ var listeners = listenersMap.get(element) || [];
5123
+
5124
+ // 如果距离上次处理不足 PROCESSING_DELAY 毫秒,延迟重试,避免丢失最后一次变化
5125
+ if (now - lastTime < PROCESSING_DELAY) {
5126
+ if (!pendingRetryMap.get(element)) {
5127
+ pendingRetryMap.set(element, true);
5128
+ setTimeout(function () {
5129
+ pendingRetryMap.delete(element);
5130
+ safeResizeHandler(element);
5131
+ }, PROCESSING_DELAY);
5132
+ }
5133
+ return;
5134
+ }
5135
+
5136
+ // 取消任何待处理的动画帧
5137
+ var existingFrameId = animationFrameMap.get(element);
5138
+ if (existingFrameId) {
5139
+ cancelAnimationFrame(existingFrameId);
5140
+ }
5141
+
5142
+ // 使用requestAnimationFrame来处理大小变化,这样可以防止循环
5143
+ var frameId = requestAnimationFrame(function () {
5144
+ // 再次检查时间,确保在动画帧执行时不会太频繁
5145
+ var frameNow = Date.now();
5146
+ if (frameNow - lastTime < PROCESSING_DELAY) {
5147
+ animationFrameMap.delete(element);
5148
+ return;
5149
+ }
5150
+
5151
+ lastProcessedMap.set(element, frameNow);
5152
+
5153
+ if (listeners.length) {
5154
+ // 创建监听器副本以防止在迭代过程中修改
5155
+ var listenersCopy = [].concat(listeners);
5156
+ listenersCopy.forEach(function (listener) {
5157
+ try {
5158
+ // 使用setTimeout来彻底分离调用栈
5159
+ setTimeout(function () {
5160
+ try {
5161
+ listener();
5162
+ } catch (e) {
5163
+ console.error('Resize listener error:', e);
5164
+ }
5165
+ }, 0);
5166
+ } catch (e) {
5167
+ console.error('Resize handler error:', e);
5168
+ }
5169
+ });
5170
+ }
5171
+
5172
+ animationFrameMap.delete(element);
5173
+ });
5174
+
5175
+ animationFrameMap.set(element, frameId);
5176
+ }
5177
+
5178
+ // 模拟ResizeObserver的自定义实现,不使用resize-observer-polyfill
5179
+
5180
+ var CustomResizeObserver = function () {
5181
+ function CustomResizeObserver(callback) {
5182
+ _classCallCheck(this, CustomResizeObserver);
5183
+
5184
+ this.callback = callback;
5185
+ this.elements = new Set();
5186
+ this.throttleTimer = null;
5187
+ }
5188
+
5189
+ CustomResizeObserver.prototype.observe = function observe(element) {
5190
+ var _this = this;
5191
+
5192
+ if (!element || !element.nodeType) return;
5193
+
5194
+ this.elements.add(element);
5195
+
5196
+ // 使用ResizeObserver的降级实现,结合setTimeout
5197
+ var checkSize = function checkSize() {
5198
+ var rect = element.getBoundingClientRect();
5199
+ var currentSize = { width: rect.width, height: rect.height };
5200
+
5201
+ // 首次检查时初始化基准尺寸,否则永远检测不到变化
5202
+ if (!element.__lastSize) {
5203
+ element.__lastSize = currentSize;
5204
+ } else {
5205
+ var lastSize = element.__lastSize;
5206
+
5207
+ // 检查尺寸是否真的改变了
5208
+ if (Math.abs(currentSize.width - lastSize.width) > 1 || Math.abs(currentSize.height - lastSize.height) > 1) {
5209
+ element.__lastSize = currentSize;
5210
+
5211
+ // 调用原始回调,但在更安全的上下文中
5212
+ safeResizeHandler(element);
5213
+ }
5214
+ }
5215
+
5216
+ // 继续下一次检查,但增加延迟
5217
+ _this.throttleTimer = setTimeout(checkSize, 100);
5218
+ };
5219
+
5220
+ // 开始检查
5221
+ checkSize();
5222
+
5223
+ // 存储timer引用以便disconnect时清除
5224
+ element.__resizeTimer = this.throttleTimer;
5225
+ };
5226
+
5227
+ CustomResizeObserver.prototype.disconnect = function disconnect() {
5228
+ // 清除所有定时器
5229
+ this.elements.forEach(function (element) {
5230
+ if (element.__resizeTimer) {
5231
+ clearTimeout(element.__resizeTimer);
5232
+ delete element.__resizeTimer;
5233
+ }
5234
+ });
5235
+
5236
+ if (this.throttleTimer) {
5237
+ clearTimeout(this.throttleTimer);
5238
+ this.throttleTimer = null;
5239
+ }
5240
+
5241
+ this.elements.clear();
5242
+ };
5243
+
5244
+ return CustomResizeObserver;
5245
+ }();
5246
+
5247
+ /* istanbul ignore next */
5248
+
5249
+
5250
+ var addResizeListener = function addResizeListener(element, fn) {
5251
+ if (isServer) return;
5252
+
5253
+ // 初始化元素的监听器列表
5254
+ if (!listenersMap.has(element)) {
5255
+ listenersMap.set(element, []);
5074
5256
 
5075
- /***/ 20:
5076
- /***/ (function(module, exports) {
5257
+ // 使用我们的自定义ResizeObserver,而不是官方的polyfill
5258
+ try {
5259
+ var observer = new CustomResizeObserver(function () {
5260
+ safeResizeHandler(element);
5261
+ });
5262
+ observer.observe(element);
5263
+ element.__customResizeObserver = observer;
5264
+ } catch (e) {
5265
+ console.error('Failed to create CustomResizeObserver:', e);
5266
+ }
5267
+ }
5077
5268
 
5078
- module.exports = require("lodash/get");
5269
+ var listeners = listenersMap.get(element);
5270
+ if (!listeners.includes(fn)) {
5271
+ listeners.push(fn);
5272
+ }
5273
+ };
5079
5274
 
5080
- /***/ }),
5275
+ /* istanbul ignore next */
5276
+ var removeResizeListener = function removeResizeListener(element, fn) {
5277
+ if (!element || !listenersMap.has(element)) return;
5081
5278
 
5082
- /***/ 21:
5083
- /***/ (function(module, exports) {
5279
+ var listeners = listenersMap.get(element);
5280
+ var index = listeners.indexOf(fn);
5084
5281
 
5085
- module.exports = require("lodash/set");
5282
+ if (index !== -1) {
5283
+ listeners.splice(index, 1);
5086
5284
 
5087
- /***/ }),
5285
+ // 如果没有监听器了,清理资源
5286
+ if (listeners.length === 0) {
5287
+ // 清除自定义ResizeObserver
5288
+ if (element.__customResizeObserver) {
5289
+ element.__customResizeObserver.disconnect();
5290
+ delete element.__customResizeObserver;
5291
+ }
5088
5292
 
5089
- /***/ 22:
5090
- /***/ (function(module, exports) {
5293
+ // 清除存储的数据
5294
+ listenersMap.delete(element);
5295
+ lastProcessedMap.delete(element);
5091
5296
 
5092
- module.exports = require("lodash/cloneDeep");
5297
+ // 清除任何待处理的动画帧
5298
+ var frameId = animationFrameMap.get(element);
5299
+ if (frameId) {
5300
+ cancelAnimationFrame(frameId);
5301
+ animationFrameMap.delete(element);
5302
+ }
5303
+ }
5304
+ }
5305
+ };
5093
5306
 
5094
5307
  /***/ }),
5095
5308
 
5096
- /***/ 23:
5309
+ /***/ 26:
5097
5310
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
5098
5311
 
5099
5312
  "use strict";
@@ -5318,7 +5531,7 @@ if (!external_vue_default.a.prototype.$isServer) {
5318
5531
 
5319
5532
  /* harmony default export */ var popup_manager = (PopupManager);
5320
5533
  // EXTERNAL MODULE: ./src/utils/scrollbar.js
5321
- var scrollbar = __webpack_require__(15);
5534
+ var scrollbar = __webpack_require__(14);
5322
5535
 
5323
5536
  // CONCATENATED MODULE: ./src/utils/popup/index.js
5324
5537
 
@@ -5546,205 +5759,6 @@ var scrollBarWidth = void 0;
5546
5759
 
5547
5760
 
5548
5761
 
5549
- /***/ }),
5550
-
5551
- /***/ 26:
5552
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
5553
-
5554
- "use strict";
5555
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addResizeListener; });
5556
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return removeResizeListener; });
5557
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5558
-
5559
- // 注意:此文件完全重写以解决 ResizeObserver 循环错误
5560
-
5561
- var isServer = typeof window === 'undefined';
5562
-
5563
- // 使用 WeakMap 存储:
5564
- // 1. 每个元素的监听器列表
5565
- // 2. 每个元素的最后处理时间
5566
- // 3. 每个元素的动画帧ID(用于requestAnimationFrame)
5567
- var listenersMap = new WeakMap();
5568
- var lastProcessedMap = new WeakMap();
5569
- var animationFrameMap = new WeakMap();
5570
- var PROCESSING_DELAY = 100; // 增加处理延迟到100ms
5571
-
5572
- // 更安全的resize处理器,使用requestAnimationFrame和严格的频率控制
5573
- function safeResizeHandler(element) {
5574
- var now = Date.now();
5575
- var lastTime = lastProcessedMap.get(element) || 0;
5576
- var listeners = listenersMap.get(element) || [];
5577
-
5578
- // 如果距离上次处理不足 PROCESSING_DELAY 毫秒,则跳过
5579
- if (now - lastTime < PROCESSING_DELAY) {
5580
- return;
5581
- }
5582
-
5583
- // 取消任何待处理的动画帧
5584
- var existingFrameId = animationFrameMap.get(element);
5585
- if (existingFrameId) {
5586
- cancelAnimationFrame(existingFrameId);
5587
- }
5588
-
5589
- // 使用requestAnimationFrame来处理大小变化,这样可以防止循环
5590
- var frameId = requestAnimationFrame(function () {
5591
- // 再次检查时间,确保在动画帧执行时不会太频繁
5592
- var frameNow = Date.now();
5593
- if (frameNow - lastTime < PROCESSING_DELAY) {
5594
- animationFrameMap.delete(element);
5595
- return;
5596
- }
5597
-
5598
- lastProcessedMap.set(element, frameNow);
5599
-
5600
- if (listeners.length) {
5601
- // 创建监听器副本以防止在迭代过程中修改
5602
- var listenersCopy = [].concat(listeners);
5603
- listenersCopy.forEach(function (listener) {
5604
- try {
5605
- // 使用setTimeout来彻底分离调用栈
5606
- setTimeout(function () {
5607
- try {
5608
- listener();
5609
- } catch (e) {
5610
- console.error('Resize listener error:', e);
5611
- }
5612
- }, 0);
5613
- } catch (e) {
5614
- console.error('Resize handler error:', e);
5615
- }
5616
- });
5617
- }
5618
-
5619
- animationFrameMap.delete(element);
5620
- });
5621
-
5622
- animationFrameMap.set(element, frameId);
5623
- }
5624
-
5625
- // 模拟ResizeObserver的自定义实现,不使用resize-observer-polyfill
5626
-
5627
- var CustomResizeObserver = function () {
5628
- function CustomResizeObserver(callback) {
5629
- _classCallCheck(this, CustomResizeObserver);
5630
-
5631
- this.callback = callback;
5632
- this.elements = new Set();
5633
- this.throttleTimer = null;
5634
- }
5635
-
5636
- CustomResizeObserver.prototype.observe = function observe(element) {
5637
- var _this = this;
5638
-
5639
- if (!element || !element.nodeType) return;
5640
-
5641
- this.elements.add(element);
5642
-
5643
- // 使用ResizeObserver的降级实现,结合setTimeout
5644
- var checkSize = function checkSize() {
5645
- var rect = element.getBoundingClientRect();
5646
- var currentSize = { width: rect.width, height: rect.height };
5647
- var lastSize = element.__lastSize || currentSize;
5648
-
5649
- // 检查尺寸是否真的改变了
5650
- if (Math.abs(currentSize.width - lastSize.width) > 1 || Math.abs(currentSize.height - lastSize.height) > 1) {
5651
- element.__lastSize = currentSize;
5652
-
5653
- // 调用原始回调,但在更安全的上下文中
5654
- safeResizeHandler(element);
5655
- }
5656
-
5657
- // 继续下一次检查,但增加延迟
5658
- _this.throttleTimer = setTimeout(checkSize, 100);
5659
- };
5660
-
5661
- // 开始检查
5662
- checkSize();
5663
-
5664
- // 存储timer引用以便disconnect时清除
5665
- element.__resizeTimer = this.throttleTimer;
5666
- };
5667
-
5668
- CustomResizeObserver.prototype.disconnect = function disconnect() {
5669
- // 清除所有定时器
5670
- this.elements.forEach(function (element) {
5671
- if (element.__resizeTimer) {
5672
- clearTimeout(element.__resizeTimer);
5673
- delete element.__resizeTimer;
5674
- }
5675
- });
5676
-
5677
- if (this.throttleTimer) {
5678
- clearTimeout(this.throttleTimer);
5679
- this.throttleTimer = null;
5680
- }
5681
-
5682
- this.elements.clear();
5683
- };
5684
-
5685
- return CustomResizeObserver;
5686
- }();
5687
-
5688
- /* istanbul ignore next */
5689
-
5690
-
5691
- var addResizeListener = function addResizeListener(element, fn) {
5692
- if (isServer) return;
5693
-
5694
- // 初始化元素的监听器列表
5695
- if (!listenersMap.has(element)) {
5696
- listenersMap.set(element, []);
5697
-
5698
- // 使用我们的自定义ResizeObserver,而不是官方的polyfill
5699
- try {
5700
- var observer = new CustomResizeObserver(function () {
5701
- safeResizeHandler(element);
5702
- });
5703
- observer.observe(element);
5704
- element.__customResizeObserver = observer;
5705
- } catch (e) {
5706
- console.error('Failed to create CustomResizeObserver:', e);
5707
- }
5708
- }
5709
-
5710
- var listeners = listenersMap.get(element);
5711
- if (!listeners.includes(fn)) {
5712
- listeners.push(fn);
5713
- }
5714
- };
5715
-
5716
- /* istanbul ignore next */
5717
- var removeResizeListener = function removeResizeListener(element, fn) {
5718
- if (!element || !listenersMap.has(element)) return;
5719
-
5720
- var listeners = listenersMap.get(element);
5721
- var index = listeners.indexOf(fn);
5722
-
5723
- if (index !== -1) {
5724
- listeners.splice(index, 1);
5725
-
5726
- // 如果没有监听器了,清理资源
5727
- if (listeners.length === 0) {
5728
- // 清除自定义ResizeObserver
5729
- if (element.__customResizeObserver) {
5730
- element.__customResizeObserver.disconnect();
5731
- delete element.__customResizeObserver;
5732
- }
5733
-
5734
- // 清除存储的数据
5735
- listenersMap.delete(element);
5736
- lastProcessedMap.delete(element);
5737
-
5738
- // 清除任何待处理的动画帧
5739
- var frameId = animationFrameMap.get(element);
5740
- if (frameId) {
5741
- cancelAnimationFrame(frameId);
5742
- animationFrameMap.delete(element);
5743
- }
5744
- }
5745
- }
5746
- };
5747
-
5748
5762
  /***/ }),
5749
5763
 
5750
5764
  /***/ 27:
@@ -5969,7 +5983,7 @@ module.exports = require("vue");
5969
5983
 
5970
5984
  /***/ }),
5971
5985
 
5972
- /***/ 41:
5986
+ /***/ 42:
5973
5987
  /***/ (function(module, exports, __webpack_require__) {
5974
5988
 
5975
5989
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
@@ -7400,7 +7414,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
7400
7414
 
7401
7415
  /***/ }),
7402
7416
 
7403
- /***/ 42:
7417
+ /***/ 43:
7404
7418
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7405
7419
 
7406
7420
  "use strict";
@@ -8171,10 +8185,10 @@ render._withStripped = true
8171
8185
  // CONCATENATED MODULE: ./packages/cascader/src/cascader.vue?vue&type=template&id=adf2866c&
8172
8186
 
8173
8187
  // EXTERNAL MODULE: ./src/utils/vue-popper.js
8174
- var vue_popper = __webpack_require__(12);
8188
+ var vue_popper = __webpack_require__(13);
8175
8189
 
8176
8190
  // EXTERNAL MODULE: ./src/utils/clickoutside.js
8177
- var clickoutside = __webpack_require__(18);
8191
+ var clickoutside = __webpack_require__(19);
8178
8192
 
8179
8193
  // EXTERNAL MODULE: ./src/mixins/emitter.js
8180
8194
  var emitter = __webpack_require__(10);
@@ -8183,7 +8197,7 @@ var emitter = __webpack_require__(10);
8183
8197
  var migrating = __webpack_require__(27);
8184
8198
 
8185
8199
  // EXTERNAL MODULE: ./src/utils/aria-utils.js
8186
- var aria_utils = __webpack_require__(42);
8200
+ var aria_utils = __webpack_require__(43);
8187
8201
 
8188
8202
  // EXTERNAL MODULE: ./src/utils/util.js
8189
8203
  var util = __webpack_require__(0);
@@ -8195,10 +8209,10 @@ var types = __webpack_require__(6);
8195
8209
  var shared = __webpack_require__(34);
8196
8210
 
8197
8211
  // EXTERNAL MODULE: ./src/utils/resize-event.js
8198
- var resize_event = __webpack_require__(26);
8212
+ var resize_event = __webpack_require__(23);
8199
8213
 
8200
8214
  // EXTERNAL MODULE: external "throttle-debounce"
8201
- var external_throttle_debounce_ = __webpack_require__(14);
8215
+ var external_throttle_debounce_ = __webpack_require__(15);
8202
8216
 
8203
8217
  // EXTERNAL MODULE: external "eoss/lib/input"
8204
8218
  var input_ = __webpack_require__(17);