@operato/scene-manufacturing 8.0.0-alpha.8 → 8.0.0-beta.0

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,33 @@
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
+ ## [8.0.0-beta.0](https://github.com/things-scene/operato-scene/compare/v8.0.0-alpha.12...v8.0.0-beta.0) (2025-01-07)
7
+
8
+
9
+ ### :bug: Bug Fix
10
+
11
+ * @hatiolab/things-scene@^8.0.0-beta ([c32f4c0](https://github.com/things-scene/operato-scene/commit/c32f4c00decf244ca82ae17a41e33f269e1882e7))
12
+
13
+
14
+
15
+ ## [8.0.0-alpha.10](https://github.com/things-scene/operato-scene/compare/v8.0.0-alpha.9...v8.0.0-alpha.10) (2024-12-20)
16
+
17
+
18
+ ### :bug: Bug Fix
19
+
20
+ * typo tact-timer ([71cc1db](https://github.com/things-scene/operato-scene/commit/71cc1db7ac6278d478f831c6100acf90c8e4743c))
21
+
22
+
23
+
24
+ ## [8.0.0-alpha.9](https://github.com/things-scene/operato-scene/compare/v8.0.0-alpha.8...v8.0.0-alpha.9) (2024-10-14)
25
+
26
+
27
+ ### :bug: Bug Fix
28
+
29
+ * set started automatically when autostart is set on starting time ([20d6da5](https://github.com/things-scene/operato-scene/commit/20d6da5504f7ebe9f6441194b2ea48bcfb212ce4))
30
+
31
+
32
+
6
33
  ## [8.0.0-alpha.8](https://github.com/things-scene/operato-scene/compare/v8.0.0-alpha.7...v8.0.0-alpha.8) (2024-10-12)
7
34
 
8
35
 
package/db.sqlite CHANGED
Binary file
@@ -106,6 +106,7 @@ export default class TactTimer extends RectPath(Shape) {
106
106
  }
107
107
  const { autoStart, started } = this.state;
108
108
  if (autoStart || started) {
109
+ this.setState('started', true);
109
110
  this.start();
110
111
  }
111
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tact-timer.js","sourceRoot":"","sources":["../src/tact-timer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentNature, Properties, RectPath, Shape } from '@hatiolab/things-scene'\nimport format from './libs/format'\nimport { MASK } from './tact-timer-mask'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'string',\n label: 'start-time',\n name: 'startTime',\n placeholder: 'YYYYMMDDhhmmss'\n },\n {\n type: 'string',\n label: 'end-time',\n name: 'endTime',\n placeholder: 'YYYYMMDDhhmmss'\n },\n {\n type: 'string',\n label: 'format',\n name: 'format',\n placeholder: 'hh:mm:ss'\n },\n {\n type: 'select',\n label: 'progress-direction',\n name: 'progressDirection',\n property: {\n options: ['', 'increase', 'decrease']\n }\n },\n {\n type: 'color',\n label: 'tact-timer-mask-color',\n name: 'maskColor'\n },\n {\n type: 'color',\n label: 'before-due-progress-color',\n name: 'beforeDueProgressColor'\n },\n {\n type: 'color',\n label: 'over-due-progress-color',\n name: 'overDueProgressColor'\n },\n {\n type: 'color',\n label: 'before-due-font-color',\n name: 'beforeDueFontColor'\n },\n {\n type: 'color',\n label: 'over-due-font-color',\n name: 'overDueFontColor'\n },\n {\n type: 'color',\n label: 'under-threshold-color',\n name: 'underThresholdColor'\n },\n {\n type: 'number',\n label: 'progress-threshold',\n name: 'progressThreshold',\n placeholder: '%'\n },\n {\n type: 'number',\n label: 'round',\n name: 'round'\n },\n {\n type: 'boolean',\n label: 'auto-start',\n name: 'autoStart'\n },\n {\n type: 'boolean',\n label: 'show-progress',\n name: 'showProgress'\n },\n {\n type: 'boolean',\n label: 'show-timer',\n name: 'showTimer'\n }\n ],\n help: 'scene/component/manufacturing/tact-timer'\n}\n\nexport default class TactTimer extends RectPath(Shape) {\n private _start: number = 0\n private _due: number = 0\n private imageElement?: HTMLImageElement\n\n get nature() {\n return NATURE\n }\n\n ready() {\n if (!this.app.isViewMode) {\n return\n }\n\n const { autoStart, started } = this.state\n\n if (autoStart || started) {\n this.start()\n }\n }\n\n start() {\n const { startTime, endTime, hidden } = this.state\n const start = this.parseTime(startTime)\n const end = this.parseTime(endTime)\n\n if (start && end && !hidden) {\n this._due = end.getTime()\n this._start = start.getTime()\n this.counting()\n }\n }\n\n stop() {\n this.started = false\n }\n\n onchange(after: Properties) {\n if ('startTime' in after || 'endTime' in after || 'hidden' in after) {\n this.start()\n }\n\n if ('maskColor' in after) {\n delete this.imageElement\n }\n }\n\n getImageElement(): HTMLImageElement | undefined {\n if (!this.imageElement) {\n const { maskColor = 'black' } = this.state\n\n this.imageElement = new Image()\n this.imageElement.src =\n 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(MASK.replace(/{{fillColor}}/g, maskColor))\n }\n\n return this.imageElement\n }\n\n counting() {\n const { hidden, started } = this.state\n if (this.disposed || hidden || !started) {\n return\n }\n\n requestAnimationFrame(() => {\n const { showTimer, beforeDueFontColor, overDueFontColor, fontColor } = this.state\n const countdown = this.countdown\n\n this.setState('fontColor', (this.countdown > 0 ? beforeDueFontColor : overDueFontColor) || fontColor)\n\n if (showTimer) {\n const text = format(Math.abs(countdown), this.getState('format'))\n this.text = text\n } else {\n this.text = ''\n }\n\n this.setState('data', this.countdown)\n\n setTimeout(() => {\n this.counting()\n }, 1000)\n })\n }\n\n render(context: CanvasRenderingContext2D) {\n var {\n top,\n left,\n height,\n width,\n round = 0,\n fontColor,\n maskColor,\n beforeDueFontColor,\n overDueFontColor,\n beforeDueProgressColor = 'transparent',\n overDueProgressColor = 'transparent',\n underThresholdColor = 'transparent',\n progressDirection = 'increase',\n progressThreshold = 0,\n showProgress\n } = this.state\n\n const increase = this.countdown > 0\n const totalDuration = (this._due - this._start) / 1000\n const underThreshold = this.countdown / totalDuration < progressThreshold / 100\n\n // progress의 색상\n context.beginPath()\n context.roundRect(left, top, width, height, round)\n context.clip()\n this.drawFill(context)\n\n // value의 색상\n context.beginPath()\n\n if (!showProgress) {\n return\n }\n\n var progress = Math.abs((this.countdown / totalDuration) * 100)\n\n if (!isNaN(progress)) {\n progress = width - (width * progress) / 100\n progress = Math.max(Math.min(progress, width), 0)\n\n if (progressDirection == 'increase') {\n context.rect(left, top, progress, height)\n } else {\n context.rect(left + progress, top, width - progress, height)\n }\n\n context.fillStyle = increase\n ? underThreshold\n ? underThresholdColor\n : beforeDueProgressColor\n : overDueProgressColor\n context.fill()\n\n context.beginPath()\n }\n\n const image = this.getImageElement()\n this.drawImage(context, image!, left - 2, top - 2, width + 4, height + 4)\n\n context.roundRect(left, top, width, height, round)\n\n this.setState('fontColor', (increase ? beforeDueFontColor : overDueFontColor) || fontColor)\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawStroke(context)\n this.drawText(context)\n }\n\n parseTime(timeString: string): Date | undefined {\n if (!timeString || timeString.length !== 14) {\n return undefined\n }\n const year = parseInt(timeString.slice(0, 4), 10)\n const month = parseInt(timeString.slice(4, 6), 10) - 1\n const day = parseInt(timeString.slice(6, 8), 10)\n const hour = parseInt(timeString.slice(8, 10), 10)\n const minute = parseInt(timeString.slice(10, 12), 10)\n const second = parseInt(timeString.slice(12, 14), 10)\n\n return new Date(year, month, day, hour, minute, second)\n }\n\n get countdown(): number {\n const due = this._due || 0\n const now = Date.now()\n\n return Math.round((due - now) / 1000)\n }\n\n get value() {\n const { startTime, endTime } = this.state\n return [startTime, endTime]\n }\n\n set value(v) {\n if (v instanceof Array) {\n const [startTime, endTime] = v\n this.setState({\n startTime,\n endTime\n })\n } else if (typeof v == 'object') {\n const { startTime, endTime } = v\n this.setState({\n startTime,\n endTime\n })\n } else if (typeof v == 'string') {\n const [startTime, endTime] = (v as string).split(/[-+/%$#_,]+/)\n this.setState({\n startTime,\n endTime\n })\n } else {\n this.setState({\n startTime: undefined,\n endTime: undefined\n })\n }\n }\n\n get started() {\n return this.getState('started')\n }\n\n set started(started) {\n if (this.started !== started) {\n this.setState('started', started)\n if (started) {\n this.start()\n }\n }\n }\n}\n\nComponent.register('tact-timer', TactTimer)\n"]}
1
+ {"version":3,"file":"tact-timer.js","sourceRoot":"","sources":["../src/tact-timer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentNature, Properties, RectPath, Shape } from '@hatiolab/things-scene'\nimport format from './libs/format'\nimport { MASK } from './tact-timer-mask'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'string',\n label: 'start-time',\n name: 'startTime',\n placeholder: 'YYYYMMDDhhmmss'\n },\n {\n type: 'string',\n label: 'end-time',\n name: 'endTime',\n placeholder: 'YYYYMMDDhhmmss'\n },\n {\n type: 'string',\n label: 'format',\n name: 'format',\n placeholder: 'hh:mm:ss'\n },\n {\n type: 'select',\n label: 'progress-direction',\n name: 'progressDirection',\n property: {\n options: ['', 'increase', 'decrease']\n }\n },\n {\n type: 'color',\n label: 'tact-timer-mask-color',\n name: 'maskColor'\n },\n {\n type: 'color',\n label: 'before-due-progress-color',\n name: 'beforeDueProgressColor'\n },\n {\n type: 'color',\n label: 'over-due-progress-color',\n name: 'overDueProgressColor'\n },\n {\n type: 'color',\n label: 'before-due-font-color',\n name: 'beforeDueFontColor'\n },\n {\n type: 'color',\n label: 'over-due-font-color',\n name: 'overDueFontColor'\n },\n {\n type: 'color',\n label: 'under-threshold-color',\n name: 'underThresholdColor'\n },\n {\n type: 'number',\n label: 'progress-threshold',\n name: 'progressThreshold',\n placeholder: '%'\n },\n {\n type: 'number',\n label: 'round',\n name: 'round'\n },\n {\n type: 'boolean',\n label: 'auto-start',\n name: 'autoStart'\n },\n {\n type: 'boolean',\n label: 'show-progress',\n name: 'showProgress'\n },\n {\n type: 'boolean',\n label: 'show-timer',\n name: 'showTimer'\n }\n ],\n help: 'scene/component/manufacturing/tact-timer'\n}\n\nexport default class TactTimer extends RectPath(Shape) {\n private _start: number = 0\n private _due: number = 0\n private imageElement?: HTMLImageElement\n\n get nature() {\n return NATURE\n }\n\n ready() {\n if (!this.app.isViewMode) {\n return\n }\n\n const { autoStart, started } = this.state\n\n if (autoStart || started) {\n this.setState('started', true)\n\n this.start()\n }\n }\n\n start() {\n const { startTime, endTime, hidden } = this.state\n const start = this.parseTime(startTime)\n const end = this.parseTime(endTime)\n\n if (start && end && !hidden) {\n this._due = end.getTime()\n this._start = start.getTime()\n this.counting()\n }\n }\n\n stop() {\n this.started = false\n }\n\n onchange(after: Properties) {\n if ('startTime' in after || 'endTime' in after || 'hidden' in after) {\n this.start()\n }\n\n if ('maskColor' in after) {\n delete this.imageElement\n }\n }\n\n getImageElement(): HTMLImageElement | undefined {\n if (!this.imageElement) {\n const { maskColor = 'black' } = this.state\n\n this.imageElement = new Image()\n this.imageElement.src =\n 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(MASK.replace(/{{fillColor}}/g, maskColor))\n }\n\n return this.imageElement\n }\n\n counting() {\n const { hidden, started } = this.state\n if (this.disposed || hidden || !started) {\n return\n }\n\n requestAnimationFrame(() => {\n const { showTimer, beforeDueFontColor, overDueFontColor, fontColor } = this.state\n const countdown = this.countdown\n\n this.setState('fontColor', (this.countdown > 0 ? beforeDueFontColor : overDueFontColor) || fontColor)\n\n if (showTimer) {\n const text = format(Math.abs(countdown), this.getState('format'))\n this.text = text\n } else {\n this.text = ''\n }\n\n this.setState('data', this.countdown)\n\n setTimeout(() => {\n this.counting()\n }, 1000)\n })\n }\n\n render(context: CanvasRenderingContext2D) {\n var {\n top,\n left,\n height,\n width,\n round = 0,\n fontColor,\n maskColor,\n beforeDueFontColor,\n overDueFontColor,\n beforeDueProgressColor = 'transparent',\n overDueProgressColor = 'transparent',\n underThresholdColor = 'transparent',\n progressDirection = 'increase',\n progressThreshold = 0,\n showProgress\n } = this.state\n\n const increase = this.countdown > 0\n const totalDuration = (this._due - this._start) / 1000\n const underThreshold = this.countdown / totalDuration < progressThreshold / 100\n\n // progress의 색상\n context.beginPath()\n context.roundRect(left, top, width, height, round)\n context.clip()\n this.drawFill(context)\n\n // value의 색상\n context.beginPath()\n\n if (!showProgress) {\n return\n }\n\n var progress = Math.abs((this.countdown / totalDuration) * 100)\n\n if (!isNaN(progress)) {\n progress = width - (width * progress) / 100\n progress = Math.max(Math.min(progress, width), 0)\n\n if (progressDirection == 'increase') {\n context.rect(left, top, progress, height)\n } else {\n context.rect(left + progress, top, width - progress, height)\n }\n\n context.fillStyle = increase\n ? underThreshold\n ? underThresholdColor\n : beforeDueProgressColor\n : overDueProgressColor\n context.fill()\n\n context.beginPath()\n }\n\n const image = this.getImageElement()\n this.drawImage(context, image!, left - 2, top - 2, width + 4, height + 4)\n\n context.roundRect(left, top, width, height, round)\n\n this.setState('fontColor', (increase ? beforeDueFontColor : overDueFontColor) || fontColor)\n }\n\n postrender(context: CanvasRenderingContext2D) {\n this.drawStroke(context)\n this.drawText(context)\n }\n\n parseTime(timeString: string): Date | undefined {\n if (!timeString || timeString.length !== 14) {\n return undefined\n }\n const year = parseInt(timeString.slice(0, 4), 10)\n const month = parseInt(timeString.slice(4, 6), 10) - 1\n const day = parseInt(timeString.slice(6, 8), 10)\n const hour = parseInt(timeString.slice(8, 10), 10)\n const minute = parseInt(timeString.slice(10, 12), 10)\n const second = parseInt(timeString.slice(12, 14), 10)\n\n return new Date(year, month, day, hour, minute, second)\n }\n\n get countdown(): number {\n const due = this._due || 0\n const now = Date.now()\n\n return Math.round((due - now) / 1000)\n }\n\n get value() {\n const { startTime, endTime } = this.state\n return [startTime, endTime]\n }\n\n set value(v) {\n if (v instanceof Array) {\n const [startTime, endTime] = v\n this.setState({\n startTime,\n endTime\n })\n } else if (typeof v == 'object') {\n const { startTime, endTime } = v\n this.setState({\n startTime,\n endTime\n })\n } else if (typeof v == 'string') {\n const [startTime, endTime] = (v as string).split(/[-+/%$#_,]+/)\n this.setState({\n startTime,\n endTime\n })\n } else {\n this.setState({\n startTime: undefined,\n endTime: undefined\n })\n }\n }\n\n get started() {\n return this.getState('started')\n }\n\n set started(started) {\n if (this.started !== started) {\n this.setState('started', started)\n if (started) {\n this.start()\n }\n }\n }\n}\n\nComponent.register('tact-timer', TactTimer)\n"]}
@@ -14,6 +14,11 @@
14
14
  "date": 1728718043975,
15
15
  "name": "logs/application-2024-10-12-16.log",
16
16
  "hash": "d1d6c8f0d82c2cbff8ea0c8599d8a4a1343574385480fbdcc49539d10f02d125"
17
+ },
18
+ {
19
+ "date": 1728748811809,
20
+ "name": "logs/application-2024-10-13-01.log",
21
+ "hash": "9be149efac80ac4f01c989c1cc0d9c197a13b32c5ce58d02448507de55af5801"
17
22
  }
18
23
  ],
19
24
  "hashType": "sha256"
@@ -14,6 +14,11 @@
14
14
  "date": 1728718045743,
15
15
  "name": "logs/connections-2024-10-12-16.log",
16
16
  "hash": "e6e10c0f311ee6f39c3b68f2157928aaa91be5cd6460ac602df43dfdab574184"
17
+ },
18
+ {
19
+ "date": 1728748813512,
20
+ "name": "logs/connections-2024-10-13-01.log",
21
+ "hash": "19229fe0bbd7daffba86b8c21517356b37ab6b83d3d337b4faac3e42a47eec51"
17
22
  }
18
23
  ],
