@fmsim/board 1.0.47 → 1.0.48

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fmsim/board",
3
- "version": "1.0.47",
3
+ "version": "1.0.48",
4
4
  "description": "보드 구성을 위한 기본 UI (웹)컴포넌트들을 제공합니다.",
5
5
  "author": "heartyoh",
6
6
  "main": "dist/src/index.js",
@@ -150,5 +150,5 @@
150
150
  "prettier --write"
151
151
  ]
152
152
  },
153
- "gitHead": "cdc5ddb43a6024e2b30066be221910f19a448a5e"
153
+ "gitHead": "bb0ce9bc35636bcbdddf1c13cbcd08f5dd4dd7df"
154
154
  }
@@ -1,2 +0,0 @@
1
- import { Component } from '@hatiolab/things-scene';
2
- export default function tooltipDecorator(component: Component, context: CanvasRenderingContext2D, delta: number): boolean;
@@ -1,41 +0,0 @@
1
- const LINE_HEIGHT = 14;
2
- function measureMultiLineTextSize(context, lines, maxWidth) {
3
- const lineHeight = LINE_HEIGHT;
4
- let totalWidth = 0;
5
- let totalHeight = lines.length * lineHeight;
6
- for (const line of lines) {
7
- const lineMetrics = context.measureText(line);
8
- if (lineMetrics.width > totalWidth) {
9
- totalWidth = lineMetrics.width;
10
- }
11
- }
12
- return { width: totalWidth, height: totalHeight };
13
- }
14
- function drawMultiLineText(context, lines, x, y, maxWidth) {
15
- const lineHeight = LINE_HEIGHT;
16
- for (let i = 0; i < lines.length; i++) {
17
- context.fillText(lines[i], x, y + (i + 1) * lineHeight, maxWidth);
18
- }
19
- }
20
- export default function tooltipDecorator(component, context, delta /* 1 to 0 */) {
21
- const { ID, DESCRIPTION, CARRIERID, LOTID, VEHICLEID } = component.data || {};
22
- const lines = [ID, DESCRIPTION, CARRIERID, LOTID, VEHICLEID].filter(Boolean);
23
- if (lines.length > 0) {
24
- let { left, top } = component.bounds;
25
- let { x, y } = component.transcoordS2C(left, top, component.rootModel);
26
- context.font = '12px Arial';
27
- let metrics = measureMultiLineTextSize(context, lines);
28
- x = Math.max(x + 3, 5);
29
- y = Math.max(y - lines.length * LINE_HEIGHT - 7, 15);
30
- context.beginPath();
31
- context.fillStyle = 'red';
32
- context.roundRect(x - 3, y - 3, metrics.width + 3 * 2, metrics.height + 3 * 2, 3 /* round */);
33
- context.fill();
34
- context.beginPath();
35
- context.fillStyle = 'white';
36
- drawMultiLineText(context, lines, x, y);
37
- return true;
38
- }
39
- return false;
40
- }
41
- //# sourceMappingURL=tooltip-decorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip-decorator.js","sourceRoot":"","sources":["../../../src/layers/tooltip-decorator.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component } from '@hatiolab/things-scene'\n\nconst LINE_HEIGHT = 14\n\nfunction measureMultiLineTextSize(context: CanvasRenderingContext2D, lines: string[], maxWidth?: number) {\n const lineHeight = LINE_HEIGHT\n let totalWidth = 0\n let totalHeight = lines.length * lineHeight\n\n for (const line of lines) {\n const lineMetrics = context.measureText(line)\n if (lineMetrics.width > totalWidth) {\n totalWidth = lineMetrics.width\n }\n }\n\n return { width: totalWidth, height: totalHeight }\n}\n\nfunction drawMultiLineText(\n context: CanvasRenderingContext2D,\n lines: string[],\n x: number,\n y: number,\n maxWidth?: number\n) {\n const lineHeight = LINE_HEIGHT\n\n for (let i = 0; i < lines.length; i++) {\n context.fillText(lines[i], x, y + (i + 1) * lineHeight, maxWidth)\n }\n}\n\nexport default function tooltipDecorator(\n component: Component,\n context: CanvasRenderingContext2D,\n delta: number /* 1 to 0 */\n) {\n const { ID, DESCRIPTION, CARRIERID, LOTID, VEHICLEID } = component.data || {}\n const lines = [ID, DESCRIPTION, CARRIERID, LOTID, VEHICLEID].filter(Boolean)\n\n if (lines.length > 0) {\n let { left, top } = component.bounds\n let { x, y } = component.transcoordS2C(left, top, component.rootModel as any)\n\n context.font = '12px Arial'\n let metrics = measureMultiLineTextSize(context, lines)\n\n x = Math.max(x + 3, 5)\n y = Math.max(y - lines.length * LINE_HEIGHT - 7, 15)\n\n context.beginPath()\n\n context.fillStyle = 'red'\n\n context.roundRect(x - 3, y - 3, metrics.width + 3 * 2, metrics.height + 3 * 2, 3 /* round */)\n\n context.fill()\n\n context.beginPath()\n\n context.fillStyle = 'white'\n drawMultiLineText(context, lines, x, y)\n\n return true\n }\n\n return false\n}\n"]}