@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 +1 @@
1
- {"version":3,"sources":["../../src/presentation/presentation-deck.js"],"names":["PresentationDeck","BasePresentationModel","extend","props","html","css","id","deckID","index","thumbnail","visible","key","common","title","usesImpostorSections","editable","tags","version","children","realSection","derived","welcomeSlide","fn","PresentationSection","getAttributes","isWelcome","collections","sections","url","_url","DeckVersionModel","createFromDeckVersion","deckVersionModel","options","_","defaults","adjunctSections","AdjunctSectionCollection","adjunctSlides","AdjunctSlideCollection","adjunctSubSlides","AdjunctSubSlideCollection","sectionSelections","SectionSelectionCollection","slideSelections","SlideSelectionCollection","rootAssetPath","templates","choicelist","assetRoot","index_asset","deck","image_256","manifest_json","indexOf","log","warn","toJSON","selections","map","selection","sequence","section","concat","slide","maxID","getUniqueAdjunctID","section_set","forEach","sectionModel","createFromSection","addSlides","slide_set","add","filter","adjunctSection","createFromAdjunctSection","first","adjunctSlideLimit","adjunctslide_limit","slides","slideModel","isSection","createFromImpostorSection","PresentationSlide","createFromSlide","push","adjunctSlideModel","createFromAdjunctSlide","models","reverse","sectionSlides","Math","floor","length","template","createFromTemplate","createFromManifestJSON","manifestJSON","parseInt","uniqueId","url2","resolve","getAssetPath","some","items","Object","keys","titles","ordering","splitKey","split","newKey","sortBy","item","startIndex","endIndex","slice","createFromManifestImpostor","sectionKeys","getTemplateAssetPath","minID","max"],"mappings":"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","sourcesContent":["import \"./presentation-sections.js\";\n\nimport url2 from \"url\";\n\nimport _ from \"lodash\";\n\nimport * as collections from \"../collections\";\nimport { getAssetRoot } from \"../index.js\";\nimport log from \"../log.js\";\nimport { DeckVersionModel } from \"../models\";\nimport { register } from \"../state-register\";\nimport {\n\tgetMaxID,\n\tisImpostor,\n\tisImpostorDeck,\n\tsetSequentialSequences\n} from \"../utils.js\";\nimport { BasePresentationModel } from \"./base-presentation-model\";\nimport { PresentationSection } from \"./presentation-section\";\nimport { PresentationSlide } from \"./presentation-slide\";\n\n/**\n * @constructor\n * @alias presentation.PresentationDeck\n * @extends presentation.BasePresentationModel\n */\nexport const PresentationDeck = BasePresentationModel.extend(\n\t/** @lends presentation.PresentationDeck# */ {\n\t\t/**\n\t\t * @property {string} html\n\t\t * @property {string} css\n\t\t * @property {number} id\n\t\t * @property {number} deckID\n\t\t * @property {number} index\n\t\t * @property {string} thumbnail\n\t\t * @property {boolean} visible\n\t\t * @property {string} key\n\t\t * @property {object} common\n\t\t * @property {string} title\n\t\t * @property {boolean} usesImpostorSections\n\t\t * @property {boolean} editable\n\t\t * @property {array} tags\n\t\t * @property {number} version\n\t\t */\n\t\tprops: {\n\t\t\thtml: \"string\",\n\t\t\tcss: \"string\",\n\t\t\tid: \"number\",\n\t\t\tdeckID: \"number\",\n\t\t\tindex: \"number\",\n\t\t\tthumbnail: \"string\",\n\t\t\tvisible: \"boolean\",\n\t\t\tkey: \"string\",\n\t\t\tcommon: \"object\",\n\t\t\ttitle: \"string\",\n\t\t\tusesImpostorSections: \"boolean\",\n\t\t\teditable: \"boolean\",\n\t\t\ttags: \"array\",\n\t\t\tversion: \"number\"\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.PresentationSection} realSection\n\t\t */\n\t\tchildren: {\n\t\t\trealSection: \"PresentationSection\"\n\t\t},\n\n\t\tderived: {\n\t\t\twelcomeSlide: {\n\t\t\t\tfn: function() {\n\t\t\t\t\treturn new PresentationSection({\n\t\t\t\t\t\t...this.getAttributes({ props: true }),\n\t\t\t\t\t\tisWelcome: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.PresentationSectionCollection} sections\n\t\t */\n\t\tcollections: {\n\t\t\tsections: \"PresentationSectionCollection\"\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tthis._url = new DeckVersionModel({ id: this.id }).url();\n\t\t\t}\n\n\t\t\treturn this._url;\n\t\t}\n\t}\n);\n\n/**\n * @function createFromURL\n * @memberof presentation.PresentationDeck\n * @param {models.DeckVersionModel} deckVersionModel\n * @param {object} [options]\n * @param {number} [options.index = 0]\n * @param {collections.AdjunctSectionCollection}} [adjunctSections]\n * @returns {presentation.PresentationDeck}\n */\nPresentationDeck.createFromDeckVersion = function(\n\tdeckVersionModel,\n\toptions = {}\n) {\n\t_.defaults(options, {\n\t\tindex: 0,\n\t\tadjunctSections: new collections.AdjunctSectionCollection(),\n\t\tadjunctSlides: new collections.AdjunctSlideCollection(),\n\t\tadjunctSubSlides: new collections.AdjunctSubSlideCollection(),\n\t\tsectionSelections: new collections.SectionSelectionCollection(),\n\t\tslideSelections: new collections.SlideSelectionCollection(),\n\t\trootAssetPath: null,\n\t\ttemplates: null,\n\t\tchoicelist: null\n\t});\n\n\tconst assetRoot = getAssetRoot(deckVersionModel.index_asset.url());\n\tlet html;\n\tlet css;\n\n\tif (options.rootAssetPath) {\n\t\thtml = `${options.rootAssetPath}index.html`;\n\t\tcss = `${options.rootAssetPath}slide.css`;\n\t} else {\n\t\thtml = `${assetRoot}index.html`;\n\t\tcss = `${assetRoot}slide.css`;\n\t}\n\n\tconst tags = deckVersionModel.tags || [];\n\n\tconst deck = new PresentationDeck({\n\t\thtml,\n\t\tcss,\n\t\tid: deckVersionModel.id,\n\t\tindex: options.index,\n\t\tthumbnail: deckVersionModel.image_256,\n\t\tdeckID: deckVersionModel.deck.id,\n\t\tvisible: true,\n\t\tkey: deckVersionModel.deck.key,\n\t\tcommon: deckVersionModel.manifest_json.common,\n\t\ttitle: deckVersionModel.deck.title,\n\t\teditable: tags.indexOf(\"editable\") > -1,\n\t\ttags,\n\t\tversion: deckVersionModel.version\n\t});\n\n\tif (!deck.key) {\n\t\tlog.warn(\n\t\t\t\"Deck key not available to presentation\",\n\t\t\tdeckVersionModel.deck.toJSON()\n\t\t);\n\t}\n\n\t// Convert the selections to an easier format to use later\n\tconst sectionSelections = options.sectionSelections;\n\tconst slideSelections = options.slideSelections;\n\n\toptions.selections = sectionSelections\n\t\t.map(selection => {\n\t\t\treturn {\n\t\t\t\tsequence: selection.sequence,\n\t\t\t\tvisible: selection.visible,\n\t\t\t\turl: selection.section.url(),\n\t\t\t\tid: selection.id\n\t\t\t};\n\t\t})\n\t\t.concat(\n\t\t\tslideSelections.map(selection => {\n\t\t\t\treturn {\n\t\t\t\t\tsequence: selection.sequence,\n\t\t\t\t\tvisible: selection.visible,\n\t\t\t\t\turl: selection.slide.url(),\n\t\t\t\t\tid: selection.id\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\n\t// We want all adjuncts to have fake ids that can't possibly overlap with the ids of\n\t// normal sections, slides and subslides, so we make a base ID that is larger than\n\t// all existing IDs then use the getUniqueAdjunctID function to retrieve an incremented ID\n\tlet maxID = getMaxID(deckVersionModel);\n\n\toptions.getUniqueAdjunctID = function() {\n\t\treturn ++maxID;\n\t};\n\n\t// We have four different ways to create a presentation structure here - we are\n\t// using either selections or a choicelist, and the deck is either a normal\n\t// deck or an impostor deck. Setting up a non-impostor deck is easier, so I've\n\t// split this up into two primary methods to cover those two branches, and the models\n\t// internally retrieve the correct sequence & visibility data depending on whether\n\t// we're using selections or a choicelist.\n\n\tif (!isImpostorDeck(deckVersionModel)) {\n\t\t// Non impostor deck using selections or a choicelist. Slides are already\n\t\t// associated with the correct sections, so all we have to do is turn\n\t\t// everything into a presentation model and pass the options through with\n\t\t// the selections or choicelist data.\n\n\t\tdeckVersionModel.section_set.forEach(sectionModel => {\n\t\t\tconst section = PresentationSection.createFromSection(\n\t\t\t\tsectionModel,\n\t\t\t\toptions\n\t\t\t);\n\n\t\t\tsection.addSlides(sectionModel.slide_set, options);\n\t\t\tdeck.sections.add(section);\n\n\t\t\tconst adjunctSlides = options.adjunctSlides.filter(slide => {\n\t\t\t\treturn slide.section && slide.section.id === section.id;\n\t\t\t});\n\n\t\t\tsection.addSlides(adjunctSlides, options);\n\t\t});\n\n\t\toptions.adjunctSections.forEach(adjunctSection => {\n\t\t\tconst section = PresentationSection.createFromAdjunctSection(\n\t\t\t\tadjunctSection,\n\t\t\t\tDeckVersionModel,\n\t\t\t\toptions\n\t\t\t);\n\n\t\t\tdeck.sections.add(section);\n\t\t});\n\t} else {\n\t\t// Impostor deck using selections or a choicelist. The deckversion.section_set\n\t\t// only contains one section, which is the \"real\" section but is not used in\n\t\t// the presentation. Some slides have the tag \"section-header\", and these slides\n\t\t// will be turned into sections and may be given sets of slides.\n\t\tdeck.usesImpostorSections = true;\n\n\t\tconst realSection = deckVersionModel.section_set.first();\n\n\t\tdeck.realSection = new PresentationSection({\n\t\t\tid: realSection.id,\n\t\t\tkey: realSection.key,\n\t\t\tadjunctSlideLimit: realSection.adjunctslide_limit\n\t\t});\n\n\t\tlet slides = [];\n\n\t\t// First we go through all slides and separate the impostor sections from the\n\t\t// normal slides. If a slide is a \"section header\" then we turn it into a presentation\n\t\t// section; if it is just a slide then we add it to the slides array, which will contain\n\t\t// all slides. We can't allocate slides to sections yet because we don't know\n\t\t// which section a slide belongs to.\n\t\trealSection.slide_set.forEach(slideModel => {\n\t\t\tconst isSection = isImpostor(slideModel);\n\n\t\t\tif (isSection) {\n\t\t\t\tconst section = PresentationSection.createFromImpostorSection(\n\t\t\t\t\tslideModel,\n\t\t\t\t\tDeckVersionModel,\n\t\t\t\t\toptions\n\t\t\t\t);\n\n\t\t\t\tdeck.sections.add(section);\n\t\t\t} else {\n\t\t\t\tconst slide = PresentationSlide.createFromSlide(slideModel, options);\n\t\t\t\tslides.push(slide);\n\t\t\t}\n\t\t});\n\n\t\t// We filter the adjunct slides and add all the non-section slides to the slides array too.\n\t\toptions.adjunctSlides\n\t\t\t.filter(slide => !isImpostor(slide))\n\t\t\t.forEach(adjunctSlideModel => {\n\t\t\t\tconst slide = PresentationSlide.createFromAdjunctSlide(\n\t\t\t\t\tadjunctSlideModel,\n\t\t\t\t\tnull,\n\t\t\t\t\toptions\n\t\t\t\t);\n\n\t\t\t\tslides.push(slide);\n\t\t\t});\n\n\t\t// Next we go through the sections backwards and use the sequence to find all slides\n\t\t// which belong to a section. Doing this backwards means that we only need to know\n\t\t// one section's sequence at a time, e.g. if I went forwards and the first section\n\t\t// had the sequence 1, I know that I can start looking for slides with sequence > 1\n\t\t// but I don't know where to stop. If I start with the last section and look for\n\t\t// slides with the sequence > 110 then I know that all slides with a sequence > 110\n\t\t// are valid. I then remove those slides from the slides array and move down to the\n\t\t// next section.\n\t\tdeck.sections.models.reverse().forEach(section => {\n\t\t\tconst sectionSlides = slides.filter(\n\t\t\t\tslide => slide.sequence > section.sequence\n\t\t\t);\n\n\t\t\tsection.slides.add(sectionSlides);\n\n\t\t\t// Slides have a \"section\" on their model that represents the section\n\t\t\t// that they belong to. Because this is an impostor deck, there's a\n\t\t\t// good chance that the section is now incorrect for normal slides,\n\t\t\t// and a 100% chance that it's incorrect for adjunct slides as we\n\t\t\t// didn't populate the section field when we created the adjunct slides.\n\t\t\t// We update those now with the correct section.\n\t\t\tsection.slides.forEach(slide => {\n\t\t\t\tslide.section = section.id;\n\t\t\t});\n\n\t\t\tslides = slides.filter(slide => slide.sequence <= section.sequence);\n\t\t});\n\n\t\t// Average the adjunct slide limit used across the entire deck over each section\n\t\t// in the deck. We do this before we add the adjunct impostor sections, 'cause you\n\t\t// can't add custom slides to those.\n\t\tdeck.sections.forEach(section => {\n\t\t\tsection.adjunctSlideLimit = section.adjunctSlideLimit\n\t\t\t\t? section.adjunctSlideLimit\n\t\t\t\t: Math.floor(realSection.adjunctSlideLimit / deck.sections.length);\n\t\t});\n\n\t\t// Return the sections to the correct order\n\t\tdeck.sections.models.reverse();\n\n\t\t// Finally, we add the adjunct impostor sections. These are adjunct slides with\n\t\t// the \"section-header\" tag and they work the same way as the slide impostors,\n\t\t// but because adjunct sections can't have slides we're adding them after the\n\t\t// slide-assigning process\n\t\toptions.adjunctSlides\n\t\t\t.filter(slide => isImpostor(slide))\n\t\t\t.forEach(adjunctSlideModel => {\n\t\t\t\tconst adjunctSection = PresentationSection.createFromAdjunctSection(\n\t\t\t\t\tadjunctSlideModel,\n\t\t\t\t\tDeckVersionModel,\n\t\t\t\t\toptions\n\t\t\t\t);\n\n\t\t\t\tdeck.sections.add(adjunctSection);\n\t\t\t});\n\t}\n\n\t// Add templates as sections if present. This is only used by the CDK.\n\tif (options.templates && options.templates.length > 0) {\n\t\tdeck.sections.add(\n\t\t\toptions.templates.map((template, index) => {\n\t\t\t\treturn PresentationSection.createFromTemplate(\n\t\t\t\t\ttemplate,\n\t\t\t\t\tindex,\n\t\t\t\t\toptions.getUniqueAdjunctID()\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\tsetSequentialSequences(deck);\n\n\treturn deck;\n};\n\nPresentationDeck.createFromManifestJSON = function(manifestJSON) {\n\tconst deck = new PresentationDeck({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\tindex: 0,\n\t\tvisible: true,\n\t\tkey: manifestJSON.key || \"manifest_deck\",\n\t\thtml: url2.resolve(manifestJSON.getAssetPath(), \"index.html\"),\n\t\tcss: url2.resolve(manifestJSON.getAssetPath(), \"slide.css\"),\n\t\tcommon: manifestJSON.common,\n\t\tthumbnail: null,\n\t\tdeckID: 1,\n\t\ttitle: \"Local\",\n\t\tversion: 1\n\t});\n\n\tconst usesImpostorSections = _.some(\n\t\tmanifestJSON.tags,\n\t\ttags => tags.indexOf(\"section-header\") !== -1\n\t);\n\n\tif (usesImpostorSections) {\n\t\tdeck.usesImpostorSections = true;\n\n\t\tlet items = Object.keys(manifestJSON.titles).map(key => {\n\t\t\tconst sequence = manifestJSON.toJSON().ordering[key];\n\t\t\tconst splitKey = key.split(\"/\");\n\t\t\tconst newKey = splitKey[splitKey.length - 1];\n\n\t\t\treturn {\n\t\t\t\tkey: newKey,\n\t\t\t\tsequence,\n\t\t\t\thtml: url2.resolve(manifestJSON.getAssetPath(key), \"index.html\"),\n\t\t\t\tcss: url2.resolve(manifestJSON.getAssetPath(key), \"slide.css\"),\n\t\t\t\ttitle: manifestJSON.titles[key],\n\t\t\t\ttags: manifestJSON.tags[key] || []\n\t\t\t};\n\t\t});\n\n\t\titems = _.sortBy(items, \"sequence\");\n\n\t\tconst sections = items.filter(\n\t\t\titem => item.tags.indexOf(\"section-header\") !== -1\n\t\t);\n\n\t\tsections.forEach((item, index) => {\n\t\t\tconst startIndex = items.indexOf(item) + 1;\n\t\t\tconst endIndex = sections[index + 1]\n\t\t\t\t? items.indexOf(sections[index + 1])\n\t\t\t\t: items.length;\n\n\t\t\tconst slides = items.slice(startIndex, endIndex);\n\n\t\t\titem.slides = slides;\n\t\t});\n\n\t\tdeck.sections.add(\n\t\t\tsections.map((section, index) => {\n\t\t\t\treturn PresentationSection.createFromManifestImpostor(section, index);\n\t\t\t})\n\t\t);\n\n\t\tdeck.realSection = PresentationSection.createFromManifestImpostor(items[0]);\n\t} else {\n\t\tconst sectionKeys = Object.keys(manifestJSON.titles).filter(title => {\n\t\t\treturn title.split(\"/\").length === 1;\n\t\t});\n\n\t\tdeck.sections.add(\n\t\t\tsectionKeys.map((key, index) => {\n\t\t\t\treturn PresentationSection.createFromManifestJSON(\n\t\t\t\t\tmanifestJSON,\n\t\t\t\t\tkey,\n\t\t\t\t\tindex\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\tif (manifestJSON.templates) {\n\t\tconst templates = Object.keys(manifestJSON.templates).map(key => {\n\t\t\treturn {\n\t\t\t\t...manifestJSON.templates[key],\n\t\t\t\tkey,\n\t\t\t\tsequence: manifestJSON.templates[key].ordering,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: url2.resolve(\n\t\t\t\t\t\tmanifestJSON.getTemplateAssetPath(key),\n\t\t\t\t\t\t\"index.html\"\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\n\t\tconst minID = _.max(_.map(deck.sections.toJSON(), \"id\"));\n\n\t\tdeck.sections.add(\n\t\t\ttemplates.map((template, index) => {\n\t\t\t\treturn PresentationSection.createFromTemplate(template, index, minID);\n\t\t\t})\n\t\t);\n\t}\n\n\treturn deck;\n};\n\nregister(\"PresentationDeck\", PresentationDeck);\n"],"file":"presentation-deck.js"}
1
+ {"version":3,"sources":["../../src/presentation/presentation-deck.js"],"names":["PresentationDeck","BasePresentationModel","extend","props","html","css","id","deckID","index","thumbnail","visible","key","common","title","usesImpostorSections","editable","tags","version","children","realSection","derived","welcomeSlide","fn","PresentationSection","getAttributes","isWelcome","collections","sections","url","_url","DeckVersionModel","createFromDeckVersion","deckVersionModel","options","_","defaults","adjunctSections","AdjunctSectionCollection","adjunctSlides","AdjunctSlideCollection","adjunctSubSlides","AdjunctSubSlideCollection","sectionSelections","SectionSelectionCollection","slideSelections","SlideSelectionCollection","rootAssetPath","templates","choicelist","assetRoot","index_asset","getTags","deck","image_256","manifest_json","indexOf","log","warn","toJSON","selections","map","selection","sequence","section","concat","slide","maxID","getUniqueAdjunctID","section_set","forEach","sectionModel","createFromSection","addSlides","slide_set","add","filter","adjunctSection","createFromAdjunctSection","first","adjunctSlideLimit","adjunctslide_limit","slides","slideModel","isSection","createFromImpostorSection","PresentationSlide","createFromSlide","push","adjunctSlideModel","createFromAdjunctSlide","models","reverse","sectionSlides","Math","floor","length","template","createFromTemplate","createFromManifestJSON","manifestJSON","parseInt","uniqueId","url2","resolve","getAssetPath","some","items","Object","keys","titles","ordering","splitKey","split","newKey","sortBy","item","startIndex","endIndex","slice","createFromManifestImpostor","sectionKeys","getTemplateAssetPath","minID","max"],"mappings":"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","sourcesContent":["import \"./presentation-sections.js\";\n\nimport * as collections from \"../collections\";\n\nimport {\n\tgetMaxID,\n\tisImpostor,\n\tisImpostorDeck,\n\tsetSequentialSequences,\n} from \"../utils.js\";\n\nimport { BasePresentationModel } from \"./base-presentation-model\";\nimport { DeckVersionModel } from \"../models\";\nimport { PresentationSection } from \"./presentation-section\";\nimport { PresentationSlide } from \"./presentation-slide\";\nimport _ from \"lodash\";\nimport { getAssetRoot } from \"../index.js\";\nimport log from \"../log.js\";\nimport { register } from \"../state-register\";\nimport url2 from \"url\";\n\n/**\n * @constructor\n * @alias presentation.PresentationDeck\n * @extends presentation.BasePresentationModel\n */\nexport const PresentationDeck = BasePresentationModel.extend(\n\t/** @lends presentation.PresentationDeck# */ {\n\t\t/**\n\t\t * @property {string} html\n\t\t * @property {string} css\n\t\t * @property {number} id\n\t\t * @property {number} deckID\n\t\t * @property {number} index\n\t\t * @property {string} thumbnail\n\t\t * @property {boolean} visible\n\t\t * @property {string} key\n\t\t * @property {object} common\n\t\t * @property {string} title\n\t\t * @property {boolean} usesImpostorSections\n\t\t * @property {boolean} editable\n\t\t * @property {array} tags\n\t\t * @property {number} version\n\t\t */\n\t\tprops: {\n\t\t\thtml: \"string\",\n\t\t\tcss: \"string\",\n\t\t\tid: \"number\",\n\t\t\tdeckID: \"number\",\n\t\t\tindex: \"number\",\n\t\t\tthumbnail: \"string\",\n\t\t\tvisible: \"boolean\",\n\t\t\tkey: \"string\",\n\t\t\tcommon: \"object\",\n\t\t\ttitle: \"string\",\n\t\t\tusesImpostorSections: \"boolean\",\n\t\t\teditable: \"boolean\",\n\t\t\ttags: \"array\",\n\t\t\tversion: \"number\",\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.PresentationSection} realSection\n\t\t */\n\t\tchildren: {\n\t\t\trealSection: \"PresentationSection\",\n\t\t},\n\n\t\tderived: {\n\t\t\twelcomeSlide: {\n\t\t\t\tfn: function () {\n\t\t\t\t\treturn new PresentationSection({\n\t\t\t\t\t\t...this.getAttributes({ props: true }),\n\t\t\t\t\t\tisWelcome: true,\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.PresentationSectionCollection} sections\n\t\t */\n\t\tcollections: {\n\t\t\tsections: \"PresentationSectionCollection\",\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tthis._url = new DeckVersionModel({ id: this.id }).url();\n\t\t\t}\n\n\t\t\treturn this._url;\n\t\t},\n\t}\n);\n\n/**\n * @function createFromURL\n * @memberof presentation.PresentationDeck\n * @param {models.DeckVersionModel} deckVersionModel\n * @param {object} [options]\n * @param {number} [options.index = 0]\n * @param {collections.AdjunctSectionCollection}} [adjunctSections]\n * @returns {presentation.PresentationDeck}\n */\nPresentationDeck.createFromDeckVersion = function (\n\tdeckVersionModel,\n\toptions = {}\n) {\n\t_.defaults(options, {\n\t\tindex: 0,\n\t\tadjunctSections: new collections.AdjunctSectionCollection(),\n\t\tadjunctSlides: new collections.AdjunctSlideCollection(),\n\t\tadjunctSubSlides: new collections.AdjunctSubSlideCollection(),\n\t\tsectionSelections: new collections.SectionSelectionCollection(),\n\t\tslideSelections: new collections.SlideSelectionCollection(),\n\t\trootAssetPath: null,\n\t\ttemplates: null,\n\t\tchoicelist: null,\n\t});\n\n\tconst assetRoot = getAssetRoot(deckVersionModel.index_asset.url());\n\tlet html;\n\tlet css;\n\n\tif (options.rootAssetPath) {\n\t\thtml = `${options.rootAssetPath}index.html`;\n\t\tcss = `${options.rootAssetPath}slide.css`;\n\t} else {\n\t\thtml = `${assetRoot}index.html`;\n\t\tcss = `${assetRoot}slide.css`;\n\t}\n\n\tconst tags = PresentationDeck.getTags(deckVersionModel, options);\n\n\tconst deck = new PresentationDeck({\n\t\thtml,\n\t\tcss,\n\t\tid: deckVersionModel.id,\n\t\tindex: options.index,\n\t\tthumbnail: deckVersionModel.image_256,\n\t\tdeckID: deckVersionModel.deck.id,\n\t\tvisible: true,\n\t\tkey: deckVersionModel.deck.key,\n\t\tcommon: deckVersionModel.manifest_json.common,\n\t\ttitle: deckVersionModel.deck.title,\n\t\teditable: tags.indexOf(\"editable\") > -1,\n\t\ttags,\n\t\tversion: deckVersionModel.version,\n\t\tusesImpostorSections: isImpostorDeck(deckVersionModel),\n\t});\n\n\tif (!deck.key) {\n\t\tlog.warn(\n\t\t\t\"Deck key not available to presentation\",\n\t\t\tdeckVersionModel.deck.toJSON()\n\t\t);\n\t}\n\n\t// Convert the selections to an easier format to use later\n\tconst sectionSelections = options.sectionSelections;\n\tconst slideSelections = options.slideSelections;\n\n\toptions.selections = sectionSelections\n\t\t.map((selection) => {\n\t\t\treturn {\n\t\t\t\tsequence: selection.sequence,\n\t\t\t\tvisible: selection.visible,\n\t\t\t\turl: selection.section.url(),\n\t\t\t\tid: selection.id,\n\t\t\t};\n\t\t})\n\t\t.concat(\n\t\t\tslideSelections.map((selection) => {\n\t\t\t\treturn {\n\t\t\t\t\tsequence: selection.sequence,\n\t\t\t\t\tvisible: selection.visible,\n\t\t\t\t\turl: selection.slide.url(),\n\t\t\t\t\tid: selection.id,\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\n\t// We want all adjuncts to have fake ids that can't possibly overlap with the ids of\n\t// normal sections, slides and subslides, so we make a base ID that is larger than\n\t// all existing IDs then use the getUniqueAdjunctID function to retrieve an incremented ID\n\tlet maxID = getMaxID(deckVersionModel);\n\n\toptions.getUniqueAdjunctID = function () {\n\t\treturn ++maxID;\n\t};\n\n\t// We have four different ways to create a presentation structure here - we are\n\t// using either selections or a choicelist, and the deck is either a normal\n\t// deck or an impostor deck. Setting up a non-impostor deck is easier, so I've\n\t// split this up into two primary methods to cover those two branches, and the models\n\t// internally retrieve the correct sequence & visibility data depending on whether\n\t// we're using selections or a choicelist.\n\n\tif (!deck.usesImpostorSections) {\n\t\t// Non impostor deck using selections or a choicelist. Slides are already\n\t\t// associated with the correct sections, so all we have to do is turn\n\t\t// everything into a presentation model and pass the options through with\n\t\t// the selections or choicelist data.\n\n\t\tdeckVersionModel.section_set.forEach((sectionModel) => {\n\t\t\tconst section = PresentationSection.createFromSection(\n\t\t\t\tsectionModel,\n\t\t\t\toptions\n\t\t\t);\n\n\t\t\tsection.addSlides(sectionModel.slide_set, options);\n\t\t\tdeck.sections.add(section);\n\n\t\t\tconst adjunctSlides = options.adjunctSlides.filter((slide) => {\n\t\t\t\treturn slide.section && slide.section.id === section.id;\n\t\t\t});\n\n\t\t\tsection.addSlides(adjunctSlides, options);\n\t\t});\n\n\t\toptions.adjunctSections.forEach((adjunctSection) => {\n\t\t\tconst section = PresentationSection.createFromAdjunctSection(\n\t\t\t\tadjunctSection,\n\t\t\t\tDeckVersionModel,\n\t\t\t\toptions\n\t\t\t);\n\n\t\t\tdeck.sections.add(section);\n\t\t});\n\t} else {\n\t\t// Impostor deck using selections or a choicelist. The deckversion.section_set\n\t\t// only contains one section, which is the \"real\" section but is not used in\n\t\t// the presentation. Some slides have the tag \"section-header\", and these slides\n\t\t// will be turned into sections and may be given sets of slides.\n\n\t\tconst realSection = deckVersionModel.section_set.first();\n\n\t\tdeck.realSection = new PresentationSection({\n\t\t\tid: realSection.id,\n\t\t\tkey: realSection.key,\n\t\t\tadjunctSlideLimit: realSection.adjunctslide_limit,\n\t\t});\n\n\t\tlet slides = [];\n\n\t\t// First we go through all slides and separate the impostor sections from the\n\t\t// normal slides. If a slide is a \"section header\" then we turn it into a presentation\n\t\t// section; if it is just a slide then we add it to the slides array, which will contain\n\t\t// all slides. We can't allocate slides to sections yet because we don't know\n\t\t// which section a slide belongs to.\n\t\trealSection.slide_set.forEach((slideModel) => {\n\t\t\tconst isSection = isImpostor(slideModel);\n\n\t\t\tif (isSection) {\n\t\t\t\tconst section = PresentationSection.createFromImpostorSection(\n\t\t\t\t\tslideModel,\n\t\t\t\t\tDeckVersionModel,\n\t\t\t\t\toptions\n\t\t\t\t);\n\n\t\t\t\tdeck.sections.add(section);\n\t\t\t} else {\n\t\t\t\tconst slide = PresentationSlide.createFromSlide(slideModel, options);\n\t\t\t\tslides.push(slide);\n\t\t\t}\n\t\t});\n\n\t\t// We filter the adjunct slides and add all the non-section slides to the slides array too.\n\t\toptions.adjunctSlides\n\t\t\t.filter((slide) => !isImpostor(slide))\n\t\t\t.forEach((adjunctSlideModel) => {\n\t\t\t\tconst slide = PresentationSlide.createFromAdjunctSlide(\n\t\t\t\t\tadjunctSlideModel,\n\t\t\t\t\tnull,\n\t\t\t\t\toptions\n\t\t\t\t);\n\n\t\t\t\tslides.push(slide);\n\t\t\t});\n\n\t\t// Next we go through the sections backwards and use the sequence to find all slides\n\t\t// which belong to a section. Doing this backwards means that we only need to know\n\t\t// one section's sequence at a time, e.g. if I went forwards and the first section\n\t\t// had the sequence 1, I know that I can start looking for slides with sequence > 1\n\t\t// but I don't know where to stop. If I start with the last section and look for\n\t\t// slides with the sequence > 110 then I know that all slides with a sequence > 110\n\t\t// are valid. I then remove those slides from the slides array and move down to the\n\t\t// next section.\n\t\tdeck.sections.models.reverse().forEach((section) => {\n\t\t\tconst sectionSlides = slides.filter(\n\t\t\t\t(slide) => slide.sequence > section.sequence\n\t\t\t);\n\n\t\t\tsection.slides.add(sectionSlides);\n\n\t\t\t// Slides have a \"section\" on their model that represents the section\n\t\t\t// that they belong to. Because this is an impostor deck, there's a\n\t\t\t// good chance that the section is now incorrect for normal slides,\n\t\t\t// and a 100% chance that it's incorrect for adjunct slides as we\n\t\t\t// didn't populate the section field when we created the adjunct slides.\n\t\t\t// We update those now with the correct section.\n\t\t\tsection.slides.forEach((slide) => {\n\t\t\t\tslide.section = section.id;\n\t\t\t});\n\n\t\t\tslides = slides.filter((slide) => slide.sequence <= section.sequence);\n\t\t});\n\n\t\t// Average the adjunct slide limit used across the entire deck over each section\n\t\t// in the deck. We do this before we add the adjunct impostor sections, 'cause you\n\t\t// can't add custom slides to those.\n\t\tdeck.sections.forEach((section) => {\n\t\t\tsection.adjunctSlideLimit = section.adjunctSlideLimit\n\t\t\t\t? section.adjunctSlideLimit\n\t\t\t\t: Math.floor(realSection.adjunctSlideLimit / deck.sections.length);\n\t\t});\n\n\t\t// Return the sections to the correct order\n\t\tdeck.sections.models.reverse();\n\n\t\t// Finally, we add the adjunct impostor sections. These are adjunct slides with\n\t\t// the \"section-header\" tag and they work the same way as the slide impostors,\n\t\t// but because adjunct sections can't have slides we're adding them after the\n\t\t// slide-assigning process\n\t\toptions.adjunctSlides\n\t\t\t.filter((slide) => isImpostor(slide))\n\t\t\t.forEach((adjunctSlideModel) => {\n\t\t\t\tconst adjunctSection = PresentationSection.createFromAdjunctSection(\n\t\t\t\t\tadjunctSlideModel,\n\t\t\t\t\tDeckVersionModel,\n\t\t\t\t\toptions\n\t\t\t\t);\n\n\t\t\t\tdeck.sections.add(adjunctSection);\n\t\t\t});\n\t}\n\n\t// Add templates as sections if present. This is only used by the CDK.\n\tif (options.templates && options.templates.length > 0) {\n\t\tdeck.sections.add(\n\t\t\toptions.templates.map((template, index) => {\n\t\t\t\treturn PresentationSection.createFromTemplate(\n\t\t\t\t\ttemplate,\n\t\t\t\t\tindex,\n\t\t\t\t\toptions.getUniqueAdjunctID()\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\tsetSequentialSequences(deck);\n\n\treturn deck;\n};\n\nPresentationDeck.createFromManifestJSON = function (manifestJSON) {\n\tconst deck = new PresentationDeck({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\tindex: 0,\n\t\tvisible: true,\n\t\tkey: manifestJSON.key || \"manifest_deck\",\n\t\thtml: url2.resolve(manifestJSON.getAssetPath(), \"index.html\"),\n\t\tcss: url2.resolve(manifestJSON.getAssetPath(), \"slide.css\"),\n\t\tcommon: manifestJSON.common,\n\t\tthumbnail: null,\n\t\tdeckID: 1,\n\t\ttitle: \"Local\",\n\t\tversion: 1,\n\t\ttags: manifestJSON.tags[\"\"] || [],\n\t});\n\n\tconst usesImpostorSections = _.some(\n\t\tmanifestJSON.tags,\n\t\t(tags) => tags.indexOf(\"section-header\") !== -1\n\t);\n\tdeck.usesImpostorSections = usesImpostorSections;\n\n\tif (usesImpostorSections) {\n\t\tdeck.usesImpostorSections = true;\n\n\t\tlet items = Object.keys(manifestJSON.titles).map((key) => {\n\t\t\tconst sequence = manifestJSON.toJSON().ordering[key];\n\t\t\tconst splitKey = key.split(\"/\");\n\t\t\tconst newKey = splitKey[splitKey.length - 1];\n\n\t\t\treturn {\n\t\t\t\tkey: newKey,\n\t\t\t\tsequence,\n\t\t\t\thtml: url2.resolve(manifestJSON.getAssetPath(key), \"index.html\"),\n\t\t\t\tcss: url2.resolve(manifestJSON.getAssetPath(key), \"slide.css\"),\n\t\t\t\ttitle: manifestJSON.titles[key],\n\t\t\t\ttags: manifestJSON.tags[key] || [],\n\t\t\t};\n\t\t});\n\n\t\titems = _.sortBy(items, \"sequence\");\n\n\t\tconst sections = items.filter(\n\t\t\t(item) => item.tags.indexOf(\"section-header\") !== -1\n\t\t);\n\n\t\tsections.forEach((item, index) => {\n\t\t\tconst startIndex = items.indexOf(item) + 1;\n\t\t\tconst endIndex = sections[index + 1]\n\t\t\t\t? items.indexOf(sections[index + 1])\n\t\t\t\t: items.length;\n\n\t\t\tconst slides = items.slice(startIndex, endIndex);\n\n\t\t\titem.slides = slides;\n\t\t});\n\n\t\tdeck.sections.add(\n\t\t\tsections.map((section, index) => {\n\t\t\t\treturn PresentationSection.createFromManifestImpostor(section, index);\n\t\t\t})\n\t\t);\n\n\t\tdeck.realSection = PresentationSection.createFromManifestImpostor(items[0]);\n\t} else {\n\t\tconst sectionKeys = Object.keys(manifestJSON.titles).filter((title) => {\n\t\t\treturn title.split(\"/\").length === 1;\n\t\t});\n\n\t\tdeck.sections.add(\n\t\t\tsectionKeys.map((key, index) => {\n\t\t\t\treturn PresentationSection.createFromManifestJSON(\n\t\t\t\t\tmanifestJSON,\n\t\t\t\t\tkey,\n\t\t\t\t\tindex\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\tif (manifestJSON.templates) {\n\t\tconst templates = Object.keys(manifestJSON.templates).map((key) => {\n\t\t\treturn {\n\t\t\t\t...manifestJSON.templates[key],\n\t\t\t\tkey,\n\t\t\t\tsequence: manifestJSON.templates[key].ordering,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: url2.resolve(\n\t\t\t\t\t\tmanifestJSON.getTemplateAssetPath(key),\n\t\t\t\t\t\t\"index.html\"\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\n\t\tconst minID = _.max(_.map(deck.sections.toJSON(), \"id\"));\n\n\t\tdeck.sections.add(\n\t\t\ttemplates.map((template, index) => {\n\t\t\t\treturn PresentationSection.createFromTemplate(template, index, minID);\n\t\t\t})\n\t\t);\n\t}\n\n\treturn deck;\n};\n\nregister(\"PresentationDeck\", PresentationDeck);\n"],"file":"presentation-deck.js"}
@@ -4,10 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
 
