@livepreso/api 6.42.1 → 6.43.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 (117) hide show
  1. package/.rush/temp/build-cache-tar.log +7 -0
  2. package/.rush/temp/package-deps_build.json +151 -133
  3. package/.rush/temp/shrinkwrap-deps.json +189 -192
  4. package/CHANGELOG.json +12 -0
  5. package/CHANGELOG.md +8 -1
  6. package/api.build.log +10 -24
  7. package/babel.config.js +1 -1
  8. package/cjs/api.js +1 -1
  9. package/cjs/api.js.map +1 -1
  10. package/cjs/auth.js +2 -1
  11. package/cjs/auth.js.map +1 -1
  12. package/cjs/caching.js +3 -3
  13. package/cjs/collections/appointment-adjunct-tags.js +28 -0
  14. package/cjs/collections/appointment-adjunct-tags.js.map +1 -0
  15. package/cjs/collections/appointment-deckversion-tags.js +28 -0
  16. package/cjs/collections/appointment-deckversion-tags.js.map +1 -0
  17. package/cjs/collections/appointment-section-tags.js +28 -0
  18. package/cjs/collections/appointment-section-tags.js.map +1 -0
  19. package/cjs/collections/appointment-slide-tags.js +28 -0
  20. package/cjs/collections/appointment-slide-tags.js.map +1 -0
  21. package/cjs/collections/appointment-tags.js +208 -0
  22. package/cjs/collections/appointment-tags.js.map +1 -0
  23. package/cjs/collections/tags.js +28 -0
  24. package/cjs/collections/tags.js.map +1 -0
  25. package/cjs/collections.js +78 -0
  26. package/cjs/collections.js.map +1 -1
  27. package/cjs/models/appointment-adjunct-tags.js +52 -0
  28. package/cjs/models/appointment-adjunct-tags.js.map +1 -0
  29. package/cjs/models/appointment-deckversion-tags.js +52 -0
  30. package/cjs/models/appointment-deckversion-tags.js.map +1 -0
  31. package/cjs/models/appointment-section-tags.js +52 -0
  32. package/cjs/models/appointment-section-tags.js.map +1 -0
  33. package/cjs/models/appointment-slide-tags.js +52 -0
  34. package/cjs/models/appointment-slide-tags.js.map +1 -0
  35. package/cjs/models/appointment-tags.js +16 -15
  36. package/cjs/models/appointment-tags.js.map +1 -1
  37. package/cjs/models/appointment.js +8 -2
  38. package/cjs/models/appointment.js.map +1 -1
  39. package/cjs/models/deck-tags.js +61 -0
  40. package/cjs/models/deck-tags.js.map +1 -0
  41. package/cjs/models/deck-version.js +2 -0
  42. package/cjs/models/deck-version.js.map +1 -1
  43. package/cjs/models/deck.js +4 -1
  44. package/cjs/models/deck.js.map +1 -1
  45. package/cjs/models/manifest-json.js +47 -12
  46. package/cjs/models/manifest-json.js.map +1 -1
  47. package/cjs/models/preset.js +21 -1
  48. package/cjs/models/preset.js.map +1 -1
  49. package/cjs/models/tag.js +54 -0
  50. package/cjs/models/tag.js.map +1 -0
  51. package/cjs/models/user.js +2 -1
  52. package/cjs/models/user.js.map +1 -1
  53. package/cjs/models.js +78 -0
  54. package/cjs/models.js.map +1 -1
  55. package/cjs/presentation/appointment-presentation.js +5 -2
  56. package/cjs/presentation/appointment-presentation.js.map +1 -1
  57. package/cjs/presentation/base-presentation-model.js +56 -7
  58. package/cjs/presentation/base-presentation-model.js.map +1 -1
  59. package/cjs/presentation/base-presentation-model.spec.js +40 -6
  60. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  61. package/cjs/presentation/presentation-deck.js +2 -1
  62. package/cjs/presentation/presentation-deck.js.map +1 -1
  63. package/cjs/presentation/presentation-section.js +21 -8
  64. package/cjs/presentation/presentation-section.js.map +1 -1
  65. package/cjs/presentation/presentation-section.spec.js +418 -0
  66. package/cjs/presentation/presentation-section.spec.js.map +1 -0
  67. package/cjs/presentation/presentation-slide.js +12 -4
  68. package/cjs/presentation/presentation-slide.js.map +1 -1
  69. package/cjs/presentation/presentation-slide.spec.js +294 -0
  70. package/cjs/presentation/presentation-slide.spec.js.map +1 -0
  71. package/cjs/presentation/presentation-subslide.js +5 -2
  72. package/cjs/presentation/presentation-subslide.js.map +1 -1
  73. package/cjs/presentation/presentation-subslide.spec.js +58 -12
  74. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  75. package/cjs/presentation/presentation.js +13 -3
  76. package/cjs/presentation/presentation.js.map +1 -1
  77. package/cjs/state-register.js +11 -1
  78. package/cjs/state-register.js.map +1 -1
  79. package/cjs/sync.js +1 -1
  80. package/cjs/utils.js +5 -5
  81. package/config/rush-project.json +53 -0
  82. package/package.json +64 -66
  83. package/src/api.js +1 -1
  84. package/src/collections/appointment-adjunct-tags.js +18 -0
  85. package/src/collections/appointment-deckversion-tags.js +21 -0
  86. package/src/collections/appointment-section-tags.js +18 -0
  87. package/src/collections/appointment-slide-tags.js +18 -0
  88. package/src/collections/appointment-tags.js +136 -0
  89. package/src/collections/tags.js +18 -0
  90. package/src/collections.js +6 -0
  91. package/src/models/appointment-adjunct-tags.js +41 -0
  92. package/src/models/appointment-deckversion-tags.js +41 -0
  93. package/src/models/appointment-section-tags.js +41 -0
  94. package/src/models/appointment-slide-tags.js +41 -0
  95. package/src/models/appointment-tags.js +16 -14
  96. package/src/models/appointment.js +6 -1
  97. package/src/models/deck-tags.js +52 -0
  98. package/src/models/deck-version.js +2 -0
  99. package/src/models/deck.js +2 -0
  100. package/src/models/manifest-json.js +46 -7
  101. package/src/models/preset.js +19 -0
  102. package/src/models/tag.js +42 -0
  103. package/src/models/user.js +2 -0
  104. package/src/models.js +6 -0
  105. package/src/presentation/appointment-presentation.js +4 -1
  106. package/src/presentation/base-presentation-model.js +52 -7
  107. package/src/presentation/base-presentation-model.spec.js +44 -6
  108. package/src/presentation/presentation-deck.js +1 -0
  109. package/src/presentation/presentation-section.js +20 -9
  110. package/src/presentation/presentation-section.spec.js +363 -0
  111. package/src/presentation/presentation-slide.js +16 -3
  112. package/src/presentation/presentation-slide.spec.js +250 -0
  113. package/src/presentation/presentation-subslide.js +7 -2
  114. package/src/presentation/presentation-subslide.spec.js +32 -3
  115. package/src/presentation/presentation.js +15 -3
  116. package/src/state-register.js +7 -0
  117. package/api.build.error.log +0 -16
