@operato/scene-gauge 10.0.0-beta.2 → 10.0.0-beta.30

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/README.md CHANGED
@@ -1,15 +1,35 @@
1
- # things-scene-gauge
1
+ # @operato/scene-gauge
2
2
 
3
- ## build
3
+ > Things Scene Gauge Component
4
4
 
5
- `$ yarn build`
5
+ <!-- AUTOGEN_BEGIN: do not edit between markers (run scripts/regenerate-readmes.mjs to update) -->
6
6
 
7
- | type | filename | for | tested |
8
- | ---- | ------------------------ | -------------- | ------ |
9
- | UMD | things-scene-gauge.js | modern browser | O |
10
- | UMD | things-scene-gauge-ie.js | ie 11 | O |
11
- | ESM | things-scene-gauge.mjs | modern browser | O |
7
+ ## Components
12
8
 
13
- ## publish
9
+ - `GaugeCircle`
10
+ - `GaugeVertical`
11
+ - `GaugeHorizon`
14
12
 
15
- `$ yarn publish`
13
+ ## Install
14
+
15
+ ```bash
16
+ yarn add @operato/scene-gauge
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ ```ts
22
+ import { GaugeCircle, GaugeVertical, GaugeHorizon } from '@operato/scene-gauge'
23
+ ```
24
+
25
+ ## Build
26
+
27
+ ```bash
28
+ yarn build
29
+ ```
30
+
31
+ Output: ESM module at `dist/index.js` (single bundle, no UMD/IE legacy).
32
+
33
+ _Version: 10.0.0-beta.14_
34
+
35
+ <!-- AUTOGEN_END -->
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { registerRealObjectFactory, RealObjectPlane2D } from '@hatiolab/things-scene';
2
+ const plane2D = (component) => new RealObjectPlane2D(component);
3
+ registerRealObjectFactory('gauge-circle', plane2D);
4
+ registerRealObjectFactory('gauge-horizon', plane2D);
5
+ registerRealObjectFactory('gauge-vertical', plane2D);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAErF,MAAM,OAAO,GAAG,CAAC,SAAc,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAA;AACpE,yBAAyB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;AAClD,yBAAyB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;AACnD,yBAAyB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA","sourcesContent":["import { registerRealObjectFactory, RealObjectPlane2D } from '@hatiolab/things-scene'\n\nconst plane2D = (component: any) => new RealObjectPlane2D(component)\nregisterRealObjectFactory('gauge-circle', plane2D)\nregisterRealObjectFactory('gauge-horizon', plane2D)\nregisterRealObjectFactory('gauge-vertical', plane2D)\n"]}
@@ -1,4 +1,4 @@
1
- import { Component, ComponentNature, Donut } from '@hatiolab/things-scene';
1
+ import { ComponentNature, Donut } from '@hatiolab/things-scene';
2
2
  declare const GaugeCircle_base: (new (...args: any[]) => {
3
3
  _lastValue: number;
4
4
  _anim_alpha: number;
@@ -40,7 +40,7 @@ declare const GaugeCircle_base: (new (...args: any[]) => {
40
40
  get disposed(): boolean;
41
41
  isLayer(): boolean;
42
42
  isGroup(): boolean;
43
- isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component.js").Container;
43
+ isContainer(): this is import("@hatiolab/things-scene").Container;
44
44
  isLine(): boolean;
45
45
  isRoot(): boolean;
46
46
  isRootModel(): boolean;
@@ -56,9 +56,9 @@ declare const GaugeCircle_base: (new (...args: any[]) => {
56
56
  get(property: any): any;
57
57
  set(props: any, propval?: any): any;
58
58
  getState(property: any): any;
59
- setState(props: any, propval?: any): any;
59
+ setState(props: Partial<import("@hatiolab/things-scene").State> | string, propval?: any): any;
60
60
  get model(): any;
61
- get state(): any;
61
+ get state(): import("@hatiolab/things-scene").State;
62
62
  get hierarchy(): any;
63
63
  get volatile(): never[];
64
64
  _applyProps(target: any, props: any, options: any): any;
@@ -100,7 +100,7 @@ declare const GaugeCircle_base: (new (...args: any[]) => {
100
100
  prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
101
101
  render(context: import("@hatiolab/things-scene").SceneRenderContext): void;
102
102
  postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
103
- prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
103
+ prepare(resolve: (component: import("@hatiolab/things-scene").Component) => void, reject: (reason: any) => void): void;
104
104
  prepareIf(condition: boolean): void;
105
105
  drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
106
106
  drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
@@ -149,16 +149,16 @@ declare const GaugeCircle_base: (new (...args: any[]) => {
149
149
  get started(): boolean;
150
150
  set started(v: boolean): any;
151
151
  get controls(): import("@hatiolab/things-scene").Control[] | undefined;
152
- findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
153
- findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
154
- capture(x: number, y: number, except?: (c: Component) => boolean): any;
152
+ findFirst(finder: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): import("@hatiolab/things-scene").Component | undefined;
153
+ findAll(s: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): any[] | undefined;
154
+ capture(x: number, y: number, except?: (c: import("@hatiolab/things-scene").Component) => boolean): any;
155
155
  findAnchor(name: string): any;
156
- isDescendible(container: Component): boolean;
156
+ isDescendible(container: import("@hatiolab/things-scene").Component): boolean;
157
157
  getContext(component?: unknown): any;
158
- get root(): Component;
159
- get rootModel(): Component;
160
- get parent(): Component;
161
- set parent(v: Component): any;
158
+ get root(): import("@hatiolab/things-scene").Component;
159
+ get rootModel(): import("@hatiolab/things-scene").Component;
160
+ get parent(): import("@hatiolab/things-scene").Component;
161
+ set parent(v: import("@hatiolab/things-scene").Component): any;
162
162
  get anchors(): import("@hatiolab/things-scene").Anchor[];
163
163
  get scalable(): boolean;
164
164
  get stuck(): boolean;
@@ -184,20 +184,20 @@ declare const GaugeCircle_base: (new (...args: any[]) => {
184
184
  ondropfile(transfered: FileList, files: string[]): void;
185
185
  transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
186
186
  transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
187
- transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
188
- transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
189
- transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
190
- transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
191
- transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
192
- transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
193
- transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
187
+ transcoordS2T(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
188
+ transcoordT2P(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
189
+ transcoordT2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
190
+ transcoordS2TR(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
191
+ transcoordS2O(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
192
+ transcoordC2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
193
+ transcoordS2C(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
194
194
  toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
195
195
  fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
196
- toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
197
- fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
198
- toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
199
- toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
200
- toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
196
+ toScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
197
+ fromScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
198
+ toLocal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
199
+ toGlobal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
200
+ toOther(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
201
201
  on(name: string | object, callback: Function, context?: any): any;
202
202
  off(name?: string | object, callback?: Function, context?: any): any;
203
203
  once(name: string | object, callback: Function, context?: any): any;
@@ -206,24 +206,24 @@ declare const GaugeCircle_base: (new (...args: any[]) => {
206
206
  delegate_off(delegator: any): any;
207
207
  calculateBounds?(): void;
208
208
  oncreate_element?(element: HTMLElement): void;
209
- removeComponent(component: Component, ghost?: boolean): void;
210
- addComponent(component: Component, ghost?: boolean): void;
211
- insertComponentAt(component: Component, index: number, ghost?: boolean): void;
212
- getOverlay(component: Component): HTMLElement | undefined;
213
- findById(id: string): Component | undefined;
214
- findByRefid(ref: string | number): Component | undefined;
215
- findAllById(id: string): Component[];
209
+ removeComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
210
+ addComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
211
+ insertComponentAt(component: import("@hatiolab/things-scene").Component, index: number, ghost?: boolean): void;
212
+ getOverlay(component: import("@hatiolab/things-scene").Component): HTMLElement | undefined;
213
+ findById(id: string): import("@hatiolab/things-scene").Component | undefined;
214
+ findByRefid(ref: string | number): import("@hatiolab/things-scene").Component | undefined;
215
+ findAllById(id: string): import("@hatiolab/things-scene").Component[];
216
216
  resize(): void;
217
217
  fit(type?: string): void;
218
- get components(): Component[] | undefined;
218
+ get components(): import("@hatiolab/things-scene").Component[] | undefined;
219
219
  get layout(): any;
220
220
  get auxOverlay(): HTMLElement | undefined;
221
221
  get isReady(): boolean;
222
222
  get unitScale(): number;
223
- get selected(): Component[];
224
- set selected(_v: Component[]): any;
225
- get focused(): Component | null;
226
- set focused(_v: Component | null): any;
223
+ get selected(): import("@hatiolab/things-scene").Component[];
224
+ set selected(_v: import("@hatiolab/things-scene").Component[]): any;
225
+ get focused(): import("@hatiolab/things-scene").Component | null;
226
+ set focused(_v: import("@hatiolab/things-scene").Component | null): any;
227
227
  get hasSameParentForAllSelected(): boolean;
228
228
  set hasSameParentForAllSelected(_v: boolean): any;
229
229
  get fitMode(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"gauge-circle.js","sourceRoot":"","sources":["../src/gauge-circle.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ComponentNature, Donut, sceneComponent, ValueHolder } from '@hatiolab/things-scene'\n\nimport { PROPERTIES } from './gauge-properties.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n ...PROPERTIES,\n {\n type: 'number',\n label: 'start-angle',\n name: 'startAngle',\n property: 'startAngle'\n },\n {\n type: 'number',\n label: 'end-angle',\n name: 'endAngle',\n property: 'endAngle'\n },\n {\n type: 'color',\n label: 'text-fill-style',\n name: 'textFillStyle',\n property: 'textFillStyle'\n },\n {\n type: 'color',\n label: 'needle-fill-style',\n name: 'needleFillStyle',\n property: 'needleFillStyle'\n },\n {\n type: 'color',\n label: 'inner-circle-fill-style',\n name: 'innerCircleFillStyle',\n property: 'innerCircleFillStyle'\n },\n {\n type: 'checkbox',\n label: 'in-text',\n name: 'inText',\n property: 'inText'\n }\n ],\n help: 'scene/component/gauge-circle'\n}\n\nfunction countSignificantFigures(number: number) {\n const numStr = number.toString()\n const parts = numStr.split('.')\n\n // 소수점 이하 부분을 분석\n if (parts.length === 2) {\n const decimalPart = parts[1]\n let significantFigures = 0\n\n for (let i = 0; i < decimalPart.length; i++) {\n if (decimalPart[i] !== '0') {\n significantFigures = decimalPart.length - i\n break\n }\n }\n\n return significantFigures\n }\n\n // 정수인 경우 유효 자릿수 없음\n return 0\n}\n\nfunction drawStepLine(context: CanvasRenderingContext2D, ang: number, rx: number, stepNeedleSize: number) {\n context.rotate(ang)\n context.translate(0, -rx)\n\n context.fillRect(0, -rx * 0.14, stepNeedleSize, rx * 0.175)\n context.translate(0, rx)\n context.rotate(-ang)\n}\n\nfunction drawSubStepLine(context: CanvasRenderingContext2D, ang: number, rx: number, stepNeedleSize: number) {\n context.rotate(ang)\n context.translate(0, -rx)\n\n context.fillRect(0, -rx * 0.04, stepNeedleSize, rx * 0.075)\n context.translate(0, rx)\n context.rotate(-ang)\n}\n\nfunction drawStepText(context: CanvasRenderingContext2D, text: string, ang: number, rx: number) {\n context.rotate(ang)\n context.translate(0, -rx * 0.83)\n context.rotate(-ang)\n\n context.fillText(text, 0, 0)\n context.rotate(ang)\n context.translate(0, rx * 0.83)\n context.rotate(-ang)\n}\n\nfunction drawNeedle(context: CanvasRenderingContext2D, rx: number, ang: number) {\n context.rotate(ang)\n\n context.beginPath()\n\n context.moveTo(rx * 0.035, 0) // 중앙 두께\n\n context.lineTo(0, rx * 0.8) // 끝 점\n\n context.lineTo(-rx * 0.035, 0) // 중앙 두께\n\n context.lineTo(-rx * 0.015, -rx * 0.2) // 뒷쪽 두께\n context.lineTo(rx * 0.015, -rx * 0.2) // 뒷쪽 두께\n\n context.rotate(-ang)\n}\n\n@sceneComponent('gauge-circle')\nexport default class GaugeCircle extends ValueHolder(Donut) {\n render(context: CanvasRenderingContext2D) {\n var {\n lineWidth = 20,\n startValue,\n endValue,\n step,\n subStep,\n startAngle = 0,\n endAngle = 180,\n fontColor = 'black',\n showStepText = true,\n showStartValue = true,\n showEndValue = true,\n showStepLine = true,\n showSubStep = true,\n inText = true,\n colorStops, // 스텝별 각각 다른 색\n fillStyle,\n textFillStyle = 'black',\n needleFillStyle = 'black',\n innerCircleFillStyle = 'gray',\n stepNeedleSize = 2,\n stepFillStyle,\n stepTextSize,\n cx,\n cy,\n rx,\n ry,\n ratio,\n animFromBase = false\n } = this.state\n\n startValue = Number(startValue)\n\n this.animOnValueChange(this.value, animFromBase, startValue)\n\n const RADIAN = 0.0174533 / Math.PI\n const rxRatio = (rx / 100) * ratio // 원 안에 지워지는 비율을 계산한 rx - ratio의 비율에 따라 크기가 변함\n const ryRatio = (ry / 100) * ratio // 원 안에 지워지는 비율을 계산한 ry - ratio의 비율에 따라 크기가 변함\n const circleSize = (endAngle - startAngle) / 180 // 원의 총 길이. - PI * 2가 원이므로 (360도 = 2, 180도 = 1)\n const totalValue = endValue - startValue // 게이지의 시작과 끝 값의 크기\n\n startAngle = startAngle * RADIAN - 0.5 // 맨 위쪽을 중심으로 앵글의 범위에 따라 왼쪽으로 넓어짐\n endAngle = endAngle * RADIAN - 0.5 // 맨 위쪽을 중심으로 앵글의 범위에 따라 오른쪽으로 넓어짐\n\n context.translate(cx, cy)\n\n //// 메인 게이지 원 그리기 ////\n context.beginPath()\n\n context.ellipse(0, 0, Math.abs(rx), Math.abs(ry), 0, startAngle * Math.PI, endAngle * Math.PI)\n this.drawStroke(context)\n context.ellipse(0, 0, Math.abs(rxRatio), Math.abs(ryRatio), 0, endAngle * Math.PI, startAngle * Math.PI, true) // 반대로 그리며 원을 지움.\n // this.drawFill(context)\n\n context.closePath()\n\n //// 스텝별 색 칠하기 ////\n if (colorStops) {\n let beforeValue = 0\n let endStepAngle = 0\n context.moveTo(0, 0)\n\n colorStops.forEach(function (\n v: { position: number; color: string },\n idx: number,\n arr: { position: number; color: string }[]\n ) {\n context.beginPath()\n\n let value = Math.max(Math.min(v.position - startValue, totalValue), 0) // v.position 범위의 최소값은 0, 최대값은 totalValue가 되야함.\n let startStepAngle = endStepAngle || Math.PI * (startAngle + (circleSize * beforeValue) / totalValue)\n\n if (idx === arr.length - 1)\n // 마지막값은 무조건 끝까지 채워주도록 한다\n endStepAngle = Math.PI * (startAngle + circleSize)\n else endStepAngle = Math.PI * (startAngle + (circleSize * value) / totalValue)\n\n if (beforeValue > totalValue || beforeValue > value)\n // 값이 게이지의 최대 값을 넘어가거나 이전 값 보다 현재값이 작으면 다시 그릴 필요 없음\n return false\n\n context.ellipse(0, 0, Math.abs(rx), Math.abs(ry), 0, startStepAngle, endStepAngle)\n context.ellipse(0, 0, Math.abs(rxRatio), Math.abs(ryRatio), 0, endStepAngle, startStepAngle, true)\n context.fillStyle = v.color\n context.fill()\n\n beforeValue = value\n })\n }\n context.scale(1, ry / rx)\n\n //// 바늘 그리기 ////\n context.beginPath()\n let drawingValue = this.animValue\n drawingValue = Math.max(Math.min(drawingValue, endValue), startValue) // 그려지는 값은 startValue보다 작을 수 없고, endValue보다 클 수 없음.\n\n let ang = Math.PI * ((circleSize * (drawingValue - startValue)) / totalValue + startAngle - 0.5)\n\n drawNeedle(context, rx, ang)\n\n context.fillStyle = needleFillStyle\n context.fill()\n\n //// 중앙 원 그리기 ////\n context.beginPath()\n context.ellipse(0, 0, Math.abs(rx) / 15, Math.abs(rx) / 15, 0, 0, 2 * Math.PI)\n context.fillStyle = innerCircleFillStyle\n context.fill()\n\n //// 스텝 선 그리기 ////\n context.fillStyle = stepFillStyle\n if (showStepLine) {\n let count = totalValue / step\n\n // Draw StartValue\n drawStepLine(context, Math.PI * (startAngle + 0.5), rx * 0.8, stepNeedleSize) // 원을 그릴때 PI는 45도 부터 그리지만 angle은 0도부터 틀어서 + 0.5도를 곱해줘야함\n // Draw StepValue\n for (let num = 1; num < count; num++) {\n let ang = Math.PI * ((circleSize / count) * num + startAngle + 0.5)\n\n drawStepLine(context, ang, rx * 0.8, stepNeedleSize)\n }\n // Draw EndValue\n drawStepLine(context, Math.PI * (endAngle + 0.5), rx * 0.8, stepNeedleSize)\n }\n\n //// 서브 스탭 그리기 ////\n if (showSubStep && subStep > 0) {\n let count = Math.round(totalValue / subStep)\n\n // Draw StepValue\n for (let num = 1; num <= count; num++) {\n if ((num * subStep) % step == 0) {\n // 메인 스탭과 서브 스탭은 그리지 않음\n continue\n }\n let ang = Math.PI * ((circleSize / count) * num + startAngle + 0.5)\n\n drawSubStepLine(context, ang, rx * 0.8, stepNeedleSize)\n }\n }\n\n //// 스텝 텍스트 그리기 ////\n context.fillStyle = textFillStyle\n context.font = (rx * stepTextSize) / 50 + 'px arial'\n context.textBaseline = 'middle'\n context.textAlign = 'center'\n let textLocation = inText ? 0.8 : 1.35\n\n if (showStartValue) {\n // Draw StartText\n drawStepText(context, startValue, Math.PI * (startAngle + 0.5), rx * textLocation)\n }\n\n if (showEndValue) {\n // Draw EndText\n drawStepText(context, endValue, Math.PI * (endAngle + 0.5), rx * textLocation)\n }\n\n if (showStepText) {\n // Draw StepText\n let count = totalValue / step\n let significantFigures = countSignificantFigures(step)\n\n for (let num = 1; num < count; num++) {\n let value = startValue + step * num\n let ang = Math.PI * ((circleSize / count) * num + startAngle + 0.5)\n\n drawStepText(context, value.toFixed(significantFigures), ang, rx * textLocation)\n }\n }\n\n context.scale(1, rx / ry)\n context.translate(-cx, -cy)\n }\n\n contains(x: number, y: number): boolean {\n // 컨테인즈는 Ellipse로 정의함\n var { cx, cy, rx, ry } = this.state\n\n var normx = (x - cx) / (rx * 2 - 0.5)\n var normy = (y - cy) / (ry * 2 - 0.5)\n\n return normx * normx + normy * normy < 0.25\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawText(context)\n }\n\n get nature() {\n return NATURE\n }\n}\n"]}
1
+ {"version":3,"file":"gauge-circle.js","sourceRoot":"","sources":["../src/gauge-circle.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { ComponentNature, Donut, sceneComponent, ValueHolder } from '@hatiolab/things-scene'\n\nimport { PROPERTIES } from './gauge-properties.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n ...PROPERTIES,\n {\n type: 'number',\n label: 'start-angle',\n name: 'startAngle',\n property: 'startAngle'\n },\n {\n type: 'number',\n label: 'end-angle',\n name: 'endAngle',\n property: 'endAngle'\n },\n {\n type: 'color',\n label: 'text-fill-style',\n name: 'textFillStyle',\n property: 'textFillStyle'\n },\n {\n type: 'color',\n label: 'needle-fill-style',\n name: 'needleFillStyle',\n property: 'needleFillStyle'\n },\n {\n type: 'color',\n label: 'inner-circle-fill-style',\n name: 'innerCircleFillStyle',\n property: 'innerCircleFillStyle'\n },\n {\n type: 'checkbox',\n label: 'in-text',\n name: 'inText',\n property: 'inText'\n }\n ],\n help: 'scene/component/gauge-circle'\n}\n\nfunction countSignificantFigures(number: number) {\n const numStr = number.toString()\n const parts = numStr.split('.')\n\n // 소수점 이하 부분을 분석\n if (parts.length === 2) {\n const decimalPart = parts[1]\n let significantFigures = 0\n\n for (let i = 0; i < decimalPart.length; i++) {\n if (decimalPart[i] !== '0') {\n significantFigures = decimalPart.length - i\n break\n }\n }\n\n return significantFigures\n }\n\n // 정수인 경우 유효 자릿수 없음\n return 0\n}\n\nfunction drawStepLine(context: CanvasRenderingContext2D, ang: number, rx: number, stepNeedleSize: number) {\n context.rotate(ang)\n context.translate(0, -rx)\n\n context.fillRect(0, -rx * 0.14, stepNeedleSize, rx * 0.175)\n context.translate(0, rx)\n context.rotate(-ang)\n}\n\nfunction drawSubStepLine(context: CanvasRenderingContext2D, ang: number, rx: number, stepNeedleSize: number) {\n context.rotate(ang)\n context.translate(0, -rx)\n\n context.fillRect(0, -rx * 0.04, stepNeedleSize, rx * 0.075)\n context.translate(0, rx)\n context.rotate(-ang)\n}\n\nfunction drawStepText(context: CanvasRenderingContext2D, text: string, ang: number, rx: number) {\n context.rotate(ang)\n context.translate(0, -rx * 0.83)\n context.rotate(-ang)\n\n context.fillText(text, 0, 0)\n context.rotate(ang)\n context.translate(0, rx * 0.83)\n context.rotate(-ang)\n}\n\nfunction drawNeedle(context: CanvasRenderingContext2D, rx: number, ang: number) {\n context.rotate(ang)\n\n context.beginPath()\n\n context.moveTo(rx * 0.035, 0) // 중앙 두께\n\n context.lineTo(0, rx * 0.8) // 끝 점\n\n context.lineTo(-rx * 0.035, 0) // 중앙 두께\n\n context.lineTo(-rx * 0.015, -rx * 0.2) // 뒷쪽 두께\n context.lineTo(rx * 0.015, -rx * 0.2) // 뒷쪽 두께\n\n context.rotate(-ang)\n}\n\n@sceneComponent('gauge-circle')\nexport default class GaugeCircle extends ValueHolder(Donut) {\n render(context: CanvasRenderingContext2D) {\n var {\n lineWidth = 20,\n startValue,\n endValue,\n step,\n subStep,\n startAngle = 0,\n endAngle = 180,\n fontColor = 'black',\n showStepText = true,\n showStartValue = true,\n showEndValue = true,\n showStepLine = true,\n showSubStep = true,\n inText = true,\n colorStops, // 스텝별 각각 다른 색\n fillStyle,\n textFillStyle = 'black',\n needleFillStyle = 'black',\n innerCircleFillStyle = 'gray',\n stepNeedleSize = 2,\n stepFillStyle,\n stepTextSize,\n cx,\n cy,\n rx,\n ry,\n ratio,\n animFromBase = false\n } = this.state\n\n startValue = Number(startValue)\n\n ;(this as any).animOnValueChange((this as any).value, animFromBase, startValue)\n\n const RADIAN = 0.0174533 / Math.PI\n const rxRatio = (rx / 100) * ratio // 원 안에 지워지는 비율을 계산한 rx - ratio의 비율에 따라 크기가 변함\n const ryRatio = (ry / 100) * ratio // 원 안에 지워지는 비율을 계산한 ry - ratio의 비율에 따라 크기가 변함\n const circleSize = (endAngle - startAngle) / 180 // 원의 총 길이. - PI * 2가 원이므로 (360도 = 2, 180도 = 1)\n const totalValue = endValue - startValue // 게이지의 시작과 끝 값의 크기\n\n startAngle = startAngle * RADIAN - 0.5 // 맨 위쪽을 중심으로 앵글의 범위에 따라 왼쪽으로 넓어짐\n endAngle = endAngle * RADIAN - 0.5 // 맨 위쪽을 중심으로 앵글의 범위에 따라 오른쪽으로 넓어짐\n\n context.translate(cx, cy)\n\n //// 메인 게이지 원 그리기 ////\n context.beginPath()\n\n context.ellipse(0, 0, Math.abs(rx), Math.abs(ry), 0, startAngle * Math.PI, endAngle * Math.PI)\n this.drawStroke(context)\n context.ellipse(0, 0, Math.abs(rxRatio), Math.abs(ryRatio), 0, endAngle * Math.PI, startAngle * Math.PI, true) // 반대로 그리며 원을 지움.\n // this.drawFill(context)\n\n context.closePath()\n\n //// 스텝별 색 칠하기 ////\n if (colorStops) {\n let beforeValue = 0\n let endStepAngle = 0\n context.moveTo(0, 0)\n\n colorStops.forEach(function (\n v: { position: number; color: string },\n idx: number,\n arr: { position: number; color: string }[]\n ) {\n context.beginPath()\n\n let value = Math.max(Math.min(v.position - startValue, totalValue), 0) // v.position 범위의 최소값은 0, 최대값은 totalValue가 되야함.\n let startStepAngle = endStepAngle || Math.PI * (startAngle + (circleSize * beforeValue) / totalValue)\n\n if (idx === arr.length - 1)\n // 마지막값은 무조건 끝까지 채워주도록 한다\n endStepAngle = Math.PI * (startAngle + circleSize)\n else endStepAngle = Math.PI * (startAngle + (circleSize * value) / totalValue)\n\n if (beforeValue > totalValue || beforeValue > value)\n // 값이 게이지의 최대 값을 넘어가거나 이전 값 보다 현재값이 작으면 다시 그릴 필요 없음\n return false\n\n context.ellipse(0, 0, Math.abs(rx), Math.abs(ry), 0, startStepAngle, endStepAngle)\n context.ellipse(0, 0, Math.abs(rxRatio), Math.abs(ryRatio), 0, endStepAngle, startStepAngle, true)\n context.fillStyle = v.color\n context.fill()\n\n beforeValue = value\n })\n }\n context.scale(1, ry / rx)\n\n //// 바늘 그리기 ////\n context.beginPath()\n let drawingValue = (this as any).animValue\n drawingValue = Math.max(Math.min(drawingValue, endValue), startValue) // 그려지는 값은 startValue보다 작을 수 없고, endValue보다 클 수 없음.\n\n let ang = Math.PI * ((circleSize * (drawingValue - startValue)) / totalValue + startAngle - 0.5)\n\n drawNeedle(context, rx, ang)\n\n context.fillStyle = needleFillStyle\n context.fill()\n\n //// 중앙 원 그리기 ////\n context.beginPath()\n context.ellipse(0, 0, Math.abs(rx) / 15, Math.abs(rx) / 15, 0, 0, 2 * Math.PI)\n context.fillStyle = innerCircleFillStyle\n context.fill()\n\n //// 스텝 선 그리기 ////\n context.fillStyle = stepFillStyle\n if (showStepLine) {\n let count = totalValue / step\n\n // Draw StartValue\n drawStepLine(context, Math.PI * (startAngle + 0.5), rx * 0.8, stepNeedleSize) // 원을 그릴때 PI는 45도 부터 그리지만 angle은 0도부터 틀어서 + 0.5도를 곱해줘야함\n // Draw StepValue\n for (let num = 1; num < count; num++) {\n let ang = Math.PI * ((circleSize / count) * num + startAngle + 0.5)\n\n drawStepLine(context, ang, rx * 0.8, stepNeedleSize)\n }\n // Draw EndValue\n drawStepLine(context, Math.PI * (endAngle + 0.5), rx * 0.8, stepNeedleSize)\n }\n\n //// 서브 스탭 그리기 ////\n if (showSubStep && subStep > 0) {\n let count = Math.round(totalValue / subStep)\n\n // Draw StepValue\n for (let num = 1; num <= count; num++) {\n if ((num * subStep) % step == 0) {\n // 메인 스탭과 서브 스탭은 그리지 않음\n continue\n }\n let ang = Math.PI * ((circleSize / count) * num + startAngle + 0.5)\n\n drawSubStepLine(context, ang, rx * 0.8, stepNeedleSize)\n }\n }\n\n //// 스텝 텍스트 그리기 ////\n context.fillStyle = textFillStyle\n context.font = (rx * stepTextSize) / 50 + 'px arial'\n context.textBaseline = 'middle'\n context.textAlign = 'center'\n let textLocation = inText ? 0.8 : 1.35\n\n if (showStartValue) {\n // Draw StartText\n drawStepText(context, startValue, Math.PI * (startAngle + 0.5), rx * textLocation)\n }\n\n if (showEndValue) {\n // Draw EndText\n drawStepText(context, endValue, Math.PI * (endAngle + 0.5), rx * textLocation)\n }\n\n if (showStepText) {\n // Draw StepText\n let count = totalValue / step\n let significantFigures = countSignificantFigures(step)\n\n for (let num = 1; num < count; num++) {\n let value = startValue + step * num\n let ang = Math.PI * ((circleSize / count) * num + startAngle + 0.5)\n\n drawStepText(context, value.toFixed(significantFigures), ang, rx * textLocation)\n }\n }\n\n context.scale(1, rx / ry)\n context.translate(-cx, -cy)\n }\n\n contains(x: number, y: number): boolean {\n // 컨테인즈는 Ellipse로 정의함\n var { cx, cy, rx, ry } = this.state\n\n var normx = (x - cx) / (rx * 2 - 0.5)\n var normy = (y - cy) / (ry * 2 - 0.5)\n\n return normx * normx + normy * normy < 0.25\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawText(context)\n }\n get nature() {\n return NATURE\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Component, ComponentNature, Shape } from '@hatiolab/things-scene';
1
+ import { ComponentNature, Shape } from '@hatiolab/things-scene';
2
2
  declare const GaugeHorizon_base: (new (...args: any[]) => {
3
3
  _lastValue: number;
4
4
  _anim_alpha: number;
@@ -40,7 +40,7 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
40
40
  get disposed(): boolean;
41
41
  isLayer(): boolean;
42
42
  isGroup(): boolean;
43
- isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component.js").Container;
43
+ isContainer(): this is import("@hatiolab/things-scene").Container;
44
44
  isLine(): boolean;
45
45
  isRoot(): boolean;
46
46
  isRootModel(): boolean;
@@ -56,9 +56,9 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
56
56
  get(property: any): any;
57
57
  set(props: any, propval?: any): any;
58
58
  getState(property: any): any;
59
- setState(props: any, propval?: any): any;
59
+ setState(props: Partial<import("@hatiolab/things-scene").State> | string, propval?: any): any;
60
60
  get model(): any;
61
- get state(): any;
61
+ get state(): import("@hatiolab/things-scene").State;
62
62
  get hierarchy(): any;
63
63
  get volatile(): never[];
64
64
  _applyProps(target: any, props: any, options: any): any;
@@ -100,7 +100,7 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
100
100
  prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
101
101
  render(context: import("@hatiolab/things-scene").SceneRenderContext): void;
102
102
  postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
103
- prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
103
+ prepare(resolve: (component: import("@hatiolab/things-scene").Component) => void, reject: (reason: any) => void): void;
104
104
  prepareIf(condition: boolean): void;
105
105
  drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
106
106
  drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
@@ -149,16 +149,16 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
149
149
  get started(): boolean;
150
150
  set started(v: boolean): any;
151
151
  get controls(): import("@hatiolab/things-scene").Control[] | undefined;
152
- findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
153
- findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
154
- capture(x: number, y: number, except?: (c: Component) => boolean): any;
152
+ findFirst(finder: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): import("@hatiolab/things-scene").Component | undefined;
153
+ findAll(s: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): any[] | undefined;
154
+ capture(x: number, y: number, except?: (c: import("@hatiolab/things-scene").Component) => boolean): any;
155
155
  findAnchor(name: string): any;
156
- isDescendible(container: Component): boolean;
156
+ isDescendible(container: import("@hatiolab/things-scene").Component): boolean;
157
157
  getContext(component?: unknown): any;
158
- get root(): Component;
159
- get rootModel(): Component;
160
- get parent(): Component;
161
- set parent(v: Component): any;
158
+ get root(): import("@hatiolab/things-scene").Component;
159
+ get rootModel(): import("@hatiolab/things-scene").Component;
160
+ get parent(): import("@hatiolab/things-scene").Component;
161
+ set parent(v: import("@hatiolab/things-scene").Component): any;
162
162
  get anchors(): import("@hatiolab/things-scene").Anchor[];
163
163
  get scalable(): boolean;
164
164
  get stuck(): boolean;
@@ -184,20 +184,20 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
184
184
  ondropfile(transfered: FileList, files: string[]): void;
185
185
  transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
186
186
  transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
187
- transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
188
- transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
189
- transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
190
- transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
191
- transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
192
- transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
193
- transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
187
+ transcoordS2T(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
188
+ transcoordT2P(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
189
+ transcoordT2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
190
+ transcoordS2TR(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
191
+ transcoordS2O(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
192
+ transcoordC2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
193
+ transcoordS2C(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
194
194
  toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
195
195
  fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
196
- toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
197
- fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
198
- toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
199
- toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
200
- toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
196
+ toScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
197
+ fromScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
198
+ toLocal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
199
+ toGlobal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
200
+ toOther(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
201
201
  on(name: string | object, callback: Function, context?: any): any;
202
202
  off(name?: string | object, callback?: Function, context?: any): any;
203
203
  once(name: string | object, callback: Function, context?: any): any;
@@ -206,24 +206,24 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
206
206
  delegate_off(delegator: any): any;
207
207
  calculateBounds?(): void;
208
208
  oncreate_element?(element: HTMLElement): void;
209
- removeComponent(component: Component, ghost?: boolean): void;
210
- addComponent(component: Component, ghost?: boolean): void;
211
- insertComponentAt(component: Component, index: number, ghost?: boolean): void;
212
- getOverlay(component: Component): HTMLElement | undefined;
213
- findById(id: string): Component | undefined;
214
- findByRefid(ref: string | number): Component | undefined;
215
- findAllById(id: string): Component[];
209
+ removeComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
210
+ addComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
211
+ insertComponentAt(component: import("@hatiolab/things-scene").Component, index: number, ghost?: boolean): void;
212
+ getOverlay(component: import("@hatiolab/things-scene").Component): HTMLElement | undefined;
213
+ findById(id: string): import("@hatiolab/things-scene").Component | undefined;
214
+ findByRefid(ref: string | number): import("@hatiolab/things-scene").Component | undefined;
215
+ findAllById(id: string): import("@hatiolab/things-scene").Component[];
216
216
  resize(): void;
217
217
  fit(type?: string): void;
218
- get components(): Component[] | undefined;
218
+ get components(): import("@hatiolab/things-scene").Component[] | undefined;
219
219
  get layout(): any;
220
220
  get auxOverlay(): HTMLElement | undefined;
221
221
  get isReady(): boolean;
222
222
  get unitScale(): number;
223
- get selected(): Component[];
224
- set selected(_v: Component[]): any;
225
- get focused(): Component | null;
226
- set focused(_v: Component | null): any;
223
+ get selected(): import("@hatiolab/things-scene").Component[];
224
+ set selected(_v: import("@hatiolab/things-scene").Component[]): any;
225
+ get focused(): import("@hatiolab/things-scene").Component | null;
226
+ set focused(_v: import("@hatiolab/things-scene").Component | null): any;
227
227
  get hasSameParentForAllSelected(): boolean;
228
228
  set hasSameParentForAllSelected(_v: boolean): any;
229
229
  get fitMode(): string | undefined;
@@ -280,7 +280,7 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
280
280
  get disposed(): boolean;
281
281
  isLayer(): boolean;
282
282
  isGroup(): boolean;
283
- isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component.js").Container;
283
+ isContainer(): this is import("@hatiolab/things-scene").Container;
284
284
  isLine(): boolean;
285
285
  isRoot(): boolean;
286
286
  isRootModel(): boolean;
@@ -296,9 +296,9 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
296
296
  get(property: any): any;
297
297
  set(props: any, propval?: any): any;
298
298
  getState(property: any): any;
299
- setState(props: any, propval?: any): any;
299
+ setState(props: Partial<import("@hatiolab/things-scene").State> | string, propval?: any): any;
300
300
  get model(): any;
301
- get state(): any;
301
+ get state(): import("@hatiolab/things-scene").State;
302
302
  get hierarchy(): any;
303
303
  get volatile(): never[];
304
304
  _applyProps(target: any, props: any, options: any): any;
@@ -334,7 +334,7 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
334
334
  draw(context?: import("@hatiolab/things-scene").SceneRenderContext): void;
335
335
  prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
336
336
  postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
337
- prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
337
+ prepare(resolve: (component: import("@hatiolab/things-scene").Component) => void, reject: (reason: any) => void): void;
338
338
  prepareIf(condition: boolean): void;
339
339
  drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
340
340
  drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
@@ -385,16 +385,16 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
385
385
  get started(): boolean;
386
386
  set started(v: boolean): any;
387
387
  get controls(): import("@hatiolab/things-scene").Control[] | undefined;
388
- findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
389
- findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
390
- capture(x: number, y: number, except?: (c: Component) => boolean): any;
388
+ findFirst(finder: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): import("@hatiolab/things-scene").Component | undefined;
389
+ findAll(s: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): any[] | undefined;
390
+ capture(x: number, y: number, except?: (c: import("@hatiolab/things-scene").Component) => boolean): any;
391
391
  findAnchor(name: string): any;
392
- isDescendible(container: Component): boolean;
392
+ isDescendible(container: import("@hatiolab/things-scene").Component): boolean;
393
393
  getContext(component?: unknown): any;
394
- get root(): Component;
395
- get rootModel(): Component;
396
- get parent(): Component;
397
- set parent(v: Component): any;
394
+ get root(): import("@hatiolab/things-scene").Component;
395
+ get rootModel(): import("@hatiolab/things-scene").Component;
396
+ get parent(): import("@hatiolab/things-scene").Component;
397
+ set parent(v: import("@hatiolab/things-scene").Component): any;
398
398
  get scalable(): boolean;
399
399
  get stuck(): boolean;
400
400
  get capturable(): boolean;
@@ -419,20 +419,20 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
419
419
  ondropfile(transfered: FileList, files: string[]): void;
420
420
  transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
421
421
  transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
422
- transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
423
- transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
424
- transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
425
- transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
426
- transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
427
- transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
428
- transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
422
+ transcoordS2T(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
423
+ transcoordT2P(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
424
+ transcoordT2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
425
+ transcoordS2TR(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
426
+ transcoordS2O(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
427
+ transcoordC2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
428
+ transcoordS2C(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
429
429
  toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
430
430
  fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
431
- toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
432
- fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
433
- toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
434
- toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
435
- toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
431
+ toScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
432
+ fromScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
433
+ toLocal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
434
+ toGlobal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
435
+ toOther(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
436
436
  on(name: string | object, callback: Function, context?: any): any;
437
437
  off(name?: string | object, callback?: Function, context?: any): any;
438
438
  once(name: string | object, callback: Function, context?: any): any;
@@ -442,24 +442,24 @@ declare const GaugeHorizon_base: (new (...args: any[]) => {
442
442
  onchange(after: Record<string, any>, before: Record<string, any>): void;
443
443
  calculateBounds?(): void;
444
444
  oncreate_element?(element: HTMLElement): void;
445
- removeComponent(component: Component, ghost?: boolean): void;
446
- addComponent(component: Component, ghost?: boolean): void;
447
- insertComponentAt(component: Component, index: number, ghost?: boolean): void;
448
- getOverlay(component: Component): HTMLElement | undefined;
449
- findById(id: string): Component | undefined;
450
- findByRefid(ref: string | number): Component | undefined;
451
- findAllById(id: string): Component[];
445
+ removeComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
446
+ addComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
447
+ insertComponentAt(component: import("@hatiolab/things-scene").Component, index: number, ghost?: boolean): void;
448
+ getOverlay(component: import("@hatiolab/things-scene").Component): HTMLElement | undefined;
449
+ findById(id: string): import("@hatiolab/things-scene").Component | undefined;
450
+ findByRefid(ref: string | number): import("@hatiolab/things-scene").Component | undefined;
451
+ findAllById(id: string): import("@hatiolab/things-scene").Component[];
452
452
  resize(): void;
453
453
  fit(type?: string): void;
454
- get components(): Component[] | undefined;
454
+ get components(): import("@hatiolab/things-scene").Component[] | undefined;
455
455
  get layout(): any;
456
456
  get auxOverlay(): HTMLElement | undefined;
457
457
  get isReady(): boolean;
458
458
  get unitScale(): number;
459
- get selected(): Component[];
460
- set selected(_v: Component[]): any;
461
- get focused(): Component | null;
462
- set focused(_v: Component | null): any;
459
+ get selected(): import("@hatiolab/things-scene").Component[];
460
+ set selected(_v: import("@hatiolab/things-scene").Component[]): any;
461
+ get focused(): import("@hatiolab/things-scene").Component | null;
462
+ set focused(_v: import("@hatiolab/things-scene").Component | null): any;
463
463
  get hasSameParentForAllSelected(): boolean;
464
464
  set hasSameParentForAllSelected(_v: boolean): any;
465
465
  get fitMode(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"gauge-horizon.js","sourceRoot":"","sources":["../src/gauge-horizon.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ComponentNature, RectPath, Shape, ValueHolder, sceneComponent } from '@hatiolab/things-scene'\n\nimport { PROPERTIES } from './gauge-properties.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n ...PROPERTIES,\n {\n type: 'color',\n label: 'text-fill-style',\n name: 'textFillStyle',\n property: 'textFillStyle'\n },\n {\n type: 'color',\n label: 'needle-fill-style',\n name: 'needleFillStyle',\n property: 'needleFillStyle'\n },\n {\n type: 'number',\n label: 'needle-size',\n name: 'needleSize',\n property: 'needleSize'\n }\n ],\n help: 'scene/component/gauge-horizon'\n}\n\n@sceneComponent('gauge-horizon')\nexport default class GaugeHorizon extends ValueHolder(RectPath(Shape)) {\n render(context: CanvasRenderingContext2D) {\n var {\n startValue,\n endValue,\n step,\n subStep,\n colorStops,\n needleFillStyle,\n stepFillStyle,\n textFillStyle,\n needleSize,\n stepNeedleSize,\n stepTextSize,\n showStepText = true,\n showStartValue = true,\n showEndValue = true,\n showStepLine = true,\n showSubStep = true,\n width,\n height,\n top,\n left,\n animFromBase = false\n } = this.state\n\n startValue = Number(startValue)\n\n this.animOnValueChange(this.value, animFromBase, startValue)\n\n const totalValue = endValue - startValue // 게이지의 시작과 끝 값의 크기\n\n context.translate(left, top) // top과 left의 좌표에 영향을 받지 않기 위해 transalate를 한다음 모든 탑과 레프트의 좌표를 0으로 줌\n\n //// 메인 막대 그리기 ////\n context.beginPath()\n\n context.rect(0, 0, width, height)\n\n this.drawFill(context)\n this.drawStroke(context)\n context.closePath()\n\n //// 스텝별 색 칠하기 ////\n if (colorStops) {\n let beforeValue = 0\n colorStops.forEach(function (\n v: { position: number; color: string },\n idx: number,\n arr: { position: number; color: string }[]\n ) {\n context.beginPath()\n\n let value = Math.max(Math.min(v.position - startValue, totalValue), 0) // v.position 범위의 최소값은 0, 최대값은 totalValue가 되야함.\n let startStepPosition = (width * beforeValue) / totalValue\n let endStepPosition\n // console.log(startStepPosition + (width * value / totalValue));\n if (idx == arr.length - 1 || startStepPosition + (width * value) / totalValue)\n // 배열의 마지막 값이거나 중간 시작값 + 그려지는 값이 width 를 넘을 경우는 무조건 끝까지 채워주도록 한다\n endStepPosition = width - startStepPosition\n else endStepPosition = (width * value) / totalValue\n\n if (beforeValue > totalValue || beforeValue > value)\n // 값이 게이지의 최대 값을 넘어가거나 이전 값 보다 현재값이 작으면 다시 그릴 필요 없음\n return false\n\n context.rect(startStepPosition, 0, endStepPosition, height)\n\n context.fillStyle = v.color\n context.fill()\n\n beforeValue = value\n })\n }\n\n //// 스텝 선 그리기 ////\n context.fillStyle = stepFillStyle\n if (showStepLine) {\n let count = totalValue / step\n let stepSize = width * 0.06\n\n // Draw StartValue\n context.fillRect(0, height - stepSize, stepNeedleSize, stepSize)\n // Draw StepValue\n for (let num = 1; num < count; num++) {\n let locate = (width / count) * num\n\n context.fillRect(locate, height - stepSize, stepNeedleSize, stepSize)\n }\n // Draw EndValue\n context.fillRect(width, height - stepSize, stepNeedleSize, stepSize)\n }\n\n //// 서브 스탭 그리기 ////\n if (showSubStep) {\n let count = totalValue\n let subStepSize = width * 0.027\n // Draw StartValue\n context.fillRect(0, height - subStepSize, stepNeedleSize, subStepSize)\n\n // Draw StepValue\n for (let num = 1; num <= count; num++) {\n if (num % step == 0 || num % subStep != 0) {\n // 메인 스탭과 서브 스탭은 그리지 않음\n continue\n }\n let locate = (width / count) * num\n context.fillRect(locate, height - subStepSize, stepNeedleSize, subStepSize)\n }\n }\n\n //// 스텝 텍스트 그리기 ////\n let fontSize = (width * stepTextSize) / 150\n context.fillStyle = textFillStyle\n context.font = fontSize + 'px arial'\n context.textBaseline = 'middle'\n context.textAlign = 'center'\n if (showStartValue) {\n // Draw StartText\n context.fillText(startValue, 0, height + fontSize * 0.75)\n }\n\n if (showEndValue) {\n // Draw EndText\n context.fillText(endValue, width, height + fontSize * 0.75)\n }\n\n if (showStepText) {\n // Draw StepText\n let count = totalValue / step\n\n for (let num = 1; num < count; num++) {\n let value = startValue + step * num\n let locate = (width / count) * num\n\n context.fillText(value, locate, height + fontSize * 0.75)\n }\n }\n\n //// 바늘 그리기 ////\n context.beginPath()\n let drawingValue = this.animValue\n drawingValue = Math.max(Math.min(drawingValue, endValue), startValue) // 그려지는 값은 startValue보다 작을 수 없고, endValue보다 클 수 없음.\n let position = ((drawingValue - startValue) / totalValue) * width\n\n needleSize *= 4\n context.moveTo(position, height + fontSize * 1.4)\n context.lineTo(position + needleSize / 2, height + needleSize + fontSize * 1.4)\n context.lineTo(position - needleSize / 2, height + needleSize + fontSize * 1.4)\n\n context.fillStyle = needleFillStyle\n context.fill()\n context.closePath()\n\n context.translate(-left, -top)\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawText(context)\n }\n\n get nature() {\n return NATURE\n }\n}\n"]}
1
+ {"version":3,"file":"gauge-horizon.js","sourceRoot":"","sources":["../src/gauge-horizon.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { ComponentNature, RectPath, Shape, ValueHolder, sceneComponent } from '@hatiolab/things-scene'\n\nimport { PROPERTIES } from './gauge-properties.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n ...PROPERTIES,\n {\n type: 'color',\n label: 'text-fill-style',\n name: 'textFillStyle',\n property: 'textFillStyle'\n },\n {\n type: 'color',\n label: 'needle-fill-style',\n name: 'needleFillStyle',\n property: 'needleFillStyle'\n },\n {\n type: 'number',\n label: 'needle-size',\n name: 'needleSize',\n property: 'needleSize'\n }\n ],\n help: 'scene/component/gauge-horizon'\n}\n\n@sceneComponent('gauge-horizon')\nexport default class GaugeHorizon extends ValueHolder(RectPath(Shape)) {\n render(context: CanvasRenderingContext2D) {\n var {\n startValue,\n endValue,\n step,\n subStep,\n colorStops,\n needleFillStyle,\n stepFillStyle,\n textFillStyle,\n needleSize,\n stepNeedleSize,\n stepTextSize,\n showStepText = true,\n showStartValue = true,\n showEndValue = true,\n showStepLine = true,\n showSubStep = true,\n width,\n height,\n top,\n left,\n animFromBase = false\n } = this.state\n\n startValue = Number(startValue)\n\n ;(this as any).animOnValueChange((this as any).value, animFromBase, startValue)\n\n const totalValue = endValue - startValue // 게이지의 시작과 끝 값의 크기\n\n context.translate(left, top) // top과 left의 좌표에 영향을 받지 않기 위해 transalate를 한다음 모든 탑과 레프트의 좌표를 0으로 줌\n\n //// 메인 막대 그리기 ////\n context.beginPath()\n\n context.rect(0, 0, width, height)\n\n this.drawFill(context)\n this.drawStroke(context)\n context.closePath()\n\n //// 스텝별 색 칠하기 ////\n if (colorStops) {\n let beforeValue = 0\n colorStops.forEach(function (\n v: { position: number; color: string },\n idx: number,\n arr: { position: number; color: string }[]\n ) {\n context.beginPath()\n\n let value = Math.max(Math.min(v.position - startValue, totalValue), 0) // v.position 범위의 최소값은 0, 최대값은 totalValue가 되야함.\n let startStepPosition = (width * beforeValue) / totalValue\n let endStepPosition\n // console.log(startStepPosition + (width * value / totalValue));\n if (idx == arr.length - 1 || startStepPosition + (width * value) / totalValue)\n // 배열의 마지막 값이거나 중간 시작값 + 그려지는 값이 width 를 넘을 경우는 무조건 끝까지 채워주도록 한다\n endStepPosition = width - startStepPosition\n else endStepPosition = (width * value) / totalValue\n\n if (beforeValue > totalValue || beforeValue > value)\n // 값이 게이지의 최대 값을 넘어가거나 이전 값 보다 현재값이 작으면 다시 그릴 필요 없음\n return false\n\n context.rect(startStepPosition, 0, endStepPosition, height)\n\n context.fillStyle = v.color\n context.fill()\n\n beforeValue = value\n })\n }\n\n //// 스텝 선 그리기 ////\n context.fillStyle = stepFillStyle\n if (showStepLine) {\n let count = totalValue / step\n let stepSize = width * 0.06\n\n // Draw StartValue\n context.fillRect(0, height - stepSize, stepNeedleSize, stepSize)\n // Draw StepValue\n for (let num = 1; num < count; num++) {\n let locate = (width / count) * num\n\n context.fillRect(locate, height - stepSize, stepNeedleSize, stepSize)\n }\n // Draw EndValue\n context.fillRect(width, height - stepSize, stepNeedleSize, stepSize)\n }\n\n //// 서브 스탭 그리기 ////\n if (showSubStep) {\n let count = totalValue\n let subStepSize = width * 0.027\n // Draw StartValue\n context.fillRect(0, height - subStepSize, stepNeedleSize, subStepSize)\n\n // Draw StepValue\n for (let num = 1; num <= count; num++) {\n if (num % step == 0 || num % subStep != 0) {\n // 메인 스탭과 서브 스탭은 그리지 않음\n continue\n }\n let locate = (width / count) * num\n context.fillRect(locate, height - subStepSize, stepNeedleSize, subStepSize)\n }\n }\n\n //// 스텝 텍스트 그리기 ////\n let fontSize = (width * stepTextSize) / 150\n context.fillStyle = textFillStyle\n context.font = fontSize + 'px arial'\n context.textBaseline = 'middle'\n context.textAlign = 'center'\n if (showStartValue) {\n // Draw StartText\n context.fillText(startValue, 0, height + fontSize * 0.75)\n }\n\n if (showEndValue) {\n // Draw EndText\n context.fillText(endValue, width, height + fontSize * 0.75)\n }\n\n if (showStepText) {\n // Draw StepText\n let count = totalValue / step\n\n for (let num = 1; num < count; num++) {\n let value = startValue + step * num\n let locate = (width / count) * num\n\n context.fillText(value, locate, height + fontSize * 0.75)\n }\n }\n\n //// 바늘 그리기 ////\n context.beginPath()\n let drawingValue = (this as any).animValue\n drawingValue = Math.max(Math.min(drawingValue, endValue), startValue) // 그려지는 값은 startValue보다 작을 수 없고, endValue보다 클 수 없음.\n let position = ((drawingValue - startValue) / totalValue) * width\n\n needleSize *= 4\n context.moveTo(position, height + fontSize * 1.4)\n context.lineTo(position + needleSize / 2, height + needleSize + fontSize * 1.4)\n context.lineTo(position - needleSize / 2, height + needleSize + fontSize * 1.4)\n\n context.fillStyle = needleFillStyle\n context.fill()\n context.closePath()\n\n context.translate(-left, -top)\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawText(context)\n }\n get nature() {\n return NATURE\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Component, ComponentNature, Shape } from '@hatiolab/things-scene';
1
+ import { ComponentNature, Shape } from '@hatiolab/things-scene';
2
2
  declare const GaugeVertical_base: (new (...args: any[]) => {
3
3
  _lastValue: number;
4
4
  _anim_alpha: number;
@@ -40,7 +40,7 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
40
40
  get disposed(): boolean;
41
41
  isLayer(): boolean;
42
42
  isGroup(): boolean;
43
- isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component.js").Container;
43
+ isContainer(): this is import("@hatiolab/things-scene").Container;
44
44
  isLine(): boolean;
45
45
  isRoot(): boolean;
46
46
  isRootModel(): boolean;
@@ -56,9 +56,9 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
56
56
  get(property: any): any;
57
57
  set(props: any, propval?: any): any;
58
58
  getState(property: any): any;
59
- setState(props: any, propval?: any): any;
59
+ setState(props: Partial<import("@hatiolab/things-scene").State> | string, propval?: any): any;
60
60
  get model(): any;
61
- get state(): any;
61
+ get state(): import("@hatiolab/things-scene").State;
62
62
  get hierarchy(): any;
63
63
  get volatile(): never[];
64
64
  _applyProps(target: any, props: any, options: any): any;
@@ -100,7 +100,7 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
100
100
  prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
101
101
  render(context: import("@hatiolab/things-scene").SceneRenderContext): void;
102
102
  postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
103
- prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
103
+ prepare(resolve: (component: import("@hatiolab/things-scene").Component) => void, reject: (reason: any) => void): void;
104
104
  prepareIf(condition: boolean): void;
105
105
  drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
106
106
  drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
@@ -149,16 +149,16 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
149
149
  get started(): boolean;
150
150
  set started(v: boolean): any;
151
151
  get controls(): import("@hatiolab/things-scene").Control[] | undefined;
152
- findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
153
- findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
154
- capture(x: number, y: number, except?: (c: Component) => boolean): any;
152
+ findFirst(finder: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): import("@hatiolab/things-scene").Component | undefined;
153
+ findAll(s: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): any[] | undefined;
154
+ capture(x: number, y: number, except?: (c: import("@hatiolab/things-scene").Component) => boolean): any;
155
155
  findAnchor(name: string): any;
156
- isDescendible(container: Component): boolean;
156
+ isDescendible(container: import("@hatiolab/things-scene").Component): boolean;
157
157
  getContext(component?: unknown): any;
158
- get root(): Component;
159
- get rootModel(): Component;
160
- get parent(): Component;
161
- set parent(v: Component): any;
158
+ get root(): import("@hatiolab/things-scene").Component;
159
+ get rootModel(): import("@hatiolab/things-scene").Component;
160
+ get parent(): import("@hatiolab/things-scene").Component;
161
+ set parent(v: import("@hatiolab/things-scene").Component): any;
162
162
  get anchors(): import("@hatiolab/things-scene").Anchor[];
163
163
  get scalable(): boolean;
164
164
  get stuck(): boolean;
@@ -184,20 +184,20 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
184
184
  ondropfile(transfered: FileList, files: string[]): void;
185
185
  transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
186
186
  transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
187
- transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
188
- transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
189
- transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
190
- transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
191
- transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
192
- transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
193
- transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
187
+ transcoordS2T(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
188
+ transcoordT2P(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
189
+ transcoordT2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
190
+ transcoordS2TR(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
191
+ transcoordS2O(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
192
+ transcoordC2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
193
+ transcoordS2C(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
194
194
  toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
195
195
  fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
196
- toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
197
- fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
198
- toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
199
- toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
200
- toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
196
+ toScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
197
+ fromScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
198
+ toLocal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
199
+ toGlobal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
200
+ toOther(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
201
201
  on(name: string | object, callback: Function, context?: any): any;
202
202
  off(name?: string | object, callback?: Function, context?: any): any;
203
203
  once(name: string | object, callback: Function, context?: any): any;
@@ -206,24 +206,24 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
206
206
  delegate_off(delegator: any): any;
207
207
  calculateBounds?(): void;
208
208
  oncreate_element?(element: HTMLElement): void;
209
- removeComponent(component: Component, ghost?: boolean): void;
210
- addComponent(component: Component, ghost?: boolean): void;
211
- insertComponentAt(component: Component, index: number, ghost?: boolean): void;
212
- getOverlay(component: Component): HTMLElement | undefined;
213
- findById(id: string): Component | undefined;
214
- findByRefid(ref: string | number): Component | undefined;
215
- findAllById(id: string): Component[];
209
+ removeComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
210
+ addComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
211
+ insertComponentAt(component: import("@hatiolab/things-scene").Component, index: number, ghost?: boolean): void;
212
+ getOverlay(component: import("@hatiolab/things-scene").Component): HTMLElement | undefined;
213
+ findById(id: string): import("@hatiolab/things-scene").Component | undefined;
214
+ findByRefid(ref: string | number): import("@hatiolab/things-scene").Component | undefined;
215
+ findAllById(id: string): import("@hatiolab/things-scene").Component[];
216
216
  resize(): void;
217
217
  fit(type?: string): void;
218
- get components(): Component[] | undefined;
218
+ get components(): import("@hatiolab/things-scene").Component[] | undefined;
219
219
  get layout(): any;
220
220
  get auxOverlay(): HTMLElement | undefined;
221
221
  get isReady(): boolean;
222
222
  get unitScale(): number;
223
- get selected(): Component[];
224
- set selected(_v: Component[]): any;
225
- get focused(): Component | null;
226
- set focused(_v: Component | null): any;
223
+ get selected(): import("@hatiolab/things-scene").Component[];
224
+ set selected(_v: import("@hatiolab/things-scene").Component[]): any;
225
+ get focused(): import("@hatiolab/things-scene").Component | null;
226
+ set focused(_v: import("@hatiolab/things-scene").Component | null): any;
227
227
  get hasSameParentForAllSelected(): boolean;
228
228
  set hasSameParentForAllSelected(_v: boolean): any;
229
229
  get fitMode(): string | undefined;
@@ -280,7 +280,7 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
280
280
  get disposed(): boolean;
281
281
  isLayer(): boolean;
282
282
  isGroup(): boolean;
283
- isContainer(): this is import("@hatiolab/things-scene/dist-types/types/component.js").Container;
283
+ isContainer(): this is import("@hatiolab/things-scene").Container;
284
284
  isLine(): boolean;
285
285
  isRoot(): boolean;
286
286
  isRootModel(): boolean;
@@ -296,9 +296,9 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
296
296
  get(property: any): any;
297
297
  set(props: any, propval?: any): any;
298
298
  getState(property: any): any;
299
- setState(props: any, propval?: any): any;
299
+ setState(props: Partial<import("@hatiolab/things-scene").State> | string, propval?: any): any;
300
300
  get model(): any;
301
- get state(): any;
301
+ get state(): import("@hatiolab/things-scene").State;
302
302
  get hierarchy(): any;
303
303
  get volatile(): never[];
304
304
  _applyProps(target: any, props: any, options: any): any;
@@ -334,7 +334,7 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
334
334
  draw(context?: import("@hatiolab/things-scene").SceneRenderContext): void;
335
335
  prerender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
336
336
  postrender(context: import("@hatiolab/things-scene").SceneRenderContext): void;
337
- prepare(resolve: (component: Component) => void, reject: (reason: any) => void): void;
337
+ prepare(resolve: (component: import("@hatiolab/things-scene").Component) => void, reject: (reason: any) => void): void;
338
338
  prepareIf(condition: boolean): void;
339
339
  drawText(context: import("@hatiolab/things-scene").SceneRenderContext): void;
340
340
  drawStroke(context: import("@hatiolab/things-scene").SceneRenderContext, override?: Record<string, unknown>): void;
@@ -385,16 +385,16 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
385
385
  get started(): boolean;
386
386
  set started(v: boolean): any;
387
387
  get controls(): import("@hatiolab/things-scene").Control[] | undefined;
388
- findFirst(finder: string | ((c: Component) => boolean), ...others: any[]): Component | undefined;
389
- findAll(s: string | ((c: Component) => boolean), ...others: any[]): any[] | undefined;
390
- capture(x: number, y: number, except?: (c: Component) => boolean): any;
388
+ findFirst(finder: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): import("@hatiolab/things-scene").Component | undefined;
389
+ findAll(s: string | ((c: import("@hatiolab/things-scene").Component) => boolean), ...others: any[]): any[] | undefined;
390
+ capture(x: number, y: number, except?: (c: import("@hatiolab/things-scene").Component) => boolean): any;
391
391
  findAnchor(name: string): any;
392
- isDescendible(container: Component): boolean;
392
+ isDescendible(container: import("@hatiolab/things-scene").Component): boolean;
393
393
  getContext(component?: unknown): any;
394
- get root(): Component;
395
- get rootModel(): Component;
396
- get parent(): Component;
397
- set parent(v: Component): any;
394
+ get root(): import("@hatiolab/things-scene").Component;
395
+ get rootModel(): import("@hatiolab/things-scene").Component;
396
+ get parent(): import("@hatiolab/things-scene").Component;
397
+ set parent(v: import("@hatiolab/things-scene").Component): any;
398
398
  get scalable(): boolean;
399
399
  get stuck(): boolean;
400
400
  get capturable(): boolean;
@@ -419,20 +419,20 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
419
419
  ondropfile(transfered: FileList, files: string[]): void;
420
420
  transcoordS2P(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
421
421
  transcoordP2S(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
422
- transcoordS2T(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
423
- transcoordT2P(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
424
- transcoordT2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
425
- transcoordS2TR(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
426
- transcoordS2O(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
427
- transcoordC2S(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
428
- transcoordS2C(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
422
+ transcoordS2T(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
423
+ transcoordT2P(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
424
+ transcoordT2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
425
+ transcoordS2TR(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
426
+ transcoordS2O(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
427
+ transcoordC2S(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
428
+ transcoordS2C(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
429
429
  toParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
430
430
  fromParent(x: number, y: number, rp?: import("@hatiolab/things-scene").POINT): import("@hatiolab/things-scene").POINT;
431
- toScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
432
- fromScene(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
433
- toLocal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
434
- toGlobal(x: number, y: number, top?: Component): import("@hatiolab/things-scene").POINT;
435
- toOther(x: number, y: number, target: Component): import("@hatiolab/things-scene").POINT;
431
+ toScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
432
+ fromScene(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
433
+ toLocal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
434
+ toGlobal(x: number, y: number, top?: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
435
+ toOther(x: number, y: number, target: import("@hatiolab/things-scene").Component): import("@hatiolab/things-scene").POINT;
436
436
  on(name: string | object, callback: Function, context?: any): any;
437
437
  off(name?: string | object, callback?: Function, context?: any): any;
438
438
  once(name: string | object, callback: Function, context?: any): any;
@@ -442,24 +442,24 @@ declare const GaugeVertical_base: (new (...args: any[]) => {
442
442
  onchange(after: Record<string, any>, before: Record<string, any>): void;
443
443
  calculateBounds?(): void;
444
444
  oncreate_element?(element: HTMLElement): void;
445
- removeComponent(component: Component, ghost?: boolean): void;
446
- addComponent(component: Component, ghost?: boolean): void;
447
- insertComponentAt(component: Component, index: number, ghost?: boolean): void;
448
- getOverlay(component: Component): HTMLElement | undefined;
449
- findById(id: string): Component | undefined;
450
- findByRefid(ref: string | number): Component | undefined;
451
- findAllById(id: string): Component[];
445
+ removeComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
446
+ addComponent(component: import("@hatiolab/things-scene").Component, ghost?: boolean): void;
447
+ insertComponentAt(component: import("@hatiolab/things-scene").Component, index: number, ghost?: boolean): void;
448
+ getOverlay(component: import("@hatiolab/things-scene").Component): HTMLElement | undefined;
449
+ findById(id: string): import("@hatiolab/things-scene").Component | undefined;
450
+ findByRefid(ref: string | number): import("@hatiolab/things-scene").Component | undefined;
451
+ findAllById(id: string): import("@hatiolab/things-scene").Component[];
452
452
  resize(): void;
453
453
  fit(type?: string): void;
454
- get components(): Component[] | undefined;
454
+ get components(): import("@hatiolab/things-scene").Component[] | undefined;
455
455
  get layout(): any;
456
456
  get auxOverlay(): HTMLElement | undefined;
457
457
  get isReady(): boolean;
458
458
  get unitScale(): number;
459
- get selected(): Component[];
460
- set selected(_v: Component[]): any;
461
- get focused(): Component | null;
462
- set focused(_v: Component | null): any;
459
+ get selected(): import("@hatiolab/things-scene").Component[];
460
+ set selected(_v: import("@hatiolab/things-scene").Component[]): any;
461
+ get focused(): import("@hatiolab/things-scene").Component | null;
462
+ set focused(_v: import("@hatiolab/things-scene").Component | null): any;
463
463
  get hasSameParentForAllSelected(): boolean;
464
464
  set hasSameParentForAllSelected(_v: boolean): any;
465
465
  get fitMode(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"gauge-vertical.js","sourceRoot":"","sources":["../src/gauge-vertical.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ComponentNature, RectPath, Shape, ValueHolder, sceneComponent } from '@hatiolab/things-scene'\n\nimport { PROPERTIES } from './gauge-properties.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n ...PROPERTIES,\n {\n type: 'color',\n label: 'text-fill-style',\n name: 'textFillStyle',\n property: 'textFillStyle'\n },\n {\n type: 'color',\n label: 'needle-fill-style',\n name: 'needleFillStyle',\n property: 'needleFillStyle'\n },\n {\n type: 'number',\n label: 'needle-size',\n name: 'needleSize',\n property: 'needleSize'\n }\n ],\n help: 'scene/component/gauge-vertical'\n}\n\n@sceneComponent('gauge-vertical')\nexport default class GaugeVertical extends ValueHolder(RectPath(Shape)) {\n render(context: CanvasRenderingContext2D) {\n var {\n startValue,\n endValue,\n step,\n subStep,\n colorStops,\n needleFillStyle,\n stepFillStyle,\n textFillStyle,\n needleSize,\n stepNeedleSize,\n stepTextSize,\n showStepText = true,\n showStartValue = true,\n showEndValue = true,\n showStepLine = true,\n showSubStep = true,\n width,\n height,\n top,\n left,\n animFromBase = false\n } = this.state\n\n startValue = Number(startValue)\n\n this.animOnValueChange(this.value, animFromBase, startValue)\n\n const totalValue = endValue - startValue // 게이지의 시작과 끝 값의 크기\n\n context.translate(left, top) // top과 left의 좌표에 영향을 받지 않기 위해 transalate를 한다음 모든 탑과 레프트의 좌표를 0으로 줌\n\n //// 메인 막대 그리기 ////\n context.beginPath()\n\n context.rect(0, 0, width, height)\n\n this.drawFill(context)\n this.drawStroke(context)\n context.closePath()\n\n //// 스텝별 색 칠하기 ////\n if (colorStops) {\n let beforeValue = 0\n colorStops.forEach(function (\n v: { position: number; color: string },\n idx: number,\n arr: { position: number; color: string }[]\n ) {\n context.beginPath()\n\n let value = Math.max(Math.min(v.position - startValue, totalValue), 0) // v.position 범위의 최소값은 0, 최대값은 totalValue가 되야함.\n let startStepPosition = (height * beforeValue) / totalValue\n let endStepPosition\n\n // console.log(startStepPosition + (height * value / totalValue));\n if (idx === arr.length - 1 || startStepPosition + (height * value) / totalValue)\n // 배열의 마지막 값이거나 중간 시작값 + 그려지는 값이 height 를 넘을 경우는 무조건 끝까지 채워주도록 한다\n endStepPosition = height - startStepPosition\n else endStepPosition = height - (height * value) / totalValue\n\n if (beforeValue > totalValue || beforeValue > value)\n // 값이 게이지의 최대 값을 넘어가거나 이전 값 보다 현재값이 작으면 다시 그릴 필요 없음\n return false\n\n context.rect(0, height - startStepPosition, width, -endStepPosition)\n\n context.fillStyle = v.color\n context.fill()\n beforeValue = value\n })\n }\n\n //// 바늘 그리기 ////\n context.beginPath()\n let drawingValue = this.animValue\n drawingValue = Math.max(Math.min(drawingValue, endValue), startValue) // 그려지는 값은 startValue보다 작을 수 없고, endValue보다 클 수 없음.\n let position = height - ((drawingValue - startValue) / totalValue) * height\n\n needleSize *= 4\n context.moveTo(width * 1.05, position)\n context.lineTo(width * 1.05 + needleSize, position + needleSize / 2)\n context.lineTo(width * 1.05 + needleSize, position - needleSize / 2)\n\n context.fillStyle = needleFillStyle\n context.fill()\n context.closePath()\n\n //// 스텝 선 그리기 ////\n context.fillStyle = stepFillStyle\n if (showStepLine) {\n let count = totalValue / step\n\n // Draw StartValue\n context.fillRect(0, height, height * 0.06, stepNeedleSize)\n // Draw StepValue\n for (let num = 1; num < count; num++) {\n let locate = (height / count) * num\n\n context.fillRect(0, locate, height * 0.06, stepNeedleSize)\n }\n // Draw EndValue\n context.fillRect(0, 0, height * 0.06, stepNeedleSize)\n }\n\n //// 서브 스탭 그리기 ////\n if (showSubStep) {\n let count = totalValue\n\n // Draw StartValue\n context.fillRect(0, 0, height * 0.027, stepNeedleSize)\n\n // Draw StepValue\n for (let num = 1; num <= count; num++) {\n if (num % step == 0 || num % subStep != 0) {\n // 메인 스탭과 서브 스탭은 그리지 않음\n continue\n }\n let locate = (height / count) * num\n context.fillRect(0, locate, height * 0.027, stepNeedleSize)\n }\n }\n\n //// 스텝 텍스트 그리기 ////\n let fontSize = (height * stepTextSize) / 150\n context.fillStyle = textFillStyle\n context.font = fontSize + 'px arial'\n context.textBaseline = 'middle'\n context.textAlign = 'center'\n if (showStartValue) {\n // Draw StartText\n context.fillText(startValue, -fontSize, height)\n }\n\n if (showEndValue) {\n // Draw EndText\n context.fillText(endValue, -fontSize, 0)\n }\n\n if (showStepText) {\n // Draw StepText\n let count = totalValue / step\n\n for (let num = 1; num < count; num++) {\n let value = startValue + Number(step) * num\n let locate = height - (height / count) * num\n\n context.fillText(value, -fontSize, locate)\n }\n }\n\n context.translate(-left, -top)\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawText(context)\n }\n\n get nature() {\n return NATURE\n }\n}\n"]}
1
+ {"version":3,"file":"gauge-vertical.js","sourceRoot":"","sources":["../src/gauge-vertical.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { ComponentNature, RectPath, Shape, ValueHolder, sceneComponent } from '@hatiolab/things-scene'\n\nimport { PROPERTIES } from './gauge-properties.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n ...PROPERTIES,\n {\n type: 'color',\n label: 'text-fill-style',\n name: 'textFillStyle',\n property: 'textFillStyle'\n },\n {\n type: 'color',\n label: 'needle-fill-style',\n name: 'needleFillStyle',\n property: 'needleFillStyle'\n },\n {\n type: 'number',\n label: 'needle-size',\n name: 'needleSize',\n property: 'needleSize'\n }\n ],\n help: 'scene/component/gauge-vertical'\n}\n\n@sceneComponent('gauge-vertical')\nexport default class GaugeVertical extends ValueHolder(RectPath(Shape)) {\n render(context: CanvasRenderingContext2D) {\n var {\n startValue,\n endValue,\n step,\n subStep,\n colorStops,\n needleFillStyle,\n stepFillStyle,\n textFillStyle,\n needleSize,\n stepNeedleSize,\n stepTextSize,\n showStepText = true,\n showStartValue = true,\n showEndValue = true,\n showStepLine = true,\n showSubStep = true,\n width,\n height,\n top,\n left,\n animFromBase = false\n } = this.state\n\n startValue = Number(startValue)\n\n ;(this as any).animOnValueChange((this as any).value, animFromBase, startValue)\n\n const totalValue = endValue - startValue // 게이지의 시작과 끝 값의 크기\n\n context.translate(left, top) // top과 left의 좌표에 영향을 받지 않기 위해 transalate를 한다음 모든 탑과 레프트의 좌표를 0으로 줌\n\n //// 메인 막대 그리기 ////\n context.beginPath()\n\n context.rect(0, 0, width, height)\n\n this.drawFill(context)\n this.drawStroke(context)\n context.closePath()\n\n //// 스텝별 색 칠하기 ////\n if (colorStops) {\n let beforeValue = 0\n colorStops.forEach(function (\n v: { position: number; color: string },\n idx: number,\n arr: { position: number; color: string }[]\n ) {\n context.beginPath()\n\n let value = Math.max(Math.min(v.position - startValue, totalValue), 0) // v.position 범위의 최소값은 0, 최대값은 totalValue가 되야함.\n let startStepPosition = (height * beforeValue) / totalValue\n let endStepPosition\n\n // console.log(startStepPosition + (height * value / totalValue));\n if (idx === arr.length - 1 || startStepPosition + (height * value) / totalValue)\n // 배열의 마지막 값이거나 중간 시작값 + 그려지는 값이 height 를 넘을 경우는 무조건 끝까지 채워주도록 한다\n endStepPosition = height - startStepPosition\n else endStepPosition = height - (height * value) / totalValue\n\n if (beforeValue > totalValue || beforeValue > value)\n // 값이 게이지의 최대 값을 넘어가거나 이전 값 보다 현재값이 작으면 다시 그릴 필요 없음\n return false\n\n context.rect(0, height - startStepPosition, width, -endStepPosition)\n\n context.fillStyle = v.color\n context.fill()\n beforeValue = value\n })\n }\n\n //// 바늘 그리기 ////\n context.beginPath()\n let drawingValue = (this as any).animValue\n drawingValue = Math.max(Math.min(drawingValue, endValue), startValue) // 그려지는 값은 startValue보다 작을 수 없고, endValue보다 클 수 없음.\n let position = height - ((drawingValue - startValue) / totalValue) * height\n\n needleSize *= 4\n context.moveTo(width * 1.05, position)\n context.lineTo(width * 1.05 + needleSize, position + needleSize / 2)\n context.lineTo(width * 1.05 + needleSize, position - needleSize / 2)\n\n context.fillStyle = needleFillStyle\n context.fill()\n context.closePath()\n\n //// 스텝 선 그리기 ////\n context.fillStyle = stepFillStyle\n if (showStepLine) {\n let count = totalValue / step\n\n // Draw StartValue\n context.fillRect(0, height, height * 0.06, stepNeedleSize)\n // Draw StepValue\n for (let num = 1; num < count; num++) {\n let locate = (height / count) * num\n\n context.fillRect(0, locate, height * 0.06, stepNeedleSize)\n }\n // Draw EndValue\n context.fillRect(0, 0, height * 0.06, stepNeedleSize)\n }\n\n //// 서브 스탭 그리기 ////\n if (showSubStep) {\n let count = totalValue\n\n // Draw StartValue\n context.fillRect(0, 0, height * 0.027, stepNeedleSize)\n\n // Draw StepValue\n for (let num = 1; num <= count; num++) {\n if (num % step == 0 || num % subStep != 0) {\n // 메인 스탭과 서브 스탭은 그리지 않음\n continue\n }\n let locate = (height / count) * num\n context.fillRect(0, locate, height * 0.027, stepNeedleSize)\n }\n }\n\n //// 스텝 텍스트 그리기 ////\n let fontSize = (height * stepTextSize) / 150\n context.fillStyle = textFillStyle\n context.font = fontSize + 'px arial'\n context.textBaseline = 'middle'\n context.textAlign = 'center'\n if (showStartValue) {\n // Draw StartText\n context.fillText(startValue, -fontSize, height)\n }\n\n if (showEndValue) {\n // Draw EndText\n context.fillText(endValue, -fontSize, 0)\n }\n\n if (showStepText) {\n // Draw StepText\n let count = totalValue / step\n\n for (let num = 1; num < count; num++) {\n let value = startValue + Number(step) * num\n let locate = height - (height / count) * num\n\n context.fillText(value, -fontSize, locate)\n }\n }\n\n context.translate(-left, -top)\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawText(context)\n }\n get nature() {\n return NATURE\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import './factories/index.js';
1
2
  export { default as GaugeCircle } from './gauge-circle.js';
2
3
  export { default as GaugeVertical } from './gauge-vertical.js';
3
4
  export { default as GaugeHorizon } from './gauge-horizon.js';
package/dist/index.js CHANGED
@@ -1,6 +1,10 @@
1
1
  /*
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
+ /*
5
+ * Copyright © HatioLab Inc. All rights reserved.
6
+ */
7
+ import './factories/index.js';
4
8
  export { default as GaugeCircle } from './gauge-circle.js';
5
9
  export { default as GaugeVertical } from './gauge-vertical.js';
6
10
  export { default as GaugeHorizon } from './gauge-horizon.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nexport { default as GaugeCircle } from './gauge-circle.js'\nexport { default as GaugeVertical } from './gauge-vertical.js'\nexport { default as GaugeHorizon } from './gauge-horizon.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;GAEG;AACH,OAAO,sBAAsB,CAAA;AAE7B,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport './factories/index.js'\n\nexport { default as GaugeCircle } from './gauge-circle.js'\nexport { default as GaugeVertical } from './gauge-vertical.js'\nexport { default as GaugeHorizon } from './gauge-horizon.js'\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@operato/scene-gauge",
3
- "version": "10.0.0-beta.2",
3
+ "version": "10.0.0-beta.30",
4
4
  "type": "module",
5
5
  "description": "Things Scene Gauge Component",
6
6
  "author": "heartyoh",
@@ -58,5 +58,5 @@
58
58
  "prettier --write"
59
59
  ]
60
60
  },
61
- "gitHead": "350ece104754d007967cf8e3f54d0d157465e94a"
61
+ "gitHead": "06b35b1726ec4f27ee76657ce341c6c6f3ba1b3a"
62
62
  }