@livepreso/api 6.41.0 → 6.44.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 (446) hide show
  1. package/.eslintrc.js +5 -0
  2. package/.rush/temp/build-cache-tar.log +7 -0
  3. package/.rush/temp/package-deps_test.json +170 -0
  4. package/.rush/temp/shrinkwrap-deps.json +957 -0
  5. package/CHANGELOG.json +53 -0
  6. package/CHANGELOG.md +32 -0
  7. package/api.build.log +4 -0
  8. package/babel.config.js +9 -18
  9. package/cjs/api.js +1 -1
  10. package/cjs/api.js.map +1 -1
  11. package/cjs/api.spec.js +2 -2
  12. package/cjs/api.spec.js.map +1 -1
  13. package/cjs/auth.js +6 -5
  14. package/cjs/auth.js.map +1 -1
  15. package/cjs/auth.spec.js +25 -23
  16. package/cjs/auth.spec.js.map +1 -1
  17. package/cjs/caching.js +3 -3
  18. package/cjs/collections/activity.js +22 -27
  19. package/cjs/collections/activity.js.map +1 -1
  20. package/cjs/collections/adjunct-sections.js +2 -2
  21. package/cjs/collections/adjunct-sections.js.map +1 -1
  22. package/cjs/collections/adjunct-slides.js +2 -2
  23. package/cjs/collections/adjunct-slides.js.map +1 -1
  24. package/cjs/collections/adjunct-sub-slides.js +2 -2
  25. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  26. package/cjs/collections/appointment-adjunct-tags.js +28 -0
  27. package/cjs/collections/appointment-adjunct-tags.js.map +1 -0
  28. package/cjs/collections/appointment-deckversion-tags.js +28 -0
  29. package/cjs/collections/appointment-deckversion-tags.js.map +1 -0
  30. package/cjs/collections/appointment-duplicates.js +2 -2
  31. package/cjs/collections/appointment-duplicates.js.map +1 -1
  32. package/cjs/collections/appointment-editors.js +2 -2
  33. package/cjs/collections/appointment-editors.js.map +1 -1
  34. package/cjs/collections/appointment-section-tags.js +28 -0
  35. package/cjs/collections/appointment-section-tags.js.map +1 -0
  36. package/cjs/collections/appointment-slide-tags.js +28 -0
  37. package/cjs/collections/appointment-slide-tags.js.map +1 -0
  38. package/cjs/collections/appointment-tags.js +208 -0
  39. package/cjs/collections/appointment-tags.js.map +1 -0
  40. package/cjs/collections/appointments.js +10 -6
  41. package/cjs/collections/appointments.js.map +1 -1
  42. package/cjs/collections/assets.js +2 -2
  43. package/cjs/collections/assets.js.map +1 -1
  44. package/cjs/collections/auto-adjuncts.js +7 -3
  45. package/cjs/collections/auto-adjuncts.js.map +1 -1
  46. package/cjs/collections/base.js +103 -25
  47. package/cjs/collections/base.js.map +1 -1
  48. package/cjs/collections/base.spec.js +231 -123
  49. package/cjs/collections/base.spec.js.map +1 -1
  50. package/cjs/collections/cms-vals.js +2 -2
  51. package/cjs/collections/cms-vals.js.map +1 -1
  52. package/cjs/collections/contacts.js +2 -2
  53. package/cjs/collections/contacts.js.map +1 -1
  54. package/cjs/collections/created-assets.js +2 -2
  55. package/cjs/collections/created-assets.js.map +1 -1
  56. package/cjs/collections/customers.js +2 -2
  57. package/cjs/collections/customers.js.map +1 -1
  58. package/cjs/collections/deck-notes.js +2 -2
  59. package/cjs/collections/deck-notes.js.map +1 -1
  60. package/cjs/collections/deck-versions.js +20 -8
  61. package/cjs/collections/deck-versions.js.map +1 -1
  62. package/cjs/collections/decks.js +2 -2
  63. package/cjs/collections/decks.js.map +1 -1
  64. package/cjs/collections/deleted-assets.js +2 -2
  65. package/cjs/collections/deleted-assets.js.map +1 -1
  66. package/cjs/collections/dispatches.js +4 -4
  67. package/cjs/collections/dispatches.js.map +1 -1
  68. package/cjs/collections/event-objects.js +2 -2
  69. package/cjs/collections/event-objects.js.map +1 -1
  70. package/cjs/collections/events.js +2 -2
  71. package/cjs/collections/events.js.map +1 -1
  72. package/cjs/collections/groups.js +2 -2
  73. package/cjs/collections/groups.js.map +1 -1
  74. package/cjs/collections/images.js +2 -2
  75. package/cjs/collections/images.js.map +1 -1
  76. package/cjs/collections/locations.js +2 -2
  77. package/cjs/collections/locations.js.map +1 -1
  78. package/cjs/collections/opportunities.js +2 -2
  79. package/cjs/collections/opportunities.js.map +1 -1
  80. package/cjs/collections/pack-diffs.js +2 -2
  81. package/cjs/collections/pack-diffs.js.map +1 -1
  82. package/cjs/collections/packs.js +2 -2
  83. package/cjs/collections/packs.js.map +1 -1
  84. package/cjs/collections/presets.js +2 -2
  85. package/cjs/collections/presets.js.map +1 -1
  86. package/cjs/collections/section-selections.js +2 -2
  87. package/cjs/collections/section-selections.js.map +1 -1
  88. package/cjs/collections/sections.js +2 -2
  89. package/cjs/collections/sections.js.map +1 -1
  90. package/cjs/collections/slide-selections.js +2 -2
  91. package/cjs/collections/slide-selections.js.map +1 -1
  92. package/cjs/collections/slides.js +2 -2
  93. package/cjs/collections/slides.js.map +1 -1
  94. package/cjs/collections/snapshots.js +2 -2
  95. package/cjs/collections/snapshots.js.map +1 -1
  96. package/cjs/collections/sub-slides.js +2 -2
  97. package/cjs/collections/sub-slides.js.map +1 -1
  98. package/cjs/collections/tags.js +28 -0
  99. package/cjs/collections/tags.js.map +1 -0
  100. package/cjs/collections/teams.js +2 -2
  101. package/cjs/collections/teams.js.map +1 -1
  102. package/cjs/collections/templates.js +2 -2
  103. package/cjs/collections/templates.js.map +1 -1
  104. package/cjs/collections/uploads.js +2 -2
  105. package/cjs/collections/uploads.js.map +1 -1
  106. package/cjs/collections/users.js +2 -2
  107. package/cjs/collections/users.js.map +1 -1
  108. package/cjs/collections.js +115 -0
  109. package/cjs/collections.js.map +1 -1
  110. package/cjs/index.js +3 -0
  111. package/cjs/index.js.map +1 -1
  112. package/cjs/middleware.js.map +1 -1
  113. package/cjs/middlewares/auth.js +10 -6
  114. package/cjs/middlewares/auth.js.map +1 -1
  115. package/cjs/middlewares/base.js +1 -3
  116. package/cjs/middlewares/base.js.map +1 -1
  117. package/cjs/middlewares/json.js +10 -6
  118. package/cjs/middlewares/json.js.map +1 -1
  119. package/cjs/middlewares/redirect.js +10 -6
  120. package/cjs/middlewares/redirect.js.map +1 -1
  121. package/cjs/models/activity-item.js +6 -2
  122. package/cjs/models/activity-item.js.map +1 -1
  123. package/cjs/models/adjunct-section.js +2 -2
  124. package/cjs/models/adjunct-section.js.map +1 -1
  125. package/cjs/models/adjunct-slide.js +2 -2
  126. package/cjs/models/adjunct-slide.js.map +1 -1
  127. package/cjs/models/adjunct-sub-slide.js +2 -2
  128. package/cjs/models/adjunct-sub-slide.js.map +1 -1
  129. package/cjs/models/adjunct.js +2 -2
  130. package/cjs/models/adjunct.js.map +1 -1
  131. package/cjs/models/api.js.map +1 -1
  132. package/cjs/models/appointment-adjunct-tags.js +52 -0
  133. package/cjs/models/appointment-adjunct-tags.js.map +1 -0
  134. package/cjs/models/appointment-deckversion-tags.js +52 -0
  135. package/cjs/models/appointment-deckversion-tags.js.map +1 -0
  136. package/cjs/models/appointment-duplicate.js +8 -3
  137. package/cjs/models/appointment-duplicate.js.map +1 -1
  138. package/cjs/models/appointment-editor.js +2 -2
  139. package/cjs/models/appointment-editor.js.map +1 -1
  140. package/cjs/models/appointment-section-tags.js +52 -0
  141. package/cjs/models/appointment-section-tags.js.map +1 -0
  142. package/cjs/models/appointment-slide-tags.js +52 -0
  143. package/cjs/models/appointment-slide-tags.js.map +1 -0
  144. package/cjs/models/appointment-stats.js +2 -2
  145. package/cjs/models/appointment-stats.js.map +1 -1
  146. package/cjs/models/appointment-tags.js +48 -0
  147. package/cjs/models/appointment-tags.js.map +1 -0
  148. package/cjs/models/appointment-viewing.js +2 -2
  149. package/cjs/models/appointment-viewing.js.map +1 -1
  150. package/cjs/models/appointment.js +16 -7
  151. package/cjs/models/appointment.js.map +1 -1
  152. package/cjs/models/asset.js +2 -2
  153. package/cjs/models/asset.js.map +1 -1
  154. package/cjs/models/auto-adjunct-key-check.js +2 -2
  155. package/cjs/models/auto-adjunct-key-check.js.map +1 -1
  156. package/cjs/models/auto-adjunct.js +2 -2
  157. package/cjs/models/auto-adjunct.js.map +1 -1
  158. package/cjs/models/base.js +25 -36
  159. package/cjs/models/base.js.map +1 -1
  160. package/cjs/models/base.spec.js +45 -45
  161. package/cjs/models/base.spec.js.map +1 -1
  162. package/cjs/models/choicelist.js.map +1 -1
  163. package/cjs/models/cms-val.js.map +1 -1
  164. package/cjs/models/contact.js +2 -2
  165. package/cjs/models/contact.js.map +1 -1
  166. package/cjs/models/customer.js +2 -2
  167. package/cjs/models/customer.js.map +1 -1
  168. package/cjs/models/deck-note.js +2 -2
  169. package/cjs/models/deck-note.js.map +1 -1
  170. package/cjs/models/deck-tags.js +61 -0
  171. package/cjs/models/deck-tags.js.map +1 -0
  172. package/cjs/models/deck-version.js +5 -3
  173. package/cjs/models/deck-version.js.map +1 -1
  174. package/cjs/models/deck.js +6 -3
  175. package/cjs/models/deck.js.map +1 -1
  176. package/cjs/models/dispatch-preview.js +3 -3
  177. package/cjs/models/dispatch-preview.js.map +1 -1
  178. package/cjs/models/dispatch.js +2 -2
  179. package/cjs/models/dispatch.js.map +1 -1
  180. package/cjs/models/envs.js.map +1 -1
  181. package/cjs/models/event-object.js +2 -2
  182. package/cjs/models/event-object.js.map +1 -1
  183. package/cjs/models/event.js +2 -2
  184. package/cjs/models/event.js.map +1 -1
  185. package/cjs/models/feed-data.js +2 -2
  186. package/cjs/models/feed-data.js.map +1 -1
  187. package/cjs/models/file.js +2 -2
  188. package/cjs/models/file.js.map +1 -1
  189. package/cjs/models/group.js +2 -2
  190. package/cjs/models/group.js.map +1 -1
  191. package/cjs/models/handover.js +2 -2
  192. package/cjs/models/handover.js.map +1 -1
  193. package/cjs/models/hosted-preso.js +2 -2
  194. package/cjs/models/hosted-preso.js.map +1 -1
  195. package/cjs/models/image.js +2 -2
  196. package/cjs/models/image.js.map +1 -1
  197. package/cjs/models/location.js +2 -2
  198. package/cjs/models/location.js.map +1 -1
  199. package/cjs/models/manifest-json.js +83 -58
  200. package/cjs/models/manifest-json.js.map +1 -1
  201. package/cjs/models/onshare.js +2 -2
  202. package/cjs/models/onshare.js.map +1 -1
  203. package/cjs/models/opportunity.js +2 -2
  204. package/cjs/models/opportunity.js.map +1 -1
  205. package/cjs/models/pack-diff.js +2 -2
  206. package/cjs/models/pack-diff.js.map +1 -1
  207. package/cjs/models/pack.js +2 -2
  208. package/cjs/models/pack.js.map +1 -1
  209. package/cjs/models/preset.js +22 -2
  210. package/cjs/models/preset.js.map +1 -1
  211. package/cjs/models/refresh-request.js +2 -2
  212. package/cjs/models/refresh-request.js.map +1 -1
  213. package/cjs/models/room.js +2 -2
  214. package/cjs/models/room.js.map +1 -1
  215. package/cjs/models/salesforce-lookup.js +2 -2
  216. package/cjs/models/salesforce-lookup.js.map +1 -1
  217. package/cjs/models/section-selection.js +2 -2
  218. package/cjs/models/section-selection.js.map +1 -1
  219. package/cjs/models/section.js +2 -2
  220. package/cjs/models/section.js.map +1 -1
  221. package/cjs/models/slide-selection.js +2 -2
  222. package/cjs/models/slide-selection.js.map +1 -1
  223. package/cjs/models/slide.js +2 -2
  224. package/cjs/models/slide.js.map +1 -1
  225. package/cjs/models/snapshot.js +2 -2
  226. package/cjs/models/snapshot.js.map +1 -1
  227. package/cjs/models/sub-slide.js +2 -2
  228. package/cjs/models/sub-slide.js.map +1 -1
  229. package/cjs/models/support-ticket.js +2 -2
  230. package/cjs/models/support-ticket.js.map +1 -1
  231. package/cjs/models/tag.js +54 -0
  232. package/cjs/models/tag.js.map +1 -0
  233. package/cjs/models/team.js +2 -2
  234. package/cjs/models/team.js.map +1 -1
  235. package/cjs/models/template.js +2 -2
  236. package/cjs/models/template.js.map +1 -1
  237. package/cjs/models/tenancy.js +2 -2
  238. package/cjs/models/tenancy.js.map +1 -1
  239. package/cjs/models/timing-log.js +20 -41
  240. package/cjs/models/timing-log.js.map +1 -1
  241. package/cjs/models/timing-log.spec.js +18 -86
  242. package/cjs/models/timing-log.spec.js.map +1 -1
  243. package/cjs/models/transcribe-socket.js +2 -2
  244. package/cjs/models/transcribe-socket.js.map +1 -1
  245. package/cjs/models/upload.js +2 -2
  246. package/cjs/models/upload.js.map +1 -1
  247. package/cjs/models/user.js +4 -3
  248. package/cjs/models/user.js.map +1 -1
  249. package/cjs/models/user.spec.js +10 -8
  250. package/cjs/models/user.spec.js.map +1 -1
  251. package/cjs/models.js +148 -0
  252. package/cjs/models.js.map +1 -1
  253. package/cjs/presentation/appointment-presentation.js +13 -5
  254. package/cjs/presentation/appointment-presentation.js.map +1 -1
  255. package/cjs/presentation/base-presentation-collection.js.map +1 -1
  256. package/cjs/presentation/base-presentation-model.js +65 -0
  257. package/cjs/presentation/base-presentation-model.js.map +1 -1
  258. package/cjs/presentation/base-presentation-model.spec.js +87 -0
  259. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  260. package/cjs/presentation/presentation-deck.js +31 -20
  261. package/cjs/presentation/presentation-deck.js.map +1 -1
  262. package/cjs/presentation/presentation-deck.spec.js +15 -13
  263. package/cjs/presentation/presentation-deck.spec.js.map +1 -1
  264. package/cjs/presentation/presentation-decks.js +2 -2
  265. package/cjs/presentation/presentation-decks.js.map +1 -1
  266. package/cjs/presentation/presentation-section.js +36 -17
  267. package/cjs/presentation/presentation-section.js.map +1 -1
  268. package/cjs/presentation/presentation-section.spec.js +418 -0
  269. package/cjs/presentation/presentation-section.spec.js.map +1 -0
  270. package/cjs/presentation/presentation-sections.js +2 -2
  271. package/cjs/presentation/presentation-sections.js.map +1 -1
  272. package/cjs/presentation/presentation-slide.js +35 -18
  273. package/cjs/presentation/presentation-slide.js.map +1 -1
  274. package/cjs/presentation/presentation-slide.spec.js +294 -0
  275. package/cjs/presentation/presentation-slide.spec.js.map +1 -0
  276. package/cjs/presentation/presentation-slides.js +2 -2
  277. package/cjs/presentation/presentation-slides.js.map +1 -1
  278. package/cjs/presentation/presentation-subslide.js +11 -7
  279. package/cjs/presentation/presentation-subslide.js.map +1 -1
  280. package/cjs/presentation/presentation-subslide.spec.js +68 -20
  281. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  282. package/cjs/presentation/presentation-subslides.js +2 -2
  283. package/cjs/presentation/presentation-subslides.js.map +1 -1
  284. package/cjs/presentation/presentation.js +19 -9
  285. package/cjs/presentation/presentation.js.map +1 -1
  286. package/cjs/presentation.js +10 -0
  287. package/cjs/presentation.js.map +1 -1
  288. package/cjs/state-register.js +11 -1
  289. package/cjs/state-register.js.map +1 -1
  290. package/cjs/sync.js +7 -7
  291. package/cjs/sync.js.map +1 -1
  292. package/cjs/utils.js +7 -7
  293. package/cjs/utils.js.map +1 -1
  294. package/cjs/utils.spec.js.map +1 -1
  295. package/config/rush-project.json +11 -0
  296. package/index.js +0 -1
  297. package/jest.config.js +4 -4
  298. package/package.json +19 -59
  299. package/setup-tests.js +2 -1
  300. package/src/api.js +3 -3
  301. package/src/api.spec.js +3 -4
  302. package/src/auth.js +6 -7
  303. package/src/auth.spec.js +3 -4
  304. package/src/collections/activity.js +5 -6
  305. package/src/collections/adjunct-sections.js +4 -4
  306. package/src/collections/adjunct-slides.js +4 -4
  307. package/src/collections/adjunct-sub-slides.js +2 -2
  308. package/src/collections/appointment-adjunct-tags.js +18 -0
  309. package/src/collections/appointment-deckversion-tags.js +21 -0
  310. package/src/collections/appointment-duplicates.js +2 -2
  311. package/src/collections/appointment-editors.js +2 -2
  312. package/src/collections/appointment-section-tags.js +18 -0
  313. package/src/collections/appointment-slide-tags.js +18 -0
  314. package/src/collections/appointment-tags.js +136 -0
  315. package/src/collections/appointments.js +18 -23
  316. package/src/collections/assets.js +2 -2
  317. package/src/collections/auto-adjuncts.js +5 -5
  318. package/src/collections/base.js +88 -18
  319. package/src/collections/base.spec.js +100 -8
  320. package/src/collections/cms-vals.js +3 -3
  321. package/src/collections/contacts.js +2 -2
  322. package/src/collections/created-assets.js +2 -2
  323. package/src/collections/customers.js +2 -2
  324. package/src/collections/deck-notes.js +2 -2
  325. package/src/collections/deck-versions.js +18 -15
  326. package/src/collections/decks.js +2 -2
  327. package/src/collections/deleted-assets.js +2 -2
  328. package/src/collections/dispatches.js +8 -13
  329. package/src/collections/event-objects.js +2 -2
  330. package/src/collections/events.js +2 -2
  331. package/src/collections/groups.js +2 -2
  332. package/src/collections/images.js +2 -2
  333. package/src/collections/locations.js +2 -2
  334. package/src/collections/opportunities.js +2 -2
  335. package/src/collections/pack-diffs.js +2 -2
  336. package/src/collections/packs.js +2 -2
  337. package/src/collections/presets.js +2 -2
  338. package/src/collections/section-selections.js +4 -4
  339. package/src/collections/sections.js +2 -2
  340. package/src/collections/slide-selections.js +4 -4
  341. package/src/collections/slides.js +2 -2
  342. package/src/collections/snapshots.js +2 -2
  343. package/src/collections/sub-slides.js +2 -2
  344. package/src/collections/tags.js +18 -0
  345. package/src/collections/teams.js +2 -2
  346. package/src/collections/templates.js +2 -2
  347. package/src/collections/uploads.js +2 -2
  348. package/src/collections/users.js +2 -2
  349. package/src/collections.js +6 -0
  350. package/src/index.js +1 -4
  351. package/src/middleware.js +1 -1
  352. package/src/middlewares/json.js +2 -2
  353. package/src/middlewares/redirect.js +1 -2
  354. package/src/models/activity-item.js +6 -6
  355. package/src/models/adjunct-section.js +5 -5
  356. package/src/models/adjunct-slide.js +5 -5
  357. package/src/models/adjunct-sub-slide.js +5 -5
  358. package/src/models/adjunct.js +4 -4
  359. package/src/models/api.js +1 -1
  360. package/src/models/appointment-adjunct-tags.js +41 -0
  361. package/src/models/appointment-deckversion-tags.js +41 -0
  362. package/src/models/appointment-duplicate.js +7 -7
  363. package/src/models/appointment-editor.js +6 -6
  364. package/src/models/appointment-section-tags.js +41 -0
  365. package/src/models/appointment-slide-tags.js +41 -0
  366. package/src/models/appointment-stats.js +5 -5
  367. package/src/models/appointment-tags.js +39 -0
  368. package/src/models/appointment-viewing.js +3 -3
  369. package/src/models/appointment.js +35 -29
  370. package/src/models/asset.js +5 -5
  371. package/src/models/auto-adjunct-key-check.js +5 -5
  372. package/src/models/auto-adjunct.js +4 -4
  373. package/src/models/base.js +36 -37
  374. package/src/models/base.spec.js +61 -62
  375. package/src/models/choicelist.js +2 -2
  376. package/src/models/cms-val.js +3 -3
  377. package/src/models/contact.js +9 -9
  378. package/src/models/customer.js +13 -13
  379. package/src/models/deck-note.js +4 -4
  380. package/src/models/deck-tags.js +52 -0
  381. package/src/models/deck-version.js +9 -8
  382. package/src/models/deck.js +8 -6
  383. package/src/models/dispatch-preview.js +6 -7
  384. package/src/models/dispatch.js +6 -7
  385. package/src/models/envs.js +1 -1
  386. package/src/models/event-object.js +6 -6
  387. package/src/models/event.js +7 -7
  388. package/src/models/feed-data.js +5 -5
  389. package/src/models/file.js +4 -4
  390. package/src/models/group.js +3 -3
  391. package/src/models/handover.js +5 -5
  392. package/src/models/hosted-preso.js +5 -5
  393. package/src/models/image.js +4 -4
  394. package/src/models/location.js +5 -5
  395. package/src/models/manifest-json.js +77 -30
  396. package/src/models/onshare.js +5 -5
  397. package/src/models/opportunity.js +5 -5
  398. package/src/models/pack-diff.js +5 -5
  399. package/src/models/pack.js +4 -4
  400. package/src/models/preset.js +24 -5
  401. package/src/models/refresh-request.js +6 -6
  402. package/src/models/room.js +3 -3
  403. package/src/models/salesforce-lookup.js +3 -3
  404. package/src/models/section-selection.js +6 -6
  405. package/src/models/section.js +7 -7
  406. package/src/models/slide-selection.js +6 -6
  407. package/src/models/slide.js +7 -7
  408. package/src/models/snapshot.js +5 -5
  409. package/src/models/sub-slide.js +5 -5
  410. package/src/models/support-ticket.js +4 -4
  411. package/src/models/tag.js +42 -0
  412. package/src/models/team.js +4 -4
  413. package/src/models/template.js +4 -4
  414. package/src/models/tenancy.js +5 -5
  415. package/src/models/timing-log.js +18 -18
  416. package/src/models/timing-log.spec.js +28 -29
  417. package/src/models/transcribe-socket.js +3 -3
  418. package/src/models/upload.js +3 -3
  419. package/src/models/user.js +19 -17
  420. package/src/models/user.spec.js +2 -2
  421. package/src/models.js +7 -0
  422. package/src/presentation/appointment-presentation.js +14 -10
  423. package/src/presentation/base-presentation-model.js +67 -5
  424. package/src/presentation/base-presentation-model.spec.js +114 -22
  425. package/src/presentation/presentation-deck.js +54 -52
  426. package/src/presentation/presentation-deck.spec.js +26 -27
  427. package/src/presentation/presentation-decks.js +2 -2
  428. package/src/presentation/presentation-section.js +62 -48
  429. package/src/presentation/presentation-section.spec.js +363 -0
  430. package/src/presentation/presentation-sections.js +2 -2
  431. package/src/presentation/presentation-slide.js +51 -36
  432. package/src/presentation/presentation-slide.spec.js +250 -0
  433. package/src/presentation/presentation-slides.js +2 -2
  434. package/src/presentation/presentation-subslide.js +24 -17
  435. package/src/presentation/presentation-subslide.spec.js +40 -12
  436. package/src/presentation/presentation-subslides.js +2 -2
  437. package/src/presentation/presentation.js +27 -15
  438. package/src/state-register.js +7 -0
  439. package/src/sync.js +21 -23
  440. package/src/utils.js +8 -7
  441. package/src/utils.spec.js +15 -15
  442. package/.editorconfig +0 -9
  443. package/.eslintrc +0 -25
  444. package/.prettierrc.js +0 -3
  445. package/jsdoc.json +0 -12
  446. package/yarn.lock +0 -8099
