fl-web-component 1.3.6 → 1.3.8

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.
@@ -202,6 +202,17 @@ module.exports =
202
202
  /************************************************************************/
203
203
  /******/ ({
204
204
 
205
+ /***/ "00bd":
206
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
207
+
208
+ "use strict";
209
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_67cfa148_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("24b5");
210
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_67cfa148_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_67cfa148_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
211
+ /* unused harmony reexport * */
212
+
213
+
214
+ /***/ }),
215
+
205
216
  /***/ "03e8":
206
217
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
207
218
 
@@ -2135,6 +2146,13 @@ Factory_1.Factory.addGetterSetter(Image, 'cropHeight', 0, (0, Validators_1.getNu
2135
2146
 
2136
2147
  /***/ }),
2137
2148
 
2149
+ /***/ "24b5":
2150
+ /***/ (function(module, exports, __webpack_require__) {
2151
+
2152
+ // extracted by mini-css-extract-plugin
2153
+
2154
+ /***/ }),
2155
+
2138
2156
  /***/ "26c8":
2139
2157
  /***/ (function(module, exports, __webpack_require__) {
2140
2158
 
@@ -2247,6 +2265,13 @@ Factory_1.Factory.addGetterSetter(RegularPolygon, 'sides', 0, (0, Validators_1.g
2247
2265
 
2248
2266
  /***/ }),
2249
2267
 
2268
+ /***/ "270a":
2269
+ /***/ (function(module, exports, __webpack_require__) {
2270
+
2271
+ // extracted by mini-css-extract-plugin
2272
+
2273
+ /***/ }),
2274
+
2250
2275
  /***/ "2905":
2251
2276
  /***/ (function(module, exports, __webpack_require__) {
2252
2277
 
@@ -2652,17 +2677,6 @@ Factory_1.Factory.addGetterSetter(TextPath, 'text', EMPTY_STRING);
2652
2677
  Factory_1.Factory.addGetterSetter(TextPath, 'textDecoration', '');
2653
2678
  Factory_1.Factory.addGetterSetter(TextPath, 'kerningFunc', undefined);
2654
2679
 
2655
- /***/ }),
2656
-
2657
- /***/ "2e9d":
2658
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
2659
-
2660
- "use strict";
2661
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_32dc6e8c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("459a");
2662
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_32dc6e8c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_32dc6e8c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
2663
- /* unused harmony reexport * */
2664
-
2665
-
2666
2680
  /***/ }),
2667
2681
 
2668
2682
  /***/ "2fb2":
@@ -3303,13 +3317,6 @@ function getComponentValidator(components) {
3303
3317
 
3304
3318
  /***/ }),
3305
3319
 
3306
- /***/ "459a":
3307
- /***/ (function(module, exports, __webpack_require__) {
3308
-
3309
- // extracted by mini-css-extract-plugin
3310
-
3311
- /***/ }),
3312
-
3313
3320
  /***/ "461e":
3314
3321
  /***/ (function(module, exports, __webpack_require__) {
3315
3322
 
@@ -5894,6 +5901,17 @@ Factory_1.Factory.addGetterSetter(Text, 'letterSpacing', 0, (0, Validators_1.get
5894
5901
  Factory_1.Factory.addGetterSetter(Text, 'text', '', (0, Validators_1.getStringValidator)());
5895
5902
  Factory_1.Factory.addGetterSetter(Text, 'textDecoration', '');
5896
5903
 
5904
+ /***/ }),
5905
+
5906
+ /***/ "5a69":
5907
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
5908
+
5909
+ "use strict";
5910
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_2fa9e609_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("270a");
5911
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_2fa9e609_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_2fa9e609_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
5912
+ /* unused harmony reexport * */
5913
+
5914
+
5897
5915
  /***/ }),
5898
5916
 
5899
5917
  /***/ "5c7d":
@@ -21536,17 +21554,6 @@ E.API.PDFObject = function () {
21536
21554
 
21537
21555
  /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba")))
21538
21556
 
21539
- /***/ }),
21540
-
21541
- /***/ "8c0d":
21542
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
21543
-
21544
- "use strict";
21545
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_2d99390c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d56b");
21546
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_2d99390c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_2d99390c_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
21547
- /* unused harmony reexport * */
21548
-
21549
-
21550
21557
  /***/ }),
21551
21558
 
21552
21559
  /***/ "8c18":
@@ -22284,7 +22291,7 @@ Factory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBCompon
22284
22291
  /***/ "9224":
