@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
@@ -5,6 +5,7 @@ import "./preset.js";
5
5
  import "./team.js";
6
6
  import "./hosted-preso.js";
7
7
  import "./appointment-stats.js";
8
+ import "./appointment-tags.js";
8
9
  import "../collections/contacts.js";
9
10
  import "../collections/appointment-editors.js";
10
11
  import "../collections/deck-versions.js";
@@ -13,17 +14,17 @@ import "../collections/section-selections.js";
13
14
  import "../collections/slide-selections.js";
14
15
  import "../collections/dispatches.js";
15
16
  import "../collections/users.js";
16
-
17
- import Promise from "bluebird";
18
- import moment from "moment";
17
+ import "../collections/appointment-tags";
19
18
 
20
19
  import { AdjunctSectionCollection } from "../collections/adjunct-sections.js";
21
20
  import { AdjunctSlideCollection } from "../collections/adjunct-slides.js";
22
21
  import { AdjunctSubSlideCollection } from "../collections/adjunct-sub-slides.js";
22
+ import { BaseModel } from "./base.js";
23
23
  import { DeckNoteCollection } from "../collections/deck-notes.js";
24
+ import Promise from "bluebird";
24
25
  import log from "../log.js";
26
+ import moment from "moment";
25
27
  import { register } from "../state-register.js";
26
- import { BaseModel } from "./base.js";
27
28
 