@@ -1,7 +1,7 @@
1
1
  import { AdjunctSubSlideModel } from "../models/adjunct-sub-slide";
2
+ import { PresentationSubSlide } from "./presentation-subslide";
2
3
  import { SlideModel } from "../models/slide";
3
4
  import { SubSlideModel } from "../models/sub-slide";
4
- import { PresentationSubSlide } from "./presentation-subslide";
5
5
 
6
6
  describe("#createFromSubSlide", () => {
7
7
  const subslideJSON = {
@@ -15,15 +15,11 @@ describe("#createFromSubSlide", () => {
15
15
  index_asset: {
16
16
  created_date: "2020-07-20T03:25:15.530683Z",
17
17
  data: "sections/test-deck/slides/why_myob_vision/index.html",
18
- hash_algorithm: "sha-256",
19
- hash_digest:
20
- "5e2426643a0d9f9360f343891da19faecf6bd37584ed4be05528c87b981f1f26",
21
18
  id: 7836,
22
19
  modified_date: "2020-07-20T03:25:15.530717Z",
23
20
  orig_path: "sections/test-deck/slides/why_myob_vision",
24
21
  pack: "http://bleh/api/packs/17/",
25
- url:
26
- "http://bleh/media/pack/17/assets/sections/test-deck/slides/why_myob_vision/index.html"
22
+ url: "http://bleh/media/pack/17/assets/sections/test-deck/slides/why_myob_vision/index.html",
27
23
  },
28
24
  key: "subslide-1",
29
25
  modified_date: "2020-07-20T03:25:49.393305Z",
@@ -32,7 +28,7 @@ describe("#createFromSubSlide", () => {
32
28
  slide: "http://bleh/api/slides/1273/",
33
29
  tags: [],
34
30
  title: "",
35
- url: "http://bleh/api/subslides/458/"
31
+ url: "http://bleh/api/subslides/458/",
36
32
  };
37
33
 
38
34
  it("should create a presentation subslide", async () => {
@@ -51,11 +47,24 @@ describe("#createFromSubSlide", () => {
51
47
  index: 0,
52
48
  sequence: 0,
53
49
  visible: true,
54
- url: subslide.url()
50
+ url: subslide.url(),
55
51
  };
56
52
 
57
53
  expect(presentationSub.toJSON()).toEqual(expected);
58
54
  });
55
+
56
+ it("should use deckTags when available", async () => {
57
+ const subslide = new SubSlideModel(subslideJSON);
58
+ const options = {
59
+ deckTags: { "test-deck/why_myob_vision/subslide-1": ["subslide-tag"] },
60
+ };
61
+ const presentationSub = PresentationSubSlide.createFromSubSlide(
62
+ subslide,
63
+ options
64
+ );
65
+
66
+ expect(presentationSub.tags).toEqual(["subslide-tag"]);
67
+ });
59
68
  });
60
69
 
61
70
  describe("#createFromAdjunctSubSlide", () => {
@@ -81,7 +90,7 @@ describe("#createFromAdjunctSubSlide", () => {
81
90
  tags: [],
82
91
  template: null,
83
92
  title: "addition-1",
84
- url: "http://bleh/api/adjunctsubslides/562/"
93
+ url: "http://bleh/api/adjunctsubslides/562/",
85
94
  };
86
95
 
87
96
  it("should create a presentation subslide", async () => {
@@ -108,11 +117,30 @@ describe("#createFromAdjunctSubSlide", () => {
108
117
  index: 2,
109
118
  sequence: 2,
110
119
  visible: true,
111
- url: subslide.url()
120
+ tags: [],
121
+ url: subslide.url(),
112
122
  };
113
123
 
114
124
  expect(presentationSub.toJSON()).toEqual(expected);
115
125
  });
126
+
127
+ it("should use deckTags when available", async () => {
128
+ const subslide = new AdjunctSubSlideModel(adjunctSubSlideJSON);
129
+
130
+ const options = {
131
+ id: 23,
132
+ deckTags: {
133
+ "test-deck/why_myob_vision/adjunct-562": ["adjunctsubslide-tag"],
134
+ },
135
+ };
136
+ const presentationSub = PresentationSubSlide.createFromAdjunctSubSlide(
137
+ subslide,
138
+ { id: 58 },
139
+ options
140
+ );
141
+
142
+ expect(presentationSub.tags).toEqual(["adjunctsubslide-tag"]);
143
+ });
116
144
  });
117
145
 
118
146
  describe("#createFromSlide", () => {
@@ -133,7 +161,7 @@ describe("#createFromSlide", () => {
133
161
  subslide_set: [],
134
162
  tags: [],
135
163
  title: "Why MYOB",
136
- url: "http://bleh/api/slides/1273/"
164
+ url: "http://bleh/api/slides/1273/",
137
165
  };
138
166
 
139
167
  it("should create a presentation subslide", async () => {
@@ -152,7 +180,7 @@ describe("#createFromSlide", () => {
152
180
  title: "Why MYOB",
153
181
  slide: 1273,
154
182
  tags: [],
155
- url: "/api/subslides/1273/"
183
+ url: "/api/subslides/1273/",
156
184
  };
157
185
 
158
186
  expect(presentationSub.toJSON()).toEqual(expected);
@@ -1,7 +1,7 @@
1
1
  import "./presentation-subslide.js";
2
2
 
3
- import { register } from "../state-register.js";
4
3
  import { BasePresentationCollection } from "./base-presentation-collection.js";
4
+ import { register } from "../state-register.js";
5
5
 
6
6
  /**
7
7
  * @constructor
@@ -12,7 +12,7 @@ import { BasePresentationCollection } from "./base-presentation-collection.js";
12
12
  export const PresentationSubSlideCollection = BasePresentationCollection.extend(
13
13
  /** @lends presentation.PresentationSubSlideCollection# */ {
14
14
  comparator: "sequence",
15
- model: "PresentationSubSlide"
15
+ model: "PresentationSubSlide",
16
16
  }
17
17
  );
18
18
 
@@ -1,25 +1,25 @@
1
1
  import "./presentation-decks.js";
2
2
 
3
+ import { DeckVersionModel, ManifestJSONModel } from "../models.js";
4
+
5
+ import { BasePresentationModel } from "./base-presentation-model.js";
6
+ import { PresentationDeck } from "./presentation-deck.js";
3
7
  import Promise from "bluebird";
4
8
  import _ from "lodash";
5
-
6
9
  import log from "../log.js";
7
- import { DeckVersionModel, ManifestJSONModel } from "../models.js";
8
10
  import { register } from "../state-register.js";
9
- import { BasePresentationModel } from "./base-presentation-model.js";
10
- import { PresentationDeck } from "./presentation-deck.js";
11
11
 
12
12
  export const Presentation = BasePresentationModel.extend({
13
13
  collections: {
14
- decks: "PresentationDeckCollection"
15
- }
14
+ decks: "PresentationDeckCollection",
15
+ },
16
16
  });
17
17
 
18
- Presentation.createFromDeckversion = function(deckversionURL, options) {
18
+ Presentation.createFromDeckversion = function (deckversionURL, options) {
19
19
  const deckversion = new DeckVersionModel(deckversionURL);
20
20
 
21
- options = _.defaults(options, {
22
- includeTemplates: false
21
+ const opts = _.defaults(options, {
22
+ includeTemplates: false,
23
23
  });
24
24
 
25
25
  return deckversion
@@ -27,29 +27,41 @@ Presentation.createFromDeckversion = function(deckversionURL, options) {
27
27
  .then(() => {
28
28
  return Promise.all([
29
29
  deckversion.manifest_json.fetch(),
30
- deckversion.deck.fetch()
30
+ deckversion.deck.fetch(),
31
31
  ]);
32
32
  })
33
33
  .then(() => {
34
+ return deckversion.deck.tags.fetch();
35
+ })
36
+ .then(() => {
37
+ const deckTags = deckversion.deck.tags.items.reduce((tagObj, tagItem) => {
38
+ tagObj[tagItem.namespaced_key] = tagItem.tags;
39
+ return tagObj;
40
+ }, {});
41
+
34
42
  const presentation = new Presentation();
35
- const createOpts = {};
36
- if (options.includeTemplates) {
43
+
44
+ const createOpts = {
45
+ deckTags,
46
+ };
47
+
48
+ if (opts.includeTemplates) {
37
49
  createOpts.templates = deckversion.template_set.toJSON();
38
50
  }
39
51
 
40
52
  presentation.decks.add([
41
- PresentationDeck.createFromDeckVersion(deckversion, createOpts)
53
+ PresentationDeck.createFromDeckVersion(deckversion, createOpts),
42
54
  ]);
43
55
 
44
56
  return presentation;
45
57
  })
46
- .catch(e => {
58
+ .catch((e) => {
47
59
  log.error(e);
48
60
  throw e;
49
61
  });
50
62
  };
51
63
 
52
- Presentation.createFromManifestJSON = function(manifestJSON, url) {
64
+ Presentation.createFromManifestJSON = function (manifestJSON, url) {
53
65
  const manifestModel = new ManifestJSONModel(manifestJSON.toJSON());
54
66
  // Let's use the model to transport the manifest url.
55
67
  manifestModel._url = url;
@@ -4,3 +4,10 @@ export const register = (name, State) => {
4
4
  State.prototype._registerName = name;
5
5
  registeredStates[name] = State;
6
6
  };
7
+
8
+ export const getState = (name) => {
9
+ if (!registeredStates[name]) {
10
+ throw new Error(`Registered state '${name}' not found.`);
11
+ }
12
+ return registeredStates[name];
13
+ };
package/src/sync.js CHANGED
@@ -1,18 +1,16 @@
1
- import url2 from "url";
2
-
3
1
  import Promise from "bluebird";
4
- import _ from "lodash";
5
- import superagent from "superagent";
6
2
  import SuperAgentRequest from "superagent-bluebird-promise";
7
-
3
+ import _ from "lodash";
8
4
  import log from "./log.js";
9
5
  import { middlewares } from "./middleware.js";
6
+ import superagent from "superagent";
7
+ import url2 from "url";
10
8
 
11
9
  const defaults = _.defaults;
12
10
  const assign = _.assign;
13
11
 
14
12
  // Throw an error when a URL is needed, and none is supplied.
15
- const urlError = function() {
13
+ const urlError = function () {
16
14
  throw new Error(`A "url" property or function must be specified`);
17
15
  };
18
16
 
@@ -22,15 +20,15 @@ export const methodMap = {
22
20
  update: "PUT",
23
21
  patch: "PATCH",
24
22
  delete: "DELETE",
25
- read: "GET"
23
+ read: "GET",
26
24
  };
27
25
 
28
- export const defaultFetchURL = function({ model }) {
26
+ export const defaultFetchURL = function ({ model }) {
29
27
  log.warn("Deprecation: defaultFetchURL is deprecated. Just use .url()");
30
28
  return model.url();
31
29
  };
32
30
 
33
- export const buildURL = function({ method, model }) {
31
+ export const buildURL = function ({ method, model }) {
34
32
  const url = model.url();
35
33
  const urlParse = url2.parse(url);
36
34
 
@@ -42,13 +40,13 @@ export const buildURL = function({ method, model }) {
42
40
  return url;
43
41
  };
44
42
 
45
- export const sync = function(method) {
43
+ export const sync = function (method) {
46
44
  const syncArguments = arguments;
47
45
 
48
46
  if (method === "read") {
49
47
  // look for sync methods
50
48
  const syncActions = [];
51
- middlewares.forEach(middleware => {
49
+ middlewares.forEach((middleware) => {
52
50
  if (middleware.sync) {
53
51
  syncActions.push(middleware.sync.apply(this, syncArguments));
54
52
  }
@@ -61,13 +59,13 @@ export const sync = function(method) {
61
59
  return ajaxSync.apply(this, syncArguments);
62
60
  };
63
61
 
64
- export const ajaxSync = function(method, model, options) {
62
+ export const ajaxSync = function (method, model, options) {
65
63
  const type = methodMap[method];
66
64
 
67
65
  // Default options, unless specified.
68
66
  defaults(options || (options = {}), {
69
67
  emulateHTTP: false,
70
- emulateJSON: false
68
+ emulateJSON: false,
71
69
  });
72
70
 
73
71
  // Default request options.
@@ -118,7 +116,7 @@ export const ajaxSync = function(method, model, options) {
118
116
 
119
117
  options.xhr = request;
120
118
 
121
- middlewares.forEach(middleware => {
119
+ middlewares.forEach((middleware) => {
122
120
  if (middleware.preflight) {
123
121
  middleware.preflight(request);
124
122
  }
@@ -160,12 +158,12 @@ export const ajaxSync = function(method, model, options) {
160
158
  if (options.cached && !options.deleted) {
161
159
  return Promise.resolve(options.cachedResponse)
162
160
  .then(getNextMiddleware(request))
163
- .then(function(response) {
161
+ .then(function (response) {
164
162
  if (!response.data) {
165
163
  response.data = JSON.parse(response.text);
166
164
  }
167
165
 
168
- return Promise.each(middlewares, middleware => {
166
+ return Promise.each(middlewares, (middleware) => {
169
167
  return middleware.success(request, response, model, true);
170
168
  }).then(() => {
171
169
  if (options.success) {
@@ -175,8 +173,8 @@ export const ajaxSync = function(method, model, options) {
175
173
  return response.data;
176
174
  });
177
175
  })
178
- .catch(function(response) {
179
- return Promise.each(middlewares, middleware => {
176
+ .catch(function (response) {
177
+ return Promise.each(middlewares, (middleware) => {
180
178
  return middleware.error(response, model);
181
179
  }).then(() => {
182
180
  if (options.error) {
@@ -193,7 +191,7 @@ export const ajaxSync = function(method, model, options) {
193
191
  // can have the request continue trying for minutes otherwise.
194
192
  .timeout(60 * 1000)
195
193
  .then(getNextMiddleware(request))
196
- .then(function(response) {
194
+ .then(function (response) {
197
195
  let data;
198
196
  try {
199
197
  data = JSON.parse(response.text);
@@ -205,7 +203,7 @@ export const ajaxSync = function(method, model, options) {
205
203
  model.set(data);
206
204
  }
207
205
 
208
- return Promise.each(middlewares, middleware => {
206
+ return Promise.each(middlewares, (middleware) => {
209
207
  return middleware.success(request, response, model, false);
210
208
  }).then(() => {
211
209
  if (options.success) {
@@ -215,7 +213,7 @@ export const ajaxSync = function(method, model, options) {
215
213
  return data;
216
214
  });
217
215
  })
218
- .catch(superagent.SuperagentPromiseError, e => {
216
+ .catch(superagent.SuperagentPromiseError, (e) => {
219
217
  if (
220
218
  e.res &&
221
219
  e.res.body &&
@@ -225,8 +223,8 @@ export const ajaxSync = function(method, model, options) {
225
223
  }
226
224
  throw e;
227
225
  })
228
- .catch(function(response) {
229
- return Promise.each(middlewares, middleware => {
226
+ .catch(function (response) {
227
+ return Promise.each(middlewares, (middleware) => {
230
228
  return middleware.error(response);
231
229
  }).then(() => {
232
230
  if (options.error) {
package/src/utils.js CHANGED
@@ -1,8 +1,7 @@
1
+ import _ from "lodash";
1
2
  /* eslint-disable no-control-regex */
2
3
  import url2 from "url";
3
4
 
4
- import _ from "lodash";
5
-
6
5
  export const DATE_FORMAT = "YYYY-MM-DD HH:mm:ss.SSSSSS[Z]";
7
6
  export const DATE_FORMAT_T = "YYYY-MM-DDTHH:mm:ss.SSSSSS[Z]";
8
7
 
@@ -63,7 +62,7 @@ export function replaceHostname(data, before, after) {
63
62
  if (typeof data === "string" && data.indexOf("http") === 0) {
64
63
  return data.replace(hostnameBefore, hostnameAfter);
65
64
  } else if (Array.isArray(data)) {
66
- return data.map(item => replaceHostname(item, before, after));
65
+ return data.map((item) => replaceHostname(item, before, after));
67
66
  } else if (_.isObject(data)) {
68
67
  return Object.keys(data).reduce((newObj, key) => {
69
68
  newObj[key] = replaceHostname(data[key], before, after);
@@ -76,14 +75,14 @@ export function replaceHostname(data, before, after) {
76
75
  // Takes the deckversion model and retrieves the highest id between all of
77
76
  // the sections, slides and subslides
78
77
  export function getMaxID(deckVersionModel) {
79
- const ids = deckVersionModel.section_set.map(section => {
78
+ const ids = deckVersionModel.section_set.map((section) => {
80
79
  let slides = [];
81
80
  if (section.slide_set) {
82
- slides = section.slide_set.map(slide => {
81
+ slides = section.slide_set.map((slide) => {
83
82
  let subslides = [];
84
83
 
85
84
  if (slide.subslide_set) {
86
- subslides = slide.subslide_set.map(subslide => subslide.id);
85
+ subslides = slide.subslide_set.map((subslide) => subslide.id);
87
86
  }
88
87
 
89
88
  return [slide.id, ...subslides];
@@ -130,5 +129,7 @@ export function isImpostor(model) {
130
129
  export function isImpostorDeck(deckVersionModel) {
131
130
  const section = deckVersionModel.section_set.first();
132
131
 
133
- return Boolean(section && section.slide_set.find(slide => isImpostor(slide)));
132
+ return Boolean(
133
+ section && section.slide_set.find((slide) => isImpostor(slide))
134
+ );
134
135
  }
package/src/utils.spec.js CHANGED
@@ -2,30 +2,30 @@ import {
2
2
  getHostname,
3
3
  getShortURL,
4
4
  removeMultiByteChars,
5
- replaceHostname
5
+ replaceHostname,
6
6
  } from "./utils.js";
7
7
 
8
8
  describe("getShortURL()", () => {
9
- test("shorten a full url to a short one", function() {
9
+ test("shorten a full url to a short one", function () {
10
10
  const url = "http://client.salespreso.com/api/users/1/";
11
11
  expect(getShortURL(url)).toEqual("/api/users/1/");
12
12
  });
13
13
 
14
- test("not break an already short url", function() {
14
+ test("not break an already short url", function () {
15
15
  const url = "/api/users/1/";
16
16
  expect(getShortURL(url)).toEqual("/api/users/1/");
17
17
  });
18
18
  });
19
19
 
20
20
  describe("removeMultiByteChars()", () => {
21
- test("correctly strip offending multibyte characters from string", function() {
21
+ test("correctly strip offending multibyte characters from string", function () {
22
22
  const testString = "SUZI LUCK’S CANTEEN & COCKTAIL BAR";
23
23
  expect(removeMultiByteChars(testString)).toEqual(
24
24
  "SUZI LUCKS CANTEEN & COCKTAIL BAR"
25
25
  );
26
26
  });
27
27
 
28
- test("sanatize urls correctly", function() {
28
+ test("sanatize urls correctly", function () {
29
29
  const testString = "http://client.salespreso.com/api/users/1/’";
30
30
  const testString2 = "/api/users/1/’";
31
31
  const testString3 = "/api/users/1/?param=1&test=3&_r=4";
@@ -93,11 +93,11 @@ describe("replaceHostname()", () => {
93
93
  it("replaces hostnames in an array", () => {
94
94
  const data = [
95
95
  "https://old.url.com/api/appointments/1/",
96
- "https://old.url.com/api/foo/1/bars/1/"
96
+ "https://old.url.com/api/foo/1/bars/1/",
97
97
  ];
98
98
  const expected = [
99
99
  "https://brand.new.com/api/appointments/1/",
100
- "https://brand.new.com/api/foo/1/bars/1/"
100
+ "https://brand.new.com/api/foo/1/bars/1/",
101
101
  ];
102
102
  const actual = replaceHostname(data, "old.url.com", "brand.new.com");
103
103
  expect(actual).toEqual(expected);
@@ -105,10 +105,10 @@ describe("replaceHostname()", () => {
105
105
 
106
106
  it("replaces hostnames in an object", () => {
107
107
  const data = {
108
- url: "https://old.url.com/api/appointments/1/"
108
+ url: "https://old.url.com/api/appointments/1/",
109
109
  };
110
110
  const expected = {
111
- url: "https://brand.new.com/api/appointments/1/"
111
+ url: "https://brand.new.com/api/appointments/1/",
112
112
  };
113
113
 
114
114
  const actual = replaceHostname(data, "old.url.com", "brand.new.com");
@@ -117,10 +117,10 @@ describe("replaceHostname()", () => {
117
117
 
118
118
  it("hostnames not related aren't affected", () => {
119
119
  const data = {
120
- url: "https://some.otherurl.com/helloworld/"
120
+ url: "https://some.otherurl.com/helloworld/",
121
121
  };
122
122
  const expected = {
123
- url: "https://some.otherurl.com/helloworld/"
123
+ url: "https://some.otherurl.com/helloworld/",
124
124
  };
125
125
 
126
126
  const actual = replaceHostname(data, "old.url.com", "brand.new.com");
@@ -136,8 +136,8 @@ describe("replaceHostname()", () => {
136
136
  anArray: [beforeURL, beforeURL],
137
137
  nestedObject: {
138
138
  first: beforeURL,
139
- second: beforeURL
140
- }
139
+ second: beforeURL,
140
+ },
141
141
  };
142
142
 
143
143
  const expected = {
@@ -145,8 +145,8 @@ describe("replaceHostname()", () => {
145
145
  anArray: [afterURL, afterURL],
146
146
  nestedObject: {
147
147
  first: afterURL,
148
- second: afterURL
149
- }
148
+ second: afterURL,
149
+ },
150
150
  };
151
151
 
152
152
  const actual = replaceHostname(data, "old.url.com", "some.otherurl.com");
package/.editorconfig DELETED
@@ -1,9 +0,0 @@
1
- # http://editorconfig.org/
2
- root = true
3
-
4
- [*]
5
- end_of_line = lf
6
- trim_trailing_whitespace = true
7
- insert_final_newline = true
8
- charset = utf-8
9
- indent_style = tab
package/.eslintrc DELETED
@@ -1,25 +0,0 @@
1
- {
2
- "rules": {
3
- "react/prop-types": 0,
4
- "id-length": 0
5
- },
6
- "extends": [
7
- "salespreso",
8
- "prettier"
9
- ],
10
- "parserOptions": {
11
- "ecmaFeatures": {
12
- "legacyDecorators": true
13
- },
14
- "sourceType": "module"
15
- },
16
- "globals": {
17
- "SystemJS": true,
18
- "test": true
19
- },
20
- "settings": {
21
- "react": {
22
- "version": "16.0"
23
- }
24
- }
25
- }
package/.prettierrc.js DELETED
@@ -1,3 +0,0 @@
1
- module.exports = {
2
- trailingComma: "none"
3
- };
package/jsdoc.json DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "opts": {
3
- "template": "node_modules/docdash",
4
- "destination": "./docs",
5
- "recurse": true,
6
- "readme": "README.md"
7
- },
8
- "plugins": ["node_modules/jsdoc-babel"],
9
- "babel": {
10
- "plugins": ["transform-object-rest-spread"]
11
- }
12
- }