@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
@@ -1,36 +0,0 @@
1
- import { __decorate, __metadata, __values } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- var UniverseService = /** @class */ (function () {
5
- function UniverseService() {
6
- this.universes = [];
7
- }
8
- UniverseService.prototype.getUniverseByUuid = function (uuid) {
9
- var e_1, _a;
10
- try {
11
- for (var _b = __values(this.universes), _c = _b.next(); !_c.done; _c = _b.next()) {
12
- var universe = _c.value;
13
- if (universe.uuid === uuid) {
14
- return universe;
15
- }
16
- }
17
- }
18
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
19
- finally {
20
- try {
21
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
22
- }
23
- finally { if (e_1) throw e_1.error; }
24
- }
25
- };
26
- UniverseService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UniverseService_Factory() { return new UniverseService(); }, token: UniverseService, providedIn: "root" });
27
- UniverseService = __decorate([
28
- Injectable({
29
- providedIn: 'root',
30
- }),
31
- __metadata("design:paramtypes", [])
32
- ], UniverseService);
33
- return UniverseService;
34
- }());
35
- export { UniverseService };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Byb2NrZXRzaG93L2Rlc2lnbmVyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3VuaXZlcnNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDO0lBR0U7UUFGQSxjQUFTLEdBQWUsRUFBRSxDQUFDO0lBRVosQ0FBQztJQUVoQiwyQ0FBaUIsR0FBakIsVUFBa0IsSUFBWTs7O1lBQzVCLEtBQXVCLElBQUEsS0FBQSxTQUFBLElBQUksQ0FBQyxTQUFTLENBQUEsZ0JBQUEsNEJBQUU7Z0JBQWxDLElBQU0sUUFBUSxXQUFBO2dCQUNqQixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO29CQUMxQixPQUFPLFFBQVEsQ0FBQztpQkFDakI7YUFDRjs7Ozs7Ozs7O0lBQ0gsQ0FBQzs7SUFYVSxlQUFlO1FBSDNCLFVBQVUsQ0FBQztZQUNWLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUM7O09BQ1csZUFBZSxDQVkzQjswQkFsQkQ7Q0FrQkMsQUFaRCxJQVlDO1NBWlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVuaXZlcnNlIH0gZnJvbSAnLi4vbW9kZWxzL3VuaXZlcnNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVuaXZlcnNlU2VydmljZSB7XG4gIHVuaXZlcnNlczogVW5pdmVyc2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXRVbml2ZXJzZUJ5VXVpZCh1dWlkOiBzdHJpbmcpOiBVbml2ZXJzZSB7XG4gICAgZm9yIChjb25zdCB1bml2ZXJzZSBvZiB0aGlzLnVuaXZlcnNlcykge1xuICAgICAgaWYgKHVuaXZlcnNlLnV1aWQgPT09IHV1aWQpIHtcbiAgICAgICAgcmV0dXJuIHVuaXZlcnNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,45 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { BsModalService } from 'ngx-bootstrap/modal';
4
- import { of, Subject } from 'rxjs';
5
- import { UserRegisterComponent } from '../user/user-register/user-register.component';
6
- import { ConfigService } from './config.service';
7
- import { UserService } from './user.service';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "./user.service";
10
- import * as i2 from "ngx-bootstrap/modal";
11
- import * as i3 from "./config.service";
12
- var UserEnsureLoginService = /** @class */ (function () {
13
- function UserEnsureLoginService(userService, modalService, configService) {
14
- this.userService = userService;
15
- this.modalService = modalService;
16
- this.configService = configService;
17
- }
18
- // show the login form and log a user in, if required
19
- UserEnsureLoginService.prototype.login = function () {
20
- if (this.userService.isLoggedIn()) {
21
- return of(null);
22
- }
23
- if (!this.configService.loginAvailable) {
24
- return of(null);
25
- }
26
- var subject = new Subject();
27
- this.modalService.show(UserRegisterComponent, { keyboard: true, ignoreBackdropClick: false, initialState: { subject: subject } });
28
- return subject;
29
- };
30
- UserEnsureLoginService.ctorParameters = function () { return [
31
- { type: UserService },
32
- { type: BsModalService },
33
- { type: ConfigService }
34
- ]; };
35
- UserEnsureLoginService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserEnsureLoginService_Factory() { return new UserEnsureLoginService(i0.ɵɵinject(i1.UserService), i0.ɵɵinject(i2.BsModalService), i0.ɵɵinject(i3.ConfigService)); }, token: UserEnsureLoginService, providedIn: "root" });
36
- UserEnsureLoginService = __decorate([
37
- Injectable({
38
- providedIn: 'root',
39
- }),
40
- __metadata("design:paramtypes", [UserService, BsModalService, ConfigService])
41
- ], UserEnsureLoginService);
42
- return UserEnsureLoginService;
43
- }());
44
- export { UserEnsureLoginService };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lbnN1cmUtbG9naW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Byb2NrZXRzaG93L2Rlc2lnbmVyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3VzZXItZW5zdXJlLWxvZ2luLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSzdDO0lBQ0UsZ0NBQW9CLFdBQXdCLEVBQVUsWUFBNEIsRUFBVSxhQUE0QjtRQUFwRyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUcsQ0FBQztJQUU1SCxxREFBcUQ7SUFDckQsc0NBQUssR0FBTDtRQUNFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRTtZQUN0QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUVELElBQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxPQUFPLFNBQUEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6SCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOztnQkFmZ0MsV0FBVztnQkFBd0IsY0FBYztnQkFBeUIsYUFBYTs7O0lBRDdHLHNCQUFzQjtRQUhsQyxVQUFVLENBQUM7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDO3lDQUVpQyxXQUFXLEVBQXdCLGNBQWMsRUFBeUIsYUFBYTtPQUQ3RyxzQkFBc0IsQ0FpQmxDO2lDQTNCRDtDQTJCQyxBQWpCRCxJQWlCQztTQWpCWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJSZWdpc3RlckNvbXBvbmVudCB9IGZyb20gJy4uL3VzZXIvdXNlci1yZWdpc3Rlci91c2VyLXJlZ2lzdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJFbnN1cmVMb2dpblNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLCBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHt9XG5cbiAgLy8gc2hvdyB0aGUgbG9naW4gZm9ybSBhbmQgbG9nIGEgdXNlciBpbiwgaWYgcmVxdWlyZWRcbiAgbG9naW4oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMudXNlclNlcnZpY2UuaXNMb2dnZWRJbigpKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNvbmZpZ1NlcnZpY2UubG9naW5BdmFpbGFibGUpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5zaG93KFVzZXJSZWdpc3RlckNvbXBvbmVudCwgeyBrZXlib2FyZDogdHJ1ZSwgaWdub3JlQmFja2Ryb3BDbGljazogZmFsc2UsIGluaXRpYWxTdGF0ZTogeyBzdWJqZWN0IH0gfSk7XG4gICAgcmV0dXJuIHN1YmplY3Q7XG4gIH1cbn1cbiJdfQ==
@@ -1,95 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { HttpClient, HttpHeaders } from '@angular/common/http';
3
- import { Injectable } from '@angular/core';
4
- import { map } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- var UserService = /** @class */ (function () {
8
- function UserService(http) {
9
- this.http = http;
10
- this.loadFromLocalStorage();
11
- }
12
- UserService.prototype.loadFromLocalStorage = function () {
13
- this.token = localStorage.getItem('token');
14
- this.tokenExpiration = undefined;
15
- if (localStorage.getItem('tokenExpiration')) {
16
- this.tokenExpiration = new Date(Date.parse(localStorage.getItem('tokenExpiration')));
17
- }
18
- this.username = localStorage.getItem('username');
19
- };
20
- // register a new user
21
- UserService.prototype.register = function (email, username, password) {
22
- return this.http.post('register?email=' + email + '&username=' + username + '&password=' + password, null);
23
- };
24
- // login a user in the api
25
- UserService.prototype.login = function (email, password) {
26
- var _this = this;
27
- return this.http.post('login?email=' + email + '&password=' + password, null).pipe(map(function (result) {
28
- _this.token = result.token;
29
- _this.username = result.username;
30
- // the token expires one month from now
31
- _this.tokenExpiration = new Date();
32
- _this.tokenExpiration.setDate(_this.tokenExpiration.getDate() + 30);
33
- // store to the local storage
34
- localStorage.setItem('token', _this.token);
35
- localStorage.setItem('tokenExpiration', JSON.stringify(_this.tokenExpiration));
36
- localStorage.setItem('username', _this.username);
37
- _this.loadFromLocalStorage();
38
- }));
39
- };
40
- UserService.prototype.logout = function () {
41
- localStorage.removeItem('token');
42
- localStorage.removeItem('tokenExpiration');
43
- localStorage.removeItem('username');
44
- this.loadFromLocalStorage();
45
- };
46
- UserService.prototype.isLoggedIn = function () {
47
- if (!this.token) {
48
- return false;
49
- }
50
- if (new Date() > this.tokenExpiration) {
51
- this.logout();
52
- return false;
53
- }
54
- return true;
55
- };
56
- UserService.prototype.getHeaders = function () {
57
- if (!this.isLoggedIn()) {
58
- return null;
59
- }
60
- var headers = new HttpHeaders();
61
- headers = headers.append('Authorization', this.token);
62
- return headers;
63
- };
64
- UserService.prototype.setAutoLoadProject = function (project) {
65
- localStorage.setItem('projectName', project.name);
66
- if (project.id) {
67
- localStorage.setItem('projectId', project.id.toString());
68
- }
69
- else {
70
- localStorage.removeItem('projectId');
71
- }
72
- };
73
- UserService.prototype.getAutoLoadProjectId = function () {
74
- if (!localStorage.getItem('projectId')) {
75
- return null;
76
- }
77
- return Number.parseInt(localStorage.getItem('projectId'));
78
- };
79
- UserService.prototype.getAutoLoadProjectName = function () {
80
- return localStorage.getItem('projectName');
81
- };
82
- UserService.ctorParameters = function () { return [
83
- { type: HttpClient }
84
- ]; };
85
- UserService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserService_Factory() { return new UserService(i0.ɵɵinject(i1.HttpClient)); }, token: UserService, providedIn: "root" });
86
- UserService = __decorate([
87
- Injectable({
88
- providedIn: 'root',
89
- }),
90
- __metadata("design:paramtypes", [HttpClient])
91
- ], UserService);
92
- return UserService;
93
- }());
94
- export { UserService };
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJvY2tldHNob3cvZGVzaWduZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFNckM7SUFNRSxxQkFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNsQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sMENBQW9CLEdBQTVCO1FBQ0UsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RGO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsOEJBQVEsR0FBUixVQUFTLEtBQWEsRUFBRSxRQUFnQixFQUFFLFFBQWdCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxHQUFHLFlBQVksR0FBRyxRQUFRLEdBQUcsWUFBWSxHQUFHLFFBQVEsRUFBRSxJQUFJLENBQUMs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Q0FBc0IsR0FBdEI7UUFDRSxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7Z0JBeEZ5QixVQUFVOzs7SUFOekIsV0FBVztRQUh2QixVQUFVLENBQUM7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDO3lDQU8wQixVQUFVO09BTnpCLFdBQVcsQ0ErRnZCO3NCQXhHRDtDQXdHQyxBQS9GRCxJQStGQztTQS9GWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vbW9kZWxzL3Byb2plY3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xuICAvLyB0aGUgYXV0aGVudGljYXRpb24gdG9rZW5cbiAgdG9rZW46IHN0cmluZztcbiAgdG9rZW5FeHBpcmF0aW9uOiBEYXRlO1xuICB1c2VybmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICAgIHRoaXMubG9hZEZyb21Mb2NhbFN0b3JhZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEZyb21Mb2NhbFN0b3JhZ2UoKSB7XG4gICAgdGhpcy50b2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0b2tlbicpO1xuICAgIHRoaXMudG9rZW5FeHBpcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG9rZW5FeHBpcmF0aW9uJykpIHtcbiAgICAgIHRoaXMudG9rZW5FeHBpcmF0aW9uID0gbmV3IERhdGUoRGF0ZS5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG9rZW5FeHBpcmF0aW9uJykpKTtcbiAgICB9XG4gICAgdGhpcy51c2VybmFtZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VybmFtZScpO1xuICB9XG5cbiAgLy8gcmVnaXN0ZXIgYSBuZXcgdXNlclxuICByZWdpc3RlcihlbWFpbDogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoJ3JlZ2lzdGVyP2VtYWlsPScgKyBlbWFpbCArICcmdXNlcm5hbWU9JyArIHVzZXJuYW1lICsgJyZwYXNzd29yZD0nICsgcGFzc3dvcmQsIG51bGwpO1xuICB9XG5cbiAgLy8gbG9naW4gYSB1c2VyIGluIHRoZSBhcGlcbiAgbG9naW4oZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KCdsb2dpbj9lbWFpbD0nICsgZW1haWwgKyAnJnBhc3N3b3JkPScgKyBwYXNzd29yZCwgbnVsbCkucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy50b2tlbiA9IHJlc3VsdC50b2tlbjtcbiAgICAgICAgdGhpcy51c2VybmFtZSA9IHJlc3VsdC51c2VybmFtZTtcblxuICAgICAgICAvLyB0aGUgdG9rZW4gZXhwaXJlcyBvbmUgbW9udGggZnJvbSBub3dcbiAgICAgICAgdGhpcy50b2tlbkV4cGlyYXRpb24gPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLnRva2VuRXhwaXJhdGlvbi5zZXREYXRlKHRoaXMudG9rZW5FeHBpcmF0aW9uLmdldERhdGUoKSArIDMwKTtcblxuICAgICAgICAvLyBzdG9yZSB0byB0aGUgbG9jYWwgc3RvcmFnZVxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG9rZW4nLCB0aGlzLnRva2VuKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rva2VuRXhwaXJhdGlvbicsIEpTT04uc3RyaW5naWZ5KHRoaXMudG9rZW5FeHBpcmF0aW9uKSk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VybmFtZScsIHRoaXMudXNlcm5hbWUpO1xuXG4gICAgICAgIHRoaXMubG9hZEZyb21Mb2NhbFN0b3JhZ2UoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvZ291dCgpIHtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG9rZW4nKTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG9rZW5FeHBpcmF0aW9uJyk7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3VzZXJuYW1lJyk7XG5cbiAgICB0aGlzLmxvYWRGcm9tTG9jYWxTdG9yYWdlKCk7XG4gIH1cblxuICBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy50b2tlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChuZXcgRGF0ZSgpID4gdGhpcy50b2tlbkV4cGlyYXRpb24pIHtcbiAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcbiAgICBpZiAoIXRoaXMuaXNMb2dnZWRJbigpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZCgnQXV0aG9yaXphdGlvbicsIHRoaXMudG9rZW4pO1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgc2V0QXV0b0xvYWRQcm9qZWN0KHByb2plY3Q6IFByb2plY3QpIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncHJvamVjdE5hbWUnLCBwcm9qZWN0Lm5hbWUpO1xuICAgIGlmIChwcm9qZWN0LmlkKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncHJvamVjdElkJywgcHJvamVjdC5pZC50b1N0cmluZygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Byb2plY3RJZCcpO1xuICAgIH1cbiAgfVxuXG4gIGdldEF1dG9Mb2FkUHJvamVjdElkKCk6IG51bWJlciB7XG4gICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHJvamVjdElkJykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gTnVtYmVyLnBhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwcm9qZWN0SWQnKSk7XG4gIH1cblxuICBnZXRBdXRvTG9hZFByb2plY3ROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwcm9qZWN0TmFtZScpO1xuICB9XG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- var UuidService = /** @class */ (function () {
5
- function UuidService() {
6
- }
7
- UuidService.prototype.getUuid = function () {
8
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
9
- // tslint:disable-next-line:no-bitwise
10
- var r = (Math.random() * 16) | 0;
11
- // tslint:disable-next-line:no-bitwise
12
- var v = c === 'x' ? r : (r & 0x3) | 0x8;
13
- return v.toString(16);
14
- });
15
- };
16
- UuidService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UuidService_Factory() { return new UuidService(); }, token: UuidService, providedIn: "root" });
17
- UuidService = __decorate([
18
- Injectable({
19
- providedIn: 'root',
20
- }),
21
- __metadata("design:paramtypes", [])
22
- ], UuidService);
23
- return UuidService;
24
- }());
25
- export { UuidService };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJvY2tldHNob3cvZGVzaWduZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdXVpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQztJQUNFO0lBQWUsQ0FBQztJQUVoQiw2QkFBTyxHQUFQO1FBQ0UsT0FBTyxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQUMsQ0FBQztZQUMvRCxzQ0FBc0M7WUFDdEMsSUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRW5DLHNDQUFzQztZQUN0QyxJQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUUxQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztJQWJVLFdBQVc7UUFIdkIsVUFBVSxDQUFDO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQzs7T0FDVyxXQUFXLENBY3ZCO3NCQW5CRDtDQW1CQyxBQWRELElBY0M7U0FkWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXVpZFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZ2V0VXVpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIChjKSA9PiB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgY29uc3QgciA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMDtcblxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcbiAgICAgIGNvbnN0IHYgPSBjID09PSAneCcgPyByIDogKHIgJiAweDMpIHwgMHg4O1xuXG4gICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { TranslateService } from '@ngx-translate/core';
4
- import { BsModalService } from 'ngx-bootstrap/modal';
5
- import { map, mergeMap } from 'rxjs/operators';
6
- import { WarningDialogComponent } from '../warning-dialog/warning-dialog.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "ngx-bootstrap/modal";
9
- import * as i2 from "@ngx-translate/core";
10
- var WarningDialogService = /** @class */ (function () {
11
- function WarningDialogService(modalService, translateService) {
12
- this.modalService = modalService;
13
- this.translateService = translateService;
14
- }
15
- // Show a warning dialog and return true, when the user clicked OK
16
- WarningDialogService.prototype.show = function (message) {
17
- var _this = this;
18
- return this.translateService.get(message).pipe(map(function (result) {
19
- return result;
20
- }), mergeMap(function (result) {
21
- var fileDialog = _this.modalService.show(WarningDialogComponent, { keyboard: false, ignoreBackdropClick: true });
22
- fileDialog.content.message = result;
23
- return fileDialog.content.onClose.pipe(map(function (warningResult) {
24
- if (warningResult === 1) {
25
- return true;
26
- }
27
- return false;
28
- }));
29
- }));
30
- };
31
- WarningDialogService.ctorParameters = function () { return [
32
- { type: BsModalService },
33
- { type: TranslateService }
34
- ]; };
35
- WarningDialogService.ɵprov = i0.ɵɵdefineInjectable({ factory: function WarningDialogService_Factory() { return new WarningDialogService(i0.ɵɵinject(i1.BsModalService), i0.ɵɵinject(i2.TranslateService)); }, token: WarningDialogService, providedIn: "root" });
36
- WarningDialogService = __decorate([
37
- Injectable({
38
- providedIn: 'root',
39
- }),
40
- __metadata("design:paramtypes", [BsModalService, TranslateService])
41
- ], WarningDialogService);
42
- return WarningDialogService;
43
- }());
44
- export { WarningDialogService };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FybmluZy1kaWFsb2cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Byb2NrZXRzaG93L2Rlc2lnbmVyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3dhcm5pbmctZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFLcEY7SUFDRSw4QkFBb0IsWUFBNEIsRUFBVSxnQkFBa0M7UUFBeEUsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFaEcsa0VBQWtFO0lBQ2xFLG1DQUFJLEdBQUosVUFBSyxPQUFlO1FBQXBCLGlCQW9CQztRQW5CQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM1QyxHQUFHLENBQUMsVUFBQyxNQUFNO1lBQ1QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLFVBQUMsTUFBTTtZQUNkLElBQU0sVUFBVSxHQUFHLEtBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2pILFVBQVUsQ0FBQyxPQUFrQyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFFaEUsT0FBUSxVQUFVLENBQUMsT0FBa0MsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNoRSxHQUFHLENBQUMsVUFBQyxhQUFhO2dCQUNoQixJQUFJLGFBQWEsS0FBSyxDQUFDLEVBQUU7b0JBQ3ZCLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUVELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztnQkF2QmlDLGNBQWM7Z0JBQTRCLGdCQUFnQjs7O0lBRGpGLG9CQUFvQjtRQUhoQyxVQUFVLENBQUM7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDO3lDQUVrQyxjQUFjLEVBQTRCLGdCQUFnQjtPQURqRixvQkFBb0IsQ0F5QmhDOytCQW5DRDtDQW1DQyxBQXpCRCxJQXlCQztTQXpCWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFdhcm5pbmdEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi93YXJuaW5nLWRpYWxvZy93YXJuaW5nLWRpYWxvZy5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2FybmluZ0RpYWxvZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICAvLyBTaG93IGEgd2FybmluZyBkaWFsb2cgYW5kIHJldHVybiB0cnVlLCB3aGVuIHRoZSB1c2VyIGNsaWNrZWQgT0tcbiAgc2hvdyhtZXNzYWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChtZXNzYWdlKS5waXBlKFxuICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlRGlhbG9nID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhXYXJuaW5nRGlhbG9nQ29tcG9uZW50LCB7IGtleWJvYXJkOiBmYWxzZSwgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSB9KTtcbiAgICAgICAgKGZpbGVEaWFsb2cuY29udGVudCBhcyBXYXJuaW5nRGlhbG9nQ29tcG9uZW50KS5tZXNzYWdlID0gcmVzdWx0O1xuXG4gICAgICAgIHJldHVybiAoZmlsZURpYWxvZy5jb250ZW50IGFzIFdhcm5pbmdEaWFsb2dDb21wb25lbnQpLm9uQ2xvc2UucGlwZShcbiAgICAgICAgICBtYXAoKHdhcm5pbmdSZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmICh3YXJuaW5nUmVzdWx0ID09PSAxKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,206 +0,0 @@
1
- import { __decorate, __metadata, __values } from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { Component, HostListener } from '@angular/core';
4
- import { TranslateService } from '@ngx-translate/core';
5
- import { BsModalRef } from 'ngx-bootstrap/modal';
6
- import { ToastrService } from 'ngx-toastr';
7
- import { Subject } from 'rxjs';
8
- import { map } from 'rxjs/operators';
9
- import { ConfigService } from '../../services/config.service';
10
- import { ProjectService } from '../../services/project.service';
11
- import { TimelineService } from '../../services/timeline.service';
12
- import { WarningDialogService } from '../../services/warning-dialog.service';
13
- var CompositionSettingsComponent = /** @class */ (function () {
14
- function CompositionSettingsComponent(bsModalRef, timelineService, configService, translateService, http, warningDialogService, toastrService, projectService) {
15
- this.bsModalRef = bsModalRef;
16
- this.timelineService = timelineService;
17
- this.configService = configService;
18
- this.translateService = translateService;
19
- this.http = http;
20
- this.warningDialogService = warningDialogService;
21
- this.toastrService = toastrService;
22
- this.projectService = projectService;
23
- this.existingCompositionNames = [];
24
- this.onClose = new Subject();
25
- this.existingFiles = [];
26
- this.filteredExistingFiles = [];
27
- this.uploading = false;
28
- }
29
- CompositionSettingsComponent.prototype.ngOnInit = function () {
30
- var _this = this;
31
- var projectId = this.projectService.project.id ? this.projectService.project.id : '';
32
- this.dropzoneConfig = {
33
- url: this.configService.restUrl + 'file/upload?compositionUuid=' + this.composition.uuid + '&projectId=' + projectId,
34
- addRemoveLinks: false,
35
- maxFilesize: 100 /* 100 MB */,
36
- acceptedFiles: 'audio/*',
37
- timeout: 0,
38
- parallelUploads: 1,
39
- previewTemplate: "\n <div class=\"dz-preview dz-file-preview\">\n <!-- The attachment details -->\n <div class=\"dz-details\" style=\"text-align: left\">\n <i class=\"fa fa-file-o\"></i> <span data-dz-name></span> <small>\n <span class=\"label label-default file-size\" data-dz-size></span></small>\n </div>\n\n <!--div class=\"mt-5\">\n <span data-dz-errormessage></span>\n </div-->\n\n <div class=\"progress mt-4 mb-1\" style=\"height: 10px\">\n <div class=\"progress-bar progress-bar-striped progress-bar-animated\"\n role=\"progressbar\" style=\"width:0%;\" data-dz-uploadprogress>\n </div>\n </div>\n </div>\n ",
40
- };
41
- this.translateService
42
- .get('designer.misc.dropzone-message')
43
- .pipe(map(function (result) {
44
- _this.uploadMessage = '<h3 class="mb-0"><i class="fa fa-cloud-upload"></i></h3>' + result;
45
- }))
46
- .subscribe();
47
- this.loadFiles();
48
- if (this.timelineService.externalCompositionsAvailable) {
49
- this.timelineService.getExternalCompositionNames().subscribe(function (compositionNames) {
50
- _this.existingCompositionNames = compositionNames;
51
- });
52
- }
53
- };
54
- CompositionSettingsComponent.prototype.ok = function () {
55
- this.onClose.next(1);
56
- this.bsModalRef.hide();
57
- };
58
- CompositionSettingsComponent.prototype.cancel = function () {
59
- this.onClose.next(2);
60
- this.bsModalRef.hide();
61
- };
62
- CompositionSettingsComponent.prototype.handleKeyboardEvent = function (event) {
63
- this.ok();
64
- };
65
- CompositionSettingsComponent.prototype.getNameFromFile = function (data) {
66
- return data.name;
67
- };
68
- CompositionSettingsComponent.prototype.loadFiles = function () {
69
- var _this = this;
70
- if (!this.configService.enableMediaLibrary) {
71
- return;
72
- }
73
- this.http
74
- .get('file/list')
75
- .pipe(map(function (response) {
76
- var e_1, _a;
77
- _this.existingFiles = [];
78
- try {
79
- for (var response_1 = __values(response), response_1_1 = response_1.next(); !response_1_1.done; response_1_1 = response_1.next()) {
80
- var file = response_1_1.value;
81
- // only load audio files
82
- if (file.audioFile) {
83
- _this.existingFiles.push(_this.getNameFromFile(file.audioFile));
84
- }
85
- }
86
- }
87
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
88
- finally {
89
- try {
90
- if (response_1_1 && !response_1_1.done && (_a = response_1.return)) _a.call(response_1);
91
- }
92
- finally { if (e_1) throw e_1.error; }
93
- }
94
- _this.filterExistingFiles();
95
- }))
96
- .subscribe();
97
- };
98
- CompositionSettingsComponent.prototype.onUploadError = function (args) {
99
- var _this = this;
100
- var msg = 'designer.misc.toast-upload-error';
101
- var title = 'designer.misc.toast-upload-error-title';
102
- this.translateService.get([msg, title]).subscribe(function (result) {
103
- _this.toastrService.error(result[msg] + args[1], result[title], { timeOut: 0, extendedTimeOut: 0, enableHtml: true });
104
- // Hide the preview element
105
- args[0].previewElement.hidden = true;
106
- });
107
- };
108
- CompositionSettingsComponent.prototype.onUploadSuccess = function (args) {
109
- this.loadFiles();
110
- // allow to guess the bpm of the newly uploaded file
111
- this.composition.tempoGuessed = false;
112
- // hide the preview element
113
- args[0].previewElement.hidden = true;
114
- // select this file
115
- this.composition.audioFileName = args[0].name;
116
- if (this.configService.enableMediaLibrary) {
117
- // the file has been uploaded to the media library
118
- this.composition.audioFileInLibrary = true;
119
- }
120
- };
121
- CompositionSettingsComponent.prototype.onQueueComplete = function (args) {
122
- this.uploading = false;
123
- };
124
- CompositionSettingsComponent.prototype.onAddedFile = function (args) {
125
- this.uploading = true;
126
- };
127
- // Filter the existing files
128
- CompositionSettingsComponent.prototype.filterExistingFiles = function (searchValue) {
129
- var e_2, _a;
130
- if (!searchValue) {
131
- this.filteredExistingFiles = this.existingFiles;
132
- return;
133
- }
134
- this.filteredExistingFiles = [];
135
- try {
136
- for (var _b = __values(this.existingFiles), _c = _b.next(); !_c.done; _c = _b.next()) {
137
- var file = _c.value;
138
- if (file.toLowerCase().indexOf(searchValue.toLowerCase()) !== -1) {
139
- this.filteredExistingFiles.push(file);
140
- }
141
- }
142
- }
143
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
144
- finally {
145
- try {
146
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
147
- }
148
- finally { if (e_2) throw e_2.error; }
149
- }
150
- };
151
- CompositionSettingsComponent.prototype.selectExistingFile = function (existingFile) {
152
- this.composition.audioFileName = existingFile;
153
- // the file has been selected from the media library
154
- this.composition.audioFileInLibrary = true;
155
- };
156
- CompositionSettingsComponent.prototype.deleteFile = function (existingFile) {
157
- var _this = this;
158
- this.warningDialogService
159
- .show('designer.timeline.warning-delete-file')
160
- .pipe(map(function (result) {
161
- if (result) {
162
- _this.http
163
- .post('file/delete?name=' + existingFile + '&type=AUDIO', undefined)
164
- .pipe(map(function (response) {
165
- _this.loadFiles();
166
- }))
167
- .subscribe();
168
- }
169
- }))
170
- .subscribe();
171
- };
172
- CompositionSettingsComponent.ctorParameters = function () { return [
173
- { type: BsModalRef },
174
- { type: TimelineService },
175
- { type: ConfigService },
176
- { type: TranslateService },
177
- { type: HttpClient },
178
- { type: WarningDialogService },
179
- { type: ToastrService },
180
- { type: ProjectService }
181
- ]; };
182
- __decorate([
183
- HostListener('document:keydown.enter', ['$event']),
184
- __metadata("design:type", Function),
185
- __metadata("design:paramtypes", [Object]),
186
- __metadata("design:returntype", void 0)
187
- ], CompositionSettingsComponent.prototype, "handleKeyboardEvent", null);
188
- CompositionSettingsComponent = __decorate([
189
- Component({
190
- selector: 'lib-app-composition-settings',
191
- template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ composition.name }}</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.composition-name' | translate }}</label>\n <div class=\"col-lg-8 d-flex\">\n <input\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"composition.name\"\n (ngModelChange)=\"composition.name = $event\"\n [typeahead]=\"existingCompositionNames\"\n />\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.composition-sync-type' | translate }}</label>\n <div class=\"col-lg-8 d-flex\">\n <select class=\"custom-select\" [ngModel]=\"composition.syncType\" (ngModelChange)=\"composition.syncType = $event\">\n <!-- TODO -->\n <!-- <option value=\"none\">{{ 'designer.timeline.composition-sync-type-none' | translate }}</option> -->\n <option value=\"audio\">{{ 'designer.timeline.composition-sync-type-audio' | translate }}</option>\n </select>\n </div>\n </div>\n\n <div *ngIf=\"composition.syncType == 'audio'\" class=\"row\">\n <div class=\"px-3 w-100\">\n <!-- Selected file -->\n <div class=\"card border-secondary mb-3\">\n <div class=\"card-body\">\n <!-- No file selected -->\n <div *ngIf=\"!composition.audioFileName\">\n {{ 'designer.timeline.composition-no-file-selected' | translate }}\n </div>\n\n <!-- A file is selected -->\n <div *ngIf=\"composition.audioFileName\">\n {{ composition.audioFileName }}\n </div>\n </div>\n </div>\n\n <!-- Choose file -->\n <ul *ngIf=\"configService.enableMediaLibrary\" class=\"nav nav-tabs mb-3\" id=\"myTab\" role=\"tablist\">\n <li class=\"nav-item\">\n <a class=\"nav-link active\" id=\"upload-tab\" data-toggle=\"tab\" href=\"#upload\" role=\"tab\">\n <i class=\"fa fa-upload\" aria-hidden=\"true\"></i>\n {{ 'designer.timeline.composition-file-upload' | translate }}\n </a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" id=\"media-library-tab\" data-toggle=\"tab\" href=\"#media-library\" role=\"tab\">\n <i class=\"fa fa-folder-o\" aria-hidden=\"true\"></i>\n {{ 'designer.timeline.composition-file-library' | translate }}\n </a>\n </li>\n </ul>\n\n <div class=\"tab-content\" id=\"myTabContent\">\n <!-- Upload -->\n <div class=\"tab-pane fade show active\" id=\"upload\" role=\"tabpanel\">\n <!-- Dropzone -->\n <dropzone\n [config]=\"dropzoneConfig\"\n [useDropzoneClass]=\"'false'\"\n [message]=\"uploadMessage\"\n (error)=\"onUploadError($event)\"\n (success)=\"onUploadSuccess($event)\"\n (queuecomplete)=\"onQueueComplete($event)\"\n (addedfile)=\"onAddedFile($event)\"\n ></dropzone>\n </div>\n\n <!-- Media library -->\n <div class=\"tab-pane fade\" id=\"media-library\" role=\"tabpanel\">\n <input\n type=\"text\"\n class=\"form-control input-block mb-3\"\n id=\"searchFileList\"\n placeholder=\"{{ 'designer.misc.search' | translate }}\"\n (input)=\"filterExistingFiles($event.target.value)\"\n />\n\n <div class=\"card border-secondary\" style=\"height: 200px; overflow-y: scroll\">\n <div class=\"card-body p-0\">\n <div class=\"list-group list-group-flush\">\n <a\n *ngFor=\"let existingFile of filteredExistingFiles | sort: 'name'\"\n class=\"list-group-item\"\n [class.active]=\"composition.audioFileName == existingFile\"\n href=\"#\"\n (click)=\"selectExistingFile(existingFile); (false)\"\n >\n <div class=\"row\">\n <div class=\"col-auto my-auto flex-grow text-break-word\">\n {{ existingFile }}\n </div>\n\n <div class=\"col-auto my-auto pl-0 text-danger float-right\" (click)=\"deleteFile(existingFile); (false)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </div>\n </div>\n </a>\n </div>\n </div>\n </div>\n </div>\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 [disabled]=\"uploading\" type=\"button\" class=\"btn btn-primary\" (click)=\"ok()\">{{ 'designer.misc.ok' | translate }}</button>\n</div>\n",
192
- styles: [""]
193
- }),
194
- __metadata("design:paramtypes", [BsModalRef,
195
- TimelineService,
196
- ConfigService,
197
- TranslateService,
198
- HttpClient,
199
- WarningDialogService,
200
- ToastrService,
201
- ProjectService])
202
- ], CompositionSettingsComponent);
203
- return CompositionSettingsComponent;
204
- }());
205
- export { CompositionSettingsComponent };
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRpb24tc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJvY2tldHNob3cvZGVzaWduZXIvIiwic291cmNlcyI6WyJsaWIvdGltZWxpbmUvY29tcG9zaXRpb24tc2V0dGluZ3MvY29tcG9zaXRpb24tc2V0dGluZ3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFPN0U7SUFjRSxzQ0FDUyxVQUFzQixFQUNyQixlQUFnQyxFQUNqQyxhQUE0QixFQUMzQixnQkFBa0MsRUFDbEMsSUFBZ0IsRUFDaEIsb0JBQTBDLEVBQzFDLGFBQTRCLEVBQzVCLGNBQThCO1FBUC9CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0Is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QztJQUM3QyxDQUFDO0lBRUQsaURBQVUsR0FBVixVQUFXLFlBQW9CO1FBQS9CLGlCQWtCQztRQWpCQyxJQUFJLENBQUMsb0JBQW9CO2FBQ3RCLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQzthQUM3QyxJQUFJLENBQ0gsR0FBRyxDQUFDLFVBQUMsTUFBTTtZQUNULElBQUksTUFBTSxFQUFFO2dCQUNWLEtBQUksQ0FBQyxJQUFJO3FCQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxZQUFZLEdBQUcsYUFBYSxFQUFFLFNBQVMsQ0FBQztxQkFDbkUsSUFBSSxDQUNILEdBQUcsQ0FBQyxVQUFDLFFBQWtCO29CQUNyQixLQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxDQUNIO3FCQUNBLFNBQVMsRUFBRSxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDOztnQkFsTG9CLFVBQVU7Z0JBQ0osZUFBZTtnQkFDbEIsYUFBYTtnQkFDVCxnQkFBZ0I7Z0JBQzVCLFVBQVU7Z0JBQ00sb0JBQW9CO2dCQUMzQixhQUFhO2dCQUNaLGNBQWM7O0lBOER4QztRQURDLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzs7OzJFQUdsRDtJQXRGVSw0QkFBNEI7UUFMeEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLDhCQUE4QjtZQUN4Qyx1aUtBQW9EOztTQUVyRCxDQUFDO3lDQWdCcUIsVUFBVTtZQUNKLGVBQWU7WUFDbEIsYUFBYTtZQUNULGdCQUFnQjtZQUM1QixVQUFVO1lBQ00sb0JBQW9CO1lBQzNCLGFBQWE7WUFDWixjQUFjO09BdEI3Qiw0QkFBNEIsQ0FrTXhDO0lBQUQsbUNBQUM7Q0FBQSxBQWxNRCxJQWtNQztTQWxNWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgRHJvcHpvbmVDb25maWdJbnRlcmZhY2UgfSBmcm9tICduZ3gtZHJvcHpvbmUtd3JhcHBlcic7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21wb3NpdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb3NpdGlvbic7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9qZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGltZWxpbmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGltZWxpbmUuc2VydmljZSc7XG5pbXBvcnQgeyBXYXJuaW5nRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dhcm5pbmctZGlhbG9nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLWNvbXBvc2l0aW9uLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBvc2l0aW9uLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcG9zaXRpb24tc2V0dGluZ3MuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wb3NpdGlvblNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29tcG9zaXRpb246IENvbXBvc2l0aW9uO1xuICBleGlzdGluZ0NvbXBvc2l0aW9uTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIG9uQ2xvc2U6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIGRyb3B6b25lQ29uZmlnOiBEcm9wem9uZUNvbmZpZ0ludGVyZmFjZTtcbiAgcHVibGljIHVwbG9hZE1lc3NhZ2U6IHN0cmluZztcblxuICBwdWJsaWMgZXhpc3RpbmdGaWxlczogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIGZpbHRlcmVkRXhpc3RpbmdGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgdXBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSB0aW1lbGluZVNlcnZpY2U6IFRpbWVsaW5lU2VydmljZSxcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgd2FybmluZ0RpYWxvZ1NlcnZpY2U6IFdhcm5pbmdEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHByb2plY3RTZXJ2aWNlOiBQcm9qZWN0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgcHJvamVjdElkID0gdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LmlkID8gdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LmlkIDogJyc7XG4gICAgdGhpcy5kcm9wem9uZUNvbmZpZyA9IHtcbiAgICAgIHVybDogdGhpcy5jb25maWdTZXJ2aWNlLnJlc3RVcmwgKyAnZmlsZS91cGxvYWQ/Y29tcG9zaXRpb25VdWlkPScgKyB0aGlzLmNvbXBvc2l0aW9uLnV1aWQgKyAnJnByb2plY3RJZD0nICsgcHJvamVjdElkLFxuICAgICAgYWRkUmVtb3ZlTGlua3M6IGZhbHNlLFxuICAgICAgbWF4RmlsZXNpemU6IDEwMCAvKiAxMDAgTUIgKi8sXG4gICAgICBhY2NlcHRlZEZpbGVzOiAnYXVkaW8vKicsXG4gICAgICB0aW1lb3V0OiAwLFxuICAgICAgcGFyYWxsZWxVcGxvYWRzOiAxLFxuICAgICAgcHJldmlld1RlbXBsYXRlOiBgXG4gICAgICA8ZGl2IGNsYXNzPVwiZHotcHJldmlldyBkei1maWxlLXByZXZpZXdcIj5cbiAgICAgICAgPCEtLSBUaGUgYXR0YWNobWVudCBkZXRhaWxzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHotZGV0YWlsc1wiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZmlsZS1vXCI+PC9pPiA8c3BhbiBkYXRhLWR6LW5hbWU+PC9zcGFuPiA8c21hbGw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBsYWJlbC1kZWZhdWx0IGZpbGUtc2l6ZVwiIGRhdGEtZHotc2l6ZT48L3NwYW4+PC9zbWFsbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLWRpdiBjbGFzcz1cIm10LTVcIj5cbiAgICAgICAgICA8c3BhbiBkYXRhLWR6LWVycm9ybWVzc2FnZT48L3NwYW4+XG4gICAgICAgIDwvZGl2LS0+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzIG10LTQgbWItMVwiIHN0eWxlPVwiaGVpZ2h0OiAxMHB4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhciBwcm9ncmVzcy1iYXItc3RyaXBlZCBwcm9ncmVzcy1iYXItYW5pbWF0ZWRcIlxuICAgICAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCIgc3R5bGU9XCJ3aWR0aDowJTtcIiBkYXRhLWR6LXVwbG9hZHByb2dyZXNzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICB9O1xuXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAuZ2V0KCdkZXNpZ25lci5taXNjLmRyb3B6b25lLW1lc3NhZ2UnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy51cGxvYWRNZXNzYWdlID0gJzxoMyBjbGFzcz1cIm1iLTBcIj48aSBjbGFzcz1cImZhIGZhLWNsb3VkLXVwbG9hZFwiPjwvaT48L2gzPicgKyByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmxvYWRGaWxlcygpO1xuXG4gICAgaWYgKHRoaXMudGltZWxpbmVTZXJ2aWNlLmV4dGVybmFsQ29tcG9zaXRpb25zQXZhaWxhYmxlKSB7XG4gICAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5nZXRFeHRlcm5hbENvbXBvc2l0aW9uTmFtZXMoKS5zdWJzY3JpYmUoKGNvbXBvc2l0aW9uTmFtZXMpID0+IHtcbiAgICAgICAgdGhpcy5leGlzdGluZ0NvbXBvc2l0aW9uTmFtZXMgPSBjb21wb3NpdGlvbk5hbWVzO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb2soKSB7XG4gICAgdGhpcy5vbkNsb3NlLm5leHQoMSk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLm9uQ2xvc2UubmV4dCgyKTtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmFtZUZyb21GaWxlKGRhdGE6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGEubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEZpbGVzKCkge1xuICAgIGlmICghdGhpcy5jb25maWdTZXJ2aWNlLmVuYWJsZU1lZGlhTGlicmFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaHR0cFxuICAgICAgLmdldCgnZmlsZS9saXN0JylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3RbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXhpc3RpbmdGaWxlcyA9IFtdO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBvbmx5IGxvYWQgYXVkaW8gZmlsZXNcbiAgICAgICAgICAgIGlmICgoZmlsZSBhcyBhbnkpLmF1ZGlvRmlsZSkge1xuICAgICAgICAgICAgICB0aGlzLmV4aXN0aW5nRmlsZXMucHVzaCh0aGlzLmdldE5hbWVGcm9tRmlsZSgoZmlsZSBhcyBhbnkpLmF1ZGlvRmlsZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuZmlsdGVyRXhpc3RpbmdGaWxlcygpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uVXBsb2FkRXJyb3IoYXJnczogYW55KSB7XG4gICAgY29uc3QgbXNnID0gJ2Rlc2lnbmVyLm1pc2MudG9hc3QtdXBsb2FkLWVycm9yJztcbiAgICBjb25zdCB0aXRsZSA9ICdkZXNpZ25lci5taXNjLnRvYXN0LXVwbG9hZC1lcnJvci10aXRsZSc7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChbbXNnLCB0aXRsZV0pLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IocmVzdWx0W21zZ10gKyBhcmdzWzFdLCByZXN1bHRbdGl0bGVdLCB7IHRpbWVPdXQ6IDAsIGV4dGVuZGVkVGltZU91dDogMCwgZW5hYmxlSHRtbDogdHJ1ZSB9KTtcbiAgICAgIC8vIEhpZGUgdGhlIHByZXZpZXcgZWxlbWVudFxuICAgICAgYXJnc1swXS5wcmV2aWV3RWxlbWVudC5oaWRkZW4gPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uVXBsb2FkU3VjY2VzcyhhcmdzOiBhbnkpIHtcbiAgICB0aGlzLmxvYWRGaWxlcygpO1xuXG4gICAgLy8gYWxsb3cgdG8gZ3Vlc3MgdGhlIGJwbSBvZiB0aGUgbmV3bHkgdXBsb2FkZWQgZmlsZVxuICAgIHRoaXMuY29tcG9zaXRpb24udGVtcG9HdWVzc2VkID0gZmFsc2U7XG5cbiAgICAvLyBoaWRlIHRoZSBwcmV2aWV3IGVsZW1lbnRcbiAgICBhcmdzWzBdLnByZXZpZXdFbGVtZW50LmhpZGRlbiA9IHRydWU7XG5cbiAgICAvLyBzZWxlY3QgdGhpcyBmaWxlXG4gICAgdGhpcy5jb21wb3NpdGlvbi5hdWRpb0ZpbGVOYW1lID0gYXJnc1swXS5uYW1lO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnU2VydmljZS5lbmFibGVNZWRpYUxpYnJhcnkpIHtcbiAgICAgIC8vIHRoZSBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkIHRvIHRoZSBtZWRpYSBsaWJyYXJ5XG4gICAgICB0aGlzLmNvbXBvc2l0aW9uLmF1ZGlvRmlsZUluTGlicmFyeSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUXVldWVDb21wbGV0ZShhcmdzOiBhbnkpIHtcbiAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uQWRkZWRGaWxlKGFyZ3M6IGFueSkge1xuICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIEZpbHRlciB0aGUgZXhpc3RpbmcgZmlsZXNcbiAgZmlsdGVyRXhpc3RpbmdGaWxlcyhzZWFyY2hWYWx1ZT86IHN0cmluZykge1xuICAgIGlmICghc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRFeGlzdGluZ0ZpbGVzID0gdGhpcy5leGlzdGluZ0ZpbGVzO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRFeGlzdGluZ0ZpbGVzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGhpcy5leGlzdGluZ0ZpbGVzKSB7XG4gICAgICBpZiAoZmlsZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRFeGlzdGluZ0ZpbGVzLnB1c2goZmlsZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0RXhpc3RpbmdGaWxlKGV4aXN0aW5nRmlsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jb21wb3NpdGlvbi5hdWRpb0ZpbGVOYW1lID0gZXhpc3RpbmdGaWxlO1xuXG4gICAgLy8gdGhlIGZpbGUgaGFzIGJlZW4gc2VsZWN0ZWQgZnJvbSB0aGUgbWVkaWEgbGlicmFyeVxuICAgIHRoaXMuY29tcG9zaXRpb24uYXVkaW9GaWxlSW5MaWJyYXJ5ID0gdHJ1ZTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoZXhpc3RpbmdGaWxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLndhcm5pbmdEaWFsb2dTZXJ2aWNlXG4gICAgICAuc2hvdygnZGVzaWduZXIudGltZWxpbmUud2FybmluZy1kZWxldGUtZmlsZScpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgLnBvc3QoJ2ZpbGUvZGVsZXRlP25hbWU9JyArIGV4aXN0aW5nRmlsZSArICcmdHlwZT1BVURJTycsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZEZpbGVzKCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -1,56 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, HostListener } from '@angular/core';
3
- import { BsModalRef } from 'ngx-bootstrap/modal';
4
- import { TimelineService } from '../../services/timeline.service';
5
- var TimelineGridComponent = /** @class */ (function () {
6
- function TimelineGridComponent(bsModalRef, timelineService) {
7
- this.bsModalRef = bsModalRef;
8
- this.timelineService = timelineService;
9
- this.gridType = timelineService.selectedComposition.gridType;
10
- this.beatsPerMinute = timelineService.selectedComposition.beatsPerMinute;
11
- this.timeSignatureUpper = timelineService.selectedComposition.timeSignatureUpper;
12
- this.timeSignatureLower = timelineService.selectedComposition.timeSignatureLower;
13
- this.snapToGrid = timelineService.selectedComposition.snapToGrid;
14
- this.gridOffsetMillis = timelineService.selectedComposition.gridOffsetMillis;
15
- this.gridResolution = timelineService.selectedComposition.gridResolution;
16
- }
17
- TimelineGridComponent.prototype.ngOnInit = function () { };
18
- TimelineGridComponent.prototype.ok = function () {
19
- this.timelineService.selectedComposition.gridType = this.gridType;
20
- this.timelineService.selectedComposition.beatsPerMinute = this.beatsPerMinute;
21
- this.timelineService.selectedComposition.timeSignatureUpper = this.timeSignatureUpper;
22
- this.timelineService.selectedComposition.timeSignatureLower = this.timeSignatureLower;
23
- this.timelineService.selectedComposition.snapToGrid = this.snapToGrid;
24
- this.timelineService.selectedComposition.gridOffsetMillis = this.gridOffsetMillis;
25
- this.timelineService.selectedComposition.gridResolution = this.gridResolution;
26
- this.timelineService.updateGrid();
27
- this.bsModalRef.hide();
28
- };
29
- TimelineGridComponent.prototype.cancel = function () {
30
- this.bsModalRef.hide();
31
- };
32
- TimelineGridComponent.prototype.handleKeyboardEvent = function (event) {
33
- this.ok();
34
- };
35
- TimelineGridComponent.ctorParameters = function () { return [
36
- { type: BsModalRef },
37
- { type: TimelineService }
38
- ]; };
39
- __decorate([
40
- HostListener('document:keydown.enter', ['$event']),
41
- __metadata("design:type", Function),
42
- __metadata("design:paramtypes", [Object]),
43
- __metadata("design:returntype", void 0)
44
- ], TimelineGridComponent.prototype, "handleKeyboardEvent", null);
45
- TimelineGridComponent = __decorate([
46
- Component({
47
- selector: 'lib-app-timeline-grid',
48
- 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",
49
- styles: [""]
50
- }),
51
- __metadata("design:paramtypes", [BsModalRef, TimelineService])
52
- ], TimelineGridComponent);
53
- return TimelineGridComponent;
54
- }());
55
- export { TimelineGridComponent };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi90aW1lbGluZS90aW1lbGluZS1ncmlkL3RpbWVsaW5lLWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBT2xFO0lBU0UsK0JBQW1CLFVBQXNCLEVBQVMsZUFBZ0M7UUFBL0QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFTLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7UUFDN0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxlQUFlLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUM7UUFDakYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRixJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7UUFDakUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3RSxJQUFJLENBQUMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUM7SUFDM0UsQ0FBQztJQUVELHdDQUFRLEdBQVIsY0FBWSxDQUFDO0lBRWIsa0NBQUUsR0FBRjtRQUNFLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM5RSxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUN0RixJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUN0RixJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ2xGLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFOUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxzQ0FBTSxHQUFOO1FBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBR0QsbURBQW1CLEdBQW5CLFVBQW9CLEtBQVU7UUFDNUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ1osQ0FBQzs7Z0JBaEM4QixVQUFVO2dCQUEwQixlQUFlOztJQThCbEY7UUFEQyxZQUFZLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7OztvRUFHbEQ7SUF6Q1UscUJBQXFCO1FBTGpDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsc3JIQUE2Qzs7U0FFOUMsQ0FBQzt5Q0FVK0IsVUFBVSxFQUEwQixlQUFlO09BVHZFLHFCQUFxQixDQTBDakM7SUFBRCw0QkFBQztDQUFBLEFBMUNELElBMENDO1NBMUNZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFRpbWVsaW5lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpbWVsaW5lLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLXRpbWVsaW5lLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZWxpbmUtZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWVsaW5lLWdyaWQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lbGluZUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZ3JpZFR5cGU6IHN0cmluZztcbiAgcHVibGljIGJlYXRzUGVyTWludXRlOiBudW1iZXI7XG4gIHB1YmxpYyB0aW1lU2lnbmF0dXJlVXBwZXI6IG51bWJlcjtcbiAgcHVibGljIHRpbWVTaWduYXR1cmVMb3dlcjogbnVtYmVyO1xuICBwdWJsaWMgc25hcFRvR3JpZDogYm9vbGVhbjtcbiAgcHVibGljIGdyaWRPZmZzZXRNaWxsaXM6IG51bWJlcjtcbiAgcHVibGljIGdyaWRSZXNvbHV0aW9uOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsIHB1YmxpYyB0aW1lbGluZVNlcnZpY2U6IFRpbWVsaW5lU2VydmljZSkge1xuICAgIHRoaXMuZ3JpZFR5cGUgPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi5ncmlkVHlwZTtcbiAgICB0aGlzLmJlYXRzUGVyTWludXRlID0gdGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24uYmVhdHNQZXJNaW51dGU7XG4gICAgdGhpcy50aW1lU2lnbmF0dXJlVXBwZXIgPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi50aW1lU2lnbmF0dXJlVXBwZXI7XG4gICAgdGhpcy50aW1lU2lnbmF0dXJlTG93ZXIgPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi50aW1lU2lnbmF0dXJlTG93ZXI7XG4gICAgdGhpcy5zbmFwVG9HcmlkID0gdGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24uc25hcFRvR3JpZDtcbiAgICB0aGlzLmdyaWRPZmZzZXRNaWxsaXMgPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi5ncmlkT2Zmc2V0TWlsbGlzO1xuICAgIHRoaXMuZ3JpZFJlc29sdXRpb24gPSB0aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi5ncmlkUmVzb2x1dGlvbjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge31cblxuICBvaygpIHtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uLmdyaWRUeXBlID0gdGhpcy5ncmlkVHlwZTtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uLmJlYXRzUGVyTWludXRlID0gdGhpcy5iZWF0c1Blck1pbnV0ZTtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uLnRpbWVTaWduYXR1cmVVcHBlciA9IHRoaXMudGltZVNpZ25hdHVyZVVwcGVyO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24udGltZVNpZ25hdHVyZUxvd2VyID0gdGhpcy50aW1lU2lnbmF0dXJlTG93ZXI7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbi5zbmFwVG9HcmlkID0gdGhpcy5zbmFwVG9HcmlkO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24uZ3JpZE9mZnNldE1pbGxpcyA9IHRoaXMuZ3JpZE9mZnNldE1pbGxpcztcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uLmdyaWRSZXNvbHV0aW9uID0gdGhpcy5ncmlkUmVzb2x1dGlvbjtcblxuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnVwZGF0ZUdyaWQoKTtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5vaygpO1xuICB9XG59XG4iXX0=