@operato/scene-timer 1.2.49 → 1.2.62

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.
@@ -5,7 +5,7 @@ this component that counts down the set timeout value every second.
5
5
  - To set statically, you can set during modeling, options in days, hours, minutes, and seconds.
6
6
  - To set it dynamically, set the timeout(seconds) value in the value property during execution.
7
7
  - The result value by format-run and format-stop of the countdown process is set in the data property.
8
- - In addition, the timer component provides a simple horizontal progress bar expression function, you can set fill style on color setting.
8
+ - In addition, the timer component provides a simple horizontal progress bar expression function, you can set progress-color on color setting.
9
9
 
10
10
  ![fill-color]
11
11
 
@@ -33,9 +33,18 @@ this component that counts down the set timeout value every second.
33
33
  - string
34
34
  - format : --:--:--
35
35
  - count down format on stop
36
- - background color
37
- - string, rgb color
38
- - component background color
36
+ - progress color
37
+
38
+ - Type: string, RGB color
39
+ - Description: Color of the progress in countdown.
40
+
41
+ - data reflection
42
+
43
+ - Countdown: Every second during the countdown, the remaining time is reflected in the data according to the format set in 'Countdown Format' or 'Stop Format'.
44
+ - Round: After each countdown round is completed, the round number is reflected in the data. (In this case, the data value remains unchanged during countdown.)
45
+
46
+ - Repeat
47
+ - Description: When this option is checked, the countdown will automatically restart after each completion.
39
48
 
40
49
  ## hidden properties
41
50
 
@@ -57,6 +66,12 @@ this component that counts down the set timeout value every second.
57
66
  [databind]: ../images/timer-data-bind.png
58
67
 
59
68
  - countdown
69
+
60
70
  - readonly
61
71
  - number (seconds)
62
72
  - when timer set, count down will start automatically
73
+
74
+ - round
75
+ - readonly
76
+ - number
77
+ - number of rounds in countdown
@@ -6,7 +6,7 @@
6
6
  - 动态 : 在运行时在 value 属性中设置时间(seconds)值。
7
7
  - 在数据属性中设置倒计时过程的按格式运行和按格式停止的结果值。
8
8
  - 时间格式, 停止格式在运行和结束时以对应的格式设置为 data
9
- - 另外,计时器组件提供了简单的水平进度条功能。填充填充颜色中设置的颜色将会表示对应时间的进度条。
9
+ - 另外,计时器组件还提供了简单的水平进度条显示功能。进度颜色的设置将随着倒计时的进行而显示。
10
10
 
11
11
  ![fill-color]
12
12
 
@@ -34,9 +34,18 @@
34
34
  - string
35
35
  - format : --:--:--
36
36
  - 计时结束后显示的时间格式
37
- - 背景颜色
38
- - string, rgb color
39
- - 组件背景颜色
37
+ - 进度颜色(Progress Color)
38
+
39
+ - 类型:字符串,RGB 颜色
40
+ - 描述:倒计时中进度的颜色。
41
+
42
+ - 数据反映(Data Reflection)
43
+
44
+ - 倒计时:在倒计时期间的每一秒,剩余时间都会按照“倒计时格式”或“停止格式”中设置的格式反映在数据中。
45
+ - 圆形:在每个倒计时循环完成后,循环数会反映在数据中。(在此情况下,在倒计时期间数据值保持不变。)
46
+
47
+ - 重复(Repeat)
48
+ - 描述:选中此选项后,每次倒计时完成后,倒计时会自动重新开始。
40
49
 
41
50
  ## 隐藏属性
42
51
 
@@ -58,6 +67,12 @@
58
67
  [databind]: ../images/timer-data-bind.png
59
68
 
60
69
  - countdown
70
+
61
71
  - readonly: 只读属性
62
- - number (seconds)
72
+ - number (seconds)
63
73
  - 从设置定时器设置值开始,它就将当前值递减计数。
74
+
75
+ - round
76
+ - 只读
77
+ - 数字
78
+ - 倒计时的回合数
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@operato/scene-timer",
3
3
  "description": "Timer component for things-scene",
4
4
  "author": "heartyoh",
5
- "version": "1.2.49",
5
+ "version": "1.2.62",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
8
8
  "license": "MIT",