5
5
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
6
 
7
- var _api = require("sp-test/api");
7
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
8
 
9
9
  var _deckVersion = require("../models/deck-version");
10
10
 
11
+ var _api = require("sp-test/api");
12
+
11
13
  var _manifestJson = require("../models/manifest-json");
12
14
 
13
15
  var _presentationDeck = require("./presentation-deck");
@@ -16,9 +18,9 @@ describe("#createFromManifestJSON", function () {
16
18
  beforeEach(function () {
17
19
  jest.spyOn(_manifestJson.ManifestJSONModel.prototype, "getAssetPath").mockReturnValue("/api/");
18
20
  });
19
- it("should add template sections to the end of a deck", function _callee() {
21
+ it("should add template sections to the end of a deck", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
20
22
  var model, deck, lastSection;
21
- return _regenerator.default.async(function _callee$(_context) {
23
+ return _regenerator.default.wrap(function _callee$(_context) {
22
24
  while (1) {
23
25
  switch (_context.prev = _context.next) {
24
26
  case 0:
@@ -67,8 +69,8 @@ describe("#createFromManifestJSON", function () {
67
69
  return _context.stop();
68
70
  }
69
71
  }
70
- });
71
- });
72
+ }, _callee);
73
+ })));
72
74
  });
73
75
  describe("#createFromDeckVersion", function () {
74
76
  var deckVersionJSON = {
@@ -140,9 +142,9 @@ describe("#createFromDeckVersion", function () {
140
142
  slide_set: []
141
143
  }]
142
144
  };
143
- it("should not add template sections to the end of a deck", function _callee2() {
145
+ it("should not add template sections to the end of a deck", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
144
146
  var model, deck;
145
- return _regenerator.default.async(function _callee2$(_context2) {
147
+ return _regenerator.default.wrap(function _callee2$(_context2) {
146
148
  while (1) {
147
149
  switch (_context2.prev = _context2.next) {
148
150
  case 0:
@@ -158,11 +160,11 @@ describe("#createFromDeckVersion", function () {
158
160
  return _context2.stop();
159
161
  }
160
162
  }
161
- });
162
- });
163
- it("should add template sections to the end of a deck", function _callee3() {
163
+ }, _callee2);
164
+ })));
165
+ it("should add template sections to the end of a deck", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
164
166
  var model, deck, lastSection;
165
- return _regenerator.default.async(function _callee3$(_context3) {
167
+ return _regenerator.default.wrap(function _callee3$(_context3) {
166
168
  while (1) {
167
169
  switch (_context3.prev = _context3.next) {
168
170
  case 0:
@@ -185,7 +187,7 @@ describe("#createFromDeckVersion", function () {
185
187
  return _context3.stop();
186
188
  }
187
189
  }
188
- });
189
- });
190
+ }, _callee3);
191
+ })));
190
192
  });
