@rocketshow/designer 1.32.0 → 1.33.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.
Files changed (339) hide show
  1. package/esm2022/lib/array-sort-pipe.mjs +30 -0
  2. package/esm2022/lib/designer.component.mjs +605 -0
  3. package/esm2022/lib/designer.module.mjs +183 -0
  4. package/esm2022/lib/designer.service.mjs +14 -0
  5. package/esm2022/lib/effect/effect-curve/effect-curve.component.mjs +569 -0
  6. package/esm2022/lib/effect/effect-pan-tilt/effect-pan-tilt.component.mjs +36 -0
  7. package/esm2022/lib/effect/effect.component.mjs +174 -0
  8. package/esm2022/lib/error-dialog/error-dialog.component.mjs +75 -0
  9. package/esm2022/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.mjs +222 -0
  10. package/esm2022/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.mjs +147 -0
  11. package/esm2022/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.mjs +213 -0
  12. package/esm2022/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.mjs +78 -0
  13. package/esm2022/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.mjs +119 -0
  14. package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +169 -0
  15. package/esm2022/lib/fixture/fixture-channel/fixture-channel.component.mjs +160 -0
  16. package/esm2022/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.mjs +365 -0
  17. package/esm2022/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.mjs +151 -0
  18. package/esm2022/lib/fixture/fixture-settings/fixture-settings.component.mjs +46 -0
  19. package/esm2022/lib/fixture/fixture.component.mjs +138 -0
  20. package/esm2022/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.mjs +145 -0
  21. package/esm2022/lib/fixture-pool/fixture-pool.component.mjs +589 -0
  22. package/esm2022/lib/intro/intro.component.mjs +95 -0
  23. package/esm2022/lib/master-dimmer/master-dimmer.component.mjs +66 -0
  24. package/esm2022/lib/models/cached-fixture-capability.mjs +9 -0
  25. package/esm2022/lib/models/cached-fixture-channel.mjs +7 -0
  26. package/esm2022/lib/models/cached-fixture.mjs +6 -0
  27. package/esm2022/lib/models/color.mjs +8 -0
  28. package/esm2022/lib/models/composition.mjs +46 -0
  29. package/esm2022/lib/models/effect-curve-profile-channel.mjs +15 -0
  30. package/esm2022/lib/models/effect-curve.mjs +69 -0
  31. package/esm2022/lib/models/effect-pan-tilt.mjs +19 -0
  32. package/esm2022/lib/models/effect.mjs +12 -0
  33. package/esm2022/lib/models/fixture-capability-value.mjs +15 -0
  34. package/esm2022/lib/models/fixture-capability.mjs +84 -0
  35. package/esm2022/lib/models/fixture-channel-value.mjs +11 -0
  36. package/esm2022/lib/models/fixture-channel.mjs +24 -0
  37. package/esm2022/lib/models/fixture-mode.mjs +14 -0
  38. package/esm2022/lib/models/fixture-profile.mjs +70 -0
  39. package/esm2022/lib/models/fixture-wheel-slot.mjs +26 -0
  40. package/esm2022/lib/models/fixture-wheel.mjs +15 -0
  41. package/esm2022/lib/models/fixture.mjs +40 -0
  42. package/esm2022/lib/models/preset-region-scene.mjs +8 -0
  43. package/esm2022/lib/models/preset.mjs +56 -0
  44. package/esm2022/lib/models/project.mjs +68 -0
  45. package/esm2022/lib/models/scene-playback-region.mjs +11 -0
  46. package/esm2022/lib/models/scene.mjs +27 -0
  47. package/esm2022/lib/models/universe.mjs +11 -0
  48. package/esm2022/lib/preset/preset-settings/preset-settings.component.mjs +194 -0
  49. package/esm2022/lib/preset/preset.component.mjs +131 -0
  50. package/esm2022/lib/preview/models/color-changer-3d.mjs +167 -0
  51. package/esm2022/lib/preview/models/fixture-3d.mjs +150 -0
  52. package/esm2022/lib/preview/models/moving-head-3d.mjs +243 -0
  53. package/esm2022/lib/preview/preview.component.mjs +212 -0
  54. package/esm2022/lib/project/project-browser/project-browser.component.mjs +143 -0
  55. package/esm2022/lib/project/project-import/project-import.component.mjs +107 -0
  56. package/esm2022/lib/project/project-save/project-save.component.mjs +178 -0
  57. package/esm2022/lib/project/project-share/project-share.component.mjs +71 -0
  58. package/esm2022/lib/scene/scene-settings/scene-settings.component.mjs +146 -0
  59. package/esm2022/lib/scene/scene.component.mjs +110 -0
  60. package/esm2022/lib/services/animation.service.mjs +16 -0
  61. package/esm2022/lib/services/config.service.mjs +27 -0
  62. package/esm2022/lib/services/effect.service.mjs +14 -0
  63. package/esm2022/lib/services/error-dialog.service.mjs +39 -0
  64. package/esm2022/lib/services/fixture-pool.service.mjs +30 -0
  65. package/esm2022/lib/services/fixture.service.mjs +431 -0
  66. package/esm2022/lib/services/hotkey-target-exclude.service.mjs +24 -0
  67. package/esm2022/lib/services/intro.service.mjs +140 -0
  68. package/esm2022/lib/services/preset.service.mjs +400 -0
  69. package/esm2022/lib/services/preview-mesh.service.mjs +57 -0
  70. package/esm2022/lib/services/preview.service.mjs +496 -0
  71. package/esm2022/lib/services/project-load.service.mjs +149 -0
  72. package/esm2022/lib/services/project.service.mjs +97 -0
  73. package/esm2022/lib/services/scene.service.mjs +164 -0
  74. package/esm2022/lib/services/timeline.service.mjs +726 -0
  75. package/esm2022/lib/services/universe.service.mjs +23 -0
  76. package/esm2022/lib/services/user-ensure-login.service.mjs +38 -0
  77. package/esm2022/lib/services/user.service.mjs +89 -0
  78. package/esm2022/lib/services/uuid.service.mjs +23 -0
  79. package/esm2022/lib/services/warning-dialog.service.mjs +38 -0
  80. package/esm2022/lib/timeline/composition-settings/composition-settings.component.mjs +334 -0
  81. package/esm2022/lib/timeline/timeline-grid/timeline-grid.component.mjs +216 -0
  82. package/esm2022/lib/timeline/timeline.component.mjs +418 -0
  83. package/esm2022/lib/user/user-login/user-login.component.mjs +144 -0
  84. package/esm2022/lib/user/user-register/user-register.component.mjs +220 -0
  85. package/esm2022/lib/wait-dialog/wait-dialog.component.mjs +26 -0
  86. package/esm2022/lib/warning-dialog/warning-dialog.component.mjs +68 -0
  87. package/esm2022/public_api.mjs +7 -0
  88. package/esm2022/rocketshow-designer.mjs +5 -0
  89. package/fesm2022/rocketshow-designer.mjs +10626 -0
  90. package/fesm2022/rocketshow-designer.mjs.map +1 -0
  91. package/index.d.ts +5 -0
  92. package/lib/array-sort-pipe.d.ts +3 -0
  93. package/lib/designer.component.d.ts +15 -12
  94. package/lib/designer.module.d.ts +54 -0
  95. package/lib/designer.service.d.ts +3 -0
  96. package/lib/effect/effect-curve/effect-curve.component.d.ts +4 -1
  97. package/lib/effect/effect-pan-tilt/effect-pan-tilt.component.d.ts +3 -0
  98. package/lib/effect/effect.component.d.ts +3 -0
  99. package/lib/error-dialog/error-dialog.component.d.ts +3 -0
  100. package/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.d.ts +4 -1
  101. package/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.d.ts +3 -0
  102. package/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.d.ts +5 -2
  103. package/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.d.ts +3 -0
  104. package/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.d.ts +3 -0
  105. package/lib/fixture/fixture-capability/fixture-capability.component.d.ts +3 -0
  106. package/lib/fixture/fixture-channel/fixture-channel.component.d.ts +3 -0
  107. package/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.d.ts +3 -0
  108. package/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.d.ts +3 -0
  109. package/lib/fixture/fixture-settings/fixture-settings.component.d.ts +3 -0
  110. package/lib/fixture/fixture.component.d.ts +3 -0
  111. package/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.d.ts +3 -0
  112. package/lib/fixture-pool/fixture-pool.component.d.ts +3 -0
  113. package/lib/intro/intro.component.d.ts +3 -0
  114. package/lib/master-dimmer/master-dimmer.component.d.ts +3 -0
  115. package/lib/preset/preset-settings/preset-settings.component.d.ts +3 -0
  116. package/lib/preset/preset.component.d.ts +3 -0
  117. package/lib/preview/preview.component.d.ts +4 -4
  118. package/lib/project/project-browser/project-browser.component.d.ts +3 -0
  119. package/lib/project/project-import/project-import.component.d.ts +3 -0
  120. package/lib/project/project-save/project-save.component.d.ts +3 -0
  121. package/lib/project/project-share/project-share.component.d.ts +3 -0
  122. package/lib/scene/scene-settings/scene-settings.component.d.ts +3 -0
  123. package/lib/scene/scene.component.d.ts +3 -0
  124. package/lib/services/animation.service.d.ts +3 -0
  125. package/lib/services/config.service.d.ts +3 -0
  126. package/lib/services/effect.service.d.ts +3 -0
  127. package/lib/services/error-dialog.service.d.ts +3 -0
  128. package/lib/services/fixture-pool.service.d.ts +3 -0
  129. package/lib/services/fixture.service.d.ts +3 -0
  130. package/lib/services/hotkey-target-exclude.service.d.ts +3 -0
  131. package/lib/services/intro.service.d.ts +3 -0
  132. package/lib/services/preset.service.d.ts +3 -0
  133. package/lib/services/preview-mesh.service.d.ts +3 -0
  134. package/lib/services/preview.service.d.ts +4 -0
  135. package/lib/services/project-load.service.d.ts +3 -0
  136. package/lib/services/project.service.d.ts +3 -0
  137. package/lib/services/scene.service.d.ts +3 -0
  138. package/lib/services/timeline.service.d.ts +4 -1
  139. package/lib/services/universe.service.d.ts +3 -0
  140. package/lib/services/user-ensure-login.service.d.ts +3 -0
  141. package/lib/services/user.service.d.ts +3 -0
  142. package/lib/services/uuid.service.d.ts +3 -0
  143. package/lib/services/warning-dialog.service.d.ts +3 -0
  144. package/lib/timeline/composition-settings/composition-settings.component.d.ts +3 -0
  145. package/lib/timeline/timeline-grid/timeline-grid.component.d.ts +3 -0
  146. package/lib/timeline/timeline.component.d.ts +3 -0
  147. package/lib/user/user-login/user-login.component.d.ts +3 -0
  148. package/lib/user/user-register/user-register.component.d.ts +3 -0
  149. package/lib/wait-dialog/wait-dialog.component.d.ts +3 -0
  150. package/lib/warning-dialog/warning-dialog.component.d.ts +3 -0
  151. package/package.json +20 -22
  152. package/rocketshow-designer-1.33.0.tgz +0 -0
  153. package/bundles/rocketshow-designer.umd.js +0 -9966
  154. package/bundles/rocketshow-designer.umd.js.map +0 -1
  155. package/bundles/rocketshow-designer.umd.min.js +0 -17
  156. package/bundles/rocketshow-designer.umd.min.js.map +0 -1
  157. package/esm2015/lib/array-sort-pipe.js +0 -28
  158. package/esm2015/lib/designer.component.js +0 -411
  159. package/esm2015/lib/designer.module.js +0 -117
  160. package/esm2015/lib/designer.service.js +0 -16
  161. package/esm2015/lib/effect/effect-curve/effect-curve.component.js +0 -325
  162. package/esm2015/lib/effect/effect-pan-tilt/effect-pan-tilt.component.js +0 -30
  163. package/esm2015/lib/effect/effect.component.js +0 -73
  164. package/esm2015/lib/error-dialog/error-dialog.component.js +0 -42
  165. package/esm2015/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.js +0 -141
  166. package/esm2015/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.js +0 -128
  167. package/esm2015/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.js +0 -163
  168. package/esm2015/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.js +0 -60
  169. package/esm2015/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.js +0 -87
  170. package/esm2015/lib/fixture/fixture-capability/fixture-capability.component.js +0 -97
  171. package/esm2015/lib/fixture/fixture-channel/fixture-channel.component.js +0 -66
  172. package/esm2015/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.js +0 -200
  173. package/esm2015/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.js +0 -31
  174. package/esm2015/lib/fixture/fixture-settings/fixture-settings.component.js +0 -35
  175. package/esm2015/lib/fixture/fixture.component.js +0 -70
  176. package/esm2015/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.js +0 -128
  177. package/esm2015/lib/fixture-pool/fixture-pool.component.js +0 -331
  178. package/esm2015/lib/intro/intro.component.js +0 -25
  179. package/esm2015/lib/master-dimmer/master-dimmer.component.js +0 -41
  180. package/esm2015/lib/models/cached-fixture-capability.js +0 -9
  181. package/esm2015/lib/models/cached-fixture-channel.js +0 -7
  182. package/esm2015/lib/models/cached-fixture.js +0 -6
  183. package/esm2015/lib/models/color.js +0 -8
  184. package/esm2015/lib/models/composition.js +0 -46
  185. package/esm2015/lib/models/effect-curve-profile-channel.js +0 -15
  186. package/esm2015/lib/models/effect-curve.js +0 -69
  187. package/esm2015/lib/models/effect-pan-tilt.js +0 -19
  188. package/esm2015/lib/models/effect.js +0 -12
  189. package/esm2015/lib/models/fixture-capability-value.js +0 -15
  190. package/esm2015/lib/models/fixture-capability.js +0 -84
  191. package/esm2015/lib/models/fixture-channel-value.js +0 -11
  192. package/esm2015/lib/models/fixture-channel.js +0 -24
  193. package/esm2015/lib/models/fixture-mode.js +0 -14
  194. package/esm2015/lib/models/fixture-profile.js +0 -70
  195. package/esm2015/lib/models/fixture-wheel-slot.js +0 -26
  196. package/esm2015/lib/models/fixture-wheel.js +0 -15
  197. package/esm2015/lib/models/fixture.js +0 -40
  198. package/esm2015/lib/models/preset-region-scene.js +0 -8
  199. package/esm2015/lib/models/preset.js +0 -56
  200. package/esm2015/lib/models/project.js +0 -68
  201. package/esm2015/lib/models/scene-playback-region.js +0 -11
  202. package/esm2015/lib/models/scene.js +0 -27
  203. package/esm2015/lib/models/universe.js +0 -11
  204. package/esm2015/lib/preset/preset-settings/preset-settings.component.js +0 -66
  205. package/esm2015/lib/preset/preset.component.js +0 -85
  206. package/esm2015/lib/preview/models/color-changer-3d.js +0 -167
  207. package/esm2015/lib/preview/models/fixture-3d.js +0 -150
  208. package/esm2015/lib/preview/models/moving-head-3d.js +0 -233
  209. package/esm2015/lib/preview/preview.component.js +0 -242
  210. package/esm2015/lib/project/project-browser/project-browser.component.js +0 -73
  211. package/esm2015/lib/project/project-import/project-import.component.js +0 -89
  212. package/esm2015/lib/project/project-save/project-save.component.js +0 -105
  213. package/esm2015/lib/project/project-share/project-share.component.js +0 -43
  214. package/esm2015/lib/scene/scene-settings/scene-settings.component.js +0 -52
  215. package/esm2015/lib/scene/scene.component.js +0 -56
  216. package/esm2015/lib/services/animation.service.js +0 -17
  217. package/esm2015/lib/services/config.service.js +0 -28
  218. package/esm2015/lib/services/effect.service.js +0 -16
  219. package/esm2015/lib/services/error-dialog.service.js +0 -44
  220. package/esm2015/lib/services/fixture-pool.service.js +0 -34
  221. package/esm2015/lib/services/fixture.service.js +0 -443
  222. package/esm2015/lib/services/hotkey-target-exclude.service.js +0 -26
  223. package/esm2015/lib/services/intro.service.js +0 -144
  224. package/esm2015/lib/services/preset.service.js +0 -416
  225. package/esm2015/lib/services/preview-mesh.service.js +0 -58
  226. package/esm2015/lib/services/preview.service.js +0 -500
  227. package/esm2015/lib/services/project-load.service.js +0 -171
  228. package/esm2015/lib/services/project.service.js +0 -113
  229. package/esm2015/lib/services/scene.service.js +0 -174
  230. package/esm2015/lib/services/timeline.service.js +0 -738
  231. package/esm2015/lib/services/universe.service.js +0 -24
  232. package/esm2015/lib/services/user-ensure-login.service.js +0 -44
  233. package/esm2015/lib/services/user.service.js +0 -93
  234. package/esm2015/lib/services/uuid.service.js +0 -25
  235. package/esm2015/lib/services/warning-dialog.service.js +0 -43
  236. package/esm2015/lib/timeline/composition-settings/composition-settings.component.js +0 -197
  237. package/esm2015/lib/timeline/timeline-grid/timeline-grid.component.js +0 -55
  238. package/esm2015/lib/timeline/timeline.component.js +0 -239
  239. package/esm2015/lib/user/user-login/user-login.component.js +0 -64
  240. package/esm2015/lib/user/user-register/user-register.component.js +0 -89
  241. package/esm2015/lib/wait-dialog/wait-dialog.component.js +0 -16
  242. package/esm2015/lib/warning-dialog/warning-dialog.component.js +0 -42
  243. package/esm2015/public_api.js +0 -7
  244. package/esm2015/rocketshow-designer.js +0 -61
  245. package/esm5/lib/array-sort-pipe.js +0 -31
  246. package/esm5/lib/designer.component.js +0 -468
  247. package/esm5/lib/designer.module.js +0 -120
  248. package/esm5/lib/designer.service.js +0 -17
  249. package/esm5/lib/effect/effect-curve/effect-curve.component.js +0 -386
  250. package/esm5/lib/effect/effect-pan-tilt/effect-pan-tilt.component.js +0 -31
  251. package/esm5/lib/effect/effect.component.js +0 -75
  252. package/esm5/lib/error-dialog/error-dialog.component.js +0 -43
  253. package/esm5/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.js +0 -159
  254. package/esm5/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.js +0 -130
  255. package/esm5/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.js +0 -215
  256. package/esm5/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.js +0 -61
  257. package/esm5/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.js +0 -88
  258. package/esm5/lib/fixture/fixture-capability/fixture-capability.component.js +0 -130
  259. package/esm5/lib/fixture/fixture-channel/fixture-channel.component.js +0 -68
  260. package/esm5/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.js +0 -306
  261. package/esm5/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.js +0 -32
  262. package/esm5/lib/fixture/fixture-settings/fixture-settings.component.js +0 -36
  263. package/esm5/lib/fixture/fixture.component.js +0 -71
  264. package/esm5/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.js +0 -127
  265. package/esm5/lib/fixture-pool/fixture-pool.component.js +0 -430
  266. package/esm5/lib/intro/intro.component.js +0 -26
  267. package/esm5/lib/master-dimmer/master-dimmer.component.js +0 -42
  268. package/esm5/lib/models/cached-fixture-capability.js +0 -11
  269. package/esm5/lib/models/cached-fixture-channel.js +0 -9
  270. package/esm5/lib/models/cached-fixture.js +0 -8
  271. package/esm5/lib/models/color.js +0 -10
  272. package/esm5/lib/models/composition.js +0 -60
  273. package/esm5/lib/models/effect-curve-profile-channel.js +0 -29
  274. package/esm5/lib/models/effect-curve.js +0 -95
  275. package/esm5/lib/models/effect-pan-tilt.js +0 -24
  276. package/esm5/lib/models/effect.js +0 -14
  277. package/esm5/lib/models/fixture-capability-value.js +0 -17
  278. package/esm5/lib/models/fixture-capability.js +0 -86
  279. package/esm5/lib/models/fixture-channel-value.js +0 -13
  280. package/esm5/lib/models/fixture-channel.js +0 -38
  281. package/esm5/lib/models/fixture-mode.js +0 -16
  282. package/esm5/lib/models/fixture-profile.js +0 -114
  283. package/esm5/lib/models/fixture-wheel-slot.js +0 -28
  284. package/esm5/lib/models/fixture-wheel.js +0 -29
  285. package/esm5/lib/models/fixture.js +0 -42
  286. package/esm5/lib/models/preset-region-scene.js +0 -10
  287. package/esm5/lib/models/preset.js +0 -90
  288. package/esm5/lib/models/project.js +0 -122
  289. package/esm5/lib/models/scene-playback-region.js +0 -13
  290. package/esm5/lib/models/scene.js +0 -29
  291. package/esm5/lib/models/universe.js +0 -13
  292. package/esm5/lib/preset/preset-settings/preset-settings.component.js +0 -67
  293. package/esm5/lib/preset/preset.component.js +0 -86
  294. package/esm5/lib/preview/models/color-changer-3d.js +0 -194
  295. package/esm5/lib/preview/models/fixture-3d.js +0 -196
  296. package/esm5/lib/preview/models/moving-head-3d.js +0 -250
  297. package/esm5/lib/preview/preview.component.js +0 -280
  298. package/esm5/lib/project/project-browser/project-browser.component.js +0 -77
  299. package/esm5/lib/project/project-import/project-import.component.js +0 -88
  300. package/esm5/lib/project/project-save/project-save.component.js +0 -120
  301. package/esm5/lib/project/project-share/project-share.component.js +0 -44
  302. package/esm5/lib/scene/scene-settings/scene-settings.component.js +0 -53
  303. package/esm5/lib/scene/scene.component.js +0 -57
  304. package/esm5/lib/services/animation.service.js +0 -18
  305. package/esm5/lib/services/config.service.js +0 -29
  306. package/esm5/lib/services/effect.service.js +0 -17
  307. package/esm5/lib/services/error-dialog.service.js +0 -46
  308. package/esm5/lib/services/fixture-pool.service.js +0 -36
  309. package/esm5/lib/services/fixture.service.js +0 -643
  310. package/esm5/lib/services/hotkey-target-exclude.service.js +0 -27
  311. package/esm5/lib/services/intro.service.js +0 -145
  312. package/esm5/lib/services/preset.service.js +0 -637
  313. package/esm5/lib/services/preview-mesh.service.js +0 -61
  314. package/esm5/lib/services/preview.service.js +0 -754
  315. package/esm5/lib/services/project-load.service.js +0 -185
  316. package/esm5/lib/services/project.service.js +0 -127
  317. package/esm5/lib/services/scene.service.js +0 -251
  318. package/esm5/lib/services/timeline.service.js +0 -845
  319. package/esm5/lib/services/universe.service.js +0 -36
  320. package/esm5/lib/services/user-ensure-login.service.js +0 -45
  321. package/esm5/lib/services/user.service.js +0 -95
  322. package/esm5/lib/services/uuid.service.js +0 -26
  323. package/esm5/lib/services/warning-dialog.service.js +0 -45
  324. package/esm5/lib/timeline/composition-settings/composition-settings.component.js +0 -206
  325. package/esm5/lib/timeline/timeline-grid/timeline-grid.component.js +0 -56
  326. package/esm5/lib/timeline/timeline.component.js +0 -243
  327. package/esm5/lib/user/user-login/user-login.component.js +0 -66
  328. package/esm5/lib/user/user-register/user-register.component.js +0 -91
  329. package/esm5/lib/wait-dialog/wait-dialog.component.js +0 -18
  330. package/esm5/lib/warning-dialog/warning-dialog.component.js +0 -43
  331. package/esm5/public_api.js +0 -7
  332. package/esm5/rocketshow-designer.js +0 -61
  333. package/fesm2015/rocketshow-designer.js +0 -7945
  334. package/fesm2015/rocketshow-designer.js.map +0 -1
  335. package/fesm5/rocketshow-designer.js +0 -9690
  336. package/fesm5/rocketshow-designer.js.map +0 -1
  337. package/rocketshow-designer-1.32.0.tgz +0 -0
  338. package/rocketshow-designer.d.ts +0 -60
  339. package/rocketshow-designer.metadata.json +0 -1