28
29
  /**
29
30
  * @constructor
@@ -75,7 +76,7 @@ export const AppointmentModel = BaseModel.extend(
75
76
  no_edit_after: "date",
76
77
  no_share_after: "date",
77
78
  no_delete_after: "date",
78
- no_snapshot_create_after: "date"
79
+ no_snapshot_create_after: "date",
79
80
  },
80
81
 
81
82
  /**
@@ -93,7 +94,12 @@ export const AppointmentModel = BaseModel.extend(
93
94
  appointmentssection_set: "SectionSelectionCollection",
94
95
  appointmentsslide_set: "SlideSelectionCollection",
95
96
  dispatch_set: "DispatchCollection",
96
- current_editor_set: "UserCollection"
97
+ current_editor_set: "UserCollection",
98
+ tags: "AppointmentTagsCollection",
99
+ appointmentdeckversiontags_set: "AppointmentDeckVersionTagsCollection",
100
+ appointmentsectiontags_set: "AppointmentSectionTagsCollection",
101
+ appointmentslidetags_set: "AppointmentSlideTagsCollection",
102
+ appointmentadjuncttags_set: "AppointmentAdjunctTagsCollection",
97
103
  },
98
104
 
99
105
  /**
@@ -109,7 +115,7 @@ export const AppointmentModel = BaseModel.extend(
109
115
  user: "UserModel",
110
116
  latest_tele: "HostedPresoModel",
111
117
  stats: "AppointmentStatsModel",
112
- team: "TeamModel"
118
+ team: "TeamModel",
113
119
  },
114
120
 
115
121
  /**
@@ -126,7 +132,7 @@ export const AppointmentModel = BaseModel.extend(
126
132
  const adjunctSlides = new AdjunctSlideCollection();
127
133
  adjunctSlides.queryData.appointment = this.id;
128
134
  return adjunctSlides;
129
- }
135
+ },
130
136
  },
131
137
  adjunctSections: {
132
138
  deps: ["id"],
@@ -134,7 +140,7 @@ export const AppointmentModel = BaseModel.extend(
134
140
  const adjunctSections = new AdjunctSectionCollection();
135
141
  adjunctSections.queryData.appointment = this.id;
136
142
  return adjunctSections;
137
- }
143
+ },
138
144
  },
139
145
  adjunctSubSlides: {
140
146
  deps: ["id"],
@@ -142,14 +148,14 @@ export const AppointmentModel = BaseModel.extend(
142
148
  const adjunctSubSlides = new AdjunctSubSlideCollection();
143
149
  adjunctSubSlides.queryData.appointment = this.id;
144
150
  return adjunctSubSlides;
145
- }
151
+ },
146
152
  },
147
153
  deckNotes: {
148
154
  deps: ["id"],
149
155
  fn() {
150
156
  const appointmentUrl = this.url();
151
157
  return new DeckNoteCollection({ url: `${appointmentUrl}notes/` });
152
- }
158
+ },
153
159
  },
154
160
  cannotShare: {
155
161
  deps: ["no_share_after"],
@@ -159,7 +165,7 @@ export const AppointmentModel = BaseModel.extend(
159
165
  }
160
166
  const noShareAfter = moment(this.no_share_after);
161
167
  return moment().diff(noShareAfter) > 0;
162
- }
168
+ },
163
169
  },
164
170
  cannotEdit: {
165
171
  deps: ["no_edit_after"],
@@ -169,7 +175,7 @@ export const AppointmentModel = BaseModel.extend(
169
175
  }
170
176
  const noEditAfter = moment(this.no_edit_after);
171
177
  return moment().diff(noEditAfter) > 0;
172
- }
178
+ },
173
179
  },
174
180
  cannotDelete: {
175
181
  deps: ["no_delete_after"],
@@ -179,7 +185,7 @@ export const AppointmentModel = BaseModel.extend(
179
185
  }
180
186
  const noDeleteAfter = moment(this.no_delete_after);
181
187
  return moment().diff(noDeleteAfter) > 0;
182
- }
188
+ },
183
189
  },
184
190
  cannotCreateSnapshot: {
185
191
  deps: ["no_snapshot_create_after"],
@@ -189,22 +195,21 @@ export const AppointmentModel = BaseModel.extend(
189
195
  }
190
196
  const noCreateAfter = moment(this.no_snapshot_create_after);
191
197
  return moment().diff(noCreateAfter) > 0;
192
- }
198
+ },
193
199
  },
194
200
  readOnly: {
195
201
  deps: ["cannotShare"],
196
202
  fn() {
197
203
  return this.cannotShare;
198
- }
204
+ },
199
205
  },
200
206
  shareOnly: {
201
207
  deps: ["cannotEdit", "cannotDelete"],
202
208
  fn() {
203
209
  return this.cannotEdit || this.cannotDelete;
204
- }
205
- }
210
+ },
211
+ },
206
212
  },
207
-
208
213
  fetchAll(fetchSelf = false, options = {}) {
209
214
  return Promise.resolve()
210
215
  .then(() => {
@@ -223,7 +228,8 @@ export const AppointmentModel = BaseModel.extend(
223
228
  this.adjunctSections.fetch(options),
224
229
  this.adjunctSubSlides.fetch(options),
225
230
  this.contact_set.fetchSet(options),
226
- this.user.fetch(options).catch(e => {
231
+ this.tags.fetch(options),
232
+ this.user.fetch(options).catch((e) => {
227
233
  if (e.status && e.status === 404) {
228
234
  // It's possible for a user to be deactivated, which means they'll
229
235
  // return with a 404. We want to be able to still load the preso,
@@ -240,7 +246,7 @@ export const AppointmentModel = BaseModel.extend(
240
246
  this.opportunity_set.toJSON()
241
247
  );
242
248
  return Promise.resolve();
243
- })
249
+ }),
244
250
  ];
245
251
 
246
252
  if (this.latest_snapshot) {
@@ -259,21 +265,21 @@ export const AppointmentModel = BaseModel.extend(
259
265
  })
260
266
  .then(() => {
261
267
  const adjunctSlides = this.adjunctSlides
262
- .filter(adj => adj.template)
263
- .map(adj => adj.template.fetch(options));
268
+ .filter((adj) => adj.template)
269
+ .map((adj) => adj.template.fetch(options));
264
270
  const adjunctSections = this.adjunctSections
265
- .filter(adj => adj.template)
266
- .map(adj => adj.template.fetch(options));
271
+ .filter((adj) => adj.template)
272
+ .map((adj) => adj.template.fetch(options));
267
273
 
268
274
  return Promise.all([...adjunctSlides, ...adjunctSections]);
269
275
  })
270
276
  .then(() => {
271
277
  return Promise.all(
272
- this.deckversion_set.map(model => {
278
+ this.deckversion_set.map((model) => {
273
279
  return Promise.all([
274
280
  model.template_set.fetchSet(options),
275
281
  model.manifest_json.fetch(options),
276
- model.deck.fetch(options)
282
+ model.deck.fetch(options),
277
283
  ]);
278
284
  })
279
285
  );
@@ -301,7 +307,7 @@ export const AppointmentModel = BaseModel.extend(
301
307
  no_share_after: appointment.no_share_after,
302
308
  no_delete_after: appointment.no_delete_after,
303
309
  team: this._retrieveURL(appointment.team),
304
- editors_can_change_editors: appointment.editors_can_change_editors
310
+ editors_can_change_editors: appointment.editors_can_change_editors,
305
311
  };
306
312
 
307
313
  if (this.id) {
@@ -309,7 +315,7 @@ export const AppointmentModel = BaseModel.extend(
309
315
  }
310
316
 
311
317
  return data;
312
- }
318
+ },
313
319
  }
314
320
  );
315
321
 
@@ -1,7 +1,7 @@
1
1
  import "./pack.js";
2
2
 
3
- import { register } from "../state-register.js";
4
3
  import { BaseModel } from "./base.js";
4
+ import { register } from "../state-register.js";
5
5
 
6
6
  /**
7
7
  * @constructor
@@ -13,7 +13,7 @@ export const AssetModel = BaseModel.extend(
13
13
  modelName: "assets",
14
14
 
15
15
  urlMatchKeys: {
16
- "pack.id": "number"
16
+ "pack.id": "number",
17
17
  },
18
18
 
19
19
  /**
@@ -30,19 +30,19 @@ export const AssetModel = BaseModel.extend(
30
30
  hash_algorithm: "string",
31
31
  hash_digest: "string",
32
32
  modified_date: "date",
33
- orig_path: "string"
33
+ orig_path: "string",
34
34
  },
35
35
 
36
36
  /**
37
37
  * @property {models.PackModel} pack
38
38
  */