191
193
  //# sourceMappingURL=presentation-deck.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/presentation/presentation-deck.spec.js"],"names":["describe","beforeEach","jest","spyOn","ManifestJSONModel","prototype","mockReturnValue","it","model","titles","section_1","section_2","section_3","ordering","templates","apple","title","orange","tags","deck","PresentationDeck","createFromManifestJSON","expect","sections","length","toEqual","at","lastSection","key","html","css","deckVersionJSON","template_set","id","sequence","index_asset","url","section_set","deckversion","slide_set","subslide_set","section","DeckVersionModel","createFromDeckVersion"],"mappings":"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","sourcesContent":["import { G } from \"sp-test/api\";\n\nimport { DeckVersionModel } from \"../models/deck-version\";\nimport { ManifestJSONModel } from \"../models/manifest-json\";\nimport { PresentationDeck } from \"./presentation-deck\";\n\ndescribe(\"#createFromManifestJSON\", () => {\n\tbeforeEach(() => {\n\t\tjest\n\t\t\t.spyOn(ManifestJSONModel.prototype, \"getAssetPath\")\n\t\t\t.mockReturnValue(\"/api/\");\n\t});\n\n\tit(\"should add template sections to the end of a deck\", async () => {\n\t\tG(ManifestJSONModel);\n\t\tconst model = new ManifestJSONModel({\n\t\t\ttitles: {\n\t\t\t\tsection_1: \"Section 1\",\n\t\t\t\t\"section_1/slide_1\": \"Section 1 Slide 1\",\n\t\t\t\tsection_2: \"Section 2\",\n\t\t\t\t\"section_2/slide_1\": \"Section 2 Slide 1\",\n\t\t\t\t\"section_2/slide_2\": \"Section 2 Slide 2\",\n\t\t\t\tsection_3: \"Section 3\"\n\t\t\t},\n\t\t\tordering: {\n\t\t\t\tsection_1: 1,\n\t\t\t\t\"section_1/slide_1\": 1,\n\t\t\t\tsection_2: 2,\n\t\t\t\t\"section_2/slide_1\": 1,\n\t\t\t\t\"section_2/slide_2\": 2,\n\t\t\t\tsection_3: 3\n\t\t\t},\n\t\t\ttemplates: {\n\t\t\t\tapple: {\n\t\t\t\t\ttitle: \"Apple\",\n\t\t\t\t\tordering: 1\n\t\t\t\t},\n\t\t\t\torange: {\n\t\t\t\t\ttitle: \"Orange\",\n\t\t\t\t\tordering: 2\n\t\t\t\t}\n\t\t\t},\n\t\t\ttags: {}\n\t\t});\n\n\t\tconst deck = PresentationDeck.createFromManifestJSON(model);\n\t\texpect(deck.sections.length).toEqual(5);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(3).title).toEqual(\"Apple\");\n\n\t\tconst lastSection = deck.sections.at(deck.sections.length - 1);\n\t\texpect(lastSection.title).toEqual(\"Orange\");\n\t\texpect(lastSection.key).toEqual(\"template-orange\");\n\t\texpect(lastSection.html).toEqual(\"/api/templates/orange/index.html\");\n\t\texpect(lastSection.css).toEqual(\"/api/templates/orange/slide.css\");\n\t});\n});\n\ndescribe(\"#createFromDeckVersion\", () => {\n\tconst deckVersionJSON = {\n\t\ttemplate_set: [\n\t\t\t{\n\t\t\t\tid: 20,\n\t\t\t\ttitle: \"Apple\",\n\t\t\t\tkey: \"apple\",\n\t\t\t\tsequence: 1,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/template/apple/index.html\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 21,\n\t\t\t\ttitle: \"Orange\",\n\t\t\t\tkey: \"orange\",\n\t\t\t\tsequence: 2,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/template/orange/index.html\"\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\tindex_asset: {\n\t\t\turl: \"http://path/to/index.html\"\n\t\t},\n\t\tdeck: {\n\t\t\tid: 1\n\t\t},\n\t\tsection_set: [\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\ttitle: \"Section 1\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\"\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 1,\n\t\t\t\tslide_set: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 1,\n\t\t\t\t\t\ttitle: \"Slide 1\",\n\t\t\t\t\t\tindex_asset: {\n\t\t\t\t\t\t\turl: \"http://path/to/index.html\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubslide_set: [],\n\t\t\t\t\t\tsection: { id: 1 }\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\ttitle: \"Section 2\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\"\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 2,\n\t\t\t\tslide_set: []\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\ttitle: \"Section 3\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\"\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 3,\n\t\t\t\tslide_set: []\n\t\t\t}\n\t\t]\n\t};\n\n\tit(\"should not add template sections to the end of a deck\", async () => {\n\t\tG(DeckVersionModel);\n\t\tconst model = new DeckVersionModel(deckVersionJSON);\n\t\tconst deck = PresentationDeck.createFromDeckVersion(model);\n\n\t\texpect(deck.sections.length).toEqual(3);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(deck.sections.length - 1).title).toEqual(\n\t\t\t\"Section 3\"\n\t\t);\n\t});\n\n\tit(\"should add template sections to the end of a deck\", async () => {\n\t\tG(DeckVersionModel);\n\t\tconst model = new DeckVersionModel(deckVersionJSON);\n\t\tconst deck = PresentationDeck.createFromDeckVersion(model, {\n\t\t\ttemplates: model.template_set\n\t\t});\n\n\t\texpect(deck.sections.length).toEqual(5);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(3).title).toEqual(\"Apple\");\n\n\t\tconst lastSection = deck.sections.at(deck.sections.length - 1);\n\t\texpect(lastSection.title).toEqual(\"Orange\");\n\t\texpect(lastSection.key).toEqual(\"template-orange\");\n\t\texpect(lastSection.html).toEqual(\n\t\t\t\"http://path/to/template/orange/index.html\"\n\t\t);\n\t\texpect(lastSection.css).toEqual(\"http://path/to/template/orange/slide.css\");\n\t});\n});\n"],"file":"presentation-deck.spec.js"}