package/cjs/models.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/models.js"],"names":[],"mappings":";;;;;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["/**\n * @namespace models\n */\nexport * from \"./models/activity-item\";\nexport * from \"./models/adjunct\";\nexport * from \"./models/adjunct-section\";\nexport * from \"./models/adjunct-slide\";\nexport * from \"./models/adjunct-sub-slide\";\nexport * from \"./models/api\";\nexport * from \"./models/appointment\";\nexport * from \"./models/appointment-tags\";\nexport * from \"./models/asset\";\nexport * from \"./models/auto-adjunct\";\nexport * from \"./models/base\";\nexport * from \"./models/choicelist.js\";\nexport * from \"./models/cms-val\";\nexport * from \"./models/contact\";\nexport * from \"./models/customer\";\nexport * from \"./models/deck\";\nexport * from \"./models/deck-version\";\nexport * from \"./models/dispatch\";\nexport * from \"./models/dispatch-preview\";\nexport * from \"./models/envs.js\";\nexport * from \"./models/event\";\nexport * from \"./models/event-object\";\nexport * from \"./models/file.js\";\nexport * from \"./models/feed-data.js\";\nexport * from \"./models/group\";\nexport * from \"./models/handover.js\";\nexport * from \"./models/hosted-preso.js\";\nexport * from \"./models/image\";\nexport * from \"./models/location.js\";\nexport * from \"./models/manifest-json\";\nexport * from \"./models/deck-note\";\nexport * from \"./models/opportunity\";\nexport * from \"./models/pack\";\nexport * from \"./models/pack-diff\";\nexport * from \"./models/preset\";\nexport * from \"./models/refresh-request\";\nexport * from \"./models/room\";\nexport * from \"./models/salesforce-lookup.js\";\nexport * from \"./models/section\";\nexport * from \"./models/section-selection\";\nexport * from \"./models/slide\";\nexport * from \"./models/slide-selection\";\nexport * from \"./models/snapshot\";\nexport * from \"./models/sub-slide\";\nexport * from \"./models/support-ticket.js\";\nexport * from \"./models/tenancy.js\";\nexport * from \"./models/timing-log.js\";\nexport * from \"./models/upload.js\";\nexport * from \"./models/user\";\nexport * from \"./models/onshare\";\nexport * from \"./models/appointment-editor.js\";\nexport * from \"./models/appointment-duplicate.js\";\nexport * from \"./models/appointment-stats.js\";\nexport * from \"./models/appointment-viewing.js\";\nexport * from \"./models/team.js\";\nexport * from \"./models/template.js\";\nexport * from \"./models/auto-adjunct-key-check.js\";\nexport * from \"./models/transcribe-socket.js\";\n"],"file":"models.js"}
1
+ {"version":3,"sources":["../src/models.js"],"names":[],"mappings":";;;;;;AAGA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["/**\n * @namespace models\n */\nexport * from \"./models/activity-item\";\nexport * from \"./models/adjunct\";\nexport * from \"./models/adjunct-section\";\nexport * from \"./models/adjunct-slide\";\nexport * from \"./models/adjunct-sub-slide\";\nexport * from \"./models/api\";\nexport * from \"./models/appointment\";\nexport * from \"./models/appointment-tags\";\nexport * from \"./models/asset\";\nexport * from \"./models/auto-adjunct\";\nexport * from \"./models/base\";\nexport * from \"./models/choicelist.js\";\nexport * from \"./models/cms-val\";\nexport * from \"./models/contact\";\nexport * from \"./models/customer\";\nexport * from \"./models/deck\";\nexport * from \"./models/deck-tags\";\nexport * from \"./models/deck-version\";\nexport * from \"./models/dispatch\";\nexport * from \"./models/dispatch-preview\";\nexport * from \"./models/envs.js\";\nexport * from \"./models/event\";\nexport * from \"./models/event-object\";\nexport * from \"./models/file.js\";\nexport * from \"./models/feed-data.js\";\nexport * from \"./models/group\";\nexport * from \"./models/handover.js\";\nexport * from \"./models/hosted-preso.js\";\nexport * from \"./models/image\";\nexport * from \"./models/location.js\";\nexport * from \"./models/manifest-json\";\nexport * from \"./models/deck-note\";\nexport * from \"./models/opportunity\";\nexport * from \"./models/pack\";\nexport * from \"./models/pack-diff\";\nexport * from \"./models/preset\";\nexport * from \"./models/refresh-request\";\nexport * from \"./models/room\";\nexport * from \"./models/salesforce-lookup.js\";\nexport * from \"./models/section\";\nexport * from \"./models/section-selection\";\nexport * from \"./models/slide\";\nexport * from \"./models/slide-selection\";\nexport * from \"./models/snapshot\";\nexport * from \"./models/sub-slide\";\nexport * from \"./models/support-ticket.js\";\nexport * from \"./models/tag.js\";\nexport * from \"./models/tenancy.js\";\nexport * from \"./models/timing-log.js\";\nexport * from \"./models/upload.js\";\nexport * from \"./models/user\";\nexport * from \"./models/onshare\";\nexport * from \"./models/appointment-editor.js\";\nexport * from \"./models/appointment-duplicate.js\";\nexport * from \"./models/appointment-stats.js\";\nexport * from \"./models/appointment-viewing.js\";\nexport * from \"./models/appointment-deckversion-tags.js\";\nexport * from \"./models/appointment-section-tags.js\";\nexport * from \"./models/appointment-slide-tags.js\";\nexport * from \"./models/appointment-adjunct-tags.js\";\nexport * from \"./models/team.js\";\nexport * from \"./models/template.js\";\nexport * from \"./models/auto-adjunct-key-check.js\";\nexport * from \"./models/transcribe-socket.js\";\n"],"file":"models.js"}
@@ -82,7 +82,10 @@ var AppointmentPresentation = _base.BaseModel.extend(
82
82
  exports.AppointmentPresentation = AppointmentPresentation;
83
83
 
84
84
  var createFromAppointment = function createFromAppointment(appointment, options) {
85
- var appointmentPresentation = new AppointmentPresentation();
85
+ var appointmentPresentation = new AppointmentPresentation(); // Note that we're not passing through tags if appointment.tags is empty.
86
+ // This is because tags currently aren't available in the telepresenter
87
+ // bundle and we want to fall back on the model tags for now.
88
+
86
89
  appointmentPresentation.presentation.decks.add(appointment.deckversion_set.map(function (model, index) {
87
90
  return _presentationDeck.PresentationDeck.createFromDeckVersion(model, _objectSpread({
88
91
  adjunctSections: appointment.adjunctSections,
@@ -91,7 +94,7 @@ var createFromAppointment = function createFromAppointment(appointment, options)
91
94
  sectionSelections: appointment.appointmentssection_set,
92
95
  slideSelections: appointment.appointmentsslide_set,
93
96
  index: index,
94
- tags: appointment.tags.items
97
+ appointmentTags: appointment.tags.length ? appointment.tags : null
95
98
  }, options));
96
99
  }));
97
100
  appointmentPresentation.tele = appointment.latest_tele;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/presentation/appointment-presentation.js"],"names":["AppointmentPresentation","BaseModel","extend","props","viewtype","begin","end","tele","supportMode","locks","children","presentation","latest_snapshot","latest_feed_data","user","collections","opportunities","contacts","createFromAppointment","appointment","options","appointmentPresentation","decks","add","deckversion_set","map","model","index","PresentationDeck","createFromDeckVersion","adjunctSections","adjunctSlides","adjunctSubSlides","sectionSelections","appointmentssection_set","slideSelections","appointmentsslide_set","tags","items","latest_tele","opportunity_set","contact_set","support_mode","id","createFromURL","url","AppointmentModel","fetchAll","then","createFromID"],"mappings":"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","sourcesContent":["import \"./presentation.js\";\nimport \"../models/feed-data.js\";\nimport \"../models/snapshot.js\";\nimport \"../models/user.js\";\nimport \"../collections/opportunities.js\";\nimport \"../collections/contacts.js\";\n\nimport { AppointmentModel } from \"../models.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport { PresentationDeck } from \"./presentation-deck.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias presentation.AppointmentPresentation\n * @extends presentation.BasePresentationModel\n */\nexport const AppointmentPresentation = BaseModel.extend(\n\t/** @lends presentation.AppointmentPresentation# */ {\n\t\t/**\n\t\t * @property {string} viewtype\n\t\t * @property {date} begin\n\t\t * @property {object} tele\n\t\t * @property {boolean} supportMode\n\t\t */\n\t\tprops: {\n\t\t\tviewtype: \"string\",\n\t\t\tbegin: \"date\",\n\t\t\tend: \"date\",\n\t\t\ttele: \"object\",\n\t\t\tsupportMode: \"boolean\",\n\t\t\tlocks: \"array\",\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.Presentation} presentation\n\t\t * @property {models.SnapshotModel} latest_snapshot\n\t\t * @property {models.FeedDataModel} latest_feed_data\n\t\t * @property {models.UserModel} user\n\t\t */\n\t\tchildren: {\n\t\t\tpresentation: \"Presentation\",\n\t\t\tlatest_snapshot: \"SnapshotModel\",\n\t\t\tlatest_feed_data: \"FeedDataModel\",\n\t\t\tuser: \"UserModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.OpportunityCollection} opportunities\n\t\t * @property {collections.ContactCollection} contacts\n\t\t */\n\t\tcollections: {\n\t\t\topportunities: \"OpportunityCollection\",\n\t\t\tcontacts: \"ContactCollection\",\n\t\t},\n\t}\n);\n\nconst createFromAppointment = function (appointment, options) {\n\tconst appointmentPresentation = new AppointmentPresentation();\n\n\tappointmentPresentation.presentation.decks.add(\n\t\tappointment.deckversion_set.map((model, index) => {\n\t\t\treturn PresentationDeck.createFromDeckVersion(model, {\n\t\t\t\tadjunctSections: appointment.adjunctSections,\n\t\t\t\tadjunctSlides: appointment.adjunctSlides,\n\t\t\t\tadjunctSubSlides: appointment.adjunctSubSlides,\n\t\t\t\tsectionSelections: appointment.appointmentssection_set,\n\t\t\t\tslideSelections: appointment.appointmentsslide_set,\n\t\t\t\tindex,\n\t\t\t\ttags: appointment.tags.items,\n\t\t\t\t...options,\n\t\t\t});\n\t\t})\n\t);\n\n\tappointmentPresentation.tele = appointment.latest_tele;\n\tappointmentPresentation.user = appointment.user;\n\tappointmentPresentation.begin = appointment.begin;\n\tappointmentPresentation.end = appointment.end;\n\tappointmentPresentation.latest_snapshot = appointment.latest_snapshot;\n\tappointmentPresentation.latest_feed_data = appointment.latest_feed_data;\n\tappointmentPresentation.viewtype = appointment.viewtype;\n\tappointmentPresentation.opportunities = appointment.opportunity_set;\n\tappointmentPresentation.contacts = appointment.contact_set;\n\tappointmentPresentation.supportMode = appointment.support_mode;\n\tappointmentPresentation.id = appointment.id;\n\tappointmentPresentation.locks = appointment.locks;\n\n\treturn appointmentPresentation;\n};\n\n/**\n * @function createFromURL\n * @memberof presentation.AppointmentPresentation\n * @param {string} url\n */\nAppointmentPresentation.createFromURL = function (url, options = {}) {\n\tconst appointment = new AppointmentModel({ url });\n\n\treturn appointment.fetchAll(true).then(() => {\n\t\treturn createFromAppointment(appointment, options);\n\t});\n};\n\n/**\n * @function createFromID\n * @memberof presentation.AppointmentPresentation\n * @param {number} id\n */\nAppointmentPresentation.createFromID = function (id, options = {}) {\n\tconst appointment = new AppointmentModel({ id });\n\n\treturn appointment.fetchAll().then(() => {\n\t\treturn createFromAppointment(appointment, options);\n\t});\n};\n\n/**\n * @function createFromAppointment\n * @memberof presentation.AppointmentPresentation\n * @param {model} appointment\n */\nAppointmentPresentation.createFromAppointment = function (\n\tappointment,\n\toptions = {}\n) {\n\treturn createFromAppointment(appointment, options);\n};\n\nregister(\"AppointmentPresentation\", AppointmentPresentation);\n"],"file":"appointment-presentation.js"}
