@rocketshow/designer 1.32.0 → 1.35.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 (362) hide show
  1. package/assets/i18n/de.json +2 -1
  2. package/assets/i18n/en.json +2 -1
  3. package/esm2022/lib/array-sort-pipe.mjs +30 -0
  4. package/esm2022/lib/designer.component.mjs +672 -0
  5. package/esm2022/lib/designer.module.mjs +186 -0
  6. package/esm2022/lib/designer.service.mjs +14 -0
  7. package/esm2022/lib/dropzone/dropzone.component.mjs +93 -0
  8. package/esm2022/lib/effect/effect-curve/effect-curve.component.mjs +577 -0
  9. package/esm2022/lib/effect/effect-pan-tilt/effect-pan-tilt.component.mjs +36 -0
  10. package/esm2022/lib/effect/effect.component.mjs +174 -0
  11. package/esm2022/lib/error-dialog/error-dialog.component.mjs +75 -0
  12. package/esm2022/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.mjs +222 -0
  13. package/esm2022/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.mjs +147 -0
  14. package/esm2022/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.mjs +213 -0
  15. package/esm2022/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.mjs +78 -0
  16. package/esm2022/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.mjs +119 -0
  17. package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +169 -0
  18. package/esm2022/lib/fixture/fixture-channel/fixture-channel.component.mjs +162 -0
  19. package/esm2022/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.mjs +365 -0
  20. package/esm2022/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.mjs +151 -0
  21. package/esm2022/lib/fixture/fixture-settings/fixture-settings.component.mjs +46 -0
  22. package/esm2022/lib/fixture/fixture.component.mjs +148 -0
  23. package/esm2022/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.mjs +145 -0
  24. package/esm2022/lib/fixture-pool/fixture-pool.component.mjs +643 -0
  25. package/esm2022/lib/intro/intro.component.mjs +95 -0
  26. package/esm2022/lib/master-dimmer/master-dimmer.component.mjs +66 -0
  27. package/esm2022/lib/models/cached-fixture-capability.mjs +9 -0
  28. package/esm2022/lib/models/cached-fixture-channel.mjs +7 -0
  29. package/esm2022/lib/models/cached-fixture.mjs +6 -0
  30. package/esm2022/lib/models/color.mjs +8 -0
  31. package/esm2022/lib/models/composition.mjs +46 -0
  32. package/esm2022/lib/models/effect-curve-profile-channel.mjs +15 -0
  33. package/esm2022/lib/models/effect-curve.mjs +69 -0
  34. package/esm2022/lib/models/effect-pan-tilt.mjs +19 -0
  35. package/esm2022/lib/models/effect.mjs +12 -0
  36. package/esm2022/lib/models/fixture-capability-value.mjs +15 -0
  37. package/esm2022/lib/models/fixture-capability.mjs +84 -0
  38. package/esm2022/lib/models/fixture-channel-value.mjs +11 -0
  39. package/esm2022/lib/models/fixture-channel.mjs +24 -0
  40. package/esm2022/lib/models/fixture-matrix-pixel-group-constraints.mjs +27 -0
  41. package/esm2022/lib/models/fixture-matrix-pixel-group.mjs +12 -0
  42. package/esm2022/lib/models/fixture-matrix.mjs +25 -0
  43. package/esm2022/lib/models/fixture-mode-channel.mjs +26 -0
  44. package/esm2022/lib/models/fixture-mode.mjs +17 -0
  45. package/esm2022/lib/models/fixture-physical.mjs +14 -0
  46. package/esm2022/lib/models/fixture-profile.mjs +85 -0
  47. package/esm2022/lib/models/fixture-wheel-slot.mjs +26 -0
  48. package/esm2022/lib/models/fixture-wheel.mjs +15 -0
  49. package/esm2022/lib/models/fixture.mjs +40 -0
  50. package/esm2022/lib/models/preset-fixture.mjs +10 -0
  51. package/esm2022/lib/models/preset-region-scene.mjs +8 -0
  52. package/esm2022/lib/models/preset.mjs +65 -0
  53. package/esm2022/lib/models/project.mjs +78 -0
  54. package/esm2022/lib/models/scene-playback-region.mjs +11 -0
  55. package/esm2022/lib/models/scene.mjs +27 -0
  56. package/esm2022/lib/preset/preset-settings/preset-settings.component.mjs +194 -0
  57. package/esm2022/lib/preset/preset.component.mjs +131 -0
  58. package/esm2022/lib/preview/models/color-changer-3d.mjs +64 -0
  59. package/esm2022/lib/preview/models/fixture-3d.mjs +274 -0
  60. package/esm2022/lib/preview/models/moving-head-3d.mjs +124 -0
  61. package/esm2022/lib/preview/preview.component.mjs +219 -0
  62. package/esm2022/lib/project/project-browser/project-browser.component.mjs +143 -0
  63. package/esm2022/lib/project/project-import/project-import.component.mjs +107 -0
  64. package/esm2022/lib/project/project-save/project-save.component.mjs +178 -0
  65. package/esm2022/lib/project/project-share/project-share.component.mjs +71 -0
  66. package/esm2022/lib/scene/scene-settings/scene-settings.component.mjs +146 -0
  67. package/esm2022/lib/scene/scene.component.mjs +110 -0
  68. package/esm2022/lib/services/animation.service.mjs +16 -0
  69. package/esm2022/lib/services/config.service.mjs +28 -0
  70. package/esm2022/lib/services/effect.service.mjs +14 -0
  71. package/esm2022/lib/services/error-dialog.service.mjs +39 -0
  72. package/esm2022/lib/services/fixture-pool.service.mjs +30 -0
  73. package/esm2022/lib/services/fixture.service.mjs +639 -0
  74. package/esm2022/lib/services/hotkey-target-exclude.service.mjs +24 -0
  75. package/esm2022/lib/services/intro.service.mjs +140 -0
  76. package/esm2022/lib/services/preset.service.mjs +449 -0
  77. package/esm2022/lib/services/preview-mesh.service.mjs +57 -0
  78. package/esm2022/lib/services/preview.service.mjs +497 -0
  79. package/esm2022/lib/services/project-load.service.mjs +209 -0
  80. package/esm2022/lib/services/project.service.mjs +93 -0
  81. package/esm2022/lib/services/scene.service.mjs +164 -0
  82. package/esm2022/lib/services/timeline.service.mjs +726 -0
  83. package/esm2022/lib/services/user-ensure-login.service.mjs +38 -0
  84. package/esm2022/lib/services/user.service.mjs +89 -0
  85. package/esm2022/lib/services/uuid.service.mjs +23 -0
  86. package/esm2022/lib/services/warning-dialog.service.mjs +38 -0
  87. package/esm2022/lib/timeline/composition-settings/composition-settings.component.mjs +304 -0
  88. package/esm2022/lib/timeline/timeline-grid/timeline-grid.component.mjs +216 -0
  89. package/esm2022/lib/timeline/timeline.component.mjs +418 -0
  90. package/esm2022/lib/user/user-login/user-login.component.mjs +144 -0
  91. package/esm2022/lib/user/user-register/user-register.component.mjs +220 -0
  92. package/esm2022/lib/wait-dialog/wait-dialog.component.mjs +26 -0
  93. package/esm2022/lib/warning-dialog/warning-dialog.component.mjs +68 -0
  94. package/esm2022/public_api.mjs +7 -0
  95. package/esm2022/rocketshow-designer.mjs +5 -0
  96. package/fesm2022/rocketshow-designer.mjs +11171 -0
  97. package/fesm2022/rocketshow-designer.mjs.map +1 -0
  98. package/index.d.ts +5 -0
  99. package/lib/array-sort-pipe.d.ts +3 -0
  100. package/lib/designer.component.d.ts +19 -16
  101. package/lib/designer.module.d.ts +55 -0
  102. package/lib/designer.service.d.ts +3 -0
  103. package/lib/dropzone/dropzone.component.d.ts +24 -0
  104. package/lib/effect/effect-curve/effect-curve.component.d.ts +4 -1
  105. package/lib/effect/effect-pan-tilt/effect-pan-tilt.component.d.ts +3 -0
  106. package/lib/effect/effect.component.d.ts +3 -0
  107. package/lib/error-dialog/error-dialog.component.d.ts +3 -0
  108. package/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.d.ts +4 -1
  109. package/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.d.ts +3 -0
  110. package/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.d.ts +5 -2
  111. package/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.d.ts +3 -0
  112. package/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.d.ts +3 -0
  113. package/lib/fixture/fixture-capability/fixture-capability.component.d.ts +3 -0
  114. package/lib/fixture/fixture-channel/fixture-channel.component.d.ts +3 -0
  115. package/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.d.ts +3 -0
  116. package/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.d.ts +3 -0
  117. package/lib/fixture/fixture-settings/fixture-settings.component.d.ts +3 -0
  118. package/lib/fixture/fixture.component.d.ts +7 -3
  119. package/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.d.ts +3 -0
  120. package/lib/fixture-pool/fixture-pool.component.d.ts +3 -0
  121. package/lib/intro/intro.component.d.ts +3 -0
  122. package/lib/master-dimmer/master-dimmer.component.d.ts +3 -0
  123. package/lib/models/cached-fixture.d.ts +1 -0
  124. package/lib/models/fixture-matrix-pixel-group-constraints.d.ts +8 -0
  125. package/lib/models/fixture-matrix-pixel-group.d.ts +6 -0
  126. package/lib/models/fixture-matrix.d.ts +6 -0
  127. package/lib/models/fixture-mode-channel.d.ts +8 -0
  128. package/lib/models/fixture-mode.d.ts +3 -1
  129. package/lib/models/fixture-physical.d.ts +4 -0
  130. package/lib/models/fixture-profile.d.ts +5 -0
  131. package/lib/models/preset-fixture.d.ts +5 -0
  132. package/lib/models/preset.d.ts +2 -0
  133. package/lib/models/project.d.ts +3 -0
  134. package/lib/preset/preset-settings/preset-settings.component.d.ts +3 -0
  135. package/lib/preset/preset.component.d.ts +3 -0
  136. package/lib/preview/models/color-changer-3d.d.ts +1 -11
  137. package/lib/preview/models/fixture-3d.d.ts +11 -0
  138. package/lib/preview/models/moving-head-3d.d.ts +1 -11
  139. package/lib/preview/preview.component.d.ts +4 -4
  140. package/lib/project/project-browser/project-browser.component.d.ts +3 -0
  141. package/lib/project/project-import/project-import.component.d.ts +3 -0
  142. package/lib/project/project-save/project-save.component.d.ts +3 -0
  143. package/lib/project/project-share/project-share.component.d.ts +3 -0
  144. package/lib/scene/scene-settings/scene-settings.component.d.ts +3 -0
  145. package/lib/scene/scene.component.d.ts +3 -0
  146. package/lib/services/animation.service.d.ts +3 -0
  147. package/lib/services/config.service.d.ts +4 -0
  148. package/lib/services/effect.service.d.ts +3 -0
  149. package/lib/services/error-dialog.service.d.ts +3 -0
  150. package/lib/services/fixture-pool.service.d.ts +3 -0
  151. package/lib/services/fixture.service.d.ts +10 -2
  152. package/lib/services/hotkey-target-exclude.service.d.ts +3 -0
  153. package/lib/services/intro.service.d.ts +3 -0
  154. package/lib/services/preset.service.d.ts +7 -2
  155. package/lib/services/preview-mesh.service.d.ts +3 -0
  156. package/lib/services/preview.service.d.ts +6 -4
  157. package/lib/services/project-load.service.d.ts +8 -1
  158. package/lib/services/project.service.d.ts +5 -3
  159. package/lib/services/scene.service.d.ts +3 -0
  160. package/lib/services/timeline.service.d.ts +3 -0
  161. package/lib/services/user-ensure-login.service.d.ts +3 -0
  162. package/lib/services/user.service.d.ts +3 -0
  163. package/lib/services/uuid.service.d.ts +3 -0
  164. package/lib/services/warning-dialog.service.d.ts +3 -0
  165. package/lib/timeline/composition-settings/composition-settings.component.d.ts +5 -1
  166. package/lib/timeline/timeline-grid/timeline-grid.component.d.ts +3 -0
  167. package/lib/timeline/timeline.component.d.ts +3 -0
  168. package/lib/user/user-login/user-login.component.d.ts +3 -0
  169. package/lib/user/user-register/user-register.component.d.ts +3 -0
  170. package/lib/wait-dialog/wait-dialog.component.d.ts +3 -0
  171. package/lib/warning-dialog/warning-dialog.component.d.ts +3 -0
  172. package/package.json +20 -22
  173. package/rocketshow-designer-1.35.0.tgz +0 -0
  174. package/bundles/rocketshow-designer.umd.js +0 -9966
  175. package/bundles/rocketshow-designer.umd.js.map +0 -1
  176. package/bundles/rocketshow-designer.umd.min.js +0 -17
  177. package/bundles/rocketshow-designer.umd.min.js.map +0 -1
  178. package/esm2015/lib/array-sort-pipe.js +0 -28
  179. package/esm2015/lib/designer.component.js +0 -411
  180. package/esm2015/lib/designer.module.js +0 -117
  181. package/esm2015/lib/designer.service.js +0 -16
  182. package/esm2015/lib/effect/effect-curve/effect-curve.component.js +0 -325
  183. package/esm2015/lib/effect/effect-pan-tilt/effect-pan-tilt.component.js +0 -30
  184. package/esm2015/lib/effect/effect.component.js +0 -73
  185. package/esm2015/lib/error-dialog/error-dialog.component.js +0 -42
  186. package/esm2015/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.js +0 -141
  187. package/esm2015/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.js +0 -128
  188. package/esm2015/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.js +0 -163
  189. package/esm2015/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.js +0 -60
  190. package/esm2015/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.js +0 -87
  191. package/esm2015/lib/fixture/fixture-capability/fixture-capability.component.js +0 -97
  192. package/esm2015/lib/fixture/fixture-channel/fixture-channel.component.js +0 -66
  193. package/esm2015/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.js +0 -200
  194. package/esm2015/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.js +0 -31
  195. package/esm2015/lib/fixture/fixture-settings/fixture-settings.component.js +0 -35
  196. package/esm2015/lib/fixture/fixture.component.js +0 -70
  197. package/esm2015/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.js +0 -128
  198. package/esm2015/lib/fixture-pool/fixture-pool.component.js +0 -331
  199. package/esm2015/lib/intro/intro.component.js +0 -25
  200. package/esm2015/lib/master-dimmer/master-dimmer.component.js +0 -41
  201. package/esm2015/lib/models/cached-fixture-capability.js +0 -9
  202. package/esm2015/lib/models/cached-fixture-channel.js +0 -7
  203. package/esm2015/lib/models/cached-fixture.js +0 -6
  204. package/esm2015/lib/models/color.js +0 -8
  205. package/esm2015/lib/models/composition.js +0 -46
  206. package/esm2015/lib/models/effect-curve-profile-channel.js +0 -15
  207. package/esm2015/lib/models/effect-curve.js +0 -69
  208. package/esm2015/lib/models/effect-pan-tilt.js +0 -19
  209. package/esm2015/lib/models/effect.js +0 -12
  210. package/esm2015/lib/models/fixture-capability-value.js +0 -15
  211. package/esm2015/lib/models/fixture-capability.js +0 -84
  212. package/esm2015/lib/models/fixture-channel-value.js +0 -11
  213. package/esm2015/lib/models/fixture-channel.js +0 -24
  214. package/esm2015/lib/models/fixture-mode.js +0 -14
  215. package/esm2015/lib/models/fixture-profile.js +0 -70
  216. package/esm2015/lib/models/fixture-wheel-slot.js +0 -26
  217. package/esm2015/lib/models/fixture-wheel.js +0 -15
  218. package/esm2015/lib/models/fixture.js +0 -40
  219. package/esm2015/lib/models/preset-region-scene.js +0 -8
  220. package/esm2015/lib/models/preset.js +0 -56
  221. package/esm2015/lib/models/project.js +0 -68
  222. package/esm2015/lib/models/scene-playback-region.js +0 -11
  223. package/esm2015/lib/models/scene.js +0 -27
  224. package/esm2015/lib/models/universe.js +0 -11
  225. package/esm2015/lib/preset/preset-settings/preset-settings.component.js +0 -66
  226. package/esm2015/lib/preset/preset.component.js +0 -85
  227. package/esm2015/lib/preview/models/color-changer-3d.js +0 -167
  228. package/esm2015/lib/preview/models/fixture-3d.js +0 -150
  229. package/esm2015/lib/preview/models/moving-head-3d.js +0 -233
  230. package/esm2015/lib/preview/preview.component.js +0 -242
  231. package/esm2015/lib/project/project-browser/project-browser.component.js +0 -73
  232. package/esm2015/lib/project/project-import/project-import.component.js +0 -89
  233. package/esm2015/lib/project/project-save/project-save.component.js +0 -105
  234. package/esm2015/lib/project/project-share/project-share.component.js +0 -43
  235. package/esm2015/lib/scene/scene-settings/scene-settings.component.js +0 -52
  236. package/esm2015/lib/scene/scene.component.js +0 -56
  237. package/esm2015/lib/services/animation.service.js +0 -17
  238. package/esm2015/lib/services/config.service.js +0 -28
  239. package/esm2015/lib/services/effect.service.js +0 -16
  240. package/esm2015/lib/services/error-dialog.service.js +0 -44
  241. package/esm2015/lib/services/fixture-pool.service.js +0 -34
  242. package/esm2015/lib/services/fixture.service.js +0 -443
  243. package/esm2015/lib/services/hotkey-target-exclude.service.js +0 -26
  244. package/esm2015/lib/services/intro.service.js +0 -144
  245. package/esm2015/lib/services/preset.service.js +0 -416
  246. package/esm2015/lib/services/preview-mesh.service.js +0 -58
  247. package/esm2015/lib/services/preview.service.js +0 -500
  248. package/esm2015/lib/services/project-load.service.js +0 -171
  249. package/esm2015/lib/services/project.service.js +0 -113
  250. package/esm2015/lib/services/scene.service.js +0 -174
  251. package/esm2015/lib/services/timeline.service.js +0 -738
  252. package/esm2015/lib/services/universe.service.js +0 -24
  253. package/esm2015/lib/services/user-ensure-login.service.js +0 -44
  254. package/esm2015/lib/services/user.service.js +0 -93
  255. package/esm2015/lib/services/uuid.service.js +0 -25
  256. package/esm2015/lib/services/warning-dialog.service.js +0 -43
  257. package/esm2015/lib/timeline/composition-settings/composition-settings.component.js +0 -197
  258. package/esm2015/lib/timeline/timeline-grid/timeline-grid.component.js +0 -55
  259. package/esm2015/lib/timeline/timeline.component.js +0 -239
  260. package/esm2015/lib/user/user-login/user-login.component.js +0 -64
  261. package/esm2015/lib/user/user-register/user-register.component.js +0 -89
  262. package/esm2015/lib/wait-dialog/wait-dialog.component.js +0 -16
  263. package/esm2015/lib/warning-dialog/warning-dialog.component.js +0 -42
  264. package/esm2015/public_api.js +0 -7
  265. package/esm2015/rocketshow-designer.js +0 -61
  266. package/esm5/lib/array-sort-pipe.js +0 -31
  267. package/esm5/lib/designer.component.js +0 -468
  268. package/esm5/lib/designer.module.js +0 -120
  269. package/esm5/lib/designer.service.js +0 -17
  270. package/esm5/lib/effect/effect-curve/effect-curve.component.js +0 -386
  271. package/esm5/lib/effect/effect-pan-tilt/effect-pan-tilt.component.js +0 -31
  272. package/esm5/lib/effect/effect.component.js +0 -75
  273. package/esm5/lib/error-dialog/error-dialog.component.js +0 -43
  274. package/esm5/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.js +0 -159
  275. package/esm5/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.js +0 -130
  276. package/esm5/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.js +0 -215
  277. package/esm5/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.js +0 -61
  278. package/esm5/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.js +0 -88
  279. package/esm5/lib/fixture/fixture-capability/fixture-capability.component.js +0 -130
  280. package/esm5/lib/fixture/fixture-channel/fixture-channel.component.js +0 -68
  281. package/esm5/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.js +0 -306
  282. package/esm5/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.js +0 -32
  283. package/esm5/lib/fixture/fixture-settings/fixture-settings.component.js +0 -36
  284. package/esm5/lib/fixture/fixture.component.js +0 -71
  285. package/esm5/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.js +0 -127
  286. package/esm5/lib/fixture-pool/fixture-pool.component.js +0 -430
  287. package/esm5/lib/intro/intro.component.js +0 -26
  288. package/esm5/lib/master-dimmer/master-dimmer.component.js +0 -42
  289. package/esm5/lib/models/cached-fixture-capability.js +0 -11
  290. package/esm5/lib/models/cached-fixture-channel.js +0 -9
  291. package/esm5/lib/models/cached-fixture.js +0 -8
  292. package/esm5/lib/models/color.js +0 -10
  293. package/esm5/lib/models/composition.js +0 -60
  294. package/esm5/lib/models/effect-curve-profile-channel.js +0 -29
  295. package/esm5/lib/models/effect-curve.js +0 -95
  296. package/esm5/lib/models/effect-pan-tilt.js +0 -24
  297. package/esm5/lib/models/effect.js +0 -14
  298. package/esm5/lib/models/fixture-capability-value.js +0 -17
  299. package/esm5/lib/models/fixture-capability.js +0 -86
  300. package/esm5/lib/models/fixture-channel-value.js +0 -13
  301. package/esm5/lib/models/fixture-channel.js +0 -38
  302. package/esm5/lib/models/fixture-mode.js +0 -16
  303. package/esm5/lib/models/fixture-profile.js +0 -114
  304. package/esm5/lib/models/fixture-wheel-slot.js +0 -28
  305. package/esm5/lib/models/fixture-wheel.js +0 -29
  306. package/esm5/lib/models/fixture.js +0 -42
  307. package/esm5/lib/models/preset-region-scene.js +0 -10
  308. package/esm5/lib/models/preset.js +0 -90
  309. package/esm5/lib/models/project.js +0 -122
  310. package/esm5/lib/models/scene-playback-region.js +0 -13
  311. package/esm5/lib/models/scene.js +0 -29
  312. package/esm5/lib/models/universe.js +0 -13
  313. package/esm5/lib/preset/preset-settings/preset-settings.component.js +0 -67
  314. package/esm5/lib/preset/preset.component.js +0 -86
  315. package/esm5/lib/preview/models/color-changer-3d.js +0 -194
  316. package/esm5/lib/preview/models/fixture-3d.js +0 -196
  317. package/esm5/lib/preview/models/moving-head-3d.js +0 -250
  318. package/esm5/lib/preview/preview.component.js +0 -280
  319. package/esm5/lib/project/project-browser/project-browser.component.js +0 -77
  320. package/esm5/lib/project/project-import/project-import.component.js +0 -88
  321. package/esm5/lib/project/project-save/project-save.component.js +0 -120
  322. package/esm5/lib/project/project-share/project-share.component.js +0 -44
  323. package/esm5/lib/scene/scene-settings/scene-settings.component.js +0 -53
  324. package/esm5/lib/scene/scene.component.js +0 -57
  325. package/esm5/lib/services/animation.service.js +0 -18
  326. package/esm5/lib/services/config.service.js +0 -29
  327. package/esm5/lib/services/effect.service.js +0 -17
  328. package/esm5/lib/services/error-dialog.service.js +0 -46
  329. package/esm5/lib/services/fixture-pool.service.js +0 -36
  330. package/esm5/lib/services/fixture.service.js +0 -643
  331. package/esm5/lib/services/hotkey-target-exclude.service.js +0 -27
  332. package/esm5/lib/services/intro.service.js +0 -145
  333. package/esm5/lib/services/preset.service.js +0 -637
  334. package/esm5/lib/services/preview-mesh.service.js +0 -61
  335. package/esm5/lib/services/preview.service.js +0 -754
  336. package/esm5/lib/services/project-load.service.js +0 -185
  337. package/esm5/lib/services/project.service.js +0 -127
  338. package/esm5/lib/services/scene.service.js +0 -251
  339. package/esm5/lib/services/timeline.service.js +0 -845
  340. package/esm5/lib/services/universe.service.js +0 -36
  341. package/esm5/lib/services/user-ensure-login.service.js +0 -45
  342. package/esm5/lib/services/user.service.js +0 -95
  343. package/esm5/lib/services/uuid.service.js +0 -26
  344. package/esm5/lib/services/warning-dialog.service.js +0 -45
  345. package/esm5/lib/timeline/composition-settings/composition-settings.component.js +0 -206
  346. package/esm5/lib/timeline/timeline-grid/timeline-grid.component.js +0 -56
  347. package/esm5/lib/timeline/timeline.component.js +0 -243
  348. package/esm5/lib/user/user-login/user-login.component.js +0 -66
  349. package/esm5/lib/user/user-register/user-register.component.js +0 -91
  350. package/esm5/lib/wait-dialog/wait-dialog.component.js +0 -18
  351. package/esm5/lib/warning-dialog/warning-dialog.component.js +0 -43
  352. package/esm5/public_api.js +0 -7
  353. package/esm5/rocketshow-designer.js +0 -61
  354. package/fesm2015/rocketshow-designer.js +0 -7945
  355. package/fesm2015/rocketshow-designer.js.map +0 -1
  356. package/fesm5/rocketshow-designer.js +0 -9690
  357. package/fesm5/rocketshow-designer.js.map +0 -1
  358. package/lib/models/universe.d.ts +0 -8
  359. package/lib/services/universe.service.d.ts +0 -6
  360. package/rocketshow-designer-1.32.0.tgz +0 -0
  361. package/rocketshow-designer.d.ts +0 -60
  362. package/rocketshow-designer.metadata.json +0 -1