1
+ {"version":3,"sources":["../../src/presentation/presentation-deck.spec.js"],"names":["describe","beforeEach","jest","spyOn","ManifestJSONModel","prototype","mockReturnValue","it","model","titles","section_1","section_2","section_3","ordering","templates","apple","title","orange","tags","deck","PresentationDeck","createFromManifestJSON","expect","sections","length","toEqual","at","lastSection","key","html","css","deckVersionJSON","template_set","id","sequence","index_asset","url","section_set","deckversion","slide_set","subslide_set","section","DeckVersionModel","createFromDeckVersion"],"mappings":"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","sourcesContent":["import { DeckVersionModel } from \"../models/deck-version\";\nimport { G } from \"sp-test/api\";\nimport { ManifestJSONModel } from \"../models/manifest-json\";\nimport { PresentationDeck } from \"./presentation-deck\";\n\ndescribe(\"#createFromManifestJSON\", () => {\n\tbeforeEach(() => {\n\t\tjest\n\t\t\t.spyOn(ManifestJSONModel.prototype, \"getAssetPath\")\n\t\t\t.mockReturnValue(\"/api/\");\n\t});\n\n\tit(\"should add template sections to the end of a deck\", async () => {\n\t\tG(ManifestJSONModel);\n\t\tconst model = new ManifestJSONModel({\n\t\t\ttitles: {\n\t\t\t\tsection_1: \"Section 1\",\n\t\t\t\t\"section_1/slide_1\": \"Section 1 Slide 1\",\n\t\t\t\tsection_2: \"Section 2\",\n\t\t\t\t\"section_2/slide_1\": \"Section 2 Slide 1\",\n\t\t\t\t\"section_2/slide_2\": \"Section 2 Slide 2\",\n\t\t\t\tsection_3: \"Section 3\",\n\t\t\t},\n\t\t\tordering: {\n\t\t\t\tsection_1: 1,\n\t\t\t\t\"section_1/slide_1\": 1,\n\t\t\t\tsection_2: 2,\n\t\t\t\t\"section_2/slide_1\": 1,\n\t\t\t\t\"section_2/slide_2\": 2,\n\t\t\t\tsection_3: 3,\n\t\t\t},\n\t\t\ttemplates: {\n\t\t\t\tapple: {\n\t\t\t\t\ttitle: \"Apple\",\n\t\t\t\t\tordering: 1,\n\t\t\t\t},\n\t\t\t\torange: {\n\t\t\t\t\ttitle: \"Orange\",\n\t\t\t\t\tordering: 2,\n\t\t\t\t},\n\t\t\t},\n\t\t\ttags: {},\n\t\t});\n\n\t\tconst deck = PresentationDeck.createFromManifestJSON(model);\n\t\texpect(deck.sections.length).toEqual(5);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(3).title).toEqual(\"Apple\");\n\n\t\tconst lastSection = deck.sections.at(deck.sections.length - 1);\n\t\texpect(lastSection.title).toEqual(\"Orange\");\n\t\texpect(lastSection.key).toEqual(\"template-orange\");\n\t\texpect(lastSection.html).toEqual(\"/api/templates/orange/index.html\");\n\t\texpect(lastSection.css).toEqual(\"/api/templates/orange/slide.css\");\n\t});\n});\n\ndescribe(\"#createFromDeckVersion\", () => {\n\tconst deckVersionJSON = {\n\t\ttemplate_set: [\n\t\t\t{\n\t\t\t\tid: 20,\n\t\t\t\ttitle: \"Apple\",\n\t\t\t\tkey: \"apple\",\n\t\t\t\tsequence: 1,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/template/apple/index.html\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 21,\n\t\t\t\ttitle: \"Orange\",\n\t\t\t\tkey: \"orange\",\n\t\t\t\tsequence: 2,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/template/orange/index.html\",\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tindex_asset: {\n\t\t\turl: \"http://path/to/index.html\",\n\t\t},\n\t\tdeck: {\n\t\t\tid: 1,\n\t\t},\n\t\tsection_set: [\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\ttitle: \"Section 1\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 1,\n\t\t\t\tslide_set: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 1,\n\t\t\t\t\t\ttitle: \"Slide 1\",\n\t\t\t\t\t\tindex_asset: {\n\t\t\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubslide_set: [],\n\t\t\t\t\t\tsection: { id: 1 },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\ttitle: \"Section 2\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 2,\n\t\t\t\tslide_set: [],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\ttitle: \"Section 3\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 3,\n\t\t\t\tslide_set: [],\n\t\t\t},\n\t\t],\n\t};\n\n\tit(\"should not add template sections to the end of a deck\", async () => {\n\t\tG(DeckVersionModel);\n\t\tconst model = new DeckVersionModel(deckVersionJSON);\n\t\tconst deck = PresentationDeck.createFromDeckVersion(model);\n\n\t\texpect(deck.sections.length).toEqual(3);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(deck.sections.length - 1).title).toEqual(\n\t\t\t\"Section 3\"\n\t\t);\n\t});\n\n\tit(\"should add template sections to the end of a deck\", async () => {\n\t\tG(DeckVersionModel);\n\t\tconst model = new DeckVersionModel(deckVersionJSON);\n\t\tconst deck = PresentationDeck.createFromDeckVersion(model, {\n\t\t\ttemplates: model.template_set,\n\t\t});\n\n\t\texpect(deck.sections.length).toEqual(5);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(3).title).toEqual(\"Apple\");\n\n\t\tconst lastSection = deck.sections.at(deck.sections.length - 1);\n\t\texpect(lastSection.title).toEqual(\"Orange\");\n\t\texpect(lastSection.key).toEqual(\"template-orange\");\n\t\texpect(lastSection.html).toEqual(\n\t\t\t\"http://path/to/template/orange/index.html\"\n\t\t);\n\t\texpect(lastSection.css).toEqual(\"http://path/to/template/orange/slide.css\");\n\t});\n});\n"],"file":"presentation-deck.spec.js"}
@@ -7,10 +7,10 @@ exports.PresentationDeckCollection = void 0;
7
7
 
