@operato/scene-integration 2.0.0-alpha.1 → 2.0.0-alpha.10

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/CHANGELOG.md CHANGED
@@ -3,6 +3,51 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.0.0-alpha.10](https://github.com/things-scene/operato-scene/compare/v2.0.0-alpha.9...v2.0.0-alpha.10) (2024-04-22)
7
+
8
+
9
+ ### :bug: Bug Fix
10
+
11
+ * 다국어 컴포넌트 도형 속성 상속, 시나리오 옵셔널 추가 ([857c55b](https://github.com/things-scene/operato-scene/commit/857c55ba725e7973124c017a7b82342835721cec))
12
+
13
+
14
+
15
+ ## [2.0.0-alpha.9](https://github.com/things-scene/operato-scene/compare/v2.0.0-alpha.8...v2.0.0-alpha.9) (2024-04-11)
16
+
17
+
18
+ ### :bug: Bug Fix
19
+
20
+ * things-factory@7.0.1 ([a9f4c18](https://github.com/things-scene/operato-scene/commit/a9f4c1873b80c540e4c2e16649e127ccffcf9a4c))
21
+
22
+
23
+
24
+ ## [2.0.0-alpha.6](https://github.com/things-scene/operato-scene/compare/v2.0.0-alpha.5...v2.0.0-alpha.6) (2024-03-24)
25
+
26
+
27
+ ### :bug: Bug Fix
28
+
29
+ * translation ([266d423](https://github.com/things-scene/operato-scene/commit/266d423d9d6992464f45a437acc90ccf8ed33bf6))
30
+
31
+
32
+
33
+ ## [2.0.0-alpha.5](https://github.com/things-scene/operato-scene/compare/v2.0.0-alpha.4...v2.0.0-alpha.5) (2024-03-21)
34
+
35
+
36
+ ### :bug: Bug Fix
37
+
38
+ * 컴포넌트 명 다국어 ([fbc26d9](https://github.com/things-scene/operato-scene/commit/fbc26d9fb24e858541598ba55e2b8d33f2df8d8a))
39
+
40
+
41
+
42
+ ## [2.0.0-alpha.4](https://github.com/things-scene/operato-scene/compare/v2.0.0-alpha.3...v2.0.0-alpha.4) (2024-03-21)
43
+
44
+
45
+ ### :bug: Bug Fix
46
+
47
+ * 컴포넌트 명 다국어 ([64e1f08](https://github.com/things-scene/operato-scene/commit/64e1f08af32d2ac193c3d31b0025f8d06f569ca4))
48
+
49
+
50
+
6
51
  ## [2.0.0-alpha.1](https://github.com/things-scene/operato-scene/compare/v2.0.0-alpha.0...v2.0.0-alpha.1) (2024-02-04)
7
52
 
8
53
 
@@ -182,15 +182,17 @@ export default class ScenarioRun extends DataSource(RectPath(Shape)) {
182
182
  }
183
183
  }
184
184
  mask() {
185
+ var _a, _b;
185
186
  const { maskOnError } = this.state;
186
187
  if (maskOnError) {
187
188
  //@ts-ignore
188
- this.root.target_element.style.filter = maskOnError;
189
+ (_b = (_a = this.root) === null || _a === void 0 ? void 0 : _a.target_element) === null || _b === void 0 ? void 0 : _b.style.filter = maskOnError;
189
190
  }
190
191
  }
191
192
  demask() {
193
+ var _a, _b;
192
194
  //@ts-ignore
193
- this.root.target_element.style.filter = 'none';
195
+ (_b = (_a = this.root) === null || _a === void 0 ? void 0 : _a.target_element) === null || _b === void 0 ? void 0 : _b.style.filter = 'none';
194
196
  }
195
197
  }
196
198
  Component.register('scenario-run', ScenarioRun);
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-run.js","sourceRoot":"","sources":["../src/scenario-run.ts"],"names":[],"mappings":"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","sourcesContent":["import gql from 'graphql-tag'\n\nimport { Component, ComponentNature, DataSource, Properties, RectPath, Shape } from '@hatiolab/things-scene'\nimport { client } from '@operato/graphql'\n\nimport { scenarios } from './client-api'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'select',\n label: 'scenario-name',\n name: 'scenarioName',\n property: {\n options: scenarios\n }\n },\n {\n type: 'data',\n label: 'variables',\n name: 'variables'\n },\n {\n type: 'number',\n label: 'repeat-interval',\n name: 'interval',\n placeholder: 'milli-seconds'\n },\n {\n type: 'checkbox',\n label: 'run-on-start',\n name: 'runOnStart'\n },\n {\n type: 'select',\n label: 'mask-on-error',\n name: 'maskOnError',\n property: {\n options: [\n {\n display: 'none',\n value: ''\n },\n {\n display: 'strong-blur',\n value: 'blur(4px)'\n },\n {\n display: 'weak-blur',\n value: 'blur(2px)'\n },\n {\n display: 'grayscale',\n value: 'grayscale(1)'\n }\n ]\n }\n }\n ],\n 'value-property': 'variables',\n help: 'scene/component/scenario-run'\n}\n\nexport default class ScenarioRun extends DataSource(RectPath(Shape)) {\n static _image: HTMLImageElement\n\n static get image() {\n if (!ScenarioRun._image) {\n ScenarioRun._image = new Image()\n ScenarioRun._image.src = new URL('../icons/symbol-scenario-run.png', import.meta.url).href\n }\n return ScenarioRun._image\n }\n\n private _started: boolean = false\n private _raf: number = 0\n private _timeout: NodeJS.Timeout | null = null\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n context.beginPath()\n this.drawImage(context, ScenarioRun.image, left, top, width, height)\n }\n\n ready() {\n super.ready()\n\n if (this.app.isViewMode) {\n if (this.state.runOnStart) {\n this.started = true\n }\n }\n }\n\n dispose(): void {\n this.stop()\n super.dispose()\n }\n\n get nature() {\n return NATURE\n }\n\n onchange(after: Properties) {\n if ('variables' in after) {\n this.requestData()\n }\n }\n\n set started(started: boolean) {\n this.setState('started')\n\n if (started) {\n this.start()\n } else {\n this.stop()\n }\n }\n\n get started() {\n return this.state.started\n }\n\n start() {\n if (this._started) {\n return\n }\n\n this._started = true\n\n this._raf = requestAnimationFrame(() => this.requestData())\n }\n\n stop() {\n if (!this._started) {\n return\n }\n\n this._started = false\n\n if (this._raf) {\n cancelAnimationFrame(this._raf)\n this._raf = 0\n }\n if (this._timeout) {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n }\n\n get variables() {\n return this.state.variables\n }\n\n set variables(variables) {\n this.setState('variables', variables)\n }\n\n async requestData() {\n let { scenarioName, variables, maskOnError } = this.state\n if (!scenarioName || !this.app.isViewMode) {\n return\n }\n\n try {\n variables = typeof variables == 'string' ? JSON.parse(variables) : variables\n } catch (e) {\n console.warn('runScenario mutation variable is not an object')\n }\n\n if (client) {\n try {\n var response = await client.query({\n query: gql`\n mutation ($scenarioName: String!, $variables: Object) {\n runScenario(scenarioName: $scenarioName, variables: $variables) {\n state\n message\n result\n }\n }\n `,\n variables: {\n scenarioName: scenarioName,\n variables\n }\n })\n\n this.data = response?.data?.runScenario?.result\n this.demask()\n } catch (e: any) {\n console.error(`calling runScenario mutation error: ${e?.message ?? e}`)\n this.mask()\n } finally {\n if (this._started && this.state.interval > 0) {\n this._timeout = setTimeout(() => this.requestData(), this.state.interval)\n }\n }\n }\n }\n\n mask() {\n const { maskOnError } = this.state\n if (maskOnError) {\n //@ts-ignore\n this.root.target_element.style.filter = maskOnError\n }\n }\n\n demask() {\n //@ts-ignore\n this.root.target_element.style.filter = 'none'\n }\n}\n\nComponent.register('scenario-run', ScenarioRun)\n"]}
1
+ {"version":3,"file":"scenario-run.js","sourceRoot":"","sources":["../src/scenario-run.ts"],"names":[],"mappings":"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","sourcesContent":["import gql from 'graphql-tag'\n\nimport { Component, ComponentNature, DataSource, Properties, RectPath, Shape } from '@hatiolab/things-scene'\nimport { client } from '@operato/graphql'\n\nimport { scenarios } from './client-api'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'select',\n label: 'scenario-name',\n name: 'scenarioName',\n property: {\n options: scenarios\n }\n },\n {\n type: 'data',\n label: 'variables',\n name: 'variables'\n },\n {\n type: 'number',\n label: 'repeat-interval',\n name: 'interval',\n placeholder: 'milli-seconds'\n },\n {\n type: 'checkbox',\n label: 'run-on-start',\n name: 'runOnStart'\n },\n {\n type: 'select',\n label: 'mask-on-error',\n name: 'maskOnError',\n property: {\n options: [\n {\n display: 'none',\n value: ''\n },\n {\n display: 'strong-blur',\n value: 'blur(4px)'\n },\n {\n display: 'weak-blur',\n value: 'blur(2px)'\n },\n {\n display: 'grayscale',\n value: 'grayscale(1)'\n }\n ]\n }\n }\n ],\n 'value-property': 'variables',\n help: 'scene/component/scenario-run'\n}\n\nexport default class ScenarioRun extends DataSource(RectPath(Shape)) {\n static _image: HTMLImageElement\n\n static get image() {\n if (!ScenarioRun._image) {\n ScenarioRun._image = new Image()\n ScenarioRun._image.src = new URL('../icons/symbol-scenario-run.png', import.meta.url).href\n }\n return ScenarioRun._image\n }\n\n private _started: boolean = false\n private _raf: number = 0\n private _timeout: NodeJS.Timeout | null = null\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n context.beginPath()\n this.drawImage(context, ScenarioRun.image, left, top, width, height)\n }\n\n ready() {\n super.ready()\n\n if (this.app.isViewMode) {\n if (this.state.runOnStart) {\n this.started = true\n }\n }\n }\n\n dispose(): void {\n this.stop()\n super.dispose()\n }\n\n get nature() {\n return NATURE\n }\n\n onchange(after: Properties) {\n if ('variables' in after) {\n this.requestData()\n }\n }\n\n set started(started: boolean) {\n this.setState('started')\n\n if (started) {\n this.start()\n } else {\n this.stop()\n }\n }\n\n get started() {\n return this.state.started\n }\n\n start() {\n if (this._started) {\n return\n }\n\n this._started = true\n\n this._raf = requestAnimationFrame(() => this.requestData())\n }\n\n stop() {\n if (!this._started) {\n return\n }\n\n this._started = false\n\n if (this._raf) {\n cancelAnimationFrame(this._raf)\n this._raf = 0\n }\n if (this._timeout) {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n }\n\n get variables() {\n return this.state.variables\n }\n\n set variables(variables) {\n this.setState('variables', variables)\n }\n\n async requestData() {\n let { scenarioName, variables, maskOnError } = this.state\n if (!scenarioName || !this.app.isViewMode) {\n return\n }\n\n try {\n variables = typeof variables == 'string' ? JSON.parse(variables) : variables\n } catch (e) {\n console.warn('runScenario mutation variable is not an object')\n }\n\n if (client) {\n try {\n var response = await client.query({\n query: gql`\n mutation ($scenarioName: String!, $variables: Object) {\n runScenario(scenarioName: $scenarioName, variables: $variables) {\n state\n message\n result\n }\n }\n `,\n variables: {\n scenarioName: scenarioName,\n variables\n }\n })\n\n this.data = response?.data?.runScenario?.result\n this.demask()\n } catch (e: any) {\n console.error(`calling runScenario mutation error: ${e?.message ?? e}`)\n this.mask()\n } finally {\n if (this._started && this.state.interval > 0) {\n this._timeout = setTimeout(() => this.requestData(), this.state.interval)\n }\n }\n }\n }\n\n mask() {\n const { maskOnError } = this.state\n if (maskOnError) {\n //@ts-ignore\n this.root?.target_element?.style.filter = maskOnError\n }\n }\n\n demask() {\n //@ts-ignore\n this.root?.target_element?.style.filter = 'none'\n }\n}\n\nComponent.register('scenario-run', ScenarioRun)\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@operato/scene-integration",
3
3
  "description": "Things factory integration component for things-scene",
4
- "version": "2.0.0-alpha.1",
4
+ "version": "2.0.0-alpha.10",
5
5
  "author": "heartyoh",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -33,8 +33,8 @@
33
33
  },
34
34
  "devDependencies": {
35
35
  "@hatiolab/prettier-config": "^1.0.0",
36
- "@things-factory/builder": "^7.0.0-alpha.0",
37
- "@things-factory/operato-board": "^7.0.0-alpha.0",
36
+ "@things-factory/builder": "^7.0.1-alpha.0",
37
+ "@things-factory/operato-board": "^7.0.1-alpha.0",
38
38
  "@typescript-eslint/eslint-plugin": "^4.33.0",
39
39
  "@typescript-eslint/parser": "^4.33.0",
40
40
  "@web/dev-server": "^0.1.28",
@@ -59,5 +59,5 @@
59
59
  "prettier --write"
60
60
  ]
61
61
  },
62
- "gitHead": "5d6eae9fabce5eb65acb6a8bb3e1eb58a9ede202"
62
+ "gitHead": "084ebb126e71f315faeb667ef4d6b0c274afeab2"
63
63
  }
@@ -206,13 +206,13 @@ export default class ScenarioRun extends DataSource(RectPath(Shape)) {
206
206
  const { maskOnError } = this.state
207
207
  if (maskOnError) {
208
208
  //@ts-ignore
209
- this.root.target_element.style.filter = maskOnError
209
+ this.root?.target_element?.style.filter = maskOnError
210
210
  }
211
211
  }
212
212
 
213
213
  demask() {
214
214
  //@ts-ignore
215
- this.root.target_element.style.filter = 'none'
215
+ this.root?.target_element?.style.filter = 'none'
216
216
  }
217
217
  }
218
218
 
@@ -1,11 +1,19 @@
1
1
  {
2
- "keyword": "keyword",
3
- "label.connection-name": "connection name",
4
- "label.scenario-name": "Scenario Name",
5
- "label.control-type": "Control Type",
6
- "label.init-data-endpoint": "Initial Data Endpoint",
7
- "label.instance-name": "Instance Name",
8
- "label.repeat-interval": "repeat interval",
9
- "label.run-on-start": "Run on Start",
10
- "label.mask-on-error": "Mask on Error"
2
+ "component.data-subscription": "Data subscription",
3
+ "component.scenario-control": "Scenario control",
4
+ "component.scenario-run": "Run scenario",
5
+ "component.scenario-start": "Start scenario",
6
+ "component.scenario-stop": "Stop scenario",
7
+ "component.scenario-instance-subscription": "Scenario instance subscription",
8
+ "component.scenario-queue-subscription": "Scenario queue subscription",
9
+ "component.connection-state-subscription": "Connection state subscription",
10
+ "component.connection-control": "Connection control",
11
+ "label.connection-name": "Connection name",
12
+ "label.scenario-name": "Scenario name",
13
+ "label.control-type": "Control type",
14
+ "label.init-data-endpoint": "Initial data endpoint",
15
+ "label.instance-name": "Instance name",
16
+ "label.repeat-interval": "Repeat interval",
17
+ "label.run-on-start": "Run on start",
18
+ "label.mask-on-error": "Mask on error"
11
19
  }
@@ -1,5 +1,13 @@
1
1
  {
2
- "keyword": "キーワード",
2
+ "component.data-subscription": "データサブスクリプション",
3
+ "component.scenario-control": "シナリオ制御",
4
+ "component.scenario-run": "シナリオ実行",
5
+ "component.scenario-start": "シナリオ開始",
6
+ "component.scenario-stop": "シナリオ停止",
7
+ "component.scenario-instance-subscription": "シナリオインスタンスのサブスクリプション",
8
+ "component.scenario-queue-subscription": "シナリオキューサブスクリプション",
9
+ "component.connection-state-subscription": "接続状態のサブスクリプション",
10
+ "component.connection-control": "接続制御",
3
11
  "label.connection-name": "接続名",
4
12
  "label.scenario-name": "シナリオ名",
5
13
  "label.control-type": "制御タイプ",
@@ -7,5 +15,5 @@
7
15
  "label.instance-name": "インスタンス名",
8
16
  "label.repeat-interval": "繰り返し間隔",
9
17
  "label.run-on-start": "開始時に実行",
10
- "label.mask-on-error": "エラー時にマスクをかける"
18
+ "label.mask-on-error": "エラー時にマスク"
11
19
  }
@@ -1,5 +1,13 @@
1
1
  {
2
- "keyword": "키워드",
2
+ "component.data-subscription": "데이타 구독",
3
+ "component.scenario-control": "시나리오 컨트롤",
4
+ "component.scenario-run": "시나리오 실행",
5
+ "component.scenario-start": "시나리오 시작",
6
+ "component.scenario-stop": "시나리오 종료",
7
+ "component.scenario-instance-subscription": "시나리오 인스턴스 구독",
8
+ "component.scenario-queue-subscription": "시나리오 큐 구독",
9
+ "component.connection-state-subscription": "커넥션 상태 구독",
10
+ "component.connection-control": "커넥션 컨트롤",
3
11
  "label.connection-name": "커넥션 이름",
4
12
  "label.scenario-name": "시나리오 명",
5
13
  "label.control-type": "작업 타입",
@@ -1,11 +1,19 @@
1
1
  {
2
- "keyword": "kata kunci",
2
+ "component.data-subscription": "langganan data",
3
+ "component.scenario-control": "kawal senario",
4
+ "component.scenario-run": "jalankan senario",
5
+ "component.scenario-start": "mula senario",
6
+ "component.scenario-stop": "hentikan senario",
7
+ "component.scenario-instance-subscription": "langganan contoh senario",
8
+ "component.scenario-queue-subscription": "langganan barisan senario",
9
+ "component.connection-state-subscription": "langganan status sambungan",
10
+ "component.connection-control": "kawal sambungan",
3
11
  "label.connection-name": "nama sambungan",
4
- "label.scenario-name": "Nama Skenario",
5
- "label.control-type": "Jenis Kawalan",
6
- "label.init-data-endpoint": "Titik Akhir Data Awal",
7
- "label.instance-name": "Nama Pembolehubah",
8
- "label.repeat-interval": "interval berulang",
9
- "label.run-on-start": "Jalankan pada Permulaan",
10
- "label.mask-on-error": "Mask pada Kesalahan"
12
+ "label.scenario-name": "nama senario",
13
+ "label.control-type": "jenis kawalan",
14
+ "label.init-data-endpoint": "titik akhir data awal",
15
+ "label.instance-name": "nama contoh",
16
+ "label.repeat-interval": "selang ulangan",
17
+ "label.run-on-start": "jalankan pada permulaan",
18
+ "label.mask-on-error": "mask dalam kes ralat"
11
19
  }
@@ -1,11 +1,19 @@
1
1
  {
2
- "keyword": "关键词",
2
+ "component.data-subscription": "数据订阅",
3
+ "component.scenario-control": "场景控制",
4
+ "component.scenario-run": "运行场景",
5
+ "component.scenario-start": "开始场景",
6
+ "component.scenario-stop": "停止场景",
7
+ "component.scenario-instance-subscription": "场景实例订阅",
8
+ "component.scenario-queue-subscription": "场景队列订阅",
9
+ "component.connection-state-subscription": "连接状态订阅",
10
+ "component.connection-control": "连接控制",
3
11
  "label.connection-name": "连接名称",
4
12
  "label.scenario-name": "场景名称",
5
13
  "label.control-type": "控制类型",
6
- "label.init-data-endpoint": "初始数据终端",
14
+ "label.init-data-endpoint": "初始数据端点",
7
15
  "label.instance-name": "实例名称",
8
16
  "label.repeat-interval": "重复间隔",
9
17
  "label.run-on-start": "启动时运行",
10
- "label.mask-on-error": "错误时启用掩码"
18
+ "label.mask-on-error": "错误时掩码"
11
19
  }