1
+ {"version":3,"sources":["../../src/presentation/appointment-presentation.js"],"names":["AppointmentPresentation","BaseModel","extend","props","viewtype","begin","end","tele","supportMode","locks","children","presentation","latest_snapshot","latest_feed_data","user","collections","opportunities","contacts","createFromAppointment","appointment","options","appointmentPresentation","decks","add","deckversion_set","map","model","index","PresentationDeck","createFromDeckVersion","adjunctSections","adjunctSlides","adjunctSubSlides","sectionSelections","appointmentssection_set","slideSelections","appointmentsslide_set","appointmentTags","tags","length","latest_tele","opportunity_set","contact_set","support_mode","id","createFromURL","url","AppointmentModel","fetchAll","then","createFromID"],"mappings":"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","sourcesContent":["import \"./presentation.js\";\nimport \"../models/feed-data.js\";\nimport \"../models/snapshot.js\";\nimport \"../models/user.js\";\nimport \"../collections/opportunities.js\";\nimport \"../collections/contacts.js\";\n\nimport { AppointmentModel } from \"../models.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport { PresentationDeck } from \"./presentation-deck.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias presentation.AppointmentPresentation\n * @extends presentation.BasePresentationModel\n */\nexport const AppointmentPresentation = BaseModel.extend(\n\t/** @lends presentation.AppointmentPresentation# */ {\n\t\t/**\n\t\t * @property {string} viewtype\n\t\t * @property {date} begin\n\t\t * @property {object} tele\n\t\t * @property {boolean} supportMode\n\t\t */\n\t\tprops: {\n\t\t\tviewtype: \"string\",\n\t\t\tbegin: \"date\",\n\t\t\tend: \"date\",\n\t\t\ttele: \"object\",\n\t\t\tsupportMode: \"boolean\",\n\t\t\tlocks: \"array\",\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.Presentation} presentation\n\t\t * @property {models.SnapshotModel} latest_snapshot\n\t\t * @property {models.FeedDataModel} latest_feed_data\n\t\t * @property {models.UserModel} user\n\t\t */\n\t\tchildren: {\n\t\t\tpresentation: \"Presentation\",\n\t\t\tlatest_snapshot: \"SnapshotModel\",\n\t\t\tlatest_feed_data: \"FeedDataModel\",\n\t\t\tuser: \"UserModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.OpportunityCollection} opportunities\n\t\t * @property {collections.ContactCollection} contacts\n\t\t */\n\t\tcollections: {\n\t\t\topportunities: \"OpportunityCollection\",\n\t\t\tcontacts: \"ContactCollection\",\n\t\t},\n\t}\n);\n\nconst createFromAppointment = function (appointment, options) {\n\tconst appointmentPresentation = new AppointmentPresentation();\n\n\t// Note that we're not passing through tags if appointment.tags is empty.\n\t// This is because tags currently aren't available in the telepresenter\n\t// bundle and we want to fall back on the model tags for now.\n\tappointmentPresentation.presentation.decks.add(\n\t\tappointment.deckversion_set.map((model, index) => {\n\t\t\treturn PresentationDeck.createFromDeckVersion(model, {\n\t\t\t\tadjunctSections: appointment.adjunctSections,\n\t\t\t\tadjunctSlides: appointment.adjunctSlides,\n\t\t\t\tadjunctSubSlides: appointment.adjunctSubSlides,\n\t\t\t\tsectionSelections: appointment.appointmentssection_set,\n\t\t\t\tslideSelections: appointment.appointmentsslide_set,\n\t\t\t\tindex,\n\t\t\t\tappointmentTags: appointment.tags.length ? appointment.tags : null,\n\t\t\t\t...options,\n\t\t\t});\n\t\t})\n\t);\n\n\tappointmentPresentation.tele = appointment.latest_tele;\n\tappointmentPresentation.user = appointment.user;\n\tappointmentPresentation.begin = appointment.begin;\n\tappointmentPresentation.end = appointment.end;\n\tappointmentPresentation.latest_snapshot = appointment.latest_snapshot;\n\tappointmentPresentation.latest_feed_data = appointment.latest_feed_data;\n\tappointmentPresentation.viewtype = appointment.viewtype;\n\tappointmentPresentation.opportunities = appointment.opportunity_set;\n\tappointmentPresentation.contacts = appointment.contact_set;\n\tappointmentPresentation.supportMode = appointment.support_mode;\n\tappointmentPresentation.id = appointment.id;\n\tappointmentPresentation.locks = appointment.locks;\n\n\treturn appointmentPresentation;\n};\n\n/**\n * @function createFromURL\n * @memberof presentation.AppointmentPresentation\n * @param {string} url\n */\nAppointmentPresentation.createFromURL = function (url, options = {}) {\n\tconst appointment = new AppointmentModel({ url });\n\n\treturn appointment.fetchAll(true).then(() => {\n\t\treturn createFromAppointment(appointment, options);\n\t});\n};\n\n/**\n * @function createFromID\n * @memberof presentation.AppointmentPresentation\n * @param {number} id\n */\nAppointmentPresentation.createFromID = function (id, options = {}) {\n\tconst appointment = new AppointmentModel({ id });\n\n\treturn appointment.fetchAll().then(() => {\n\t\treturn createFromAppointment(appointment, options);\n\t});\n};\n\n/**\n * @function createFromAppointment\n * @memberof presentation.AppointmentPresentation\n * @param {model} appointment\n */\nAppointmentPresentation.createFromAppointment = function (\n\tappointment,\n\toptions = {}\n) {\n\treturn createFromAppointment(appointment, options);\n};\n\nregister(\"AppointmentPresentation\", AppointmentPresentation);\n"],"file":"appointment-presentation.js"}
@@ -76,17 +76,66 @@ BasePresentationModel.getVisibilityAndSequence = function (model) {
76
76
  return config;
77
77
  };