8
8
  require("./presentation-deck.js");
9
9
 
10
- var _stateRegister = require("../state-register.js");
11
-
12
10
  var _basePresentationCollection = require("./base-presentation-collection.js");
13
11
 
12
+ var _stateRegister = require("../state-register.js");
13
+
14
14
  /**
15
15
  * @constructor
16
16
  * @alias presentation.PresentationDeckCollection
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/presentation/presentation-decks.js"],"names":["PresentationDeckCollection","BasePresentationCollection","extend","comparator","model"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AAEA;;;;;;AAMO,IAAMA,0BAA0B,GAAGC,uDAA2BC,MAA3B;AACzC;AAAuD;AACtDC,EAAAA,UAAU,EAAE,UAD0C;AAEtDC,EAAAA,KAAK,EAAE;AAF+C,CADd,CAAnC;;;AAOP,6BAAS,4BAAT,EAAuCJ,0BAAvC","sourcesContent":["import \"./presentation-deck.js\";\n\nimport { register } from \"../state-register.js\";\nimport { BasePresentationCollection } from \"./base-presentation-collection.js\";\n\n/**\n * @constructor\n * @alias presentation.PresentationDeckCollection\n * @extends collections.BaseCollection\n * @see presentation.PresentationDeck\n */\nexport const PresentationDeckCollection = BasePresentationCollection.extend(\n\t/** @lends presentation.PresentationDeckCollection# */ {\n\t\tcomparator: \"sequence\",\n\t\tmodel: \"PresentationDeck\"\n\t}\n);\n\nregister(\"PresentationDeckCollection\", PresentationDeckCollection);\n"],"file":"presentation-decks.js"}
1
+ {"version":3,"sources":["../../src/presentation/presentation-decks.js"],"names":["PresentationDeckCollection","BasePresentationCollection","extend","comparator","model"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,0BAA0B,GAAGC,uDAA2BC,MAA3B;AACzC;AAAuD;AACtDC,EAAAA,UAAU,EAAE,UAD0C;AAEtDC,EAAAA,KAAK,EAAE;AAF+C,CADd,CAAnC;;;AAOP,6BAAS,4BAAT,EAAuCJ,0BAAvC","sourcesContent":["import \"./presentation-deck.js\";\n\nimport { BasePresentationCollection } from \"./base-presentation-collection.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias presentation.PresentationDeckCollection\n * @extends collections.BaseCollection\n * @see presentation.PresentationDeck\n */\nexport const PresentationDeckCollection = BasePresentationCollection.extend(\n\t/** @lends presentation.PresentationDeckCollection# */ {\n\t\tcomparator: \"sequence\",\n\t\tmodel: \"PresentationDeck\",\n\t}\n);\n\nregister(\"PresentationDeckCollection\", PresentationDeckCollection);\n"],"file":"presentation-decks.js"}
@@ -7,23 +7,27 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.PresentationSection = void 0;
9
9
 
10
- var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
12
  require("./presentation-slides.js");
13
13
 
14
- var _url = _interopRequireDefault(require("url"));
14
+ var _models = require("../models.js");
15
+
16
+ var _basePresentationModel = require("./base-presentation-model.js");
17
+
18
+ var _presentationSlide = require("./presentation-slide.js");
15
19
 
16
20
  var _lodash = _interopRequireDefault(require("lodash"));
17
21
 
18
22
  var _index = require("../index.js");
19
23
 
20
- var _models = require("../models.js");
21
-
22
24
  var _stateRegister = require("../state-register.js");
23
25
 
24
- var _basePresentationModel = require("./base-presentation-model.js");
26
+ var _url = _interopRequireDefault(require("url"));
25
27
 
26
- var _presentationSlide = require("./presentation-slide.js");
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
+
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
31
 
28
32
  /**
29
33
  * @constructor
@@ -206,6 +210,7 @@ PresentationSection.createFromSection = function (sectionModel) {
206
210
  }
207
211
 
208
212
  var config = PresentationSection.getVisibilityAndSequence(sectionModel, options);
213
+ var tags = PresentationSection.getTags(sectionModel, options);
209
214
  var section = new PresentationSection({
210
215
  id: sectionModel.id,
211
216
  adjunctID: null,
@@ -218,8 +223,8 @@ PresentationSection.createFromSection = function (sectionModel) {
218
223
  impostor: false,
219
224
  title: sectionModel.title,
220
225
  deckversion: sectionModel.deckversion.id,
221
- editable: sectionModel.tags.indexOf("editable") > -1,
222
- tags: sectionModel.tags,
226
+ editable: tags.indexOf("editable") > -1,
227
+ tags: tags,
223
228
  index: config.sequence,
224
229
  sequence: config.sequence,
225
230
  visible: config.visible,
@@ -237,7 +242,9 @@ PresentationSection.createFromSection = function (sectionModel) {
237
242
  */
238
243
 
239
244
 