22285
22292
  /***/ (function(module) {
22286
22293
 
22287
- module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"1.3.6\",\"scripts\":{\"tip1\":\"仅调试本组件不涉及业务组件,请执行dev\",\"dev\":\"vue-cli-service serve\",\"lint\":\"eslint \\\"{src,packages}/**/*.{vue,js}\\\" --fix\",\"prettier\":\"prettier --write \\\"packages/**/*.{js,css,less,scss,vue,html}\\\"\",\"=\":\"=============================================================\",\"tip2\":\"同时调试本组件与业务组件,请执行watch\",\"watch\":\"vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build\":\"npm run lint && vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build:test\":\"vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"registry:npm\":\"npm config set registry https://registry.npmjs.org/\",\"publish:base\":\"npm run build && npm run registry:npm && npm publish\",\"==\":\"=============================================================\",\"tip3\":\"发版注意: 【修改bug执行publish:fix】【新增功能执行publish:feat】【新特性执行publish:perf】\",\"publish:fix\":\"npm version patch && npm run publish:base\",\"publish:feat\":\"npm version minor && npm run publish:base\",\"publish:perf\":\"npm version major && npm run publish:base\"},\"files\":[\"dist\",\"packages\",\"src\",\"patches\"],\"main\":\"dist/fl-web-component.common.js\",\"dependencies\":{\"camera-controls\":\"2.9.0\",\"core-js\":\"^3.42.0\",\"dxf-parser\":\"^1.1.2\",\"element-ui\":\"2.15.14\",\"html2canvas\":\"^1.4.1\",\"jspdf\":\"^3.0.1\",\"konva\":\"^9.3.14\",\"lodash\":\"^4.17.21\",\"meshline\":\"^3.3.1\",\"regenerator-runtime\":\"^0.14.1\",\"svg-pan-zoom\":\"^3.6.2\",\"three\":\"^0.176.0\",\"three.path\":\"^1.0.1\",\"vue\":\"^2.6.11\"},\"devDependencies\":{\"@babel/core\":\"^7.12.16\",\"@babel/preset-env\":\"^7.0.0\",\"@babel/runtime-corejs3\":\"^7.27.1\",\"@vue/cli-plugin-babel\":\"~4.4.0\",\"@vue/cli-plugin-eslint\":\"~4.4.0\",\"@vue/cli-service\":\"~4.4.0\",\"babel-eslint\":\"^10.1.0\",\"babel-loader\":\"^8.0.0\",\"copy-webpack-plugin\":\"^4.0.1\",\"eslint\":\"^6.7.2\",\"eslint-plugin-vue\":\"^6.2.2\",\"patch-package\":\"^6.4.7\",\"sass\":\"1.32.13\",\"sass-loader\":\"10.1.1\",\"vue-template-compiler\":\"^2.6.11\"},\"eslintConfig\":{\"root\":true,\"env\":{\"node\":true},\"extends\":[\"plugin:vue/essential\",\"eslint:recommended\"],\"parserOptions\":{\"parser\":\"babel-eslint\"},\"rules\":{}},\"browserslist\":[\"> 1%\",\"last 2 versions\",\"not dead\"]}");
22294
+ module.exports = JSON.parse("{\"name\":\"fl-web-component\",\"version\":\"1.3.8\",\"scripts\":{\"tip1\":\"仅调试本组件不涉及业务组件,请执行dev\",\"dev\":\"vue-cli-service serve\",\"lint\":\"eslint \\\"{src,packages}/**/*.{vue,js}\\\" --fix\",\"prettier\":\"prettier --write \\\"packages/**/*.{js,css,less,scss,vue,html}\\\"\",\"=\":\"=============================================================\",\"tip2\":\"同时调试本组件与业务组件,请执行watch\",\"watch\":\"vue-cli-service build --watch --mode production --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build\":\"npm run lint && vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"build:test\":\"vue-cli-service build --target lib --name fl-web-component --formats commonjs ./src/main.js\",\"publish:base\":\"npm run build && npm publish --registry https://registry.npmjs.org/\",\"==\":\"=============================================================\",\"tip3\":\"发版注意: 【修改bug执行publish:fix】【新增功能执行publish:feat】【新特性执行publish:perf】\",\"publish:fix\":\"npm version patch && npm run publish:base\",\"publish:feat\":\"npm version minor && npm run publish:base\",\"publish:perf\":\"npm version major && npm run publish:base\"},\"files\":[\"dist\",\"packages\",\"src\",\"patches\"],\"main\":\"dist/fl-web-component.common.js\",\"dependencies\":{\"camera-controls\":\"2.9.0\",\"core-js\":\"^3.42.0\",\"dxf-parser\":\"^1.1.2\",\"element-ui\":\"2.15.14\",\"html2canvas\":\"^1.4.1\",\"jspdf\":\"^3.0.1\",\"konva\":\"^9.3.14\",\"lodash\":\"^4.17.21\",\"meshline\":\"^3.3.1\",\"regenerator-runtime\":\"^0.14.1\",\"svg-pan-zoom\":\"^3.6.2\",\"three\":\"^0.176.0\",\"three.path\":\"^1.0.1\",\"vue\":\"^2.6.11\"},\"devDependencies\":{\"@babel/core\":\"^7.12.16\",\"@babel/preset-env\":\"^7.0.0\",\"@babel/runtime-corejs3\":\"^7.27.1\",\"@vue/cli-plugin-babel\":\"~4.4.0\",\"@vue/cli-plugin-eslint\":\"~4.4.0\",\"@vue/cli-service\":\"~4.4.0\",\"babel-eslint\":\"^10.1.0\",\"babel-loader\":\"^8.0.0\",\"copy-webpack-plugin\":\"^4.0.1\",\"eslint\":\"^6.7.2\",\"eslint-plugin-vue\":\"^6.2.2\",\"patch-package\":\"^6.4.7\",\"sass\":\"1.32.13\",\"sass-loader\":\"10.1.1\",\"vue-template-compiler\":\"^2.6.11\"},\"eslintConfig\":{\"root\":true,\"env\":{\"node\":true},\"extends\":[\"plugin:vue/essential\",\"eslint:recommended\"],\"parserOptions\":{\"parser\":\"babel-eslint\"},\"rules\":{}},\"browserslist\":[\"> 1%\",\"last 2 versions\",\"not dead\"]}");
22288
22295
 
22289
22296
  /***/ }),
