@operato/scene-half-roundrect 10.0.0-beta.2 → 10.0.0-beta.68

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,33 @@
1
- # things-scene-half-roundrect
1
+ # @operato/scene-half-roundrect
2
2
 
3
- ## build
3
+ > Half roundrect component for things-scene
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-half-roundrect.js | modern browser | O |
10
- | UMD | things-scene-half-roundrect-ie.js | ie 11 | O |
11
- | ESM | things-scene-half-roundrect.mjs | modern browser | O |
7
+ ## Components
12
8
 
13
- ## publish
9
+ - `HalfRoundrect`
14
10
 
15
- `$ yarn publish`
11
+ ## Install
12
+
13
+ ```bash
14
+ yarn add @operato/scene-half-roundrect
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```ts
20
+ import { HalfRoundrect } from '@operato/scene-half-roundrect'
21
+ ```
22
+
23
+ ## Build
24
+
25
+ ```bash
26
+ yarn build
27
+ ```
28
+
29
+ Output: ESM module at `dist/index.js` (single bundle, no UMD/IE legacy).
30
+
31
+ _Version: 10.0.0-beta.14_
32
+
33
+ <!-- AUTOGEN_END -->
@@ -1,6 +1,5 @@
1
1
  import { Rect } from '@hatiolab/things-scene';
2
2
  export default class HalfRoundrect extends Rect {
3
- is3dish(): boolean;
4
3
  render(context: CanvasRenderingContext2D): void;
5
4
  get controls(): any;
6
5
  }
@@ -52,9 +52,6 @@ class HalfRoundrectExtrude extends RealObjectExtrude {
52
52
  }
53
53
  registerRealObjectFactory('half-roundrect', (component) => new HalfRoundrectExtrude(component));
54
54
  let HalfRoundrect = class HalfRoundrect extends Rect {
55
- is3dish() {
56
- return true;
57
- }
58
55
  render(context) {
59
56
  var { top, left, width, height } = this.bounds;
60
57
  var round = this.state.round;
@@ -1 +1 @@
1
- {"version":3,"file":"half-roundrect.js","sourceRoot":"","sources":["../src/half-roundrect.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ControlHandler, Rect, sceneComponent, RealObjectExtrude, registerRealObjectFactory } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\n\nvar controlHandler: ControlHandler = {\n ondragmove: function (point, index, component: any) {\n var { left, width, height } = component.bounds\n /*\n * point의 좌표는 부모 레이어 기준의 x, y 값이다.\n * 따라서, 도형의 회전을 감안한 좌표로의 변환이 필요하다.\n * Transcoord시에는 point좌표가 부모까지 transcoord되어있는 상태이므로,\n * 컴포넌트자신에 대한 transcoord만 필요하다.(마지막 파라미터를 false로).\n */\n var transcoorded = component.transcoordP2S(point.x, point.y)\n var round = ((transcoorded.x - left) / (width / 2)) * 100\n\n round = roundSet(round, width, height)\n\n component.set({ round })\n }\n}\n\nfunction roundSet(round: number, width: number, height: number) {\n var max = width > height ? (height / width) * 100 : 100\n\n if (round >= max) round = max\n else if (round <= 0) round = 0\n\n return round\n}\n\nclass HalfRoundrectExtrude extends RealObjectExtrude {\n get shape() {\n const { width, height } = this.component.bounds\n const round = this.component.state.round ?? 0\n\n const shape = new THREE.Shape()\n const r = roundSet(round, width, height)\n\n if (r > 0) {\n const tmpRound = (r / 100) * (width / 2)\n\n shape.moveTo(tmpRound, 0)\n shape.lineTo(width - tmpRound, 0)\n shape.quadraticCurveTo(width, 0, width, tmpRound)\n shape.lineTo(width, height)\n shape.lineTo(0, height)\n shape.lineTo(0, tmpRound)\n shape.quadraticCurveTo(0, 0, tmpRound, 0)\n } else {\n shape.moveTo(0, 0)\n shape.lineTo(width, 0)\n shape.lineTo(width, height)\n shape.lineTo(0, height)\n shape.lineTo(0, 0)\n }\n\n return shape\n }\n}\n\nregisterRealObjectFactory('half-roundrect', (component) => new HalfRoundrectExtrude(component))\n\n@sceneComponent('half-roundrect')\nexport default class HalfRoundrect extends Rect {\n is3dish() {\n return true\n }\n\n render(context: CanvasRenderingContext2D) {\n var { top, left, width, height } = this.bounds\n var round = this.state.round\n\n context.beginPath()\n\n round = roundSet(round, width, height)\n\n if (round > 0) {\n var tmpRound = (round / 100) * (width / 2)\n\n context.moveTo(left + tmpRound, top)\n context.lineTo(left + width - tmpRound, top)\n context.quadraticCurveTo(left + width, top, left + width, top + tmpRound)\n\n context.lineTo(left + width, top + height)\n context.lineTo(left, top + height)\n context.lineTo(left, top + tmpRound)\n\n context.quadraticCurveTo(left, top, left + tmpRound, top)\n } else {\n context.rect(left, top, width, height)\n }\n\n this.drawFill(context)\n this.drawStroke(context)\n }\n\n get controls(): any {\n var { top, left, width, height } = this.bounds\n var round = this.state.round\n\n round = round == undefined ? 0 : roundSet(round, width, height)\n\n return [\n {\n x: left + (width / 2) * (round / 100),\n y: top,\n handler: controlHandler\n }\n ]\n }\n}\n"]}
1
+ {"version":3,"file":"half-roundrect.js","sourceRoot":"","sources":["../src/half-roundrect.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ControlHandler, Rect, sceneComponent, RealObjectExtrude, registerRealObjectFactory } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\n\nvar controlHandler: ControlHandler = {\n ondragmove: function (point, index, component: any) {\n var { left, width, height } = component.bounds\n /*\n * point의 좌표는 부모 레이어 기준의 x, y 값이다.\n * 따라서, 도형의 회전을 감안한 좌표로의 변환이 필요하다.\n * Transcoord시에는 point좌표가 부모까지 transcoord되어있는 상태이므로,\n * 컴포넌트자신에 대한 transcoord만 필요하다.(마지막 파라미터를 false로).\n */\n var transcoorded = component.transcoordP2S(point.x, point.y)\n var round = ((transcoorded.x - left) / (width / 2)) * 100\n\n round = roundSet(round, width, height)\n\n component.set({ round })\n }\n}\n\nfunction roundSet(round: number, width: number, height: number) {\n var max = width > height ? (height / width) * 100 : 100\n\n if (round >= max) round = max\n else if (round <= 0) round = 0\n\n return round\n}\n\nclass HalfRoundrectExtrude extends RealObjectExtrude {\n get shape() {\n const { width, height } = this.component.bounds\n const round = this.component.state.round ?? 0\n\n const shape = new THREE.Shape()\n const r = roundSet(round, width, height)\n\n if (r > 0) {\n const tmpRound = (r / 100) * (width / 2)\n\n shape.moveTo(tmpRound, 0)\n shape.lineTo(width - tmpRound, 0)\n shape.quadraticCurveTo(width, 0, width, tmpRound)\n shape.lineTo(width, height)\n shape.lineTo(0, height)\n shape.lineTo(0, tmpRound)\n shape.quadraticCurveTo(0, 0, tmpRound, 0)\n } else {\n shape.moveTo(0, 0)\n shape.lineTo(width, 0)\n shape.lineTo(width, height)\n shape.lineTo(0, height)\n shape.lineTo(0, 0)\n }\n\n return shape\n }\n}\n\nregisterRealObjectFactory('half-roundrect', (component) => new HalfRoundrectExtrude(component))\n\n@sceneComponent('half-roundrect')\nexport default class HalfRoundrect extends Rect {\n render(context: CanvasRenderingContext2D) {\n var { top, left, width, height } = this.bounds\n var round = this.state.round\n\n context.beginPath()\n\n round = roundSet(round, width, height)\n\n if (round > 0) {\n var tmpRound = (round / 100) * (width / 2)\n\n context.moveTo(left + tmpRound, top)\n context.lineTo(left + width - tmpRound, top)\n context.quadraticCurveTo(left + width, top, left + width, top + tmpRound)\n\n context.lineTo(left + width, top + height)\n context.lineTo(left, top + height)\n context.lineTo(left, top + tmpRound)\n\n context.quadraticCurveTo(left, top, left + tmpRound, top)\n } else {\n context.rect(left, top, width, height)\n }\n\n this.drawFill(context)\n this.drawStroke(context)\n }\n\n get controls(): any {\n var { top, left, width, height } = this.bounds\n var round = this.state.round\n\n round = round == undefined ? 0 : roundSet(round, width, height)\n\n return [\n {\n x: left + (width / 2) * (round / 100),\n y: top,\n handler: controlHandler\n }\n ]\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@operato/scene-half-roundrect",
3
- "version": "10.0.0-beta.2",
3
+ "version": "10.0.0-beta.68",
4
4
  "type": "module",
5
5
  "description": "Half roundrect component for things-scene",
6
6
  "author": "heartyoh",
@@ -18,14 +18,11 @@
18
18
  "directory": "packages/half-roundrect"
19
19
  },
20
20
  "scripts": {
21
- "serve": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"things-factory-dev\"",
22
- "serve:dev": "npm run serve",
23
21
  "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds\"",
24
22
  "build": "tsc",
25
23
  "prepublishOnly": "tsc",
26
24
  "lint": "eslint src/ && prettier \"src/**/*.ts\" --check",
27
- "format": "eslint src/ --fix && prettier \"src/**/*.ts\" --write",
28
- "migration": "things-factory-migration"
25
+ "format": "eslint src/ --fix && prettier \"src/**/*.ts\" --write"
29
26
  },
30
27
  "dependencies": {
31
28
  "@hatiolab/things-scene": "^10.0.0-beta.1",
@@ -33,8 +30,6 @@
33
30
  },
34
31
  "devDependencies": {
35
32
  "@hatiolab/prettier-config": "^1.0.0",
36
- "@things-factory/builder": "^10.0.0-beta.1",
37
- "@things-factory/operato-board": "^10.0.0-beta.1",
38
33
  "@typescript-eslint/eslint-plugin": "^8.0.0",
39
34
  "@typescript-eslint/parser": "^8.0.0",
40
35
  "@web/dev-server": "^0.1.28",
@@ -59,5 +54,5 @@
59
54
  "prettier --write"
60
55
  ]
61
56
  },
62
- "gitHead": "350ece104754d007967cf8e3f54d0d157465e94a"
57
+ "gitHead": "fce8d69d7bb8af85cfb2e2507a8eee14130d36d7"
63
58
  }