@@ -1,171 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { ActivatedRoute, Params, Router } from '@angular/router';
4
- import { BsModalService } from 'ngx-bootstrap/modal';
5
- import { finalize, map } from 'rxjs/operators';
6
- import { Preset } from '../models/preset';
7
- import { Project } from '../models/project';
8
- import { WaitDialogComponent } from '../wait-dialog/wait-dialog.component';
9
- import { FixtureService } from './fixture.service';
10
- import { PresetService } from './preset.service';
11
- import { PreviewService } from './preview.service';
12
- import { ProjectService } from './project.service';
13
- import { SceneService } from './scene.service';
14
- import { TimelineService } from './timeline.service';
15
- import { UuidService } from './uuid.service';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "./project.service";
18
- import * as i2 from "./preview.service";
19
- import * as i3 from "./fixture.service";
20
- import * as i4 from "./preset.service";
21
- import * as i5 from "./scene.service";
22
- import * as i6 from "ngx-bootstrap/modal";
23
- import * as i7 from "./uuid.service";
24
- import * as i8 from "./timeline.service";
25
- import * as i9 from "@angular/router";
26
- let ProjectLoadService = class ProjectLoadService {
27
- constructor(projectService, previewService, fixtureService, presetService, sceneService, modalService, uuidService, timelineService, router, activatedRoute) {
28
- this.projectService = projectService;
29
- this.previewService = previewService;
30
- this.fixtureService = fixtureService;
31
- this.presetService = presetService;
32
- this.sceneService = sceneService;
33
- this.modalService = modalService;
34
- this.uuidService = uuidService;
35
- this.timelineService = timelineService;
36
- this.router = router;
37
- this.activatedRoute = activatedRoute;
38
- }
39
- afterLoad() {
40
- this.fixtureService.updateCachedFixtures();
41
- this.presetService.removeDeletedFixtures();
42
- this.previewService.updateFixtureSetup();
43
- this.presetService.fixtureSelectionChanged.next();
44
- this.presetService.autoOpenFirstEffect();
45
- this.previewService.updateStage();
46
- this.presetService.previewLive();
47
- this.sceneService.selectPresetFromSelectedScene();
48
- }
49
- selectScenesPresetComposition() {
50
- this.presetService.selectedPreset = this.presetService.getPresetByUuid(this.projectService.project.selectedPresetUuid);
51
- this.sceneService.selectedScenes = [];
52
- if (this.projectService.project.selectedSceneUuids) {
53
- for (const uuid of this.projectService.project.selectedSceneUuids) {
54
- this.sceneService.selectedScenes.push(this.sceneService.getSceneByUuid(uuid));
55
- }
56
- }
57
- this.timelineService.selectedComposition = undefined;
58
- this.timelineService.selectedCompositionIndex = undefined;
59
- this.timelineService.destroyWaveSurfer();
60
- for (let i = 0; i < this.projectService.project.compositions.length; i++) {
61
- if (this.projectService.project.compositions[i].uuid === this.projectService.project.selectedCompositionUuid) {
62
- this.timelineService.selectCompositionIndex(i);
63
- break;
64
- }
65
- }
66
- }
67
- load(id, name, shareToken) {
68
- const ref = this.modalService.show(WaitDialogComponent, { keyboard: false, ignoreBackdropClick: true });
69
- return this.projectService.getProject(id, name, shareToken).pipe(map((project) => {
70
- this.projectService.project = project;
71
- this.selectScenesPresetComposition();
72
- this.afterLoad();
73
- const queryParams = {
74
- id,
75
- token: project.shareToken,
76
- };
77
- this.router.navigate([], {
78
- relativeTo: this.activatedRoute,
79
- queryParams,
80
- queryParamsHandling: 'merge',
81
- });
82
- }), finalize(() => {
83
- // hide the modal again because of:
84
- // https://github.com/valor-software/ngx-bootstrap/issues/3711
85
- setTimeout(() => {
86
- ref.hide();
87
- }, 250);
88
- setTimeout(() => {
89
- ref.hide();
90
- }, 500);
91
- setTimeout(() => {
92
- ref.hide();
93
- }, 1500);
94
- }));
95
- }
96
- new() {
97
- // create an empty new project
98
- const project = new Project();
99
- project.uuid = this.uuidService.getUuid();
100
- this.projectService.project = project;
101
- this.projectService.project.shareToken = this.uuidService.getUuid();
102
- // Add a default scene and preset
103
- const preset = new Preset();
104
- preset.uuid = this.uuidService.getUuid();
105
- preset.name = 'New Preset';
106
- this.projectService.project.presets.push(preset);
107
- this.presetService.selectPreset(0);
108
- this.sceneService.addScene();
109
- this.projectService.project.scenes[0].presetUuids.push(preset.uuid);
110
- this.projectService.project.previewPreset = true;
111
- this.sceneService.selectedScenes = [this.projectService.project.scenes[0]];
112
- this.presetService.selectedPreset = this.projectService.project.presets[0];
113
- this.timelineService.selectedComposition = undefined;
114
- this.timelineService.selectedCompositionIndex = undefined;
115
- this.timelineService.destroyWaveSurfer();
116
- this.afterLoad();
117
- const queryParams = {
118
- id: '',
119
- token: '',
120
- };
121
- this.router.navigate([], {
122
- relativeTo: this.activatedRoute,
123
- queryParams,
124
- queryParamsHandling: 'merge',
125
- });
126
- }
127
- template() {
128
- // load the template project with id 1
129
- this.load(1, null).subscribe(() => {
130
- this.projectService.project.id = undefined;
131
- });
132
- }
133
- import(data) {
134
- // import a project from a string
135
- const project = new Project(JSON.parse(data));
136
- project.id = undefined;
137
- this.projectService.project = project;
138
- this.selectScenesPresetComposition();
139
- this.afterLoad();
140
- }
141
- };
142
- ProjectLoadService.ctorParameters = () => [
143
- { type: ProjectService },
144
- { type: PreviewService },
145
- { type: FixtureService },
146
- { type: PresetService },
147
- { type: SceneService },
148
- { type: BsModalService },
149
- { type: UuidService },
150
- { type: TimelineService },
151
- { type: Router },
152
- { type: ActivatedRoute }
153
- ];
154
- ProjectLoadService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProjectLoadService_Factory() { return new ProjectLoadService(i0.ɵɵinject(i1.ProjectService), i0.ɵɵinject(i2.PreviewService), i0.ɵɵinject(i3.FixtureService), i0.ɵɵinject(i4.PresetService), i0.ɵɵinject(i5.SceneService), i0.ɵɵinject(i6.BsModalService), i0.ɵɵinject(i7.UuidService), i0.ɵɵinject(i8.TimelineService), i0.ɵɵinject(i9.Router), i0.ɵɵinject(i9.ActivatedRoute)); }, token: ProjectLoadService, providedIn: "root" });
155
- ProjectLoadService = __decorate([
156
- Injectable({
157
- providedIn: 'root',
158
- }),
159
- __metadata("design:paramtypes", [ProjectService,
160
- PreviewService,
161
- FixtureService,
162
- PresetService,
163
- SceneService,
164
- BsModalService,
165
- UuidService,
166
- TimelineService,
167
- Router,
168
- ActivatedRoute])
169
- ], ProjectLoadService);
170
- export { ProjectLoadService };
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9wcm9qZWN0LWxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFLN0MsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFDN0IsWUFDVSxjQUE4QixFQUM5QixjQUE4QixFQUM5QixjQUE4QixFQUM5QixhQUE0QixFQUM1QixZ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UUFDZixXQUFXO1FBQ1AsZUFBZTtRQUN4QixNQUFNO1FBQ0UsY0FBYztHQVg3QixrQkFBa0IsQ0FzSTlCO1NBdElZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByZXNldCB9IGZyb20gJy4uL21vZGVscy9wcmVzZXQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL21vZGVscy9wcm9qZWN0JztcbmltcG9ydCB7IFdhaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi93YWl0LWRpYWxvZy93YWl0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZVNlcnZpY2UgfSBmcm9tICcuL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi9wcmVzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQcmV2aWV3U2VydmljZSB9IGZyb20gJy4vcHJldmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi9wcm9qZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NlbmVTZXJ2aWNlIH0gZnJvbSAnLi9zY2VuZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVsaW5lU2VydmljZSB9IGZyb20gJy4vdGltZWxpbmUuc2VydmljZSc7XG5pbXBvcnQgeyBVdWlkU2VydmljZSB9IGZyb20gJy4vdXVpZC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb2plY3RMb2FkU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJvamVjdFNlcnZpY2U6IFByb2plY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJldmlld1NlcnZpY2U6IFByZXZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJlc2V0U2VydmljZTogUHJlc2V0U2VydmljZSxcbiAgICBwcml2YXRlIHNjZW5lU2VydmljZTogU2NlbmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHV1aWRTZXJ2aWNlOiBVdWlkU2VydmljZSxcbiAgICBwcml2YXRlIHRpbWVsaW5lU2VydmljZTogVGltZWxpbmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7fVxuXG4gIHByaXZhdGUgYWZ0ZXJMb2FkKCkge1xuICAgIHRoaXMuZml4dHVyZVNlcnZpY2UudXBkYXRlQ2FjaGVkRml4dHVyZXMoKTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2UucmVtb3ZlRGVsZXRlZEZpeHR1cmVzKCk7XG4gICAgdGhpcy5wcmV2aWV3U2VydmljZS51cGRhdGVGaXh0dXJlU2V0dXAoKTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2UuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWQubmV4dCgpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5hdXRvT3BlbkZpcnN0RWZmZWN0KCk7XG4gICAgdGhpcy5wcmV2aWV3U2VydmljZS51cGRhdGVTdGFnZSgpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpO1xuICAgIHRoaXMuc2NlbmVTZXJ2aWNlLnNlbGVjdFByZXNldEZyb21TZWxlY3RlZFNjZW5lKCk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdFNjZW5lc1ByZXNldENvbXBvc2l0aW9uKCkge1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldCA9IHRoaXMucHJlc2V0U2VydmljZS5nZXRQcmVzZXRCeVV1aWQodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNlbGVjdGVkUHJlc2V0VXVpZCk7XG4gICAgdGhpcy5zY2VuZVNlcnZpY2Uuc2VsZWN0ZWRTY2VuZXMgPSBbXTtcbiAgICBpZiAodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNlbGVjdGVkU2NlbmVVdWlkcykge1xuICAgICAgZm9yIChjb25zdCB1dWlkIG9mIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5zZWxlY3RlZFNjZW5lVXVpZHMpIHtcbiAgICAgICAgdGhpcy5zY2VuZVNlcnZpY2Uuc2VsZWN0ZWRTY2VuZXMucHVzaCh0aGlzLnNjZW5lU2VydmljZS5nZXRTY2VuZUJ5VXVpZCh1dWlkKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbkluZGV4ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLmRlc3Ryb3lXYXZlU3VyZmVyKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QuY29tcG9zaXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LmNvbXBvc2l0aW9uc1tpXS51dWlkID09PSB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2VsZWN0ZWRDb21wb3NpdGlvblV1aWQpIHtcbiAgICAgICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0Q29tcG9zaXRpb25JbmRleChpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbG9hZChpZDogbnVtYmVyLCBuYW1lOiBzdHJpbmcsIHNoYXJlVG9rZW4/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCByZWYgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KFdhaXREaWFsb2dDb21wb25lbnQsIHsga2V5Ym9hcmQ6IGZhbHNlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuZ2V0UHJvamVjdChpZCwgbmFtZSwgc2hhcmVUb2tlbikucGlwZShcbiAgICAgIG1hcCgocHJvamVjdCkgPT4ge1xuICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QgPSBwcm9qZWN0O1xuICAgICAgICB0aGlzLnNlbGVjdFNjZW5lc1ByZXNldENvbXBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuYWZ0ZXJMb2FkKCk7XG5cbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXM6IFBhcmFtcyA9IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB0b2tlbjogcHJvamVjdC5zaGFyZVRva2VuLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJywgLy8gcmVtb3ZlIHRvIHJlcGxhY2UgYWxsIHF1ZXJ5IHBhcmFtcyBieSBwcm92aWRlZFxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAvLyBoaWRlIHRoZSBtb2RhbCBhZ2FpbiBiZWNhdXNlIG9mOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmFsb3Itc29mdHdhcmUvbmd4LWJvb3RzdHJhcC9pc3N1ZXMvMzcxMVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICByZWYuaGlkZSgpO1xuICAgICAgICB9LCAyNTApO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICByZWYuaGlkZSgpO1xuICAgICAgICB9LCA1MDApO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICByZWYuaGlkZSgpO1xuICAgICAgICB9LCAxNTAwKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5ldygpIHtcbiAgICAvLyBjcmVhdGUgYW4gZW1wdHkgbmV3IHByb2plY3RcbiAgICBjb25zdCBwcm9qZWN0ID0gbmV3IFByb2plY3QoKTtcbiAgICBwcm9qZWN0LnV1aWQgPSB0aGlzLnV1aWRTZXJ2aWNlLmdldFV1aWQoKTtcbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QgPSBwcm9qZWN0O1xuICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5zaGFyZVRva2VuID0gdGhpcy51dWlkU2VydmljZS5nZXRVdWlkKCk7XG5cbiAgICAvLyBBZGQgYSBkZWZhdWx0IHNjZW5lIGFuZCBwcmVzZXRcbiAgICBjb25zdCBwcmVzZXQgPSBuZXcgUHJlc2V0KCk7XG4gICAgcHJlc2V0LnV1aWQgPSB0aGlzLnV1aWRTZXJ2aWNlLmdldFV1aWQoKTtcbiAgICBwcmVzZXQubmFtZSA9ICdOZXcgUHJlc2V0JztcbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QucHJlc2V0cy5wdXNoKHByZXNldCk7XG4gICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnNlbGVjdFByZXNldCgwKTtcblxuICAgIHRoaXMuc2NlbmVTZXJ2aWNlLmFkZFNjZW5lKCk7XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNjZW5lc1swXS5wcmVzZXRVdWlkcy5wdXNoKHByZXNldC51dWlkKTtcblxuICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5wcmV2aWV3UHJlc2V0ID0gdHJ1ZTtcblxuICAgIHRoaXMuc2NlbmVTZXJ2aWNlLnNlbGVjdGVkU2NlbmVzID0gW3RoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5zY2VuZXNbMF1dO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldCA9IHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5wcmVzZXRzWzBdO1xuXG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2UuZGVzdHJveVdhdmVTdXJmZXIoKTtcblxuICAgIHRoaXMuYWZ0ZXJMb2FkKCk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtczogUGFyYW1zID0ge1xuICAgICAgaWQ6ICcnLFxuICAgICAgdG9rZW46ICcnLFxuICAgIH07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICBxdWVyeVBhcmFtcyxcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsIC8vIHJlbW92ZSB0byByZXBsYWNlIGFsbCBxdWVyeSBwYXJhbXMgYnkgcHJvdmlkZWRcbiAgICB9KTtcbiAgfVxuXG4gIHRlbXBsYXRlKCkge1xuICAgIC8vIGxvYWQgdGhlIHRlbXBsYXRlIHByb2plY3Qgd2l0aCBpZCAxXG4gICAgdGhpcy5sb2FkKDEsIG51bGwpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QuaWQgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBpbXBvcnQoZGF0YTogc3RyaW5nKSB7XG4gICAgLy8gaW1wb3J0IGEgcHJvamVjdCBmcm9tIGEgc3RyaW5nXG4gICAgY29uc3QgcHJvamVjdCA9IG5ldyBQcm9qZWN0KEpTT04ucGFyc2UoZGF0YSkpO1xuICAgIHByb2plY3QuaWQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0ID0gcHJvamVjdDtcblxuICAgIHRoaXMuc2VsZWN0U2NlbmVzUHJlc2V0Q29tcG9zaXRpb24oKTtcbiAgICB0aGlzLmFmdGVyTG9hZCgpO1xuICB9XG59XG4iXX0=
@@ -1,113 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { Injectable } from '@angular/core';
4
- import { ActivatedRoute, Params, Router } from '@angular/router';
5
- import { TranslateService } from '@ngx-translate/core';
6
- import { ToastrService } from 'ngx-toastr';
7
- import { map } from 'rxjs/operators';
8
- import { Project } from '../models/project';
9
- import { UserService } from './user.service';
10
- import { UuidService } from './uuid.service';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "./uuid.service";
13
- import * as i2 from "@angular/common/http";
14
- import * as i3 from "./user.service";
15
- import * as i4 from "@angular/router";
16
- import * as i5 from "@ngx-translate/core";
17
- import * as i6 from "ngx-toastr";
18
- let ProjectService = class ProjectService {
19
- constructor(uuidService, http, userService, router, activatedRoute, translateService, toastrService) {
20
- this.uuidService = uuidService;
21
- this.http = http;
22
- this.userService = userService;
23
- this.router = router;
24
- this.activatedRoute = activatedRoute;
25
- this.translateService = translateService;
26
- this.toastrService = toastrService;
27
- this.project = new Project();
28
- this.project.uuid = this.uuidService.getUuid();
29
- this.project.name = 'New Project';
30
- }
31
- saveApi(project) {
32
- return this.http.post('project', JSON.stringify(project), { headers: this.userService.getHeaders() }).pipe(map((response) => {
33
- if (response) {
34
- project.id = response.id;
35
- if (response.shareToken) {
36
- project.shareToken = response.shareToken;
37
- }
38
- const queryParams = {
39
- id: project.id,
40
- token: project.shareToken,
41
- };
42
- this.router.navigate([], {
43
- relativeTo: this.activatedRoute,
44
- queryParams,
45
- queryParamsHandling: 'merge',
46
- });
47
- }
48
- return null;
49
- }));
50
- }
51
- save(project) {
52
- // tries to save the project and returns, whether it has been saved or not
53
- this.saveApi(project).subscribe(() => {
54
- const msg = 'designer.project.save-success';
55
- const title = 'designer.project.save-success-title';
56
- this.translateService.get([msg, title]).subscribe((result) => {
57
- this.toastrService.success(result[msg], result[title]);
58
- });
59
- this.userService.setAutoLoadProject(project);
60
- }, (response) => {
61
- const msg = 'designer.project.save-error';
62
- const title = 'designer.project.save-error-title';
63
- const error = response && response.error ? response.error.error : 'unknown';
64
- this.translateService.get([msg, title]).subscribe((result) => {
65
- this.toastrService.error(result[msg] + ' (' + error + ')', result[title]);
66
- });
67
- });
68
- }
69
- getAllProjects() {
70
- return this.http.get('projects', { headers: this.userService.getHeaders() }).pipe(map((response) => {
71
- const projects = [];
72
- for (const project of response) {
73
- const projectObject = new Project(project);
74
- projects.push(projectObject);
75
- }
76
- return projects;
77
- }));
78
- }
79
- deleteProject(project) {
80
- return this.http.delete('project?id=' + project.id + '&name=' + project.name, { headers: this.userService.getHeaders() });
81
- }
82
- getProject(id, name, shareToken) {
83
- return this.http.get('project?id=' + id + '&name=' + name + '&token=' + shareToken, { headers: this.userService.getHeaders() }).pipe(map((response) => {
84
- const project = new Project(response);
85
- project.id = id;
86
- return project;
87
- }));
88
- }
89
- };
90
- ProjectService.ctorParameters = () => [
91
- { type: UuidService },
92
- { type: HttpClient },
93
- { type: UserService },
94
- { type: Router },
95
- { type: ActivatedRoute },
96
- { type: TranslateService },
97
- { type: ToastrService }
98
- ];
99
- ProjectService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProjectService_Factory() { return new ProjectService(i0.ɵɵinject(i1.UuidService), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.UserService), i0.ɵɵinject(i4.Router), i0.ɵɵinject(i4.ActivatedRoute), i0.ɵɵinject(i5.TranslateService), i0.ɵɵinject(i6.ToastrService)); }, token: ProjectService, providedIn: "root" });
100
- ProjectService = __decorate([
101
- Injectable({
102
- providedIn: 'root',
103
- }),
104
- __metadata("design:paramtypes", [UuidService,
105
- HttpClient,
106
- UserService,
107
- Router,
108
- ActivatedRoute,
109
- TranslateService,
110
- ToastrService])
111
- ], ProjectService);
112
- export { ProjectService };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJvY2tldHNob3cvZGVzaWduZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFLN0MsSUFBYSxjQUFjLEdBQTNCLE1BQWEsY0FBYztJQUl6QixZQUNVLFdBQXdCLEVBQ3hCLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3hCLE1BQWMsRUFDZCxjQUE4QixFQUM5QixnQkFBa0MsRUFDbEMsYUFBNEI7UUFONUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFcEMsSUFBSSxDQUFDLE9BQU8sR0FB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O1lBQ2xCLFVBQVU7WUFDSCxXQUFXO1lBQ2hCLE1BQU07WUFDRSxjQUFjO1lBQ1osZ0JBQWdCO1lBQ25CLGFBQWE7OztBQVgzQixjQUFjO0lBSDFCLFVBQVUsQ0FBQztRQUNWLFVBQVUsRUFBRSxNQUFNO0tBQ25CLENBQUM7cUNBTXVCLFdBQVc7UUFDbEIsVUFBVTtRQUNILFdBQVc7UUFDaEIsTUFBTTtRQUNFLGNBQWM7UUFDWixnQkFBZ0I7UUFDbkIsYUFBYTtHQVgzQixjQUFjLENBNkYxQjtTQTdGWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vbW9kZWxzL3Byb2plY3QnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBVdWlkU2VydmljZSB9IGZyb20gJy4vdXVpZC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb2plY3RTZXJ2aWNlIHtcbiAgLy8gdGhlIGN1cnJlbnQgcHJvamVjdFxuICBwdWJsaWMgcHJvamVjdDogUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHV1aWRTZXJ2aWNlOiBVdWlkU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucHJvamVjdCA9IG5ldyBQcm9qZWN0KCk7XG4gICAgdGhpcy5wcm9qZWN0LnV1aWQgPSB0aGlzLnV1aWRTZXJ2aWNlLmdldFV1aWQoKTtcbiAgICB0aGlzLnByb2plY3QubmFtZSA9ICdOZXcgUHJvamVjdCc7XG4gIH1cblxuICBwcml2YXRlIHNhdmVBcGkocHJvamVjdDogUHJvamVjdCk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KCdwcm9qZWN0JywgSlNPTi5zdHJpbmdpZnkocHJvamVjdCksIHsgaGVhZGVyczogdGhpcy51c2VyU2VydmljZS5nZXRIZWFkZXJzKCkgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICBwcm9qZWN0LmlkID0gcmVzcG9uc2UuaWQ7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnNoYXJlVG9rZW4pIHtcbiAgICAgICAgICAgIHByb2plY3Quc2hhcmVUb2tlbiA9IHJlc3BvbnNlLnNoYXJlVG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBQYXJhbXMgPSB7XG4gICAgICAgICAgICBpZDogcHJvamVjdC5pZCxcbiAgICAgICAgICAgIHRva2VuOiBwcm9qZWN0LnNoYXJlVG9rZW4sXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJywgLy8gcmVtb3ZlIHRvIHJlcGxhY2UgYWxsIHF1ZXJ5IHBhcmFtcyBieSBwcm92aWRlZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc2F2ZShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gICAgLy8gdHJpZXMgdG8gc2F2ZSB0aGUgcHJvamVjdCBhbmQgcmV0dXJucywgd2hldGhlciBpdCBoYXMgYmVlbiBzYXZlZCBvciBub3RcbiAgICB0aGlzLnNhdmVBcGkocHJvamVjdCkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBtc2cgPSAnZGVzaWduZXIucHJvamVjdC5zYXZlLXN1Y2Nlc3MnO1xuICAgICAgICBjb25zdCB0aXRsZSA9ICdkZXNpZ25lci5wcm9qZWN0LnNhdmUtc3VjY2Vzcy10aXRsZSc7XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChbbXNnLCB0aXRsZV0pLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3MocmVzdWx0W21zZ10sIHJlc3VsdFt0aXRsZV0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldEF1dG9Mb2FkUHJvamVjdChwcm9qZWN0KTtcbiAgICAgIH0sXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgbXNnID0gJ2Rlc2lnbmVyLnByb2plY3Quc2F2ZS1lcnJvcic7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gJ2Rlc2lnbmVyLnByb2plY3Quc2F2ZS1lcnJvci10aXRsZSc7XG4gICAgICAgIGNvbnN0IGVycm9yID0gcmVzcG9uc2UgJiYgcmVzcG9uc2UuZXJyb3IgPyByZXNwb25zZS5lcnJvci5lcnJvciA6ICd1bmtub3duJztcblxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KFttc2csIHRpdGxlXSkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IocmVzdWx0W21zZ10gKyAnICgnICsgZXJyb3IgKyAnKScsIHJlc3VsdFt0aXRsZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgZ2V0QWxsUHJvamVjdHMoKTogT2JzZXJ2YWJsZTxQcm9qZWN0W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCgncHJvamVjdHMnLCB7IGhlYWRlcnM6IHRoaXMudXNlclNlcnZpY2UuZ2V0SGVhZGVycygpIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgcHJvamVjdHM6IFByb2plY3RbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHByb2plY3Qgb2YgcmVzcG9uc2UpIHtcbiAgICAgICAgICBjb25zdCBwcm9qZWN0T2JqZWN0ID0gbmV3IFByb2plY3QocHJvamVjdCk7XG4gICAgICAgICAgcHJvamVjdHMucHVzaChwcm9qZWN0T2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJvamVjdHM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkZWxldGVQcm9qZWN0KHByb2plY3Q6IFByb2plY3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKCdwcm9qZWN0P2lkPScgKyBwcm9qZWN0LmlkICsgJyZuYW1lPScgKyBwcm9qZWN0Lm5hbWUsIHsgaGVhZGVyczogdGhpcy51c2VyU2VydmljZS5nZXRIZWFkZXJzKCkgfSk7XG4gIH1cblxuICBnZXRQcm9qZWN0KGlkOiBudW1iZXIsIG5hbWU6IHN0cmluZywgc2hhcmVUb2tlbj86IHN0cmluZyk6IE9ic2VydmFibGU8UHJvamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KCdwcm9qZWN0P2lkPScgKyBpZCArICcmbmFtZT0nICsgbmFtZSArICcmdG9rZW49JyArIHNoYXJlVG9rZW4sIHsgaGVhZGVyczogdGhpcy51c2VyU2VydmljZS5nZXRIZWFkZXJzKCkgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9qZWN0ID0gbmV3IFByb2plY3QocmVzcG9uc2UpO1xuICAgICAgICBwcm9qZWN0LmlkID0gaWQ7XG5cbiAgICAgICAgcmV0dXJuIHByb2plY3Q7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,174 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { Subject } from 'rxjs';
4
- import { Scene } from '../models/scene';
5
- import { EffectService } from './effect.service';
6
- import { PresetService } from './preset.service';
7
- import { ProjectService } from './project.service';
8
- import { UuidService } from './uuid.service';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "./uuid.service";
11
- import * as i2 from "./effect.service";
12
- import * as i3 from "./preset.service";
13
- import * as i4 from "./project.service";
14
- let SceneService = class SceneService {
15
- constructor(uuidService, effectService, presetService, projectService) {
16
- this.uuidService = uuidService;
17
- this.effectService = effectService;
18
- this.presetService = presetService;
19
- this.projectService = projectService;
20
- this.selectedScenes = [];
21
- this.sceneColors = ['#945fda', '#61da5f', '#5fc3da', '#dad65f', '#da5f5f', '#246db7'];
22
- this.multipleSelection = false;
23
- this.sceneDeleted = new Subject();
24
- this.sceneSelected = new Subject();
25
- }
26
- sceneIsSelected(scene) {
27
- for (const selectedScene of this.selectedScenes) {
28
- if (selectedScene.uuid === scene.uuid) {
29
- return true;
30
- }
31
- }
32
- return false;
33
- }
34
- presetIsSelected(preset) {
35
- if (!this.selectedScenes || this.selectedScenes.length !== 1) {
36
- return false;
37
- }
38
- for (const uuid of this.selectedScenes[0].presetUuids) {
39
- if (preset.uuid === uuid) {
40
- return true;
41
- }
42
- }
43
- return false;
44
- }
45
- switchSceneSelection(scene) {
46
- // Select a scene if not yet selected or unselect it otherwise
47
- if (this.sceneIsSelected(scene)) {
48
- for (let i = 0; i < this.selectedScenes.length; i++) {
49
- if (this.selectedScenes[i].uuid === scene.uuid) {
50
- this.selectedScenes.splice(i, 1);
51
- return;
52
- }
53
- }
54
- }
55
- else {
56
- this.selectedScenes.push(scene);
57
- }
58
- this.sceneSelected.next();
59
- }
60
- selectPresetFromSelectedScene() {
61
- // select the first preset of the scene, if no preset of the current scene is already
62
- // selected to make sure, the user does not edit a preset which is not even
63
- // active in the current scene (and sees no change).
64
- let firstPresetUuid;
65
- // check, whether a preset of the current scene is already selected and do nothing
66
- // in this case
67
- for (const scene of this.selectedScenes) {
68
- for (const presetUuid of scene.presetUuids) {
69
- firstPresetUuid = presetUuid;
70
- if (presetUuid === this.presetService.selectedPreset.uuid) {
71
- // a preset of a currently selected scene is already selected -> do nothing
72
- return;
73
- }
74
- }
75
- }
76
- if (!firstPresetUuid) {
77
- return;
78
- }
79
- for (let i = 0; i < this.projectService.project.presets.length; i++) {
80
- if (this.projectService.project.presets[i].uuid === firstPresetUuid) {
81
- this.presetService.selectPreset(i);
82
- break;
83
- }
84
- }
85
- }
86
- selectScene(index) {
87
- this.effectService.selectedEffect = undefined;
88
- if (index >= this.projectService.project.scenes.length) {
89
- this.selectedScenes = [];
90
- }
91
- else {
92
- if (this.multipleSelection) {
93
- this.switchSceneSelection(this.projectService.project.scenes[index]);
94
- }
95
- else {
96
- this.selectedScenes = [];
97
- this.selectedScenes.push(this.projectService.project.scenes[index]);
98
- }
99
- }
100
- this.selectPresetFromSelectedScene();
101
- // preview the complete scene
102
- this.projectService.project.previewPreset = false;
103
- this.projectService.project.selectedSceneUuids = [];
104
- for (const scene of this.selectedScenes) {
105
- this.projectService.project.selectedSceneUuids.push(scene.uuid);
106
- }
107
- this.presetService.previewSelectionChanged.next();
108
- this.presetService.previewLive();
109
- this.sceneSelected.next();
110
- }
111
- addScene(name) {
112
- const scene = new Scene();
113
- scene.uuid = this.uuidService.getUuid();
114
- scene.name = name || 'New Scene';
115
- if (this.projectService.project.scenes.length < this.sceneColors.length) {
116
- scene.color = this.sceneColors[this.projectService.project.scenes.length];
117
- }
118
- else {
119
- scene.color = '#' + Math.random().toString(16).slice(2, 8).toUpperCase();
120
- }
121
- // Insert the new scene before the highest currently selected scene
122
- let highestSelectedSceneIndex = 0;
123
- for (let i = 0; i < this.projectService.project.scenes.length; i++) {
124
- if (this.sceneIsSelected(this.projectService.project.scenes[i])) {
125
- highestSelectedSceneIndex = i;
126
- break;
127
- }
128
- }
129
- this.projectService.project.scenes.splice(highestSelectedSceneIndex, 0, scene);
130
- this.selectScene(highestSelectedSceneIndex);
131
- }
132
- removeScene(scene) {
133
- // remove all playback regions
134
- for (const composition of this.projectService.project.compositions) {
135
- for (let i = composition.scenePlaybackRegions.length - 1; i >= 0; i--) {
136
- const compositionPlaybackRegion = composition.scenePlaybackRegions[i];
137
- if (compositionPlaybackRegion.sceneUuid === scene.uuid) {
138
- composition.scenePlaybackRegions.splice(i, 1);
139
- }
140
- }
141
- }
142
- // remove the scene
143
- this.projectService.project.scenes.splice(this.projectService.project.scenes.indexOf(scene), 1);
144
- if (this.projectService.project.scenes.length > 0) {
145
- this.selectScene(0);
146
- }
147
- this.sceneDeleted.next();
148
- }
149
- getSceneByUuid(uuid) {
150
- for (const scene of this.projectService.project.scenes) {
151
- if (scene.uuid === uuid) {
152
- return scene;
153
- }
154
- }
155
- }
156
- };
157
- SceneService.ctorParameters = () => [
158
- { type: UuidService },
159
- { type: EffectService },
160
- { type: PresetService },
161
- { type: ProjectService }
162
- ];
163
- SceneService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SceneService_Factory() { return new SceneService(i0.ɵɵinject(i1.UuidService), i0.ɵɵinject(i2.EffectService), i0.ɵɵinject(i3.PresetService), i0.ɵɵinject(i4.ProjectService)); }, token: SceneService, providedIn: "root" });
164
- SceneService = __decorate([
165
- Injectable({
166
- providedIn: 'root',
167
- }),
168
- __metadata("design:paramtypes", [UuidService,
169
- EffectService,
170
- PresetService,
171
- ProjectService])
172
- ], SceneService);
173
- export { SceneService };
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Byb2NrZXRzaG93L2Rlc2lnbmVyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3NjZW5lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFLN0MsSUFBYSxZQUFZLEdBQXpCLE1BQWEsWUFBWTtJQVN2QixZQUNVLFdBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLGFBQTRCLEVBQzVCLGNBQThCO1FBSDlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVp4QyxtQkFBYyxHQUFZLEVBQUUsQ0FBQztRQUM3QixnQkFBVyxHQUFhLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUzRixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNsRCxrQkFBYSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO0lBT2hELENBQUM7SUFFSixlQUFlLENBQUMsS0FBWTtRQUMxQixL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bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByZXNldCB9IGZyb20gJy4uL21vZGVscy9wcmVzZXQnO1xuaW1wb3J0IHsgU2NlbmUgfSBmcm9tICcuLi9tb2RlbHMvc2NlbmUnO1xuaW1wb3J0IHsgRWZmZWN0U2VydmljZSB9IGZyb20gJy4vZWZmZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4vcHJlc2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5pbXBvcnQgeyBVdWlkU2VydmljZSB9IGZyb20gJy4vdXVpZC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjZW5lU2VydmljZSB7XG4gIHNlbGVjdGVkU2NlbmVzOiBTY2VuZVtdID0gW107XG4gIHNjZW5lQ29sb3JzOiBzdHJpbmdbXSA9IFsnIzk0NWZkYScsICcjNjFkYTVmJywgJyM1ZmMzZGEnLCAnI2RhZDY1ZicsICcjZGE1ZjVmJywgJyMyNDZkYjcnXTtcblxuICBtdWx0aXBsZVNlbGVjdGlvbiA9IGZhbHNlO1xuXG4gIHNjZW5lRGVsZXRlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHNjZW5lU2VsZWN0ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdXVpZFNlcnZpY2U6IFV1aWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWZmZWN0U2VydmljZTogRWZmZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHByZXNldFNlcnZpY2U6IFByZXNldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2VcbiAgKSB7fVxuXG4gIHNjZW5lSXNTZWxlY3RlZChzY2VuZTogU2NlbmUpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHNlbGVjdGVkU2NlbmUgb2YgdGhpcy5zZWxlY3RlZFNjZW5lcykge1xuICAgICAgaWYgKHNlbGVjdGVkU2NlbmUudXVpZCA9PT0gc2NlbmUudXVpZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcmVzZXRJc1NlbGVjdGVkKHByZXNldDogUHJlc2V0KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkU2NlbmVzIHx8IHRoaXMuc2VsZWN0ZWRTY2VuZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB1dWlkIG9mIHRoaXMuc2VsZWN0ZWRTY2VuZXNbMF0ucHJlc2V0VXVpZHMpIHtcbiAgICAgIGlmIChwcmVzZXQudXVpZCA9PT0gdXVpZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzd2l0Y2hTY2VuZVNlbGVjdGlvbihzY2VuZTogU2NlbmUpIHtcbiAgICAvLyBTZWxlY3QgYSBzY2VuZSBpZiBub3QgeWV0IHNlbGVjdGVkIG9yIHVuc2VsZWN0IGl0IG90aGVyd2lzZVxuICAgIGlmICh0aGlzLnNjZW5lSXNTZWxlY3RlZChzY2VuZSkpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zZWxlY3RlZFNjZW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFNjZW5lc1tpXS51dWlkID09PSBzY2VuZS51dWlkKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFNjZW5lcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTY2VuZXMucHVzaChzY2VuZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zY2VuZVNlbGVjdGVkLm5leHQoKTtcbiAgfVxuXG4gIHNlbGVjdFByZXNldEZyb21TZWxlY3RlZFNjZW5lKCkge1xuICAgIC8vIHNlbGVjdCB0aGUgZmlyc3QgcHJlc2V0IG9mIHRoZSBzY2VuZSwgaWYgbm8gcHJlc2V0IG9mIHRoZSBjdXJyZW50IHNjZW5lIGlzIGFscmVhZHlcbiAgICAvLyBzZWxlY3RlZCB0byBtYWtlIHN1cmUsIHRoZSB1c2VyIGRvZXMgbm90IGVkaXQgYSBwcmVzZXQgd2hpY2ggaXMgbm90IGV2ZW5cbiAgICAvLyBhY3RpdmUgaW4gdGhlIGN1cnJlbnQgc2NlbmUgKGFuZCBzZWVzIG5vIGNoYW5nZSkuXG5cbiAgICBsZXQgZmlyc3RQcmVzZXRVdWlkO1xuXG4gICAgLy8gY2hlY2ssIHdoZXRoZXIgYSBwcmVzZXQgb2YgdGhlIGN1cnJlbnQgc2NlbmUgaXMgYWxyZWFkeSBzZWxlY3RlZCBhbmQgZG8gbm90aGluZ1xuICAgIC8vIGluIHRoaXMgY2FzZVxuICAgIGZvciAoY29uc3Qgc2NlbmUgb2YgdGhpcy5zZWxlY3RlZFNjZW5lcykge1xuICAgICAgZm9yIChjb25zdCBwcmVzZXRVdWlkIG9mIHNjZW5lLnByZXNldFV1aWRzKSB7XG4gICAgICAgIGZpcnN0UHJlc2V0VXVpZCA9IHByZXNldFV1aWQ7XG5cbiAgICAgICAgaWYgKHByZXNldFV1aWQgPT09IHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldC51dWlkKSB7XG4gICAgICAgICAgLy8gYSBwcmVzZXQgb2YgYSBjdXJyZW50bHkgc2VsZWN0ZWQgc2NlbmUgaXMgYWxyZWFkeSBzZWxlY3RlZCAtPiBkbyBub3RoaW5nXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFmaXJzdFByZXNldFV1aWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5wcmVzZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnByZXNldHNbaV0udXVpZCA9PT0gZmlyc3RQcmVzZXRVdWlkKSB7XG4gICAgICAgIHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RQcmVzZXQoaSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFNjZW5lKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmVmZmVjdFNlcnZpY2Uuc2VsZWN0ZWRFZmZlY3QgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoaW5kZXggPj0gdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNjZW5lcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTY2VuZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5zd2l0Y2hTY2VuZVNlbGVjdGlvbih0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2NlbmVzW2luZGV4XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU2NlbmVzID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTY2VuZXMucHVzaCh0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2NlbmVzW2luZGV4XSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RQcmVzZXRGcm9tU2VsZWN0ZWRTY2VuZSgpO1xuXG4gICAgLy8gcHJldmlldyB0aGUgY29tcGxldGUgc2NlbmVcbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QucHJldmlld1ByZXNldCA9IGZhbHNlO1xuXG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNlbGVjdGVkU2NlbmVVdWlkcyA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2NlbmUgb2YgdGhpcy5zZWxlY3RlZFNjZW5lcykge1xuICAgICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNlbGVjdGVkU2NlbmVVdWlkcy5wdXNoKHNjZW5lLnV1aWQpO1xuICAgIH1cbiAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld1NlbGVjdGlvbkNoYW5nZWQubmV4dCgpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpO1xuXG4gICAgdGhpcy5zY2VuZVNlbGVjdGVkLm5leHQoKTtcbiAgfVxuXG4gIGFkZFNjZW5lKG5hbWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzY2VuZTogU2NlbmUgPSBuZXcgU2NlbmUoKTtcbiAgICBzY2VuZS51dWlkID0gdGhpcy51dWlkU2VydmljZS5nZXRVdWlkKCk7XG4gICAgc2NlbmUubmFtZSA9IG5hbWUgfHwgJ05ldyBTY2VuZSc7XG5cbiAgICBpZiAodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNjZW5lcy5sZW5ndGggPCB0aGlzLnNjZW5lQ29sb3JzLmxlbmd0aCkge1xuICAgICAgc2NlbmUuY29sb3IgPSB0aGlzLnNjZW5lQ29sb3JzW3RoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5zY2VuZXMubGVuZ3RoXTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2NlbmUuY29sb3IgPSAnIycgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDE2KS5zbGljZSgyLCA4KS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxuICAgIC8vIEluc2VydCB0aGUgbmV3IHNjZW5lIGJlZm9yZSB0aGUgaGlnaGVzdCBjdXJyZW50bHkgc2VsZWN0ZWQgc2NlbmVcbiAgICBsZXQgaGlnaGVzdFNlbGVjdGVkU2NlbmVJbmRleCA9IDA7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5zY2VuZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLnNjZW5lSXNTZWxlY3RlZCh0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2NlbmVzW2ldKSkge1xuICAgICAgICBoaWdoZXN0U2VsZWN0ZWRTY2VuZUluZGV4ID0gaTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNjZW5lcy5zcGxpY2UoaGlnaGVzdFNlbGVjdGVkU2NlbmVJbmRleCwgMCwgc2NlbmUpO1xuICAgIHRoaXMuc2VsZWN0U2NlbmUoaGlnaGVzdFNlbGVjdGVkU2NlbmVJbmRleCk7XG4gIH1cblxuICByZW1vdmVTY2VuZShzY2VuZTogU2NlbmUpOiB2b2lkIHtcbiAgICAvLyByZW1vdmUgYWxsIHBsYXliYWNrIHJlZ2lvbnNcbiAgICBmb3IgKGNvbnN0IGNvbXBvc2l0aW9uIG9mIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5jb21wb3NpdGlvbnMpIHtcbiAgICAgIGZvciAobGV0IGkgPSBjb21wb3NpdGlvbi5zY2VuZVBsYXliYWNrUmVnaW9ucy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBjb25zdCBjb21wb3NpdGlvblBsYXliYWNrUmVnaW9uID0gY29tcG9zaXRpb24uc2NlbmVQbGF5YmFja1JlZ2lvbnNbaV07XG4gICAgICAgIGlmIChjb21wb3NpdGlvblBsYXliYWNrUmVnaW9uLnNjZW5lVXVpZCA9PT0gc2NlbmUudXVpZCkge1xuICAgICAgICAgIGNvbXBvc2l0aW9uLnNjZW5lUGxheWJhY2tSZWdpb25zLnNwbGljZShpLCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHJlbW92ZSB0aGUgc2NlbmVcbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2NlbmVzLnNwbGljZSh0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2NlbmVzLmluZGV4T2Yoc2NlbmUpLCAxKTtcbiAgICBpZiAodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNjZW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlbGVjdFNjZW5lKDApO1xuICAgIH1cblxuICAgIHRoaXMuc2NlbmVEZWxldGVkLm5leHQoKTtcbiAgfVxuXG4gIGdldFNjZW5lQnlVdWlkKHV1aWQ6IHN0cmluZyk6IFNjZW5lIHtcbiAgICBmb3IgKGNvbnN0IHNjZW5lIG9mIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5zY2VuZXMpIHtcbiAgICAgIGlmIChzY2VuZS51dWlkID09PSB1dWlkKSB7XG4gICAgICAgIHJldHVybiBzY2VuZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==