@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,239 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';
4
- import { BsModalService } from 'ngx-bootstrap/modal';
5
- import { map } from 'rxjs/operators';
6
- import { Composition } from '../models/composition';
7
- import { ConfigService } from '../services/config.service';
8
- import { HotkeyTargetExcludeService } from '../services/hotkey-target-exclude.service';
9
- import { IntroService } from '../services/intro.service';
10
- import { PresetService } from '../services/preset.service';
11
- import { ProjectService } from '../services/project.service';
12
- import { TimelineService } from '../services/timeline.service';
13
- import { UuidService } from '../services/uuid.service';
14
- import { WarningDialogService } from '../services/warning-dialog.service';
15
- import { CompositionSettingsComponent } from './composition-settings/composition-settings.component';
16
- import { TimelineGridComponent } from './timeline-grid/timeline-grid.component';
17
- let TimelineComponent = class TimelineComponent {
18
- constructor(timelineService, changeDetectorRef, modalService, uuidService, projectService, hotkeyTargetExcludeService, warningDialogService, http, configService, presetService, introService) {
19
- this.timelineService = timelineService;
20
- this.changeDetectorRef = changeDetectorRef;
21
- this.modalService = modalService;
22
- this.uuidService = uuidService;
23
- this.projectService = projectService;
24
- this.hotkeyTargetExcludeService = hotkeyTargetExcludeService;
25
- this.warningDialogService = warningDialogService;
26
- this.http = http;
27
- this.configService = configService;
28
- this.presetService = presetService;
29
- this.introService = introService;
30
- this.timelineService.waveSurferReady.subscribe(() => {
31
- this.onResize();
32
- });
33
- this.timelineService.detectChanges.subscribe(() => {
34
- this.changeDetectorRef.detectChanges();
35
- });
36
- }
37
- ngOnInit() { }
38
- ngAfterViewInit() { }
39
- onResize() {
40
- if (!this.waveElement) {
41
- return;
42
- }
43
- // Hide wavesurfer to calculate the height, because it will grow infinitely
44
- // otherwise
45
- this.waveElement.nativeElement.style.display = 'none';
46
- const height = this.waveWrapper.nativeElement.clientHeight;
47
- this.waveElement.nativeElement.style.display = 'block';
48
- const width = this.waveWrapper.nativeElement.clientWidth;
49
- if (!this.lastHeight || this.lastHeight !== height || !this.lastWidth || this.lastWidth !== width) {
50
- // Set height and redraw
51
- if (this.timelineService.waveSurfer) {
52
- this.timelineService.waveSurfer.setHeight(height);
53
- }
54
- this.lastHeight = height;
55
- this.lastWidth = width;
56
- }
57
- }
58
- play() {
59
- this.timelineService.playState = 'playing';
60
- this.presetService.previewLive(this.timelineService.selectedComposition.name, Math.round(this.timelineService.waveSurfer.getCurrentTime() * 1000));
61
- this.timelineService.waveSurfer.play();
62
- }
63
- pause() {
64
- this.timelineService.playState = 'paused';
65
- this.presetService.stopPreviewPlay();
66
- this.timelineService.waveSurfer.pause();
67
- }
68
- rewind() {
69
- this.timelineService.playState = 'paused';
70
- this.pause();
71
- this.timelineService.waveSurfer.seekTo(0);
72
- }
73
- addRegion(waveSurferRegion) {
74
- this.timelineService.addRegion(waveSurferRegion);
75
- }
76
- removeRegion() {
77
- this.timelineService.removeRegion();
78
- }
79
- openGridSettings() {
80
- const bsModalRef = this.modalService.show(TimelineGridComponent, { keyboard: true, ignoreBackdropClick: false, class: '' });
81
- }
82
- afterDeleteFile() {
83
- this.timelineService.deleteSelectedComposition();
84
- }
85
- removeComposition() {
86
- this.warningDialogService
87
- .show('designer.timeline.warning-delete-composition')
88
- .pipe(map((result) => {
89
- if (result) {
90
- if (this.configService.enableMediaLibrary) {
91
- // don't delete the file from the library
92
- this.afterDeleteFile();
93
- }
94
- else {
95
- // the composition uuid and extension is used as the file name
96
- this.http
97
- .post('file/delete?compositionUuid=' + this.timelineService.selectedComposition.uuid, undefined)
98
- .pipe(map((response) => {
99
- this.afterDeleteFile();
100
- }))
101
- .subscribe();
102
- }
103
- }
104
- }))
105
- .subscribe();
106
- }
107
- openCompositionSettings(compositionIndex, newComposition) {
108
- const editComposition = newComposition || JSON.parse(JSON.stringify(this.projectService.project.compositions[compositionIndex]));
109
- const bsModalRef = this.modalService.show(CompositionSettingsComponent, {
110
- keyboard: false,
111
- ignoreBackdropClick: true,
112
- class: '',
113
- initialState: { composition: editComposition },
114
- });
115
- bsModalRef.content.onClose.subscribe((result) => {
116
- if (result === 1) {
117
- // OK has been pressed -> save
118
- if (newComposition) {
119
- this.projectService.project.compositions.push(editComposition);
120
- this.timelineService.selectedCompositionIndex = this.projectService.project.compositions.length - 1;
121
- // create the composition, if externally necessary
122
- if (this.timelineService.externalCompositionsAvailable) {
123
- // TODO check, if this composition already exists externally and create it, if not
124
- // maybe not needed and even confusing?
125
- }
126
- }
127
- else {
128
- this.projectService.project.compositions[compositionIndex] = editComposition;
129
- }
130
- this.selectComposition(this.timelineService.selectedCompositionIndex);
131
- }
132
- });
133
- }
134
- compositionSettings() {
135
- this.openCompositionSettings(this.timelineService.selectedCompositionIndex);
136
- }
137
- addComposition() {
138
- // create a new composition
139
- const composition = new Composition();
140
- composition.uuid = this.uuidService.getUuid();
141
- composition.name = 'New Composition';
142
- this.openCompositionSettings(undefined, composition);
143
- }
144
- selectComposition(index) {
145
- this.timelineService.selectCompositionIndex(index);
146
- }
147
- handleKeyboardEvent(event) {
148
- if (this.hotkeyTargetExcludeService.exclude(event)) {
149
- return;
150
- }
151
- if (!this.timelineService.selectedComposition) {
152
- return;
153
- }
154
- if (event.key === ' ') {
155
- if (this.timelineService.playState === 'paused') {
156
- this.play();
157
- }
158
- else {
159
- this.pause();
160
- }
161
- // prevent checkboxes being toggled, if in focus e.g.
162
- event.stopPropagation();
163
- event.preventDefault();
164
- }
165
- }
166
- setRegionStartMillis(value) {
167
- if (!this.timelineService.selectedPlaybackRegion) {
168
- return;
169
- }
170
- if (isNaN(value) || value < 0) {
171
- return;
172
- }
173
- this.timelineService.selectedPlaybackRegion.startMillis = +value;
174
- this.timelineService.updateSelectedRegion();
175
- }
176
- setRegionEndMillis(value) {
177
- if (!this.timelineService.selectedPlaybackRegion) {
178
- return;
179
- }
180
- if (isNaN(value) || value < 0) {
181
- return;
182
- }
183
- this.timelineService.selectedPlaybackRegion.endMillis = +value;
184
- this.timelineService.updateSelectedRegion();
185
- }
186
- };
187
- TimelineComponent.ctorParameters = () => [
188
- { type: TimelineService },
189
- { type: ChangeDetectorRef },
190
- { type: BsModalService },
191
- { type: UuidService },
192
- { type: ProjectService },
193
- { type: HotkeyTargetExcludeService },
194
- { type: WarningDialogService },
195
- { type: HttpClient },
196
- { type: ConfigService },
197
- { type: PresetService },
198
- { type: IntroService }
199
- ];
200
- __decorate([
201
- ViewChild('waveWrapper'),
202
- __metadata("design:type", ElementRef)
203
- ], TimelineComponent.prototype, "waveWrapper", void 0);
204
- __decorate([
205
- ViewChild('waveElement'),
206
- __metadata("design:type", ElementRef)
207
- ], TimelineComponent.prototype, "waveElement", void 0);
208
- __decorate([
209
- HostListener('window:resize'),
210
- __metadata("design:type", Function),
211
- __metadata("design:paramtypes", []),
212
- __metadata("design:returntype", void 0)
213
- ], TimelineComponent.prototype, "onResize", null);
214
- __decorate([
215
- HostListener('document:keydown', ['$event']),
216
- __metadata("design:type", Function),
217
- __metadata("design:paramtypes", [KeyboardEvent]),
218
- __metadata("design:returntype", void 0)
219
- ], TimelineComponent.prototype, "handleKeyboardEvent", null);
220
- TimelineComponent = __decorate([
221
- Component({
222
- selector: 'lib-app-timeline',
223
- template: "<div class=\"card border-secondary h-100\" [class.card-intro-active]=\"introService.showStep('timeline')\">\n <div class=\"card-body h-100 d-flex\" style=\"flex-flow: column; overflow: unset\">\n <div class=\"d-flex pb-3\">\n <div class=\"btn-group mr-3 my-auto\" role=\"group\" style=\"float: left\">\n <a href=\"#\" class=\"btn btn-primary m-0 p-1 mr-3\" (click)=\"addComposition(); (false)\"\n ><i class=\"fa fa-plus-circle fa-fw\" aria-hidden=\"true\"></i\n ></a>\n\n <select\n *ngIf=\"projectService.project.compositions.length > 0\"\n class=\"mr-3\"\n [ngModel]=\"timelineService.selectedCompositionIndex\"\n (ngModelChange)=\"selectComposition($event)\"\n style=\"width: 150px; height: 30px\"\n >\n <option *ngFor=\"let composition of projectService.project.compositions; let i = index\" [value]=\"i\">\n {{ composition.name }}\n </option>\n </select>\n\n <div *ngIf=\"timelineService.selectedComposition\" class=\"d-flex\">\n <a href=\"#\" class=\"btn btn-primary m-0 p-1\" (click)=\"rewind(); (false)\"\n ><i class=\"fa fa-step-backward fa-fw\" aria-hidden=\"true\"></i\n ></a>\n <a *ngIf=\"timelineService.playState == 'paused'\" href=\"#\" class=\"btn btn-primary m-0 p-1\" (click)=\"play(); (false)\"\n ><i class=\"fa fa-play fa-fw\" aria-hidden=\"true\"></i\n ></a>\n <a *ngIf=\"timelineService.playState == 'playing'\" href=\"#\" class=\"btn btn-primary m-0 p-1\" (click)=\"pause(); (false)\"\n ><i class=\"fa fa-pause fa-fw\" aria-hidden=\"true\"></i\n ></a>\n </div>\n </div>\n\n <div *ngIf=\"timelineService.selectedComposition\" class=\"d-flex w-100\">\n <div *ngIf=\"timelineService.duration\" class=\"my-auto mr-3\">\n <span style=\"width: 78px; text-align: left; display: inline-block; margin-left: 5px\">{{ timelineService.currentTime }}</span>\n <span style=\"display: inline-block\"></span>- {{ timelineService.duration }}\n </div>\n\n <div class=\"my-auto mr-3 ml-auto\" style=\"float: left\">\n <i (click)=\"timelineService.applyZoom(timelineService.zoom - 20)\" class=\"fa fa-search-minus mr-3\" aria-hidden=\"true\"></i>\n <mv-slider\n style=\"width: 80px\"\n [tooltip]=\"'hide'\"\n [value]=\"timelineService.zoom\"\n [min]=\"0\"\n [max]=\"200\"\n [step]=\"20\"\n (change)=\"timelineService.applyZoom($event.newValue)\"\n ></mv-slider>\n <i (click)=\"timelineService.applyZoom(timelineService.zoom + 20)\" class=\"fa fa-search-plus ml-3\" aria-hidden=\"true\"></i>\n </div>\n\n <div class=\"my-auto mr-3\">\n <input\n type=\"text\"\n [ngModel]=\"timelineService.selectedPlaybackRegion?.startMillis\"\n (ngModelChange)=\"setRegionStartMillis($event)\"\n />\n - <input type=\"text\" [ngModel]=\"timelineService.selectedPlaybackRegion?.endMillis\" (ngModelChange)=\"setRegionEndMillis($event)\" />\n </div>\n\n <a\n href=\"#\"\n class=\"btn btn-secondary m-0 py-1 mr-3\"\n (click)=\"openGridSettings(); (false)\"\n popover=\"{{ 'designer.timeline.grid' | translate }}\"\n container=\"body\"\n placement=\"top\"\n triggers=\"mouseenter:mouseleave\"\n ><i class=\"fa fa-th\" aria-hidden=\"true\"></i\n ></a>\n\n <a\n href=\"#\"\n class=\"btn btn-secondary m-0 py-1 mr-3\"\n (click)=\"removeRegion(); (false)\"\n popover=\"{{ 'designer.timeline.remove-region' | translate }}\"\n container=\"body\"\n placement=\"top\"\n triggers=\"mouseenter:mouseleave\"\n ><i class=\"fa fa-minus-circle\" aria-hidden=\"true\"></i\n ></a>\n\n <a\n href=\"#\"\n class=\"btn btn-secondary m-0 py-1 mr-3\"\n (click)=\"addRegion(); (false)\"\n popover=\"{{ 'designer.timeline.add-region' | translate }}\"\n container=\"body\"\n placement=\"top\"\n triggers=\"mouseenter:mouseleave\"\n ><i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i\n ></a>\n\n <a\n href=\"#\"\n class=\"btn btn-secondary m-0 py-1 mr-3\"\n (click)=\"removeComposition(); (false)\"\n popover=\"{{ 'designer.timeline.remove-composition' | translate }}\"\n container=\"body\"\n placement=\"top\"\n triggers=\"mouseenter:mouseleave\"\n ><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i\n ></a>\n\n <a\n href=\"#\"\n class=\"btn btn-secondary m-0 py-1\"\n (click)=\"compositionSettings(); (false)\"\n popover=\"{{ 'designer.timeline.composition-settings' | translate }}\"\n container=\"body\"\n placement=\"left\"\n triggers=\"mouseenter:mouseleave\"\n ><i class=\"fa fa-cog\" aria-hidden=\"true\"></i\n ></a>\n </div>\n </div>\n\n <div *ngIf=\"timelineService.loadingAudioFile\" class=\"w-100 d-flex\">\n <i class=\"fa fa-circle-o-notch fa-spin m-auto\" style=\"margin-top: -30px\"></i>\n </div>\n\n <div *ngIf=\"timelineService.selectedComposition\">\n <div id=\"waveform-timeline\"></div>\n </div>\n <div *ngIf=\"timelineService.selectedComposition\" #waveWrapper class=\"h-100\" style=\"flex: 2; position: relative\">\n <div #waveElement id=\"waveform\"></div>\n </div>\n\n <div *ngIf=\"projectService.project.compositions.length == 0\" class=\"w-100 d-flex\">\n <a href=\"#\" class=\"m-auto\" (click)=\"addComposition(); (false)\"\n ><i class=\"fa fa-plus-circle fa-fw\" aria-hidden=\"true\"></i> {{ 'designer.timeline.no-compositions' | translate }}</a\n >\n </div>\n </div>\n</div>\n",
224
- styles: [""]
225
- }),
226
- __metadata("design:paramtypes", [TimelineService,
227
- ChangeDetectorRef,
228
- BsModalService,
229
- UuidService,
230
- ProjectService,
231
- HotkeyTargetExcludeService,
232
- WarningDialogService,
233
- HttpClient,
234
- ConfigService,
235
- PresetService,
236
- IntroService])
237
- ], TimelineComponent);
238
- export { TimelineComponent };
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJvY2tldHNob3cvZGVzaWduZXIvIiwic291cmNlcyI6WyJsaWIvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBT2hGLElBQWEsaUJBQWlCLEdBQTlCLE1BQWEs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O0FBR3hCO0lBREMsU0FBUyxDQUFDLGFBQWEsQ0FBQzs4QkFDWixVQUFVO3NEQUFDO0FBK0J4QjtJQURDLFlBQVksQ0FBQyxlQUFlLENBQUM7Ozs7aURBdUI3QjtBQW1IRDtJQURDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztxQ0FDbEIsYUFBYTs7NERBb0J2QztBQWpNVSxpQkFBaUI7SUFMN0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGtCQUFrQjtRQUM1Qiw0NUxBQXdDOztLQUV6QyxDQUFDO3FDQVkwQixlQUFlO1FBQ1osaUJBQWlCO1FBQ3RCLGNBQWM7UUFDZixXQUFXO1FBQ1QsY0FBYztRQUNELDBCQUEwQjtRQUNoQyxvQkFBb0I7UUFDcEMsVUFBVTtRQUNELGFBQWE7UUFDYixhQUFhO1FBQ2YsWUFBWTtHQXJCeEIsaUJBQWlCLENBNE43QjtTQTVOWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbXBvc2l0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2NvbXBvc2l0aW9uJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBIb3RrZXlUYXJnZXRFeGNsdWRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2hvdGtleS10YXJnZXQtZXhjbHVkZS5zZXJ2aWNlJztcbmltcG9ydCB7IEludHJvU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ludHJvLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ByZXNldC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVsaW5lU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RpbWVsaW5lLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXVpZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91dWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2FybmluZ0RpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy93YXJuaW5nLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvc2l0aW9uU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvc2l0aW9uLXNldHRpbmdzL2NvbXBvc2l0aW9uLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lbGluZUdyaWRDb21wb25lbnQgfSBmcm9tICcuL3RpbWVsaW5lLWdyaWQvdGltZWxpbmUtZ3JpZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLXRpbWVsaW5lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGltZWxpbmUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lbGluZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3dhdmVXcmFwcGVyJylcbiAgd2F2ZVdyYXBwZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnd2F2ZUVsZW1lbnQnKVxuICB3YXZlRWxlbWVudDogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIGxhc3RIZWlnaHQ6IG51bWJlcjtcbiAgcHJpdmF0ZSBsYXN0V2lkdGg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGltZWxpbmVTZXJ2aWNlOiBUaW1lbGluZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXVpZFNlcnZpY2U6IFV1aWRTZXJ2aWNlLFxuICAgIHB1YmxpYyBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBob3RrZXlUYXJnZXRFeGNsdWRlU2VydmljZTogSG90a2V5VGFyZ2V0RXhjbHVkZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3YXJuaW5nRGlhbG9nU2VydmljZTogV2FybmluZ0RpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHByZXNldFNlcnZpY2U6IFByZXNldFNlcnZpY2UsXG4gICAgcHVibGljIGludHJvU2VydmljZTogSW50cm9TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLndhdmVTdXJmZXJSZWFkeS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5vblJlc2l6ZSgpO1xuICAgIH0pO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLmRldGVjdENoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIHB1YmxpYyBvblJlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMud2F2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIaWRlIHdhdmVzdXJmZXIgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGJlY2F1c2UgaXQgd2lsbCBncm93IGluZmluaXRlbHlcbiAgICAvLyBvdGhlcndpc2VcbiAgICB0aGlzLndhdmVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLndhdmVXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgIHRoaXMud2F2ZUVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgIGNvbnN0IHdpZHRoID0gdGhpcy53YXZlV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgaWYgKCF0aGlzLmxhc3RIZWlnaHQgfHwgdGhpcy5sYXN0SGVpZ2h0ICE9PSBoZWlnaHQgfHwgIXRoaXMubGFzdFdpZHRoIHx8IHRoaXMubGFzdFdpZHRoICE9PSB3aWR0aCkge1xuICAgICAgLy8gU2V0IGhlaWdodCBhbmQgcmVkcmF3XG4gICAgICBpZiAodGhpcy50aW1lbGluZVNlcnZpY2Uud2F2ZVN1cmZlcikge1xuICAgICAgICB0aGlzLnRpbWVsaW5lU2VydmljZS53YXZlU3VyZmVyLnNldEhlaWdodChoZWlnaHQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RIZWlnaHQgPSBoZWlnaHQ7XG4gICAgICB0aGlzLmxhc3RXaWR0aCA9IHdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIHBsYXkoKSB7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2UucGxheVN0YXRlID0gJ3BsYXlpbmcnO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZShcbiAgICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24ubmFtZSxcbiAgICAgIE1hdGgucm91bmQodGhpcy50aW1lbGluZVNlcnZpY2Uud2F2ZVN1cmZlci5nZXRDdXJyZW50VGltZSgpICogMTAwMClcbiAgICApO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLndhdmVTdXJmZXIucGxheSgpO1xuICB9XG5cbiAgcGF1c2UoKSB7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2UucGxheVN0YXRlID0gJ3BhdXNlZCc7XG4gICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnN0b3BQcmV2aWV3UGxheSgpO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLndhdmVTdXJmZXIucGF1c2UoKTtcbiAgfVxuXG4gIHJld2luZCgpIHtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5wbGF5U3RhdGUgPSAncGF1c2VkJztcbiAgICB0aGlzLnBhdXNlKCk7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uud2F2ZVN1cmZlci5zZWVrVG8oMCk7XG4gIH1cblxuICBhZGRSZWdpb24od2F2ZVN1cmZlclJlZ2lvbj86IGFueSkge1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLmFkZFJlZ2lvbih3YXZlU3VyZmVyUmVnaW9uKTtcbiAgfVxuXG4gIHJlbW92ZVJlZ2lvbigpIHtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5yZW1vdmVSZWdpb24oKTtcbiAgfVxuXG4gIG9wZW5HcmlkU2V0dGluZ3MoKSB7XG4gICAgY29uc3QgYnNNb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coVGltZWxpbmVHcmlkQ29tcG9uZW50LCB7IGtleWJvYXJkOiB0cnVlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiBmYWxzZSwgY2xhc3M6ICcnIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZnRlckRlbGV0ZUZpbGUoKSB7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2UuZGVsZXRlU2VsZWN0ZWRDb21wb3NpdGlvbigpO1xuICB9XG5cbiAgcmVtb3ZlQ29tcG9zaXRpb24oKSB7XG4gICAgdGhpcy53YXJuaW5nRGlhbG9nU2VydmljZVxuICAgICAgLnNob3coJ2Rlc2lnbmVyLnRpbWVsaW5lLndhcm5pbmctZGVsZXRlLWNvbXBvc2l0aW9uJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2UuZW5hYmxlTWVkaWFMaWJyYXJ5KSB7XG4gICAgICAgICAgICAgIC8vIGRvbid0IGRlbGV0ZSB0aGUgZmlsZSBmcm9tIHRoZSBsaWJyYXJ5XG4gICAgICAgICAgICAgIHRoaXMuYWZ0ZXJEZWxldGVGaWxlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyB0aGUgY29tcG9zaXRpb24gdXVpZCBhbmQgZXh0ZW5zaW9uIGlzIHVzZWQgYXMgdGhlIGZpbGUgbmFtZVxuICAgICAgICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAucG9zdCgnZmlsZS9kZWxldGU/Y29tcG9zaXRpb25VdWlkPScgKyB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uLnV1aWQsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJEZWxldGVGaWxlKCk7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQ29tcG9zaXRpb25TZXR0aW5ncyhjb21wb3NpdGlvbkluZGV4PzogbnVtYmVyLCBuZXdDb21wb3NpdGlvbj86IENvbXBvc2l0aW9uKSB7XG4gICAgY29uc3QgZWRpdENvbXBvc2l0aW9uOiBDb21wb3NpdGlvbiA9XG4gICAgICBuZXdDb21wb3NpdGlvbiB8fCBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5jb21wb3NpdGlvbnNbY29tcG9zaXRpb25JbmRleF0pKTtcblxuICAgIGNvbnN0IGJzTW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KENvbXBvc2l0aW9uU2V0dGluZ3NDb21wb25lbnQsIHtcbiAgICAgIGtleWJvYXJkOiBmYWxzZSxcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICBjbGFzczogJycsXG4gICAgICBpbml0aWFsU3RhdGU6IHsgY29tcG9zaXRpb246IGVkaXRDb21wb3NpdGlvbiB9LFxuICAgIH0pO1xuXG4gICAgKGJzTW9kYWxSZWYuY29udGVudCBhcyBDb21wb3NpdGlvblNldHRpbmdzQ29tcG9uZW50KS5vbkNsb3NlLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSAxKSB7XG4gICAgICAgIC8vIE9LIGhhcyBiZWVuIHByZXNzZWQgLT4gc2F2ZVxuICAgICAgICBpZiAobmV3Q29tcG9zaXRpb24pIHtcbiAgICAgICAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QuY29tcG9zaXRpb25zLnB1c2goZWRpdENvbXBvc2l0aW9uKTtcbiAgICAgICAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uSW5kZXggPSB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QuY29tcG9zaXRpb25zLmxlbmd0aCAtIDE7XG5cbiAgICAgICAgICAvLyBjcmVhdGUgdGhlIGNvbXBvc2l0aW9uLCBpZiBleHRlcm5hbGx5IG5lY2Vzc2FyeVxuICAgICAgICAgIGlmICh0aGlzLnRpbWVsaW5lU2VydmljZS5leHRlcm5hbENvbXBvc2l0aW9uc0F2YWlsYWJsZSkge1xuICAgICAgICAgICAgLy8gVE9ETyBjaGVjaywgaWYgdGhpcyBjb21wb3NpdGlvbiBhbHJlYWR5IGV4aXN0cyBleHRlcm5hbGx5IGFuZCBjcmVhdGUgaXQsIGlmIG5vdFxuICAgICAgICAgICAgLy8gbWF5YmUgbm90IG5lZWRlZCBhbmQgZXZlbiBjb25mdXNpbmc/XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5jb21wb3NpdGlvbnNbY29tcG9zaXRpb25JbmRleF0gPSBlZGl0Q29tcG9zaXRpb247XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdENvbXBvc2l0aW9uKHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb25JbmRleCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb21wb3NpdGlvblNldHRpbmdzKCkge1xuICAgIHRoaXMub3BlbkNvbXBvc2l0aW9uU2V0dGluZ3ModGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbkluZGV4KTtcbiAgfVxuXG4gIGFkZENvbXBvc2l0aW9uKCkge1xuICAgIC8vIGNyZWF0ZSBhIG5ldyBjb21wb3NpdGlvblxuICAgIGNvbnN0IGNvbXBvc2l0aW9uID0gbmV3IENvbXBvc2l0aW9uKCk7XG4gICAgY29tcG9zaXRpb24udXVpZCA9IHRoaXMudXVpZFNlcnZpY2UuZ2V0VXVpZCgpO1xuICAgIGNvbXBvc2l0aW9uLm5hbWUgPSAnTmV3IENvbXBvc2l0aW9uJztcblxuICAgIHRoaXMub3BlbkNvbXBvc2l0aW9uU2V0dGluZ3ModW5kZWZpbmVkLCBjb21wb3NpdGlvbik7XG4gIH1cblxuICBzZWxlY3RDb21wb3NpdGlvbihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0Q29tcG9zaXRpb25JbmRleChpbmRleCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmhvdGtleVRhcmdldEV4Y2x1ZGVTZXJ2aWNlLmV4Y2x1ZGUoZXZlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICBpZiAodGhpcy50aW1lbGluZVNlcnZpY2UucGxheVN0YXRlID09PSAncGF1c2VkJykge1xuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGF1c2UoKTtcbiAgICAgIH1cblxuICAgICAgLy8gcHJldmVudCBjaGVja2JveGVzIGJlaW5nIHRvZ2dsZWQsIGlmIGluIGZvY3VzIGUuZy5cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBzZXRSZWdpb25TdGFydE1pbGxpcyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZFBsYXliYWNrUmVnaW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA8IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZFBsYXliYWNrUmVnaW9uLnN0YXJ0TWlsbGlzID0gK3ZhbHVlO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnVwZGF0ZVNlbGVjdGVkUmVnaW9uKCk7XG4gIH1cblxuICBzZXRSZWdpb25FbmRNaWxsaXModmFsdWU6IGFueSkge1xuICAgIGlmICghdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRQbGF5YmFja1JlZ2lvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkgfHwgdmFsdWUgPCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRQbGF5YmFja1JlZ2lvbi5lbmRNaWxsaXMgPSArdmFsdWU7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2UudXBkYXRlU2VsZWN0ZWRSZWdpb24oKTtcbiAgfVxufVxuIl19
@@ -1,64 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, HostListener } from '@angular/core';
3
- import { BsModalRef } from 'ngx-bootstrap/modal';
4
- import { UserService } from '../../services/user.service';
5
- let UserLoginComponent = class UserLoginComponent {
6
- constructor(bsModalRef, userService) {
7
- this.bsModalRef = bsModalRef;
8
- this.userService = userService;
9
- this.error = '';
10
- this.loggingIn = false;
11
- this.email = '';
12
- this.password = '';
13
- }
14
- ngOnInit() { }
15
- cancel() {
16
- this.bsModalRef.hide();
17
- }
18
- login() {
19
- this.loggingIn = true;
20
- this.error = '';
21
- if (!this.email || !this.password) {
22
- this.error = 'fill-all-fields';
23
- this.loggingIn = false;
24
- return;
25
- }
26
- this.userService.login(this.email, this.password).subscribe(() => {
27
- this.bsModalRef.hide();
28
- if (this.subject) {
29
- this.subject.next();
30
- }
31
- }, (response) => {
32
- if (response.error && response.error.error) {
33
- this.error = response.error.error;
34
- }
35
- else {
36
- this.error = 'internal';
37
- }
38
- this.loggingIn = false;
39
- });
40
- }
41
- handleKeyboardEvent(event) {
42
- this.login();
43
- }
44
- };
45
- UserLoginComponent.ctorParameters = () => [
46
- { type: BsModalRef },
47
- { type: UserService }
48
- ];
49
- __decorate([
50
- HostListener('document:keydown.enter', ['$event']),
51
- __metadata("design:type", Function),
52
- __metadata("design:paramtypes", [Object]),
53
- __metadata("design:returntype", void 0)
54
- ], UserLoginComponent.prototype, "handleKeyboardEvent", null);
55
- UserLoginComponent = __decorate([
56
- Component({
57
- selector: 'lib-user-login',
58
- template: "<form (ngSubmit)=\"login()\">\n <div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ 'designer.user.login-title' | translate }}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"cancel(); (false)\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"form-group row\">\n <label for=\"email\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.email' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-envelope-o\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"loggingIn\"\n name=\"email\"\n [(ngModel)]=\"email\"\n type=\"email\"\n class=\"form-control\"\n id=\"email\"\n placeholder=\"email@example.com\"\n />\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label for=\"password\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.password' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-lock\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"loggingIn\"\n name=\"password\"\n [(ngModel)]=\"password\"\n type=\"password\"\n class=\"form-control\"\n id=\"password\"\n placeholder=\"{{ 'designer.user.password' | translate }}\"\n />\n </div>\n </div>\n </div>\n <div *ngIf=\"error\" class=\"alert alert-primary\" role=\"alert\">\n {{ 'designer.user.error.' + error | translate }}\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]=\"loggingIn\" type=\"submit\" class=\"btn btn-primary\">\n <i *ngIf=\"loggingIn\" class=\"fa fa-spinner fa-pulse fa-fw\"></i> {{ 'designer.user.login' | translate }}\n </button>\n </div>\n</form>\n",
59
- styles: [""]
60
- }),
61
- __metadata("design:paramtypes", [BsModalRef, UserService])
62
- ], UserLoginComponent);
63
- export { UserLoginComponent };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi91c2VyL3VzZXItbG9naW4vdXNlci1sb2dpbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPMUQsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFVN0IsWUFBb0IsVUFBc0IsRUFBVSxXQUF3QjtRQUF4RCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFUNUUsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGFBQVEsR0FBRyxFQUFFLENBQUM7SUFLaUUsQ0FBQztJQUVoRixRQUFRLEtBQUksQ0FBQztJQUViLE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUN6RCxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsRUFDRCxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2FBQ25DO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBR0QsbUJBQW1CLENBQUMsS0FBVTtRQUM1QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTs7WUF4Q2lDLFVBQVU7WUFBdUIsV0FBVzs7QUFxQzVFO0lBREMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7Ozs7NkRBR2xEO0FBakRVLGtCQUFrQjtJQUw5QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsZ0JBQWdCO1FBQzFCLDQzRUFBMEM7O0tBRTNDLENBQUM7cUNBV2dDLFVBQVUsRUFBdUIsV0FBVztHQVZqRSxrQkFBa0IsQ0FrRDlCO1NBbERZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXVzZXItbG9naW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VzZXItbG9naW4uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBlcnJvciA9ICcnO1xuICBsb2dnaW5nSW4gPSBmYWxzZTtcblxuICBlbWFpbCA9ICcnO1xuICBwYXNzd29yZCA9ICcnO1xuXG4gIC8vIGVtaXRzLCB3aGVuIGxvZ2dlZCBpblxuICBzdWJqZWN0OiBTdWJqZWN0PHZvaWQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnNNb2RhbFJlZjogQnNNb2RhbFJlZiwgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgbG9naW4oKSB7XG4gICAgdGhpcy5sb2dnaW5nSW4gPSB0cnVlO1xuICAgIHRoaXMuZXJyb3IgPSAnJztcblxuICAgIGlmICghdGhpcy5lbWFpbCB8fCAhdGhpcy5wYXNzd29yZCkge1xuICAgICAgdGhpcy5lcnJvciA9ICdmaWxsLWFsbC1maWVsZHMnO1xuICAgICAgdGhpcy5sb2dnaW5nSW4gPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmxvZ2luKHRoaXMuZW1haWwsIHRoaXMucGFzc3dvcmQpLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgICAgICAgaWYgKHRoaXMuc3ViamVjdCkge1xuICAgICAgICAgIHRoaXMuc3ViamVjdC5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9yICYmIHJlc3BvbnNlLmVycm9yLmVycm9yKSB7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IHJlc3BvbnNlLmVycm9yLmVycm9yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSAnaW50ZXJuYWwnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9nZ2luZ0luID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmxvZ2luKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,89 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, HostListener } from '@angular/core';
3
- import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
4
- import { UserService } from '../../services/user.service';
5
- import { UserLoginComponent } from '../user-login/user-login.component';
6
- let UserRegisterComponent = class UserRegisterComponent {
7
- constructor(bsModalRef, modalService, userService) {
8
- this.bsModalRef = bsModalRef;
9
- this.modalService = modalService;
10
- this.userService = userService;
11
- this.error = '';
12
- this.registering = false;
13
- this.username = '';
14
- this.email = '';
15
- this.password = '';
16
- this.passwordRepeat = '';
17
- }
18
- ngOnInit() { }
19
- cancel() {
20
- this.bsModalRef.hide();
21
- }
22
- login() {
23
- this.bsModalRef.hide();
24
- this.modalService.show(UserLoginComponent, { keyboard: true, ignoreBackdropClick: false, initialState: { subject: this.subject } });
25
- }
26
- emailIsValid(email) {
27
- // tslint:disable-next-line:max-line-length
28
- const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
29
- return re.test(String(email).toLowerCase());
30
- }
31
- register() {
32
- this.registering = true;
33
- this.error = '';
34
- if (!this.username || !this.email || !this.password || !this.passwordRepeat) {
35
- this.error = 'fill-all-fields';
36
- this.registering = false;
37
- return;
38
- }
39
- if (!this.emailIsValid(this.email)) {
40
- this.error = 'email-valid';
41
- this.registering = false;
42
- return;
43
- }
44
- if (this.password !== this.passwordRepeat) {
45
- this.error = 'password-mismatch';
46
- this.registering = false;
47
- return;
48
- }
49
- this.userService.register(this.email, this.username, this.password).subscribe(() => {
50
- // automatically login after registering
51
- this.userService.login(this.email, this.password).subscribe(() => {
52
- this.registering = false;
53
- this.bsModalRef.hide();
54
- });
55
- }, (response) => {
56
- if (response.error && response.error.error) {
57
- this.error = response.error.error;
58
- }
59
- else {
60
- this.error = 'internal';
61
- }
62
- this.registering = false;
63
- });
64
- }
65
- handleKeyboardEvent(event) {
66
- this.register();
67
- }
68
- };
69
- UserRegisterComponent.ctorParameters = () => [
70
- { type: BsModalRef },
71
- { type: BsModalService },
72
- { type: UserService }
73
- ];
74
- __decorate([
75
- HostListener('document:keydown.enter', ['$event']),
76
- __metadata("design:type", Function),
77
- __metadata("design:paramtypes", [Object]),
78
- __metadata("design:returntype", void 0)
79
- ], UserRegisterComponent.prototype, "handleKeyboardEvent", null);
80
- UserRegisterComponent = __decorate([
81
- Component({
82
- selector: 'lib-user-register',
83
- template: "<form (ngSubmit)=\"register()\">\n <div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ 'designer.user.register-title' | translate }}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"cancel(); (false)\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div *ngIf=\"subject\" class=\"alert alert-success\" role=\"alert\">\n {{ 'designer.user.login-required' | translate }}\n </div>\n <div class=\"form-group row\">\n <label for=\"username\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.username' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-user\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"registering\"\n name=\"username\"\n [(ngModel)]=\"username\"\n type=\"text\"\n class=\"form-control\"\n id=\"username\"\n placeholder=\"The Cool Guy\"\n />\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label for=\"email\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.email' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-envelope-o\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"registering\"\n name=\"email\"\n [(ngModel)]=\"email\"\n type=\"email\"\n class=\"form-control\"\n id=\"email\"\n placeholder=\"email@example.com\"\n />\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label for=\"password\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.password' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-lock\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"registering\"\n name=\"password\"\n [(ngModel)]=\"password\"\n type=\"password\"\n class=\"form-control\"\n id=\"password\"\n placeholder=\"{{ 'designer.user.password' | translate }}\"\n />\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label for=\"passwordRepeat\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.password-repeat' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-lock\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"registering\"\n name=\"passwordRepeat\"\n [(ngModel)]=\"passwordRepeat\"\n type=\"password\"\n class=\"form-control\"\n id=\"passwordRepeat\"\n placeholder=\"{{ 'designer.user.password' | translate }}\"\n />\n </div>\n </div>\n </div>\n <div *ngIf=\"error\" class=\"alert alert-primary\" role=\"alert\">\n {{ 'designer.user.error.' + error | translate }}\n </div>\n <a href=\"#\" (click)=\"login(); (false)\">\n <p class=\"mt-3 mb-0\" style=\"text-align: center\">{{ 'designer.user.already-have-account' | translate }}</p>\n </a>\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]=\"registering\" type=\"submit\" class=\"btn btn-primary\">\n <i *ngIf=\"registering\" class=\"fa fa-spinner fa-pulse fa-fw\"> </i>{{ 'designer.user.register' | translate }}\n </button>\n </div>\n</form>\n",
84
- styles: [""]
85
- }),
86
- __metadata("design:paramtypes", [BsModalRef, BsModalService, UserService])
87
- ], UserRegisterComponent);
88
- export { UserRegisterComponent };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yZWdpc3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi91c2VyL3VzZXItcmVnaXN0ZXIvdXNlci1yZWdpc3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBT3hFLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBWWhDLFlBQW9CLFVBQXNCLEVBQVUsWUFBNEIsRUFBVSxXQUF3QjtRQUE5RixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFYbEgsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLG1CQUFjLEdBQUcsRUFBRSxDQUFDO0lBS2lHLENBQUM7SUFFdEgsUUFBUSxLQUFJLENBQUM7SUFFYixNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0SSxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWE7UUFDaEMsMkNBQTJDO1FBQzNDLE1BQU0sRUFBRSxHQUFHLHlKQUF5SixDQUFDO1FBQ3JLLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzNFLElBQUksQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUM7WUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQzNFLEdBQUcsRUFBRTtZQUNILHdDQUF3QztZQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztnQkFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFDRCxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2FBQ25DO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBR0QsbUJBQW1CLENBQUMsS0FBVTtRQUM1QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztDQUNGLENBQUE7O1lBaEVpQyxVQUFVO1lBQXdCLGNBQWM7WUFBdUIsV0FBVzs7QUE2RGxIO0lBREMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7Ozs7Z0VBR2xEO0FBM0VVLHFCQUFxQjtJQUxqQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLHFzSUFBNkM7O0tBRTlDLENBQUM7cUNBYWdDLFVBQVUsRUFBd0IsY0FBYyxFQUF1QixXQUFXO0dBWnZHLHFCQUFxQixDQTRFakM7U0E1RVkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiwgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4uL3VzZXItbG9naW4vdXNlci1sb2dpbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdXNlci1yZWdpc3RlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLXJlZ2lzdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1yZWdpc3Rlci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJSZWdpc3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVycm9yID0gJyc7XG4gIHJlZ2lzdGVyaW5nID0gZmFsc2U7XG5cbiAgdXNlcm5hbWUgPSAnJztcbiAgZW1haWwgPSAnJztcbiAgcGFzc3dvcmQgPSAnJztcbiAgcGFzc3dvcmRSZXBlYXQgPSAnJztcblxuICAvLyBlbWl0cywgd2hlbiBsb2dnZWQgaW5cbiAgc3ViamVjdDogU3ViamVjdDx2b2lkPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSwgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgbG9naW4oKSB7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5zaG93KFVzZXJMb2dpbkNvbXBvbmVudCwgeyBrZXlib2FyZDogdHJ1ZSwgaWdub3JlQmFja2Ryb3BDbGljazogZmFsc2UsIGluaXRpYWxTdGF0ZTogeyBzdWJqZWN0OiB0aGlzLnN1YmplY3QgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1haWxJc1ZhbGlkKGVtYWlsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgY29uc3QgcmUgPSAvXigoW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXF0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvO1xuICAgIHJldHVybiByZS50ZXN0KFN0cmluZyhlbWFpbCkudG9Mb3dlckNhc2UoKSk7XG4gIH1cblxuICByZWdpc3RlcigpIHtcbiAgICB0aGlzLnJlZ2lzdGVyaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yID0gJyc7XG5cbiAgICBpZiAoIXRoaXMudXNlcm5hbWUgfHwgIXRoaXMuZW1haWwgfHwgIXRoaXMucGFzc3dvcmQgfHwgIXRoaXMucGFzc3dvcmRSZXBlYXQpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnZmlsbC1hbGwtZmllbGRzJztcbiAgICAgIHRoaXMucmVnaXN0ZXJpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZW1haWxJc1ZhbGlkKHRoaXMuZW1haWwpKSB7XG4gICAgICB0aGlzLmVycm9yID0gJ2VtYWlsLXZhbGlkJztcbiAgICAgIHRoaXMucmVnaXN0ZXJpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYXNzd29yZCAhPT0gdGhpcy5wYXNzd29yZFJlcGVhdCkge1xuICAgICAgdGhpcy5lcnJvciA9ICdwYXNzd29yZC1taXNtYXRjaCc7XG4gICAgICB0aGlzLnJlZ2lzdGVyaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51c2VyU2VydmljZS5yZWdpc3Rlcih0aGlzLmVtYWlsLCB0aGlzLnVzZXJuYW1lLCB0aGlzLnBhc3N3b3JkKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIGF1dG9tYXRpY2FsbHkgbG9naW4gYWZ0ZXIgcmVnaXN0ZXJpbmdcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS5sb2dpbih0aGlzLmVtYWlsLCB0aGlzLnBhc3N3b3JkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVnaXN0ZXJpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9yICYmIHJlc3BvbnNlLmVycm9yLmVycm9yKSB7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IHJlc3BvbnNlLmVycm9yLmVycm9yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZXJyb3IgPSAnaW50ZXJuYWwnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVnaXN0ZXJpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmVnaXN0ZXIoKTtcbiAgfVxufVxuIl19
@@ -1,16 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component } from '@angular/core';
3
- let WaitDialogComponent = class WaitDialogComponent {
4
- constructor() { }
5
- ngOnInit() { }
6
- };
7
- WaitDialogComponent = __decorate([
8
- Component({
9
- selector: 'lib-wait-dialog',
10
- template: "<div class=\"card-modal\">\n <div class=\"card\">\n <div class=\"card-body\">\n <p class=\"card-text\">{{ 'designer.misc.please-wait' | translate }}</p>\n <div class=\"progress\">\n <div\n class=\"progress-bar progress-bar-striped progress-bar-animated\"\n role=\"progressbar\"\n style=\"width: 100%\"\n aria-valuenow=\"10\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n",
11
- styles: [""]
12
- }),
13
- __metadata("design:paramtypes", [])
14
- ], WaitDialogComponent);
15
- export { WaitDialogComponent };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJvY2tldHNob3cvZGVzaWduZXIvIiwic291cmNlcyI6WyJsaWIvd2FpdC1kaWFsb2cvd2FpdC1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBT2xELElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0lBQzlCLGdCQUFlLENBQUM7SUFFaEIsUUFBUSxLQUFJLENBQUM7Q0FDZCxDQUFBO0FBSlksbUJBQW1CO0lBTC9CLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxpQkFBaUI7UUFDM0Isd2dCQUEyQzs7S0FFNUMsQ0FBQzs7R0FDVyxtQkFBbUIsQ0FJL0I7U0FKWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItd2FpdC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2FpdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93YWl0LWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFdhaXREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxufVxuIl19
@@ -1,42 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, HostListener } from '@angular/core';
3
- import { BsModalRef } from 'ngx-bootstrap/modal';
4
- import { Subject } from 'rxjs';
5
- let WarningDialogComponent = class WarningDialogComponent {
6
- constructor(bsModalRef) {
7
- this.bsModalRef = bsModalRef;
8
- }
9
- ngOnInit() {
10
- this.onClose = new Subject();
11
- }
12
- ok() {
13
- this.onClose.next(1);
14
- this.bsModalRef.hide();
15
- }
16
- cancel() {
17
- this.onClose.next(2);
18
- this.bsModalRef.hide();
19
- }
20
- handleKeyboardEvent(event) {
21
- this.ok();
22
- }
23
- };
24
- WarningDialogComponent.ctorParameters = () => [
25
- { type: BsModalRef }
26
- ];
27
- __decorate([
28
- HostListener('document:keydown.enter', ['$event']),
29
- __metadata("design:type", Function),
30
- __metadata("design:paramtypes", [Object]),
31
- __metadata("design:returntype", void 0)
32
- ], WarningDialogComponent.prototype, "handleKeyboardEvent", null);
33
- WarningDialogComponent = __decorate([
34
- Component({
35
- selector: 'lib-app-warning-dialog',
36
- template: "<div class=\"card-modal\">\n <div class=\"card\">\n <div class=\"card-header\">\n {{ 'designer.misc.warning' | translate }}\n </div>\n\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-auto\">\n <h2 class=\"mb-0\">\n <i class=\"fa fa-exclamation-triangle text-primary\" aria-hidden=\"true\"></i>\n </h2>\n </div>\n <div class=\"col pl-0\">\n <p class=\"mb-0\">{{ message }}</p>\n </div>\n </div>\n </div>\n\n <div class=\"card-footer\">\n <div class=\"d-flex float-right\">\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(); (false)\">\n {{ 'designer.misc.ok' | translate }}\n </button>\n </div>\n </div>\n </div>\n</div>\n",
37
- styles: [""]
38
- }),
39
- __metadata("design:paramtypes", [BsModalRef])
40
- ], WarningDialogComponent);
41
- export { WarningDialogComponent };
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FybmluZy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJvY2tldHNob3cvZGVzaWduZXIvIiwic291cmNlcyI6WyJsaWIvd2FybmluZy1kaWFsb2cvd2FybmluZy1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU8vQixJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQUtqQyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5QyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxFQUFFO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUdELG1CQUFtQixDQUFDLEtBQVU7UUFDNUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGLENBQUE7O1lBcEJpQyxVQUFVOztBQWlCMUM7SUFEQyxZQUFZLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7OztpRUFHbEQ7QUF4QlUsc0JBQXNCO0lBTGxDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsbzhCQUE4Qzs7S0FFL0MsQ0FBQztxQ0FNZ0MsVUFBVTtHQUwvQixzQkFBc0IsQ0F5QmxDO1NBekJZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFwcC13YXJuaW5nLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi93YXJuaW5nLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dhcm5pbmctZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFdhcm5pbmdEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBvbkNsb3NlOiBTdWJqZWN0PG51bWJlcj47XG5cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnNNb2RhbFJlZjogQnNNb2RhbFJlZikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9uQ2xvc2UgPSBuZXcgU3ViamVjdCgpO1xuICB9XG5cbiAgcHVibGljIG9rKCk6IHZvaWQge1xuICAgIHRoaXMub25DbG9zZS5uZXh0KDEpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMub25DbG9zZS5uZXh0KDIpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5vaygpO1xuICB9XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- /*
2
- * Public API Surface of designer
3
- */
4
- export * from './lib/designer.service';
5
- export * from './lib/designer.component';
6
- export * from './lib/designer.module';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Byb2NrZXRzaG93L2Rlc2lnbmVyLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBkZXNpZ25lclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rlc2lnbmVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVzaWduZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rlc2lnbmVyLm1vZHVsZSc7XG4iXX0=