@livepreso/api 6.45.0 → 6.47.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 (364) hide show
  1. package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
  2. package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
  3. package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
  4. package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
  5. package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
  6. package/.rush/temp/operation/test/all.log +19 -0
  7. package/.rush/temp/operation/test/state.json +3 -0
  8. package/.rush/temp/package-deps_build.json +156 -141
  9. package/.rush/temp/shrinkwrap-deps.json +281 -214
  10. package/CHANGELOG.json +29 -0
  11. package/CHANGELOG.md +15 -1
  12. package/README.md +4 -4
  13. package/api.build.log +6 -3
  14. package/api.test.cache.log +1 -0
  15. package/api.test.log +19 -0
  16. package/cjs/api.js +18 -2
  17. package/cjs/api.js.map +1 -1
  18. package/cjs/auth.js +3 -3
  19. package/cjs/auth.js.map +1 -1
  20. package/cjs/collections/activity.js.map +1 -1
  21. package/cjs/collections/adjunct-sections.js.map +1 -1
  22. package/cjs/collections/adjunct-slides.js.map +1 -1
  23. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  24. package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
  25. package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
  26. package/cjs/collections/appointment-editors.js.map +1 -1
  27. package/cjs/collections/appointment-section-tags.js.map +1 -1
  28. package/cjs/collections/appointment-slide-tags.js.map +1 -1
  29. package/cjs/collections/appointment-tags.js +9 -7
  30. package/cjs/collections/appointment-tags.js.map +1 -1
  31. package/cjs/collections/appointment-templates.js +36 -0
  32. package/cjs/collections/appointment-templates.js.map +1 -0
  33. package/cjs/collections/appointments.js.map +1 -1
  34. package/cjs/collections/assets.js.map +1 -1
  35. package/cjs/collections/auto-adjuncts.js.map +1 -1
  36. package/cjs/collections/base.js +4 -0
  37. package/cjs/collections/base.js.map +1 -1
  38. package/cjs/collections/base.spec.js.map +1 -1
  39. package/cjs/collections/cms-vals.js +5 -0
  40. package/cjs/collections/cms-vals.js.map +1 -1
  41. package/cjs/collections/contact-phones.js +28 -0
  42. package/cjs/collections/contact-phones.js.map +1 -0
  43. package/cjs/collections/contacts.js.map +1 -1
  44. package/cjs/collections/created-assets.js.map +1 -1
  45. package/cjs/collections/customers.js.map +1 -1
  46. package/cjs/collections/deck-notes.js.map +1 -1
  47. package/cjs/collections/deck-version-screenshots.js.map +1 -1
  48. package/cjs/collections/deck-versions.js.map +1 -1
  49. package/cjs/collections/decks.js.map +1 -1
  50. package/cjs/collections/deleted-assets.js.map +1 -1
  51. package/cjs/collections/dispatches.js.map +1 -1
  52. package/cjs/collections/event-objects.js.map +1 -1
  53. package/cjs/collections/events.js.map +1 -1
  54. package/cjs/collections/groups.js.map +1 -1
  55. package/cjs/collections/images.js.map +1 -1
  56. package/cjs/collections/locations.js.map +1 -1
  57. package/cjs/collections/opportunities.js.map +1 -1
  58. package/cjs/collections/pack-diffs.js.map +1 -1
  59. package/cjs/collections/packs.js.map +1 -1
  60. package/cjs/collections/presets.js.map +1 -1
  61. package/cjs/collections/section-selections.js.map +1 -1
  62. package/cjs/collections/sections.js.map +1 -1
  63. package/cjs/collections/signers.js +28 -0
  64. package/cjs/collections/signers.js.map +1 -0
  65. package/cjs/collections/signing-requests.js +28 -0
  66. package/cjs/collections/signing-requests.js.map +1 -0
  67. package/cjs/collections/slide-selections.js.map +1 -1
  68. package/cjs/collections/slides.js.map +1 -1
  69. package/cjs/collections/snapshots.js.map +1 -1
  70. package/cjs/collections/sub-slides.js.map +1 -1
  71. package/cjs/collections/tags.js.map +1 -1
  72. package/cjs/collections/teams.js.map +1 -1
  73. package/cjs/collections/templates.js.map +1 -1
  74. package/cjs/collections/uploads.js.map +1 -1
  75. package/cjs/collections/users.js.map +1 -1
  76. package/cjs/collections.js +52 -13
  77. package/cjs/collections.js.map +1 -1
  78. package/cjs/fixtures.js +232 -0
  79. package/cjs/fixtures.js.map +1 -0
  80. package/cjs/index.js +28 -4
  81. package/cjs/index.js.map +1 -1
  82. package/cjs/models/activity-item.js +10 -2
  83. package/cjs/models/activity-item.js.map +1 -1
  84. package/cjs/models/adjunct-section.js +7 -2
  85. package/cjs/models/adjunct-section.js.map +1 -1
  86. package/cjs/models/adjunct-slide.js +7 -2
  87. package/cjs/models/adjunct-slide.js.map +1 -1
  88. package/cjs/models/adjunct-sub-slide.js.map +1 -1
  89. package/cjs/models/adjunct.js +40 -0
  90. package/cjs/models/adjunct.js.map +1 -1
  91. package/cjs/models/appointment-adjunct-tags.js.map +1 -1
  92. package/cjs/models/appointment-deckversion-tags.js.map +1 -1
  93. package/cjs/models/appointment-editor.js.map +1 -1
  94. package/cjs/models/appointment-section-tags.js.map +1 -1
  95. package/cjs/models/appointment-slide-tags.js.map +1 -1
  96. package/cjs/models/appointment-stats.js.map +1 -1
  97. package/cjs/models/appointment-tags.js.map +1 -1
  98. package/cjs/models/appointment-template.js +28 -0
  99. package/cjs/models/appointment-template.js.map +1 -0
  100. package/cjs/models/appointment-viewing.js.map +1 -1
  101. package/cjs/models/appointment.js +108 -15
  102. package/cjs/models/appointment.js.map +1 -1
  103. package/cjs/models/asset.js +12 -0
  104. package/cjs/models/asset.js.map +1 -1
  105. package/cjs/models/auto-adjunct-key-check.js.map +1 -1
  106. package/cjs/models/auto-adjunct.js +2 -1
  107. package/cjs/models/auto-adjunct.js.map +1 -1
  108. package/cjs/models/base.js +25 -5
  109. package/cjs/models/base.js.map +1 -1
  110. package/cjs/models/base.spec.js.map +1 -1
  111. package/cjs/models/choicelist.js.map +1 -1
  112. package/cjs/models/cms-val.js +35 -1
  113. package/cjs/models/cms-val.js.map +1 -1
  114. package/cjs/models/cms-val.spec.js +32 -0
  115. package/cjs/models/cms-val.spec.js.map +1 -0
  116. package/cjs/models/contact-phone.js +66 -0
  117. package/cjs/models/contact-phone.js.map +1 -0
  118. package/cjs/models/contact.js.map +1 -1
  119. package/cjs/models/customer.js +3 -1
  120. package/cjs/models/customer.js.map +1 -1
  121. package/cjs/models/deck-note.js.map +1 -1
  122. package/cjs/models/deck-tags.js.map +1 -1
  123. package/cjs/models/deck-version-screenshot.js.map +1 -1
  124. package/cjs/models/deck-version.js +31 -8
  125. package/cjs/models/deck-version.js.map +1 -1
  126. package/cjs/models/deck.js.map +1 -1
  127. package/cjs/models/dispatch-preview.js.map +1 -1
  128. package/cjs/models/dispatch.js.map +1 -1
  129. package/cjs/models/event-object.js.map +1 -1
  130. package/cjs/models/event.js.map +1 -1
  131. package/cjs/models/feed-data.js.map +1 -1
  132. package/cjs/models/file.js.map +1 -1
  133. package/cjs/models/group.js.map +1 -1
  134. package/cjs/models/handover.js.map +1 -1
  135. package/cjs/models/hosted-preso.js.map +1 -1
  136. package/cjs/models/image.js.map +1 -1
  137. package/cjs/models/location.js.map +1 -1
  138. package/cjs/models/manifest-json.js +70 -2
  139. package/cjs/models/manifest-json.js.map +1 -1
  140. package/cjs/models/onshare.js.map +1 -1
  141. package/cjs/models/opportunity.js.map +1 -1
  142. package/cjs/models/pack-diff.js.map +1 -1
  143. package/cjs/models/pack.js.map +1 -1
  144. package/cjs/models/preset.js +4 -1
  145. package/cjs/models/preset.js.map +1 -1
  146. package/cjs/models/refresh-request.js +24 -0
  147. package/cjs/models/refresh-request.js.map +1 -1
  148. package/cjs/models/room.js.map +1 -1
  149. package/cjs/models/salesforce-lookup.js.map +1 -1
  150. package/cjs/models/section-selection.js.map +1 -1
  151. package/cjs/models/section.js.map +1 -1
  152. package/cjs/models/signer.js +47 -0
  153. package/cjs/models/signer.js.map +1 -0
  154. package/cjs/models/signing-request.js +66 -0
  155. package/cjs/models/signing-request.js.map +1 -0
  156. package/cjs/models/slide-selection.js.map +1 -1
  157. package/cjs/models/slide.js.map +1 -1
  158. package/cjs/models/snapshot.js +41 -2
  159. package/cjs/models/snapshot.js.map +1 -1
  160. package/cjs/models/snapshot.spec.js +51 -0
  161. package/cjs/models/snapshot.spec.js.map +1 -0
  162. package/cjs/models/sub-slide.js.map +1 -1
  163. package/cjs/models/support-ticket.js.map +1 -1
  164. package/cjs/models/tag.js.map +1 -1
  165. package/cjs/models/team.js +15 -2
  166. package/cjs/models/team.js.map +1 -1
  167. package/cjs/models/template.js +105 -3
  168. package/cjs/models/template.js.map +1 -1
  169. package/cjs/models/tenancy.js +3 -0
  170. package/cjs/models/tenancy.js.map +1 -1
  171. package/cjs/models/timing-log.js.map +1 -1
  172. package/cjs/models/timing-log.spec.js.map +1 -1
  173. package/cjs/models/token.js.map +1 -1
  174. package/cjs/models/transcribe-socket.js.map +1 -1
  175. package/cjs/models/user.js +7 -2
  176. package/cjs/models/user.js.map +1 -1
  177. package/cjs/models.js +52 -13
  178. package/cjs/models.js.map +1 -1
  179. package/cjs/presentation/appointment-presentation.js.map +1 -1
  180. package/cjs/presentation/base-presentation-collection.js.map +1 -1
  181. package/cjs/presentation/base-presentation-model.js +23 -14
  182. package/cjs/presentation/base-presentation-model.js.map +1 -1
  183. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  184. package/cjs/presentation/presentation-deck.js +5 -1
  185. package/cjs/presentation/presentation-deck.js.map +1 -1
  186. package/cjs/presentation/presentation-deck.spec.js.map +1 -1
  187. package/cjs/presentation/presentation-decks.js.map +1 -1
  188. package/cjs/presentation/presentation-section.js +33 -8
  189. package/cjs/presentation/presentation-section.js.map +1 -1
  190. package/cjs/presentation/presentation-section.spec.js +13 -20
  191. package/cjs/presentation/presentation-section.spec.js.map +1 -1
  192. package/cjs/presentation/presentation-sections.js.map +1 -1
  193. package/cjs/presentation/presentation-slide.js +43 -9
  194. package/cjs/presentation/presentation-slide.js.map +1 -1
  195. package/cjs/presentation/presentation-slide.spec.js +11 -18
  196. package/cjs/presentation/presentation-slide.spec.js.map +1 -1
  197. package/cjs/presentation/presentation-slides.js.map +1 -1
  198. package/cjs/presentation/presentation-subslide.js.map +1 -1
  199. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  200. package/cjs/presentation/presentation-subslides.js.map +1 -1
  201. package/cjs/presentation/presentation.js +8 -3
  202. package/cjs/presentation/presentation.js.map +1 -1
  203. package/cjs/selections.js +106 -0
  204. package/cjs/selections.js.map +1 -0
  205. package/cjs/sync.js.map +1 -1
  206. package/cjs/utils.js +43 -6
  207. package/cjs/utils.js.map +1 -1
  208. package/cjs/utils.spec.js +1 -1
  209. package/cjs/utils.spec.js.map +1 -1
  210. package/jest.config.js +4 -3
  211. package/package.json +12 -9
  212. package/src/api.js +17 -2
  213. package/src/auth.js +3 -3
  214. package/src/collections/activity.js +4 -4
  215. package/src/collections/adjunct-sections.js +1 -1
  216. package/src/collections/adjunct-slides.js +1 -1
  217. package/src/collections/adjunct-sub-slides.js +1 -1
  218. package/src/collections/appointment-adjunct-tags.js +1 -1
  219. package/src/collections/appointment-deckversion-tags.js +2 -2
  220. package/src/collections/appointment-editors.js +1 -1
  221. package/src/collections/appointment-section-tags.js +1 -1
  222. package/src/collections/appointment-slide-tags.js +1 -1
  223. package/src/collections/appointment-tags.js +20 -18
  224. package/src/collections/appointment-templates.js +26 -0
  225. package/src/collections/appointments.js +9 -9
  226. package/src/collections/assets.js +1 -1
  227. package/src/collections/auto-adjuncts.js +1 -1
  228. package/src/collections/base.js +10 -6
  229. package/src/collections/base.spec.js +2 -2
  230. package/src/collections/cms-vals.js +5 -1
  231. package/src/collections/contact-phones.js +18 -0
  232. package/src/collections/contacts.js +1 -1
  233. package/src/collections/created-assets.js +1 -1
  234. package/src/collections/customers.js +1 -1
  235. package/src/collections/deck-notes.js +1 -1
  236. package/src/collections/deck-version-screenshots.js +1 -1
  237. package/src/collections/deck-versions.js +1 -1
  238. package/src/collections/decks.js +1 -1
  239. package/src/collections/deleted-assets.js +1 -1
  240. package/src/collections/dispatches.js +2 -2
  241. package/src/collections/event-objects.js +1 -1
  242. package/src/collections/events.js +1 -1
  243. package/src/collections/groups.js +1 -1
  244. package/src/collections/images.js +1 -1
  245. package/src/collections/locations.js +1 -1
  246. package/src/collections/opportunities.js +1 -1
  247. package/src/collections/pack-diffs.js +1 -1
  248. package/src/collections/packs.js +1 -1
  249. package/src/collections/presets.js +1 -1
  250. package/src/collections/section-selections.js +1 -1
  251. package/src/collections/sections.js +1 -1
  252. package/src/collections/signers.js +18 -0
  253. package/src/collections/signing-requests.js +18 -0
  254. package/src/collections/slide-selections.js +1 -1
  255. package/src/collections/slides.js +1 -1
  256. package/src/collections/snapshots.js +1 -1
  257. package/src/collections/sub-slides.js +1 -1
  258. package/src/collections/tags.js +1 -1
  259. package/src/collections/teams.js +1 -1
  260. package/src/collections/templates.js +1 -1
  261. package/src/collections/uploads.js +1 -1
  262. package/src/collections/users.js +1 -1
  263. package/src/collections.js +4 -1
  264. package/src/fixtures.js +195 -0
  265. package/src/index.js +2 -3
  266. package/src/models/activity-item.js +9 -1
  267. package/src/models/adjunct-section.js +7 -2
  268. package/src/models/adjunct-slide.js +7 -2
  269. package/src/models/adjunct-sub-slide.js +1 -1
  270. package/src/models/adjunct.js +39 -1
  271. package/src/models/appointment-adjunct-tags.js +1 -1
  272. package/src/models/appointment-deckversion-tags.js +1 -1
  273. package/src/models/appointment-editor.js +1 -1
  274. package/src/models/appointment-section-tags.js +1 -1
  275. package/src/models/appointment-slide-tags.js +1 -1
  276. package/src/models/appointment-stats.js +1 -1
  277. package/src/models/appointment-tags.js +1 -1
  278. package/src/models/appointment-template.js +19 -0
  279. package/src/models/appointment-viewing.js +1 -1
  280. package/src/models/appointment.js +104 -38
  281. package/src/models/asset.js +15 -1
  282. package/src/models/auto-adjunct-key-check.js +1 -1
  283. package/src/models/auto-adjunct.js +2 -1
  284. package/src/models/base.js +36 -21
  285. package/src/models/base.spec.js +18 -18
  286. package/src/models/choicelist.js +1 -1
  287. package/src/models/cms-val.js +24 -1
  288. package/src/models/cms-val.spec.js +14 -0
  289. package/src/models/contact-phone.js +57 -0
  290. package/src/models/contact.js +1 -1
  291. package/src/models/customer.js +3 -3
  292. package/src/models/deck-note.js +1 -1
  293. package/src/models/deck-tags.js +1 -1
  294. package/src/models/deck-version-screenshot.js +1 -1
  295. package/src/models/deck-version.js +32 -6
  296. package/src/models/deck.js +1 -1
  297. package/src/models/dispatch-preview.js +1 -1
  298. package/src/models/dispatch.js +1 -1
  299. package/src/models/event-object.js +1 -1
  300. package/src/models/event.js +1 -1
  301. package/src/models/feed-data.js +2 -2
  302. package/src/models/file.js +1 -1
  303. package/src/models/group.js +1 -1
  304. package/src/models/handover.js +1 -1
  305. package/src/models/hosted-preso.js +1 -1
  306. package/src/models/image.js +1 -1
  307. package/src/models/location.js +1 -1
  308. package/src/models/manifest-json.js +65 -5
  309. package/src/models/onshare.js +1 -1
  310. package/src/models/opportunity.js +1 -1
  311. package/src/models/pack-diff.js +1 -1
  312. package/src/models/pack.js +1 -1
  313. package/src/models/preset.js +4 -1
  314. package/src/models/refresh-request.js +16 -1
  315. package/src/models/room.js +1 -1
  316. package/src/models/salesforce-lookup.js +1 -1
  317. package/src/models/section-selection.js +1 -1
  318. package/src/models/section.js +1 -1
  319. package/src/models/signer.js +37 -0
  320. package/src/models/signing-request.js +56 -0
  321. package/src/models/slide-selection.js +1 -1
  322. package/src/models/slide.js +1 -1
  323. package/src/models/snapshot.js +30 -2
  324. package/src/models/snapshot.spec.js +31 -0
  325. package/src/models/sub-slide.js +1 -1
  326. package/src/models/support-ticket.js +1 -1
  327. package/src/models/tag.js +1 -1
  328. package/src/models/team.js +14 -3
  329. package/src/models/template.js +72 -2
  330. package/src/models/tenancy.js +4 -1
  331. package/src/models/timing-log.js +2 -2
  332. package/src/models/timing-log.spec.js +1 -1
  333. package/src/models/token.js +1 -1
  334. package/src/models/transcribe-socket.js +1 -1
  335. package/src/models/user.js +13 -2
  336. package/src/models.js +4 -1
  337. package/src/presentation/appointment-presentation.js +4 -4
  338. package/src/presentation/base-presentation-collection.js +1 -1
  339. package/src/presentation/base-presentation-model.js +25 -16
  340. package/src/presentation/base-presentation-model.spec.js +5 -5
  341. package/src/presentation/presentation-deck.js +28 -23
  342. package/src/presentation/presentation-deck.spec.js +4 -4
  343. package/src/presentation/presentation-decks.js +1 -1
  344. package/src/presentation/presentation-section.js +59 -31
  345. package/src/presentation/presentation-section.spec.js +31 -32
  346. package/src/presentation/presentation-sections.js +1 -1
  347. package/src/presentation/presentation-slide.js +51 -25
  348. package/src/presentation/presentation-slide.spec.js +21 -27
  349. package/src/presentation/presentation-slides.js +1 -1
  350. package/src/presentation/presentation-subslide.js +5 -5
  351. package/src/presentation/presentation-subslide.spec.js +3 -3
  352. package/src/presentation/presentation-subslides.js +1 -1
  353. package/src/presentation/presentation.js +5 -3
  354. package/src/selections.js +71 -0
  355. package/src/sync.js +1 -1
  356. package/src/utils.js +31 -8
  357. package/src/utils.spec.js +8 -8
  358. package/.rush/temp/package-deps_test.json +0 -172
  359. package/cjs/collections/appointment-duplicates.js +0 -29
  360. package/cjs/collections/appointment-duplicates.js.map +0 -1
  361. package/cjs/models/appointment-duplicate.js +0 -94
  362. package/cjs/models/appointment-duplicate.js.map +0 -1
  363. package/src/collections/appointment-duplicates.js +0 -19
  364. package/src/models/appointment-duplicate.js +0 -73