39
39
  children: {
40
- pack: "PackModel"
40
+ pack: "PackModel",
41
41
  },
42
42
 
43
43
  url() {
44
44
  return this._url;
45
- }
45
+ },
46
46
  }
47
47
  );
48
48
 
@@ -2,8 +2,8 @@ import "./template.js";
2
2
  import "./team.js";
3
3
  import "./deck.js";
4
4
 
5
- import { register } from "../state-register.js";
6
5
  import { BaseModel } from "./base.js";
6
+ import { register } from "../state-register.js";
7
7
 
8
8
  /**
9
9
  * @constructor
@@ -18,7 +18,7 @@ export const AutoAdjunctKeyCheckModel = BaseModel.extend(
18
18
  * @property {array} preferred_keys
19
19
  */
20
20
  props: {
21
- preferred_keys: "array"
21
+ preferred_keys: "array",
22
22
  },
23
23
 
24
24
  /**
@@ -27,13 +27,13 @@ export const AutoAdjunctKeyCheckModel = BaseModel.extend(
27
27
  */
28
28
  children: {
29
29
  deck: "DeckModel",
30
- team: "TeamModel"
30
+ team: "TeamModel",
31
31
  },
32
32
 
33
33
  toServer() {
34
34
  const data = {
35
35
  preferred_keys: this.preferred_keys,
36
- deck: this.deck.url()
36
+ deck: this.deck.url(),
37
37
  };
38
38
 
39
39
  if (this.team) {
@@ -41,7 +41,7 @@ export const AutoAdjunctKeyCheckModel = BaseModel.extend(
41
41
  }
42
42
 
43
43
  return data;
44
- }
44
+ },
45
45
  }
46
46
  );
47
47
 
@@ -2,8 +2,8 @@ import "./template.js";
2
2
  import "./team.js";
3
3
  import "./deck.js";
4
4
 
5
- import { register } from "../state-register.js";
6
5
  import { BaseModel } from "./base.js";
6
+ import { register } from "../state-register.js";
7
7
 
