bill 1 неделя назад
Родитель
Сommit
c19eb7dd0d
62 измененных файлов с 136 добавлено и 213 удалено
  1. 3 2
      package.json
  2. 2 2
      src/core/components/arrow/arrow.vue
  3. 1 1
      src/core/components/arrow/index.ts
  4. 1 1
      src/core/components/circle/circle.vue
  5. 1 1
      src/core/components/circle/temp-circle.vue
  6. 1 1
      src/core/components/group/group.vue
  7. 1 1
      src/core/components/group/temp-group.vue
  8. 1 1
      src/core/components/icon/icon.vue
  9. 1 1
      src/core/components/image/temp-image.vue
  10. 1 6
      src/core/components/line-icon/icon.vue
  11. 2 2
      src/core/components/line/renderer/wall/index.vue
  12. 1 1
      src/core/components/line/single-line.vue
  13. 1 4
      src/core/components/line/temp-line.vue
  14. 2 2
      src/core/components/line/use-draw.ts
  15. 1 1
      src/core/components/rectangle/temp-rectangle.vue
  16. 0 1
      src/core/components/serial/index.ts
  17. 0 1
      src/core/components/share/edit-line.vue
  18. 0 1
      src/core/components/share/edit-point.vue
  19. 1 1
      src/core/components/share/size-line.vue
  20. 1 1
      src/core/components/share/text-area.vue
  21. 1 1
      src/core/components/share/text.vue
  22. 1 1
      src/core/components/table/table.vue
  23. 0 1
      src/core/components/triangle/triangle.vue
  24. 0 2
      src/core/helper/back-grid.vue
  25. 1 1
      src/core/helper/compass.vue
  26. 2 23
      src/core/helper/snap-lines.vue
  27. 0 1
      src/core/helper/split-line.vue
  28. 1 1
      src/core/hook/use-draw.ts
  29. 1 1
      src/core/hook/use-event.ts
  30. 1 1
      src/core/hook/use-fetch.ts
  31. 1 1
      src/core/hook/use-group.ts
  32. 2 2
      src/core/hook/use-mouse-status.ts
  33. 1 1
      src/core/hook/use-pause.ts
  34. 2 3
      src/core/hook/use-selection.ts
  35. 1 1
      src/core/hook/use-snap.ts
  36. 2 7
      src/core/hook/use-transformer.ts
  37. 2 2
      src/core/hook/use-viewer.ts
  38. 1 1
      src/core/html-mount/propertys/mount.vue
  39. 1 1
      src/core/renderer-three/components/line-icon/index.vue
  40. 1 2
      src/core/renderer/renderer.vue
  41. 0 1
      src/example/components/header/actions.ts
  42. 1 1
      src/example/components/slide/slide.vue
  43. 1 1
      src/example/dialog/basemap/leaflet/index.vue
  44. 1 1
      src/example/dialog/vr/vr.vue
  45. 1 1
      src/example/fuse/enter-case.ts
  46. 1 1
      src/example/fuse/enter-exe.ts
  47. 2 3
      src/example/fuse/views/defStyle.ts
  48. 0 1
      src/example/fuse/views/overview/actions.ts
  49. 0 1
      src/example/fuse/views/overview/header.vue
  50. 1 1
      src/example/fuse/views/overview/index.vue
  51. 7 7
      src/example/fuse/views/tabulation/header.vue
  52. 1 1
      src/example/fuse/views/tabulation/index.vue
  53. 11 17
      src/example/fuse/views/tabulation/overview-viewport.vue
  54. 2 4
      src/example/fuse/views/tabulation/slide.vue
  55. 59 59
      src/example/platform/platform-draw.ts
  56. 2 2
      src/example/platform/resource-swkk.ts
  57. 0 1
      src/utils/align-port.ts
  58. 0 1
      src/utils/colors.ts
  59. 1 1
      src/utils/dom.ts
  60. 0 19
      src/utils/math.ts
  61. 0 2
      src/utils/polygon.ts
  62. 1 1
      tsconfig.app.tsbuildinfo

+ 3 - 2
package.json

@@ -12,7 +12,8 @@
     "dev:hx": "vite --mode=hxdev",
     "build:hx": "vite build --mode=hx",
     "dev:jm": "vite --mode=jmdev",