@@ -50,7 +50,7 @@ describe("#getVisibilityAndSequence", () => {
50
50
  },
51
51
  {
52
52
  choicelist,
53
- }
53
+ },
54
54
  );
55
55
 
56
56
  const expected = {
@@ -80,7 +80,7 @@ describe("#getVisibilityAndSequence", () => {
80
80
  },
81
81
  {
82
82
  selections,
83
- }
83
+ },
84
84
  );
85
85
 
86
86
  const expected = {
@@ -122,7 +122,7 @@ describe("#getVisibilityAndSequence", () => {
122
122
  {
123
123
  choicelist,
124
124
  selections,
125
- }
125
+ },
126
126
  );
127
127
 
128
128
  const expected = {
@@ -262,7 +262,7 @@ describe("#filterScreenshotsByTeam", () => {
262
262
  it("should just return global screenshots if team is null", () => {
263
263
  const filtered = BasePresentationModel.filterScreenshotsByTeam(
264
264
  screenshots,
265
- null
265
+ null,
266
266
  ).toJSON();
267
267
 
268
268
  expect(filtered).toEqual([
@@ -282,7 +282,7 @@ describe("#filterScreenshotsByTeam", () => {
282
282
  it("should return globals with team override", () => {
283
283
  const filtered = BasePresentationModel.filterScreenshotsByTeam(
284
284
  screenshots,
285
- 1
285
+ 1,
286
286
  ).toJSON();
287
287
 
288
288
  expect(filtered).toEqual([
@@ -50,7 +50,10 @@ export const PresentationDeck = BasePresentationModel.extend(
50
50
  deckID: "number",
51
51
  index: "number",
52
52
  thumbnail: "string",
53
- visible: "boolean",
53
+ visible: {
54
+ type: "boolean",
55
+ visible: true,
56
+ },
54
57
  key: "string",
55
58
  common: "object",
56
59
  title: "string",
@@ -93,7 +96,7 @@ export const PresentationDeck = BasePresentationModel.extend(
93
96
 
94
97
  return this._url;
95
98
  },
96
- }
99
+ },
97
100
  );
98
101
 
99
102
  /**
@@ -107,7 +110,7 @@ export const PresentationDeck = BasePresentationModel.extend(
107
110
  */
108
111
  PresentationDeck.createFromDeckVersion = function (
109
112
  deckVersionModel,
110
- options = {}
113
+ options = {},
111
114
  ) {
112
115
  _.defaults(options, {
113
116
  index: 0,
@@ -123,6 +126,8 @@ PresentationDeck.createFromDeckVersion = function (
123
126
  choicelist: null,
124
127
  });
125
128
 
129
+ options.screenshots = PresentationDeck.screenshotsToMap(options.screenshots);
130
+
126
131
  const assetRoot = getAssetRoot(deckVersionModel.index_asset.url());
127
132
  let html;
128
133
  let css;
@@ -144,7 +149,7 @@ PresentationDeck.createFromDeckVersion = function (
144
149
  index: options.index,
145
150
  thumbnail: PresentationDeck.getThumbnail(
146
151
  deckVersionModel,
147
- options.screenshots
152
+ options.screenshots,
148
153
  ),
149
154
  deckID: deckVersionModel.deck.id,
150
155
  visible: true,
@@ -161,7 +166,7 @@ PresentationDeck.createFromDeckVersion = function (
161
166
  if (!deck.key) {
162
167
  log.warn(
163
168
  "Deck key not available to presentation",
164
- deckVersionModel.deck.toJSON()
169
+ deckVersionModel.deck.toJSON(),
165
170
  );
166
171
  }
167
172
 
@@ -186,7 +191,7 @@ PresentationDeck.createFromDeckVersion = function (
186
191
  url: selection.slide.url(),
187
192
  id: selection.id,
188
193
  };
189
- })
194
+ }),
190
195
  );
191
196
 
192
197
  // We want all adjuncts to have fake ids that can't possibly overlap with the ids of
@@ -214,7 +219,7 @@ PresentationDeck.createFromDeckVersion = function (
214
219
  deckVersionModel.section_set.forEach((sectionModel) => {
215
220
  const section = PresentationSection.createFromSection(
216
221
  sectionModel,
217
- options
222
+ options,
218
223
  );
219
224
 
220
225
  section.addSlides(sectionModel.slide_set, options);
@@ -231,7 +236,7 @@ PresentationDeck.createFromDeckVersion = function (
231
236
  const section = PresentationSection.createFromAdjunctSection(
232
237
  adjunctSection,
233
238
  DeckVersionModel,
234
- options
239
+ options,
235
240
  );
236
241
 
237
242
  deck.sections.add(section);
@@ -264,7 +269,7 @@ PresentationDeck.createFromDeckVersion = function (
264
269
  const section = PresentationSection.createFromImpostorSection(
265
270
  slideModel,
266
271
  DeckVersionModel,
267
- options
272
+ options,
268
273
  );
269
274
 
270
275
  deck.sections.add(section);
@@ -281,7 +286,7 @@ PresentationDeck.createFromDeckVersion = function (
281
286
  const slide = PresentationSlide.createFromAdjunctSlide(
282
287
  adjunctSlideModel,
283
288
  null,
284
- options
289
+ options,
285
290
  );
286
291
 
287
292
  slides.push(slide);
@@ -297,7 +302,7 @@ PresentationDeck.createFromDeckVersion = function (
297
302
  // next section.
298
303
  deck.sections.models.reverse().forEach((section) => {
299
304
  const sectionSlides = slides.filter(
300
- (slide) => slide.sequence > section.sequence
305
+ (slide) => slide.sequence > section.sequence,
301
306
  );
302
307
 
303
308
  section.slides.add(sectionSlides);
@@ -337,7 +342,7 @@ PresentationDeck.createFromDeckVersion = function (
337
342
  const adjunctSection = PresentationSection.createFromAdjunctSection(
338
343
  adjunctSlideModel,
339
344
  DeckVersionModel,
340
- options
345
+ options,
341
346
  );
342
347
 
343
348
  deck.sections.add(adjunctSection);
@@ -351,9 +356,9 @@ PresentationDeck.createFromDeckVersion = function (
351
356
  return PresentationSection.createFromTemplate(
352
357
  template,
353
358
  deck.sections.length + index,
354
- options.getUniqueAdjunctID()
359
+ options.getUniqueAdjunctID(),
355
360
  );
356
- })
361
+ }),
357
362
  );
358
363
  }
359
364
 
@@ -363,14 +368,14 @@ PresentationDeck.createFromDeckVersion = function (
363
368
  // We already have the template on the deckversion, so we can find it here.
364
369
  if (!auto.template) {
365
370
  throw new Error(
366
- "Attempted to use an autoadjunct that has no template."
371
+ "Attempted to use an autoadjunct that has no template.",
367
372
  );
368
373
  }
369
374
 
370
375
  const section = PresentationSection.createFromTemplate(
371
376
  auto.template,
372
377
  deck.sections.length + index,
373
- options.getUniqueAdjunctID()
378
+ options.getUniqueAdjunctID(),
374
379
  );
375
380
 
376
381
  // We've just borrowed the "from template" method above. We want to add
@@ -409,7 +414,7 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
409
414
 
410
415
  const usesImpostorSections = _.some(
411
416
  manifestJSON.tags,
412
- (tags) => tags.indexOf("section-header") !== -1
417
+ (tags) => tags.indexOf("section-header") !== -1,
413
418
  );
414
419
  deck.usesImpostorSections = usesImpostorSections;
415
420
 
@@ -435,7 +440,7 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
435
440
  items = _.sortBy(items, "sequence");
436
441
 
437
442
  const sections = items.filter(
438
- (item) => item.tags.indexOf("section-header") !== -1
443
+ (item) => item.tags.indexOf("section-header") !== -1,
439
444
  );
440
445
 
441
446
  sections.forEach((item, index) => {
@@ -452,7 +457,7 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
452
457
  deck.sections.add(
453
458
  sections.map((section, index) => {
454
459
  return PresentationSection.createFromManifestImpostor(section, index);
455
- })
460
+ }),
456
461
  );
457
462
 
458
463
  deck.realSection = PresentationSection.createFromManifestImpostor(items[0]);
@@ -466,9 +471,9 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
466
471
  return PresentationSection.createFromManifestJSON(
467
472
  manifestJSON,
468
473
  key,
469
- index
474
+ index,
470
475
  );
471
- })
476
+ }),
472
477
  );
473
478
  }
474
479
 
@@ -481,7 +486,7 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
481
486
  index_asset: {
482
487
  url: url2.resolve(
483
488
  manifestJSON.getTemplateAssetPath(key),
484
- "index.html"
489
+ "index.html",
485
490
  ),
486
491
  },
487
492
  };
@@ -492,7 +497,7 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
492
497
  deck.sections.add(
493
498
  templates.map((template, index) => {
494
499
  return PresentationSection.createFromTemplate(template, index, minID);
495
- })
500
+ }),
496
501
  );
497
502
  }
498
503
 
@@ -141,7 +141,7 @@ describe("#createFromDeckVersion", () => {
141
141
  expect(deck.sections.length).toEqual(3);
142
142
  expect(deck.sections.at(0).title).toEqual("Section 1");
143
143
  expect(deck.sections.at(deck.sections.length - 1).title).toEqual(
144
- "Section 3"
144
+ "Section 3",
145
145
  );
146
146
  });
147
147
 
@@ -160,7 +160,7 @@ describe("#createFromDeckVersion", () => {
160
160
  expect(lastSection.title).toEqual("Orange");
161
161
  expect(lastSection.key).toEqual("template-orange");
162
162
  expect(lastSection.html).toEqual(
163
- "http://path/to/template/orange/index.html"
163
+ "http://path/to/template/orange/index.html",
164
164
  );
165
165
  expect(lastSection.css).toEqual("http://path/to/template/orange/slide.css");
166
166
  });
@@ -182,7 +182,7 @@ describe("#createFromDeckVersion", () => {
182
182
 
183
183
  const presentationDeck = PresentationDeck.createFromDeckVersion(
184
184
  deck,
185
- options
185
+ options,
186
186
  );
187
187
  expect(presentationDeck.thumbnail).toEqual("test-screenshot.png");
188
188
  });
@@ -202,7 +202,7 @@ describe("#createFromDeckVersion", () => {
202
202
 
203
203
  const presentationDeck = PresentationDeck.createFromDeckVersion(
204
204
  deck,
205
- options
205
+ options,
206
206
  );
207
207
  const presentationSection = presentationDeck.sections.first();
208
208
  const presentationSlide = presentationSection.slides.first();
@@ -13,7 +13,7 @@ export const PresentationDeckCollection = BasePresentationCollection.extend(
13
13
  /** @lends presentation.PresentationDeckCollection# */ {
14
14
  comparator: "sequence",
15
15
  model: "PresentationDeck",
16
- }
16
+ },
17
17
  );
18
18
 
19
19
  register("PresentationDeckCollection", PresentationDeckCollection);
@@ -96,7 +96,7 @@ export const PresentationSection = BasePresentationModel.extend(
96
96
  impostor: "boolean",
97
97
  isWelcome: {
98
98
  type: "boolean",
99
- default: () => false,
99
+ default: false,
100
100
  },
101
101
  cmsvalkey_set: "array",
102
102
  },
@@ -106,6 +106,7 @@ export const PresentationSection = BasePresentationModel.extend(
106
106
  */
107
107
  children: {
108
108
  adjunct: "AdjunctModel",
109
+ template: "TemplateModel",
109
110
  },
110
111
 
111
112
  /**
@@ -135,12 +136,12 @@ export const PresentationSection = BasePresentationModel.extend(
135
136
  return PresentationSlide.createFromAdjunctSlide(
136
137
  slide,
137
138
  this,
138
- options
139
+ options,
139
140
  );
140
141
  }
141
142
 
142
143
  return PresentationSlide.createFromSlide(slide, options);
143
- })
144
+ }),
144
145
  );
145
146
  },
146
147
 
@@ -158,7 +159,7 @@ export const PresentationSection = BasePresentationModel.extend(
158
159
  }
159
160
  return this._url;
160
161
  },
161
- }
162
+ },
162
163
  );
163
164
 
164
165
  /**
@@ -176,6 +177,10 @@ PresentationSection.createFromSection = function (sectionModel, options = {}) {
176
177
  screenshots: new collections.DeckVersionScreenshotCollection(),
177
178
  });
178
179
 
180
+ options.screenshots = PresentationSection.screenshotsToMap(
181
+ options.screenshots,
182
+ );
183
+
179
184
  let html;
180
185
  let css;
181
186
 
@@ -194,7 +199,7 @@ PresentationSection.createFromSection = function (sectionModel, options = {}) {
194
199
 
195
200
  const config = PresentationSection.getVisibilityAndSequence(
196
201
  sectionModel,
197
- options
202
+ options,
198
203
  );
199
204
 
200
205
  const tags = PresentationSection.getTags(sectionModel, options);
@@ -208,7 +213,7 @@ PresentationSection.createFromSection = function (sectionModel, options = {}) {
208
213
  adjunctSlideLimit: sectionModel.adjunctslide_limit,
209
214
  thumbnail: PresentationSection.getThumbnail(
210
215
  sectionModel,
211
- options.screenshots
216
+ options.screenshots,
212
217
  ),
213
218
  custom: false,
214
219
  impostor: false,
@@ -237,7 +242,7 @@ PresentationSection.createFromSection = function (sectionModel, options = {}) {
237
242
  PresentationSection.createFromAdjunctSection = function (
238
243
  adjunctSectionModel,
239
244
  deckVersionModel,
240
- options = {}
245
+ options = {},
241
246
  ) {
242
247
  _.defaults(options, {
243
248
  rootAssetPath: null,
@@ -249,6 +254,10 @@ PresentationSection.createFromAdjunctSection = function (
249
254
  screenshots: new collections.DeckVersionScreenshotCollection(),
250
255
  });
251
256
 
257
+ options.screenshots = PresentationSection.screenshotsToMap(
258
+ options.screenshots,
259
+ );
260
+
252
261
  const keyID =
253
262
  adjunctSectionModel.id ||
254
263
  (adjunctSectionModel.creator_autoadjunct
@@ -266,20 +275,17 @@ PresentationSection.createFromAdjunctSection = function (
266
275
 
267
276
  const config = PresentationSection.getVisibilityAndSequence(
268
277
  adjunctSectionModel,
269
- options
278
+ options,
270
279
  );
271
280
 
272
281
  const tags = PresentationSection.getTags(adjunctSectionModel, options);
282
+ const autoAdjunctID = adjunctSectionModel.creator_autoadjunct?.id || null;
273
283
 
274
284
  const section = new PresentationSection({
275
285
  id: options.getUniqueAdjunctID(),
276
- adjunct: adjunctSectionModel.adjunct
277
- ? adjunctSectionModel.adjunct.url()
278
- : null,
286
+ adjunct: adjunctSectionModel.adjunct,
279
287
  adjunctID: adjunctSectionModel.id,
280
- autoAdjunctID: adjunctSectionModel.creator_autoadjunct
281
- ? adjunctSectionModel.creator_autoadjunct.id
282
- : null,
288
+ autoAdjunctID,
283
289
  key,
284
290
  thumbnail: adjunctSectionModel.image_256,
285
291
  custom: !adjunctSectionModel.created_by_autoadjunct,
@@ -294,13 +300,15 @@ PresentationSection.createFromAdjunctSection = function (
294
300
  index: config.sequence,
295
301
  sequence: config.sequence,
296
302
  visible: config.visible,
297
- cmsvalkey_set: [],
303
+ cmsvalkey_set: adjunctSectionModel.template?.cmsvalkey_set || [],
304
+ templateID: adjunctSectionModel.template?.id || null,
305
+ template: adjunctSectionModel.template || null,
298
306
  });
299
307
 
300
308
  if (adjunctSectionModel.template) {
301
309
  if (!adjunctSectionModel.template.index_asset) {
302
310
  throw new Error(
303
- "Template missing index_asset. Do you have the whole template available?"
311
+ "Template missing index_asset. Do you have the whole template available?",
304
312
  );
305
313
  }
306
314
  const origPath = adjunctSectionModel.template.index_asset.orig_path;
@@ -312,7 +320,7 @@ PresentationSection.createFromAdjunctSection = function (
312
320
  css = `${options.rootAssetPath}${origPath}/slide.css`;
313
321
  } else {
314
322
  const assetRoot = getAssetRoot(
315
- adjunctSectionModel.template.index_asset.url()
323
+ adjunctSectionModel.template.index_asset.url(),
316
324
  );
317
325
  html = `${assetRoot}index.html`;
318
326
  css = `${assetRoot}slide.css`;
@@ -324,7 +332,7 @@ PresentationSection.createFromAdjunctSection = function (
324
332
  // use the template's image as a fallback
325
333
  PresentationSection.getThumbnail(
326
334
  adjunctSectionModel.creator_autoadjunct,
327
- options.screenshots
335
+ options.screenshots,
328
336
  ) || adjunctSectionModel.template.image_256;
329
337
  } else {
330
338
  section.image = adjunctSectionModel.image_original;
@@ -336,7 +344,7 @@ PresentationSection.createFromAdjunctSection = function (
336
344
  PresentationSection.createFromImpostorSection = function (
337
345
  slideModel,
338
346
  DeckVersionModel,
339
- options = {}
347
+ options = {},
340
348
  ) {
341
349
  _.defaults(options, {
342
350
  rootAssetPath: null,
@@ -345,6 +353,10 @@ PresentationSection.createFromImpostorSection = function (
345
353
  screenshots: new collections.DeckVersionScreenshotCollection(),
346
354
  });
347
355
 
356
+ options.screenshots = PresentationSection.screenshotsToMap(
357
+ options.screenshots,
358
+ );
359
+
348
360
  let html;
349
361
  let css;
350
362
 
@@ -352,7 +364,7 @@ PresentationSection.createFromImpostorSection = function (
352
364
 
353
365
  if (options.rootAssetPath) {
354
366
  const baseRoot = getAssetRoot(
355
- slideModel.section.deckversion.index_asset.url()
367
+ slideModel.section.deckversion.index_asset.url(),
356
368
  );
357
369
  const sectionPath = assetRoot.slice(baseRoot.length);
358
370
 
@@ -365,11 +377,10 @@ PresentationSection.createFromImpostorSection = function (
365
377
 
366
378
  const config = PresentationSection.getVisibilityAndSequence(
367
379
  slideModel,
368
- options
380
+ options,
369
381
  );
370
382
 
371
383
  const tags = PresentationSection.getTags(slideModel, options);
372
-
373
384
  const section = new PresentationSection({
374
385
  id: slideModel.id,
375
386
  adjunctID: null,
@@ -379,7 +390,7 @@ PresentationSection.createFromImpostorSection = function (
379
390
  adjunctSlideLimit: slideModel.adjunctslide_limit,
380
391
  thumbnail: PresentationSection.getThumbnail(
381
392
  slideModel,
382
- options.screenshots
393
+ options.screenshots,
383
394
  ),
384
395
  custom: false,
385
396
  impostor: true,
@@ -400,7 +411,7 @@ PresentationSection.createFromImpostorSection = function (
400
411
  PresentationSection.createFromManifestJSON = function (
401
412
  manifestJSON,
402
413
  sectionKey,
403
- index
414
+ index,
404
415
  ) {
405
416
  const section = new PresentationSection({
406
417
  id: parseInt(_.uniqueId(), 10),
@@ -428,9 +439,9 @@ PresentationSection.createFromManifestJSON = function (
428
439
  manifestJSON,
429
440
  key,
430
441
  section.id,
431
- slideIndex
442
+ slideIndex,
432
443
  );
433
- })
444
+ }),
434
445
  );
435
446
 
436
447
  return section;
@@ -455,8 +466,8 @@ PresentationSection.createFromManifestImpostor = function (section, index) {
455
466
  PresentationSlide.createFromManifestImpostor(
456
467
  slide,
457
468
  index,
458
- presentationSection.id
459
- )
469
+ presentationSection.id,
470
+ ),
460
471
  );
461
472
  });
462
473
 
@@ -481,13 +492,17 @@ PresentationSection.createFromAutoAdjunct = function (model, opts = {}) {
481
492
  screenshots: new collections.DeckVersionScreenshotCollection(),
482
493
  });
483
494
 
495
+ options.screenshots = PresentationSection.screenshotsToMap(
496
+ options.screenshots,
497
+ );
498
+
484
499
  const tags = PresentationSection.getTags(
485
500
  {
486
501
  isAutoAdjunct: true,
487
502
  key: model.key,
488
503
  tags: model.tags,
489
504
  },
490
- options
505
+ options,
491
506
  );
492
507
 
493
508
  const autoAdjunct = new AutoAdjunctModel(model);
@@ -497,7 +512,8 @@ PresentationSection.createFromAutoAdjunct = function (model, opts = {}) {
497
512
  adjunctID: autoAdjunct.id,
498
513
  autoAdjunctID: autoAdjunct.id,
499
514
  createdByTemplate: autoAdjunct.template !== null,
500
- templateID: autoAdjunct.template ? autoAdjunct.template.id : null,
515
+ templateID: autoAdjunct.template?.id || null,
516
+ template: autoAdjunct.template || null,
501
517
  html: "",
502
518
  css: "",
503
519
  sequence: options.sequence,
@@ -506,7 +522,7 @@ PresentationSection.createFromAutoAdjunct = function (model, opts = {}) {
506
522
  createdByAutoAdjunct: false,
507
523
  thumbnail: PresentationSection.getThumbnail(
508
524
  autoAdjunct,
509
- options.screenshots
525
+ options.screenshots,
510
526
  ),
511
527
  temporary: true,
512
528
  title: autoAdjunct.name,
@@ -526,6 +542,16 @@ PresentationSection.createFromAutoAdjunct = function (model, opts = {}) {
526
542
  autoAdjunctSection.createdByTemplate = true;
527
543
  autoAdjunctSection.templateID = autoAdjunct.template.id;
528
544
  autoAdjunctSection.html = autoAdjunct.template.index_asset.url();
545
+
546
+ const missingKeys = autoAdjunct.template.cmsvalkey_set
547
+ .filter((t) => {
548
+ return !autoAdjunctSection.cmsvalkey_set.find((k) => k.startsWith(t));
549
+ })
550
+ .map((t) => {
551
+ return `${t}-autoadjunct-${autoAdjunct.id}`;
552
+ });
553
+
554
+ autoAdjunctSection.cmsvalkey_set.push(...missingKeys);
529
555
  } else {
530
556
  autoAdjunctSection.image = autoAdjunct.image_original;
531
557
  }
@@ -538,9 +564,11 @@ PresentationSection.createFromTemplate = function (template, index, minID = 0) {
538
564
 
539
565
  const deckversion = new DeckVersionModel(templateModel.deckversion);
540
566
  const templateAssetRoot = getAssetRoot(templateModel.index_asset.url());
567
+
541
568
  const presentationSection = new PresentationSection({
542
569
  id: minID + parseInt(_.uniqueId(), 10),
543
570
  templateID: templateModel.id,
571
+ template: templateModel,
544
572
  key: `template-${templateModel.key}`,
545
573
  title: templateModel.title,
546
574
  html: `${templateAssetRoot}index.html`,