19
24
  "hashType": "sha256"
@@ -0,0 +1,128 @@
1
+ 2024-10-13T01:00:13+09:00 info: File Storage is Ready.
2
+ 2024-10-13T01:00:13+09:00 error: oracledb module loading failed
3
+ 2024-10-13T01:00:13+09:00 error: oracledb module loading failed
4
+ 2024-10-13T01:00:13+09:00 error: Cannot find module '@thiagoelg/node-printer'
5
+ Require stack:
6
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/print.js
7
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/index.js
8
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/index.js
9
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/lib/module-loader.js
10
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/index.js
11
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/dist-server/server-dev.js
12
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/bin/things-factory-dev
13
+ 2024-10-13T01:00:14+09:00 error: Cannot find module '@thiagoelg/node-printer'
14
+ Require stack:
15
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/middlewares/index.js
16
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/index.js
17
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/lib/module-loader.js
18
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/index.js
19
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/dist-server/server-dev.js
20
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/bin/things-factory-dev
21
+ 2024-10-13T01:00:15+09:00 info: Default DataSource established
22
+ 2024-10-13T01:00:16+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
23
+ 2024-10-13T01:00:16+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
24
+ 2024-10-13T01:23:40+09:00 info: File Storage is Ready.
25
+ 2024-10-13T01:23:41+09:00 error: Error: Cannot find module 'oracledb'
26
+ Require stack:
27
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/oracle-connector.js
28
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/index.js
29
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/index.js
30
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/index.js
31
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/lib/module-loader.js
32
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/index.js
33
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/dist-server/server-dev.js
34
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/bin/things-factory-dev
35
+ at Module._resolveFilename (node:internal/modules/cjs/loader:1145:15)
36
+ at Module._load (node:internal/modules/cjs/loader:986:27)
37
+ at Module.require (node:internal/modules/cjs/loader:1233:19)
38
+ at require (node:internal/modules/helpers:179:18)
39
+ at Object.<anonymous> (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/oracle-connector.js:7:20)
40
+ at Module._compile (node:internal/modules/cjs/loader:1358:14)
41
+ at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
42
+ at Module.load (node:internal/modules/cjs/loader:1208:32)
43
+ at Module._load (node:internal/modules/cjs/loader:1024:12)
44
+ at Module.require (node:internal/modules/cjs/loader:1233:19)
45
+ at require (node:internal/modules/helpers:179:18)
46
+ at Object.<anonymous> (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/connector/index.js:11:1)
47
+ at Module._compile (node:internal/modules/cjs/loader:1358:14)
48
+ at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
49
+ at Module.load (node:internal/modules/cjs/loader:1208:32)
50
+ at Module._load (node:internal/modules/cjs/loader:1024:12)
51
+ 2024-10-13T01:23:41+09:00 error: Error: Cannot find module 'oracledb'
52
+ Require stack:
53
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/oracle-procedure.js
54
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/index.js
55
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/index.js
56
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/index.js
57
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/lib/module-loader.js
58
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/index.js
59
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/dist-server/server-dev.js
60
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/bin/things-factory-dev
61
+ at Module._resolveFilename (node:internal/modules/cjs/loader:1145:15)
62
+ at Module._load (node:internal/modules/cjs/loader:986:27)
63
+ at Module.require (node:internal/modules/cjs/loader:1233:19)
64
+ at require (node:internal/modules/helpers:179:18)
65
+ at Object.<anonymous> (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/oracle-procedure.js:9:20)
66
+ at Module._compile (node:internal/modules/cjs/loader:1358:14)
67
+ at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
68
+ at Module.load (node:internal/modules/cjs/loader:1208:32)
69
+ at Module._load (node:internal/modules/cjs/loader:1024:12)
70
+ at Module.require (node:internal/modules/cjs/loader:1233:19)
71
+ at require (node:internal/modules/helpers:179:18)
72
+ at Object.<anonymous> (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/integration-base/dist-server/engine/task/index.js:43:1)
73
+ at Module._compile (node:internal/modules/cjs/loader:1358:14)
74
+ at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
75
+ at Module.load (node:internal/modules/cjs/loader:1208:32)
76
+ at Module._load (node:internal/modules/cjs/loader:1024:12)
77
+ 2024-10-13T01:23:41+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
78
+ Require stack:
79
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/print.js
80
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/index.js
81
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/index.js
82
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/lib/module-loader.js
83
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/index.js
84
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/dist-server/server-dev.js
85
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/bin/things-factory-dev
86
+ at Module._resolveFilename (node:internal/modules/cjs/loader:1145:15)
87
+ at Module._load (node:internal/modules/cjs/loader:986:27)
88
+ at Module.require (node:internal/modules/cjs/loader:1233:19)
89
+ at require (node:internal/modules/helpers:179:18)
90
+ at Object.<anonymous> (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/print.js:10:17)
91
+ at Module._compile (node:internal/modules/cjs/loader:1358:14)
92
+ at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
93
+ at Module.load (node:internal/modules/cjs/loader:1208:32)
94
+ at Module._load (node:internal/modules/cjs/loader:1024:12)
95
+ at Module.require (node:internal/modules/cjs/loader:1233:19)
96
+ at require (node:internal/modules/helpers:179:18)
97
+ at Object.<anonymous> (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/board-service/dist-server/controllers/index.js:4:17)
98
+ at Module._compile (node:internal/modules/cjs/loader:1358:14)
99
+ at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
100
+ at Module.load (node:internal/modules/cjs/loader:1208:32)
101
+ at Module._load (node:internal/modules/cjs/loader:1024:12)
102
+ 2024-10-13T01:23:42+09:00 error: Error: Cannot find module '@thiagoelg/node-printer'
103
+ Require stack:
104
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/middlewares/index.js
105
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/index.js
106
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/lib/module-loader.js
107
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/env/index.js
108
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/dist-server/server-dev.js
109
+ - /Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/shell/bin/things-factory-dev
110
+ at Module._resolveFilename (node:internal/modules/cjs/loader:1145:15)
111
+ at Module._load (node:internal/modules/cjs/loader:986:27)
112
+ at Module.require (node:internal/modules/cjs/loader:1233:19)
113
+ at require (node:internal/modules/helpers:179:18)
114
+ at Object.<anonymous> (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/middlewares/index.js:8:19)
115
+ at Module._compile (node:internal/modules/cjs/loader:1358:14)
116
+ at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
117
+ at Module.load (node:internal/modules/cjs/loader:1208:32)
118
+ at Module._load (node:internal/modules/cjs/loader:1024:12)
119
+ at Module.require (node:internal/modules/cjs/loader:1233:19)
120
+ at require (node:internal/modules/helpers:179:18)
121
+ at Object.<anonymous> (/Users/super/Documents/GitHub/operato-scene/node_modules/@things-factory/print-service/dist-server/index.js:4:22)
122
+ at Module._compile (node:internal/modules/cjs/loader:1358:14)
123
+ at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
124
+ at Module.load (node:internal/modules/cjs/loader:1208:32)
125
+ at Module._load (node:internal/modules/cjs/loader:1024:12)
126
+ 2024-10-13T01:23:43+09:00 info: Default DataSource established
127
+ 2024-10-13T01:23:46+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
128
+ 2024-10-13T01:23:46+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
@@ -0,0 +1,97 @@
1
+ 2024-10-13T01:00:16+09:00 info: Initializing ConnectionManager...
2
+ 2024-10-13T01:00:16+09:00 info: Connector 'echo-back-server' started to ready
3
+ 2024-10-13T01:00:16+09:00 info: Connector 'echo-back' started to ready
4
+ 2024-10-13T01:00:16+09:00 info: Connector 'http-connector' started to ready
5
+ 2024-10-13T01:00:16+09:00 info: Connector 'graphql-connector' started to ready
6
+ 2024-10-13T01:00:16+09:00 info: Connector 'sqlite-connector' started to ready
7
+ 2024-10-13T01:00:16+09:00 info: Connector 'postgresql-connector' started to ready
8
+ 2024-10-13T01:00:16+09:00 info: Connector 'mqtt-connector' started to ready
9
+ 2024-10-13T01:00:16+09:00 info: Connector 'mssql-connector' started to ready
10
+ 2024-10-13T01:00:16+09:00 info: Connector 'oracle-connector' started to ready
11
+ 2024-10-13T01:00:16+09:00 info: Connector 'mysql-connector' started to ready
12
+ 2024-10-13T01:00:16+09:00 info: Connector 'socket-server' started to ready
13
+ 2024-10-13T01:00:16+09:00 info: Connector 'operato-connector' started to ready
14
+ 2024-10-13T01:00:16+09:00 info: Connector 'email-connector' started to ready
15
+ 2024-10-13T01:00:16+09:00 info: Connector 'influxdb-connector' started to ready
16
+ 2024-10-13T01:00:16+09:00 info: Connector 'msgraph-connector' started to ready
17
+ 2024-10-13T01:00:16+09:00 info: echo-back-servers are ready
18
+ 2024-10-13T01:00:16+09:00 info: echo-back connections are ready
19
+ 2024-10-13T01:00:16+09:00 info: http-connector connections are ready
20
+ 2024-10-13T01:00:16+09:00 info: graphql-connector connections are ready
21
+ 2024-10-13T01:00:16+09:00 info: sqlite-connector connections are ready
22
+ 2024-10-13T01:00:16+09:00 info: postgresql-connector connections are ready
23
+ 2024-10-13T01:00:16+09:00 info: mqtt-connector connections are ready
24
+ 2024-10-13T01:00:16+09:00 info: mssql-connector connections are ready
25
+ 2024-10-13T01:00:16+09:00 info: oracle-connector connections are ready
26
+ 2024-10-13T01:00:16+09:00 info: mysql-connector connections are ready
27
+ 2024-10-13T01:00:16+09:00 info: socket servers are ready
28
+ 2024-10-13T01:00:16+09:00 info: graphql-connector connections are ready
29
+ 2024-10-13T01:00:16+09:00 info: email connections are ready
30
+ 2024-10-13T01:00:16+09:00 info: influxdb connections are ready
31
+ 2024-10-13T01:00:16+09:00 info: msgraph-connector connections are ready
32
+ 2024-10-13T01:00:16+09:00 info: All connector for 'echo-back-server' ready
33
+ 2024-10-13T01:00:16+09:00 info: All connector for 'echo-back' ready
34
+ 2024-10-13T01:00:16+09:00 info: All connector for 'http-connector' ready
35
+ 2024-10-13T01:00:16+09:00 info: All connector for 'graphql-connector' ready
36
+ 2024-10-13T01:00:16+09:00 info: All connector for 'sqlite-connector' ready
37
+ 2024-10-13T01:00:16+09:00 info: All connector for 'postgresql-connector' ready
38
+ 2024-10-13T01:00:16+09:00 info: All connector for 'mqtt-connector' ready
39
+ 2024-10-13T01:00:16+09:00 info: All connector for 'mssql-connector' ready
40
+ 2024-10-13T01:00:16+09:00 info: All connector for 'oracle-connector' ready
41
+ 2024-10-13T01:00:16+09:00 info: All connector for 'mysql-connector' ready
42
+ 2024-10-13T01:00:16+09:00 info: All connector for 'socket-server' ready
43
+ 2024-10-13T01:00:16+09:00 info: All connector for 'operato-connector' ready
44
+ 2024-10-13T01:00:16+09:00 info: All connector for 'email-connector' ready
45
+ 2024-10-13T01:00:16+09:00 info: All connector for 'influxdb-connector' ready
46
+ 2024-10-13T01:00:16+09:00 info: All connector for 'msgraph-connector' ready
47
+ 2024-10-13T01:00:16+09:00 info: ConnectionManager initialization done:
48
+ 2024-10-13T01:23:46+09:00 info: Initializing ConnectionManager...
49
+ 2024-10-13T01:23:46+09:00 info: Connector 'echo-back-server' started to ready
50
+ 2024-10-13T01:23:46+09:00 info: Connector 'echo-back' started to ready
51
+ 2024-10-13T01:23:46+09:00 info: Connector 'http-connector' started to ready
52
+ 2024-10-13T01:23:46+09:00 info: Connector 'graphql-connector' started to ready
53
+ 2024-10-13T01:23:46+09:00 info: Connector 'sqlite-connector' started to ready
54
+ 2024-10-13T01:23:46+09:00 info: Connector 'postgresql-connector' started to ready
55
+ 2024-10-13T01:23:46+09:00 info: Connector 'mqtt-connector' started to ready
56
+ 2024-10-13T01:23:46+09:00 info: Connector 'mssql-connector' started to ready
57
+ 2024-10-13T01:23:46+09:00 info: Connector 'oracle-connector' started to ready
58
+ 2024-10-13T01:23:46+09:00 info: Connector 'mysql-connector' started to ready
59
+ 2024-10-13T01:23:46+09:00 info: Connector 'socket-server' started to ready
60
+ 2024-10-13T01:23:46+09:00 info: Connector 'operato-connector' started to ready
61
+ 2024-10-13T01:23:46+09:00 info: Connector 'email-connector' started to ready
62
+ 2024-10-13T01:23:46+09:00 info: Connector 'influxdb-connector' started to ready
63
+ 2024-10-13T01:23:46+09:00 info: Connector 'msgraph-connector' started to ready
64
+ 2024-10-13T01:23:46+09:00 info: Connector 'proxy-connector' started to ready
65
+ 2024-10-13T01:23:46+09:00 info: echo-back-servers are ready
66
+ 2024-10-13T01:23:46+09:00 info: echo-back connections are ready
67
+ 2024-10-13T01:23:46+09:00 info: http-connector connections are ready
68
+ 2024-10-13T01:23:46+09:00 info: graphql-connector connections are ready
69
+ 2024-10-13T01:23:46+09:00 info: sqlite-connector connections are ready
70
+ 2024-10-13T01:23:46+09:00 info: postgresql-connector connections are ready
71
+ 2024-10-13T01:23:46+09:00 info: mqtt-connector connections are ready
72
+ 2024-10-13T01:23:46+09:00 info: mssql-connector connections are ready
73
+ 2024-10-13T01:23:46+09:00 info: oracle-connector connections are ready
74
+ 2024-10-13T01:23:46+09:00 info: mysql-connector connections are ready
75
+ 2024-10-13T01:23:46+09:00 info: socket servers are ready
76
+ 2024-10-13T01:23:46+09:00 info: operato-connector connections are ready
77
+ 2024-10-13T01:23:46+09:00 info: email connections are ready
78
+ 2024-10-13T01:23:46+09:00 info: influxdb connections are ready
79
+ 2024-10-13T01:23:46+09:00 info: msgraph-connector connections are ready
80
+ 2024-10-13T01:23:46+09:00 info: proxy-connector connections are ready
81
+ 2024-10-13T01:23:46+09:00 info: All connector for 'echo-back-server' ready
82
+ 2024-10-13T01:23:46+09:00 info: All connector for 'echo-back' ready
83
+ 2024-10-13T01:23:46+09:00 info: All connector for 'http-connector' ready
84
+ 2024-10-13T01:23:46+09:00 info: All connector for 'graphql-connector' ready
85
+ 2024-10-13T01:23:46+09:00 info: All connector for 'sqlite-connector' ready
86
+ 2024-10-13T01:23:46+09:00 info: All connector for 'postgresql-connector' ready
87
+ 2024-10-13T01:23:46+09:00 info: All connector for 'mqtt-connector' ready
88
+ 2024-10-13T01:23:46+09:00 info: All connector for 'mssql-connector' ready
89
+ 2024-10-13T01:23:46+09:00 info: All connector for 'oracle-connector' ready
90
+ 2024-10-13T01:23:46+09:00 info: All connector for 'mysql-connector' ready
91
+ 2024-10-13T01:23:46+09:00 info: All connector for 'socket-server' ready
92
+ 2024-10-13T01:23:46+09:00 info: All connector for 'operato-connector' ready
93
+ 2024-10-13T01:23:46+09:00 info: All connector for 'email-connector' ready
94
+ 2024-10-13T01:23:46+09:00 info: All connector for 'influxdb-connector' ready
95
+ 2024-10-13T01:23:46+09:00 info: All connector for 'msgraph-connector' ready
96
+ 2024-10-13T01:23:46+09:00 info: All connector for 'proxy-connector' ready
97
+ 2024-10-13T01:23:46+09:00 info: ConnectionManager initialization done:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@operato/scene-manufacturing",
3
3
  "description": "Things scene components for manufacturing industry",