@@ -0,0 +1,216 @@
1
+ import { Component, HostListener } from '@angular/core';
2
+ import { BsModalRef } from 'ngx-bootstrap/modal';
3
+ import { TimelineService } from '../../services/timeline.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "ngx-bootstrap/modal";
6
+ import * as i2 from "../../services/timeline.service";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@angular/forms";
9
+ import * as i5 from "@ngx-translate/core";
10
+ function TimelineGridComponent_div_20_Template(rf, ctx) { if (rf & 1) {
11
+ const _r1 = i0.ɵɵgetCurrentView();
12
+ i0.ɵɵelementStart(0, "div", 5)(1, "label", 6);
13
+ i0.ɵɵtext(2);
14
+ i0.ɵɵpipe(3, "translate");
15
+ i0.ɵɵelementEnd();
16
+ i0.ɵɵelementStart(4, "div", 7)(5, "input", 18);
17
+ i0.ɵɵlistener("ngModelChange", function TimelineGridComponent_div_20_Template_input_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.beatsPerMinute = $event); });
18
+ i0.ɵɵelementEnd()()();
19
+ } if (rf & 2) {
20
+ const ctx_r1 = i0.ɵɵnextContext();
21
+ i0.ɵɵadvance(2);
22
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "designer.timeline.beats-per-minute"));
23
+ i0.ɵɵadvance(3);
24
+ i0.ɵɵproperty("ngModel", ctx_r1.beatsPerMinute);
25
+ } }
26
+ function TimelineGridComponent_div_21_Template(rf, ctx) { if (rf & 1) {
27
+ const _r3 = i0.ɵɵgetCurrentView();
28
+ i0.ɵɵelementStart(0, "div", 5)(1, "label", 6);
29
+ i0.ɵɵtext(2);
30
+ i0.ɵɵpipe(3, "translate");
31
+ i0.ɵɵelementEnd();
32
+ i0.ɵɵelementStart(4, "div", 7)(5, "input", 19);
33
+ i0.ɵɵlistener("ngModelChange", function TimelineGridComponent_div_21_Template_input_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.timeSignatureUpper = $event); });
34
+ i0.ɵɵelementEnd();
35
+ i0.ɵɵelementStart(6, "div", 20)(7, "div", 21);
36
+ i0.ɵɵtext(8, "/");
37
+ i0.ɵɵelementEnd()();
38
+ i0.ɵɵelementStart(9, "input", 22);
39
+ i0.ɵɵlistener("ngModelChange", function TimelineGridComponent_div_21_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.timeSignatureLower = $event); });
40
+ i0.ɵɵelementEnd()()();
41
+ } if (rf & 2) {
42
+ const ctx_r1 = i0.ɵɵnextContext();
43
+ i0.ɵɵadvance(2);
44
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, "designer.timeline.time-signature"));
45
+ i0.ɵɵadvance(3);
46
+ i0.ɵɵproperty("ngModel", ctx_r1.timeSignatureUpper);
47
+ i0.ɵɵadvance(4);
48
+ i0.ɵɵproperty("ngModel", ctx_r1.timeSignatureLower);
49
+ } }
50
+ function TimelineGridComponent_div_22_Template(rf, ctx) { if (rf & 1) {
51
+ const _r4 = i0.ɵɵgetCurrentView();
52
+ i0.ɵɵelementStart(0, "div", 5)(1, "label", 6);
53
+ i0.ɵɵtext(2);
54
+ i0.ɵɵpipe(3, "translate");
55
+ i0.ɵɵelementEnd();
56
+ i0.ɵɵelementStart(4, "div", 7)(5, "select", 8);
57
+ i0.ɵɵlistener("ngModelChange", function TimelineGridComponent_div_22_Template_select_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.gridResolution = $event); });
58
+ i0.ɵɵelementStart(6, "option", 23);
59
+ i0.ɵɵtext(7, "1/1");
60
+ i0.ɵɵelementEnd();
61
+ i0.ɵɵelementStart(8, "option", 24);
62
+ i0.ɵɵtext(9, "1/2");
63
+ i0.ɵɵelementEnd();
64
+ i0.ɵɵelementStart(10, "option", 25);
65
+ i0.ɵɵtext(11, "1/4");
66
+ i0.ɵɵelementEnd();
67
+ i0.ɵɵelementStart(12, "option", 26);
68
+ i0.ɵɵtext(13, "1/8");
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵelementStart(14, "option", 27);
71
+ i0.ɵɵtext(15, "1/16");
72
+ i0.ɵɵelementEnd();
73
+ i0.ɵɵelementStart(16, "option", 28);
74
+ i0.ɵɵtext(17, "1/32");
75
+ i0.ɵɵelementEnd();
76
+ i0.ɵɵelementStart(18, "option", 29);
77
+ i0.ɵɵtext(19, "1/64");
78
+ i0.ɵɵelementEnd()()()();
79
+ } if (rf & 2) {
80
+ const ctx_r1 = i0.ɵɵnextContext();
81
+ i0.ɵɵadvance(2);
82
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "designer.timeline.grid-resolution"));
83
+ i0.ɵɵadvance(3);
84
+ i0.ɵɵproperty("ngModel", ctx_r1.gridResolution);
85
+ } }
86
+ function TimelineGridComponent_div_23_Template(rf, ctx) { if (rf & 1) {
87
+ const _r5 = i0.ɵɵgetCurrentView();
88
+ i0.ɵɵelementStart(0, "div", 5)(1, "label", 6);
89
+ i0.ɵɵtext(2);
90
+ i0.ɵɵpipe(3, "translate");
91
+ i0.ɵɵelementEnd();
92
+ i0.ɵɵelementStart(4, "div", 7)(5, "input", 18);
93
+ i0.ɵɵlistener("ngModelChange", function TimelineGridComponent_div_23_Template_input_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.gridOffsetMillis = $event); });
94
+ i0.ɵɵelementEnd()()();
95
+ } if (rf & 2) {
96
+ const ctx_r1 = i0.ɵɵnextContext();
97
+ i0.ɵɵadvance(2);
98
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "designer.timeline.grid-offset"));
99
+ i0.ɵɵadvance(3);
100
+ i0.ɵɵproperty("ngModel", ctx_r1.gridOffsetMillis);
101
+ } }
102
+ export class TimelineGridComponent {
103
+ constructor(bsModalRef, timelineService) {
104
+ this.bsModalRef = bsModalRef;
105
+ this.timelineService = timelineService;
106
+ this.gridType = timelineService.selectedComposition.gridType;
107
+ this.beatsPerMinute = timelineService.selectedComposition.beatsPerMinute;
108
+ this.timeSignatureUpper = timelineService.selectedComposition.timeSignatureUpper;
109
+ this.timeSignatureLower = timelineService.selectedComposition.timeSignatureLower;
110
+ this.snapToGrid = timelineService.selectedComposition.snapToGrid;
111
+ this.gridOffsetMillis = timelineService.selectedComposition.gridOffsetMillis;
112
+ this.gridResolution = timelineService.selectedComposition.gridResolution;
113
+ }
114
+ ngOnInit() { }
115
+ ok() {
116
+ this.timelineService.selectedComposition.gridType = this.gridType;
117
+ this.timelineService.selectedComposition.beatsPerMinute = this.beatsPerMinute;
118
+ this.timelineService.selectedComposition.timeSignatureUpper = this.timeSignatureUpper;
119
+ this.timelineService.selectedComposition.timeSignatureLower = this.timeSignatureLower;
120
+ this.timelineService.selectedComposition.snapToGrid = this.snapToGrid;
121
+ this.timelineService.selectedComposition.gridOffsetMillis = this.gridOffsetMillis;
122
+ this.timelineService.selectedComposition.gridResolution = this.gridResolution;
123
+ this.timelineService.updateGrid();
124
+ this.bsModalRef.hide();
125
+ }
126
+ cancel() {
127
+ this.bsModalRef.hide();
128
+ }
129
+ handleKeyboardEvent(event) {
130
+ this.ok();
131
+ }
132
+ static { this.ɵfac = function TimelineGridComponent_Factory(t) { return new (t || TimelineGridComponent)(i0.ɵɵdirectiveInject(i1.BsModalRef), i0.ɵɵdirectiveInject(i2.TimelineService)); }; }
133
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimelineGridComponent, selectors: [["lib-app-timeline-grid"]], hostBindings: function TimelineGridComponent_HostBindings(rf, ctx) { if (rf & 1) {
134
+ i0.ɵɵlistener("keydown.enter", function TimelineGridComponent_keydown_enter_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
135
+ } }, decls: 39, vars: 27, consts: [[1, "modal-header"], [1, "modal-title", "pull-left"], ["type", "button", "aria-label", "Close", 1, "close", "pull-right", 3, "click"], ["aria-hidden", "true"], [1, "modal-body"], [1, "form-group", "row"], [1, "col-lg-4", "col-form-label"], [1, "col-lg-8"], [1, "custom-select", 3, "ngModelChange", "ngModel"], ["value", "time"], ["value", "musical"], ["class", "form-group row", 4, "ngIf"], [1, "form-check"], ["type", "checkbox", "id", "snapToGrid", 1, "form-check-input", 3, "ngModelChange", "ngModel"], ["for", "snapToGrid", 1, "form-check-label"], [1, "modal-footer"], ["href", "#", "role", "button", 1, "mr-3", "my-auto", 3, "click"], ["type", "button", 1, "btn", "btn-primary", 3, "click"], ["type", "text", 1, "form-control", 3, "ngModelChange", "ngModel"], ["type", "text", 1, "form-control", 2, "float", "left", "width", "40px", 3, "ngModelChange", "ngModel"], [1, "d-flex", "px-2", "h-100", 2, "float", "left"], [1, "m-auto"], ["type", "text", 1, "form-control", 2, "width", "40px", 3, "ngModelChange", "ngModel"], ["value", "1"], ["value", "2"], ["value", "4"], ["value", "8"], ["value", "16"], ["value", "32"], ["value", "64"]], template: function TimelineGridComponent_Template(rf, ctx) { if (rf & 1) {
136
+ i0.ɵɵelementStart(0, "div", 0)(1, "h4", 1);
137
+ i0.ɵɵtext(2);
138
+ i0.ɵɵpipe(3, "translate");
139
+ i0.ɵɵelementEnd();
140
+ i0.ɵɵelementStart(4, "button", 2);
141
+ i0.ɵɵlistener("click", function TimelineGridComponent_Template_button_click_4_listener() { return ctx.bsModalRef.hide(); });
142
+ i0.ɵɵelementStart(5, "span", 3);
143
+ i0.ɵɵtext(6, "\u00D7");
144
+ i0.ɵɵelementEnd()()();
145
+ i0.ɵɵelementStart(7, "div", 4)(8, "div", 5)(9, "label", 6);
146
+ i0.ɵɵtext(10);
147
+ i0.ɵɵpipe(11, "translate");
148
+ i0.ɵɵelementEnd();
149
+ i0.ɵɵelementStart(12, "div", 7)(13, "select", 8);
150
+ i0.ɵɵlistener("ngModelChange", function TimelineGridComponent_Template_select_ngModelChange_13_listener($event) { return ctx.gridType = $event; });
151
+ i0.ɵɵelementStart(14, "option", 9);
152
+ i0.ɵɵtext(15);
153
+ i0.ɵɵpipe(16, "translate");
154
+ i0.ɵɵelementEnd();
155
+ i0.ɵɵelementStart(17, "option", 10);
156
+ i0.ɵɵtext(18);
157
+ i0.ɵɵpipe(19, "translate");
158
+ i0.ɵɵelementEnd()()()();
159
+ i0.ɵɵtemplate(20, TimelineGridComponent_div_20_Template, 6, 4, "div", 11)(21, TimelineGridComponent_div_21_Template, 10, 5, "div", 11)(22, TimelineGridComponent_div_22_Template, 20, 4, "div", 11)(23, TimelineGridComponent_div_23_Template, 6, 4, "div", 11);
160
+ i0.ɵɵelementStart(24, "div", 5);
161
+ i0.ɵɵelement(25, "label", 6);
162
+ i0.ɵɵelementStart(26, "div", 7)(27, "div", 12)(28, "input", 13);
163
+ i0.ɵɵlistener("ngModelChange", function TimelineGridComponent_Template_input_ngModelChange_28_listener($event) { return ctx.snapToGrid = $event; });
164
+ i0.ɵɵelementEnd();
165
+ i0.ɵɵelementStart(29, "label", 14);
166
+ i0.ɵɵtext(30);
167
+ i0.ɵɵpipe(31, "translate");
168
+ i0.ɵɵelementEnd()()()()();
169
+ i0.ɵɵelementStart(32, "div", 15)(33, "a", 16);
170
+ i0.ɵɵlistener("click", function TimelineGridComponent_Template_a_click_33_listener() { ctx.cancel(); return false; });
171
+ i0.ɵɵtext(34);
172
+ i0.ɵɵpipe(35, "translate");
173
+ i0.ɵɵelementEnd();
174
+ i0.ɵɵelementStart(36, "button", 17);
175
+ i0.ɵɵlistener("click", function TimelineGridComponent_Template_button_click_36_listener() { return ctx.ok(); });
176
+ i0.ɵɵtext(37);
177
+ i0.ɵɵpipe(38, "translate");
178
+ i0.ɵɵelementEnd()();
179
+ } if (rf & 2) {
180
+ i0.ɵɵadvance(2);
181
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 13, "designer.timeline.grid"));
182
+ i0.ɵɵadvance(8);
183
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 15, "designer.timeline.grid-type"));
184
+ i0.ɵɵadvance(3);
185
+ i0.ɵɵproperty("ngModel", ctx.gridType);
186
+ i0.ɵɵadvance(2);
187
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(16, 17, "designer.timeline.grid-type-time-based"));
188
+ i0.ɵɵadvance(3);
189
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(19, 19, "designer.timeline.grid-type-musical"));
190
+ i0.ɵɵadvance(2);
191
+ i0.ɵɵproperty("ngIf", ctx.gridType == "musical");
192
+ i0.ɵɵadvance();
193
+ i0.ɵɵproperty("ngIf", ctx.gridType == "musical");
194
+ i0.ɵɵadvance();
195
+ i0.ɵɵproperty("ngIf", ctx.gridType == "musical");
196
+ i0.ɵɵadvance();
197
+ i0.ɵɵproperty("ngIf", ctx.gridType == "musical");
198
+ i0.ɵɵadvance(5);
199
+ i0.ɵɵproperty("ngModel", ctx.snapToGrid);
200
+ i0.ɵɵadvance(2);
201
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(31, 21, "designer.timeline.snap-to-grid"), " ");
202
+ i0.ɵɵadvance(4);
203
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(35, 23, "designer.misc.cancel"), " ");
204
+ i0.ɵɵadvance(3);
205
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(38, 25, "designer.misc.ok"));
206
+ } }, dependencies: [i3.NgIf, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.CheckboxControlValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.NgModel, i5.TranslatePipe] }); }
207
+ }
208
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimelineGridComponent, [{
209
+ type: Component,
210
+ args: [{ selector: 'lib-app-timeline-grid', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ 'designer.timeline.grid' | translate }}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n</div>\n<div class=\"modal-body\">\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.grid-type' | translate }}</label>\n <div class=\"col-lg-8\">\n <select class=\"custom-select\" [ngModel]=\"gridType\" (ngModelChange)=\"gridType = $event\">\n <option value=\"time\">{{ 'designer.timeline.grid-type-time-based' | translate }}</option>\n <option value=\"musical\">{{ 'designer.timeline.grid-type-musical' | translate }}</option>\n </select>\n </div>\n </div>\n\n <div *ngIf=\"gridType == 'musical'\" class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.beats-per-minute' | translate }}</label>\n <div class=\"col-lg-8\">\n <input type=\"text\" class=\"form-control\" [ngModel]=\"beatsPerMinute\" (ngModelChange)=\"beatsPerMinute = $event\" />\n </div>\n </div>\n\n <div *ngIf=\"gridType == 'musical'\" class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.time-signature' | translate }}</label>\n <div class=\"col-lg-8\">\n <input\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"timeSignatureUpper\"\n (ngModelChange)=\"timeSignatureUpper = $event\"\n style=\"float: left; width: 40px\"\n />\n <div class=\"d-flex px-2 h-100\" style=\"float: left\">\n <div class=\"m-auto\">/</div>\n </div>\n <input\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"timeSignatureLower\"\n (ngModelChange)=\"timeSignatureLower = $event\"\n style=\"width: 40px\"\n />\n </div>\n </div>\n\n <div *ngIf=\"gridType == 'musical'\" class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.grid-resolution' | translate }}</label>\n <div class=\"col-lg-8\">\n <select class=\"custom-select\" [ngModel]=\"gridResolution\" (ngModelChange)=\"gridResolution = $event\">\n <option value=\"1\">1/1</option>\n <option value=\"2\">1/2</option>\n <option value=\"4\">1/4</option>\n <option value=\"8\">1/8</option>\n <option value=\"16\">1/16</option>\n <option value=\"32\">1/32</option>\n <option value=\"64\">1/64</option>\n </select>\n </div>\n </div>\n\n <div *ngIf=\"gridType == 'musical'\" class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.grid-offset' | translate }}</label>\n <div class=\"col-lg-8\">\n <input type=\"text\" class=\"form-control\" [ngModel]=\"gridOffsetMillis\" (ngModelChange)=\"gridOffsetMillis = $event\" />\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\"></label>\n <div class=\"col-lg-8\">\n <div class=\"form-check\">\n <input type=\"checkbox\" [ngModel]=\"snapToGrid\" (ngModelChange)=\"snapToGrid = $event\" class=\"form-check-input\" id=\"snapToGrid\" />\n\n <label class=\"form-check-label\" for=\"snapToGrid\">\n {{ 'designer.timeline.snap-to-grid' | translate }}\n </label>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer\">\n <a class=\"mr-3 my-auto\" href=\"#\" role=\"button\" (click)=\"cancel(); (false)\">\n {{ 'designer.misc.cancel' | translate }}\n </a>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"ok()\">{{ 'designer.misc.ok' | translate }}</button>\n</div>\n" }]
211
+ }], () => [{ type: i1.BsModalRef }, { type: i2.TimelineService }], { handleKeyboardEvent: [{
212
+ type: HostListener,
213
+ args: ['document:keydown.enter', ['$event']]
214
+ }] }); })();
215
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimelineGridComponent, { className: "TimelineGridComponent" }); })();
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL3RpbWVsaW5lL3RpbWVsaW5lLWdyaWQvdGltZWxpbmUtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL3RpbWVsaW5lL3RpbWVsaW5lLWdyaWQvdGltZWxpbmUtZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7SUNnQjlELEFBREYsOEJBQTBELGVBQ2pCO0lBQUEsWUFBc0Q7O0lBQUEsaUJBQVE7SUFFbkcsQUFERiw4QkFBc0IsZ0JBQzJGO0lBQTVDLDBPQUF5QztJQUVoSCxBQURFLEFBREUsaUJBQStHLEVBQzNHLEVBQ0Y7OztJQUptQyxlQUFzRDtJQUF0RCxnRkFBc0Q7SUFFbkQsZUFBMEI7SUFBMUIsK0NBQTBCOzs7O0lBS3BFLEFBREYsOEJBQTBELGVBQ2pCO0lBQUEsWUFBb0Q7O0lBQUEsaUJBQVE7SUFFakcsQUFERiw4QkFBc0IsZ0JBT2xCO0lBRkEsOE9BQTZDO0lBSi9DLGlCQU1FO0lBRUEsQUFERiwrQkFBbUQsY0FDN0I7SUFBQSxpQkFBQztJQUN2QixBQUR1QixpQkFBTSxFQUN2QjtJQUNOLGlDQU1FO0lBRkEsOE9BQTZDO0lBSW5ELEFBREUsQUFQRSxpQkFNRSxFQUNFLEVBQ0Y7OztJQXBCbUMsZUFBb0Q7SUFBcEQsOEVBQW9EO0lBS3ZGLGVBQThCO0lBQTlCLG1EQUE4QjtJQVU5QixlQUE4QjtJQUE5QixtREFBOEI7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RDtZQUExRCxzRkFBMEQ7WUFDdkQsZUFBdUQ7WUFBdkQsbUZBQXVEO1lBSy9FLGVBQTJCO1lBQTNCLGdEQUEyQjtZQU8zQixjQUEyQjtZQUEzQixnREFBMkI7WUF1QjNCLGNBQTJCO1lBQTNCLGdEQUEyQjtZQWUzQixjQUEyQjtZQUEzQixnREFBMkI7WUFXSixlQUFzQjtZQUF0Qix3Q0FBc0I7WUFHM0MsZUFDRjtZQURFLHlGQUNGO1lBT0osZUFDRjtZQURFLCtFQUNGO1lBQzZELGVBQW9DO1lBQXBDLGdFQUFvQzs7O2lGRDdFdEYscUJBQXFCO2NBTGpDLFNBQVM7MkJBQ0UsdUJBQXVCO3lFQTJDakMsbUJBQW1CO2tCQURsQixZQUFZO21CQUFDLHdCQUF3QixFQUFFLENBQUMsUUFBUSxDQUFDOztrRkF0Q3ZDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFRpbWVsaW5lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpbWVsaW5lLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLXRpbWVsaW5lLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZWxpbmUtZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWVsaW5lLWdyaWQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lbGluZUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZ3JpZFR5cGU6IHN0cmluZztcbiAgcHVibGljIGJlYXRzUGVyTWludXRlOiBudW1iZXI7XG4gIHB1YmxpYyB0aW1lU2lnbmF0dXJlVXBwZXI6IG51bWJlcjtcbiAgcHVibGljIHRpbWVTaWduYXR1cmVMb3dlcjogbnVtYmVyO1xuICBwdWJsaWMgc25hcFRvR3JpZDogYm9vbGVhbjtcbiAgcHVibGljIGdyaWRPZmZzZXRNaWxsaXM6IG51bWJlcjtcbiAgcHVibGljIGdyaWRSZXNvbHV0aW9uOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsIHB1YmxpYyB0aW1lbGluZVNlcnZpY2U6IFRpbWVsaW5lU2VydmljZSkge1xuICAgIHRoaXMuZ3JpZFR5cGUgPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi5ncmlkVHlwZTtcbiAgICB0aGlzLmJlYXRzUGVyTWludXRlID0gdGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24uYmVhdHNQZXJNaW51dGU7XG4gICAgdGhpcy50aW1lU2lnbmF0dXJlVXBwZXIgPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi50aW1lU2lnbmF0dXJlVXBwZXI7XG4gICAgdGhpcy50aW1lU2lnbmF0dXJlTG93ZXIgPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi50aW1lU2lnbmF0dXJlTG93ZXI7XG4gICAgdGhpcy5zbmFwVG9HcmlkID0gdGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24uc25hcFRvR3JpZDtcbiAgICB0aGlzLmdyaWRPZmZzZXRNaWxsaXMgPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi5ncmlkT2Zmc2V0TWlsbGlzO1xuICAgIHRoaXMuZ3JpZFJlc29sdXRpb24gPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi5ncmlkUmVzb2x1dGlvbjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge31cblxuICBvaygpIHtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uLmdyaWRUeXBlID0gdGhpcy5ncmlkVHlwZTtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uLmJlYXRzUGVyTWludXRlID0gdGhpcy5iZWF0c1Blck1pbnV0ZTtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uLnRpbWVTaWduYXR1cmVVcHBlciA9IHRoaXMudGltZVNpZ25hdHVyZVVwcGVyO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24udGltZVNpZ25hdHVyZUxvd2VyID0gdGhpcy50aW1lU2lnbmF0dXJlTG93ZXI7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi5zbmFwVG9HcmlkID0gdGhpcy5zbmFwVG9HcmlkO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24uZ3JpZE9mZnNldE1pbGxpcyA9IHRoaXMuZ3JpZE9mZnNldE1pbGxpcztcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uLmdyaWRSZXNvbHV0aW9uID0gdGhpcy5ncmlkUmVzb2x1dGlvbjtcblxuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnVwZGF0ZUdyaWQoKTtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5vaygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlIHB1bGwtbGVmdFwiPnt7ICdkZXNpZ25lci50aW1lbGluZS5ncmlkJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2UgcHVsbC1yaWdodFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJic01vZGFsUmVmLmhpZGUoKVwiPlxuICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbGctNCBjb2wtZm9ybS1sYWJlbFwiPnt7ICdkZXNpZ25lci50aW1lbGluZS5ncmlkLXR5cGUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLThcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJjdXN0b20tc2VsZWN0XCIgW25nTW9kZWxdPVwiZ3JpZFR5cGVcIiAobmdNb2RlbENoYW5nZSk9XCJncmlkVHlwZSA9ICRldmVudFwiPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwidGltZVwiPnt7ICdkZXNpZ25lci50aW1lbGluZS5ncmlkLXR5cGUtdGltZS1iYXNlZCcgfCB0cmFuc2xhdGUgfX08L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm11c2ljYWxcIj57eyAnZGVzaWduZXIudGltZWxpbmUuZ3JpZC10eXBlLW11c2ljYWwnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImdyaWRUeXBlID09ICdtdXNpY2FsJ1wiIGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbGctNCBjb2wtZm9ybS1sYWJlbFwiPnt7ICdkZXNpZ25lci50aW1lbGluZS5iZWF0cy1wZXItbWludXRlJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy04XCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ01vZGVsXT1cImJlYXRzUGVyTWludXRlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiYmVhdHNQZXJNaW51dGUgPSAkZXZlbnRcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiZ3JpZFR5cGUgPT0gJ211c2ljYWwnXCIgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1sZy00IGNvbC1mb3JtLWxhYmVsXCI+e3sgJ2Rlc2lnbmVyLnRpbWVsaW5lLnRpbWUtc2lnbmF0dXJlJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy04XCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFtuZ01vZGVsXT1cInRpbWVTaWduYXR1cmVVcHBlclwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRpbWVTaWduYXR1cmVVcHBlciA9ICRldmVudFwiXG4gICAgICAgIHN0eWxlPVwiZmxvYXQ6IGxlZnQ7IHdpZHRoOiA0MHB4XCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHB4LTIgaC0xMDBcIiBzdHlsZT1cImZsb2F0OiBsZWZ0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWF1dG9cIj4vPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW25nTW9kZWxdPVwidGltZVNpZ25hdHVyZUxvd2VyXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGltZVNpZ25hdHVyZUxvd2VyID0gJGV2ZW50XCJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogNDBweFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiZ3JpZFR5cGUgPT0gJ211c2ljYWwnXCIgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1sZy00IGNvbC1mb3JtLWxhYmVsXCI+e3sgJ2Rlc2lnbmVyLnRpbWVsaW5lLmdyaWQtcmVzb2x1dGlvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOFwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIiBbbmdNb2RlbF09XCJncmlkUmVzb2x1dGlvblwiIChuZ01vZGVsQ2hhbmdlKT1cImdyaWRSZXNvbHV0aW9uID0gJGV2ZW50XCI+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+MS8xPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+MS8yPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+MS80PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI4XCI+MS84PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIxNlwiPjEvMTY8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjMyXCI+MS8zMjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNjRcIj4xLzY0PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImdyaWRUeXBlID09ICdtdXNpY2FsJ1wiIGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbGctNCBjb2wtZm9ybS1sYWJlbFwiPnt7ICdkZXNpZ25lci50aW1lbGluZS5ncmlkLW9mZnNldCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdNb2RlbF09XCJncmlkT2Zmc2V0TWlsbGlzXCIgKG5nTW9kZWxDaGFuZ2UpPVwiZ3JpZE9mZnNldE1pbGxpcyA9ICRldmVudFwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1sZy00IGNvbC1mb3JtLWxhYmVsXCI+PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLThcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbbmdNb2RlbF09XCJzbmFwVG9HcmlkXCIgKG5nTW9kZWxDaGFuZ2UpPVwic25hcFRvR3JpZCA9ICRldmVudFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIGlkPVwic25hcFRvR3JpZFwiIC8+XG5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInNuYXBUb0dyaWRcIj5cbiAgICAgICAgICB7eyAnZGVzaWduZXIudGltZWxpbmUuc25hcC10by1ncmlkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gIDxhIGNsYXNzPVwibXItMyBteS1hdXRvXCIgaHJlZj1cIiNcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbCgpOyAoZmFsc2UpXCI+XG4gICAge3sgJ2Rlc2lnbmVyLm1pc2MuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2E+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm9rKClcIj57eyAnZGVzaWduZXIubWlzYy5vaycgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbjwvZGl2PlxuIl19