8
8
  /**
9
9
  * @constructor
@@ -38,7 +38,7 @@ export const AutoAdjunctModel = BaseModel.extend(
38
38
  key: "string",
39
39
  enabled: "boolean",
40
40
  sequence: "number",
41
- tags: "array"
41
+ tags: "array",
42
42
  },
43
43
 
44
44
  /**
@@ -48,8 +48,8 @@ export const AutoAdjunctModel = BaseModel.extend(
48
48
  children: {
49
49
  deck: "DeckModel",
50
50
  template: "TemplateModel",
51
- team: "TeamModel"
52
- }
51
+ team: "TeamModel",
52
+ },
53
53
  }
54
54
  );
55
55
 
@@ -1,18 +1,17 @@
1
- import url2 from "url";
1
+ import { DATE_FORMAT_T, removeMultiByteChars } from "../utils.js";
2
2
 
3
- import Model from "ampersand-model";
3
+ import { Api } from "../api.js";
4
4
  import Collection from "ampersand-rest-collection";
5
- import dedent from "dedent-js";
5
+ import Model from "ampersand-model";
6
+ import SuperAgentRequest from "superagent-bluebird-promise";
6
7
  import _ from "lodash";
8
+ import dedent from "dedent-js";
9
+ import log from "../log.js";
7
10
  import moment from "moment";
8
11
  import qs from "qs";
9
- import SuperAgentRequest from "superagent-bluebird-promise";
10
-
11
- import { Api } from "../api.js";
12
- import log from "../log.js";
13
12
  import { registeredStates } from "../state-register.js";
14
13
  import { sync } from "../sync.js";
15
- import { DATE_FORMAT_T, removeMultiByteChars } from "../utils.js";
14
+ import url2 from "url";
16
15
 
17
16
  /**
18
17
  * @constructor
@@ -41,7 +40,7 @@ export const BaseModel = Model.extend(
41
40
 
42
41
  constructor(data = {}, opts = {}) {
43
42
  const options = _.defaults(opts, {
44
- data: {}
43
+ data: {},
45
44
  });
46
45
 
47
46
  this._unsetChildren = {};
@@ -140,7 +139,7 @@ export const BaseModel = Model.extend(
140
139
  const replacements = _.extend(
141
140
  {},
142
141
  {
143
- detailKey: "number"
142
+ detailKey: "number",
144
143
  },
145
144
  this.urlMatchKeys
146
145
  );
@@ -171,7 +170,7 @@ export const BaseModel = Model.extend(
171
170
  // If that doesn't match, we can sometimes prevent a nasty log
172
171
  // error from being thrown.
173
172
  const split = urlStructure.split("/");
174
- const argIndex = split.findIndex(val => {
173
+ const argIndex = split.findIndex((val) => {
175
174
  return val.indexOf("{") === 0;
176
175
  });
177
176
 
@@ -188,7 +187,7 @@ export const BaseModel = Model.extend(
188
187
  let interpolatedString;
189
188
  try {
190
189
  interpolatedString = _.template(urlStructure.replace(/\./g, "_"), {
191
- interpolate: /{([\s\S\.]+?)}/g
190
+ interpolate: /{([\s\S\.]+?)}/g,
192
191
  })(regexes);
193
192
  } catch (e) {
194
193
  log.error(
@@ -249,10 +248,10 @@ export const BaseModel = Model.extend(
249
248
 
250
249
  dataTypes: {
251
250
  date: {
252
- set: newVal => {
251
+ set: (newVal) => {
253
252
  return {
254
253
  val: newVal ? moment.utc(newVal).format(DATE_FORMAT_T) : null,
255
- type: "date"
254
+ type: "date",
256
255
  };
257
256
  },
258
257
  compare: (currentVal, newVal) => {
@@ -264,34 +263,34 @@ export const BaseModel = Model.extend(
264
263
  return moment(currentVal).isSame(moment(newVal));
265
264
  }
266
265
  return currentVal !== newVal;
267
- }
266
+ },
268
267
  },
269
268
  stringSanitized: {
270
- set: newVal => {
269
+ set: (newVal) => {
271
270
  return {
272
271
  val: newVal ? removeMultiByteChars(newVal) : newVal,
273
- type: "stringSanitized"
272
+ type: "stringSanitized",
274
273
  };
275
274
  },
276
275
  compare: (currentVal, newVal) => {
277
276
  return currentVal === newVal;
278
277
  },
279
- get: val => {
278
+ get: (val) => {
280
279
  return val;
281
- }
280
+ },
282
281
  },
283
282
  any: {
284
283
  default: () => {
285
284
  return null;
286
- }
287
- }
285
+ },
286
+ },
288
287
  },
289
288
 
290
289
  /**
291
290
  * @property {number} [id]
292
291
  */
293
292
  props: {
294
- id: { type: "any", required: false }
293
+ id: { type: "any", required: false },
295
294
  },
296
295
 
