@rocketshow/designer 1.31.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 -9947
  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.31.0.tgz +0 -0
  338. package/rocketshow-designer.d.ts +0 -60
  339. package/rocketshow-designer.metadata.json +0 -1
@@ -1,200 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component } from '@angular/core';
3
- import { Positioning } from '../../../models/fixture';
4
- import { FixtureService } from '../../../services/fixture.service';
5
- import { PresetService } from '../../../services/preset.service';
6
- let FixtureSettingsPositionComponent = class FixtureSettingsPositionComponent {
7
- constructor(fixtureService, presetService) {
8
- this.fixtureService = fixtureService;
9
- this.presetService = presetService;
10
- this.selectUndefinedOptionValue = undefined;
11
- this.selectedPositioning = undefined;
12
- this.positionX = 0;
13
- this.positionY = 0;
14
- this.positionZ = 0;
15
- this.positionXMin = -400;
16
- this.positionXMax = 400;
17
- this.positionYMin = 0;
18
- this.positionYMax = 400;
19
- this.positionZMin = -400;
20
- this.positionZMax = 400;
21
- this.rotationX = 0;
22
- this.rotationY = 0;
23
- this.rotationZ = 0;
24
- this.rotationMin = 0;
25
- this.rotationMax = 360;
26
- presetService.fixtureSelectionSettingsChanged.subscribe(() => {
27
- this.updateSelection();
28
- });
29
- }
30
- ngOnInit() { }
31
- updateSelection() {
32
- // get all display values for the selected settings fixtures
33
- this.selectedPositioning = undefined;
34
- this.positionX = undefined;
35
- this.positionY = undefined;
36
- this.positionZ = undefined;
37
- this.rotationX = undefined;
38
- this.rotationY = undefined;
39
- this.rotationZ = undefined;
40
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
41
- if (this.selectedPositioning) {
42
- if (this.selectedPositioning !== fixture.positioning) {
43
- this.selectedPositioning = undefined;
44
- break;
45
- }
46
- }
47
- else {
48
- this.selectedPositioning = fixture.positioning;
49
- }
50
- }
51
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
52
- if (this.positionX) {
53
- if (this.positionX !== fixture.positionX) {
54
- this.positionX = undefined;
55
- break;
56
- }
57
- }
58
- else {
59
- this.positionX = fixture.positionX;
60
- }
61
- }
62
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
63
- if (this.positionY) {
64
- if (this.positionY !== fixture.positionY) {
65
- this.positionY = undefined;
66
- break;
67
- }
68
- }
69
- else {
70
- this.positionY = fixture.positionY;
71
- }
72
- }
73
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
74
- if (this.positionZ) {
75
- if (this.positionZ !== fixture.positionZ) {
76
- this.positionZ = undefined;
77
- break;
78
- }
79
- }
80
- else {
81
- this.positionZ = fixture.positionZ;
82
- }
83
- }
84
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
85
- if (this.rotationX) {
86
- if (this.rotationX !== fixture.rotationX) {
87
- this.rotationX = undefined;
88
- break;
89
- }
90
- }
91
- else {
92
- this.rotationX = fixture.rotationX;
93
- }
94
- }
95
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
96
- if (this.rotationY) {
97
- if (this.rotationY !== fixture.rotationY) {
98
- this.rotationY = undefined;
99
- break;
100
- }
101
- }
102
- else {
103
- this.rotationY = fixture.rotationY;
104
- }
105
- }
106
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
107
- if (this.rotationZ) {
108
- if (this.rotationZ !== fixture.rotationZ) {
109
- this.rotationZ = undefined;
110
- break;
111
- }
112
- }
113
- else {
114
- this.rotationZ = fixture.rotationZ;
115
- }
116
- }
117
- }
118
- changePosition(positioningStr) {
119
- const positioning = Positioning[positioningStr];
120
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
121
- fixture.positioning = positioning;
122
- }
123
- }
124
- changePositionManual(position, value) {
125
- if (isNaN(value)) {
126
- return;
127
- }
128
- if (position === 'x') {
129
- if (value >= this.positionXMin && value <= this.positionXMax) {
130
- this.positionX = +value;
131
- }
132
- }
133
- else if (position === 'y') {
134
- if (value >= this.positionYMin && value <= this.positionYMax) {
135
- this.positionY = +value;
136
- }
137
- }
138
- else if (position === 'z') {
139
- if (value >= this.positionZMin && value <= this.positionZMax) {
140
- this.positionZ = +value;
141
- }
142
- }
143
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
144
- if (position === 'x') {
145
- if (value >= this.positionXMin && value <= this.positionXMax) {
146
- fixture.positionX = +value;
147
- }
148
- }
149
- else if (position === 'y') {
150
- if (value >= this.positionYMin && value <= this.positionYMax) {
151
- fixture.positionY = +value;
152
- }
153
- }
154
- else if (position === 'z') {
155
- if (value >= this.positionZMin && value <= this.positionZMax) {
156
- fixture.positionZ = +value;
157
- }
158
- }
159
- }
160
- }
161
- changeRotationManual(rotation, value) {
162
- if (isNaN(value) || value < this.rotationMin || value > this.rotationMax) {
163
- return;
164
- }
165
- if (rotation === 'x') {
166
- this.rotationX = +value;
167
- }
168
- else if (rotation === 'y') {
169
- this.rotationY = +value;
170
- }
171
- else if (rotation === 'z') {
172
- this.rotationZ = +value;
173
- }
174
- for (const fixture of this.fixtureService.selectedSettingsFixtures) {
175
- if (rotation === 'x') {
176
- fixture.rotationX = +value;
177
- }
178
- else if (rotation === 'y') {
179
- fixture.rotationY = +value;
180
- }
181
- else if (rotation === 'z') {
182
- fixture.rotationZ = +value;
183
- }
184
- }
185
- }
186
- };
187
- FixtureSettingsPositionComponent.ctorParameters = () => [
188
- { type: FixtureService },
189
- { type: PresetService }
190
- ];
191
- FixtureSettingsPositionComponent = __decorate([
192
- Component({
193
- selector: 'lib-app-fixture-settings-position',
194
- template: "<div class=\"card border-secondary h-100\">\n <div class=\"card-header\">\n {{ 'designer.fixture.setting-position-title' | translate }}\n </div>\n\n <div *ngIf=\"fixtureService.selectedSettingsFixtures.length > 0\" class=\"card-body h-100\">\n <div>\n <select class=\"mb-2\" style=\"width: 140px\" [(ngModel)]=\"selectedPositioning\" (change)=\"changePosition($event.target.value)\">\n <option [ngValue]=\"selectUndefinedOptionValue\"></option>\n <option value=\"topFront\">{{ 'designer.fixture.setting-position-front-top' | translate }}</option>\n <option value=\"bottomFront\">{{ 'designer.fixture.setting-position-front-bottom' | translate }}</option>\n <option value=\"topBack\">{{ 'designer.fixture.setting-position-back-top' | translate }}</option>\n <option value=\"bottomBack\">{{ 'designer.fixture.setting-position-back-bottom' | translate }}</option>\n <option value=\"manual\">{{ 'designer.fixture.setting-position-manual' | translate }}</option>\n </select>\n </div>\n\n <div *ngIf=\"selectedPositioning == 'manual'\">\n <div>{{ 'designer.fixture.setting-position' | translate }}</div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">X</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px\"\n [tooltip]=\"'hide'\"\n [value]=\"positionX ? positionX : (positionXMax + positionXMin) / 2\"\n [min]=\"positionXMin\"\n [max]=\"positionXMax\"\n [step]=\"1\"\n (change)=\"changePositionManual('x', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"positionX\" (ngModelChange)=\"changePositionManual('x', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">Y</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px; height: 18px\"\n [tooltip]=\"'hide'\"\n [value]=\"positionZ ? positionZ : (positionZMax + positionZMin) / 2\"\n [min]=\"positionZMin\"\n [max]=\"positionZMax\"\n [step]=\"1\"\n (change)=\"changePositionManual('z', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"positionZ\" (ngModelChange)=\"changePositionManual('z', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">Z</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px\"\n [tooltip]=\"'hide'\"\n [value]=\"positionY ? positionY : (positionYMax + positionYMin) / 2\"\n [min]=\"positionYMin\"\n [max]=\"positionYMax\"\n [step]=\"1\"\n (change)=\"changePositionManual('y', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"positionY\" (ngModelChange)=\"changePositionManual('y', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n\n <div class=\"mt-2\">{{ 'designer.fixture.setting-rotation' | translate }}</div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">X</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px\"\n [tooltip]=\"'hide'\"\n [value]=\"rotationX ? rotationX : (rotationMin + rotationMax) / 2\"\n [min]=\"rotationMin\"\n [max]=\"rotationMax\"\n [step]=\"1\"\n (change)=\"changeRotationManual('x', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"rotationX\" (ngModelChange)=\"changeRotationManual('x', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">Y</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px; height: 18px\"\n [tooltip]=\"'hide'\"\n [value]=\"rotationZ ? rotationZ : (rotationMin + rotationMax) / 2\"\n [min]=\"rotationMin\"\n [max]=\"rotationMax\"\n [step]=\"1\"\n (change)=\"changeRotationManual('z', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"rotationZ\" (ngModelChange)=\"changeRotationManual('z', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">Z</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px\"\n [tooltip]=\"'hide'\"\n [value]=\"rotationY ? rotationY : (rotationMin + rotationMax) / 2\"\n [min]=\"rotationMin\"\n [max]=\"rotationMax\"\n [step]=\"1\"\n (change)=\"changeRotationManual('y', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"rotationY\" (ngModelChange)=\"changeRotationManual('y', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"fixtureService.selectedSettingsFixtures.length == 0\" class=\"card-body h-100 d-flex\">\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures-settings-selected' | translate }}</p>\n </div>\n</div>\n",
195
- styles: [""]
196
- }),
197
- __metadata("design:paramtypes", [FixtureService, PresetService])
198
- ], FixtureSettingsPositionComponent);
199
- export { FixtureSettingsPositionComponent };
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi9maXh0dXJlL2ZpeHR1cmUtc2V0dGluZ3MvZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbi9maXh0dXJlLXNldHRpbmdzLXBvc2l0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU9qRSxJQUFhLGdDQUFnQyxHQUE3QyxNQUFhLGdDQUFnQztJQXVCM0MsWUFBbUIsY0FBOEIsRUFBVSxhQUE0QjtRQUFwRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXRCdkYsK0JBQTBCLEdBQVEsU0FBUyxDQUFDO1FBRTVDLHdCQUFtQixHQUFXLFNBQVMsQ0FBQztRQUV4QyxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFFZCxpQkFBWSxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDcEIsaUJBQVksR0FBRyxHQUFHLENBQUM7UUFFbkIsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxjQUFTLEdBQUcsQ0FBQyxD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bSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3NpdGlvbmluZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maXh0dXJlJztcbmltcG9ydCB7IEZpeHR1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZml4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hcHAtZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maXh0dXJlLXNldHRpbmdzLXBvc2l0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbi5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpeHR1cmVTZXR0aW5nc1Bvc2l0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc2VsZWN0VW5kZWZpbmVkT3B0aW9uVmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcblxuICBzZWxlY3RlZFBvc2l0aW9uaW5nOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgcG9zaXRpb25YID0gMDtcbiAgcG9zaXRpb25ZID0gMDtcbiAgcG9zaXRpb25aID0gMDtcblxuICBwb3NpdGlvblhNaW4gPSAtNDAwO1xuICBwb3NpdGlvblhNYXggPSA0MDA7XG4gIHBvc2l0aW9uWU1pbiA9IDA7XG4gIHBvc2l0aW9uWU1heCA9IDQwMDtcbiAgcG9zaXRpb25aTWluID0gLTQwMDtcbiAgcG9zaXRpb25aTWF4ID0gNDAwO1xuXG4gIHJvdGF0aW9uWCA9IDA7XG4gIHJvdGF0aW9uWSA9IDA7XG4gIHJvdGF0aW9uWiA9IDA7XG5cbiAgcm90YXRpb25NaW4gPSAwO1xuICByb3RhdGlvbk1heCA9IDM2MDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLCBwcml2YXRlIHByZXNldFNlcnZpY2U6IFByZXNldFNlcnZpY2UpIHtcbiAgICBwcmVzZXRTZXJ2aWNlLmZpeHR1cmVTZWxlY3Rpb25TZXR0aW5nc0NoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3Rpb24oKSB7XG4gICAgLy8gZ2V0IGFsbCBkaXNwbGF5IHZhbHVlcyBmb3IgdGhlIHNlbGVjdGVkIHNldHRpbmdzIGZpeHR1cmVzXG4gICAgdGhpcy5zZWxlY3RlZFBvc2l0aW9uaW5nID0gdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5wb3NpdGlvblggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wb3NpdGlvblkgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wb3NpdGlvblogPSB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnJvdGF0aW9uWCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJvdGF0aW9uWSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJvdGF0aW9uWiA9IHVuZGVmaW5lZDtcblxuICAgIGZvciAoY29uc3QgZml4dHVyZSBvZiB0aGlzLmZpeHR1cmVTZXJ2aWNlLnNlbGVjdGVkU2V0dGluZ3NGaXh0dXJlcykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRQb3NpdGlvbmluZykge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFBvc2l0aW9uaW5nICE9PSBmaXh0dXJlLnBvc2l0aW9uaW5nKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBvc2l0aW9uaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUG9zaXRpb25pbmcgPSBmaXh0dXJlLnBvc2l0aW9uaW5nO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgdGhpcy5maXh0dXJlU2VydmljZS5zZWxlY3RlZFNldHRpbmdzRml4dHVyZXMpIHtcbiAgICAgIGlmICh0aGlzLnBvc2l0aW9uWCkge1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvblggIT09IGZpeHR1cmUucG9zaXRpb25YKSB7XG4gICAgICAgICAgdGhpcy5wb3NpdGlvblggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucG9zaXRpb25YID0gZml4dHVyZS5wb3NpdGlvblg7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgZml4dHVyZSBvZiB0aGlzLmZpeHR1cmVTZXJ2aWNlLnNlbGVjdGVkU2V0dGluZ3NGaXh0dXJlcykge1xuICAgICAgaWYgKHRoaXMucG9zaXRpb25ZKSB7XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uWSAhPT0gZml4dHVyZS5wb3NpdGlvblkpIHtcbiAgICAgICAgICB0aGlzLnBvc2l0aW9uWSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblkgPSBmaXh0dXJlLnBvc2l0aW9uWTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBmaXh0dXJlIG9mIHRoaXMuZml4dHVyZVNlcnZpY2Uuc2VsZWN0ZWRTZXR0aW5nc0ZpeHR1cmVzKSB7XG4gICAgICBpZiAodGhpcy5wb3NpdGlvblopIHtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb25aICE9PSBmaXh0dXJlLnBvc2l0aW9uWikge1xuICAgICAgICAgIHRoaXMucG9zaXRpb25aID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBvc2l0aW9uWiA9IGZpeHR1cmUucG9zaXRpb25aO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgdGhpcy5maXh0dXJlU2VydmljZS5zZWxlY3RlZFNldHRpbmdzRml4dHVyZXMpIHtcbiAgICAgIGlmICh0aGlzLnJvdGF0aW9uWCkge1xuICAgICAgICBpZiAodGhpcy5yb3RhdGlvblggIT09IGZpeHR1cmUucm90YXRpb25YKSB7XG4gICAgICAgICAgdGhpcy5yb3RhdGlvblggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm90YXRpb25YID0gZml4dHVyZS5yb3RhdGlvblg7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgZml4dHVyZSBvZiB0aGlzLmZpeHR1cmVTZXJ2aWNlLnNlbGVjdGVkU2V0dGluZ3NGaXh0dXJlcykge1xuICAgICAgaWYgKHRoaXMucm90YXRpb25ZKSB7XG4gICAgICAgIGlmICh0aGlzLnJvdGF0aW9uWSAhPT0gZml4dHVyZS5yb3RhdGlvblkpIHtcbiAgICAgICAgICB0aGlzLnJvdGF0aW9uWSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3RhdGlvblkgPSBmaXh0dXJlLnJvdGF0aW9uWTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBmaXh0dXJlIG9mIHRoaXMuZml4dHVyZVNlcnZpY2Uuc2VsZWN0ZWRTZXR0aW5nc0ZpeHR1cmVzKSB7XG4gICAgICBpZiAodGhpcy5yb3RhdGlvblopIHtcbiAgICAgICAgaWYgKHRoaXMucm90YXRpb25aICE9PSBmaXh0dXJlLnJvdGF0aW9uWikge1xuICAgICAgICAgIHRoaXMucm90YXRpb25aID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdGF0aW9uWiA9IGZpeHR1cmUucm90YXRpb25aO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVBvc2l0aW9uKHBvc2l0aW9uaW5nU3RyOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb3NpdGlvbmluZzogUG9zaXRpb25pbmcgPSBQb3NpdGlvbmluZ1twb3NpdGlvbmluZ1N0cl07XG5cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgdGhpcy5maXh0dXJlU2VydmljZS5zZWxlY3RlZFNldHRpbmdzRml4dHVyZXMpIHtcbiAgICAgIGZpeHR1cmUucG9zaXRpb25pbmcgPSBwb3NpdGlvbmluZztcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VQb3NpdGlvbk1hbnVhbChwb3NpdGlvbjogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwb3NpdGlvbiA9PT0gJ3gnKSB7XG4gICAgICBpZiAodmFsdWUgPj0gdGhpcy5wb3NpdGlvblhNaW4gJiYgdmFsdWUgPD0gdGhpcy5wb3NpdGlvblhNYXgpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblggPSArdmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ3knKSB7XG4gICAgICBpZiAodmFsdWUgPj0gdGhpcy5wb3NpdGlvbllNaW4gJiYgdmFsdWUgPD0gdGhpcy5wb3NpdGlvbllNYXgpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblkgPSArdmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ3onKSB7XG4gICAgICBpZiAodmFsdWUgPj0gdGhpcy5wb3NpdGlvblpNaW4gJiYgdmFsdWUgPD0gdGhpcy5wb3NpdGlvblpNYXgpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblogPSArdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBmaXh0dXJlIG9mIHRoaXMuZml4dHVyZVNlcnZpY2Uuc2VsZWN0ZWRTZXR0aW5nc0ZpeHR1cmVzKSB7XG4gICAgICBpZiAocG9zaXRpb24gPT09ICd4Jykge1xuICAgICAgICBpZiAodmFsdWUgPj0gdGhpcy5wb3NpdGlvblhNaW4gJiYgdmFsdWUgPD0gdGhpcy5wb3NpdGlvblhNYXgpIHtcbiAgICAgICAgICBmaXh0dXJlLnBvc2l0aW9uWCA9ICt2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ3knKSB7XG4gICAgICAgIGlmICh2YWx1ZSA+PSB0aGlzLnBvc2l0aW9uWU1pbiAmJiB2YWx1ZSA8PSB0aGlzLnBvc2l0aW9uWU1heCkge1xuICAgICAgICAgIGZpeHR1cmUucG9zaXRpb25ZID0gK3ZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAneicpIHtcbiAgICAgICAgaWYgKHZhbHVlID49IHRoaXMucG9zaXRpb25aTWluICYmIHZhbHVlIDw9IHRoaXMucG9zaXRpb25aTWF4KSB7XG4gICAgICAgICAgZml4dHVyZS5wb3NpdGlvblogPSArdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGFuZ2VSb3RhdGlvbk1hbnVhbChyb3RhdGlvbjogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA8IHRoaXMucm90YXRpb25NaW4gfHwgdmFsdWUgPiB0aGlzLnJvdGF0aW9uTWF4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHJvdGF0aW9uID09PSAneCcpIHtcbiAgICAgIHRoaXMucm90YXRpb25YID0gK3ZhbHVlO1xuICAgIH0gZWxzZSBpZiAocm90YXRpb24gPT09ICd5Jykge1xuICAgICAgdGhpcy5yb3RhdGlvblkgPSArdmFsdWU7XG4gICAgfSBlbHNlIGlmIChyb3RhdGlvbiA9PT0gJ3onKSB7XG4gICAgICB0aGlzLnJvdGF0aW9uWiA9ICt2YWx1ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgdGhpcy5maXh0dXJlU2VydmljZS5zZWxlY3RlZFNldHRpbmdzRml4dHVyZXMpIHtcbiAgICAgIGlmIChyb3RhdGlvbiA9PT0gJ3gnKSB7XG4gICAgICAgIGZpeHR1cmUucm90YXRpb25YID0gK3ZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChyb3RhdGlvbiA9PT0gJ3knKSB7XG4gICAgICAgIGZpeHR1cmUucm90YXRpb25ZID0gK3ZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChyb3RhdGlvbiA9PT0gJ3onKSB7XG4gICAgICAgIGZpeHR1cmUucm90YXRpb25aID0gK3ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,31 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectorRef, Component, OnInit } from '@angular/core';
3
- import { PreviewService } from '../../../services/preview.service';
4
- import { ProjectService } from '../../../services/project.service';
5
- let FixtureSettingsStageComponent = class FixtureSettingsStageComponent {
6
- constructor(projectService, previewService, changeDetectorRef) {
7
- this.projectService = projectService;
8
- this.previewService = previewService;
9
- this.changeDetectorRef = changeDetectorRef;
10
- }
11
- ngOnInit() { }
12
- update() {
13
- this.previewService.updateStage();
14
- this.changeDetectorRef.detectChanges();
15
- }
16
- };
17
- FixtureSettingsStageComponent.ctorParameters = () => [
18
- { type: ProjectService },
19
- { type: PreviewService },
20
- { type: ChangeDetectorRef }
21
- ];
22
- FixtureSettingsStageComponent = __decorate([
23
- Component({
24
- selector: 'lib-app-fixture-settings-stage',
25
- template: "<div class=\"card border-secondary h-100\">\n <div class=\"card-header\">\n {{ 'designer.fixture.setting-stage' | translate }}\n </div>\n\n <div class=\"card-body h-100\">\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-width' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageWidthCm\"\n [min]=\"100\"\n [max]=\"2000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageWidthCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageWidthCm\"\n (ngModelChange)=\"projectService.project.stageWidthCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-height' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageHeightCm\"\n [min]=\"100\"\n [max]=\"2000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageHeightCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageHeightCm\"\n (ngModelChange)=\"projectService.project.stageHeightCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-depth' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageDepthCm\"\n [min]=\"100\"\n [max]=\"2000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageDepthCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageDepthCm\"\n (ngModelChange)=\"projectService.project.stageDepthCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-floor-height' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageFloorHeightCm\"\n [min]=\"1\"\n [max]=\"1000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageFloorHeightCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageFloorHeightCm\"\n (ngModelChange)=\"projectService.project.stageFloorHeightCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-ceiling-height' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageCeilingHeightCm\"\n [min]=\"1\"\n [max]=\"1000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageCeilingHeightCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageCeilingHeightCm\"\n (ngModelChange)=\"projectService.project.stageCeilingHeightCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-pillar-width' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stagePillarWidthCm\"\n [min]=\"1\"\n [max]=\"200\"\n [step]=\"5\"\n (change)=\"projectService.project.stagePillarWidthCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stagePillarWidthCm\"\n (ngModelChange)=\"projectService.project.stagePillarWidthCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n </div>\n</div>\n",
26
- styles: [""]
27
- }),
28
- __metadata("design:paramtypes", [ProjectService, PreviewService, ChangeDetectorRef])
29
- ], FixtureSettingsStageComponent);
30
- export { FixtureSettingsStageComponent };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1zZXR0aW5ncy1zdGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi9maXh0dXJlL2ZpeHR1cmUtc2V0dGluZ3MvZml4dHVyZS1zZXR0aW5ncy1zdGFnZS9maXh0dXJlLXNldHRpbmdzLXN0YWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU9uRSxJQUFhLDZCQUE2QixHQUExQyxNQUFhLDZCQUE2QjtJQUN4QyxZQUFtQixjQUE4QixFQUFTLGNBQThCLEVBQVUsaUJBQW9DO1FBQW5ILG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFTLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBRyxDQUFDO0lBRTFJLFFBQVEsS0FBSSxDQUFDO0lBRWIsTUFBTTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FDRixDQUFBOztZQVJvQyxjQUFjO1lBQXlCLGNBQWM7WUFBNkIsaUJBQWlCOztBQUQzSCw2QkFBNkI7SUFMekMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGdDQUFnQztRQUMxQyw4Z01BQXNEOztLQUV2RCxDQUFDO3FDQUVtQyxjQUFjLEVBQXlCLGNBQWMsRUFBNkIsaUJBQWlCO0dBRDNILDZCQUE2QixDQVN6QztTQVRZLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJldmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmV2aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9qZWN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLWZpeHR1cmUtc2V0dGluZ3Mtc3RhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZml4dHVyZS1zZXR0aW5ncy1zdGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpeHR1cmUtc2V0dGluZ3Mtc3RhZ2UuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGaXh0dXJlU2V0dGluZ3NTdGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsIHB1YmxpYyBwcmV2aWV3U2VydmljZTogUHJldmlld1NlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICB1cGRhdGUoKSB7XG4gICAgdGhpcy5wcmV2aWV3U2VydmljZS51cGRhdGVTdGFnZSgpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iXX0=
@@ -1,35 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component } from '@angular/core';
3
- import { FixtureService } from '../../services/fixture.service';
4
- import { PresetService } from '../../services/preset.service';
5
- let FixtureSettingsComponent = class FixtureSettingsComponent {
6
- constructor(fixtureService, presetService) {
7
- this.fixtureService = fixtureService;
8
- this.presetService = presetService;
9
- this.dmxChannels = [];
10
- for (let i = 0; i < 512; i++) {
11
- this.dmxChannels.push(0);
12
- }
13
- }
14
- ngOnInit() { }
15
- isChrome() {
16
- if (navigator.appVersion.indexOf('Chrome/') !== -1) {
17
- return true;
18
- }
19
- return false;
20
- }
21
- };
22
- FixtureSettingsComponent.ctorParameters = () => [
23
- { type: FixtureService },
24
- { type: PresetService }
25
- ];
26
- FixtureSettingsComponent = __decorate([
27
- Component({
28
- selector: 'lib-app-fixture-settings',
29
- template: "<div class=\"card border-secondary panel h-100\">\n <div class=\"card-body capability-container d-flex h-100\" style=\"overflow-y: hidden\">\n <!-- h-100 needs to be applied in chrome to avoid performance issues with many layouts (reflows)\n during sliding. But the class must not be applied e.g. in Safari, because the bottom margin is not correct\n anymore afterwards. -->\n <div class=\"row m-0 pl-3\" [class.h-100]=\"isChrome()\">\n <!-- Position -->\n <div class=\"col col-auto p-0 my-3 mr-3\">\n <lib-app-fixture-settings-position></lib-app-fixture-settings-position>\n </div>\n\n <!-- Stage -->\n <div class=\"col col-auto p-0 my-3 mr-3\">\n <lib-app-fixture-settings-stage></lib-app-fixture-settings-stage>\n </div>\n\n <!-- Fix spacing at the end -->\n <div class=\"col col-auto p-0 my-3 mr-3\">&nbsp;</div>\n </div>\n </div>\n</div>\n",
30
- styles: [".dmx-channel{display:flex;float:left;width:28px;border:1px solid #fff;margin-left:-1px;margin-bottom:-1px}.dmx-channel-occupied{background-color:#fd7e14;border-left:none;border-right:none;cursor:move}.dmx-channel-occupied-start{border-left:1px solid #fff}.dmx-channel-occupied-end{border-right:1px solid #fff}"]
31
- }),
32
- __metadata("design:paramtypes", [FixtureService, PresetService])
33
- ], FixtureSettingsComponent);
34
- export { FixtureSettingsComponent };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi9maXh0dXJlL2ZpeHR1cmUtc2V0dGluZ3MvZml4dHVyZS1zZXR0aW5ncy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU85RCxJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtJQUduQyxZQUFvQixjQUE4QixFQUFTLGFBQTRCO1FBQW5FLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRnZGLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBR3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsUUFBUSxLQUFJLENBQUM7SUFFYixRQUFRO1FBQ04sSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTs7WUFkcUMsY0FBYztZQUF3QixhQUFhOztBQUg1RSx3QkFBd0I7SUFMcEMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLDBCQUEwQjtRQUNwQyxtNkJBQWdEOztLQUVqRCxDQUFDO3FDQUlvQyxjQUFjLEVBQXdCLGFBQWE7R0FINUUsd0JBQXdCLENBaUJwQztTQWpCWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRml4dHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maXh0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ByZXNldC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFwcC1maXh0dXJlLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpeHR1cmUtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maXh0dXJlLXNldHRpbmdzLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRml4dHVyZVNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZG14Q2hhbm5lbHM6IG51bWJlcltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaXh0dXJlU2VydmljZTogRml4dHVyZVNlcnZpY2UsIHB1YmxpYyBwcmVzZXRTZXJ2aWNlOiBQcmVzZXRTZXJ2aWNlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MTI7IGkrKykge1xuICAgICAgdGhpcy5kbXhDaGFubmVscy5wdXNoKDApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge31cblxuICBpc0Nocm9tZSgpOiBib29sZWFuIHtcbiAgICBpZiAobmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZignQ2hyb21lLycpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
@@ -1,70 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component } from '@angular/core';
3
- import { FixturePoolService } from '../services/fixture-pool.service';
4
- import { FixtureService } from '../services/fixture.service';
5
- import { IntroService } from '../services/intro.service';
6
- import { PresetService } from '../services/preset.service';
7
- import { ProjectService } from '../services/project.service';
8
- let FixtureComponent = class FixtureComponent {
9
- constructor(projectService, presetService, fixturePoolService, fixtureService, introService) {
10
- this.projectService = projectService;
11
- this.presetService = presetService;
12
- this.fixturePoolService = fixturePoolService;
13
- this.fixtureService = fixtureService;
14
- this.introService = introService;
15
- }
16
- ngOnInit() { }
17
- fixtureIsSelected(fixture) {
18
- if (this.fixtureService.settingsSelection) {
19
- return this.fixtureService.settingsFixtureIsSelected(fixture);
20
- }
21
- else {
22
- return this.presetService.fixtureIsSelected(fixture);
23
- }
24
- }
25
- selectFixture(event, fixture) {
26
- if (this.fixtureService.settingsSelection) {
27
- // select fixtures for the settings
28
- this.fixtureService.switchSettingsFixtureSelection(fixture);
29
- this.presetService.fixtureSelectionSettingsChanged.next();
30
- }
31
- else {
32
- // select fixtures for the current preset
33
- this.presetService.switchFixtureSelection(fixture);
34
- this.presetService.fixtureSelectionChanged.next();
35
- this.presetService.previewLive();
36
- }
37
- }
38
- selectAll() {
39
- this.presetService.selectAllFixtures();
40
- this.presetService.fixtureSelectionChanged.next();
41
- }
42
- selectNone() {
43
- this.presetService.selectNoFixtures();
44
- this.presetService.fixtureSelectionChanged.next();
45
- }
46
- openFixturePool() {
47
- this.fixturePoolService.open();
48
- }
49
- };
50
- FixtureComponent.ctorParameters = () => [
51
- { type: ProjectService },
52
- { type: PresetService },
53
- { type: FixturePoolService },
54
- { type: FixtureService },
55
- { type: IntroService }
56
- ];
57
- FixtureComponent = __decorate([
58
- Component({
59
- selector: 'lib-app-fixture',
60
- template: "<div class=\"card border-secondary h-100 panel\" [class.card-intro-active]=\"introService.showStep('fixtures')\">\n <div class=\"card-header d-flex\">\n <div>Fixtures</div>\n <div class=\"ml-auto\">\n <a href=\"#\" class=\"btn btn-secondary m-0, p-0\" (click)=\"selectNone(); (false)\"\n ><i class=\"fa fa-square-o fa-fw\" aria-hidden=\"true\"></i\n ></a>\n <a href=\"#\" class=\"btn btn-secondary m-0, p-0\" (click)=\"selectAll(); (false)\"\n ><i class=\"fa fa-check-square-o fa-fw\" aria-hidden=\"true\"></i\n ></a>\n <a href=\"#\" class=\"btn btn-secondary m-0, p-0\" (click)=\"openFixturePool(); (false)\"\n ><i class=\"fa fa-cog fa-fw\" aria-hidden=\"true\"></i\n ></a>\n </div>\n </div>\n\n <div class=\"card-body h-100 p-0\">\n <!-- List of fixtures -->\n <div *ngIf=\"presetService.selectedPreset\" class=\"list-group\" [sortablejs]=\"projectService.project.fixtures\">\n <div\n class=\"list-group-item\"\n *ngFor=\"let item of projectService.project.fixtures\"\n [class.inactive-list-item]=\"!fixtureIsSelected(item)\"\n >\n <div class=\"row d-flex\" (click)=\"selectFixture($event, item)\" style=\"cursor: pointer\">\n <div class=\"col-auto list-sort-handle my-auto\" style=\"cursor: move; cursor: -webkit-grabbing\">\n <i class=\"fa fa-bars\" aria-hidden=\"true\"></i>\n </div>\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"active\" [ngModel]=\"fixtureIsSelected(item)\" />\n </div>\n <div>\n <span class=\"icon-{{ fixtureService.getFixtureIconClass(fixtureService.getProfileByUuid(item.profileUuid)) }} mr-1\"></span>\n {{ item.name }}\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"projectService.project.fixtures.length == 0\" class=\"w-100 h-100 d-flex p-3 text-center\">\n <a href=\"#\" class=\"m-auto\" (click)=\"openFixturePool(); (false)\"\n ><i class=\"fa fa-plus-circle fa-fw\" aria-hidden=\"true\"></i> {{ 'designer.fixture.no-fixtures' | translate }}</a\n >\n </div>\n </div>\n</div>\n",
61
- styles: [""]
62
- }),
63
- __metadata("design:paramtypes", [ProjectService,
64
- PresetService,
65
- FixturePoolService,
66
- FixtureService,
67
- IntroService])
68
- ], FixtureComponent);
69
- export { FixtureComponent };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi9maXh0dXJlL2ZpeHR1cmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU83RCxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQUMzQixZQUNTLGNBQThCLEVBQzlCLGFBQTRCLEVBQzNCLGtCQUFzQyxFQUN2QyxjQUE4QixFQUM5QixZQUEwQjtRQUoxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN2QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFDaEMsQ0FBQztJQUVKLFFBQVEsS0FBSSxDQUFDO0lBRWIsaUJBQWlCLENBQUMsT0FBZ0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvRDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVLEVBQUUsT0FBZ0I7UUFDeEMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFO1lBQ3pDLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0Q7YUFBTTtZQUNMLHlDQUF5QztZQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0NBQ0YsQ0FBQTs7WUEzQzBCLGNBQWM7WUFDZixhQUFhO1lBQ1Asa0JBQWtCO1lBQ3ZCLGNBQWM7WUFDaEIsWUFBWTs7QUFOeEIsZ0JBQWdCO0lBTDVCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxpQkFBaUI7UUFDM0Isb3FFQUF1Qzs7S0FFeEMsQ0FBQztxQ0FHeUIsY0FBYztRQUNmLGFBQWE7UUFDUCxrQkFBa0I7UUFDdkIsY0FBYztRQUNoQixZQUFZO0dBTnhCLGdCQUFnQixDQTZDNUI7U0E3Q1ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpeHR1cmUgfSBmcm9tICcuLi9tb2RlbHMvZml4dHVyZSc7XG5pbXBvcnQgeyBGaXh0dXJlUG9vbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maXh0dXJlLXBvb2wuc2VydmljZSc7XG5pbXBvcnQgeyBGaXh0dXJlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBJbnRyb1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbnRyby5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcmVzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Byb2plY3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hcHAtZml4dHVyZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9maXh0dXJlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZml4dHVyZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpeHR1cmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcHJvamVjdFNlcnZpY2U6IFByb2plY3RTZXJ2aWNlLFxuICAgIHB1YmxpYyBwcmVzZXRTZXJ2aWNlOiBQcmVzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZml4dHVyZVBvb2xTZXJ2aWNlOiBGaXh0dXJlUG9vbFNlcnZpY2UsXG4gICAgcHVibGljIGZpeHR1cmVTZXJ2aWNlOiBGaXh0dXJlU2VydmljZSxcbiAgICBwdWJsaWMgaW50cm9TZXJ2aWNlOiBJbnRyb1NlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBmaXh0dXJlSXNTZWxlY3RlZChmaXh0dXJlOiBGaXh0dXJlKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZml4dHVyZVNlcnZpY2Uuc2V0dGluZ3NTZWxlY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpeHR1cmVTZXJ2aWNlLnNldHRpbmdzRml4dHVyZUlzU2VsZWN0ZWQoZml4dHVyZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnByZXNldFNlcnZpY2UuZml4dHVyZUlzU2VsZWN0ZWQoZml4dHVyZSk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Rml4dHVyZShldmVudDogYW55LCBmaXh0dXJlOiBGaXh0dXJlKSB7XG4gICAgaWYgKHRoaXMuZml4dHVyZVNlcnZpY2Uuc2V0dGluZ3NTZWxlY3Rpb24pIHtcbiAgICAgIC8vIHNlbGVjdCBmaXh0dXJlcyBmb3IgdGhlIHNldHRpbmdzXG4gICAgICB0aGlzLmZpeHR1cmVTZXJ2aWNlLnN3aXRjaFNldHRpbmdzRml4dHVyZVNlbGVjdGlvbihmaXh0dXJlKTtcbiAgICAgIHRoaXMucHJlc2V0U2VydmljZS5maXh0dXJlU2VsZWN0aW9uU2V0dGluZ3NDaGFuZ2VkLm5leHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc2VsZWN0IGZpeHR1cmVzIGZvciB0aGUgY3VycmVudCBwcmVzZXRcbiAgICAgIHRoaXMucHJlc2V0U2VydmljZS5zd2l0Y2hGaXh0dXJlU2VsZWN0aW9uKGZpeHR1cmUpO1xuICAgICAgdGhpcy5wcmVzZXRTZXJ2aWNlLmZpeHR1cmVTZWxlY3Rpb25DaGFuZ2VkLm5leHQoKTtcbiAgICAgIHRoaXMucHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0QWxsRml4dHVyZXMoKTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2UuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWQubmV4dCgpO1xuICB9XG5cbiAgc2VsZWN0Tm9uZSgpIHtcbiAgICB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0Tm9GaXh0dXJlcygpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5maXh0dXJlU2VsZWN0aW9uQ2hhbmdlZC5uZXh0KCk7XG4gIH1cblxuICBvcGVuRml4dHVyZVBvb2woKSB7XG4gICAgdGhpcy5maXh0dXJlUG9vbFNlcnZpY2Uub3BlbigpO1xuICB9XG59XG4iXX0=
@@ -1,128 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, HostListener } from '@angular/core';
3
- import { TranslateService } from '@ngx-translate/core';
4
- import { BsModalRef } from 'ngx-bootstrap/modal';
5
- import { ToastrService } from 'ngx-toastr';
6
- import { Subject } from 'rxjs';
7
- import { map } from 'rxjs/operators';
8
- import { FixtureProfile } from '../../models/fixture-profile';
9
- import { FixtureService } from '../../services/fixture.service';
10
- import { ProjectService } from '../../services/project.service';
11
- let FixturePoolCreateFromFileComponent = class FixturePoolCreateFromFileComponent {
12
- constructor(bsModalRef, translateService, toastrService, fixtureService, projectService) {
13
- this.bsModalRef = bsModalRef;
14
- this.translateService = translateService;
15
- this.toastrService = toastrService;
16
- this.fixtureService = fixtureService;
17
- this.projectService = projectService;
18
- this.onClose = new Subject();
19
- }
20
- ngOnInit() {
21
- this.dropzoneConfig = {
22
- url: 'dummy',
23
- addRemoveLinks: false,
24
- maxFilesize: 10 /* 10 MB */,
25
- acceptedFiles: '.json',
26
- timeout: 0,
27
- accept: (file, done) => {
28
- const reader = new FileReader();
29
- reader.addEventListener('loadend', (event) => {
30
- // validate the file
31
- const text = event.target.result;
32
- const json = JSON.parse(text);
33
- if (json['$schema'].match('https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/schema-(.*)/schemas/fixture.json')) {
34
- // create the metadata from the file. we don't have the corresponding
35
- // manufacturer-file, therefore we just assume the attributes from the
36
- // fixture-file.
37
- const manufacturerShortName = json['manufacturerKey'];
38
- const manufacturerName = manufacturerShortName;
39
- const uuid = manufacturerShortName + '/' + json['fixtureKey'];
40
- const profile = new FixtureProfile(json);
41
- profile.manufacturerShortName = manufacturerShortName;
42
- profile.manufacturerName = manufacturerName;
43
- profile.uuid = uuid;
44
- profile.createdFromFile = true;
45
- // add the profile to the project, if not already added
46
- const loadedProfile = this.fixtureService.getProfileByUuid(uuid);
47
- if (!loadedProfile) {
48
- this.projectService.project.fixtureProfiles.push(profile);
49
- }
50
- // add a new fixture from this profile
51
- this.onClose.next(profile);
52
- this.bsModalRef.hide();
53
- }
54
- else {
55
- // show an error toast
56
- const msg = 'designer.fixture-pool.invalid-fixture-profile-file';
57
- const title = 'designer.misc.toast-upload-error-title';
58
- this.translateService.get([msg, title]).subscribe((result) => {
59
- this.toastrService.error(result[msg], result[title], { timeOut: 0, extendedTimeOut: 0, enableHtml: true });
60
- });
61
- }
62
- done('noerr');
63
- });
64
- reader.readAsText(file);
65
- },
66
- previewTemplate: `
67
- <div style="display: none;">
68
- <!-- No preview -->
69
- </div>
70
- `,
71
- };
72
- this.translateService
73
- .get('designer.misc.dropzone-message')
74
- .pipe(map((result) => {
75
- this.uploadMessage = '<h3 class="mb-0"><i class="fa fa-cloud-upload"></i></h3>' + result;
76
- }))
77
- .subscribe();
78
- }
79
- onUploadError(args) {
80
- if (args[1] === 'noerr') {
81
- // this error is set in the accept event listener -> everything OK
82
- return;
83
- }
84
- const msg = 'designer.misc.toast-upload-error';
85
- const title = 'designer.misc.toast-upload-error-title';
86
- this.translateService.get([msg, title]).subscribe((result) => {
87
- this.toastrService.error(result[msg] + args[1], result[title], { timeOut: 0, extendedTimeOut: 0, enableHtml: true });
88
- });
89
- }
90
- ok() {
91
- this.onClose.next(undefined);
92
- this.bsModalRef.hide();
93
- }
94
- cancel() {
95
- this.onClose.next(undefined);
96
- this.bsModalRef.hide();
97
- }
98
- handleKeyboardEvent(event) {
99
- this.ok();
100
- }
101
- };
102
- FixturePoolCreateFromFileComponent.ctorParameters = () => [
103
- { type: BsModalRef },
104
- { type: TranslateService },
105
- { type: ToastrService },
106
- { type: FixtureService },
107
- { type: ProjectService }
108
- ];
109
- __decorate([
110
- HostListener('document:keydown.enter', ['$event']),
111
- __metadata("design:type", Function),
112
- __metadata("design:paramtypes", [Object]),
113
- __metadata("design:returntype", void 0)
114
- ], FixturePoolCreateFromFileComponent.prototype, "handleKeyboardEvent", null);
115
- FixturePoolCreateFromFileComponent = __decorate([
116
- Component({
117
- selector: 'lib-fixture-pool-create-from-file',
118
- template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ 'designer.fixture-pool.create-fixture-from-profile-file-dialog-title' | 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 <!-- Dropzone -->\n <dropzone [config]=\"dropzoneConfig\" [useDropzoneClass]=\"'false'\" [message]=\"uploadMessage\" (error)=\"onUploadError($event)\"></dropzone>\n</div>\n<div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"ok()\">{{ 'designer.misc.ok' | translate }}</button>\n</div>\n",
119
- styles: [""]
120
- }),
121
- __metadata("design:paramtypes", [BsModalRef,
122
- TranslateService,
123
- ToastrService,
124
- FixtureService,
125
- ProjectService])
126
- ], FixturePoolCreateFromFileComponent);
127
- export { FixturePoolCreateFromFileComponent };
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1wb29sLWNyZWF0ZS1mcm9tLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJvY2tldHNob3cvZGVzaWduZXIvIiwic291cmNlcyI6WyJsaWIvZml4dHVyZS1wb29sL2ZpeHR1cmUtcG9vbC1jcmVhdGUtZnJvbS1maWxlL2ZpeHR1cmUtcG9vbC1jcmVhdGUtZnJvbS1maWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFPaEUsSUFBYSxrQ0FBa0MsR0FBL0MsTUFBYSxrQ0FBa0M7SUFLN0MsWUFDUyxVQUFzQixFQUNyQixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsY0FBOEI7UUFKL0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFQakMsWUFBTyxHQUE0QixJQUFJLE9BQU8sRUFB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QTs7WUF4R3NCLFVBQVU7WUFDSCxnQkFBZ0I7WUFDbkIsYUFBYTtZQUNaLGNBQWM7WUFDZCxjQUFjOztBQWlHeEM7SUFEQyxZQUFZLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7Ozs2RUFHbEQ7QUE3R1Usa0NBQWtDO0lBTDlDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxtQ0FBbUM7UUFDN0MsaXNCQUE2RDs7S0FFOUQsQ0FBQztxQ0FPcUIsVUFBVTtRQUNILGdCQUFnQjtRQUNuQixhQUFhO1FBQ1osY0FBYztRQUNkLGNBQWM7R0FWN0Isa0NBQWtDLENBOEc5QztTQTlHWSxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBEcm9wem9uZUNvbmZpZ0ludGVyZmFjZSB9IGZyb20gJ25neC1kcm9wem9uZS13cmFwcGVyJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZpeHR1cmVQcm9maWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpeHR1cmUtcHJvZmlsZSc7XG5pbXBvcnQgeyBGaXh0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2plY3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maXh0dXJlLXBvb2wtY3JlYXRlLWZyb20tZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9maXh0dXJlLXBvb2wtY3JlYXRlLWZyb20tZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpeHR1cmUtcG9vbC1jcmVhdGUtZnJvbS1maWxlLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRml4dHVyZVBvb2xDcmVhdGVGcm9tRmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBkcm9wem9uZUNvbmZpZzogRHJvcHpvbmVDb25maWdJbnRlcmZhY2U7XG4gIHB1YmxpYyB1cGxvYWRNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBvbkNsb3NlOiBTdWJqZWN0PEZpeHR1cmVQcm9maWxlPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIGZpeHR1cmVTZXJ2aWNlOiBGaXh0dXJlU2VydmljZSxcbiAgICBwcml2YXRlIHByb2plY3RTZXJ2aWNlOiBQcm9qZWN0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kcm9wem9uZUNvbmZpZyA9IHtcbiAgICAgIHVybDogJ2R1bW15JyxcbiAgICAgIGFkZFJlbW92ZUxpbmtzOiBmYWxzZSxcbiAgICAgIG1heEZpbGVzaXplOiAxMCAvKiAxMCBNQiAqLyxcbiAgICAgIGFjY2VwdGVkRmlsZXM6ICcuanNvbicsXG4gICAgICB0aW1lb3V0OiAwLFxuICAgICAgYWNjZXB0OiAoZmlsZTogYW55LCBkb25lOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIC8vIHZhbGlkYXRlIHRoZSBmaWxlXG4gICAgICAgICAgY29uc3QgdGV4dCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UodGV4dCk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAganNvblsnJHNjaGVtYSddLm1hdGNoKFxuICAgICAgICAgICAgICAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09wZW5MaWdodGluZ1Byb2plY3Qvb3Blbi1maXh0dXJlLWxpYnJhcnkvc2NoZW1hLSguKikvc2NoZW1hcy9maXh0dXJlLmpzb24nXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBjcmVhdGUgdGhlIG1ldGFkYXRhIGZyb20gdGhlIGZpbGUuIHdlIGRvbid0IGhhdmUgdGhlIGNvcnJlc3BvbmRpbmdcbiAgICAgICAgICAgIC8vIG1hbnVmYWN0dXJlci1maWxlLCB0aGVyZWZvcmUgd2UganVzdCBhc3N1bWUgdGhlIGF0dHJpYnV0ZXMgZnJvbSB0aGVcbiAgICAgICAgICAgIC8vIGZpeHR1cmUtZmlsZS5cbiAgICAgICAgICAgIGNvbnN0IG1hbnVmYWN0dXJlclNob3J0TmFtZSA9IGpzb25bJ21hbnVmYWN0dXJlcktleSddO1xuICAgICAgICAgICAgY29uc3QgbWFudWZhY3R1cmVyTmFtZSA9IG1hbnVmYWN0dXJlclNob3J0TmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHV1aWQgPSBtYW51ZmFjdHVyZXJTaG9ydE5hbWUgKyAnLycgKyBqc29uWydmaXh0dXJlS2V5J107XG4gICAgICAgICAgICBjb25zdCBwcm9maWxlID0gbmV3IEZpeHR1cmVQcm9maWxlKGpzb24pO1xuXG4gICAgICAgICAgICBwcm9maWxlLm1hbnVmYWN0dXJlclNob3J0TmFtZSA9IG1hbnVmYWN0dXJlclNob3J0TmFtZTtcbiAgICAgICAgICAgIHByb2ZpbGUubWFudWZhY3R1cmVyTmFtZSA9IG1hbnVmYWN0dXJlck5hbWU7XG4gICAgICAgICAgICBwcm9maWxlLnV1aWQgPSB1dWlkO1xuICAgICAgICAgICAgcHJvZmlsZS5jcmVhdGVkRnJvbUZpbGUgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBhZGQgdGhlIHByb2ZpbGUgdG8gdGhlIHByb2plY3QsIGlmIG5vdCBhbHJlYWR5IGFkZGVkXG4gICAgICAgICAgICBjb25zdCBsb2FkZWRQcm9maWxlID0gdGhpcy5maXh0dXJlU2VydmljZS5nZXRQcm9maWxlQnlVdWlkKHV1aWQpO1xuICAgICAgICAgICAgaWYgKCFsb2FkZWRQcm9maWxlKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5maXh0dXJlUHJvZmlsZXMucHVzaChwcm9maWxlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYWRkIGEgbmV3IGZpeHR1cmUgZnJvbSB0aGlzIHByb2ZpbGVcbiAgICAgICAgICAgIHRoaXMub25DbG9zZS5uZXh0KHByb2ZpbGUpO1xuICAgICAgICAgICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gc2hvdyBhbiBlcnJvciB0b2FzdFxuICAgICAgICAgICAgY29uc3QgbXNnID0gJ2Rlc2lnbmVyLmZpeHR1cmUtcG9vbC5pbnZhbGlkLWZpeHR1cmUtcHJvZmlsZS1maWxlJztcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gJ2Rlc2lnbmVyLm1pc2MudG9hc3QtdXBsb2FkLWVycm9yLXRpdGxlJztcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoW21zZywgdGl0bGVdKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IocmVzdWx0W21zZ10sIHJlc3VsdFt0aXRsZV0sIHsgdGltZU91dDogMCwgZXh0ZW5kZWRUaW1lT3V0OiAwLCBlbmFibGVIdG1sOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZG9uZSgnbm9lcnInKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpO1xuICAgICAgfSxcbiAgICAgIHByZXZpZXdUZW1wbGF0ZTogYFxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XG4gICAgICAgIDwhLS0gTm8gcHJldmlldyAtLT5cbiAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICB9O1xuXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAuZ2V0KCdkZXNpZ25lci5taXNjLmRyb3B6b25lLW1lc3NhZ2UnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy51cGxvYWRNZXNzYWdlID0gJzxoMyBjbGFzcz1cIm1iLTBcIj48aSBjbGFzcz1cImZhIGZhLWNsb3VkLXVwbG9hZFwiPjwvaT48L2gzPicgKyByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25VcGxvYWRFcnJvcihhcmdzOiBhbnkpIHtcbiAgICBpZiAoYXJnc1sxXSA9PT0gJ25vZXJyJykge1xuICAgICAgLy8gdGhpcyBlcnJvciBpcyBzZXQgaW4gdGhlIGFjY2VwdCBldmVudCBsaXN0ZW5lciAtPiBldmVyeXRoaW5nIE9LXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbXNnID0gJ2Rlc2lnbmVyLm1pc2MudG9hc3QtdXBsb2FkLWVycm9yJztcbiAgICBjb25zdCB0aXRsZSA9ICdkZXNpZ25lci5taXNjLnRvYXN0LXVwbG9hZC1lcnJvci10aXRsZSc7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChbbXNnLCB0aXRsZV0pLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IocmVzdWx0W21zZ10gKyBhcmdzWzFdLCByZXN1bHRbdGl0bGVdLCB7IHRpbWVPdXQ6IDAsIGV4dGVuZGVkVGltZU91dDogMCwgZW5hYmxlSHRtbDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9rKCkge1xuICAgIHRoaXMub25DbG9zZS5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLm9uQ2xvc2UubmV4dCh1bmRlZmluZWQpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5vaygpO1xuICB9XG59XG4iXX0=