22290
22297
 
@@ -26046,13 +26053,6 @@ Factory_1.Factory.backCompat(Transformer, {
26046
26053
 
26047
26054
  /***/ }),
26048
26055
 
26049
- /***/ "d56b":
26050
- /***/ (function(module, exports, __webpack_require__) {
26051
-
26052
- // extracted by mini-css-extract-plugin
26053
-
26054
- /***/ }),
26055
-
26056
26056
  /***/ "d777":
26057
26057
  /***/ (function(module, exports, __webpack_require__) {
26058
26058
 
@@ -29256,8 +29256,8 @@ if (typeof window !== 'undefined') {
29256
29256
  // Indicate to webpack that this file can be concatenated
29257
29257
  /* harmony default export */ var setPublicPath = (null);
29258
29258
 
29259
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b8e0146-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/index.vue?vue&type=template&id=2d99390c&scoped=true
29260
- var com_graphicsvue_type_template_id_2d99390c_scoped_true_render = function render() {
29259
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"21c8211e-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/index.vue?vue&type=template&id=67cfa148&scoped=true
29260
+ var com_graphicsvue_type_template_id_67cfa148_scoped_true_render = function render() {
29261
29261
  var _vm = this,
29262
29262
  _c = _vm._self._c;
29263
29263
  return _c('div', {
@@ -29268,7 +29268,7 @@ var com_graphicsvue_type_template_id_2d99390c_scoped_true_render = function rend
29268
29268
  };
29269
29269
  var staticRenderFns = [];
29270
29270
 
29271
- // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=2d99390c&scoped=true
29271
+ // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=template&id=67cfa148&scoped=true
29272
29272
 
29273
29273
  // CONCATENATED MODULE: ./node_modules/camera-controls/dist/camera-controls.module.js
29274
29274
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
@@ -59785,15 +59785,34 @@ function draw3Dmodel(geom, instanceName, instanceCount, nColor, nOpacity) {
59785
59785
  geometry.setAttribute('opacity', new InstancedBufferAttribute(opacities, 1));
59786
59786
 
59787
59787
  // 自定义着色器逻辑
59788
- if (!customMaterial) {
59789
- material.onBeforeCompile = function (shader) {
59790
- // 添加顶点着色器输入
59791
- shader.vertexShader = "\n in float opacity; // \u5B9E\u4F8B\u900F\u660E\u5EA6\u5C5E\u6027\n out float vAlpha;\n ".concat(shader.vertexShader, "\n ").replace('#include <begin_vertex>', "\n #include <begin_vertex>\n vAlpha = opacity; // \u4F20\u9012\u900F\u660E\u5EA6\u5230\u7247\u6BB5\u7740\u8272\u5668\n ");
59792
-
59793
- // 修改片段着色器
59794
- shader.fragmentShader = "\n in float vAlpha;\n ".concat(shader.fragmentShader, "\n ").replace('#include <alphatest_fragment>', "\n #include <alphatest_fragment>\n diffuseColor.a *= vAlpha; // \u5E94\u7528\u5B9E\u4F8B\u900F\u660E\u5EA6\n ");
59795
- };
59796
- }
59788
+ // if (!customMaterial) {
59789
+ // material.onBeforeCompile = shader => {
59790
+ // // 添加顶点着色器输入
59791
+ // shader.vertexShader = `
59792
+ // in float opacity; // 实例透明度属性
59793
+ // out float vAlpha;
59794
+ // ${shader.vertexShader}
59795
+ // `.replace(
59796
+ // '#include <begin_vertex>',
59797
+ // `
59798
+ // #include <begin_vertex>
59799
+ // vAlpha = opacity; // 传递透明度到片段着色器
59800
+ // `
59801
+ // );
59802
+
59803
+ // // 修改片段着色器
59804
+ // shader.fragmentShader = `
59805
+ // in float vAlpha;
59806
+ // ${shader.fragmentShader}
59807
+ // `.replace(
59808
+ // '#include <alphatest_fragment>',
59809
+ // `
59810
+ // #include <alphatest_fragment>
59811
+ // diffuseColor.a *= vAlpha; // 应用实例透明度
59812
+ // `
59813
+ // );
59814
+ // };
59815
+ // }
59797
59816
  mesh = new InstancedMesh(geometry, material, instanceCount);
59798
59817
  var visible = prop.visible;
59799
59818
  mesh.visible = visible;
@@ -61393,7 +61412,6 @@ var guiParams = {
61393
61412
  });
61394
61413
  // cameraControls.fitToSphere(scene, true); // TODO 待处理,先用 setModelCenter 进行定位
61395
61414
  this.setModelCenter(com_graphicsvue_type_script_lang_js_modelGroup);
61396
- console.log(com_graphicsvue_type_script_lang_js_modelGroup);
61397
61415
  this.$emit('modelLoaded');
61398
61416
  // cameraControls.saveState();
61399
61417
  }
@@ -61509,7 +61527,15 @@ var guiParams = {
61509
61527
  },
61510
61528
  setModelCenter: function setModelCenter(mesh) {
61511
61529
  var box3 = new this.THREE.Box3();
61512
- box3.setFromObject(mesh);
61530
+ mesh.traverseVisible(function (object) {
61531
+ // 3. 只处理有几何体的网格 (Mesh)
61532
+ if (object.isMesh) {
61533
+ // 4. 使用 expandByObject 扩展包围盒
61534
+ // 这个方法会计算 object 的世界坐标包围盒,并将其合并到 correctBoundingBox 中
61535
+ box3.expandByObject(object);
61536
+ }
61537
+ });
61538
+ // box3.setFromObject(mesh);
61513
61539
  var center = new this.THREE.Vector3();
61514
61540
  box3.getCenter(center);
61515
61541
  var size = box3.getSize(new this.THREE.Vector3());
@@ -62574,8 +62600,8 @@ var guiParams = {
62574
62600
  });
62575
62601
  // CONCATENATED MODULE: ./packages/components/com-graphics/index.vue?vue&type=script&lang=js
62576
62602
  /* harmony default export */ var components_com_graphicsvue_type_script_lang_js = (com_graphicsvue_type_script_lang_js);
62577
- // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=2d99390c&prod&lang=scss&scoped=true
62578
- var com_graphicsvue_type_style_index_0_id_2d99390c_prod_lang_scss_scoped_true = __webpack_require__("8c0d");
62603
+ // EXTERNAL MODULE: ./packages/components/com-graphics/index.vue?vue&type=style&index=0&id=67cfa148&prod&lang=scss&scoped=true
62604
+ var com_graphicsvue_type_style_index_0_id_67cfa148_prod_lang_scss_scoped_true = __webpack_require__("00bd");
62579
62605
 
62580
62606
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
62581
62607
  /* globals __VUE_SSR_CONTEXT__ */
@@ -62686,18 +62712,18 @@ function normalizeComponent(
62686
62712
 
62687
62713
  var component = normalizeComponent(
62688
62714
  components_com_graphicsvue_type_script_lang_js,
62689
- com_graphicsvue_type_template_id_2d99390c_scoped_true_render,
62715
+ com_graphicsvue_type_template_id_67cfa148_scoped_true_render,
62690
62716
  staticRenderFns,
62691
62717
  false,
62692
62718
  null,
62693
- "2d99390c",
62719
+ "67cfa148",
62694
62720
  null
62695
62721
 
62696
62722
  )
62697
62723
 
62698
62724
  /* harmony default export */ var com_graphics = (component.exports);
62699
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b8e0146-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-flcanvas/index.vue?vue&type=template&id=32dc6e8c&scoped=true
62700
- var com_flcanvasvue_type_template_id_32dc6e8c_scoped_true_render = function render() {
62725
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"21c8211e-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-flcanvas/index.vue?vue&type=template&id=2fa9e609&scoped=true
62726
+ var com_flcanvasvue_type_template_id_2fa9e609_scoped_true_render = function render() {
62701
62727
  var _vm = this,
62702
62728
  _c = _vm._self._c;
62703
62729
  return _c('div', {
@@ -62710,9 +62736,9 @@ var com_flcanvasvue_type_template_id_32dc6e8c_scoped_true_render = function rend
62710
62736
  }
62711
62737
  });
62712
62738
  };
62713
- var com_flcanvasvue_type_template_id_32dc6e8c_scoped_true_staticRenderFns = [];
62739
+ var com_flcanvasvue_type_template_id_2fa9e609_scoped_true_staticRenderFns = [];
62714
62740
 
62715
- // CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=template&id=32dc6e8c&scoped=true
62741
+ // CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=template&id=2fa9e609&scoped=true
62716
62742
 
62717
62743
  // EXTERNAL MODULE: ./node_modules/konva/lib/index.js
62718
62744
  var lib = __webpack_require__("362d");
@@ -65598,7 +65624,7 @@ var activedSvgPan = {
65598
65624
  var newScale = direction > 0 ? oldScale * scaleBy : oldScale / scaleBy;
65599
65625
  _this.scaleRatio = Math.ceil(newScale);
65600
65626
  // 判断比例尺百分比
65601
- if (_this.scaleRatio <= 1 || _this.scaleRatio >= 100) return;
65627
+ if (_this.scaleRatio < 1 || _this.scaleRatio >= 100) return;
65602
65628
  // 设置放大缩小多少倍
65603
65629
  konvaStage.scale({
65604
65630
  x: newScale,
@@ -65891,8 +65917,8 @@ var activedSvgPan = {
65891
65917
  });
65892
65918
  // CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=script&lang=js
65893
65919
  /* harmony default export */ var components_com_flcanvasvue_type_script_lang_js = (com_flcanvasvue_type_script_lang_js);
65894
- // EXTERNAL MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=style&index=0&id=32dc6e8c&prod&lang=scss&scoped=true
65895
- var com_flcanvasvue_type_style_index_0_id_32dc6e8c_prod_lang_scss_scoped_true = __webpack_require__("2e9d");
65920
+ // EXTERNAL MODULE: ./packages/components/com-flcanvas/index.vue?vue&type=style&index=0&id=2fa9e609&prod&lang=scss&scoped=true
65921
+ var com_flcanvasvue_type_style_index_0_id_2fa9e609_prod_lang_scss_scoped_true = __webpack_require__("5a69");
65896
65922
 
65897
65923
  // CONCATENATED MODULE: ./packages/components/com-flcanvas/index.vue
65898
65924
 
@@ -65905,17 +65931,17 @@ var com_flcanvasvue_type_style_index_0_id_32dc6e8c_prod_lang_scss_scoped_true =
65905
65931
 
65906
65932
  var com_flcanvas_component = normalizeComponent(
65907
65933
  components_com_flcanvasvue_type_script_lang_js,
65908
- com_flcanvasvue_type_template_id_32dc6e8c_scoped_true_render,
65909
- com_flcanvasvue_type_template_id_32dc6e8c_scoped_true_staticRenderFns,
65934
+ com_flcanvasvue_type_template_id_2fa9e609_scoped_true_render,
65935
+ com_flcanvasvue_type_template_id_2fa9e609_scoped_true_staticRenderFns,
65910
65936
  false,
65911
65937
  null,
65912
- "32dc6e8c",
65938
+ "2fa9e609",
65913
65939
  null
65914
65940
 
65915
65941
  )
65916
65942
 
65917
65943
  /* harmony default export */ var com_flcanvas = (com_flcanvas_component.exports);
65918
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b8e0146-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/per-control.vue?vue&type=template&id=f547d5c6&scoped=true
65944
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"21c8211e-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/per-control.vue?vue&type=template&id=f547d5c6&scoped=true
65919
65945
  var per_controlvue_type_template_id_f547d5c6_scoped_true_render = function render() {
65920
65946
  var _vm = this,
65921
65947
  _c = _vm._self._c;
@@ -66023,7 +66049,7 @@ var per_control_component = normalizeComponent(
66023
66049
  )
66024
66050
 
66025
66051
  /* harmony default export */ var per_control = (per_control_component.exports);
66026
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b8e0146-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/pid.vue?vue&type=template&id=0ec35ee4&scoped=true
66052
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"21c8211e-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/com-graphics/pid.vue?vue&type=template&id=0ec35ee4&scoped=true
66027
66053
  var pidvue_type_template_id_0ec35ee4_scoped_true_render = function render() {
66028
66054
  var _vm = this,
66029
66055
  _c = _vm._self._c;
@@ -66246,6 +66272,374 @@ var pid_component = normalizeComponent(
66246
66272
  // EXTERNAL MODULE: ./package.json
66247
66273
  var package_0 = __webpack_require__("9224");
66248
66274
 
66275
+ // CONCATENATED MODULE: ./src/utils/mini-devtool.js
66276
+ function mini_devtool_typeof(o) { "@babel/helpers - typeof"; return mini_devtool_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, mini_devtool_typeof(o); }
66277
+ // ========= Error & Console Panel (非阻塞右下角显示,包含 console.log 等) =========
66278
+ function installErrorConsolePanel() {
66279
+ // ========== 可配置项 ==========
66280
+ var MAX_ENTRIES = 400;
66281
+ var PANEL_ID = 'js-error-panel';
66282
+ var COLLAPSE_LENGTH = 1200; // 超过多少字符时折叠显示
66283
+ var CAPTURE_CONSOLE = true; // 是否捕获 console.log/info/warn/debug(保留原行为)
66284
+ // ================================
66285
+
66286
+ // 安全 stringify(处理循环引用)
66287
+ function getCircularReplacer() {
66288
+ var seen = new WeakSet();
66289
+ return function (key, value) {
66290
+ if (mini_devtool_typeof(value) === "object" && value !== null) {
66291
+ if (seen.has(value)) return "[Circular]";
66292
+ seen.add(value);
66293
+ }
66294
+ return value;
66295
+ };
66296
+ }
66297
+ function safeStringify(x) {
66298
+ try {
66299
+ if (typeof x === "string") return x;
66300
+ if (x instanceof Error) return x.stack || x.message || String(x);
66301
+ return JSON.stringify(x, getCircularReplacer(), 2);
66302
+ } catch (e) {
66303
+ try {
66304
+ return String(x);
66305
+ } catch (e2) {
66306
+ return "[unstringifiable]";
66307
+ }
66308
+ }
66309
+ }
66310
+
66311
+ // ========== Panel DOM 创建 ==========
66312
+ function createPanel() {
66313
+ if (document.getElementById(PANEL_ID)) return document.getElementById(PANEL_ID);
66314
+ var panel = document.createElement('div');
66315
+ panel.id = PANEL_ID;
66316
+ Object.assign(panel.style, {
66317
+ position: 'fixed',
66318
+ right: '12px',
66319
+ bottom: '12px',
66320
+ width: '460px',
66321
+ maxHeight: '45vh',
66322
+ boxSizing: 'border-box',
66323
+ overflow: 'hidden',
66324
+ zIndex: 2147483647,
66325
+ fontFamily: 'Menlo,Consolas,monospace',
66326
+ fontSize: '12px',
66327
+ color: '#fff',
66328
+ borderRadius: '8px',
66329
+ boxShadow: '0 6px 18px rgba(0,0,0,0.55)',
66330
+ background: 'linear-gradient(180deg, rgba(0,0,0,0.86), rgba(24,24,24,0.86))',
66331
+ display: 'flex',
66332
+ flexDirection: 'column',
66333
+ gap: '6px',
66334
+ padding: '8px'
66335
+ });
66336
+
66337
+ // header
66338
+ var header = document.createElement('div');
66339
+ Object.assign(header.style, {
66340
+ display: 'flex',
66341
+ justifyContent: 'space-between',
66342
+ alignItems: 'center',
66343
+ gap: '8px'
66344
+ });
66345
+ header.innerHTML = "<strong style=\"font-size:13px\">JS Logs / Errors</strong><span style=\"opacity:.7;font-size:11px\">\uFF08\u975E\u963B\u585E\uFF09</span>";
66346
+ var btns = document.createElement('div');
66347
+ var clearBtn = document.createElement('button');
66348
+ clearBtn.textContent = '清空';
66349
+ Object.assign(clearBtn.style, {
66350
+ marginLeft: '6px',
66351
+ cursor: 'pointer',
66352
+ fontSize: '12px'
66353
+ });
66354
+ clearBtn.onclick = function () {
66355
+ entriesContainer.innerHTML = '';
66356
+ entryCount = 0;
66357
+ updateStats();
66358
+ };
66359
+ var toggleBtn = document.createElement('button');
66360
+ toggleBtn.textContent = '隐藏';
66361
+ Object.assign(toggleBtn.style, {
66362
+ cursor: 'pointer',
66363
+ fontSize: '12px'
66364
+ });
66365
+ toggleBtn.onclick = function () {
66366
+ if (entriesContainer.style.display === 'none') {
66367
+ entriesContainer.style.display = '';
66368
+ toggleBtn.textContent = '隐藏';
66369
+ } else {
66370
+ entriesContainer.style.display = 'none';
66371
+ toggleBtn.textContent = '显示';
66372
+ }
66373
+ };
66374
+ var statsSpan = document.createElement('span');
66375
+ statsSpan.style.opacity = '.8';
66376
+ statsSpan.style.fontSize = '11px';
66377
+ statsSpan.textContent = '0 条';
66378
+ btns.appendChild(statsSpan);
66379
+ btns.appendChild(toggleBtn);
66380
+ btns.appendChild(clearBtn);
66381
+ header.appendChild(btns);
66382
+
66383
+ // entries container (scrollable)
66384
+ var entriesContainer = document.createElement('div');
66385
+ Object.assign(entriesContainer.style, {
66386
+ overflowY: 'auto',
66387
+ padding: '6px',
66388
+ borderRadius: '6px',
66389
+ background: 'rgba(0,0,0,0.32)',
66390
+ maxHeight: 'calc(45vh - 48px)',
66391
+ boxSizing: 'border-box'
66392
+ });
66393
+ panel.appendChild(header);
66394
+ panel.appendChild(entriesContainer);
66395
+ document.body.appendChild(panel);
66396
+
66397
+ // helper to update stats
66398
+ function updateStats() {
66399
+ statsSpan.textContent = "".concat(entryCount, " \u6761");
66400
+ }
66401
+ panel._entriesContainer = entriesContainer;
66402
+ panel._statsUpdater = updateStats;
66403
+ return panel;
66404
+ }
66405
+
66406
+ // ========== 添加条目 ==========
66407
+ var entryCount = 0;
66408
+ function addEntry(_ref) {
66409
+ var _ref$type = _ref.type,
66410
+ type = _ref$type === void 0 ? 'log' : _ref$type,
66411
+ _ref$message = _ref.message,
66412
+ message = _ref$message === void 0 ? '' : _ref$message,
66413
+ _ref$time = _ref.time,
66414
+ time = _ref$time === void 0 ? new Date().toLocaleString() : _ref$time,
66415
+ _ref$meta = _ref.meta,
66416
+ meta = _ref$meta === void 0 ? null : _ref$meta;
66417
+ var panel = createPanel();
66418
+ var entriesContainer = panel._entriesContainer;
66419
+ var updateStats = panel._statsUpdater;
66420
+
66421
+ // 限制数量
66422
+ if (entryCount >= MAX_ENTRIES) {
66423
+ var first = entriesContainer.firstChild;
66424
+ if (first) entriesContainer.removeChild(first);
66425
+ entryCount--;
66426
+ }
66427
+ var entry = document.createElement('div');
66428
+ Object.assign(entry.style, {
66429
+ padding: '6px',
66430
+ marginBottom: '6px',
66431
+ borderRadius: '6px',
66432
+ background: 'rgba(255,255,255,0.03)'
66433
+ });
66434
+ var header = document.createElement('div');
66435
+ header.style.display = 'flex';
66436
+ header.style.justifyContent = 'space-between';
66437
+ header.style.alignItems = 'center';
66438
+ header.style.gap = '8px';
66439
+ var left = document.createElement('div');
66440
+ // 彩色 type 标签
66441
+ var colorMap = {
66442
+ error: '#ff6b6b',
66443
+ 'window.onerror': '#ff6b6b',
66444
+ resource: '#ff9966',
66445
+ 'unhandledrejection': '#ff8c66',
66446
+ 'console.error': '#ff6b6b',
66447
+ 'console.warn': '#ffd966',
66448
+ 'console.info': '#66bfff',
66449
+ 'console.log': '#bfbfbf',
66450
+ 'console.debug': '#a0a0a0',
66451
+ 'Vue.error (2)': '#ff6b6b',
66452
+ 'Vue.error (3)': '#ff6b6b'
66453
+ };
66454
+ var tagColor = colorMap[type] || '#bfbfbf';
66455
+ left.innerHTML = "<span style=\"font-weight:700;color:".concat(tagColor, "\">").concat(type, "</span> <span style=\"opacity:.7;font-size:11px\"> ").concat(time, "</span>");
66456
+ var right = document.createElement('div');
66457
+ right.style.display = 'flex';
66458
+ right.style.gap = '6px';
66459
+ var copyBtn = document.createElement('button');
66460
+ copyBtn.textContent = '复制';
66461
+ Object.assign(copyBtn.style, {
66462
+ cursor: 'pointer',
66463
+ fontSize: '11px'
66464
+ });
66465
+ var expandBtn = document.createElement('button');
66466
+ expandBtn.textContent = '展开';
66467
+ Object.assign(expandBtn.style, {
66468
+ cursor: 'pointer',
66469
+ fontSize: '11px'
66470
+ });
66471
+ right.appendChild(copyBtn);
66472
+ right.appendChild(expandBtn);
66473
+ header.appendChild(left);
66474
+ header.appendChild(right);
66475
+ var content = document.createElement('pre');
66476
+ Object.assign(content.style, {
66477
+ whiteSpace: 'pre-wrap',
66478
+ wordBreak: 'break-word',
66479
+ margin: '6px 0 0 0',
66480
+ maxHeight: '240px',
66481
+ overflow: 'auto',
66482
+ fontSize: '12px',
66483
+ lineHeight: '1.3',
66484
+ display: 'block'
66485
+ });
66486
+
66487
+ // 合成文本(message + meta)
66488
+ var txt = typeof message === 'string' ? message : safeStringify(message);
66489
+ if (meta) {
66490
+ try {
66491
+ var metaStr = safeStringify(meta);
66492
+ txt = "".concat(txt, "\n\n[meta]\n").concat(metaStr);
66493
+ } catch (e) {}
66494
+ }
66495
+ var fullText = txt;
66496
+ if (txt.length > COLLAPSE_LENGTH) {
66497
+ content.textContent = txt.slice(0, COLLAPSE_LENGTH) + '\n\n...(已折叠,点击展开查看全部)';
66498
+ expandBtn.onclick = function () {
66499
+ content.textContent = fullText;
66500
+ expandBtn.style.display = 'none';
66501
+ entriesContainer.scrollTop = entriesContainer.scrollHeight;
66502
+ };
66503
+ } else {
66504
+ content.textContent = txt;
66505
+ expandBtn.style.display = 'none';
66506
+ }
66507
+ copyBtn.onclick = function () {
66508
+ try {
66509
+ navigator.clipboard.writeText(fullText);
66510
+ } catch (e) {
66511
+ try {
66512
+ prompt('复制文本:Ctrl+C, Enter', fullText);
66513
+ } catch (ee) {}
66514
+ }
66515
+ };
66516
+ entry.appendChild(header);
66517
+ entry.appendChild(content);
66518
+ entriesContainer.appendChild(entry);
66519
+ entryCount++;
66520
+ updateStats();
66521
+
66522
+ // 自动滚到底部
66523
+ entriesContainer.scrollTop = entriesContainer.scrollHeight;
66524
+ }
66525
+
66526
+ // 报告包装
66527
+ function report(obj) {
66528
+ try {
66529
+ addEntry({
66530
+ type: obj.type || 'log',
66531
+ message: obj.message || safeStringify(obj),
66532
+ time: new Date().toLocaleString(),
66533
+ meta: obj.meta || null
66534
+ });
66535
+ } catch (e) {
66536
+ console.warn('Error panel report failed', e);
66537
+ }
66538
+ }
66539
+
66540
+ // ========== 捕获逻辑 ==========
66541
+
66542
+ // 传统同步错误
66543
+ window.onerror = function (message, source, lineno, colno, error) {
66544
+ var msg = "".concat(message, "\n at ").concat(source, ":").concat(lineno, ":").concat(colno, "\n").concat(error && error.stack ? error.stack : '');
66545
+ report({
66546
+ type: 'window.onerror',
66547
+ message: msg
66548
+ });
66549
+ return false;
66550
+ };
66551
+
66552
+ // 资源加载错误(图片/script/css 等)
66553
+ window.addEventListener('error', function (event) {
66554
+ var target = event.target || event.srcElement;
66555
+ if (target && (target.src || target.href)) {
66556
+ var tag = target.tagName;
66557
+ var url = target.src || target.href;
66558
+ report({
66559
+ type: 'resource',
66560
+ message: "Failed to load resource: <".concat(tag, "> ").concat(url)
66561
+ });
66562
+ }
66563
+ }, true);
66564
+
66565
+ // 未处理的 Promise 拒绝
66566
+ window.addEventListener('unhandledrejection', function (event) {
66567
+ report({
66568
+ type: 'unhandledrejection',
66569
+ message: safeStringify(event.reason)
66570
+ });
66571
+ });
66572
+
66573
+ // 捕获 console.*(可选)
66574
+ if (CAPTURE_CONSOLE && typeof console !== 'undefined') {
66575
+ var methods = ['log', 'info', 'warn', 'error', 'debug'];
66576
+ methods.forEach(function (m) {
66577
+ if (!(m in console)) return;
66578
+ var orig = console[m].bind(console);
66579
+ console[m] = function () {
66580
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
66581
+ args[_key] = arguments[_key];
66582
+ }
66583
+ try {
66584
+ // 生成调用栈(方便定位是谁调用了 console)
66585
+ var stack = null;
66586
+ try {
66587
+ var err = new Error();
66588
+ if (err.stack) {
66589
+ // 移除前两行(Error + 本函数)
66590
+ stack = err.stack.split('\n').slice(2).join('\n');
66591
+ }
66592
+ } catch (e) {
66593
+ stack = null;
66594
+ }
66595
+ var payload = {
66596
+ type: "console.".concat(m),
66597
+ message: args.map(function (a) {
66598
+ return safeStringify(a);
66599
+ }).join(' '),
66600
+ meta: stack
66601
+ };
66602
+ report(payload);
66603
+ } catch (e) {
66604
+ // noop
66605
+ }
66606
+ // 保持原有行为
66607
+ try {
66608
+ orig.apply(void 0, args);
66609
+ } catch (e) {}
66610
+ };
66611
+ });
66612
+ }
66613
+
66614
+ // Vue 2 支持(若使用全局 Vue)
66615
+ if (typeof Vue !== 'undefined' && Vue && Vue.config) {
66616
+ try {
66617
+ Vue.config.errorHandler = function (err, vm, info) {
66618
+ report({
66619
+ type: 'Vue.error (2)',
66620
+ message: "".concat(info, "\n").concat(err && err.stack ? err.stack : safeStringify(err))
66621
+ });
66622
+ };
66623
+ } catch (e) {/* ignore */}
66624
+ }
66625
+
66626
+ // Vue 3 注册函数(在 main.js 创建 app 后调用)
66627
+ window.registerVue3ErrorHandler = function (app) {
66628
+ if (!app || !app.config) return;
66629
+ app.config.errorHandler = function (err, instance, info) {
66630
+ report({
66631
+ type: 'Vue.error (3)',
66632
+ message: "".concat(info, "\n").concat(err && err.stack ? err.stack : safeStringify(err))
66633
+ });
66634
+ };
66635
+ };
66636
+
66637
+ // 立即创建 panel(或可改为按需)
66638
+ if (document.readyState === 'loading') {
66639
+ document.addEventListener('DOMContentLoaded', createPanel);
66640
+ } else createPanel();
66641
+ }
66642
+ // ========= End Panel =========
66249
66643
  // CONCATENATED MODULE: ./src/main.js
66250
66644
 
66251
66645
 
@@ -66253,6 +66647,7 @@ var package_0 = __webpack_require__("9224");
66253
66647
 
66254
66648
 
66255
66649
 
66650
+
66256
66651
  var components = [com_graphics, com_flcanvas, per_control, pid];
66257
66652
  var main_install = function install(Vue) {
66258
66653
  Vue.prototype.THREE = three_module_namespaceObject;
@@ -66264,6 +66659,7 @@ var main_install = function install(Vue) {
66264
66659
  // 支持浏览器环境直接引入
66265
66660
  if (typeof window !== 'undefined') {
66266
66661
  window.FLVersion = package_0.version;
66662
+ window.FLDevTools = installErrorConsolePanel;
66267
66663
  }
66268
66664
  /* harmony default export */ var main = ({
66269
66665
  install: main_install,