78
78
 
79
+ var getAppointmentTags = function getAppointmentTags(model, tags) {
80
+ var _model$adjunct;
81
+
82
+ var url = ((_model$adjunct = model.adjunct) === null || _model$adjunct === void 0 ? void 0 : _model$adjunct.url()) || model.url();
83
+ var tagItem = tags.find(function (tag) {
84
+ return tag.content_url === url;
85
+ });
86
+
87
+ if (tagItem) {
88
+ return tagItem.tags || [];
89
+ } // Subslide tags currently aren't included in the
90
+ // appointmentTags data.
91
+
92
+
93
+ return model.tags || [];
94
+ };
95
+
96
+ var getDeckTags = function getDeckTags(model, tags) {
97
+ // All non-adjunct sections, slides and subslides have namespaced_key
98
+ if (model.namespaced_key) {
99
+ return tags[model.namespaced_key] || model.tags || [];
100
+ } else if (model.adjunct || model.isAutoAdjunct) {
101
+ // Autoadjunct keys are unique and move around so we search for them
102
+ // and ignore the rest of the namespaced key
103
+ var keys = Object.keys(tags).filter(function (key) {
104
+ if (key.includes("/")) {
105
+ var splitKey = key.split("/");
106
+ return splitKey[splitKey.length - 1] === model.key;
107
+ }
108
+
109
+ return key === model.key;
110
+ });
111
+ return keys.length ? tags[keys[0]] : [];
112
+ } else if (model.deck) {
113
+ // The deck's namespaced key is always "" - this is because the
114
+ // namespaced key format is section-key/slide-key, but the
115
+ // deck sits above sections.
116
+ return tags[""] || model.tags || [];
117
+ }
118
+
119
+ return model.tags || [];
120
+ }; // Retrieve the tags for the model.
121
+ // If appointmentTags is passed through in the options, we call the
122
+ // getAppointmentTags function above to retrieve the appointment tags
123
+ // for the model.
124
+ // if there are no appointmentTags but deckTags are passed
125
+ // through then we call the getDeckTags function.
126
+ // In the future we will always use one of these two methods and
127
+ // references to model.tags should be removed.
128
+
129
+
79
130
  BasePresentationModel.getTags = function (model) {
80
131
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
81
132
 
82
- if (options.tags) {
83
- if (model.namespaced_key) {
84
- return options.tags[model.namespaced_key] || [];
85
- } else if (model.deck) {
86
- return options.tags[""];
87
- }
133
+ if (options.appointmentTags) {
134
+ return getAppointmentTags(model, options.appointmentTags);
135
+ }
88
136
 
89
- return [];
137
+ if (options.deckTags) {
138
+ return getDeckTags(model, options.deckTags);
90
139
  }
91
140
 
92
141
  return model.tags || [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/presentation/base-presentation-model.js"],"names":["BasePresentationModel","BaseModel","extend","url","getVisibilityAndSequence","model","options","choicelist","selections","config","visible","enabled","sequence","selectionID","choice","find","item","indexOf","adjunct","selection","id","getTags","tags","namespaced_key","deck","canBeEmpty"],"mappings":";;;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,qBAAqB,GAAGC,gBAAUC,MAAV;AACpC;AAAkD;AACjDC,EAAAA,GADiD,iBAC3C;AACL,WAAO,IAAP;AACA;AAHgD,CADd,CAA9B;AAQP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAEAH,qBAAqB,CAACI,wBAAtB,GAAiD,UAChDC,KADgD,EAG/C;AAAA,MADDC,OACC,uEADS,EACT;AACD,4BAAiDA,OAAjD,CAAQC,UAAR;AAAA,MAAQA,UAAR,oCAAqB,IAArB;AAAA,4BAAiDD,OAAjD,CAA2BE,UAA3B;AAAA,MAA2BA,UAA3B,oCAAwC,IAAxC;AACA,MAAML,GAAG,GAAGE,KAAK,CAACF,GAAN,EAAZ;AAEA,MAAMM,MAAM,GAAG;AACdC,IAAAA,OAAO,EAAEL,KAAK,CAACK,OAAN,IAAiBL,KAAK,CAACM,OAAvB,IAAkC,KAD7B;AAEdC,IAAAA,QAAQ,EAAEP,KAAK,CAACO,QAFF;AAGdC,IAAAA,WAAW,EAAE;AAHC,GAAf;;AAMA,MAAIN,UAAJ,EAAgB;AACf;AACA;AACA,QAAMO,MAAM,GAAGP,UAAU,CAACQ,IAAX,CAAgB,UAACC,IAAD;AAAA,aAAUA,IAAI,CAACb,GAAL,KAAaA,GAAvB;AAAA,KAAhB,CAAf;;AAEA,QAAIW,MAAJ,EAAY;AACXL,MAAAA,MAAM,CAACG,QAAP,GAAkBL,UAAU,CAACU,OAAX,CAAmBH,MAAnB,CAAlB;AACAL,MAAAA,MAAM,CAACC,OAAP,GAAiBI,MAAM,CAACJ,OAAxB;AACA,KAHD,MAGO;AACND,MAAAA,MAAM,CAACC,OAAP,GAAiB,KAAjB;AACA;AACD,GAXD,MAWO,IAAIF,UAAU,IAAI,CAACH,KAAK,CAACa,OAAzB,EAAkC;AACxC;AACA;AACA;AACA,QAAMC,SAAS,GAAGX,UAAU,CAACO,IAAX,CAAgB,UAACI,SAAD;AAAA,aAAeA,SAAS,CAAChB,GAAV,KAAkBA,GAAjC;AAAA,KAAhB,CAAlB;;AAEA,QAAIgB,SAAJ,EAAe;AACdV,MAAAA,MAAM,CAACC,OAAP,GAAiBS,SAAS,CAACT,OAA3B;AACAD,MAAAA,MAAM,CAACG,QAAP,GAAkBO,SAAS,CAACP,QAA5B;AACAH,MAAAA,MAAM,CAACI,WAAP,GAAqBM,SAAS,CAACC,EAA/B;AACA;AACD,GAhCA,CAkCD;AACA;;;AAEA,SAAOX,MAAP;AACA,CAzCD;;AA2CAT,qBAAqB,CAACqB,OAAtB,GAAgC,UAAUhB,KAAV,EAA+B;AAAA,MAAdC,OAAc,uEAAJ,EAAI;;AAC9D,MAAIA,OAAO,CAACgB,IAAZ,EAAkB;AACjB,QAAIjB,KAAK,CAACkB,cAAV,EAA0B;AACzB,aAAOjB,OAAO,CAACgB,IAAR,CAAajB,KAAK,CAACkB,cAAnB,KAAsC,EAA7C;AACA,KAFD,MAEO,IAAIlB,KAAK,CAACmB,IAAV,EAAgB;AACtB,aAAOlB,OAAO,CAACgB,IAAR,CAAa,EAAb,CAAP;AACA;;AAED,WAAO,EAAP;AACA;;AAED,SAAOjB,KAAK,CAACiB,IAAN,IAAc,EAArB;AACA,CAZD;;AAcAtB,qBAAqB,CAACyB,UAAtB,GAAmC,IAAnC","sourcesContent":["import { BaseModel } from \"../models/base.js\";\n\n/**\n * @constructor\n * @alias presentation.BasePresentationModel\n * @extends presentation.BaseModel\n */\nexport const BasePresentationModel = BaseModel.extend(\n\t/** @lends presentation.BasePresentationModel# */ {\n\t\turl() {\n\t\t\treturn null;\n\t\t},\n\t}\n);\n\n/**\n * Standard function for retrieving the visibility and sequence of a model\n * from a choicelist or section & slide selections. If a choicelist is\n * provided we prefer the choicelist, otherwise we use selections.\n * Adjuncts are included in choicelists but not in selections so we use the\n * model's state to determine sequence & vis when selections are used.\n */\n\nBasePresentationModel.getVisibilityAndSequence = function (\n\tmodel,\n\toptions = {}\n) {\n\tconst { choicelist = null, selections = null } = options;\n\tconst url = model.url();\n\n\tconst config = {\n\t\tvisible: model.visible || model.enabled || false,\n\t\tsequence: model.sequence,\n\t\tselectionID: null,\n\t};\n\n\tif (choicelist) {\n\t\t// All items should have a choicelist entry - if it's not in\n\t\t// the choicelist, it's not in the preso\n\t\tconst choice = choicelist.find((item) => item.url === url);\n\n\t\tif (choice) {\n\t\t\tconfig.sequence = choicelist.indexOf(choice);\n\t\t\tconfig.visible = choice.visible;\n\t\t} else {\n\t\t\tconfig.visible = false;\n\t\t}\n\t} else if (selections && !model.adjunct) {\n\t\t// Non-adjunct subslides and adjunct sections/slides/subslides\n\t\t// have no selections - they fall through here using their\n\t\t// model's values\n\t\tconst selection = selections.find((selection) => selection.url === url);\n\n\t\tif (selection) {\n\t\t\tconfig.visible = selection.visible;\n\t\t\tconfig.sequence = selection.sequence;\n\t\t\tconfig.selectionID = selection.id;\n\t\t}\n\t}\n\n\t// If neither a choicelist nor selections are available, the\n\t// values on the model will be used.\n\n\treturn config;\n};\n\nBasePresentationModel.getTags = function (model, options = {}) {\n\tif (options.tags) {\n\t\tif (model.namespaced_key) {\n\t\t\treturn options.tags[model.namespaced_key] || [];\n\t\t} else if (model.deck) {\n\t\t\treturn options.tags[\"\"];\n\t\t}\n\n\t\treturn [];\n\t}\n\n\treturn model.tags || [];\n};\n\nBasePresentationModel.canBeEmpty = true;\n"],"file":"base-presentation-model.js"}
1
+ {"version":3,"sources":["../../src/presentation/base-presentation-model.js"],"names":["BasePresentationModel","BaseModel","extend","url","getVisibilityAndSequence","model","options","choicelist","selections","config","visible","enabled","sequence","selectionID","choice","find","item","indexOf","adjunct","selection","id","getAppointmentTags","tags","tagItem","tag","content_url","getDeckTags","namespaced_key","isAutoAdjunct","keys","Object","filter","key","includes","splitKey","split","length","deck","getTags","appointmentTags","deckTags","canBeEmpty"],"mappings":"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","sourcesContent":["import { BaseModel } from \"../models/base.js\";\n\n/**\n * @constructor\n * @alias presentation.BasePresentationModel\n * @extends presentation.BaseModel\n */\nexport const BasePresentationModel = BaseModel.extend(\n\t/** @lends presentation.BasePresentationModel# */ {\n\t\turl() {\n\t\t\treturn null;\n\t\t},\n\t}\n);\n\n/**\n * Standard function for retrieving the visibility and sequence of a model\n * from a choicelist or section & slide selections. If a choicelist is\n * provided we prefer the choicelist, otherwise we use selections.\n * Adjuncts are included in choicelists but not in selections so we use the\n * model's state to determine sequence & vis when selections are used.\n */\n\nBasePresentationModel.getVisibilityAndSequence = function (\n\tmodel,\n\toptions = {}\n) {\n\tconst { choicelist = null, selections = null } = options;\n\tconst url = model.url();\n\n\tconst config = {\n\t\tvisible: model.visible || model.enabled || false,\n\t\tsequence: model.sequence,\n\t\tselectionID: null,\n\t};\n\n\tif (choicelist) {\n\t\t// All items should have a choicelist entry - if it's not in\n\t\t// the choicelist, it's not in the preso\n\t\tconst choice = choicelist.find((item) => item.url === url);\n\n\t\tif (choice) {\n\t\t\tconfig.sequence = choicelist.indexOf(choice);\n\t\t\tconfig.visible = choice.visible;\n\t\t} else {\n\t\t\tconfig.visible = false;\n\t\t}\n\t} else if (selections && !model.adjunct) {\n\t\t// Non-adjunct subslides and adjunct sections/slides/subslides\n\t\t// have no selections - they fall through here using their\n\t\t// model's values\n\t\tconst selection = selections.find((selection) => selection.url === url);\n\n\t\tif (selection) {\n\t\t\tconfig.visible = selection.visible;\n\t\t\tconfig.sequence = selection.sequence;\n\t\t\tconfig.selectionID = selection.id;\n\t\t}\n\t}\n\n\t// If neither a choicelist nor selections are available, the\n\t// values on the model will be used.\n\n\treturn config;\n};\n\nconst getAppointmentTags = function (model, tags) {\n\tconst url = model.adjunct?.url() || model.url();\n\tconst tagItem = tags.find((tag) => tag.content_url === url);\n\n\tif (tagItem) {\n\t\treturn tagItem.tags || [];\n\t}\n\n\t// Subslide tags currently aren't included in the\n\t// appointmentTags data.\n\treturn model.tags || [];\n};\n\nconst getDeckTags = function (model, tags) {\n\t// All non-adjunct sections, slides and subslides have namespaced_key\n\tif (model.namespaced_key) {\n\t\treturn tags[model.namespaced_key] || model.tags || [];\n\t} else if (model.adjunct || model.isAutoAdjunct) {\n\t\t// Autoadjunct keys are unique and move around so we search for them\n\t\t// and ignore the rest of the namespaced key\n\t\tconst keys = Object.keys(tags).filter((key) => {\n\t\t\tif (key.includes(\"/\")) {\n\t\t\t\tconst splitKey = key.split(\"/\");\n\n\t\t\t\treturn splitKey[splitKey.length - 1] === model.key;\n\t\t\t}\n\t\t\treturn key === model.key;\n\t\t});\n\t\treturn keys.length ? tags[keys[0]] : [];\n\t} else if (model.deck) {\n\t\t// The deck's namespaced key is always \"\" - this is because the\n\t\t// namespaced key format is section-key/slide-key, but the\n\t\t// deck sits above sections.\n\t\treturn tags[\"\"] || model.tags || [];\n\t}\n\n\treturn model.tags || [];\n};\n\n// Retrieve the tags for the model.\n// If appointmentTags is passed through in the options, we call the\n// getAppointmentTags function above to retrieve the appointment tags\n// for the model.\n// if there are no appointmentTags but deckTags are passed\n// through then we call the getDeckTags function.\n// In the future we will always use one of these two methods and\n// references to model.tags should be removed.\nBasePresentationModel.getTags = function (model, options = {}) {\n\tif (options.appointmentTags) {\n\t\treturn getAppointmentTags(model, options.appointmentTags);\n\t}\n\n\tif (options.deckTags) {\n\t\treturn getDeckTags(model, options.deckTags);\n\t}\n\n\treturn model.tags || [];\n};\n\nBasePresentationModel.canBeEmpty = true;\n"],"file":"base-presentation-model.js"}
@@ -122,13 +122,13 @@ describe("#getVisibilityAndSequence", function () {
122
122
  }); // adjuncts!!
123
123
  });