297
296
  /*
@@ -375,13 +374,13 @@ export const BaseModel = Model.extend(
375
374
  // Set previously-initialised children & collections with new
376
375
  // data retrieved during the fetch
377
376
 
378
- Object.keys(this._children).forEach(key => {
377
+ Object.keys(this._children).forEach((key) => {
379
378
  if (response[key]) {
380
379
  this[key] = response[key];
381
380
  }
382
381
  });
383
382
 
384
- Object.keys(this._collections).forEach(key => {
383
+ Object.keys(this._collections).forEach((key) => {
385
384
  if (response[key]) {
386
385
  this[key] = response[key];
387
386
  }
@@ -389,7 +388,7 @@ export const BaseModel = Model.extend(
389
388
  },
390
389
 
391
390
  save() {
392
- return Model.prototype.save.apply(this, arguments).tap(response => {
391
+ return Model.prototype.save.apply(this, arguments).tap((response) => {
393
392
  this._updateResponse(response);
394
393
  });
395
394
  },
@@ -402,7 +401,7 @@ export const BaseModel = Model.extend(
402
401
  this._options = _.extend({}, this._options, options);
403
402
 
404
403
  this.isFetching = true;
405
- return Model.prototype.fetch.apply(this, arguments).tap(response => {
404
+ return Model.prototype.fetch.apply(this, arguments).tap((response) => {
406
405
  this.isFetching = false;
407
406
  this._updateResponse(response);
408
407
  });
@@ -414,7 +413,7 @@ export const BaseModel = Model.extend(
414
413
  }
415
414
  return SuperAgentRequest("OPTIONS", this.url())
416
415
  .set(BaseModel.Auth.headers)
417
- .then(res => {
416
+ .then((res) => {
418
417
  if (res.body && res.body.actions) {
419
418
  return res.body.actions;
420
419
  }
@@ -441,13 +440,13 @@ export const BaseModel = Model.extend(
441
440
  )
442
441
  );
443
442
 
444
- keys.forEach(key => {
443
+ keys.forEach((key) => {
445
444
  if (!_.isUndefined(this._values[key])) {
446
445
  attrs[key] = this._values[key];
447
446
  }
448
447
  });
449
448
 
450
- Object.keys(this._expandedValues).forEach(key => {
449
+ Object.keys(this._expandedValues).forEach((key) => {
451
450
  attrs[key] = this[key];
452
451
  });
453
452
 
@@ -457,13 +456,13 @@ export const BaseModel = Model.extend(
457
456
  // Unset all specified children and collection constructors and insert value
458
457
  // definitions for them (necessary for Ampersand State to treat them as values)
459
458
  _convertToValues() {
460
- Object.keys(this._children).forEach(key => {
459
+ Object.keys(this._children).forEach((key) => {
461
460
  this._definition[key] = { type: "any" };
462
461
  this._unsetChildren[key] = this._children[key];
463
462
  delete this._children[key];
464
463
  });
465
464
 
466
- Object.keys(this._collections).forEach(key => {
465
+ Object.keys(this._collections).forEach((key) => {
467
466
  this._definition[key] = { type: "any" };
468
467
  this._unsetCollections[key] = this._collections[key];
469
468
  delete this._collections[key];
@@ -658,13 +657,13 @@ export const BaseModel = Model.extend(
658
657
  return object;
659
658
  }, {});
660
659
 
661
- Object.keys(this._unsetCollections).forEach(key => {
660
+ Object.keys(this._unsetCollections).forEach((key) => {
662
661
  if (this._unsetCollections[key].canBeEmpty && !this._values[key]) {
663
662
  derived[key] = [];
664
663
  }
665
664
  });
666
665
 
667
- Object.keys(this._unsetChildren).forEach(key => {
666
+ Object.keys(this._unsetChildren).forEach((key) => {
668
667
  if (
669
668
  this._unsetChildren[key].canBeEmpty &&
670
669
  !this._values[key] &&
@@ -690,7 +689,7 @@ export const BaseModel = Model.extend(
690
689
  return _.map(item.toJSON(), "url");
691
690
  } else if (_.isArray(item)) {
692
691
  // It's an array of urls or objects
693
- return item.map(child => {
692
+ return item.map((child) => {
694
693
  return this._retrieveURL(child);
695
694
  });
696
695
  } else if (typeof item === "object" && item !== null) {
@@ -698,7 +697,7 @@ export const BaseModel = Model.extend(
698
697
  }
699
698
 
700
699
  return null;
701
- }
700
+ },
702
701
  }
703
702
  );
704
703
 
@@ -807,11 +806,11 @@ function replacePropertyDefinition(object, name) {
807
806
 
808
807
  return value;
809
808
  },
810
- configurable: true
809
+ configurable: true,
811
810
  });
812
811
  }
813
812
 
814
813
  // Make matchesURL available as a static method
815
- BaseModel.matchesURL = function(url) {
814
+ BaseModel.matchesURL = function (url) {
816
815
  return this.prototype.matchesURL(url);
817
816
  };