4
- "version": "8.0.0-alpha.8",
4
+ "version": "8.0.0-beta.0",
5
5
  "license": "MIT",
6
6
  "things-scene": true,
7
7
  "author": "heartyoh",
@@ -27,7 +27,7 @@
27
27
  "migration": "things-factory-migration"
28
28
  },
29
29
  "dependencies": {
30
- "@hatiolab/things-scene": "^8.0.0-alpha"
30
+ "@hatiolab/things-scene": "^8.0.0-beta"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@hatiolab/prettier-config": "^1.0.0",
@@ -57,5 +57,5 @@
57
57
  "prettier --write"
58
58
  ]
59
59
  },
60
- "gitHead": "4cfc72ee61a91cc2a9e247bd64101b2d8e6cfcdd"
60
+ "gitHead": "b3cf6db1fbdcb9f4feac35560517fec3bb42c493"
61
61
  }
package/schema.graphql CHANGED
@@ -752,8 +752,6 @@ type Employee {
752
752
  address: String
753
753
  alias: String
754
754
  approvalLines: [ApprovalLine!]!
755
- bankAccount: String
756
- bankName: String
757
755
  contact: Contact
758
756
  controlNo: String!
759
757
  createdAt: DateTimeISO
@@ -762,10 +760,8 @@ type Employee {
762
760
  department: Department
763
761
  domain: Domain!
764
762
  email: EmailAddress
765
- emergencyContact: String
766
- emergencyContactPhone: String
767
763
  extension: String
768
- hiredOn: DateTimeISO
764
+ hiredOn: String
769
765
  id: ID!
770
766
  jobPosition: String
771
767
  jobResponsibility: String
@@ -775,7 +771,7 @@ type Employee {
775
771
  phone: String
776
772
  photo: String
777
773
  profile: Profile
778
- retiredOn: DateTimeISO
774
+ retiredAt: String
779
775
  supervises: [Employee!]!
780
776
  supervisor: Employee
781
777
  type: String
@@ -793,22 +789,18 @@ type EmployeeList {
793
789
  input EmployeePatch {
794
790
  active: Boolean
795
791
  alias: String
796
- bankAccount: String
797
- bankName: String
798
792
  contact: ObjectRefForContact
799
793
  controlNo: String
800
794
  cuFlag: String
801
795
  department: ObjectRefForDepartment
802
- emergencyContact: String
803
- emergencyContactPhone: String
804
- hiredOn: DateTimeISO
796
+ hiredOn: String
805
797
  id: ID
806
798
  jobPosition: String
807
799
  jobResponsibility: String
808
800
  name: String
809
801
  note: String
810
802
  photo: Upload
811
- retiredOn: DateTimeISO
803
+ retiredAt: String
812
804
  supervisor: ObjectRefForEmployee
813
805
  type: EmployeeType
814
806
  user: ObjectRefForUser
@@ -1173,6 +1165,7 @@ type Menu {
1173
1165
  name: String
1174
1166
  pagination: Boolean
1175
1167
  parent: Menu
1168
+ privilege: PrivilegeObject
1176
1169
  rank: Float
1177
1170
  resourceId: String
1178
1171
  resourceName: String
@@ -1494,6 +1487,7 @@ input MenuPatch {
1494
1487
  name: String
1495
1488
  pagination: Boolean
1496
1489
  parent: ObjectRef
1490
+ privilege: PrivilegeInput
1497
1491
  rank: Int
1498
1492
  resourceId: String
1499
1493
  resourceName: String
@@ -2456,21 +2450,17 @@ input NewDepartment {
2456
2450
  input NewEmployee {
2457
2451
  active: Boolean
2458
2452
  alias: String
2459
- bankAccount: String
2460
- bankName: String
2461
2453
  contact: ObjectRefForContact
2462
2454
  controlNo: String!
2463
2455
  department: ObjectRefForDepartment
2464
- emergencyContact: String
2465
- emergencyContactPhone: String
2466
2456
  extension: String
2467
- hiredOn: DateTimeISO
2457
+ hiredOn: String
2468
2458
  jobPosition: String
2469
2459
  jobResponsibility: String
2470
2460
  name: String!
2471
2461
  note: String
2472
2462
  photo: Upload
2473
- retiredOn: DateTimeISO
2463
+ retiredAt: String
2474
2464
  supervisor: ObjectRefForEmployee
2475
2465
  type: EmployeeType
2476
2466
  user: ObjectRefForUser
@@ -2570,6 +2560,7 @@ input NewMenu {
2570
2560
  name: String!
2571
2561
  pagination: Boolean
2572
2562
  parent: ObjectRef
2563
+ privilege: PrivilegeInput
2573
2564
  rank: Int
2574
2565
  resourceId: String
2575
2566
  resourceName: String
@@ -2812,7 +2803,7 @@ input NewScenario {
2812
2803
  active: Boolean
2813
2804
  description: String
2814
2805
  name: String!
2815
- role: ObjectRef
2806
+ privilege: PrivilegeInput
2816
2807
  schedule: String
2817
2808
  timezone: String
2818
2809
  ttl: Float
@@ -3100,7 +3091,7 @@ input ObjectRefForEmployee {
3100
3091
  """Field description"""
3101
3092
  description: String
3102
3093
  email: EmailAddress
3103
- hiredOn: DateTimeISO
3094
+ hiredOn: String
3104
3095
 
3105
3096
  """Field id"""
3106
3097
  id: ID!
@@ -3437,6 +3428,13 @@ type Privilege {
3437
3428
  updater: User
3438
3429
  }
3439
3430
 
3431
+ input PrivilegeInput {
3432
+ category: String
3433
+ owner: Boolean
3434
+ privilege: String
3435
+ super: Boolean
3436
+ }
3437
+
3440
3438
  type PrivilegeList {
3441
3439
  items: [Privilege!]
3442
3440
  total: Int
@@ -3987,7 +3985,6 @@ type Scenario {
3987
3985
  """accessible and executable system-wide"""
3988
3986
  public: Boolean
3989
3987
  publishTags: [Connection!]!
3990
- role: Role
3991
3988
  schedule: String
3992
3989
  scheduleId: String
3993
3990
  state: String
@@ -4069,7 +4066,7 @@ input ScenarioPatch {
4069
4066
  description: String
4070
4067
  id: ID
4071
4068
  name: String
4072
- role: ObjectRef
4069
+ privilege: PrivilegeInput
4073
4070
  schedule: String
4074
4071
  steps: [StepPatch!]
4075
4072
  timezone: String
package/src/tact-timer.ts CHANGED
@@ -110,6 +110,8 @@ export default class TactTimer extends RectPath(Shape) {
110
110
  const { autoStart, started } = this.state
111
111
 
112
112
  if (autoStart || started) {
113
+ this.setState('started', true)
114
+
113
115
  this.start()
114
116
  }
115
117
  }