240
- PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, deckVersionModel, options) {
245
+ PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, deckVersionModel) {
246
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
247
+
241
248
  _lodash.default.defaults(options, {
242
249
  rootAssetPath: null,
243
250
  selections: null,
@@ -254,9 +261,11 @@ PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, de
254
261
  key = adjunctSectionModel.key;
255
262
  } else if (keyID) {
256
263
  key = "adjunct-".concat(keyID);
264
+ adjunctSectionModel.key = key;
257
265
  }
258
266
 
259
267
  var config = PresentationSection.getVisibilityAndSequence(adjunctSectionModel, options);
268
+ var tags = PresentationSection.getTags(adjunctSectionModel, options);
260
269
  var section = new PresentationSection({
261
270
  id: options.getUniqueAdjunctID(),
262
271
  adjunct: adjunctSectionModel.adjunct ? adjunctSectionModel.adjunct.url() : null,
@@ -267,8 +276,8 @@ PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, de
267
276
  custom: !adjunctSectionModel.created_by_autoadjunct,
268
277
  createdByAutoAdjunct: adjunctSectionModel.created_by_autoadjunct,
269
278
  createdByTemplate: Boolean(adjunctSectionModel.template),
270
- impostor: adjunctSectionModel.tags && adjunctSectionModel.tags.indexOf("section-header") > -1,
271
- tags: adjunctSectionModel.tags,
279
+ impostor: tags.indexOf("section-header") > -1,
280
+ tags: tags,
272
281
  temporary: adjunctSectionModel.created_by_autoadjunct,
273
282
  title: adjunctSectionModel.title,
274
283
  deckversion: deckVersionModel.id,
@@ -306,7 +315,9 @@ PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, de
306
315
  return section;
307
316
  };
308
317
 
309
- PresentationSection.createFromImpostorSection = function (slideModel, DeckVersionModel, options) {
318
+ PresentationSection.createFromImpostorSection = function (slideModel, DeckVersionModel) {
319
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
320
+
310
321
  _lodash.default.defaults(options, {
311
322
  rootAssetPath: null,
312
323
  selections: null,
@@ -328,6 +339,7 @@ PresentationSection.createFromImpostorSection = function (slideModel, DeckVersio
328
339
  }
329
340
 
330
341
  var config = PresentationSection.getVisibilityAndSequence(slideModel, options);
342
+ var tags = PresentationSection.getTags(slideModel, options);
331
343
  var section = new PresentationSection({
332
344
  id: slideModel.id,
333
345
  adjunctID: null,
@@ -340,8 +352,8 @@ PresentationSection.createFromImpostorSection = function (slideModel, DeckVersio
340
352
  impostor: true,
341
353
  title: slideModel.title,
342
354
  deckversion: slideModel.section.deckversion.id,
343
- editable: slideModel.tags.indexOf("editable") > -1,
344
- tags: slideModel.tags,
355
+ editable: tags.indexOf("editable") > -1,
356
+ tags: tags,
345
357
  index: config.sequence,
346
358
  sequence: config.sequence,
347
359
  visible: config.visible,
@@ -377,7 +389,7 @@ PresentationSection.createFromManifestJSON = function (manifestJSON, sectionKey,
377
389
  PresentationSection.createFromManifestImpostor = function (section, index) {
378
390
  var slides = section.slides || [];
379
391
  section.slides = null;
380
- var presentationSection = new PresentationSection((0, _objectSpread3.default)({
392
+ var presentationSection = new PresentationSection(_objectSpread({
381
393
  id: parseInt(_lodash.default.uniqueId(), 10),
382
394
  thumbnail: null,
383
395
  custom: false,
@@ -391,7 +403,8 @@ PresentationSection.createFromManifestImpostor = function (section, index) {
391
403
  return presentationSection;
392
404
  };
393
405
 
394
- PresentationSection.createFromAutoAdjunct = function (model, opts) {
406
+ PresentationSection.createFromAutoAdjunct = function (model) {
407
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
395
408
  var requiredKeys = ["index", "deckversionID"];
396
409
 
397
410
  for (var _i = 0, _requiredKeys = requiredKeys; _i < _requiredKeys.length; _i++) {
@@ -411,6 +424,11 @@ PresentationSection.createFromAutoAdjunct = function (model, opts) {
411
424
  impostor: false
412
425
  });
413
426
 
427
+ var tags = PresentationSection.getTags({
428
+ isAutoAdjunct: true,
429
+ key: model.key,
430
+ tags: model.tags
431
+ }, options);
414
432
  var autoAdjunct = new _models.AutoAdjunctModel(model);
415
433
  var autoAdjunctSection = new PresentationSection({
416
434
  id: options.id || autoAdjunct.id,
@@ -430,7 +448,8 @@ PresentationSection.createFromAutoAdjunct = function (model, opts) {
430
448
  visible: options.visible,
431
449
  allowConvert: options.allowConvert,
432
450
  deckversion: options.deckversionID,
433
- impostor: options.impostor
451
+ impostor: options.impostor,
452
+ tags: tags
434
453
  });
435
454
 
436
455
  if (autoAdjunct.template) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/presentation/presentation-section.js"],"names":["PresentationSection","BasePresentationModel","extend","props","id","adjunctID","autoAdjunctID","type","default","templateID","createdByAutoAdjunct","createdByTemplate","adjunctSlideLimit","html","css","index","key","sequence","image","_orig_image","thumbnail","custom","temporary","title","visible","deckversion","selectionID","editable","tags","impostor","isWelcome","children","adjunct","collections","slides","addSlides","options","_","defaults","rootAssetPath","templates","choicelist","getUniqueAdjunctID","parseInt","uniqueId","Error","add","map","slide","modelName","PresentationSlide","createFromAdjunctSlide","createFromSlide","url","_url","isNumber","AdjunctSlideModel","AdjunctSectionModel","SlideModel","SectionModel","createFromSection","sectionModel","selections","assetRoot","index_asset","baseRoot","sectionPath","slice","length","config","getVisibilityAndSequence","section","adjunctslide_limit","image_256","indexOf","createFromAdjunctSection","adjunctSectionModel","deckVersionModel","keyID","creator_autoadjunct","created_by_autoadjunct","Boolean","template","origPath","orig_path","image_original","createFromImpostorSection","slideModel","DeckVersionModel","createFromManifestJSON","manifestJSON","sectionKey","titles","url2","resolve","getAssetPath","ordering","slideKeys","Object","keys","filter","slideKey","startsWith","split","slideIndex","createFromManifestImpostor","presentationSection","forEach","createFromAutoAdjunct","model","opts","requiredKeys","allowConvert","deckversionID","autoAdjunct","AutoAdjunctModel","autoAdjunctSection","name","createFromTemplate","minID","templateModel","TemplateModel","templateAssetRoot","Number"],"mappings":"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","sourcesContent":["import \"./presentation-slides.js\";\n\nimport url2 from \"url\";\n\nimport _ from \"lodash\";\n\nimport { getAssetRoot } from \"../index.js\";\nimport {\n\tAdjunctSectionModel,\n\tAdjunctSlideModel,\n\tAutoAdjunctModel,\n\tDeckVersionModel,\n\tSectionModel,\n\tSlideModel,\n\tTemplateModel\n} from \"../models.js\";\nimport { register } from \"../state-register.js\";\nimport { BasePresentationModel } from \"./base-presentation-model.js\";\nimport { PresentationSlide } from \"./presentation-slide.js\";\n\n/**\n * @constructor\n * @alias presentation.PresentationSection\n * @extends presentation.BasePresentationModel\n */\nexport const PresentationSection = BasePresentationModel.extend(\n\t/** @lends presentation.PresentationSection# */ {\n\t\t/**\n\t\t * @property {number} id\n\t\t * @property {number} adjunctID\n\t\t * @property {number} autoAdjunctID\n\t\t * @property {number} templateID\n\t\t * @property {boolean} createdByAutoAdjunct\n\t\t * @property {boolean} createdByTemplate\n\t\t * @property {number} adjunctSlideLimit\n\t\t * @property {string} html\n\t\t * @property {string} css\n\t\t * @property {number} index\n\t\t * @property {string} key\n\t\t * @property {number} sequence\n\t\t * @property {string} image\n\t\t * @property {string} _orig_image\n\t\t * @property {string} thumbnail\n\t\t * @property {boolean} custom\n\t\t * @property {boolean} temporary\n\t\t * @property {string} title\n\t\t * @property {boolean} visible\n\t\t * @property {number} deckversion\n\t\t * @property {number} selectionID\n\t\t * @property {boolean} editable\n\t\t * @property {array} tags\n\t\t * @property {boolean} impostor\n\t\t * @property {boolean} isWelcome\n\t\t */\n\t\tprops: {\n\t\t\tid: \"number\",\n\t\t\tadjunctID: \"number\",\n\t\t\tautoAdjunctID: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: null\n\t\t\t},\n\t\t\ttemplateID: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: null\n\t\t\t},\n\t\t\tcreatedByAutoAdjunct: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false\n\t\t\t},\n\t\t\tcreatedByTemplate: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false\n\t\t\t},\n\t\t\tadjunctSlideLimit: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: 0\n\t\t\t},\n\t\t\thtml: \"string\",\n\t\t\tcss: \"string\",\n\t\t\tindex: \"number\",\n\t\t\tkey: \"string\",\n\t\t\tsequence: \"number\",\n\t\t\timage: \"string\",\n\t\t\t_orig_image: \"string\",\n\t\t\tthumbnail: \"string\",\n\t\t\tcustom: \"boolean\",\n\t\t\ttemporary: \"boolean\",\n\t\t\ttitle: \"string\",\n\t\t\tvisible: \"boolean\",\n\t\t\tdeckversion: \"number\",\n\t\t\tselectionID: \"number\",\n\t\t\teditable: \"boolean\",\n\t\t\ttags: \"array\",\n\t\t\timpostor: \"boolean\",\n\t\t\tisWelcome: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: () => false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @property {models.AdjunctModel} adjunct\n\t\t */\n\t\tchildren: {\n\t\t\tadjunct: \"AdjunctModel\"\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.PresentationSlideCollection} slides\n\t\t */\n\t\tcollections: {\n\t\t\tslides: \"PresentationSlideCollection\"\n\t\t},\n\n\t\taddSlides(slides, options = {}) {\n\t\t\t_.defaults(options, {\n\t\t\t\trootAssetPath: null,\n\t\t\t\ttemplates: null,\n\t\t\t\tchoicelist: null,\n\t\t\t\tgetUniqueAdjunctID: () => {\n\t\t\t\t\treturn parseInt(_.uniqueId(), 10);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (this.createdByTemplate) {\n\t\t\t\tthrow new Error(\"Can not add slides to a template\");\n\t\t\t}\n\n\t\t\tthis.slides.add(\n\t\t\t\tslides.map(slide => {\n\t\t\t\t\tif (slide.modelName === \"adjunctslides\") {\n\t\t\t\t\t\treturn PresentationSlide.createFromAdjunctSlide(\n\t\t\t\t\t\t\tslide,\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\toptions\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn PresentationSlide.createFromSlide(slide, options);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tif (_.isNumber(this.adjunctID) && this.impostor) {\n\t\t\t\t\tthis._url = new AdjunctSlideModel({ id: this.adjunctID }).url();\n\t\t\t\t} else if (_.isNumber(this.adjunctID)) {\n\t\t\t\t\tthis._url = new AdjunctSectionModel({ id: this.adjunctID }).url();\n\t\t\t\t} else if (this.impostor) {\n\t\t\t\t\tthis._url = new SlideModel({ id: this.id }).url();\n\t\t\t\t} else {\n\t\t\t\t\tthis._url = new SectionModel({ id: this.id }).url();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._url;\n\t\t}\n\t}\n);\n\n/**\n * @function createFromSection\n * @memberof presentation.PresentationSection\n * @param {models.SectionModel} sectionModel\n * @param {object} [options]\n * @returns {presentation.PresentationSection}\n */\nPresentationSection.createFromSection = function(sectionModel, options = {}) {\n\t_.defaults(options, {\n\t\trootAssetPath: null,\n\t\tselections: null,\n\t\tchoicelist: null\n\t});\n\n\tlet html;\n\tlet css;\n\n\tconst assetRoot = getAssetRoot(sectionModel.index_asset.url());\n\n\tif (options.rootAssetPath) {\n\t\tconst baseRoot = getAssetRoot(sectionModel.deckversion.index_asset.url());\n\t\tconst sectionPath = assetRoot.slice(baseRoot.length);\n\n\t\thtml = `${options.rootAssetPath}${sectionPath}index.html`;\n\t\tcss = `${options.rootAssetPath}${sectionPath}slide.css`;\n\t} else {\n\t\thtml = `${assetRoot}index.html`;\n\t\tcss = `${assetRoot}slide.css`;\n\t}\n\n\tconst config = PresentationSection.getVisibilityAndSequence(\n\t\tsectionModel,\n\t\toptions\n\t);\n\n\tconst section = new PresentationSection({\n\t\tid: sectionModel.id,\n\t\tadjunctID: null,\n\t\thtml,\n\t\tcss,\n\t\tkey: sectionModel.key,\n\t\tadjunctSlideLimit: sectionModel.adjunctslide_limit,\n\t\tthumbnail: sectionModel.image_256,\n\t\tcustom: false,\n\t\timpostor: false,\n\t\ttitle: sectionModel.title,\n\t\tdeckversion: sectionModel.deckversion.id,\n\t\teditable: sectionModel.tags.indexOf(\"editable\") > -1,\n\t\ttags: sectionModel.tags,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible,\n\t\tselectionID: config.selectionID\n\t});\n\n\treturn section;\n};\n\n/**\n * @function createFromAdjunctSection\n * @memberof presentation.PresentationSection\n * @param {models.AdjunctSectionModel} adjunctSectionModel\n * @param {models.DeckVersionMOdel} deckVersionModel\n * @param {object} [options]\n * @returns {presentation.PresentationSection}\n */\nPresentationSection.createFromAdjunctSection = function(\n\tadjunctSectionModel,\n\tdeckVersionModel,\n\toptions\n) {\n\t_.defaults(options, {\n\t\trootAssetPath: null,\n\t\tselections: null,\n\t\tchoicelist: null,\n\t\tgetUniqueAdjunctID: () => {\n\t\t\treturn parseInt(_.uniqueId(), 10);\n\t\t}\n\t});\n\n\tconst keyID =\n\t\tadjunctSectionModel.id ||\n\t\t(adjunctSectionModel.creator_autoadjunct\n\t\t\t? adjunctSectionModel.creator_autoadjunct.id\n\t\t\t: null);\n\n\tlet key = null;\n\n\tif (adjunctSectionModel.key) {\n\t\tkey = adjunctSectionModel.key;\n\t} else if (keyID) {\n\t\tkey = `adjunct-${keyID}`;\n\t}\n\n\tconst config = PresentationSection.getVisibilityAndSequence(\n\t\tadjunctSectionModel,\n\t\toptions\n\t);\n\n\tconst section = new PresentationSection({\n\t\tid: options.getUniqueAdjunctID(),\n\t\tadjunct: adjunctSectionModel.adjunct\n\t\t\t? adjunctSectionModel.adjunct.url()\n\t\t\t: null,\n\t\tadjunctID: adjunctSectionModel.id,\n\t\tautoAdjunctID: adjunctSectionModel.creator_autoadjunct\n\t\t\t? adjunctSectionModel.creator_autoadjunct.id\n\t\t\t: null,\n\t\tkey,\n\t\tthumbnail: adjunctSectionModel.image_256,\n\t\tcustom: !adjunctSectionModel.created_by_autoadjunct,\n\t\tcreatedByAutoAdjunct: adjunctSectionModel.created_by_autoadjunct,\n\t\tcreatedByTemplate: Boolean(adjunctSectionModel.template),\n\t\timpostor:\n\t\t\tadjunctSectionModel.tags &&\n\t\t\tadjunctSectionModel.tags.indexOf(\"section-header\") > -1,\n\t\ttags: adjunctSectionModel.tags,\n\t\ttemporary: adjunctSectionModel.created_by_autoadjunct,\n\t\ttitle: adjunctSectionModel.title,\n\t\tdeckversion: deckVersionModel.id,\n\t\teditable: false,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible\n\t});\n\n\tif (adjunctSectionModel.template) {\n\t\tif (!adjunctSectionModel.template.index_asset) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Template missing index_asset. Do you have the whole template available?\"\n\t\t\t);\n\t\t}\n\t\tconst origPath = adjunctSectionModel.template.index_asset.orig_path;\n\t\tlet html;\n\t\tlet css;\n\n\t\tif (options.rootAssetPath) {\n\t\t\thtml = `${options.rootAssetPath}${origPath}/index.html`;\n\t\t\tcss = `${options.rootAssetPath}${origPath}/slide.css`;\n\t\t} else {\n\t\t\tconst assetRoot = getAssetRoot(\n\t\t\t\tadjunctSectionModel.template.index_asset.url()\n\t\t\t);\n\t\t\thtml = `${assetRoot}index.html`;\n\t\t\tcss = `${assetRoot}slide.css`;\n\t\t}\n\t\tsection.html = html;\n\t\tsection.css = css;\n\t\tsection.thumbnail = adjunctSectionModel.template.image_256;\n\t} else {\n\t\tsection.image = adjunctSectionModel.image_original;\n\t}\n\n\treturn section;\n};\n\nPresentationSection.createFromImpostorSection = function(\n\tslideModel,\n\tDeckVersionModel,\n\toptions\n) {\n\t_.defaults(options, {\n\t\trootAssetPath: null,\n\t\tselections: null,\n\t\tchoicelist: null\n\t});\n\n\tlet html;\n\tlet css;\n\n\tconst assetRoot = getAssetRoot(slideModel.index_asset.url());\n\n\tif (options.rootAssetPath) {\n\t\tconst baseRoot = getAssetRoot(\n\t\t\tslideModel.section.deckversion.index_asset.url()\n\t\t);\n\t\tconst sectionPath = assetRoot.slice(baseRoot.length);\n\n\t\thtml = `${options.rootAssetPath}${sectionPath}index.html`;\n\t\tcss = `${options.rootAssetPath}${sectionPath}slide.css`;\n\t} else {\n\t\thtml = `${assetRoot}index.html`;\n\t\tcss = `${assetRoot}slide.css`;\n\t}\n\n\tconst config = PresentationSection.getVisibilityAndSequence(\n\t\tslideModel,\n\t\toptions\n\t);\n\n\tconst section = new PresentationSection({\n\t\tid: slideModel.id,\n\t\tadjunctID: null,\n\t\thtml,\n\t\tcss,\n\t\tkey: slideModel.key,\n\t\tadjunctSlideLimit: slideModel.adjunctslide_limit,\n\t\tthumbnail: slideModel.image_256,\n\t\tcustom: false,\n\t\timpostor: true,\n\t\ttitle: slideModel.title,\n\t\tdeckversion: slideModel.section.deckversion.id,\n\t\teditable: slideModel.tags.indexOf(\"editable\") > -1,\n\t\ttags: slideModel.tags,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible,\n\t\tselectionID: config.selectionID\n\t});\n\n\treturn section;\n};\n\nPresentationSection.createFromManifestJSON = function(\n\tmanifestJSON,\n\tsectionKey,\n\tindex\n) {\n\tconst section = new PresentationSection({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\tindex,\n\t\ttitle: manifestJSON.titles[sectionKey],\n\t\thtml: url2.resolve(manifestJSON.getAssetPath(sectionKey), \"index.html\"),\n\t\tcss: url2.resolve(manifestJSON.getAssetPath(sectionKey), \"slide.css\"),\n\t\tkey: sectionKey,\n\t\tsequence: manifestJSON.ordering[sectionKey] - 1,\n\t\tthumbnail: null,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tdeckversion: 1,\n\t\ttags: manifestJSON.tags[sectionKey] || null\n\t});\n\n\tconst slideKeys = Object.keys(manifestJSON.titles).filter(slideKey => {\n\t\treturn slideKey.startsWith(sectionKey) && slideKey.split(\"/\").length > 1;\n\t});\n\n\tsection.slides.add(\n\t\tslideKeys.map((key, slideIndex) => {\n\t\t\treturn PresentationSlide.createFromManifestJSON(\n\t\t\t\tmanifestJSON,\n\t\t\t\tkey,\n\t\t\t\tsection.id,\n\t\t\t\tslideIndex\n\t\t\t);\n\t\t})\n\t);\n\n\treturn section;\n};\n\nPresentationSection.createFromManifestImpostor = function(section, index) {\n\tconst slides = section.slides || [];\n\tsection.slides = null;\n\n\tconst presentationSection = new PresentationSection({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\tthumbnail: null,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tdeckversion: 1,\n\t\tindex,\n\t\t...section\n\t});\n\n\tslides.forEach((slide, index) => {\n\t\tpresentationSection.slides.add(\n\t\t\tPresentationSlide.createFromManifestImpostor(\n\t\t\t\tslide,\n\t\t\t\tindex,\n\t\t\t\tpresentationSection.id\n\t\t\t)\n\t\t);\n\t});\n\n\treturn presentationSection;\n};\n\nPresentationSection.createFromAutoAdjunct = function(model, opts) {\n\tconst requiredKeys = [\"index\", \"deckversionID\"];\n\tfor (const key of requiredKeys) {\n\t\tif (typeof opts[key] === \"undefined\") {\n\t\t\tthrow new Error(`Missing required key '${key}'.`);\n\t\t}\n\t}\n\n\tconst options = _.defaults(opts, {\n\t\tallowConvert: true,\n\t\tvisible: true,\n\t\tindex: -1,\n\t\tdeckversionID: -1,\n\t\tsequence: opts.index,\n\t\timpostor: false\n\t});\n\n\tconst autoAdjunct = new AutoAdjunctModel(model);\n\n\tconst autoAdjunctSection = new PresentationSection({\n\t\tid: options.id || autoAdjunct.id,\n\t\tadjunctID: autoAdjunct.id,\n\t\tautoAdjunctID: autoAdjunct.id,\n\t\tcreatedByTemplate: autoAdjunct.template !== null,\n\t\ttemplateID: autoAdjunct.template ? autoAdjunct.template.id : null,\n\t\thtml: \"\",\n\t\tcss: \"\",\n\t\tsequence: options.sequence,\n\t\tindex: options.index,\n\t\tkey: autoAdjunct.key,\n\t\tcreatedByAutoAdjunct: false,\n\t\tthumbnail: autoAdjunct.image_256,\n\t\ttemporary: true,\n\t\ttitle: autoAdjunct.name,\n\t\tvisible: options.visible,\n\t\tallowConvert: options.allowConvert,\n\t\tdeckversion: options.deckversionID,\n\t\timpostor: options.impostor\n\t});\n\n\tif (autoAdjunct.template) {\n\t\tautoAdjunctSection.thumbnail = autoAdjunct.template.image_256;\n\t\tautoAdjunctSection.createdByTemplate = true;\n\t\tautoAdjunctSection.templateID = autoAdjunct.template.id;\n\t\tautoAdjunctSection.html = autoAdjunct.template.index_asset.url();\n\t} else {\n\t\tautoAdjunctSection.image = autoAdjunct.image_original;\n\t}\n\n\treturn autoAdjunctSection;\n};\n\nPresentationSection.createFromTemplate = function(template, index, minID = 0) {\n\tconst templateModel = new TemplateModel(template);\n\n\tconst deckversion = new DeckVersionModel(templateModel.deckversion);\n\tconst templateAssetRoot = getAssetRoot(templateModel.index_asset.url());\n\tconst presentationSection = new PresentationSection({\n\t\tid: minID + parseInt(_.uniqueId(), 10),\n\t\ttemplateID: templateModel.id,\n\t\tkey: `template-${templateModel.key}`,\n\t\ttitle: templateModel.title,\n\t\thtml: `${templateAssetRoot}index.html`,\n\t\tcss: `${templateAssetRoot}slide.css`,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tthumbnail: templateModel.image_256,\n\t\t// Makes sure templates are rendered with unique IDs\n\t\tautoAdjunctID: Number(_.uniqueId()),\n\t\tdeckversion: deckversion.id,\n\t\t// Add a large number here to make sure it's always at the end\n\t\t// of a list of sections\n\t\tsequence: 9000 + templateModel.sequence,\n\t\tcreatedByTemplate: true,\n\t\tindex\n\t});\n\n\treturn presentationSection;\n};\n\nregister(\"PresentationSection\", PresentationSection);\n"],"file":"presentation-section.js"}
1
+ {"version":3,"sources":["../../src/presentation/presentation-section.js"],"names":["PresentationSection","BasePresentationModel","extend","props","id","adjunctID","autoAdjunctID","type","default","templateID","createdByAutoAdjunct","createdByTemplate","adjunctSlideLimit","html","css","index","key","sequence","image","_orig_image","thumbnail","custom","temporary","title","visible","deckversion","selectionID","editable","tags","impostor","isWelcome","children","adjunct","collections","slides","addSlides","options","_","defaults","rootAssetPath","templates","choicelist","getUniqueAdjunctID","parseInt","uniqueId","Error","add","map","slide","modelName","PresentationSlide","createFromAdjunctSlide","createFromSlide","url","_url","isNumber","AdjunctSlideModel","AdjunctSectionModel","SlideModel","SectionModel","createFromSection","sectionModel","selections","assetRoot","index_asset","baseRoot","sectionPath","slice","length","config","getVisibilityAndSequence","getTags","section","adjunctslide_limit","image_256","indexOf","createFromAdjunctSection","adjunctSectionModel","deckVersionModel","keyID","creator_autoadjunct","created_by_autoadjunct","Boolean","template","origPath","orig_path","image_original","createFromImpostorSection","slideModel","DeckVersionModel","createFromManifestJSON","manifestJSON","sectionKey","titles","url2","resolve","getAssetPath","ordering","slideKeys","Object","keys","filter","slideKey","startsWith","split","slideIndex","createFromManifestImpostor","presentationSection","forEach","createFromAutoAdjunct","model","opts","requiredKeys","allowConvert","deckversionID","isAutoAdjunct","autoAdjunct","AutoAdjunctModel","autoAdjunctSection","name","createFromTemplate","minID","templateModel","TemplateModel","templateAssetRoot","Number"],"mappings":"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","sourcesContent":["import \"./presentation-slides.js\";\n\nimport {\n\tAdjunctSectionModel,\n\tAdjunctSlideModel,\n\tAutoAdjunctModel,\n\tDeckVersionModel,\n\tSectionModel,\n\tSlideModel,\n\tTemplateModel,\n} from \"../models.js\";\n\nimport { BasePresentationModel } from \"./base-presentation-model.js\";\nimport { PresentationSlide } from \"./presentation-slide.js\";\nimport _ from \"lodash\";\nimport { getAssetRoot } from \"../index.js\";\nimport { register } from \"../state-register.js\";\nimport url2 from \"url\";\n\n/**\n * @constructor\n * @alias presentation.PresentationSection\n * @extends presentation.BasePresentationModel\n */\nexport const PresentationSection = BasePresentationModel.extend(\n\t/** @lends presentation.PresentationSection# */ {\n\t\t/**\n\t\t * @property {number} id\n\t\t * @property {number} adjunctID\n\t\t * @property {number} autoAdjunctID\n\t\t * @property {number} templateID\n\t\t * @property {boolean} createdByAutoAdjunct\n\t\t * @property {boolean} createdByTemplate\n\t\t * @property {number} adjunctSlideLimit\n\t\t * @property {string} html\n\t\t * @property {string} css\n\t\t * @property {number} index\n\t\t * @property {string} key\n\t\t * @property {number} sequence\n\t\t * @property {string} image\n\t\t * @property {string} _orig_image\n\t\t * @property {string} thumbnail\n\t\t * @property {boolean} custom\n\t\t * @property {boolean} temporary\n\t\t * @property {string} title\n\t\t * @property {boolean} visible\n\t\t * @property {number} deckversion\n\t\t * @property {number} selectionID\n\t\t * @property {boolean} editable\n\t\t * @property {array} tags\n\t\t * @property {boolean} impostor\n\t\t * @property {boolean} isWelcome\n\t\t */\n\t\tprops: {\n\t\t\tid: \"number\",\n\t\t\tadjunctID: \"number\",\n\t\t\tautoAdjunctID: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t\ttemplateID: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t\tcreatedByAutoAdjunct: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tcreatedByTemplate: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tadjunctSlideLimit: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: 0,\n\t\t\t},\n\t\t\thtml: \"string\",\n\t\t\tcss: \"string\",\n\t\t\tindex: \"number\",\n\t\t\tkey: \"string\",\n\t\t\tsequence: \"number\",\n\t\t\timage: \"string\",\n\t\t\t_orig_image: \"string\",\n\t\t\tthumbnail: \"string\",\n\t\t\tcustom: \"boolean\",\n\t\t\ttemporary: \"boolean\",\n\t\t\ttitle: \"string\",\n\t\t\tvisible: \"boolean\",\n\t\t\tdeckversion: \"number\",\n\t\t\tselectionID: \"number\",\n\t\t\teditable: \"boolean\",\n\t\t\ttags: \"array\",\n\t\t\timpostor: \"boolean\",\n\t\t\tisWelcome: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: () => false,\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * @property {models.AdjunctModel} adjunct\n\t\t */\n\t\tchildren: {\n\t\t\tadjunct: \"AdjunctModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.PresentationSlideCollection} slides\n\t\t */\n\t\tcollections: {\n\t\t\tslides: \"PresentationSlideCollection\",\n\t\t},\n\n\t\taddSlides(slides, options = {}) {\n\t\t\t_.defaults(options, {\n\t\t\t\trootAssetPath: null,\n\t\t\t\ttemplates: null,\n\t\t\t\tchoicelist: null,\n\t\t\t\tgetUniqueAdjunctID: () => {\n\t\t\t\t\treturn parseInt(_.uniqueId(), 10);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (this.createdByTemplate) {\n\t\t\t\tthrow new Error(\"Can not add slides to a template\");\n\t\t\t}\n\n\t\t\tthis.slides.add(\n\t\t\t\tslides.map((slide) => {\n\t\t\t\t\tif (slide.modelName === \"adjunctslides\") {\n\t\t\t\t\t\treturn PresentationSlide.createFromAdjunctSlide(\n\t\t\t\t\t\t\tslide,\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\toptions\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn PresentationSlide.createFromSlide(slide, options);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tif (_.isNumber(this.adjunctID) && this.impostor) {\n\t\t\t\t\tthis._url = new AdjunctSlideModel({ id: this.adjunctID }).url();\n\t\t\t\t} else if (_.isNumber(this.adjunctID)) {\n\t\t\t\t\tthis._url = new AdjunctSectionModel({ id: this.adjunctID }).url();\n\t\t\t\t} else if (this.impostor) {\n\t\t\t\t\tthis._url = new SlideModel({ id: this.id }).url();\n\t\t\t\t} else {\n\t\t\t\t\tthis._url = new SectionModel({ id: this.id }).url();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._url;\n\t\t},\n\t}\n);\n\n/**\n * @function createFromSection\n * @memberof presentation.PresentationSection\n * @param {models.SectionModel} sectionModel\n * @param {object} [options]\n * @returns {presentation.PresentationSection}\n */\nPresentationSection.createFromSection = function (sectionModel, options = {}) {\n\t_.defaults(options, {\n\t\trootAssetPath: null,\n\t\tselections: null,\n\t\tchoicelist: null,\n\t});\n\n\tlet html;\n\tlet css;\n\n\tconst assetRoot = getAssetRoot(sectionModel.index_asset.url());\n\n\tif (options.rootAssetPath) {\n\t\tconst baseRoot = getAssetRoot(sectionModel.deckversion.index_asset.url());\n\t\tconst sectionPath = assetRoot.slice(baseRoot.length);\n\n\t\thtml = `${options.rootAssetPath}${sectionPath}index.html`;\n\t\tcss = `${options.rootAssetPath}${sectionPath}slide.css`;\n\t} else {\n\t\thtml = `${assetRoot}index.html`;\n\t\tcss = `${assetRoot}slide.css`;\n\t}\n\n\tconst config = PresentationSection.getVisibilityAndSequence(\n\t\tsectionModel,\n\t\toptions\n\t);\n\n\tconst tags = PresentationSection.getTags(sectionModel, options);\n\n\tconst section = new PresentationSection({\n\t\tid: sectionModel.id,\n\t\tadjunctID: null,\n\t\thtml,\n\t\tcss,\n\t\tkey: sectionModel.key,\n\t\tadjunctSlideLimit: sectionModel.adjunctslide_limit,\n\t\tthumbnail: sectionModel.image_256,\n\t\tcustom: false,\n\t\timpostor: false,\n\t\ttitle: sectionModel.title,\n\t\tdeckversion: sectionModel.deckversion.id,\n\t\teditable: tags.indexOf(\"editable\") > -1,\n\t\ttags,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible,\n\t\tselectionID: config.selectionID,\n\t});\n\n\treturn section;\n};\n\n/**\n * @function createFromAdjunctSection\n * @memberof presentation.PresentationSection\n * @param {models.AdjunctSectionModel} adjunctSectionModel\n * @param {models.DeckVersionMOdel} deckVersionModel\n * @param {object} [options]\n * @returns {presentation.PresentationSection}\n */\nPresentationSection.createFromAdjunctSection = function (\n\tadjunctSectionModel,\n\tdeckVersionModel,\n\toptions = {}\n) {\n\t_.defaults(options, {\n\t\trootAssetPath: null,\n\t\tselections: null,\n\t\tchoicelist: null,\n\t\tgetUniqueAdjunctID: () => {\n\t\t\treturn parseInt(_.uniqueId(), 10);\n\t\t},\n\t});\n\n\tconst keyID =\n\t\tadjunctSectionModel.id ||\n\t\t(adjunctSectionModel.creator_autoadjunct\n\t\t\t? adjunctSectionModel.creator_autoadjunct.id\n\t\t\t: null);\n\n\tlet key = null;\n\n\tif (adjunctSectionModel.key) {\n\t\tkey = adjunctSectionModel.key;\n\t} else if (keyID) {\n\t\tkey = `adjunct-${keyID}`;\n\t\tadjunctSectionModel.key = key;\n\t}\n\n\tconst config = PresentationSection.getVisibilityAndSequence(\n\t\tadjunctSectionModel,\n\t\toptions\n\t);\n\n\tconst tags = PresentationSection.getTags(adjunctSectionModel, options);\n\n\tconst section = new PresentationSection({\n\t\tid: options.getUniqueAdjunctID(),\n\t\tadjunct: adjunctSectionModel.adjunct\n\t\t\t? adjunctSectionModel.adjunct.url()\n\t\t\t: null,\n\t\tadjunctID: adjunctSectionModel.id,\n\t\tautoAdjunctID: adjunctSectionModel.creator_autoadjunct\n\t\t\t? adjunctSectionModel.creator_autoadjunct.id\n\t\t\t: null,\n\t\tkey,\n\t\tthumbnail: adjunctSectionModel.image_256,\n\t\tcustom: !adjunctSectionModel.created_by_autoadjunct,\n\t\tcreatedByAutoAdjunct: adjunctSectionModel.created_by_autoadjunct,\n\t\tcreatedByTemplate: Boolean(adjunctSectionModel.template),\n\t\timpostor: tags.indexOf(\"section-header\") > -1,\n\t\ttags: tags,\n\t\ttemporary: adjunctSectionModel.created_by_autoadjunct,\n\t\ttitle: adjunctSectionModel.title,\n\t\tdeckversion: deckVersionModel.id,\n\t\teditable: false,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible,\n\t});\n\n\tif (adjunctSectionModel.template) {\n\t\tif (!adjunctSectionModel.template.index_asset) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Template missing index_asset. Do you have the whole template available?\"\n\t\t\t);\n\t\t}\n\t\tconst origPath = adjunctSectionModel.template.index_asset.orig_path;\n\t\tlet html;\n\t\tlet css;\n\n\t\tif (options.rootAssetPath) {\n\t\t\thtml = `${options.rootAssetPath}${origPath}/index.html`;\n\t\t\tcss = `${options.rootAssetPath}${origPath}/slide.css`;\n\t\t} else {\n\t\t\tconst assetRoot = getAssetRoot(\n\t\t\t\tadjunctSectionModel.template.index_asset.url()\n\t\t\t);\n\t\t\thtml = `${assetRoot}index.html`;\n\t\t\tcss = `${assetRoot}slide.css`;\n\t\t}\n\t\tsection.html = html;\n\t\tsection.css = css;\n\t\tsection.thumbnail = adjunctSectionModel.template.image_256;\n\t} else {\n\t\tsection.image = adjunctSectionModel.image_original;\n\t}\n\n\treturn section;\n};\n\nPresentationSection.createFromImpostorSection = function (\n\tslideModel,\n\tDeckVersionModel,\n\toptions = {}\n) {\n\t_.defaults(options, {\n\t\trootAssetPath: null,\n\t\tselections: null,\n\t\tchoicelist: null,\n\t});\n\n\tlet html;\n\tlet css;\n\n\tconst assetRoot = getAssetRoot(slideModel.index_asset.url());\n\n\tif (options.rootAssetPath) {\n\t\tconst baseRoot = getAssetRoot(\n\t\t\tslideModel.section.deckversion.index_asset.url()\n\t\t);\n\t\tconst sectionPath = assetRoot.slice(baseRoot.length);\n\n\t\thtml = `${options.rootAssetPath}${sectionPath}index.html`;\n\t\tcss = `${options.rootAssetPath}${sectionPath}slide.css`;\n\t} else {\n\t\thtml = `${assetRoot}index.html`;\n\t\tcss = `${assetRoot}slide.css`;\n\t}\n\n\tconst config = PresentationSection.getVisibilityAndSequence(\n\t\tslideModel,\n\t\toptions\n\t);\n\n\tconst tags = PresentationSection.getTags(slideModel, options);\n\n\tconst section = new PresentationSection({\n\t\tid: slideModel.id,\n\t\tadjunctID: null,\n\t\thtml,\n\t\tcss,\n\t\tkey: slideModel.key,\n\t\tadjunctSlideLimit: slideModel.adjunctslide_limit,\n\t\tthumbnail: slideModel.image_256,\n\t\tcustom: false,\n\t\timpostor: true,\n\t\ttitle: slideModel.title,\n\t\tdeckversion: slideModel.section.deckversion.id,\n\t\teditable: tags.indexOf(\"editable\") > -1,\n\t\ttags,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible,\n\t\tselectionID: config.selectionID,\n\t});\n\n\treturn section;\n};\n\nPresentationSection.createFromManifestJSON = function (\n\tmanifestJSON,\n\tsectionKey,\n\tindex\n) {\n\tconst section = new PresentationSection({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\tindex,\n\t\ttitle: manifestJSON.titles[sectionKey],\n\t\thtml: url2.resolve(manifestJSON.getAssetPath(sectionKey), \"index.html\"),\n\t\tcss: url2.resolve(manifestJSON.getAssetPath(sectionKey), \"slide.css\"),\n\t\tkey: sectionKey,\n\t\tsequence: manifestJSON.ordering[sectionKey] - 1,\n\t\tthumbnail: null,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tdeckversion: 1,\n\t\ttags: manifestJSON.tags[sectionKey] || null,\n\t});\n\n\tconst slideKeys = Object.keys(manifestJSON.titles).filter((slideKey) => {\n\t\treturn slideKey.startsWith(sectionKey) && slideKey.split(\"/\").length > 1;\n\t});\n\n\tsection.slides.add(\n\t\tslideKeys.map((key, slideIndex) => {\n\t\t\treturn PresentationSlide.createFromManifestJSON(\n\t\t\t\tmanifestJSON,\n\t\t\t\tkey,\n\t\t\t\tsection.id,\n\t\t\t\tslideIndex\n\t\t\t);\n\t\t})\n\t);\n\n\treturn section;\n};\n\nPresentationSection.createFromManifestImpostor = function (section, index) {\n\tconst slides = section.slides || [];\n\tsection.slides = null;\n\n\tconst presentationSection = new PresentationSection({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\tthumbnail: null,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tdeckversion: 1,\n\t\tindex,\n\t\t...section,\n\t});\n\n\tslides.forEach((slide, index) => {\n\t\tpresentationSection.slides.add(\n\t\t\tPresentationSlide.createFromManifestImpostor(\n\t\t\t\tslide,\n\t\t\t\tindex,\n\t\t\t\tpresentationSection.id\n\t\t\t)\n\t\t);\n\t});\n\n\treturn presentationSection;\n};\n\nPresentationSection.createFromAutoAdjunct = function (model, opts = {}) {\n\tconst requiredKeys = [\"index\", \"deckversionID\"];\n\tfor (const key of requiredKeys) {\n\t\tif (typeof opts[key] === \"undefined\") {\n\t\t\tthrow new Error(`Missing required key '${key}'.`);\n\t\t}\n\t}\n\n\tconst options = _.defaults(opts, {\n\t\tallowConvert: true,\n\t\tvisible: true,\n\t\tindex: -1,\n\t\tdeckversionID: -1,\n\t\tsequence: opts.index,\n\t\timpostor: false,\n\t});\n\n\tconst tags = PresentationSection.getTags(\n\t\t{\n\t\t\tisAutoAdjunct: true,\n\t\t\tkey: model.key,\n\t\t\ttags: model.tags,\n\t\t},\n\t\toptions\n\t);\n\n\tconst autoAdjunct = new AutoAdjunctModel(model);\n\n\tconst autoAdjunctSection = new PresentationSection({\n\t\tid: options.id || autoAdjunct.id,\n\t\tadjunctID: autoAdjunct.id,\n\t\tautoAdjunctID: autoAdjunct.id,\n\t\tcreatedByTemplate: autoAdjunct.template !== null,\n\t\ttemplateID: autoAdjunct.template ? autoAdjunct.template.id : null,\n\t\thtml: \"\",\n\t\tcss: \"\",\n\t\tsequence: options.sequence,\n\t\tindex: options.index,\n\t\tkey: autoAdjunct.key,\n\t\tcreatedByAutoAdjunct: false,\n\t\tthumbnail: autoAdjunct.image_256,\n\t\ttemporary: true,\n\t\ttitle: autoAdjunct.name,\n\t\tvisible: options.visible,\n\t\tallowConvert: options.allowConvert,\n\t\tdeckversion: options.deckversionID,\n\t\timpostor: options.impostor,\n\t\ttags,\n\t});\n\n\tif (autoAdjunct.template) {\n\t\tautoAdjunctSection.thumbnail = autoAdjunct.template.image_256;\n\t\tautoAdjunctSection.createdByTemplate = true;\n\t\tautoAdjunctSection.templateID = autoAdjunct.template.id;\n\t\tautoAdjunctSection.html = autoAdjunct.template.index_asset.url();\n\t} else {\n\t\tautoAdjunctSection.image = autoAdjunct.image_original;\n\t}\n\n\treturn autoAdjunctSection;\n};\n\nPresentationSection.createFromTemplate = function (template, index, minID = 0) {\n\tconst templateModel = new TemplateModel(template);\n\n\tconst deckversion = new DeckVersionModel(templateModel.deckversion);\n\tconst templateAssetRoot = getAssetRoot(templateModel.index_asset.url());\n\tconst presentationSection = new PresentationSection({\n\t\tid: minID + parseInt(_.uniqueId(), 10),\n\t\ttemplateID: templateModel.id,\n\t\tkey: `template-${templateModel.key}`,\n\t\ttitle: templateModel.title,\n\t\thtml: `${templateAssetRoot}index.html`,\n\t\tcss: `${templateAssetRoot}slide.css`,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tthumbnail: templateModel.image_256,\n\t\t// Makes sure templates are rendered with unique IDs\n\t\tautoAdjunctID: Number(_.uniqueId()),\n\t\tdeckversion: deckversion.id,\n\t\t// Add a large number here to make sure it's always at the end\n\t\t// of a list of sections\n\t\tsequence: 9000 + templateModel.sequence,\n\t\tcreatedByTemplate: true,\n\t\tindex,\n\t});\n\n\treturn presentationSection;\n};\n\nregister(\"PresentationSection\", PresentationSection);\n"],"file":"presentation-section.js"}