-    "build:jm": "vite build --mode=jm"
+    "build:jm": "vite build --mode=jm",
+    "ts-check": "vue-tsc -b"
   },
   "dependencies": {
     "@amap/amap-jsapi-loader": "^1.0.1",
@@ -25,6 +26,7 @@
     "clipper-lib": "^6.4.2",
     "dxf-writer": "^1.18.4",
     "element-plus": "^2.8.6",
+    "flatten-svg": "^0.3.0",
     "html2canvas": "^1.4.1",
     "jspdf": "^3.0.1",
     "jszip": "^3.10.1",
@@ -36,7 +38,6 @@
     "pinia": "^2.2.4",
     "sass": "^1.80.4",
     "stateshot": "^1.3.5",
-    "svg-path-commander": "^2.1.11",
     "three": "^0.169.0",
     "uuid": "^11.0.2",
     "vite-plugin-html": "^3.2.2",

+ 2 - 2
src/core/components/arrow/arrow.vue

@@ -32,11 +32,11 @@ import {
 import { TempComponent } from "./";
 import { useComponentStatus } from "@/core/hook/use-component.ts";
 import { Line } from "konva/lib/shapes/Line";
-import { lineLen, Pos, zeroEq } from "@/utils/math.ts";
+import { Pos } from "@/utils/math.ts";
 import { Group } from "konva/lib/Group";
 import { flatPositions } from "@/utils/shared.ts";
 import { themeColor } from "@/constant";
-import { watch, watchEffect } from "vue";
+import { watch } from "vue";
 import { useInstallStrokeWidthDescribe } from "@/core/hook/use-describe.ts";
 
 const props = defineProps<{ data: ArrowData }>();

+ 1 - 1
src/core/components/arrow/index.ts

@@ -1,5 +1,5 @@
 import { Pos } from "@/utils/math.ts";
-import { flatPositions, inRevise, onlyId } from "@/utils/shared.ts";
+import { flatPositions, onlyId } from "@/utils/shared.ts";
 import { ArrowConfig } from "konva/lib/shapes/Arrow";
 import { BaseItem, generateSnapInfos, getBaseItem } from "../util.ts";
 import { getMouseColors } from "@/utils/colors.ts";

+ 1 - 1
src/core/components/circle/circle.vue

@@ -62,7 +62,7 @@ const { shape, tData, data, operateMenus, describes } = useComponentStatus<
         initRadius = { x: repShape.radiusX(), y: repShape.radiusY() };
         return {
           shape: repShape,
-          update(data, shape) {
+          update(data) {
             repShape.radiusX(data.radiusX);
             repShape.radiusY(data.radiusY);
             setShapeTransform(repShape, new Transform(data.mat));

+ 1 - 1
src/core/components/circle/temp-circle.vue

@@ -53,7 +53,7 @@ import { DC } from "@/deconstruction.js";
 import { Circle } from "konva/lib/shapes/Circle";
 import { Transform } from "konva/lib/Util";
 import { useConfig } from "@/core/hook/use-config.ts";
-import { useFixedScale, useViewerInvertTransformConfig } from "@/core/hook/use-viewer.ts";
+import { useFixedScale } from "@/core/hook/use-viewer.ts";
 
 const props = defineProps<{ data: CircleData; addMode?: boolean; editer?: boolean }>();
 const emit = defineEmits<{

+ 1 - 1
src/core/components/group/group.vue

@@ -40,7 +40,7 @@ import { setShapeTransform } from "@/utils/shape.ts";
 import { DrawStoreBusArgs, useStore } from "../../store/index.ts";
 import { Transform } from "konva/lib/Util";
 import { useHistory } from "@/core/hook/use-history.ts";
-import { computed, nextTick, onUnmounted, ref, shallowRef, watchEffect } from "vue";
+import { computed, nextTick, onUnmounted, ref, shallowRef } from "vue";
 import { useOperMode } from "@/core/hook/use-status.ts";
 import { EntityShape } from "@/deconstruction.js";
 import { useForciblyShowItemIds, useStage } from "@/core/hook/use-global-vars.ts";

+ 1 - 1
src/core/components/group/temp-group.vue

@@ -7,7 +7,7 @@
 
 <script lang="ts" setup>
 import { defaultStyle, GroupData } from "./index.ts";
-import { computed, nextTick, onUnmounted, ref, watch } from "vue";
+import { computed, nextTick, ref, watch } from "vue";
 import { DC, EntityShape } from "@/deconstruction.js";
 import { Rect, RectConfig } from "konva/lib/shapes/Rect";
 import { useViewerInvertTransform } from "@/core/hook/use-viewer.ts";

+ 1 - 1
src/core/components/icon/icon.vue

@@ -65,7 +65,7 @@ const { shape, tData, data, operateMenus, describes } = useComponentStatus({
         update();
         return {
           shape: rect,
-          update(data) {
+          update() {
             update();
           },
         };

+ 1 - 1
src/core/components/image/temp-image.vue

@@ -24,7 +24,7 @@
 
 <script lang="ts" setup>
 import { defaultStyle, ImageData } from "./index.ts";
-import { computed, onUnmounted, ref, watch, watchEffect } from "vue";
+import { computed, ref, watch } from "vue";
 import { getImage } from "@/utils/resource.ts";
 import { Transform } from "konva/lib/Util";
 import { Group } from "konva/lib/Group";

+ 1 - 6
src/core/components/line-icon/icon.vue

@@ -47,8 +47,7 @@ import {
   Pos,
   zeroEq,
 } from "@/utils/math.ts";
-import { asyncTimeout, copy } from "@/utils/shared.ts";
-import { useTestPoints } from "@/core/hook/use-debugger.ts";
+import { copy } from "@/utils/shared.ts";
 import { useInstallStrokeWidthDescribe } from "@/core/hook/use-describe.ts";
 
 const props = defineProps<{ data: LineIconData }>();
@@ -69,8 +68,6 @@ const { shape, tData, data, operateMenus, describes } = useComponentStatus({
   transformType: "custom",
   selfData: true,
   customTransform(callback, shape, data) {
-    let prevInvMat: Transform;
-    let posOffset: Pos | null = null;
     return useCustomTransformer(shape, data, {
       getRepShape() {
         const group = new Group();
@@ -80,7 +77,6 @@ const { shape, tData, data, operateMenus, describes } = useComponentStatus({
           const mat = getLineIconMat(getSnapLine(store, data.value)!, data.value);
           const width = Math.abs(data.value.endLen - data.value.startLen);
           const height = data.value.height;
-          prevInvMat = mat;
           rect.width(width);
           rect.height(height);
           rect.offset({ x: width / 2, y: height / 2 });
@@ -126,7 +122,6 @@ const { shape, tData, data, operateMenus, describes } = useComponentStatus({
         return true;
       },
       callback() {
-        posOffset = null;
         callback();
       },
       openSnap: false,

+ 2 - 2
src/core/components/line/renderer/wall/index.vue

@@ -19,7 +19,7 @@
         <SizeLine
           :points="line"
           :fixed="props.line.fixed"
-          v-for="(line, i) in [...gd.steps.value, ...gd.subSteps.value]"
+          v-for="(line) in [...gd.steps.value, ...gd.subSteps.value]"
         />
       </template>
       <SizeLine :points="points" :fixed="props.line.fixed" v-else />
@@ -28,7 +28,7 @@
 </template>
 
 <script lang="ts" setup>
-import { computed, watch, watchEffect } from "vue";
+import { computed } from "vue";
 import { useGetDiffLineIconPolygons, useGetExtendPolygon } from "./view";
 import { LineData, LineDataLine } from "../..";
 import { getLinePoints } from "../../attach-server";

+ 1 - 1
src/core/components/line/single-line.vue

@@ -88,7 +88,7 @@
 <script lang="ts" setup>
 import EditLine from "../share/edit-line.vue";
 import singlePoint from "./single-point.vue";
-import { computed, ref, watchEffect } from "vue";
+import { computed, ref } from "vue";
 import { getMouseStyle, LineData, LineDataLine, renderer } from "./index.ts";
 import { onlyId } from "@/utils/shared.ts";
 import { Pos } from "@/utils/math.ts";

+ 1 - 4
src/core/components/line/temp-line.vue

@@ -87,11 +87,9 @@ const data = computed(() => {
 const getShapeAttrib = renderer.value!.genGetShapeAttrib(data);
 
 const dragPointIds = ref<string[]>();
-let track = false;
 let ctx: NLineDataCtx;
 const updateBeforeHandler = (ids: string[]) => {
   dragPointIds.value = ids;
-  track = true;
   ctx = getInitCtx();
 };
 
@@ -99,7 +97,7 @@ const delPointHandler = (p: LineData["points"][0]) => {
   delPoint(props.data, p.id, ctx);
 };
 
-const addPointHandler = (p: LineData["points"][0], l: LineData["lines"][0]) => {
+const addPointHandler = (p: LineData["points"][0], _l: LineData["lines"][0]) => {
   props.data.points.push(p);
   ctx.add.points[p.id] = p;
 };
@@ -124,7 +122,6 @@ const addLineHandler = (l: LineData["lines"][0]) => {
 const updateHandler = () => {
   normalLineData(props.data, ctx);
   emit("updateShape");
-  track = false;
   dragPointIds.value = undefined;
 };
 

+ 2 - 2
src/core/components/line/use-draw.ts

@@ -5,14 +5,14 @@ import {
   useInteractiveDrawShapeAPI,
   usePointBeforeHandler,
 } from "@/core/hook/use-draw";
-import { components, ComponentSnapInfo, ShapeType, SnapPoint } from "..";
+import { components, ComponentSnapInfo, SnapPoint } from "..";
 import { useHistory, useHistoryAttach } from "@/core/hook/use-history";
 import { useStore } from "@/core/store";
 import { useViewerTransform } from "@/core/hook/use-viewer";
 import { useOperMode } from "@/core/hook/use-status";
 import { installGlobalVar, useCursor } from "@/core/hook/use-global-vars";
 import { useInteractiveDots } from "@/core/hook/use-interactive";
-import { computed, nextTick, reactive, ref, watch, watchEffect } from "vue";
+import { computed, nextTick, reactive, ref, watch } from "vue";
 import { copy, mergeFuns } from "@/utils/shared";
 import { lineVector, Pos } from "@/utils/math";
 import { getSnapInfos, type LineData } from "./";

+ 1 - 1
src/core/components/rectangle/temp-rectangle.vue

@@ -39,7 +39,7 @@ import { Line } from "konva/lib/shapes/Line";
 import { Transform } from "konva/lib/Util";
 import { MathUtils } from "three";
 import { useConfig } from "@/core/hook/use-config.ts";
-import { useFixedScale, useViewerInvertTransformConfig } from "@/core/hook/use-viewer.ts";
+import { useFixedScale } from "@/core/hook/use-viewer.ts";
 
 const props = defineProps<{ data: RectangleData; addMode?: boolean; editer?: boolean }>();
 const emit = defineEmits<{

+ 0 - 1
src/core/components/serial/index.ts

@@ -115,7 +115,6 @@ export const delItemRaw = (
     let i = ndx + 1;
     let s = getPosition(i - 1);
     let r;
-    let oldItem = { ...data[i - 1] };
     for (; i < data.length; i++) {
       r = s;
       s = getPosition(i);

+ 0 - 1
src/core/components/share/edit-line.vue

@@ -42,7 +42,6 @@ import { Circle } from "konva/lib/shapes/Circle";
 import {
   useFixedScale,
   useViewer,
-  useViewerInvertTransformConfig,
 } from "@/core/hook/use-viewer";
 import { useMode } from "@/core/hook/use-status";
 import { Mode } from "@/constant/mode";

+ 0 - 1
src/core/components/share/edit-point.vue

@@ -33,7 +33,6 @@ import { Operate } from "../../html-mount/propertys/index.ts";
 import {
   useFixedScale,
   useViewer,
-  useViewerInvertTransformConfig,
 } from "@/core/hook/use-viewer.ts";
 import { useMode } from "@/core/hook/use-status";
 import { Mode } from "@/constant/mode";

+ 1 - 1
src/core/components/share/size-line.vue

@@ -36,7 +36,7 @@ import {
 import { flatPositions } from "@/utils/shared";
 import { useProportion } from "@/core/hook/use-proportion";
 import { TextPathConfig } from "konva/lib/shapes/TextPath";
-import { useFixedScale, useViewerInvertTransformConfig } from "@/core/hook/use-viewer";
+import { useFixedScale } from "@/core/hook/use-viewer";
 
 const props = withDefaults(
   defineProps<{

+ 1 - 1
src/core/components/share/text-area.vue

@@ -15,7 +15,7 @@
 <script lang="ts" setup>
 import { useStage } from "@/core/hook/use-global-vars";
 import { Text } from "konva/lib/shapes/Text";
-import { ref, watch, watchEffect } from "vue";
+import { ref, watch } from "vue";
 import { DomMountId } from "@/constant/index.ts";
 import { useViewerTransform } from "@/core/hook/use-viewer";
 import { listener } from "@/utils/event";

+ 1 - 1
src/core/components/share/text.vue

@@ -16,7 +16,7 @@ import { DC } from "@/deconstruction";
 import { Text, TextConfig } from "konva/lib/shapes/Text";
 import { computed, ref } from "vue";
 import TextDom from "./text-area.vue";
-import { useCan, useMode } from "@/core/hook/use-status";
+import { useCan,  } from "@/core/hook/use-status";
 
 const props = withDefaults(
   defineProps<{

+ 1 - 1
src/core/components/table/table.vue

@@ -233,7 +233,7 @@ const { shape, tData, data, operateMenus, describes } = useComponentStatus<
       handler(data, mat) {
         matToData(data, mat, initData);
       },
-      callback(data) {
+      callback() {
         callback();
         nextTick(() => shape.value?.getNode().fire("bound-change"));
       },

+ 0 - 1
src/core/components/triangle/triangle.vue

@@ -22,7 +22,6 @@ import { PropertyUpdate, Operate } from "../../html-mount/propertys/index.ts";
 import TempLine from "./temp-triangle.vue";
 import { useComponentStatus } from "@/core/hook/use-component.ts";
 import { useInstallStrokeWidthDescribe } from "@/core/hook/use-describe.ts";
-import { watchEffect } from "vue";
 
 const props = defineProps<{ data: TriangleData }>();
 const emit = defineEmits<{

+ 0 - 2
src/core/helper/back-grid.vue

@@ -101,7 +101,6 @@ const getLines = (min: number, max: number, axis: "x" | "y") => {
   const dividing: number[] = [];
   const children: number[] = [];
   let step = 0;
-  let prevCurrent = 0;
   while (diff > 0 ? current <= end : current >= end) {
     pushPoint(dividing, current, !!((step - 1) % 2));
     pushPoint(dividing, current, !!(step % 2));
@@ -112,7 +111,6 @@ const getLines = (min: number, max: number, axis: "x" | "y") => {
       pushPoint(children, cCurrent, !!((i - 1) % 2));
       pushPoint(children, cCurrent, !!(i % 2));
     }
-    prevCurrent = current;
     current += diff;
     step++;
   }

+ 1 - 1
src/core/helper/compass.vue

@@ -13,7 +13,7 @@
 
 <script lang="ts" setup>
 import TempIcon from "../components/icon/temp-icon.vue";
-import { PropertyUpdate, mergeDescribes } from "../html-mount/propertys/index.ts";
+import { PropertyUpdate } from "../html-mount/propertys/index.ts";
 import { computed, ref, watch } from "vue";
 import { useAnimationMouseStyle } from "../hook/use-mouse-status.ts";
 import { Group } from "konva/lib/Group";

+ 2 - 23
src/core/helper/snap-lines.vue

@@ -17,7 +17,7 @@
 </template>
 
 <script lang="ts" setup>
-import { computed, ComputedRef, ref, watchEffect } from "vue";
+import { computed, ComputedRef, ref } from "vue";
 import { SnapInfo, useGlobalSnapInfos, useSnapResultInfo } from "../hook/use-snap";
 import { useViewerTransform } from "../hook/use-viewer";
 import { RectConfig } from "konva/lib/shapes/Rect";
@@ -26,9 +26,8 @@ import { DC } from "@/deconstruction";
 import { Line } from "konva/lib/shapes/Line";
 import { useDashAnimation } from "../hook/use-animation";
 import { useResize } from "../hook/use-event";
-import { lineLen, Pos, vector, vector2IncludedAngle } from "@/utils/math";
+import { Pos, vector } from "@/utils/math";
 import { flatPositions } from "@/utils/shared";
-import { MathUtils } from "three";
 
 const config: RectConfig = {
   dash: [10, 10],
@@ -45,8 +44,6 @@ const size = useResize();
 
 const viewerTransform = useViewerTransform();
 const info = useSnapResultInfo();
-const minOffset = 10;
-const minAngle = MathUtils.degToRad(5);
 let snapInfos: ComputedRef<SnapInfo[]>;
 let selfPoints: ComputedRef<Pos[]>;
 if (debug) {
@@ -55,24 +52,6 @@ if (debug) {
     info.selfSnaps.map((p) => viewerTransform.value.point(p.point))
   );
 }
-
-const deduplication = (items: Axis[]) => {
-  for (let i = 0; i < items.length; i++) {
-    const direction = items[i].direction;
-    const point = items[i].point;
-
-    for (let j = i + 1; j < items.length; j++) {
-      if (
-        vector2IncludedAngle(items[j].direction, direction) < minAngle &&
-        lineLen(items[j].point, point) < minOffset
-      ) {
-        items.splice(j--, 1);
-      }
-    }
-  }
-  return items;
-};
-
 const axiss = computed((): Axis[] => {
   const axiss = info.attractSnaps.map((snap) => ({
     point: snap.join,

+ 0 - 1
src/core/helper/split-line.vue

@@ -29,7 +29,6 @@ import { computed, onUnmounted } from "vue";
 import { components } from "../components";
 import { useComponentsAttach } from "../hook/use-component";
 import {
-  useFixedScale,
   useGetViewBoxPositionPixel,
   useViewerInvertTransformConfig,
   useViewerTransform,

+ 1 - 1
src/core/hook/use-draw.ts

@@ -1,5 +1,5 @@
 import { computed, h, nextTick, reactive, ref, watch, watchEffect } from "vue";
-import { globalWatch, installGlobalVar, useCursor, useRunHook, useStage } from "./use-global-vars";
+import { installGlobalVar, useCursor, useStage } from "./use-global-vars";
 import { useCan, useMode, useOperMode } from "./use-status";
 import {
   Area,

+ 1 - 1
src/core/hook/use-event.ts

@@ -1,7 +1,7 @@
 import { Size } from "@/utils/math.ts";
 import { listener } from "../../utils/event.ts";
 import { globalWatch, installGlobalVar, useStage } from "./use-global-vars.ts";
-import { nextTick, reactive, ref, watch, watchEffect } from "vue";
+import { nextTick, reactive, ref,  watchEffect } from "vue";
 import { KonvaEventObject } from "konva/lib/Node";
 import { debounce } from "@/utils/shared.ts";
 import { EntityShape } from "@/deconstruction.js";

+ 1 - 1
src/core/hook/use-fetch.ts

@@ -13,7 +13,7 @@ export const useResourceHandler = () => {
       data = new Blob([data], { type });
     }
     if (!(data instanceof File)) {
-      const entrie = Object.entries(mateMap).find(([k, v]) => v === type)
+      const entrie = Object.entries(mateMap).find(([_k, v]) => v === type)
       data = new File([data], onlyId() + (entrie ? `.${entrie![0]}` : ''))
     }
     return await handler(data as File)

+ 1 - 1
src/core/hook/use-group.ts

@@ -1,4 +1,4 @@
-import { computed, reactive, ref, Ref, watchEffect } from "vue";
+import { computed, reactive, Ref,  } from "vue";
 import { PropertyDescribes } from "../html-mount/propertys";
 import { installGlobalVar } from "./use-global-vars";
 import { inRevise, mergeFuns } from "@/utils/shared";

+ 2 - 2
src/core/hook/use-mouse-status.ts

@@ -13,7 +13,7 @@ import { useCan, useOperMode } from "./use-status";
 import { Stage } from "konva/lib/Stage";
 import { listener } from "../../utils/event.ts";
 import { asyncTimeout, inRevise, mergeFuns } from "../../utils/shared.ts";
-import { ComponentValue, DrawItem, ShapeType } from "../components";
+import { DrawItem, ShapeType } from "../components";
 import { shapeTreeContain, shapeTreeContains } from "../../utils/shape.ts";
 import {
   usePointerIsTransformerInner,
@@ -64,7 +64,7 @@ export const getHoverShape = (stage: Stage) => {
     }, 100)
   };
 
-  const leaveHandler = (ev?: KonvaEventObject<any, Stage>) => {
+  const leaveHandler = () => {
     clearInterval(interval)
     if (hover.value) {
       hover.value.off(`pointerleave`, leaveHandler);

+ 1 - 1
src/core/hook/use-pause.ts

@@ -13,7 +13,7 @@ export const usePause = <T extends object>(api?: T): PausePack<T> => {
     get() {
       return isPause.value
     },
-    set(v) {
+    set() {
       return true
     }
   })

+ 2 - 3
src/core/hook/use-selection.ts

@@ -31,7 +31,6 @@ import { Util } from "konva/lib/Util";
 import {
   useFixedScale,
   useViewerInvertTransform,
-  useViewerInvertTransformConfig,
 } from "./use-viewer";
 import {
   debounce,
@@ -352,7 +351,7 @@ export const useSelectionRevise = () => {
   const layer = useFormalLayer();
   watch(
     () => operMode.value.mulSelection,
-    (muls, olv) => {
+    (muls) => {
       if (muls) {
         status.selects = [...status.selects, ...status.actives];
       }
@@ -380,7 +379,7 @@ export const useSelectionRevise = () => {
     const props = {
       data: { ...groupConfig, ids: ids.value },
       key: groupConfig.id,
-      onUpdateShape(data: GroupData) {
+      onUpdateShape() {
         // status.selects;
         // data.ids;
       },

+ 1 - 1
src/core/hook/use-snap.ts

@@ -410,7 +410,7 @@ const scaleSnap = (
   filter: Omit<FilterAttrib, "type">,
   type: ScaleVectorType,
   attitude: SelfAttitude,
-  testPoints: Ref<Pos[]>
+  _testPoints: Ref<Pos[]>
 ) => {
   const { origin, operTarget } = attitude;
   const attractSnaps: AttractSnapInfo[] = [];

+ 2 - 7
src/core/hook/use-transformer.ts

@@ -1,5 +1,5 @@
 import { useMouseShapeStatus } from "./use-mouse-status.ts";
-import { computed, nextTick, Ref, ref, toRaw, watch, watchEffect } from "vue";
+import { computed, nextTick, Ref, ref, toRaw, watch,  } from "vue";
 import { DC, EntityShape } from "../../deconstruction";
 import {
   installGlobalVar,
@@ -62,7 +62,7 @@ export const useTransformer = installGlobalVar(() => {
   }) as TransformerExtends;
   transformer.queueShapes = ref([]);
 
-  transformer.on("transformstart.attachText", (e) => {
+  transformer.on("transformstart.attachText", () => {
     const operateType = transformer.getActiveAnchor() as TransformerVectorType;
     if (operateType !== "rotater") return;
     const $node = transformer.findOne<Rect>(".rotater")!;
@@ -344,7 +344,6 @@ export const useShapeTransformer = <T extends EntityShape>(
   const can = useCan();
 
   const init = ($shape: T) => {
-    let isRun = false;
     let rep: Rep<T>;
     if (replaceShape) {
       rep = replaceShape($shape);
@@ -396,7 +395,6 @@ export const useShapeTransformer = <T extends EntityShape>(
       (translate, oldTranslate) => {
         if (translate) {
           if (!oldTranslate) {
-            isRun = true;
             rep.init && rep.init();
             rep.update && rep.update();
           }
@@ -411,7 +409,6 @@ export const useShapeTransformer = <T extends EntityShape>(
         } else {
           prevMoveTf = null;
           transform.value = void 0;
-          isRun = false;
         }
       },
       { immediate: true }
@@ -441,7 +438,6 @@ export const useShapeTransformer = <T extends EntityShape>(
 
         let isEnter = false;
         const downHandler = () => {
-          isRun = true;
           if (isEnter) {
             mode.pop();
           }
@@ -458,7 +454,6 @@ export const useShapeTransformer = <T extends EntityShape>(
           document.documentElement,
           "pointerup",
           () => {
-            isRun = false;
             if (isEnter) {
               mode.pop();
               transform.value = void 0;

+ 2 - 2
src/core/hook/use-viewer.ts

@@ -1,5 +1,5 @@
 import { Viewer } from "../viewer.ts";
-import { computed, nextTick, Ref, ref, watch, watchEffect } from "vue";
+import { computed, Ref, ref, watch, watchEffect } from "vue";
 import { dragListener, scaleListener } from "../../utils/event.ts";
 import { globalWatch, installGlobalVar, useStage } from "./use-global-vars.ts";
 import { useCan } from "./use-status";
@@ -30,7 +30,7 @@ export const useViewer = installGlobalVar(() => {
         down(_, ev) {
           downEv = ev;
         },
-        move: ({ end, prev, ev }) => {
+        move: ({ end, prev }) => {
           if (downEv.button === 2 || disabled.value) return;
           if (can.viewMode) {
             viewer.movePixel({ x: end.x - prev.x, y: end.y - prev.y });

+ 1 - 1
src/core/html-mount/propertys/mount.vue

@@ -17,7 +17,7 @@
 </template>
 
 <script lang="ts" setup>
-import { computed, watch } from "vue";
+import { computed } from "vue";
 import { useStage } from "../../hook/use-global-vars.ts";
 import { useMode } from "../../hook/use-status.ts";
 import { PropertyDescribes } from "./index.ts";

+ 1 - 1
src/core/renderer-three/components/line-icon/index.vue

@@ -9,7 +9,7 @@ import {
 import { useRender, useStageProps, useTree } from "../../hook/use-stage";
 import { fullMesh, getLevel, getModel, getModelSwitch, SwitchResult } from "../resource";
 import { Group, Matrix4, Mesh, Object3D } from "three";
-import { computed, ref, shallowRef, watch, watchEffect } from "vue";
+import { computed, shallowRef, watch, watchEffect } from "vue";
 import { lineCenter, lineVector, vector2IncludedAngle } from "@/utils/math";
 import { setMat } from "../../util";
 import { useInteraction } from "../../hook/use-event";

+ 1 - 2
src/core/renderer/renderer.vue

@@ -98,7 +98,6 @@ import {
 } from "../hook/use-global-vars.ts";
 import { useMode } from "../hook/use-status.ts";
 import {
-  useViewerInvertTransform,
   useViewerInvertTransformConfig,
   useViewerTransformConfig,
 } from "../hook/use-viewer.ts";
@@ -113,7 +112,7 @@ import {
 } from "../../constant";
 import { useStore } from "../store/index.ts";
 import { Mode } from "@/constant/mode.ts";
-import { computed, getCurrentInstance, onUnmounted, ref, watch } from "vue";
+import { computed, getCurrentInstance, onUnmounted, watch } from "vue";
 import { install } from "../../install-lib.ts";
 import { useConfig } from "../hook/use-config.ts";
 import { getEmptyStoreData } from "../store/store.ts";

+ 0 - 1
src/example/components/header/actions.ts

@@ -4,7 +4,6 @@ import { animation } from "@/core/hook/use-animation";
 import saveAs from "@/utils/file-serve";
 import { ElMessage } from "element-plus";
 import { Mode } from "@/constant/mode";
-import { ShapeType } from "@/index";
 
 export type Action = {
   handler?: (draw: Draw) => void;

+ 1 - 1
src/example/components/slide/slide.vue

@@ -86,7 +86,7 @@ const hover = hoverManage(enterItem);
 // enterItem(props.menus[2]);
 
 const viewMap = reactive(new WeakMap<MenuItem, ShowAttr>());
-watch(active, (a) => {
+watch(active, () => {
   for (const menu of props.menus) {
     const index = menu.value || menu.name;
     if (!menu.children?.length || !active.value || active.value === index) {

+ 1 - 1
src/example/dialog/basemap/leaflet/index.vue

@@ -65,7 +65,7 @@
 </template>
 
 <script lang="ts" setup>
-import { computed, nextTick, ref, shallowRef, watch, watchEffect } from "vue";
+import { computed, ref, shallowRef, watch, watchEffect } from "vue";
 import {
   getCurrentLatlng,
   LatLng,

+ 1 - 1
src/example/dialog/vr/vr.vue

@@ -30,7 +30,7 @@
 import { ElSelect, ElOption, ElMessage } from "element-plus";
 import { computed, ref, watch } from "vue";
 import { asyncTimeout } from "@/utils/shared";
-import { Scene, SceneTypeNames } from "../../platform/platform-resource";
+import { Scene } from "../../platform/platform-resource";
 
 const props = defineProps<{ value?: Scene; label?: string }>();
 const emit = defineEmits<{ (e: "update:value", val: Scene): void }>();

+ 1 - 1
src/example/fuse/enter-case.ts

@@ -1,6 +1,6 @@
 import { ElMessage } from "element-plus";
 import type { Scene } from "../../example/platform/platform-resource";
-import { token, params, overviewId } from "../env";
+import { token, params } from "../env";
 import { genLoading } from "../loadding";
 import * as shadred from "./enter-shared";
 

+ 1 - 1
src/example/fuse/enter-exe.ts

@@ -16,7 +16,7 @@ viewURLS[SCENE_TYPE.mesh] = tempStrFill(viewURLS[SCENE_TYPE.mesh], {
   oss: resourceURLS.oss,
   server: resourceURLS[SCENE_TYPE.mesh],
 });
-load.then((p) => {
+load.then(() => {
   window.platform.preventLogin = true;
 
   window.platform.uploadResourse = genLoading(async (file: File) => {

+ 2 - 3
src/example/fuse/views/defStyle.ts

@@ -27,14 +27,13 @@ import { PaperKey } from "@/example/components/slide/actions";
 import { mergeFuns } from "@/utils/shared";
 import { getPixelReal, getRealPixel } from "./tabulation/gen-tab";
 import { Draw } from "@/example/components/container/use-draw";
-import { ShapeType } from "@/index";
 import { watch } from "vue";
 import { overviewBorderMMToPixel, overviewMMToPixel } from "@/example/constant";
 
 const setDefStyle = <T extends {}>(
   sys: T,
   custom: Partial<T>,
-  itemKey?: string
+  _itemKey?: string
 ) => {
   const backs: (() => void)[] = [];
   for (const key in custom) {
@@ -131,7 +130,7 @@ export const tabCustomStyle = (p: PaperKey, draw: Draw) => {
 const getOverviewRealPixel = (real: number, border = false) =>
   real * (border ? overviewBorderMMToPixel : overviewMMToPixel);
 
-export const overviewCustomStyle = (draw: Draw) => {
+export const overviewCustomStyle = (_draw: Draw) => {
   const realFixedStrokeOptions = [0.13, 0.18, 0.25, 0.35, 0.5, 0.7];
   const defFixelStroke = getOverviewRealPixel(realFixedStrokeOptions[0], true);
   const backs = [

+ 0 - 1
src/example/fuse/views/overview/actions.ts

@@ -3,7 +3,6 @@ import { Mode } from "@/constant/mode";
 import { Draw } from "@/example/components/container/use-draw";
 import { tableCoverHeight, tableCoverWidth } from "@/example/constant";
 import { nextTick } from "vue";
-import { TabCover } from "../../store";
 import { Group } from "konva/lib/Group";
 
 export const setViewToTableCover = async (

+ 0 - 1
src/example/fuse/views/overview/header.vue

@@ -26,7 +26,6 @@ import { getHeaderActions, getImage } from "../../../components/header/actions.t
 import { tabulationData, refreshTabulationData, overviewData } from "../../store.ts";
 import { nextTick, onUnmounted } from "vue";
 import { Mode } from "@/constant/mode.ts";
-import { lineLen } from "@/utils/math.ts";
 import { repTabulationStore } from "../tabulation/gen-tab.ts";
 import { router } from "../../router.ts";
 import { overviewId, params, tabulationId } from "@/example/env.ts";

+ 1 - 1
src/example/fuse/views/overview/index.vue

@@ -35,7 +35,7 @@ import { computed, ref, shallowRef, watch, watchEffect } from "vue";
 import { Draw } from "../../../components/container/use-draw";
 import { Scene, SCENE_TYPE } from "../../../platform/platform-resource";
 import Dialog from "../../../dialog/dialog.vue";
-import { refreshOverviewData, overviewData, sysError } from "../../store";
+import { refreshOverviewData, overviewData } from "../../store";
 import { overviewCustomStyle } from "../defStyle";
 import { showThree } from "@/example/components/slide/actions";
 import { params, preventReload } from "@/example/env";

+ 7 - 7
src/example/fuse/views/tabulation/header.vue

@@ -19,13 +19,12 @@ import { ElButton, ElMessage } from "element-plus";
 import { useDraw } from "../../../components/container/use-draw.ts";
 import Header from "../../../components/header/index.vue";
 import { getHeaderActions } from "../../../components/header/actions.ts";
-import { Transform } from "konva/lib/Util";
 import { selectExposeFormat } from "@/example/dialog/expose/index.ts";
 import { grayscaleImage } from "@/utils/dom.ts";
 import saveAs from "@/utils/file-serve.ts";
 import { jsPDF } from "jspdf";
 import { getImage as getResourceImage } from "@/utils/resource.ts";
-import { nextTick, onUnmounted } from "vue";
+import { onUnmounted } from "vue";
 import { tabulationData } from "../../store.ts";
 import { Mode } from "@/constant/mode.ts";
 import { overviewId, tabulationId } from "@/example/env.ts";
@@ -33,6 +32,7 @@ import { listener } from "@/utils/event.ts";
 import { router } from "../../router.ts";
 import { initViewport, paperConfigs } from "@/example/components/slide/actions.ts";
 import { asyncTimeout } from "@/utils/shared.ts";
+import { Transform } from "konva/lib/Util";
 
 const props = defineProps<{ title: string }>();
 const emit = defineEmits<{ (e: "screenshot", val: boolean): void }>();
@@ -78,11 +78,11 @@ const actions = [
     {
       ...baseActions.initViewport,
       handler: () => {
-        // if (import.meta.env.DEV) {
-        // draw.viewer.setViewMat(new Transform());
-        // } else {
-        initViewport(draw, 0.05);
-        // }
+        if (import.meta.env.DEV) {
+          draw.viewer.setViewMat(new Transform());
+        } else {
+          initViewport(draw, 0.05);
+        }
       },
     },
   ],

+ 1 - 1
src/example/fuse/views/tabulation/index.vue

@@ -450,7 +450,7 @@ watch(compass, (compass, _, onCleanup) => {
   const menusFilter = draw.value.menusFilter;
   const quits = [
     menusFilter.setShapeMenusFilter(compass.id, () => []),
-    mountMenus.setShapeMenusFilter(compass.id, (des) => ({
+    mountMenus.setShapeMenusFilter(compass.id, () => ({
       // ...des,
       rotate: {
         type: "num",

+ 11 - 17
src/example/fuse/views/tabulation/overview-viewport.vue

@@ -98,7 +98,7 @@ watch(
   { immediate: true }
 );
 
-const padding = 1;
+const padding = 30;
 const coverScale = computed(() => {
   if (!props.coverScale && rect.value && props.paperKey) {
     const c = paperConfigs[props.paperKey!].scale * props.data!.config.proportion.scale;
@@ -152,21 +152,14 @@ const calcViewScale = () => {
   scale *= props.pixelRatio || 1;
   return scale;
 };
-const viewScale = ref(calcViewScale());
-watchEffect(() => {
-  const curScale = calcViewScale();
-  viewScale.value = curScale;
-  // if (!curScale || !viewScale.value || curScale > viewScale.value) {
-  //   viewScale.value = curScale;
-  // }
-});
+const viewScale = computed(calcViewScale);
 
 const originSize = computed(
   () =>
     viewScale.value &&
     realRect.value && {
-      width: realRect.value.width + (padding / viewScale.value) * 2,
-      height: realRect.value.height + (padding / viewScale.value) * 2,
+      width: realRect.value.width + padding * 2,
+      height: realRect.value.height + padding * 2,
     }
 );
 
@@ -174,8 +167,8 @@ const canvasSize = computed(
   () =>
     viewScale.value &&
     realRect.value && {
-      width: realRect.value.width * viewScale.value + padding * 2,
-      height: realRect.value.height * viewScale.value + padding * 2,
+      width: realRect.value.width * viewScale.value + padding * viewScale.value * 2,
+      height: realRect.value.height * viewScale.value + padding * viewScale.value * 2,
     }
 );
 
@@ -214,13 +207,14 @@ const updateOrigin = async () => {
   // imageScale
   d.config.size = size;
   d.config.labelLineConfig.type = "auto";
-  d.config.labelLineConfig.fontSize = size.width / 40;
+
+  d.config.labelLineConfig.fontSize = Math.min(padding, 12) * viewScale.value!;
   d.config.labelLineConfig.splitWidth = size.width / 90;
   d.config.labelLineConfig.strokeWidth = size.width / 600;
-  d.config.labelLineConfig.splitOffset = 4 * d.config.labelLineConfig.fontSize;
-  d.config.labelLineConfig.showOffset = 0;
+  d.config.labelLineConfig.splitOffset = 5 * d.config.labelLineConfig.fontSize;
+  d.config.labelLineConfig.showOffset = padding * viewScale.value! - 2;
 
-  d.initViewport(padding);
+  d.initViewport(padding * viewScale.value!);
   const canvas = draw.value!.stage!.container().children[0]
     .children[0] as HTMLCanvasElement;
   emit("changeOrigin", canvas);

+ 2 - 4
src/example/fuse/views/tabulation/slide.vue

@@ -15,14 +15,12 @@ import {
   selectMap,
 } from "../../../components/slide/actions.ts";
 import { useDraw } from "../../../components/container/use-draw.ts";
-import { computed, h, nextTick, reactive, watch } from "vue";
+import { computed, nextTick, reactive, watch } from "vue";
 import { tabulationData } from "../../store";
 import { genTabulationData } from "./gen-tab.ts";
 import { defaultLayer } from "@/constant/index.ts";
 import { copy } from "@/utils/shared.ts";
 import { v4 as uuid } from "uuid";
-import SlideIcons from "@/example/components/slide/slide-icons.vue";
-import { iconGroups } from "@/example/constant.ts";
 import { Size } from "@/utils/math.ts";
 import { loading } from "@/example/loadding.ts";
 import { TileGroup } from "@/example/dialog/basemap/index.ts";
@@ -80,7 +78,7 @@ const menus = reactive([
   table,
 ]);
 
-const setPaperAfterHandler = async (paperKey: PaperKey, oldPaperKey?: PaperKey) => {
+const setPaperAfterHandler = async (paperKey: PaperKey, _oldPaperKey?: PaperKey) => {
   let isUpdate = false;
   // if (oldPaperKey) {
   //   try {

+ 59 - 59
src/example/platform/platform-draw.ts

@@ -112,65 +112,65 @@ const getCoverShapes = (cover: SceneResource["cover"]) => {
   return { geo, thumb };
 };
 
-const getTaggingBorderShapes = async (taggings: SceneResource["taggings"]) => {
-  const icons: IconData[] = [];
-  const images: ImageData[] = [];
-  const texts: TextData[] = [];
-  const now = Date.now();
-  const reqs: Promise<any>[] = [];
-
-  for (let ndx = 0; ndx < taggings.length; ndx++) {
-    const item = taggings[ndx];
-    const mat = new Transform(item.mat);
-
-    if (!item.mat && item.position) {
-      mat.translate(item.position.x, item.position.y);
-      item.rotate && mat.rotate(item.rotate);
-    }
-
-    if (item.isText) {
-      texts.push({
-        ...getBaseItem(),
-        ...textDefaultStyle,
-        key: item.key,
-        content: item.url,
-        zIndex: 1,
-        mat: mat.m,
-        createTime: now + taggings.length + ndx,
-      });
-      continue;
-    }
-    const shape = {
-      ...getBaseItem(),
-      ...(item.size || { width: 100, height: 100 }),
-      name: item.name,
-      key: item.key,
-      createTime: now + ndx,
-      url: item.url,
-      mat: mat.m,
-      zIndex: 1,
-    };
-
-    if (!item.url.includes(".svg")) {
-      images.push(shape);
-      continue;
-    }
-
-    reqs.push(
-      getIconStyle(item.url, shape.width, shape.height, item.fixed)
-        .then((style) => {
-          icons.push({ ...shape, ...style });
-        })
-        .catch(() => {})
-    );
-  }
-  await Promise.all(reqs);
-  return {
-    texts,
-    images,
-    icons,
-  };
-};
+// const getTaggingBorderShapes = async (taggings: SceneResource["taggings"]) => {
+//   const icons: IconData[] = [];
+//   const images: ImageData[] = [];
+//   const texts: TextData[] = [];
+//   const now = Date.now();
+//   const reqs: Promise<any>[] = [];
+
+//   for (let ndx = 0; ndx < taggings.length; ndx++) {
+//     const item = taggings[ndx];
+//     const mat = new Transform(item.mat);
+
+//     if (!item.mat && item.position) {
+//       mat.translate(item.position.x, item.position.y);
+//       item.rotate && mat.rotate(item.rotate);
+//     }
+
+//     if (item.isText) {
+//       texts.push({
+//         ...getBaseItem(),
+//         ...textDefaultStyle,
+//         key: item.key,
+//         content: item.url,
+//         zIndex: 1,
+//         mat: mat.m,
+//         createTime: now + taggings.length + ndx,
+//       });
+//       continue;
+//     }
+//     const shape = {
+//       ...getBaseItem(),
+//       ...(item.size || { width: 100, height: 100 }),
+//       name: item.name,
+//       key: item.key,
+//       createTime: now + ndx,
+//       url: item.url,
+//       mat: mat.m,
+//       zIndex: 1,
+//     };
+
+//     if (!item.url.includes(".svg")) {
+//       images.push(shape);
+//       continue;
+//     }
+
+//     reqs.push(
+//       getIconStyle(item.url, shape.width, shape.height, item.fixed)
+//         .then((style) => {
+//           icons.push({ ...shape, ...style });
+//         })
+//         .catch(() => {})
+//     );
+//   }
+//   await Promise.all(reqs);
+//   return {
+//     texts,
+//     images,
+//     icons,
+//   };
+// };
 
 const getTaggingShapes = async (taggings: SceneResource["taggings"]) => {
   const icons: IconData[] = [];

+ 2 - 2
src/example/platform/resource-swkk.ts

@@ -369,7 +369,7 @@ export const getBillTaggingInfos = async (
       bill.icon.indexOf("style-") === 0
         ? styleMap
           ? Promise.resolve(`./icons/${styleMap}.svg`)
-          : getSceneApi("./", `./styles/${bill.icon}.svg`).catch((e) => {
+          : getSceneApi("./", `./styles/${bill.icon}.svg`).catch(() => {
               return getSceneApi(
                 "ossRoot",
                 `/sdk/images/billboard/${bill.icon}.png`
@@ -481,7 +481,7 @@ export const getAIBorderTaggingInfos = async (
   scene: Scene,
   subgroup: any,
   bound: Record<string, number>,
-  scale: number
+  _: number
 ) => {
   const taggingInfos = await getAITaggingInfos(scene, subgroup, bound, false);
   return taggingInfos.map((item) => {

+ 0 - 1
src/utils/align-port.ts

@@ -1,5 +1,4 @@
 import { Transform } from "konva/lib/Util";
-import { Pos } from "./math.ts";
 import { IRect } from "konva/lib/types";
 
 /**

+ 0 - 1
src/utils/colors.ts

@@ -1,4 +1,3 @@
-import { themeColor } from "@/constant";
 import { Color, HSL } from "three";
 
 const offset = {

+ 1 - 1
src/utils/dom.ts

@@ -53,7 +53,7 @@ export const focusToMouse = (
 
 const $fileInput = document.createElement("input");
 $fileInput.type = "file";
-$fileInput.style = `
+$fileInput.style.cssText = `
   position: absolute;
   display: none;
 `;

+ 0 - 19
src/utils/math.ts

@@ -703,25 +703,6 @@ export const getLEJLineAngle = (originLine: Pos[], targetLine: Pos[]) => {
   };
 };
 
-const getLinePolygonOverdo = (polygon: Pos[], slideLine: Pos[]) => {
-  const sideJoins = polygonLineIntersect(polygon, slideLine);
-
-  // 完全穿插而过
-  if (sideJoins.length > 1) {
-    return -1;
-    // 完全包含在多边形内
-  } else if (
-    sideJoins.length === 0 &&
-    slideLine.some((p) => isPolygonPointInner(polygon, p))
-  ) {
-    return -1;
-  } else if (sideJoins.length === 1) {
-    return sideJoins[0];
-  } else {
-    return 1;
-  }
-};
-
 /**
  * 获取两变短延伸后的平湖处理
  * @param origin

+ 0 - 2
src/utils/polygon.ts

@@ -16,7 +16,6 @@ export function extractConnectedSegments(
   }
 
   // 2. 边访问记录
-  const visitedEdges = new Set<string>();
   const edgeKey = (a: number, b: number) => (a < b ? `${a},${b}` : `${b},${a}`);
 
   // 3. 结果收集
@@ -139,7 +138,6 @@ export function extractConnectedNoDirectionSegments(
   }
 
   // 2. 边访问记录(确保 (a,b) 和 (b,a) 被视为同一条边)
-  const visitedEdges = new Set<string>();
   const edgeKey = (a: number, b: number) => (a < b ? `${a},${b}` : `${b},${a}`);
 
   // 3. 结果收集

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
tsconfig.app.tsbuildinfo