124
124
  describe("#getTags", function () {
125
- it("should return empty array when no options or model.tags", function () {
125
+ it("should return empty array when no options or model tags", function () {
126
126
  var tags = _basePresentationModel.BasePresentationModel.getTags({});
127
127
 
128
128
  expect((0, _typeof2.default)(tags)).toEqual("object");
129
129
  expect(tags.length).toEqual(0);
130
130
  });
131
- it("should return model.tags when no tags passed in options", function () {
131
+ it("should return tags when no tags passed in options", function () {
132
132
  var model = {
133
133
  tags: ["model-tag-1", "model-tag-2"]
134
134
  };
@@ -137,13 +137,13 @@ describe("#getTags", function () {
137
137
 
138
138
  expect(tags).toEqual(model.tags);
139
139
  });
140
- it("should return options.tags for slide when tags passed in options", function () {
140
+ it("should return tags for slide when tags passed in options", function () {
141
141
  var model = {
142
142
  namespaced_key: "slide-key",
143
143
  tags: ["model-tag-1", "model-tag-2"]
144
144
  };
145
145
  var options = {
146
- tags: {
146
+ deckTags: {
147
147
  "": ["deck-tags"],
148
148
  "slide-key": ["slide-tags"]
149
149
  }
@@ -153,13 +153,13 @@ describe("#getTags", function () {
153
153
 
154
154
  expect(tags).toEqual(["slide-tags"]);
155
155
  });
156
- it("should return options.tags[''] for welcome slide ", function () {
156
+ it("should return tags for welcome slide when tags passed in options", function () {
157
157
  var model = {
158
158
  deck: {},
159
159
  tags: ["model-tag-1", "model-tag-2"]
160
160
  };
161
161
  var options = {
162
- tags: {
162
+ deckTags: {
163
163
  "": ["deck-tags"],
164
164
  "slide-key": ["slide-tags"]
165
165
  }
@@ -169,5 +169,39 @@ describe("#getTags", function () {
169
169
 
170
170
  expect(tags).toEqual(["deck-tags"]);
171
171
  });
172
+ it("should return tags for an adjunct section when tags passed in options", function () {
173
+ var model = {
174
+ adjunct: true,
175
+ key: "adjunctsection-key",
176
+ tags: ["old-tag-1", "old-tag-2"]
177
+ };
178
+ var options = {
179
+ deckTags: {
180
+ "": ["deck-tags"],
181
+ "adjunctsection-key": ["adjunctsection-tags"]
182
+ }
183
+ };
184
+
185
+ var tags = _basePresentationModel.BasePresentationModel.getTags(model, options);
186
+
187
+ expect(tags).toEqual(["adjunctsection-tags"]);
188
+ });
189
+ it("should return tags for an adjunct slide when tags passed in options", function () {
190
+ var model = {
191
+ adjunct: true,
192
+ key: "adjunctslide-key",
193
+ tags: ["old-tag-1", "old-tag-2"]
194
+ };
195
+ var options = {
196
+ deckTags: {
197
+ "": ["deck-tags"],
198
+ "section-key/adjunctslide-key": ["adjunctslide-tags"]
199
+ }
200
+ };
201
+
202
+ var tags = _basePresentationModel.BasePresentationModel.getTags(model, options);
203
+
204
+ expect(tags).toEqual(["adjunctslide-tags"]);
205
+ });
172
206
  });
173
207
  //# sourceMappingURL=base-presentation-model.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/presentation/base-presentation-model.spec.js"],"names":["describe","it","config","BasePresentationModel","getVisibilityAndSequence","sequence","visible","url","expected","selectionID","expect","toEqual","choicelist","selections","id","tags","getTags","length","model","namespaced_key","options","deck"],"mappings":"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","sourcesContent":["import { BasePresentationModel } from \"./base-presentation-model.js\";\n\ndescribe(\"#getVisibilityAndSequence\", () => {\n\tit(\"should return model defaults when no options\", () => {\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence({\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\turl: () => \"\",\n\t\t});\n\n\t\tconst expected = {\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return model defaults when no options\", () => {\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence({\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\turl: () => \"\",\n\t\t});\n\n\t\tconst expected = {\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return choicelist config\", () => {\n\t\tconst choicelist = [\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t},\n\t\t];\n\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence(\n\t\t\t{\n\t\t\t\tsequence: 99,\n\t\t\t\tvisible: false,\n\t\t\t\turl: () => \"bleh/meh\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tchoicelist,\n\t\t\t}\n\t\t);\n\n\t\tconst expected = {\n\t\t\tsequence: 0,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return selections config\", () => {\n\t\tconst selections = [\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t\tsequence: 27,\n\t\t\t\tid: 58,\n\t\t\t},\n\t\t];\n\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence(\n\t\t\t{\n\t\t\t\tsequence: 99,\n\t\t\t\tvisible: false,\n\t\t\t\turl: () => \"bleh/meh\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tselections,\n\t\t\t}\n\t\t);\n\n\t\tconst expected = {\n\t\t\tsequence: 27,\n\t\t\tvisible: true,\n\t\t\tselectionID: 58,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return choicelist config if both are provided\", () => {\n\t\tconst choicelist = [\n\t\t\t{\n\t\t\t\turl: \"gah/meh\",\n\t\t\t\tvisible: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t},\n\t\t];\n\n\t\tconst selections = [\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t\tsequence: 27,\n\t\t\t\tid: 58,\n\t\t\t},\n\t\t];\n\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence(\n\t\t\t{\n\t\t\t\tsequence: 99,\n\t\t\t\tvisible: false,\n\t\t\t\turl: () => \"bleh/meh\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tchoicelist,\n\t\t\t\tselections,\n\t\t\t}\n\t\t);\n\n\t\tconst expected = {\n\t\t\tsequence: 1,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\t// adjuncts!!\n});\n\ndescribe(\"#getTags\", () => {\n\tit(\"should return empty array when no options or model.tags\", () => {\n\t\tconst tags = BasePresentationModel.getTags({});\n\n\t\texpect(typeof tags).toEqual(\"object\");\n\t\texpect(tags.length).toEqual(0);\n\t});\n\n\tit(\"should return model.tags when no tags passed in options\", () => {\n\t\tconst model = {\n\t\t\ttags: [\"model-tag-1\", \"model-tag-2\"],\n\t\t};\n\t\tconst tags = BasePresentationModel.getTags(model);\n\n\t\texpect(tags).toEqual(model.tags);\n\t});\n\n\tit(\"should return options.tags for slide when tags passed in options\", () => {\n\t\tconst model = {\n\t\t\tnamespaced_key: \"slide-key\",\n\t\t\ttags: [\"model-tag-1\", \"model-tag-2\"],\n\t\t};\n\n\t\tconst options = {\n\t\t\ttags: {\n\t\t\t\t\"\": [\"deck-tags\"],\n\t\t\t\t\"slide-key\": [\"slide-tags\"],\n\t\t\t},\n\t\t};\n\n\t\tconst tags = BasePresentationModel.getTags(model, options);\n\n\t\texpect(tags).toEqual([\"slide-tags\"]);\n\t});\n\n\tit(\"should return options.tags[''] for welcome slide \", () => {\n\t\tconst model = {\n\t\t\tdeck: {},\n\t\t\ttags: [\"model-tag-1\", \"model-tag-2\"],\n\t\t};\n\n\t\tconst options = {\n\t\t\ttags: {\n\t\t\t\t\"\": [\"deck-tags\"],\n\t\t\t\t\"slide-key\": [\"slide-tags\"],\n\t\t\t},\n\t\t};\n\n\t\tconst tags = BasePresentationModel.getTags(model, options);\n\n\t\texpect(tags).toEqual([\"deck-tags\"]);\n\t});\n});\n"],"file":"base-presentation-model.spec.js"}
1
+ {"version":3,"sources":["../../src/presentation/base-presentation-model.spec.js"],"names":["describe","it","config","BasePresentationModel","getVisibilityAndSequence","sequence","visible","url","expected","selectionID","expect","toEqual","choicelist","selections","id","tags","getTags","length","model","namespaced_key","options","deckTags","deck","adjunct","key"],"mappings":"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","sourcesContent":["import { BasePresentationModel } from \"./base-presentation-model.js\";\n\ndescribe(\"#getVisibilityAndSequence\", () => {\n\tit(\"should return model defaults when no options\", () => {\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence({\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\turl: () => \"\",\n\t\t});\n\n\t\tconst expected = {\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return model defaults when no options\", () => {\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence({\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\turl: () => \"\",\n\t\t});\n\n\t\tconst expected = {\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return choicelist config\", () => {\n\t\tconst choicelist = [\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t},\n\t\t];\n\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence(\n\t\t\t{\n\t\t\t\tsequence: 99,\n\t\t\t\tvisible: false,\n\t\t\t\turl: () => \"bleh/meh\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tchoicelist,\n\t\t\t}\n\t\t);\n\n\t\tconst expected = {\n\t\t\tsequence: 0,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return selections config\", () => {\n\t\tconst selections = [\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t\tsequence: 27,\n\t\t\t\tid: 58,\n\t\t\t},\n\t\t];\n\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence(\n\t\t\t{\n\t\t\t\tsequence: 99,\n\t\t\t\tvisible: false,\n\t\t\t\turl: () => \"bleh/meh\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tselections,\n\t\t\t}\n\t\t);\n\n\t\tconst expected = {\n\t\t\tsequence: 27,\n\t\t\tvisible: true,\n\t\t\tselectionID: 58,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return choicelist config if both are provided\", () => {\n\t\tconst choicelist = [\n\t\t\t{\n\t\t\t\turl: \"gah/meh\",\n\t\t\t\tvisible: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t},\n\t\t];\n\n\t\tconst selections = [\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t\tsequence: 27,\n\t\t\t\tid: 58,\n\t\t\t},\n\t\t];\n\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence(\n\t\t\t{\n\t\t\t\tsequence: 99,\n\t\t\t\tvisible: false,\n\t\t\t\turl: () => \"bleh/meh\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tchoicelist,\n\t\t\t\tselections,\n\t\t\t}\n\t\t);\n\n\t\tconst expected = {\n\t\t\tsequence: 1,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\t// adjuncts!!\n});\n\ndescribe(\"#getTags\", () => {\n\tit(\"should return empty array when no options or model tags\", () => {\n\t\tconst tags = BasePresentationModel.getTags({});\n\n\t\texpect(typeof tags).toEqual(\"object\");\n\t\texpect(tags.length).toEqual(0);\n\t});\n\n\tit(\"should return tags when no tags passed in options\", () => {\n\t\tconst model = {\n\t\t\ttags: [\"model-tag-1\", \"model-tag-2\"],\n\t\t};\n\t\tconst tags = BasePresentationModel.getTags(model);\n\n\t\texpect(tags).toEqual(model.tags);\n\t});\n\n\tit(\"should return tags for slide when tags passed in options\", () => {\n\t\tconst model = {\n\t\t\tnamespaced_key: \"slide-key\",\n\t\t\ttags: [\"model-tag-1\", \"model-tag-2\"],\n\t\t};\n\n\t\tconst options = {\n\t\t\tdeckTags: {\n\t\t\t\t\"\": [\"deck-tags\"],\n\t\t\t\t\"slide-key\": [\"slide-tags\"],\n\t\t\t},\n\t\t};\n\n\t\tconst tags = BasePresentationModel.getTags(model, options);\n\n\t\texpect(tags).toEqual([\"slide-tags\"]);\n\t});\n\n\tit(\"should return tags for welcome slide when tags passed in options\", () => {\n\t\tconst model = {\n\t\t\tdeck: {},\n\t\t\ttags: [\"model-tag-1\", \"model-tag-2\"],\n\t\t};\n\n\t\tconst options = {\n\t\t\tdeckTags: {\n\t\t\t\t\"\": [\"deck-tags\"],\n\t\t\t\t\"slide-key\": [\"slide-tags\"],\n\t\t\t},\n\t\t};\n\n\t\tconst tags = BasePresentationModel.getTags(model, options);\n\n\t\texpect(tags).toEqual([\"deck-tags\"]);\n\t});\n\n\tit(\"should return tags for an adjunct section when tags passed in options\", () => {\n\t\tconst model = {\n\t\t\tadjunct: true,\n\t\t\tkey: \"adjunctsection-key\",\n\t\t\ttags: [\"old-tag-1\", \"old-tag-2\"],\n\t\t};\n\n\t\tconst options = {\n\t\t\tdeckTags: {\n\t\t\t\t\"\": [\"deck-tags\"],\n\t\t\t\t\"adjunctsection-key\": [\"adjunctsection-tags\"],\n\t\t\t},\n\t\t};\n\n\t\tconst tags = BasePresentationModel.getTags(model, options);\n\n\t\texpect(tags).toEqual([\"adjunctsection-tags\"]);\n\t});\n\n\tit(\"should return tags for an adjunct slide when tags passed in options\", () => {\n\t\tconst model = {\n\t\t\tadjunct: true,\n\t\t\tkey: \"adjunctslide-key\",\n\t\t\ttags: [\"old-tag-1\", \"old-tag-2\"],\n\t\t};\n\n\t\tconst options = {\n\t\t\tdeckTags: {\n\t\t\t\t\"\": [\"deck-tags\"],\n\t\t\t\t\"section-key/adjunctslide-key\": [\"adjunctslide-tags\"],\n\t\t\t},\n\t\t};\n\n\t\tconst tags = BasePresentationModel.getTags(model, options);\n\n\t\texpect(tags).toEqual([\"adjunctslide-tags\"]);\n\t});\n});\n"],"file":"base-presentation-model.spec.js"}
@@ -341,7 +341,8 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
341
341
  thumbnail: null,
342
342
  deckID: 1,
343
343
  title: "Local",
344
- version: 1
344
+ version: 1,
345
+ tags: manifestJSON.tags[""] || []
345
346
  });
346
347
 
347
348
  var usesImpostorSections = _lodash.default.some(manifestJSON.tags, function (tags) {
@@ -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","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});\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"}
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"}
@@ -223,7 +223,7 @@ PresentationSection.createFromSection = function (sectionModel) {
223
223
  impostor: false,
224
224
  title: sectionModel.title,
225
225
  deckversion: sectionModel.deckversion.id,
226
- editable: sectionModel.tags.indexOf("editable") > -1,
226
+ editable: tags.indexOf("editable") > -1,
227
227
  tags: tags,
228
228
  index: config.sequence,
229
229
  sequence: config.sequence,
@@ -242,7 +242,9 @@ PresentationSection.createFromSection = function (sectionModel) {
242
242
  */
243
243
 
244
244
 
245
- PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, deckVersionModel, options) {
245
+ PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, deckVersionModel) {
246
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
247
+
246
248
  _lodash.default.defaults(options, {
247
249
  rootAssetPath: null,
248
250
  selections: null,
@@ -259,9 +261,11 @@ PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, de
259
261
  key = adjunctSectionModel.key;
260
262
  } else if (keyID) {
261
263
  key = "adjunct-".concat(keyID);
264
+ adjunctSectionModel.key = key;
262
265
  }
263
266
 
264
267
  var config = PresentationSection.getVisibilityAndSequence(adjunctSectionModel, options);
268
+ var tags = PresentationSection.getTags(adjunctSectionModel, options);
265
269
  var section = new PresentationSection({
266
270
  id: options.getUniqueAdjunctID(),
267
271
  adjunct: adjunctSectionModel.adjunct ? adjunctSectionModel.adjunct.url() : null,
@@ -272,8 +276,8 @@ PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, de
272
276
  custom: !adjunctSectionModel.created_by_autoadjunct,
273
277
  createdByAutoAdjunct: adjunctSectionModel.created_by_autoadjunct,
274
278
  createdByTemplate: Boolean(adjunctSectionModel.template),
275
- impostor: adjunctSectionModel.tags && adjunctSectionModel.tags.indexOf("section-header") > -1,
276
- tags: adjunctSectionModel.tags,
279
+ impostor: tags.indexOf("section-header") > -1,
280
+ tags: tags,
277
281
  temporary: adjunctSectionModel.created_by_autoadjunct,
278
282
  title: adjunctSectionModel.title,
279
283
  deckversion: deckVersionModel.id,
@@ -311,7 +315,9 @@ PresentationSection.createFromAdjunctSection = function (adjunctSectionModel, de
311
315
  return section;
312
316
  };
313
317
 
314
- PresentationSection.createFromImpostorSection = function (slideModel, DeckVersionModel, options) {
318
+ PresentationSection.createFromImpostorSection = function (slideModel, DeckVersionModel) {
319
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
320
+
315
321
  _lodash.default.defaults(options, {
316
322
  rootAssetPath: null,
317
323
  selections: null,
@@ -346,7 +352,7 @@ PresentationSection.createFromImpostorSection = function (slideModel, DeckVersio
346
352
  impostor: true,
347
353
  title: slideModel.title,
348
354
  deckversion: slideModel.section.deckversion.id,
349
- editable: slideModel.tags.indexOf("editable") > -1,
355
+ editable: tags.indexOf("editable") > -1,
350
356
  tags: tags,
351
357
  index: config.sequence,
352
358
  sequence: config.sequence,
@@ -397,7 +403,8 @@ PresentationSection.createFromManifestImpostor = function (section, index) {
397
403
  return presentationSection;
398
404
  };
399
405
 
400
- PresentationSection.createFromAutoAdjunct = function (model, opts) {
406
+ PresentationSection.createFromAutoAdjunct = function (model) {
407
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
401
408
  var requiredKeys = ["index", "deckversionID"];
402
409
 
403
410
  for (var _i = 0, _requiredKeys = requiredKeys; _i < _requiredKeys.length; _i++) {
@@ -417,6 +424,11 @@ PresentationSection.createFromAutoAdjunct = function (model, opts) {
417
424
  impostor: false
418
425
  });
419
426
 
427
+ var tags = PresentationSection.getTags({
428
+ isAutoAdjunct: true,
429
+ key: model.key,
430
+ tags: model.tags
431
+ }, options);
420
432
  var autoAdjunct = new _models.AutoAdjunctModel(model);
421
433
  var autoAdjunctSection = new PresentationSection({
422
434
  id: options.id || autoAdjunct.id,
@@ -436,7 +448,8 @@ PresentationSection.createFromAutoAdjunct = function (model, opts) {
436
448
  visible: options.visible,
437
449
  allowConvert: options.allowConvert,
438
450
  deckversion: options.deckversionID,
439
- impostor: options.impostor
451
+ impostor: options.impostor,
452
+ tags: tags
440
453
  });
441
454
 
442
455
  if (autoAdjunct.template) {