@antv/layout 0.3.21 → 0.3.22-beta.1

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.
@@ -2,8 +2,8 @@
2
2
  * @fileOverview fruchterman layout
3
3
  * @author shiwu.wyy@antfin.com
4
4
  */
5
- import { OutNode, Edge, PointTuple, IndexMap, GForceLayoutOptions, NodeMap, CentripetalOptions } from "../types";
6
- import { Base } from "../base";
5
+ import { OutNode, Edge, PointTuple, IndexMap, GForceLayoutOptions, NodeMap, CentripetalOptions } from '../types';
6
+ import { Base } from '../base';
7
7
  type INode = OutNode & {
8
8
  size: number | PointTuple;
9
9
  };
@@ -20,7 +20,7 @@ export declare class Force2Layout extends Base {
20
20
  /** 弹簧引力系数 */
21
21
  edgeStrength: number | ((d?: any) => number) | undefined;
22
22
  /** 斥力系数 */
23
- nodeStrength: number | ((d?: any) => number) | undefined;
23
+ nodeStrength: number | ((d?: any, edges?: any[]) => number) | undefined;
24
24
  /** 库伦系数 */
25
25
  coulombDisScale: number;
26
26
  /** 阻尼系数 */
@@ -38,7 +38,7 @@ export declare class Force2Layout extends Base {
38
38
  /** 每个节点中心力的 x、y、强度的回调函数,若不指定,则没有额外中心力 */
39
39
  getCenter: ((d?: any, degree?: number) => number[]) | undefined;
40
40
  /** 计算画布上下两侧对节点吸引力大小 */
41
- defSideCoe?: (node: Node) => number;
41
+ defSideCoe?: (node: Node, edges: Edge[]) => number;
42
42
  /** 理想边长 */
43
43
  linkDistance: number | ((edge?: any, source?: any, target?: any) => number) | undefined;
44
44
  /** 理想边长,兼容 graphin-force */
@@ -109,6 +109,7 @@ export declare class Force2Layout extends Base {
109
109
  calRepulsive(accArray: number[]): void;
110
110
  calAttractive(accArray: number[]): void;
111
111
  calGravity(accArray: number[]): void;
112
+ attractToSide(accArray: number[]): void;
112
113
  updateVelocity(accArray: number[], velArray: number[], stepInterval: number): void;
113
114
  updatePosition(velArray: number[], stepInterval: number): void;
114
115
  stop(): void;
@@ -2,9 +2,9 @@
2
2
  * @fileOverview fruchterman layout
3
3
  * @author shiwu.wyy@antfin.com
4
4
  */
5
- import { Base } from "../base";
6
- import { isNumber, isFunction, isArray, getDegreeMap, isObject, getEdgeTerminal, getAvgNodePosition, getCoreNodeAndRelativeLeafNodes } from "../../util";
7
- import { forceNBody } from "./ForceNBody";
5
+ import { Base } from '../base';
6
+ import { isNumber, isFunction, isArray, getDegreeMap, isObject, getEdgeTerminal, getAvgNodePosition, getCoreNodeAndRelativeLeafNodes, } from '../../util';
7
+ import { forceNBody } from './ForceNBody';
8
8
  const proccessToFunc = (value, defaultV) => {
9
9
  let func;
10
10
  if (!value) {
@@ -85,8 +85,10 @@ export class Force2Layout extends Base {
85
85
  this.updateCfg(options);
86
86
  }
87
87
  getCentripetalOptions() {
88
- const { leafCluster, clustering, nodeClusterBy, nodes, nodeMap, clusterNodeStrength: propsClusterNodeStrength } = this;
89
- const getClusterNodeStrength = (node) => typeof propsClusterNodeStrength === 'function' ? propsClusterNodeStrength(node) : propsClusterNodeStrength;
88
+ const { leafCluster, clustering, nodeClusterBy, nodes, nodeMap, clusterNodeStrength: propsClusterNodeStrength, } = this;
89
+ const getClusterNodeStrength = (node) => typeof propsClusterNodeStrength === 'function'
90
+ ? propsClusterNodeStrength(node)
91
+ : propsClusterNodeStrength;
90
92
  let centripetalOptions = {};
91
93
  let sameTypeLeafMap;
92
94
  // 如果传入了需要叶子节点聚类
@@ -99,7 +101,8 @@ export class Force2Layout extends Base {
99
101
  // 找出与它关联的边的起点或终点出发的所有一度节点中同类型的叶子节点
100
102
  const { relativeLeafNodes, sameTypeLeafNodes } = sameTypeLeafMap[node.id] || {};
101
103
  // 如果都是同一类型或者每种类型只有1个,则施加默认向心力
102
- if ((sameTypeLeafNodes === null || sameTypeLeafNodes === void 0 ? void 0 : sameTypeLeafNodes.length) === (relativeLeafNodes === null || relativeLeafNodes === void 0 ? void 0 : relativeLeafNodes.length) || (relativeNodesType === null || relativeNodesType === void 0 ? void 0 : relativeNodesType.length) === 1) {
104
+ if ((sameTypeLeafNodes === null || sameTypeLeafNodes === void 0 ? void 0 : sameTypeLeafNodes.length) === (relativeLeafNodes === null || relativeLeafNodes === void 0 ? void 0 : relativeLeafNodes.length) ||
105
+ (relativeNodesType === null || relativeNodesType === void 0 ? void 0 : relativeNodesType.length) === 1) {
103
106
  return 1;
104
107
  }
105
108
  return getClusterNodeStrength(node);
@@ -148,7 +151,9 @@ export class Force2Layout extends Base {
148
151
  }))).filter((item) => item !== undefined);
149
152
  const centerNodeInfo = {};
150
153
  clusters.forEach((cluster) => {
151
- const sameTypeNodes = nodes.filter((item) => item[nodeClusterBy] === cluster).map((node) => nodeMap[node.id]);
154
+ const sameTypeNodes = nodes
155
+ .filter((item) => item[nodeClusterBy] === cluster)
156
+ .map((node) => nodeMap[node.id]);
152
157
  // 找出同类型节点平均位置节点的距离最近的节点作为中心节点
153
158
  centerNodeInfo[cluster] = getAvgNodePosition(sameTypeNodes);
154
159
  });
@@ -191,6 +196,7 @@ export class Force2Layout extends Base {
191
196
  * 执行布局
192
197
  */
193
198
  execute() {
199
+ console.log('here111');
194
200
  const self = this;
195
201
  self.stop();
196
202
  const { nodes, edges, defSpringLen } = self;
@@ -199,10 +205,10 @@ export class Force2Layout extends Base {
199
205
  self.onLayoutEnd([]);
200
206
  return;
201
207
  }
202
- if (!self.width && typeof window !== "undefined") {
208
+ if (!self.width && typeof window !== 'undefined') {
203
209
  self.width = window.innerWidth;
204
210
  }
205
- if (!self.height && typeof window !== "undefined") {
211
+ if (!self.height && typeof window !== 'undefined') {
206
212
  self.height = window.innerHeight;
207
213
  }
208
214
  if (!self.center) {
@@ -225,7 +231,7 @@ export class Force2Layout extends Base {
225
231
  if (isNumber(d.mass))
226
232
  massWeight = d.mass;
227
233
  const degree = self.degreesMap[d.id].all;
228
- return (!degree || degree < 5) ? massWeight : degree * 5 * massWeight;
234
+ return !degree || degree < 5 ? massWeight : degree * 5 * massWeight;
229
235
  };
230
236
  }
231
237
  // node size function
@@ -286,8 +292,8 @@ export class Force2Layout extends Base {
286
292
  sDegree: degree.out,
287
293
  force: {
288
294
  mass: self.getMass(node),
289
- nodeStrength: self.nodeStrength(node)
290
- }
295
+ nodeStrength: self.nodeStrength(node, edges),
296
+ },
291
297
  } }) });
292
298
  nodeIdxMap[node.id] = i;
293
299
  });
@@ -303,7 +309,10 @@ export class Force2Layout extends Base {
303
309
  else {
304
310
  self.edgeInfos.push({
305
311
  edgeStrength: self.edgeStrength(edge),
306
- linkDistance: defSpringLen ? defSpringLen(Object.assign(Object.assign({}, edge), { source: sourceNode, target: targetNode }), sourceNode, targetNode) : self.linkDistance(edge, sourceNode, targetNode) || 1 + ((nodeSize(sourceNode) + nodeSize(sourceNode)) || 0) / 2
312
+ linkDistance: defSpringLen
313
+ ? defSpringLen(Object.assign(Object.assign({}, edge), { source: sourceNode, target: targetNode }), sourceNode, targetNode)
314
+ : self.linkDistance(edge, sourceNode, targetNode) ||
315
+ 1 + (nodeSize(sourceNode) + nodeSize(sourceNode) || 0) / 2,
307
316
  });
308
317
  }
309
318
  });
@@ -313,7 +322,7 @@ export class Force2Layout extends Base {
313
322
  }
314
323
  run() {
315
324
  const self = this;
316
- const { maxIteration, nodes, workerEnabled, minMovement, animate, nodeMap } = self;
325
+ const { maxIteration, nodes, workerEnabled, minMovement, animate, nodeMap, } = self;
317
326
  if (!nodes)
318
327
  return;
319
328
  const velArray = [];
@@ -332,7 +341,7 @@ export class Force2Layout extends Base {
332
341
  self.onLayoutEnd(Object.values(nodeMap));
333
342
  }
334
343
  else {
335
- if (typeof window === "undefined")
344
+ if (typeof window === 'undefined')
336
345
  return;
337
346
  let iter = 0;
338
347
  // interval for render the result after each iteration
@@ -359,6 +368,7 @@ export class Force2Layout extends Base {
359
368
  if (edges)
360
369
  self.calAttractive(accArray);
361
370
  self.calGravity(accArray);
371
+ self.attractToSide(accArray);
362
372
  const stepInterval = self.interval; // Math.max(0.02, self.interval - iter * 0.002);
363
373
  self.updateVelocity(accArray, velArray, stepInterval);
364
374
  self.updatePosition(velArray, stepInterval);
@@ -434,7 +444,7 @@ export class Force2Layout extends Base {
434
444
  calGravity(accArray) {
435
445
  var _a;
436
446
  const self = this;
437
- const { nodes, edges = [], nodeMap, width, height, center, gravity: defaultGravity, degreesMap, centripetalOptions } = self;
447
+ const { nodes, edges = [], nodeMap, width, height, center, gravity: defaultGravity, degreesMap, centripetalOptions, } = self;
438
448
  if (!nodes)
439
449
  return;
440
450
  const nodeLength = nodes.length;
@@ -458,12 +468,16 @@ export class Force2Layout extends Base {
458
468
  vecY = node.y - center[1];
459
469
  }
460
470
  if (gravity) {
461
- accArray[idx] -= gravity * vecX / mass;
462
- accArray[idx + 1] -= gravity * vecY / mass;
471
+ accArray[idx] -= (gravity * vecX) / mass;
472
+ accArray[idx + 1] -= (gravity * vecY) / mass;
463
473
  }
464
474
  if (centripetalOptions) {
465
- const { leaf, single, others, center: centriCenter } = centripetalOptions;
466
- const { x: centriX, y: centriY, centerStrength } = (centriCenter === null || centriCenter === void 0 ? void 0 : centriCenter(node, nodes, edges, width, height)) || { x: 0, y: 0, centerStrength: 0 };
475
+ const { leaf, single, others, center: centriCenter, } = centripetalOptions;
476
+ const { x: centriX, y: centriY, centerStrength, } = (centriCenter === null || centriCenter === void 0 ? void 0 : centriCenter(node, nodes, edges, width, height)) || {
477
+ x: 0,
478
+ y: 0,
479
+ centerStrength: 0,
480
+ };
467
481
  if (!isNumber(centriX) || !isNumber(centriY))
468
482
  continue;
469
483
  const vx = (node.x - centriX) / mass;
@@ -500,17 +514,27 @@ export class Force2Layout extends Base {
500
514
  }
501
515
  }
502
516
  // TODO: 待 graphin 修改正确
503
- // public attractToSide(accArray: number[]) {
504
- // const { defSideCoe, height, nodes } = this;
505
- // if (!defSideCoe || typeof defSideCoe !== 'function' || !nodes?.length) return;
506
- // nodes.forEach((node, i) => {
507
- // const sideCoe = defSideCoe!(node);
508
- // if (sideCoe === 0) return;
509
- // const targetY = sideCoe > 0 ? 0 : height;
510
- // const strength = Math.abs(sideCoe);
511
- // accArray[2 * i + 1] -= strength * (targetY - node.y);
512
- // });
513
- // };
517
+ attractToSide(accArray) {
518
+ const { defSideCoe, height, nodes, edges } = this;
519
+ if (!defSideCoe || typeof defSideCoe !== 'function' || !(nodes === null || nodes === void 0 ? void 0 : nodes.length))
520
+ return;
521
+ const relatedEdges = {};
522
+ edges.forEach((edge) => {
523
+ const { source, target } = edge;
524
+ relatedEdges[source.id] = relatedEdges[source.id] || [];
525
+ relatedEdges[source.id].push(edge);
526
+ relatedEdges[target.id] = relatedEdges[target.id] || [];
527
+ relatedEdges[target.id].push(edge);
528
+ });
529
+ nodes.forEach((node, i) => {
530
+ const sideCoe = defSideCoe(node, relatedEdges[node.id] || []);
531
+ if (sideCoe === 0)
532
+ return;
533
+ const targetY = sideCoe > 0 ? 0 : height;
534
+ const strength = Math.abs(sideCoe);
535
+ accArray[2 * i + 1] -= strength * (targetY - node.y);
536
+ });
537
+ }
514
538
  updateVelocity(accArray, velArray, stepInterval) {
515
539
  const self = this;
516
540
  const { nodes, damping, maxSpeed } = self;
@@ -518,7 +542,8 @@ export class Force2Layout extends Base {
518
542
  return;
519
543
  nodes.forEach((_, i) => {
520
544
  let vx = (velArray[2 * i] + accArray[2 * i] * stepInterval) * damping || 0.01;
521
- let vy = (velArray[2 * i + 1] + accArray[2 * i + 1] * stepInterval) * damping || 0.01;
545
+ let vy = (velArray[2 * i + 1] + accArray[2 * i + 1] * stepInterval) * damping ||
546
+ 0.01;
522
547
  const vLength = Math.sqrt(vx * vx + vy * vy);
523
548
  if (vLength > maxSpeed) {
524
549
  const param2 = maxSpeed / vLength;
@@ -575,7 +600,7 @@ export class Force2Layout extends Base {
575
600
  self.judgingDistance = sum / nodes.length;
576
601
  }
577
602
  stop() {
578
- if (this.timeInterval && typeof window !== "undefined") {
603
+ if (this.timeInterval && typeof window !== 'undefined') {
579
604
  window.clearInterval(this.timeInterval);
580
605
  }
581
606
  }
@@ -588,7 +613,7 @@ export class Force2Layout extends Base {
588
613
  self.destroyed = true;
589
614
  }
590
615
  getType() {
591
- return "force2";
616
+ return 'force2';
592
617
  }
593
618
  getSameTypeLeafMap() {
594
619
  const { nodeClusterBy, nodes, edges, nodeMap, degreesMap } = this;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/force2/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/force2/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EACL,QAAQ,EACR,UAAU,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM1C,MAAM,cAAc,GAAG,CACrB,KAAoC,EACpC,QAAiB,EACK,EAAE;IACxB,IAAI,IAAI,CAAC;IACT,IAAI,CAAC,KAAK,EAAE;QACV,IAAI,GAAG,CAAC,CAAM,EAAU,EAAE;YACxB,OAAO,QAAQ,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC;KACH;SAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC1B,IAAI,GAAG,CAAC,CAAM,EAAU,EAAE;YACxB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;KACH;SAAM;QACL,IAAI,GAAG,KAAK,CAAC;KACd;IACD,OAAO,IAAW,CAAC;AACrB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,IAAI;IAkIpC,YAAY,OAA6B;QACvC,KAAK,EAAE,CAAC;QA/HV,iBAAiB;QACV,iBAAY,GAAW,IAAI,CAAC;QAEnC,kBAAkB;QACX,kBAAa,GAAY,KAAK,CAAC;QAEtC,aAAa;QACN,iBAAY,GAA+C,GAAG,CAAC;QAEtE,WAAW;QACJ,iBAAY,GAGH,IAAI,CAAC;QAErB,WAAW;QACJ,oBAAe,GAAW,KAAK,CAAC;QAEvC,WAAW;QACJ,YAAO,GAAW,GAAG,CAAC;QAE7B,WAAW;QACJ,aAAQ,GAAW,GAAG,CAAC;QAE9B,2BAA2B;QACpB,gBAAW,GAAW,GAAG,CAAC;QAEjC,YAAY;QACL,aAAQ,GAAW,IAAI,CAAC;QAE/B,cAAc;QACP,WAAM,GAAW,CAAC,CAAC;QAW1B,WAAW;QACJ,iBAAY,GAGH,GAAG,CAAC;QAQpB,WAAW;QACJ,YAAO,GAAW,CAAC,CAAC;QAc3B,gBAAgB;QACT,wBAAmB,GAAsC,EAAE,CAAC;QAEnE,aAAa;QACN,mBAAc,GAAY,IAAI,CAAC;QAQtC,0FAA0F;QACnF,0BAAqB,GAA2B,MAAM,CAAC;QAE9D,kBAAkB;QACX,SAAI,GAAwB,GAAG,EAAE,GAAE,CAAC,CAAC;QAKrC,UAAK,GAAmB,EAAE,CAAC;QAE3B,UAAK,GAAkB,EAAE,CAAC;QAE1B,UAAK,GAAW,GAAG,CAAC;QAEpB,WAAM,GAAW,GAAG,CAAC;QAErB,YAAO,GAAY,EAAE,CAAC;QAEtB,eAAU,GAAa,EAAE,CAAC;QA4B/B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,cAAc;QACd,IAAI,CAAC,kBAAkB,GAAG;YACxB,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,2BAA2B;YAC3B,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE;gBACjB,OAAO;oBACL,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;oBACjB,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;iBACnB,CAAC;YACJ,CAAC;SACF,CAAC;QACF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAEM,qBAAqB;QAC1B,MAAM,EACJ,WAAW,EACX,UAAU,EACV,aAAa,EACb,KAAK,EACL,OAAO,EACP,mBAAmB,EAAE,wBAAwB,GAC9C,GAAG,IAAI,CAAC;QAET,MAAM,sBAAsB,GAAG,CAAC,IAAU,EAAE,EAAE,CAC5C,OAAO,wBAAwB,KAAK,UAAU;YAC5C,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,wBAAwB,CAAC;QAE/B,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,eAAoB,CAAC;QACzB,gBAAgB;QAChB,IAAI,WAAW,EAAE;YACf,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;YAClD,MAAM,iBAAiB,GACrB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvE,kBAAkB,GAAG;gBACnB,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC3B,mCAAmC;oBACnC,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAC5C,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;oBACjC,8BAA8B;oBAC9B,IACE,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,OAAK,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,CAAA;wBACvD,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,MAAK,CAAC,EAC/B;wBACA,OAAO,CAAC,CAAC;qBACV;oBACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;gBACD,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;oBAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,EAAE,CAAC;oBAC3C,gBAAgB;oBAChB,IAAI,CAAC,MAAM,EAAE;wBACX,OAAO;4BACL,CAAC,EAAE,GAAG;4BACN,CAAC,EAAE,GAAG;yBACP,CAAC;qBACH;oBACD,IAAI,UAAU,CAAC;oBACf,IAAI,MAAM,KAAK,CAAC,EAAE;wBAChB,UAAU;wBACV,gCAAgC;wBAChC,MAAM,EAAE,iBAAiB,GAAG,EAAE,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;wBAClE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;4BAClC,iCAAiC;4BACjC,UAAU,GAAG,SAAS,CAAC;yBACxB;6BAAM,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;4BACvC,8BAA8B;4BAC9B,UAAU,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;yBACpD;qBACF;yBAAM;wBACL,UAAU,GAAG,SAAS,CAAC;qBACxB;oBACD,OAAO;wBACL,CAAC,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,CAAW;wBAC1B,CAAC,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,CAAW;qBAC3B,CAAC;gBACJ,CAAC;aACF,CAAC;SACH;QAED,cAAc;QACd,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,eAAe;gBAAE,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClE,MAAM,QAAQ,GAAa,KAAK,CAAC,IAAI,CACnC,IAAI,GAAG,CACL,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACpB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7B,CAAC,CAAC,CACH,CACF,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACvC,MAAM,cAAc,GAAgD,EAAE,CAAC;YACvE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,MAAM,aAAa,GAAG,KAAK;qBACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC;qBACjD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnC,8BAA8B;gBAC9B,cAAc,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YACH,kBAAkB,GAAG;gBACnB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC9C,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBAC9C,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC7B,8BAA8B;oBAC9B,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;oBACvD,OAAO;wBACL,CAAC,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,CAAW;wBAC1B,CAAC,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,CAAW;qBAC3B,CAAC;gBACJ,CAAC;aACF,CAAC;SACH;QAED,IAAI,CAAC,kBAAkB,mCAClB,IAAI,CAAC,kBAAkB,GACvB,kBAAkB,CACtB,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACzD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,UAAU;YACpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;QAC5C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;QAChD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;IAClD,CAAC;IAEM,SAAS,CAAC,GAAQ;QACvB,IAAI,GAAG;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAEM,aAAa;QAClB,OAAO;YACL,YAAY,EAAE,GAAG;YACjB,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAE5C,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACrB,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAChD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;SAChC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;SAClC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACjD;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,mBAAM,KAAK,CAAC,CAAC,CAAC,EAAG,CAAC,CAAC;YACpC,OAAO;SACR;QACD,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;gBACnB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;oBAAE,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;gBACzC,OAAO,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC;YACtE,CAAC,CAAC;SACH;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,YAAY,CAAC;QACjB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,IAAI,eAAoC,CAAC;YACzC,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACzB,eAAe,GAAG,GAAG,EAAE,CAAC,WAAqB,CAAC;aAC/C;iBAAM,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;gBAClC,eAAe,GAAG,WAAkC,CAAC;aACtD;iBAAM;gBACL,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;aAC3B;YACD,IAAI,CAAC,QAAQ,EAAE;gBACb,YAAY,GAAG,CAAC,CAAQ,EAAE,EAAE;oBAC1B,IAAI,CAAC,CAAC,IAAI,EAAE;wBACV,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;4BACnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;yBAC5D;wBACD,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;4BACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;yBACnE;wBACD,OAAQ,CAAC,CAAC,IAAe,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;qBAChD;oBACD,OAAO,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC,CAAC;aACH;iBAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC5B,YAAY,GAAG,CAAC,CAAQ,EAAE,EAAE;oBAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACjE,CAAC,CAAC;aACH;iBAAM;gBACL,YAAY,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAE,QAAmB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;aACxE;SACF;QACD,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;QAE7B,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAY,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,mCACX,IAAI,KACP,IAAI,kCACC,IAAI,CAAC,IAAI,KACZ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAC/B,MAAM,EAAE;wBACN,QAAQ,EAAE,MAAM,CAAC,EAAE;wBACnB,SAAS,EAAE,MAAM,CAAC,GAAG;wBACrB,MAAM,EAAE,MAAM,CAAC,GAAG;wBAClB,OAAO,EAAE,MAAM,CAAC,EAAE;wBAClB,OAAO,EAAE,MAAM,CAAC,GAAG;wBACnB,KAAK,EAAE;4BACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;4BACxB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;yBAC7C;qBACF,MAEJ,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE;gBAC9B,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oBACrC,YAAY,EAAE,YAAY;wBACxB,CAAC,CAAC,YAAY,iCAEL,IAAI,KACP,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,KAEpB,UAAU,EACV,UAAU,CACX;wBACH,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC;4BAC/C,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;iBAC/D,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAEM,GAAG;QACR,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,EACJ,YAAY,EACZ,KAAK,EACL,aAAa,EACb,WAAW,EACX,OAAO,EACP,OAAO,GACR,GAAG,IAAI,CAAC;QAET,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,YAAY,CAAC;QAC7B,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC;QACzB,IAAI,aAAa,IAAI,OAAO,EAAE;YAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,IAAI,CAAC,eAAe,GAAG,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,EAC5D,CAAC,EAAE,EACH;gBACA,QAAQ,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC9B;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;SAC1C;aAAM;YACL,IAAI,OAAO,MAAM,KAAK,WAAW;gBAAE,OAAO;YAC1C,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,sDAAsD;YACtD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;gBAC1C,IAAI,CAAC,KAAK;oBAAE,OAAO;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAChC,IAAI,EAAE,CAAC;gBACP,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,eAAe,GAAG,WAAW,EAAE;oBACzD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACzC;YACH,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;IACH,CAAC;IAEO,UAAU,CAAC,IAAY,EAAE,QAAkB;;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAChD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA;YAAE,OAAO;QAC3B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,KAAK;YAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,gDAAgD;QACpF,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5C,MAAA,IAAI,CAAC,IAAI,oDAAI,CAAC;QAEd,sBAAsB;QACtB,IAAI,OAAO,EAAE;YACX,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC7C,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;SACrD;IACH,CAAC;IAEO,cAAc,CAAC,QAAkB;QACvC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA;YAAE,OAAO,CAAC,CAAC;QAC7B,IAAI,MAAM,GAAG,GAAG,CAAC;QAEjB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACjC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACxD,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,iBAAiB;QAClD,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,eAAe;IACR,YAAY,CAAC,QAAkB;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAoB,CAAC;QAC3C,UAAU,CACR,KAAK,EACL,OAAO,EACP,MAAM,EACN,eAAe,GAAG,eAAe,EACjC,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,YAAY;IACL,aAAa,CAAC,QAAkB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAoB,CAAC;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU;gBAAE,OAAO;YACvC,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;gBAClB,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;gBAC5B,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;aAC7B;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;YAC/B,aAAa;YACb,MAAM,EAAE,YAAY,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,YAAY,GAAG,SAAS,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,GAAG,YAAY,CAAC;YAClC,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YAC1D,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YAC1D,oBAAoB;YACpB,MAAM,eAAe,GAAG,CAAC,GAAG,UAAU,CAAC;YACvC,MAAM,eAAe,GAAG,CAAC,GAAG,UAAU,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;YAC3B,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACzC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,eAAe,CAAC;YAC9C,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,eAAe,CAAC;YAClD,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,eAAe,CAAC;YAC9C,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,eAAe,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACb,UAAU,CAAC,QAAkB;;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,EACJ,KAAK,EACL,KAAK,GAAG,EAAE,EACV,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EAAE,cAAc,EACvB,UAAU,EACV,kBAAkB,GACnB,GAAG,IAAI,CAAC;QACT,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,OAAO,GAAG,cAAc,CAAC;YAE7B,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,SAAS,qDAAG,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,WAAW,EAAE;gBACf,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC;gBACjD,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxB,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;gBACxB,OAAO,GAAG,QAAQ,CAAC;aACpB;iBAAM;gBACL,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aAC3B;YAED,IAAI,OAAO,EAAE;gBACX,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;gBACzC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;aAC9C;YAED,IAAI,kBAAkB,EAAE;gBACtB,MAAM,EACJ,IAAI,EACJ,MAAM,EACN,MAAM,EACN,MAAM,EAAE,YAAY,GACrB,GAAG,kBAAkB,CAAC;gBACvB,MAAM,EACJ,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,cAAc,GACf,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAI;oBACvD,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;oBACJ,cAAc,EAAE,CAAC;iBAClB,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,SAAS;gBACvD,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;gBACrC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;gBACrC,IAAI,cAAc,EAAE;oBAClB,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,GAAG,EAAE,CAAC;oBACrC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,cAAc,GAAG,EAAE,CAAC;iBAC1C;gBAED,KAAK;gBACL,IAAI,MAAM,KAAK,CAAC,EAAE;oBAChB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,cAAc;wBAAE,SAAS;oBAC9B,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,GAAG,EAAE,CAAC;oBACrC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,cAAc,GAAG,EAAE,CAAC;oBACzC,SAAS;iBACV;gBAED,qBAAqB;gBACrB,IAAI,QAAQ,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;oBACrC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC9C,IAAI,CAAC,YAAY;wBAAE,SAAS;oBAC5B,QAAQ,CAAC,GAAG,CAAC,IAAI,YAAY,GAAG,EAAE,CAAC;oBACnC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,YAAY,GAAG,EAAE,CAAC;oBACvC,SAAS;iBACV;gBAED,aAAa;gBACb,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,cAAc;oBAAE,SAAS;gBAC9B,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,GAAG,EAAE,CAAC;gBACrC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,cAAc,GAAG,EAAE,CAAC;aAC1C;SACF;IACH,CAAC;IAED,uBAAuB;IAChB,aAAa,CAAC,QAAkB;QACrC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAClD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,UAAU,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA;YACnE,OAAO;QACT,MAAM,YAAY,GAAiC,EAAE,CAAC;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAChC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACxD,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACxD,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,UAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,IAAI,OAAO,KAAK,CAAC;gBAAE,OAAO;YAC1B,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,cAAc,CACnB,QAAkB,EAClB,QAAkB,EAClB,YAAoB;QAEpB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA;YAAE,OAAO;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,IAAI,EAAE,GACJ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC;YACvE,IAAI,EAAE,GACJ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,OAAO;gBACpE,IAAI,CAAC;YACP,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7C,IAAI,OAAO,GAAG,QAAQ,EAAE;gBACtB,MAAM,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;gBAClC,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC;gBACjB,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC;aAClB;YACD,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,cAAc,CAAC,QAAkB,EAAE,YAAoB;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvD,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA,EAAE;YAClB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACzB,OAAO;SACR;QACD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,qBAAqB,KAAK,KAAK;YAAE,IAAI,CAAC,eAAe,GAAG,CAAC,QAAQ,CAAC;aACjE,IAAI,qBAAqB,KAAK,KAAK;YAAE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAE1E,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,CAAC,EAAE,EAAE;YAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAC1C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACtB,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACtB,OAAO;aACR;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;YACjD,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;YAChB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;YAChB,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACtB,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAEtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;YACnE,QAAQ,qBAAqB,EAAE;gBAC7B,KAAK,KAAK;oBACR,IAAI,IAAI,CAAC,eAAe,GAAG,iBAAiB;wBAC1C,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC;oBAC3C,MAAM;gBACR,KAAK,KAAK;oBACR,IAAI,IAAI,CAAC,eAAe,GAAG,iBAAiB;wBAC1C,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC;oBAC3C,MAAM;gBACR;oBACE,GAAG,GAAG,GAAG,GAAG,iBAAiB,CAAC;oBAC9B,MAAM;aACT;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,KAAK,MAAM;YAC5D,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9C,CAAC;IAEM,IAAI;QACT,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACtD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACzC;IACH,CAAC;IAEM,OAAO;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEM,OAAO;QACZ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,kBAAkB;QACxB,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAClE,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA;YAAE,OAAO;QAC3B,2BAA2B;QAC3B,MAAM,eAAe,GAA8B,EAAE,CAAC;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;YACvC,IAAI,MAAM,KAAK,CAAC,EAAE;gBAChB,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,+BAA+B,CACxD,MAAM,EACN,IAAI,EACJ,KAAK,EACL,aAAa,EACb,UAAU,EACV,OAAO,CACR,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IACzB,CAAC;CACF"}
@@ -2,8 +2,8 @@
2
2
  * @fileOverview fruchterman layout
3
3
  * @author shiwu.wyy@antfin.com
4
4
  */
5
- import { OutNode, Edge, PointTuple, IndexMap, GForceLayoutOptions, NodeMap, CentripetalOptions } from "../types";
6
- import { Base } from "../base";
5
+ import { OutNode, Edge, PointTuple, IndexMap, GForceLayoutOptions, NodeMap, CentripetalOptions } from '../types';
6
+ import { Base } from '../base';
7
7
  type INode = OutNode & {
8
8
  size: number | PointTuple;
9
9
  };
@@ -20,7 +20,7 @@ export declare class Force2Layout extends Base {
20
20
  /** 弹簧引力系数 */
21
21
  edgeStrength: number | ((d?: any) => number) | undefined;
22
22
  /** 斥力系数 */
23
- nodeStrength: number | ((d?: any) => number) | undefined;
23
+ nodeStrength: number | ((d?: any, edges?: any[]) => number) | undefined;
24
24
  /** 库伦系数 */
25
25
  coulombDisScale: number;
26
26
  /** 阻尼系数 */
@@ -38,7 +38,7 @@ export declare class Force2Layout extends Base {
38
38
  /** 每个节点中心力的 x、y、强度的回调函数,若不指定,则没有额外中心力 */
39
39
  getCenter: ((d?: any, degree?: number) => number[]) | undefined;
40
40
  /** 计算画布上下两侧对节点吸引力大小 */
41
- defSideCoe?: (node: Node) => number;
41
+ defSideCoe?: (node: Node, edges: Edge[]) => number;
42
42
  /** 理想边长 */
43
43
  linkDistance: number | ((edge?: any, source?: any, target?: any) => number) | undefined;
44
44
  /** 理想边长,兼容 graphin-force */
@@ -109,6 +109,7 @@ export declare class Force2Layout extends Base {
109
109
  calRepulsive(accArray: number[]): void;
110
110
  calAttractive(accArray: number[]): void;
111
111
  calGravity(accArray: number[]): void;
112
+ attractToSide(accArray: number[]): void;
112
113
  updateVelocity(accArray: number[], velArray: number[], stepInterval: number): void;
113
114
  updatePosition(velArray: number[], stepInterval: number): void;
114
115
  stop(): void;
@@ -118,7 +118,9 @@ var Force2Layout = /** @class */ (function (_super) {
118
118
  Force2Layout.prototype.getCentripetalOptions = function () {
119
119
  var _a = this, leafCluster = _a.leafCluster, clustering = _a.clustering, nodeClusterBy = _a.nodeClusterBy, nodes = _a.nodes, nodeMap = _a.nodeMap, propsClusterNodeStrength = _a.clusterNodeStrength;
120
120
  var getClusterNodeStrength = function (node) {
121
- return typeof propsClusterNodeStrength === 'function' ? propsClusterNodeStrength(node) : propsClusterNodeStrength;
121
+ return typeof propsClusterNodeStrength === 'function'
122
+ ? propsClusterNodeStrength(node)
123
+ : propsClusterNodeStrength;
122
124
  };
123
125
  var centripetalOptions = {};
124
126
  var sameTypeLeafMap;
@@ -132,7 +134,8 @@ var Force2Layout = /** @class */ (function (_super) {
132
134
  // 找出与它关联的边的起点或终点出发的所有一度节点中同类型的叶子节点
133
135
  var _a = sameTypeLeafMap[node.id] || {}, relativeLeafNodes = _a.relativeLeafNodes, sameTypeLeafNodes = _a.sameTypeLeafNodes;
134
136
  // 如果都是同一类型或者每种类型只有1个,则施加默认向心力
135
- if ((sameTypeLeafNodes === null || sameTypeLeafNodes === void 0 ? void 0 : sameTypeLeafNodes.length) === (relativeLeafNodes === null || relativeLeafNodes === void 0 ? void 0 : relativeLeafNodes.length) || (relativeNodesType_1 === null || relativeNodesType_1 === void 0 ? void 0 : relativeNodesType_1.length) === 1) {
137
+ if ((sameTypeLeafNodes === null || sameTypeLeafNodes === void 0 ? void 0 : sameTypeLeafNodes.length) === (relativeLeafNodes === null || relativeLeafNodes === void 0 ? void 0 : relativeLeafNodes.length) ||
138
+ (relativeNodesType_1 === null || relativeNodesType_1 === void 0 ? void 0 : relativeNodesType_1.length) === 1) {
136
139
  return 1;
137
140
  }
138
141
  return getClusterNodeStrength(node);
@@ -181,7 +184,9 @@ var Force2Layout = /** @class */ (function (_super) {
181
184
  }))).filter(function (item) { return item !== undefined; });
182
185
  var centerNodeInfo_1 = {};
183
186
  clusters.forEach(function (cluster) {
184
- var sameTypeNodes = nodes.filter(function (item) { return item[nodeClusterBy] === cluster; }).map(function (node) { return nodeMap[node.id]; });
187
+ var sameTypeNodes = nodes
188
+ .filter(function (item) { return item[nodeClusterBy] === cluster; })
189
+ .map(function (node) { return nodeMap[node.id]; });
185
190
  // 找出同类型节点平均位置节点的距离最近的节点作为中心节点
186
191
  centerNodeInfo_1[cluster] = (0, util_1.getAvgNodePosition)(sameTypeNodes);
187
192
  });
@@ -224,6 +229,7 @@ var Force2Layout = /** @class */ (function (_super) {
224
229
  * 执行布局
225
230
  */
226
231
  Force2Layout.prototype.execute = function () {
232
+ console.log('here111');
227
233
  var self = this;
228
234
  self.stop();
229
235
  var nodes = self.nodes, edges = self.edges, defSpringLen = self.defSpringLen;
@@ -232,10 +238,10 @@ var Force2Layout = /** @class */ (function (_super) {
232
238
  self.onLayoutEnd([]);
233
239
  return;
234
240
  }
235
- if (!self.width && typeof window !== "undefined") {
241
+ if (!self.width && typeof window !== 'undefined') {
236
242
  self.width = window.innerWidth;
237
243
  }
238
- if (!self.height && typeof window !== "undefined") {
244
+ if (!self.height && typeof window !== 'undefined') {
239
245
  self.height = window.innerHeight;
240
246
  }
241
247
  if (!self.center) {
@@ -258,7 +264,7 @@ var Force2Layout = /** @class */ (function (_super) {
258
264
  if ((0, util_1.isNumber)(d.mass))
259
265
  massWeight = d.mass;
260
266
  var degree = self.degreesMap[d.id].all;
261
- return (!degree || degree < 5) ? massWeight : degree * 5 * massWeight;
267
+ return !degree || degree < 5 ? massWeight : degree * 5 * massWeight;
262
268
  };
263
269
  }
264
270
  // node size function
@@ -319,8 +325,8 @@ var Force2Layout = /** @class */ (function (_super) {
319
325
  sDegree: degree.out,
320
326
  force: {
321
327
  mass: self.getMass(node),
322
- nodeStrength: self.nodeStrength(node)
323
- }
328
+ nodeStrength: self.nodeStrength(node, edges),
329
+ },
324
330
  } }) });
325
331
  nodeIdxMap[node.id] = i;
326
332
  });
@@ -336,7 +342,10 @@ var Force2Layout = /** @class */ (function (_super) {
336
342
  else {
337
343
  self.edgeInfos.push({
338
344
  edgeStrength: self.edgeStrength(edge),
339
- linkDistance: defSpringLen ? defSpringLen(__assign(__assign({}, edge), { source: sourceNode, target: targetNode }), sourceNode, targetNode) : self.linkDistance(edge, sourceNode, targetNode) || 1 + ((nodeSize(sourceNode) + nodeSize(sourceNode)) || 0) / 2
345
+ linkDistance: defSpringLen
346
+ ? defSpringLen(__assign(__assign({}, edge), { source: sourceNode, target: targetNode }), sourceNode, targetNode)
347
+ : self.linkDistance(edge, sourceNode, targetNode) ||
348
+ 1 + (nodeSize(sourceNode) + nodeSize(sourceNode) || 0) / 2,
340
349
  });
341
350
  }
342
351
  });
@@ -365,7 +374,7 @@ var Force2Layout = /** @class */ (function (_super) {
365
374
  self.onLayoutEnd(Object.values(nodeMap));
366
375
  }
367
376
  else {
368
- if (typeof window === "undefined")
377
+ if (typeof window === 'undefined')
369
378
  return;
370
379
  var iter_1 = 0;
371
380
  // interval for render the result after each iteration
@@ -392,6 +401,7 @@ var Force2Layout = /** @class */ (function (_super) {
392
401
  if (edges)
393
402
  self.calAttractive(accArray);
394
403
  self.calGravity(accArray);
404
+ self.attractToSide(accArray);
395
405
  var stepInterval = self.interval; // Math.max(0.02, self.interval - iter * 0.002);
396
406
  self.updateVelocity(accArray, velArray, stepInterval);
397
407
  self.updatePosition(velArray, stepInterval);
@@ -491,12 +501,16 @@ var Force2Layout = /** @class */ (function (_super) {
491
501
  vecY = node.y - center[1];
492
502
  }
493
503
  if (gravity) {
494
- accArray[idx] -= gravity * vecX / mass;
495
- accArray[idx + 1] -= gravity * vecY / mass;
504
+ accArray[idx] -= (gravity * vecX) / mass;
505
+ accArray[idx + 1] -= (gravity * vecY) / mass;
496
506
  }
497
507
  if (centripetalOptions) {
498
508
  var leaf = centripetalOptions.leaf, single = centripetalOptions.single, others = centripetalOptions.others, centriCenter = centripetalOptions.center;
499
- var _e = (centriCenter === null || centriCenter === void 0 ? void 0 : centriCenter(node, nodes, edges, width, height)) || { x: 0, y: 0, centerStrength: 0 }, centriX = _e.x, centriY = _e.y, centerStrength = _e.centerStrength;
509
+ var _e = (centriCenter === null || centriCenter === void 0 ? void 0 : centriCenter(node, nodes, edges, width, height)) || {
510
+ x: 0,
511
+ y: 0,
512
+ centerStrength: 0,
513
+ }, centriX = _e.x, centriY = _e.y, centerStrength = _e.centerStrength;
500
514
  if (!(0, util_1.isNumber)(centriX) || !(0, util_1.isNumber)(centriY))
501
515
  continue;
502
516
  var vx = (node.x - centriX) / mass;
@@ -533,17 +547,27 @@ var Force2Layout = /** @class */ (function (_super) {
533
547
  }
534
548
  };
535
549
  // TODO: 待 graphin 修改正确
536
- // public attractToSide(accArray: number[]) {
537
- // const { defSideCoe, height, nodes } = this;
538
- // if (!defSideCoe || typeof defSideCoe !== 'function' || !nodes?.length) return;
539
- // nodes.forEach((node, i) => {
540
- // const sideCoe = defSideCoe!(node);
541
- // if (sideCoe === 0) return;
542
- // const targetY = sideCoe > 0 ? 0 : height;
543
- // const strength = Math.abs(sideCoe);
544
- // accArray[2 * i + 1] -= strength * (targetY - node.y);
545
- // });
546
- // };
550
+ Force2Layout.prototype.attractToSide = function (accArray) {
551
+ var _a = this, defSideCoe = _a.defSideCoe, height = _a.height, nodes = _a.nodes, edges = _a.edges;
552
+ if (!defSideCoe || typeof defSideCoe !== 'function' || !(nodes === null || nodes === void 0 ? void 0 : nodes.length))
553
+ return;
554
+ var relatedEdges = {};
555
+ edges.forEach(function (edge) {
556
+ var source = edge.source, target = edge.target;
557
+ relatedEdges[source.id] = relatedEdges[source.id] || [];
558
+ relatedEdges[source.id].push(edge);
559
+ relatedEdges[target.id] = relatedEdges[target.id] || [];
560
+ relatedEdges[target.id].push(edge);
561
+ });
562
+ nodes.forEach(function (node, i) {
563
+ var sideCoe = defSideCoe(node, relatedEdges[node.id] || []);
564
+ if (sideCoe === 0)
565
+ return;
566
+ var targetY = sideCoe > 0 ? 0 : height;
567
+ var strength = Math.abs(sideCoe);
568
+ accArray[2 * i + 1] -= strength * (targetY - node.y);
569
+ });
570
+ };
547
571
  Force2Layout.prototype.updateVelocity = function (accArray, velArray, stepInterval) {
548
572
  var self = this;
549
573
  var nodes = self.nodes, damping = self.damping, maxSpeed = self.maxSpeed;
@@ -551,7 +575,8 @@ var Force2Layout = /** @class */ (function (_super) {
551
575
  return;
552
576
  nodes.forEach(function (_, i) {
553
577
  var vx = (velArray[2 * i] + accArray[2 * i] * stepInterval) * damping || 0.01;
554
- var vy = (velArray[2 * i + 1] + accArray[2 * i + 1] * stepInterval) * damping || 0.01;
578
+ var vy = (velArray[2 * i + 1] + accArray[2 * i + 1] * stepInterval) * damping ||
579
+ 0.01;
555
580
  var vLength = Math.sqrt(vx * vx + vy * vy);
556
581
  if (vLength > maxSpeed) {
557
582
  var param2 = maxSpeed / vLength;
@@ -608,7 +633,7 @@ var Force2Layout = /** @class */ (function (_super) {
608
633
  self.judgingDistance = sum / nodes.length;
609
634
  };
610
635
  Force2Layout.prototype.stop = function () {
611
- if (this.timeInterval && typeof window !== "undefined") {
636
+ if (this.timeInterval && typeof window !== 'undefined') {
612
637
  window.clearInterval(this.timeInterval);
613
638
  }
614
639
  };
@@ -621,7 +646,7 @@ var Force2Layout = /** @class */ (function (_super) {
621
646
  self.destroyed = true;
622
647
  };
623
648
  Force2Layout.prototype.getType = function () {
624
- return "force2";
649
+ return 'force2';
625
650
  };
626
651
  Force2Layout.prototype.getSameTypeLeafMap = function () {
627
652
  var _a = this, nodeClusterBy = _a.nodeClusterBy, nodes = _a.nodes, edges = _a.edges, nodeMap = _a.nodeMap, degreesMap = _a.degreesMap;