@@ -57,5 +57,5 @@
57
57
  "prettier --write"
58
58
  ]
59
59
  },
60
- "gitHead": "f91b0d45641177ae36015ebd23b780a48715349b"
60
+ "gitHead": "be3109453bba40b787b5992bd2b8359215bee1a1"
61
61
  }
package/src/duetimer.ts CHANGED
@@ -28,11 +28,19 @@ const NATURE: ComponentNature = {
28
28
  name: 'format-stop',
29
29
  placeholder: '--:--:--'
30
30
  },
31
+ {
32
+ type: 'select',
33
+ label: 'data-reflection',
34
+ name: 'dataReflection',
35
+ property: {
36
+ options: ['', 'countdown', 'round']
37
+ }
38
+ },
31
39
  {
32
40
  type: 'color',
33
- label: 'background-color',
34
- name: 'backgroundColor',
35
- property: 'backgroundColor'
41
+ label: 'progress-color',
42
+ name: 'progressColor',
43
+ property: 'progressColor'
36
44
  }
37
45
  ],
38
46
  'value-property': 'due',
@@ -40,6 +48,8 @@ const NATURE: ComponentNature = {
40
48
  }
41
49
 
42
50
  export default class DueTimer extends RectPath(Shape) {
51
+ private _round: number = 0
52
+
43
53
  get nature() {
44
54
  return NATURE
45
55
  }
@@ -55,37 +65,52 @@ export default class DueTimer extends RectPath(Shape) {
55
65
  }
56
66
 
57
67
  onchange(after: Properties) {
58
- if ('due' in after) {
68
+ if ('timeout' in after) {
59
69
  this.timeout = Math.max(Math.round((this.due - Date.now()) / 1000), 0)
60
70
  this.counting()
61
71
  }
62
72
  }
63
73
 
64
74
  counting() {
75
+ // @ts-ignore
76
+ if (this.disposed) {
77
+ return
78
+ }
79
+
65
80
  requestAnimationFrame(() => {
66
81
  const countdown = this.countdown
82
+ const { dataReflection = 'countdown' } = this.state
67
83
 
68
84
  if (countdown > 0) {
69
- this.setState('data', format(countdown, this.getState('format-run')))
85
+ const text = format(countdown, this.getState('format-run'))
86
+
87
+ this.text = text
88
+
89
+ if (dataReflection != 'round') {
90
+ this.setState('data', text)
91
+ }
70
92
 
71
93
  setTimeout(() => {
72
94
  this.counting()
73
95
  }, 1000)
74
96
  } else {
75
- this.setState('data', this.getState('format-stop'))
97
+ const text = format(countdown, this.getState('format-stop'))
98
+
99
+ this.text = text
100
+
101
+ this.setState('data', dataReflection != 'round' ? text : ++this._round)
76
102
  }
77
103
  })
78
104
  }
79
105
 
80
106
  render(context: CanvasRenderingContext2D) {
81
- var { top, left, height, width, backgroundColor = 'transparent' } = this.state
107
+ var { top, left, height, width, progressColor = 'transparent' } = this.state
82
108
 
83
- // background의 색상
109
+ // progress의 색상
84
110
  context.beginPath()
85
111
  context.rect(left, top, width, height)
86
112
 
87
- context.fillStyle = backgroundColor
88
- context.fill()
113
+ this.drawFill(context)
89
114
 
90
115
  // value의 색상
91
116
  context.beginPath()
@@ -97,7 +122,8 @@ export default class DueTimer extends RectPath(Shape) {
97
122
  progress = Math.max(Math.min(progress, width), 0)
98
123
 
99
124
  context.rect(left, top, progress, height)
100
- this.drawFill(context)
125
+ context.fillStyle = progressColor
126
+ context.fill()
101
127
 
102
128
  context.beginPath()
103
129
  }
@@ -133,6 +159,10 @@ export default class DueTimer extends RectPath(Shape) {
133
159
 
134
160
  return Math.max(Math.round((due - now) / 1000), 0)
135
161
  }
162
+
163
+ get round() {
164
+ return this._round
165
+ }
136
166
  }
137
167
 
138
168
  Component.register('duetimer', DueTimer)
@@ -13,7 +13,6 @@ export default {
13
13
  width: 100,
14
14
  height: 100,
15
15
  strokeStyle: 'darkgray',
16
- text: '#{data}',
17
16
  days: 0,
18
17
  hours: 0,
19
18
  minutes: 0,
@@ -13,7 +13,6 @@ export default {
13
13
  width: 100,
14
14
  height: 100,
15
15
  strokeStyle: 'darkgray',
16
- text: '#{data}',
17
16
  'format-run': 'mm:ss',
18
17
  'format-stop': '--:--'
19
18
  }
package/src/timer.ts CHANGED
@@ -49,9 +49,22 @@ const NATURE: ComponentNature = {
49
49
  },
50
50
  {
51
51
  type: 'color',
52
- label: 'background-color',
53
- name: 'backgroundColor',
54
- property: 'backgroundColor'
52
+ label: 'progress-color',
53
+ name: 'progressColor',
54
+ property: 'progressColor'
55
+ },
56
+ {
57
+ type: 'select',
58
+ label: 'data-reflection',
59
+ name: 'dataReflection',
60
+ property: {
61
+ options: ['countdown', 'round']
62
+ }
63
+ },
64
+ {
65
+ type: 'boolean',
66
+ label: 'repeat',
67
+ name: 'repeat'
55
68
  }
56
69
  ],
57
70
  'value-property': 'timeout',
@@ -60,6 +73,7 @@ const NATURE: ComponentNature = {
60
73
 
61
74
  export default class Timer extends RectPath(Shape) {
62
75
  private _due?: number
76
+ private _round: number = 0
63
77
 
64
78
  get nature() {
65
79
  return NATURE
@@ -83,30 +97,48 @@ export default class Timer extends RectPath(Shape) {
83
97
  }
84
98
 
85
99
  counting() {
100
+ // @ts-ignore
101
+ if (this.disposed) {
102
+ return
103
+ }
104
+
105
+ const { dataReflection = 'countdown' } = this.state
106
+
86
107
  requestAnimationFrame(() => {
87
108
  const countdown = this.countdown
88
109
 
89
110
  if (countdown > 0) {
90
- this.setState('data', format(countdown, this.getState('format-run')))
111
+ const text = format(countdown, this.getState('format-run'))
112
+ this.text = text
113
+
114
+ if (dataReflection != 'round') {
115
+ this.setState('data', text)
116
+ }
91
117
 
92
118
  setTimeout(() => {
93
119
  this.counting()
94
120
  }, 1000)
95
121
  } else {
96
- this.setState('data', this.getState('format-stop'))
122
+ const text = format(countdown, this.getState('format-stop'))
123
+ this.text = text
124
+
125
+ this.setState('data', dataReflection != 'round' ? text : ++this._round)
126
+
127
+ if (this.state.repeat) {
128
+ this._due = Date.now() + this.timeout * 1000
129
+ this.counting()
130
+ }
97
131
  }
98
132
  })
99
133
  }
100
134
 
101
135
  render(context: CanvasRenderingContext2D) {
102
- var { top, left, height, width, backgroundColor = 'transparent' } = this.state
136
+ var { top, left, height, width, progressColor = 'transparent' } = this.state
103
137
 
104
- // background의 색상
138
+ // progress의 색상
105
139
  context.beginPath()
106
140
  context.rect(left, top, width, height)
107
-
108
- context.fillStyle = backgroundColor
109
- context.fill()
141
+ this.drawFill(context)
110
142
 
111
143
  // value의 색상
112
144
  context.beginPath()
@@ -118,7 +150,8 @@ export default class Timer extends RectPath(Shape) {
118
150
  progress = Math.max(Math.min(progress, width), 0)
119
151
 
120
152
  context.rect(left, top, progress, height)
121
- this.drawFill(context)
153
+ context.fillStyle = progressColor
154
+ context.fill()
122
155
 
123
156
  context.beginPath()
124
157
  }
@@ -151,6 +184,10 @@ export default class Timer extends RectPath(Shape) {
151
184
 
152
185
  return Math.max(Math.round((due - now) / 1000), 0)
153
186
  }
187
+
188
+ get round() {
189
+ return this._round
190
+ }
154
191
  }
155
192
 
156
193
  Component.register('timer', Timer)
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "keyword": "keyword",
3
- "label.background-color": "background color",
3
+ "label.progress-color": "progress color",
4
4
  "label.days": "days",
5
5
  "label.due": "due",
6
6
  "label.hours": "hours",
7
7
  "label.minutes": "minutes",
8
8
  "label.seconds": "seconds",
9
9
  "label.format-run": "time format",
10
- "label.format-stop": "stopped"
10
+ "label.format-stop": "stopped",
11
+ "label.data-reflection": "data reflection",
12
+ "label.repeat": "repeat"
11
13
  }
@@ -0,0 +1,13 @@
1
+ {
2
+ "keyword": "キーワード",
3
+ "label.progress-color": "進捗色",
4
+ "label.days": "日",
5
+ "label.due": "期限",
6
+ "label.hours": "時間",
7
+ "label.minutes": "分",
8
+ "label.seconds": "秒",
9
+ "label.format-run": "時刻フォーマット",
10
+ "label.format-stop": "停止",
11
+ "label.data-reflection": "データ反映",
12
+ "label.repeat": "繰り返す"
13
+ }
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "keyword": "키워드",
3
- "label.background-color": "배경 색상",
3
+ "label.progress-color": "진도 색상",
4
4
  "label.days": "일",
5
5
  "label.due": "종료시간",
6
6
  "label.hours": "시간",
7
7
  "label.minutes": "분",
8
8
  "label.seconds": "초",
9
- "label.format-run": "포맷",
10
- "label.format-stop": "멈춤"
11
- }
9
+ "label.format-run": "카운트다운 포맷",
10
+ "label.format-stop": "멈춤포맷",
11
+ "label.data-reflection": "데이타반영",
12
+ "label.repeat": "반복"
13
+ }
@@ -1,11 +1,13 @@
1
1
  {
2
- "keyword": "[ms] keyword",
3
- "label.background-color": "warna latar belakang",
4
- "label.days": "[ms] days",
5
- "label.due": "[ms] due",
6
- "label.hours": "[ms] hours",
7
- "label.minutes": "[ms] minutes",
8
- "label.seconds": "[ms] seconds",
9
- "label.format-run": "[ms] time format",
10
- "label.format-stop": "[ms] stopped"
2
+ "keyword": "kata kunci",
3
+ "label.progress-color": "warna kemajuan",
4
+ "label.days": "hari",
5
+ "label.due": "berakhir",
6
+ "label.hours": "jam",
7
+ "label.minutes": "minit",
8
+ "label.seconds": "saat",
9
+ "label.format-run": "format masa",
10
+ "label.format-stop": "berhenti",
11
+ "label.data-reflection": "pantulan data",
12
+ "label.repeat": "ulangi"
11
13
  }
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "keyword": "关键词",
3
- "label.background-color": "背景颜色",
3
+ "label.progress-color": "进度颜色",
4
4
  "label.days": "天",
5
5
  "label.due": "截止时间",
6
6
  "label.hours": "小时",
7
7
  "label.minutes": "分钟",
8
8
  "label.seconds": "秒钟",
9
9
  "label.format-run": "时间格式",
10
- "label.format-stop": "停止格式"
10
+ "label.format-stop": "停止格式",
11
+ "label.data-reflection": "数据反映",
12
+ "label.repeat": "重复"
11
13
  }
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/tslib/tslib.d.ts","../../node_modules/@hatiolab/things-scene/things-scene.d.ts","./src/libs/format.ts","./src/duetimer.ts","./src/timer.ts","./src/index.ts","./src/templates/duetimer.ts","./src/templates/timer.ts","./src/templates/index.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"f1c9fe42b65437a61104e601eb298c5c859fb522b483f1bdb700eed67a16f980","1ec425c4c916d3a75b0557409a967eb5fee869beb69eefc2fbbf563f92bda771",{"version":"85b47ab2c2fc5e81ec764eabf50bd1380ae63741ae2c0bfd20a234d02c1f246d","signature":"7131ec3a3f3ae6a73e627271588c6807bef2e2100052320515562e3cccaf78d8"},{"version":"708a3a2b69d989534eab9712a10901069c8e6424e9cc35bb13eb10f51cf6973c","signature":"8ae75750781582497d64c8d68cfc16312e57ff97bb42350fc23494c19af57b7a"},{"version":"05b34eaaffae7bdbe8220f0f9b06f5ca4b2e16bbfeaf4f0e55acb24f634a8747","signature":"5b30bbfd3713c5a68e7b259219fb00cd43cf3a9e6788c5866d34cf171217aa30"},{"version":"2dd2b057147abca28a846a64b71c8caf21e1505807ef225e4cb73596304d5702","signature":"f2dcb4f1a792ad4121a80f359874e687a9542a8f282f403fcd90a07df65cc248"},{"version":"9a20633a554f1ebafe9f75c21743356168f22c512a6eadf96197742d5e466100","signature":"87494f5a575e71058388729d9a862eaa232490c9935d9729acd790bb53c532c5"},{"version":"a1924a2000b2cd80f216f80ed6e8b8bfd185fab830ff81e222c6266bf2c5bcf1","signature":"3e614097a039670ee35cf927b1eeba3efcc781f3efc50599b72f4044336e0594"},{"version":"be439043610c2ff0c51e0e3dfc51dfc718df9c7b323032a0e040d413da6add4b","signature":"73ed9e9ddc4b05aedf200826836c3099bf3c4885f80c11084995b6e8f74f63ce"}],"root":[[37,43]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./dist","rootDir":"./src","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[35,36,37],[35,38,39],[35],[35,41,42],[36],[38,39]],"referencedMap":[[38,1],[40,2],[37,3],[41,3],[43,4],[42,3],[39,1]],"exportedModulesMap":[[38,5],[40,6],[39,5]],"semanticDiagnosticsPerFile":[36,35,33,34,7,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,32,29,30,31,1,38,40,37,41,43,42,39]},"version":"5.1.3"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/tslib/tslib.d.ts","../../node_modules/@hatiolab/things-scene/things-scene.d.ts","./src/libs/format.ts","./src/duetimer.ts","./src/timer.ts","./src/index.ts","./src/templates/duetimer.ts","./src/templates/timer.ts","./src/templates/index.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7",{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","f32044e28142d7080c318268058e6a3de42be0252512491d2fc9bf0fa07c3e65",{"version":"85b47ab2c2fc5e81ec764eabf50bd1380ae63741ae2c0bfd20a234d02c1f246d","signature":"7131ec3a3f3ae6a73e627271588c6807bef2e2100052320515562e3cccaf78d8"},{"version":"d297408a3ba26271ebf93ca47757056b5358c78d047931ad985385d72e67408f","signature":"89c5bb5ea73d878a7cd0dbc88f69ab92b213f5807a321d8fc4a1741eb3587553"},{"version":"a8c3b0634a2ddcc23a20df96066d65aea1c394efb3dbabeebadabe52660e220c","signature":"6782bb91cd5688b7096f6c518722cd5f8e1f4a7a53c7caeb8fe083b2b3ef7294"},{"version":"2dd2b057147abca28a846a64b71c8caf21e1505807ef225e4cb73596304d5702","signature":"efd7d2607c98b9a2b0771ee8a5088978d649c82b0b37240133c681a9683f823a"},{"version":"a473c84b0627af9b0771f2bd9629bc2b856e4f43637f143ca46e3abb50bbd256","signature":"8f5281e1a9b1e71bd27a5271f6782efde6b211d3780716c7beb2609fa322ffeb"},{"version":"7db8a5554417dafb7989f14aea06a4d04ef26846453901a2f8d89d6231a2e39d","signature":"70324f29b461ec01d2bdfc0b5568572ba2d97cf9207081db5964fb6051023a45"},{"version":"be439043610c2ff0c51e0e3dfc51dfc718df9c7b323032a0e040d413da6add4b","signature":"41ec9824c7cea256d24a7a6eb714af2184c36acf2defb6de586fe7860195b45b"}],"root":[[38,44]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./dist","rootDir":"./src","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[36,37,38],[36,39,40],[36],[36,42,43],[37],[39,40]],"referencedMap":[[39,1],[41,2],[38,3],[42,3],[44,4],[43,3],[40,1]],"exportedModulesMap":[[39,5],[41,6],[40,5]],"semanticDiagnosticsPerFile":[37,36,34,35,7,9,8,2,10,11,12,13,14,15,16,17,3,4,18,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,1,39,41,38,42,44,43,40]},"version":"5.2.2"}