@livepreso/api 6.44.0 → 6.46.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.
- package/.eslintrc.js +3 -0
- package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
- package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +10 -0
- package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +10 -0
- package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +10 -0
- package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
- package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +10 -0
- package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
- package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +10 -0
- package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +10 -0
- package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +10 -0
- package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +10 -0
- package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +10 -0
- package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +10 -0
- package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +10 -0
- package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +10 -0
- package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
- package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
- package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +10 -0
- package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +10 -0
- package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +10 -0
- package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +10 -0
- package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +10 -0
- package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +10 -0
- package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +10 -0
- package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +10 -0
- package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +10 -0
- package/.rush/temp/operation/test/all.log +19 -0
- package/.rush/temp/operation/test/state.json +3 -0
- package/.rush/temp/{package-deps_test.json → package-deps_build.json} +11 -11
- package/.rush/temp/shrinkwrap-deps.json +605 -597
- package/CHANGELOG.json +29 -0
- package/CHANGELOG.md +15 -1
- package/README.md +4 -4
- package/api.build.log +1 -1
- package/api.test.cache.log +1 -0
- package/api.test.log +19 -0
- package/bin/test.sh +0 -1
- package/cjs/api.js +18 -17
- package/cjs/api.js.map +1 -1
- package/cjs/api.spec.js +0 -4
- package/cjs/api.spec.js.map +1 -1
- package/cjs/auth.js +35 -36
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +52 -71
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +2 -7
- package/cjs/caching.js.map +1 -1
- package/cjs/collections/activity.js +16 -56
- package/cjs/collections/activity.js.map +1 -1
- package/cjs/collections/adjunct-sections.js +1 -10
- package/cjs/collections/adjunct-sections.js.map +1 -1
- package/cjs/collections/adjunct-slides.js +1 -10
- package/cjs/collections/adjunct-slides.js.map +1 -1
- package/cjs/collections/adjunct-sub-slides.js +1 -9
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/collections/appointment-adjunct-tags.js +1 -9
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
- package/cjs/collections/appointment-deckversion-tags.js +1 -9
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
- package/cjs/collections/appointment-duplicates.js +1 -9
- package/cjs/collections/appointment-duplicates.js.map +1 -1
- package/cjs/collections/appointment-editors.js +1 -10
- package/cjs/collections/appointment-editors.js.map +1 -1
- package/cjs/collections/appointment-section-tags.js +1 -9
- package/cjs/collections/appointment-section-tags.js.map +1 -1
- package/cjs/collections/appointment-slide-tags.js +1 -9
- package/cjs/collections/appointment-slide-tags.js.map +1 -1
- package/cjs/collections/appointment-tags.js +66 -103
- package/cjs/collections/appointment-tags.js.map +1 -1
- package/cjs/collections/appointment-templates.js +27 -0
- package/cjs/collections/appointment-templates.js.map +1 -0
- package/cjs/collections/appointments.js +9 -29
- package/cjs/collections/appointments.js.map +1 -1
- package/cjs/collections/assets.js +1 -9
- package/cjs/collections/assets.js.map +1 -1
- package/cjs/collections/auto-adjuncts.js +6 -21
- package/cjs/collections/auto-adjuncts.js.map +1 -1
- package/cjs/collections/base.js +46 -112
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +204 -233
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/cms-vals.js +9 -16
- package/cjs/collections/cms-vals.js.map +1 -1
- package/cjs/collections/contact-phones.js +20 -0
- package/cjs/collections/contact-phones.js.map +1 -0
- package/cjs/collections/contacts.js +1 -9
- package/cjs/collections/contacts.js.map +1 -1
- package/cjs/collections/created-assets.js +1 -10
- package/cjs/collections/created-assets.js.map +1 -1
- package/cjs/collections/customers.js +1 -9
- package/cjs/collections/customers.js.map +1 -1
- package/cjs/collections/deck-notes.js +1 -10
- package/cjs/collections/deck-notes.js.map +1 -1
- package/cjs/collections/deck-version-screenshots.js +49 -0
- package/cjs/collections/deck-version-screenshots.js.map +1 -0
- package/cjs/collections/deck-versions.js +5 -20
- package/cjs/collections/deck-versions.js.map +1 -1
- package/cjs/collections/decks.js +1 -9
- package/cjs/collections/decks.js.map +1 -1
- package/cjs/collections/deleted-assets.js +1 -10
- package/cjs/collections/deleted-assets.js.map +1 -1
- package/cjs/collections/dispatches.js +1 -13
- package/cjs/collections/dispatches.js.map +1 -1
- package/cjs/collections/event-objects.js +1 -9
- package/cjs/collections/event-objects.js.map +1 -1
- package/cjs/collections/events.js +1 -9
- package/cjs/collections/events.js.map +1 -1
- package/cjs/collections/groups.js +1 -9
- package/cjs/collections/groups.js.map +1 -1
- package/cjs/collections/images.js +1 -9
- package/cjs/collections/images.js.map +1 -1
- package/cjs/collections/locations.js +1 -9
- package/cjs/collections/locations.js.map +1 -1
- package/cjs/collections/opportunities.js +1 -9
- package/cjs/collections/opportunities.js.map +1 -1
- package/cjs/collections/pack-diffs.js +1 -9
- package/cjs/collections/pack-diffs.js.map +1 -1
- package/cjs/collections/packs.js +1 -9
- package/cjs/collections/packs.js.map +1 -1
- package/cjs/collections/presets.js +1 -9
- package/cjs/collections/presets.js.map +1 -1
- package/cjs/collections/section-selections.js +1 -9
- package/cjs/collections/section-selections.js.map +1 -1
- package/cjs/collections/sections.js +1 -9
- package/cjs/collections/sections.js.map +1 -1
- package/cjs/collections/slide-selections.js +1 -9
- package/cjs/collections/slide-selections.js.map +1 -1
- package/cjs/collections/slides.js +1 -9
- package/cjs/collections/slides.js.map +1 -1
- package/cjs/collections/snapshots.js +1 -9
- package/cjs/collections/snapshots.js.map +1 -1
- package/cjs/collections/sub-slides.js +1 -9
- package/cjs/collections/sub-slides.js.map +1 -1
- package/cjs/collections/tags.js +1 -9
- package/cjs/collections/tags.js.map +1 -1
- package/cjs/collections/teams.js +1 -9
- package/cjs/collections/teams.js.map +1 -1
- package/cjs/collections/templates.js +1 -9
- package/cjs/collections/templates.js.map +1 -1
- package/cjs/collections/uploads.js +1 -9
- package/cjs/collections/uploads.js.map +1 -1
- package/cjs/collections/users.js +1 -9
- package/cjs/collections/users.js.map +1 -1
- package/cjs/collections.js +33 -86
- package/cjs/collections.js.map +1 -1
- package/cjs/fixtures.js +187 -0
- package/cjs/fixtures.js.map +1 -0
- package/cjs/index.js +0 -10
- package/cjs/index.js.map +1 -1
- package/cjs/log.js +0 -1
- package/cjs/log.js.map +1 -1
- package/cjs/middleware.js +2 -7
- package/cjs/middleware.js.map +1 -1
- package/cjs/middlewares/auth.js +1 -17
- package/cjs/middlewares/auth.js.map +1 -1
- package/cjs/middlewares/base.js +3 -9
- package/cjs/middlewares/base.js.map +1 -1
- package/cjs/middlewares/json.js +1 -19
- package/cjs/middlewares/json.js.map +1 -1
- package/cjs/middlewares/redirect.js +5 -21
- package/cjs/middlewares/redirect.js.map +1 -1
- package/cjs/models/activity-item.js +6 -20
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/adjunct-section.js +8 -21
- package/cjs/models/adjunct-section.js.map +1 -1
- package/cjs/models/adjunct-slide.js +8 -21
- package/cjs/models/adjunct-slide.js.map +1 -1
- package/cjs/models/adjunct-sub-slide.js +1 -16
- package/cjs/models/adjunct-sub-slide.js.map +1 -1
- package/cjs/models/adjunct.js +34 -10
- package/cjs/models/adjunct.js.map +1 -1
- package/cjs/models/api.js +1 -6
- package/cjs/models/api.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +1 -13
- package/cjs/models/appointment-adjunct-tags.js.map +1 -1
- package/cjs/models/appointment-deckversion-tags.js +1 -13
- package/cjs/models/appointment-deckversion-tags.js.map +1 -1
- package/cjs/models/appointment-duplicate.js +3 -25
- package/cjs/models/appointment-duplicate.js.map +1 -1
- package/cjs/models/appointment-editor.js +1 -14
- package/cjs/models/appointment-editor.js.map +1 -1
- package/cjs/models/appointment-section-tags.js +1 -13
- package/cjs/models/appointment-section-tags.js.map +1 -1
- package/cjs/models/appointment-slide-tags.js +1 -13
- package/cjs/models/appointment-slide-tags.js.map +1 -1
- package/cjs/models/appointment-stats.js +1 -11
- package/cjs/models/appointment-stats.js.map +1 -1
- package/cjs/models/appointment-tags.js +1 -10
- package/cjs/models/appointment-tags.js.map +1 -1
- package/cjs/models/appointment-template.js +23 -0
- package/cjs/models/appointment-template.js.map +1 -0
- package/cjs/models/appointment-viewing.js +1 -8
- package/cjs/models/appointment-viewing.js.map +1 -1
- package/cjs/models/appointment.js +94 -69
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/asset.js +12 -11
- package/cjs/models/asset.js.map +1 -1
- package/cjs/models/auto-adjunct-key-check.js +1 -15
- package/cjs/models/auto-adjunct-key-check.js.map +1 -1
- package/cjs/models/auto-adjunct.js +5 -14
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +89 -173
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +8 -30
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/choicelist.js +1 -8
- package/cjs/models/choicelist.js.map +1 -1
- package/cjs/models/cms-val.js +28 -15
- package/cjs/models/cms-val.js.map +1 -1
- package/cjs/models/cms-val.spec.js +25 -0
- package/cjs/models/cms-val.spec.js.map +1 -0
- package/cjs/models/contact-phone.js +54 -0
- package/cjs/models/contact-phone.js.map +1 -0
- package/cjs/models/contact.js +1 -18
- package/cjs/models/contact.js.map +1 -1
- package/cjs/models/customer.js +5 -30
- package/cjs/models/customer.js.map +1 -1
- package/cjs/models/deck-note.js +1 -9
- package/cjs/models/deck-note.js.map +1 -1
- package/cjs/models/deck-tags.js +1 -12
- package/cjs/models/deck-tags.js.map +1 -1
- package/cjs/models/deck-version-screenshot.js +47 -0
- package/cjs/models/deck-version-screenshot.js.map +1 -0
- package/cjs/models/deck-version.js +54 -47
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +1 -14
- package/cjs/models/deck.js.map +1 -1
- package/cjs/models/dispatch-preview.js +1 -13
- package/cjs/models/dispatch-preview.js.map +1 -1
- package/cjs/models/dispatch.js +1 -23
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/envs.js +1 -6
- package/cjs/models/envs.js.map +1 -1
- package/cjs/models/event-object.js +1 -11
- package/cjs/models/event-object.js.map +1 -1
- package/cjs/models/event.js +1 -13
- package/cjs/models/event.js.map +1 -1
- package/cjs/models/feed-data.js +6 -13
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/file.js +1 -11
- package/cjs/models/file.js.map +1 -1
- package/cjs/models/group.js +1 -11
- package/cjs/models/group.js.map +1 -1
- package/cjs/models/handover.js +1 -13
- package/cjs/models/handover.js.map +1 -1
- package/cjs/models/hosted-preso.js +1 -15
- package/cjs/models/hosted-preso.js.map +1 -1
- package/cjs/models/image.js +30 -11
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/location.js +1 -13
- package/cjs/models/location.js.map +1 -1
- package/cjs/models/manifest-json.js +75 -74
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/onshare.js +1 -14
- package/cjs/models/onshare.js.map +1 -1
- package/cjs/models/opportunity.js +1 -14
- package/cjs/models/opportunity.js.map +1 -1
- package/cjs/models/pack-diff.js +1 -14
- package/cjs/models/pack-diff.js.map +1 -1
- package/cjs/models/pack.js +1 -12
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/preset.js +4 -20
- package/cjs/models/preset.js.map +1 -1
- package/cjs/models/refresh-request.js +17 -11
- package/cjs/models/refresh-request.js.map +1 -1
- package/cjs/models/room.js +1 -9
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/salesforce-lookup.js +1 -12
- package/cjs/models/salesforce-lookup.js.map +1 -1
- package/cjs/models/section-selection.js +1 -14
- package/cjs/models/section-selection.js.map +1 -1
- package/cjs/models/section.js +4 -15
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/slide-selection.js +1 -14
- package/cjs/models/slide-selection.js.map +1 -1
- package/cjs/models/slide.js +4 -15
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/snapshot.js +13 -15
- package/cjs/models/snapshot.js.map +1 -1
- package/cjs/models/snapshot.spec.js +44 -0
- package/cjs/models/snapshot.spec.js.map +1 -0
- package/cjs/models/sub-slide.js +1 -12
- package/cjs/models/sub-slide.js.map +1 -1
- package/cjs/models/support-ticket.js +1 -11
- package/cjs/models/support-ticket.js.map +1 -1
- package/cjs/models/tag.js +1 -13
- package/cjs/models/tag.js.map +1 -1
- package/cjs/models/team.js +14 -13
- package/cjs/models/team.js.map +1 -1
- package/cjs/models/template.js +89 -15
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/tenancy.js +4 -11
- package/cjs/models/tenancy.js.map +1 -1
- package/cjs/models/timing-log.js +21 -78
- package/cjs/models/timing-log.js.map +1 -1
- package/cjs/models/timing-log.spec.js +24 -37
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/token.js +46 -0
- package/cjs/models/token.js.map +1 -0
- package/cjs/models/transcribe-socket.js +1 -8
- package/cjs/models/transcribe-socket.js.map +1 -1
- package/cjs/models/upload.js +1 -7
- package/cjs/models/upload.js.map +1 -1
- package/cjs/models/user.js +11 -28
- package/cjs/models/user.js.map +1 -1
- package/cjs/models/user.spec.js +20 -30
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/models.js +44 -128
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +14 -36
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-collection.js +1 -7
- package/cjs/presentation/base-presentation-collection.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +108 -33
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +58 -23
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +73 -83
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +118 -88
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-decks.js +1 -9
- package/cjs/presentation/presentation-decks.js.map +1 -1
- package/cjs/presentation/presentation-section.js +70 -84
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +296 -238
- package/cjs/presentation/presentation-section.spec.js.map +1 -1
- package/cjs/presentation/presentation-sections.js +1 -9
- package/cjs/presentation/presentation-sections.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +74 -84
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +211 -166
- package/cjs/presentation/presentation-slide.spec.js.map +1 -1
- package/cjs/presentation/presentation-slides.js +1 -9
- package/cjs/presentation/presentation-slides.js.map +1 -1
- package/cjs/presentation/presentation-subslide.js +3 -23
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +101 -125
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslides.js +1 -9
- package/cjs/presentation/presentation-subslides.js.map +1 -1
- package/cjs/presentation/presentation.js +87 -32
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/presentation.js +0 -20
- package/cjs/presentation.js.map +1 -1
- package/cjs/selections.js +81 -0
- package/cjs/selections.js.map +1 -0
- package/cjs/state-register.js +3 -11
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +32 -76
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +51 -42
- package/cjs/utils.js.map +1 -1
- package/cjs/utils.spec.js +0 -4
- package/cjs/utils.spec.js.map +1 -1
- package/jest.config.js +5 -3
- package/package.json +11 -8
- package/src/api.js +17 -2
- package/src/auth.js +45 -9
- package/src/auth.spec.js +2 -0
- package/src/collections/activity.js +4 -4
- package/src/collections/adjunct-sections.js +1 -1
- package/src/collections/adjunct-slides.js +1 -1
- package/src/collections/adjunct-sub-slides.js +1 -1
- package/src/collections/appointment-adjunct-tags.js +1 -1
- package/src/collections/appointment-deckversion-tags.js +2 -2
- package/src/collections/appointment-duplicates.js +1 -1
- package/src/collections/appointment-editors.js +1 -1
- package/src/collections/appointment-section-tags.js +1 -1
- package/src/collections/appointment-slide-tags.js +1 -1
- package/src/collections/appointment-tags.js +20 -18
- package/src/collections/appointment-templates.js +26 -0
- package/src/collections/appointments.js +9 -9
- package/src/collections/assets.js +1 -1
- package/src/collections/auto-adjuncts.js +1 -1
- package/src/collections/base.js +20 -10
- package/src/collections/base.spec.js +19 -5
- package/src/collections/cms-vals.js +5 -1
- package/src/collections/contact-phones.js +18 -0
- package/src/collections/contacts.js +1 -1
- package/src/collections/created-assets.js +1 -1
- package/src/collections/customers.js +1 -1
- package/src/collections/deck-notes.js +1 -1
- package/src/collections/deck-version-screenshots.js +48 -0
- package/src/collections/deck-versions.js +1 -1
- package/src/collections/decks.js +1 -1
- package/src/collections/deleted-assets.js +1 -1
- package/src/collections/dispatches.js +2 -2
- package/src/collections/event-objects.js +1 -1
- package/src/collections/events.js +1 -1
- package/src/collections/groups.js +1 -1
- package/src/collections/images.js +1 -1
- package/src/collections/locations.js +1 -1
- package/src/collections/opportunities.js +1 -1
- package/src/collections/pack-diffs.js +1 -1
- package/src/collections/packs.js +1 -1
- package/src/collections/presets.js +1 -1
- package/src/collections/section-selections.js +1 -1
- package/src/collections/sections.js +1 -1
- package/src/collections/slide-selections.js +1 -1
- package/src/collections/slides.js +1 -1
- package/src/collections/snapshots.js +1 -1
- package/src/collections/sub-slides.js +1 -1
- package/src/collections/tags.js +1 -1
- package/src/collections/teams.js +1 -1
- package/src/collections/templates.js +1 -1
- package/src/collections/uploads.js +1 -1
- package/src/collections/users.js +1 -1
- package/src/collections.js +3 -0
- package/src/fixtures.js +193 -0
- package/src/models/activity-item.js +3 -1
- package/src/models/adjunct-section.js +7 -2
- package/src/models/adjunct-slide.js +7 -2
- package/src/models/adjunct-sub-slide.js +1 -1
- package/src/models/adjunct.js +39 -1
- package/src/models/appointment-adjunct-tags.js +1 -1
- package/src/models/appointment-deckversion-tags.js +1 -1
- package/src/models/appointment-duplicate.js +1 -1
- package/src/models/appointment-editor.js +1 -1
- package/src/models/appointment-section-tags.js +1 -1
- package/src/models/appointment-slide-tags.js +1 -1
- package/src/models/appointment-stats.js +1 -1
- package/src/models/appointment-tags.js +1 -1
- package/src/models/appointment-template.js +19 -0
- package/src/models/appointment-viewing.js +1 -1
- package/src/models/appointment.js +112 -37
- package/src/models/asset.js +15 -1
- package/src/models/auto-adjunct-key-check.js +1 -1
- package/src/models/auto-adjunct.js +4 -1
- package/src/models/base.js +55 -22
- package/src/models/base.spec.js +34 -27
- package/src/models/choicelist.js +1 -1
- package/src/models/cms-val.js +24 -1
- package/src/models/cms-val.spec.js +14 -0
- package/src/models/contact-phone.js +57 -0
- package/src/models/contact.js +1 -1
- package/src/models/customer.js +3 -3
- package/src/models/deck-note.js +1 -1
- package/src/models/deck-tags.js +1 -1
- package/src/models/deck-version-screenshot.js +48 -0
- package/src/models/deck-version.js +60 -9
- package/src/models/deck.js +1 -1
- package/src/models/dispatch-preview.js +1 -1
- package/src/models/dispatch.js +1 -1
- package/src/models/event-object.js +1 -1
- package/src/models/event.js +1 -1
- package/src/models/feed-data.js +3 -1
- package/src/models/file.js +1 -1
- package/src/models/group.js +1 -1
- package/src/models/handover.js +1 -1
- package/src/models/hosted-preso.js +1 -1
- package/src/models/image.js +33 -1
- package/src/models/location.js +1 -1
- package/src/models/manifest-json.js +57 -6
- package/src/models/onshare.js +1 -1
- package/src/models/opportunity.js +1 -1
- package/src/models/pack-diff.js +1 -1
- package/src/models/pack.js +1 -1
- package/src/models/preset.js +3 -1
- package/src/models/refresh-request.js +15 -1
- package/src/models/room.js +1 -1
- package/src/models/salesforce-lookup.js +1 -1
- package/src/models/section-selection.js +1 -1
- package/src/models/section.js +3 -1
- package/src/models/slide-selection.js +1 -1
- package/src/models/slide.js +3 -1
- package/src/models/snapshot.js +11 -2
- package/src/models/snapshot.spec.js +31 -0
- package/src/models/sub-slide.js +1 -1
- package/src/models/support-ticket.js +1 -1
- package/src/models/tag.js +1 -1
- package/src/models/team.js +14 -3
- package/src/models/template.js +74 -2
- package/src/models/tenancy.js +4 -1
- package/src/models/timing-log.js +2 -2
- package/src/models/timing-log.spec.js +1 -1
- package/src/models/token.js +47 -0
- package/src/models/transcribe-socket.js +1 -1
- package/src/models/user.js +15 -2
- package/src/models.js +4 -0
- package/src/presentation/appointment-presentation.js +13 -5
- package/src/presentation/base-presentation-collection.js +1 -1
- package/src/presentation/base-presentation-model.js +88 -3
- package/src/presentation/base-presentation-model.spec.js +80 -3
- package/src/presentation/presentation-deck.js +65 -22
- package/src/presentation/presentation-deck.spec.js +55 -2
- package/src/presentation/presentation-decks.js +1 -1
- package/src/presentation/presentation-section.js +91 -31
- package/src/presentation/presentation-section.spec.js +142 -10
- package/src/presentation/presentation-sections.js +1 -1
- package/src/presentation/presentation-slide.js +69 -23
- package/src/presentation/presentation-slide.spec.js +105 -9
- package/src/presentation/presentation-slides.js +1 -1
- package/src/presentation/presentation-subslide.js +5 -5
- package/src/presentation/presentation-subslide.spec.js +3 -3
- package/src/presentation/presentation-subslides.js +1 -1
- package/src/presentation/presentation.js +27 -8
- package/src/selections.js +71 -0
- package/src/sync.js +1 -1
- package/src/utils.js +31 -8
- package/src/utils.spec.js +4 -4
|
@@ -1,56 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.PresentationDeck = void 0;
|
|
11
|
-
|
|
12
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
10
|
require("./presentation-sections.js");
|
|
15
|
-
|
|
16
11
|
var collections = _interopRequireWildcard(require("../collections"));
|
|
17
|
-
|
|
18
12
|
var _utils = require("../utils.js");
|
|
19
|
-
|
|
20
13
|
var _basePresentationModel = require("./base-presentation-model");
|
|
21
|
-
|
|
22
14
|
var _models = require("../models");
|
|
23
|
-
|
|
24
15
|
var _presentationSection = require("./presentation-section");
|
|
25
|
-
|
|
26
16
|
var _presentationSlide = require("./presentation-slide");
|
|
27
|
-
|
|
28
17
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
29
|
-
|
|
30
18
|
var _index = require("../index.js");
|
|
31
|
-
|
|
32
19
|
var _log = _interopRequireDefault(require("../log.js"));
|
|
33
|
-
|
|
34
20
|
var _stateRegister = require("../state-register");
|
|
35
|
-
|
|
36
21
|
var _url = _interopRequireDefault(require("url"));
|
|
37
|
-
|
|
38
|
-
function
|
|
39
|
-
|
|
40
|
-
function
|
|
41
|
-
|
|
42
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
43
|
-
|
|
44
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
45
|
-
|
|
22
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
23
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
24
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
46
26
|
/**
|
|
47
27
|
* @constructor
|
|
48
28
|
* @alias presentation.PresentationDeck
|
|
49
29
|
* @extends presentation.BasePresentationModel
|
|
50
30
|
*/
|
|
51
|
-
var PresentationDeck = _basePresentationModel.BasePresentationModel.extend(
|
|
52
|
-
/** @lends presentation.PresentationDeck# */
|
|
53
|
-
{
|
|
31
|
+
var PresentationDeck = exports.PresentationDeck = _basePresentationModel.BasePresentationModel.extend( /** @lends presentation.PresentationDeck# */{
|
|
54
32
|
/**
|
|
55
33
|
* @property {string} html
|
|
56
34
|
* @property {string} css
|
|
@@ -66,6 +44,7 @@ var PresentationDeck = _basePresentationModel.BasePresentationModel.extend(
|
|
|
66
44
|
* @property {boolean} editable
|
|
67
45
|
* @property {array} tags
|
|
68
46
|
* @property {number} version
|
|
47
|
+
* @property {string[]} cmsvalkey_set
|
|
69
48
|
*/
|
|
70
49
|
props: {
|
|
71
50
|
html: "string",
|
|
@@ -74,16 +53,19 @@ var PresentationDeck = _basePresentationModel.BasePresentationModel.extend(
|
|
|
74
53
|
deckID: "number",
|
|
75
54
|
index: "number",
|
|
76
55
|
thumbnail: "string",
|
|
77
|
-
visible:
|
|
56
|
+
visible: {
|
|
57
|
+
type: "boolean",
|
|
58
|
+
visible: true
|
|
59
|
+
},
|
|
78
60
|
key: "string",
|
|
79
61
|
common: "object",
|
|
80
62
|
title: "string",
|
|
81
63
|
usesImpostorSections: "boolean",
|
|
82
64
|
editable: "boolean",
|
|
83
65
|
tags: "array",
|
|
84
|
-
version: "number"
|
|
66
|
+
version: "number",
|
|
67
|
+
cmsvalkey_set: "array"
|
|
85
68
|
},
|
|
86
|
-
|
|
87
69
|
/**
|
|
88
70
|
* @property {presentation.PresentationSection} realSection
|
|
89
71
|
*/
|
|
@@ -101,7 +83,6 @@ var PresentationDeck = _basePresentationModel.BasePresentationModel.extend(
|
|
|
101
83
|
}
|
|
102
84
|
}
|
|
103
85
|
},
|
|
104
|
-
|
|
105
86
|
/**
|
|
106
87
|
* @property {presentation.PresentationSectionCollection} sections
|
|
107
88
|
*/
|
|
@@ -114,10 +95,10 @@ var PresentationDeck = _basePresentationModel.BasePresentationModel.extend(
|
|
|
114
95
|
id: this.id
|
|
115
96
|
}).url();
|
|
116
97
|
}
|
|
117
|
-
|
|
118
98
|
return this._url;
|
|
119
99
|
}
|
|
120
100
|
});
|
|
101
|
+
|
|
121
102
|
/**
|
|
122
103
|
* @function createFromURL
|
|
123
104
|
* @memberof presentation.PresentationDeck
|
|
@@ -127,29 +108,25 @@ var PresentationDeck = _basePresentationModel.BasePresentationModel.extend(
|
|
|
127
108
|
* @param {collections.AdjunctSectionCollection}} [adjunctSections]
|
|
128
109
|
* @returns {presentation.PresentationDeck}
|
|
129
110
|
*/
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
exports.PresentationDeck = PresentationDeck;
|
|
133
|
-
|
|
134
111
|
PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
135
112
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
136
|
-
|
|
137
113
|
_lodash.default.defaults(options, {
|
|
138
114
|
index: 0,
|
|
115
|
+
autoAdjuncts: new collections.AutoAdjunctCollection(),
|
|
139
116
|
adjunctSections: new collections.AdjunctSectionCollection(),
|
|
140
117
|
adjunctSlides: new collections.AdjunctSlideCollection(),
|
|
141
118
|
adjunctSubSlides: new collections.AdjunctSubSlideCollection(),
|
|
142
119
|
sectionSelections: new collections.SectionSelectionCollection(),
|
|
143
120
|
slideSelections: new collections.SlideSelectionCollection(),
|
|
121
|
+
screenshots: new collections.DeckVersionScreenshotCollection(),
|
|
144
122
|
rootAssetPath: null,
|
|
145
123
|
templates: null,
|
|
146
124
|
choicelist: null
|
|
147
125
|
});
|
|
148
|
-
|
|
126
|
+
options.screenshots = PresentationDeck.screenshotsToMap(options.screenshots);
|
|
149
127
|
var assetRoot = (0, _index.getAssetRoot)(deckVersionModel.index_asset.url());
|
|
150
128
|
var html;
|
|
151
129
|
var css;
|
|
152
|
-
|
|
153
130
|
if (options.rootAssetPath) {
|
|
154
131
|
html = "".concat(options.rootAssetPath, "index.html");
|
|
155
132
|
css = "".concat(options.rootAssetPath, "slide.css");
|
|
@@ -157,14 +134,13 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
157
134
|
html = "".concat(assetRoot, "index.html");
|
|
158
135
|
css = "".concat(assetRoot, "slide.css");
|
|
159
136
|
}
|
|
160
|
-
|
|
161
137
|
var tags = PresentationDeck.getTags(deckVersionModel, options);
|
|
162
138
|
var deck = new PresentationDeck({
|
|
163
139
|
html: html,
|
|
164
140
|
css: css,
|
|
165
141
|
id: deckVersionModel.id,
|
|
166
142
|
index: options.index,
|
|
167
|
-
thumbnail: deckVersionModel.
|
|
143
|
+
thumbnail: PresentationDeck.getThumbnail(deckVersionModel, options.screenshots),
|
|
168
144
|
deckID: deckVersionModel.deck.id,
|
|
169
145
|
visible: true,
|
|
170
146
|
key: deckVersionModel.deck.key,
|
|
@@ -173,14 +149,14 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
173
149
|
editable: tags.indexOf("editable") > -1,
|
|
174
150
|
tags: tags,
|
|
175
151
|
version: deckVersionModel.version,
|
|
176
|
-
usesImpostorSections: (0, _utils.isImpostorDeck)(deckVersionModel)
|
|
152
|
+
usesImpostorSections: (0, _utils.isImpostorDeck)(deckVersionModel),
|
|
153
|
+
cmsvalkey_set: deckVersionModel.cmsvalkey_set || []
|
|
177
154
|
});
|
|
178
|
-
|
|
179
155
|
if (!deck.key) {
|
|
180
156
|
_log.default.warn("Deck key not available to presentation", deckVersionModel.deck.toJSON());
|
|
181
|
-
}
|
|
182
|
-
|
|
157
|
+
}
|
|
183
158
|
|
|
159
|
+
// Convert the selections to an easier format to use later
|
|
184
160
|
var sectionSelections = options.sectionSelections;
|
|
185
161
|
var slideSelections = options.slideSelections;
|
|
186
162
|
options.selections = sectionSelections.map(function (selection) {
|
|
@@ -197,30 +173,31 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
197
173
|
url: selection.slide.url(),
|
|
198
174
|
id: selection.id
|
|
199
175
|
};
|
|
200
|
-
}));
|
|
176
|
+
}));
|
|
177
|
+
|
|
178
|
+
// We want all adjuncts to have fake ids that can't possibly overlap with the ids of
|
|
201
179
|
// normal sections, slides and subslides, so we make a base ID that is larger than
|
|
202
180
|
// all existing IDs then use the getUniqueAdjunctID function to retrieve an incremented ID
|
|
203
|
-
|
|
204
181
|
var maxID = (0, _utils.getMaxID)(deckVersionModel);
|
|
205
|
-
|
|
206
182
|
options.getUniqueAdjunctID = function () {
|
|
207
183
|
return ++maxID;
|
|
208
|
-
};
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
// We have four different ways to create a presentation structure here - we are
|
|
209
187
|
// using either selections or a choicelist, and the deck is either a normal
|
|
210
188
|
// deck or an impostor deck. Setting up a non-impostor deck is easier, so I've
|
|
211
189
|
// split this up into two primary methods to cover those two branches, and the models
|
|
212
190
|
// internally retrieve the correct sequence & visibility data depending on whether
|
|
213
191
|
// we're using selections or a choicelist.
|
|
214
192
|
|
|
215
|
-
|
|
216
193
|
if (!deck.usesImpostorSections) {
|
|
217
194
|
// Non impostor deck using selections or a choicelist. Slides are already
|
|
218
195
|
// associated with the correct sections, so all we have to do is turn
|
|
219
196
|
// everything into a presentation model and pass the options through with
|
|
220
197
|
// the selections or choicelist data.
|
|
198
|
+
|
|
221
199
|
deckVersionModel.section_set.forEach(function (sectionModel) {
|
|
222
200
|
var section = _presentationSection.PresentationSection.createFromSection(sectionModel, options);
|
|
223
|
-
|
|
224
201
|
section.addSlides(sectionModel.slide_set, options);
|
|
225
202
|
deck.sections.add(section);
|
|
226
203
|
var adjunctSlides = options.adjunctSlides.filter(function (slide) {
|
|
@@ -230,7 +207,6 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
230
207
|
});
|
|
231
208
|
options.adjunctSections.forEach(function (adjunctSection) {
|
|
232
209
|
var section = _presentationSection.PresentationSection.createFromAdjunctSection(adjunctSection, _models.DeckVersionModel, options);
|
|
233
|
-
|
|
234
210
|
deck.sections.add(section);
|
|
235
211
|
});
|
|
236
212
|
} else {
|
|
@@ -238,39 +214,40 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
238
214
|
// only contains one section, which is the "real" section but is not used in
|
|
239
215
|
// the presentation. Some slides have the tag "section-header", and these slides
|
|
240
216
|
// will be turned into sections and may be given sets of slides.
|
|
217
|
+
|
|
241
218
|
var realSection = deckVersionModel.section_set.first();
|
|
242
219
|
deck.realSection = new _presentationSection.PresentationSection({
|
|
243
220
|
id: realSection.id,
|
|
244
221
|
key: realSection.key,
|
|
245
222
|
adjunctSlideLimit: realSection.adjunctslide_limit
|
|
246
223
|
});
|
|
247
|
-
var slides = [];
|
|
224
|
+
var slides = [];
|
|
225
|
+
|
|
226
|
+
// First we go through all slides and separate the impostor sections from the
|
|
248
227
|
// normal slides. If a slide is a "section header" then we turn it into a presentation
|
|
249
228
|
// section; if it is just a slide then we add it to the slides array, which will contain
|
|
250
229
|
// all slides. We can't allocate slides to sections yet because we don't know
|
|
251
230
|
// which section a slide belongs to.
|
|
252
|
-
|
|
253
231
|
realSection.slide_set.forEach(function (slideModel) {
|
|
254
232
|
var isSection = (0, _utils.isImpostor)(slideModel);
|
|
255
|
-
|
|
256
233
|
if (isSection) {
|
|
257
234
|
var section = _presentationSection.PresentationSection.createFromImpostorSection(slideModel, _models.DeckVersionModel, options);
|
|
258
|
-
|
|
259
235
|
deck.sections.add(section);
|
|
260
236
|
} else {
|
|
261
237
|
var slide = _presentationSlide.PresentationSlide.createFromSlide(slideModel, options);
|
|
262
|
-
|
|
263
238
|
slides.push(slide);
|
|
264
239
|
}
|
|
265
|
-
});
|
|
240
|
+
});
|
|
266
241
|
|
|
242
|
+
// We filter the adjunct slides and add all the non-section slides to the slides array too.
|
|
267
243
|
options.adjunctSlides.filter(function (slide) {
|
|
268
244
|
return !(0, _utils.isImpostor)(slide);
|
|
269
245
|
}).forEach(function (adjunctSlideModel) {
|
|
270
246
|
var slide = _presentationSlide.PresentationSlide.createFromAdjunctSlide(adjunctSlideModel, null, options);
|
|
271
|
-
|
|
272
247
|
slides.push(slide);
|
|
273
|
-
});
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
// Next we go through the sections backwards and use the sequence to find all slides
|
|
274
251
|
// which belong to a section. Doing this backwards means that we only need to know
|
|
275
252
|
// one section's sequence at a time, e.g. if I went forwards and the first section
|
|
276
253
|
// had the sequence 1, I know that I can start looking for slides with sequence > 1
|
|
@@ -278,57 +255,76 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
278
255
|
// slides with the sequence > 110 then I know that all slides with a sequence > 110
|
|
279
256
|
// are valid. I then remove those slides from the slides array and move down to the
|
|
280
257
|
// next section.
|
|
281
|
-
|
|
282
258
|
deck.sections.models.reverse().forEach(function (section) {
|
|
283
259
|
var sectionSlides = slides.filter(function (slide) {
|
|
284
260
|
return slide.sequence > section.sequence;
|
|
285
261
|
});
|
|
286
|
-
section.slides.add(sectionSlides);
|
|
262
|
+
section.slides.add(sectionSlides);
|
|
263
|
+
|
|
264
|
+
// Slides have a "section" on their model that represents the section
|
|
287
265
|
// that they belong to. Because this is an impostor deck, there's a
|
|
288
266
|
// good chance that the section is now incorrect for normal slides,
|
|
289
267
|
// and a 100% chance that it's incorrect for adjunct slides as we
|
|
290
268
|
// didn't populate the section field when we created the adjunct slides.
|
|
291
269
|
// We update those now with the correct section.
|
|
292
|
-
|
|
293
270
|
section.slides.forEach(function (slide) {
|
|
294
271
|
slide.section = section.id;
|
|
295
272
|
});
|
|
296
273
|
slides = slides.filter(function (slide) {
|
|
297
274
|
return slide.sequence <= section.sequence;
|
|
298
275
|
});
|
|
299
|
-
});
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
// Average the adjunct slide limit used across the entire deck over each section
|
|
300
279
|
// in the deck. We do this before we add the adjunct impostor sections, 'cause you
|
|
301
280
|
// can't add custom slides to those.
|
|
302
|
-
|
|
303
281
|
deck.sections.forEach(function (section) {
|
|
304
282
|
section.adjunctSlideLimit = section.adjunctSlideLimit ? section.adjunctSlideLimit : Math.floor(realSection.adjunctSlideLimit / deck.sections.length);
|
|
305
|
-
});
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
// Return the sections to the correct order
|
|
286
|
+
deck.sections.models.reverse();
|
|
306
287
|
|
|
307
|
-
|
|
288
|
+
// Finally, we add the adjunct impostor sections. These are adjunct slides with
|
|
308
289
|
// the "section-header" tag and they work the same way as the slide impostors,
|
|
309
290
|
// but because adjunct sections can't have slides we're adding them after the
|
|
310
291
|
// slide-assigning process
|
|
311
|
-
|
|
312
292
|
options.adjunctSlides.filter(function (slide) {
|
|
313
293
|
return (0, _utils.isImpostor)(slide);
|
|
314
294
|
}).forEach(function (adjunctSlideModel) {
|
|
315
295
|
var adjunctSection = _presentationSection.PresentationSection.createFromAdjunctSection(adjunctSlideModel, _models.DeckVersionModel, options);
|
|
316
|
-
|
|
317
296
|
deck.sections.add(adjunctSection);
|
|
318
297
|
});
|
|
319
|
-
}
|
|
320
|
-
|
|
298
|
+
}
|
|
321
299
|
|
|
300
|
+
// Add templates as sections if present. This is only used by the CDK.
|
|
322
301
|
if (options.templates && options.templates.length > 0) {
|
|
323
302
|
deck.sections.add(options.templates.map(function (template, index) {
|
|
324
|
-
return _presentationSection.PresentationSection.createFromTemplate(template, index, options.getUniqueAdjunctID());
|
|
303
|
+
return _presentationSection.PresentationSection.createFromTemplate(template, deck.sections.length + index, options.getUniqueAdjunctID());
|
|
325
304
|
}));
|
|
326
305
|
}
|
|
327
306
|
|
|
307
|
+
// This is generally only used by screenshots
|
|
308
|
+
if (options.autoAdjuncts) {
|
|
309
|
+
var autoSections = options.autoAdjuncts.map(function (auto, index) {
|
|
310
|
+
// We already have the template on the deckversion, so we can find it here.
|
|
311
|
+
if (!auto.template) {
|
|
312
|
+
throw new Error("Attempted to use an autoadjunct that has no template.");
|
|
313
|
+
}
|
|
314
|
+
var section = _presentationSection.PresentationSection.createFromTemplate(auto.template, deck.sections.length + index, options.getUniqueAdjunctID());
|
|
315
|
+
|
|
316
|
+
// We've just borrowed the "from template" method above. We want to add
|
|
317
|
+
// back some of the specific keys about the auto.
|
|
318
|
+
section.autoAdjunctID = auto.id;
|
|
319
|
+
section.key = auto.key;
|
|
320
|
+
section.title = auto.name;
|
|
321
|
+
return section;
|
|
322
|
+
});
|
|
323
|
+
deck.sections.add(autoSections);
|
|
324
|
+
}
|
|
328
325
|
(0, _utils.setSequentialSequences)(deck);
|
|
329
326
|
return deck;
|
|
330
327
|
};
|
|
331
|
-
|
|
332
328
|
PresentationDeck.createFromManifestJSON = function (manifestJSON) {
|
|
333
329
|
var deck = new PresentationDeck({
|
|
334
330
|
id: parseInt(_lodash.default.uniqueId(), 10),
|
|
@@ -342,15 +338,13 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
|
|
|
342
338
|
deckID: 1,
|
|
343
339
|
title: "Local",
|
|
344
340
|
version: 1,
|
|
345
|
-
tags: manifestJSON.tags[""] || []
|
|
341
|
+
tags: manifestJSON.tags[""] || [],
|
|
342
|
+
cmsvalkey_set: []
|
|
346
343
|
});
|
|
347
|
-
|
|
348
344
|
var usesImpostorSections = _lodash.default.some(manifestJSON.tags, function (tags) {
|
|
349
345
|
return tags.indexOf("section-header") !== -1;
|
|
350
346
|
});
|
|
351
|
-
|
|
352
347
|
deck.usesImpostorSections = usesImpostorSections;
|
|
353
|
-
|
|
354
348
|
if (usesImpostorSections) {
|
|
355
349
|
deck.usesImpostorSections = true;
|
|
356
350
|
var items = Object.keys(manifestJSON.titles).map(function (key) {
|
|
@@ -363,7 +357,8 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
|
|
|
363
357
|
html: _url.default.resolve(manifestJSON.getAssetPath(key), "index.html"),
|
|
364
358
|
css: _url.default.resolve(manifestJSON.getAssetPath(key), "slide.css"),
|
|
365
359
|
title: manifestJSON.titles[key],
|
|
366
|
-
tags: manifestJSON.tags[key] || []
|
|
360
|
+
tags: manifestJSON.tags[key] || [],
|
|
361
|
+
cmsvalkey_set: []
|
|
367
362
|
};
|
|
368
363
|
});
|
|
369
364
|
items = _lodash.default.sortBy(items, "sequence");
|
|
@@ -388,7 +383,6 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
|
|
|
388
383
|
return _presentationSection.PresentationSection.createFromManifestJSON(manifestJSON, key, index);
|
|
389
384
|
}));
|
|
390
385
|
}
|
|
391
|
-
|
|
392
386
|
if (manifestJSON.templates) {
|
|
393
387
|
var templates = Object.keys(manifestJSON.templates).map(function (key) {
|
|
394
388
|
return _objectSpread(_objectSpread({}, manifestJSON.templates[key]), {}, {
|
|
@@ -399,16 +393,12 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
|
|
|
399
393
|
}
|
|
400
394
|
});
|
|
401
395
|
});
|
|
402
|
-
|
|
403
396
|
var minID = _lodash.default.max(_lodash.default.map(deck.sections.toJSON(), "id"));
|
|
404
|
-
|
|
405
397
|
deck.sections.add(templates.map(function (template, index) {
|
|
406
398
|
return _presentationSection.PresentationSection.createFromTemplate(template, index, minID);
|
|
407
399
|
}));
|
|
408
400
|
}
|
|
409
|
-
|
|
410
401
|
return deck;
|
|
411
402
|
};
|
|
412
|
-
|
|
413
403
|
(0, _stateRegister.register)("PresentationDeck", PresentationDeck);
|
|
414
404
|
//# sourceMappingURL=presentation-deck.js.map
|
|
@@ -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\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"}
|
|
1
|
+
{"version":3,"file":"presentation-deck.js","names":["require","collections","_interopRequireWildcard","_utils","_basePresentationModel","_models","_presentationSection","_presentationSlide","_lodash","_interopRequireDefault","_index","_log","_stateRegister","_url","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","PresentationDeck","exports","BasePresentationModel","extend","props","html","css","id","deckID","index","thumbnail","visible","type","key","common","title","usesImpostorSections","editable","tags","version","cmsvalkey_set","children","realSection","derived","welcomeSlide","fn","PresentationSection","getAttributes","isWelcome","sections","url","DeckVersionModel","createFromDeckVersion","deckVersionModel","options","undefined","_","defaults","autoAdjuncts","AutoAdjunctCollection","adjunctSections","AdjunctSectionCollection","adjunctSlides","AdjunctSlideCollection","adjunctSubSlides","AdjunctSubSlideCollection","sectionSelections","SectionSelectionCollection","slideSelections","SlideSelectionCollection","screenshots","DeckVersionScreenshotCollection","rootAssetPath","templates","choicelist","screenshotsToMap","assetRoot","getAssetRoot","index_asset","concat","getTags","deck","getThumbnail","manifest_json","indexOf","isImpostorDeck","log","warn","toJSON","selections","map","selection","sequence","section","slide","maxID","getMaxID","getUniqueAdjunctID","section_set","sectionModel","createFromSection","addSlides","slide_set","add","adjunctSection","createFromAdjunctSection","first","adjunctSlideLimit","adjunctslide_limit","slides","slideModel","isSection","isImpostor","createFromImpostorSection","PresentationSlide","createFromSlide","adjunctSlideModel","createFromAdjunctSlide","models","reverse","sectionSlides","Math","floor","template","createFromTemplate","autoSections","auto","Error","autoAdjunctID","name","setSequentialSequences","createFromManifestJSON","manifestJSON","parseInt","uniqueId","url2","resolve","getAssetPath","some","items","titles","ordering","splitKey","split","newKey","sortBy","item","startIndex","endIndex","slice","createFromManifestImpostor","sectionKeys","getTemplateAssetPath","minID","max","register"],"sources":["../../src/presentation/presentation-deck.js"],"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 * @property {string[]} cmsvalkey_set\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: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tvisible: true,\n\t\t\t},\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\tcmsvalkey_set: \"array\",\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\tautoAdjuncts: new collections.AutoAdjunctCollection(),\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\tscreenshots: new collections.DeckVersionScreenshotCollection(),\n\t\trootAssetPath: null,\n\t\ttemplates: null,\n\t\tchoicelist: null,\n\t});\n\n\toptions.screenshots = PresentationDeck.screenshotsToMap(options.screenshots);\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: PresentationDeck.getThumbnail(\n\t\t\tdeckVersionModel,\n\t\t\toptions.screenshots,\n\t\t),\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\tcmsvalkey_set: deckVersionModel.cmsvalkey_set || [],\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\tdeck.sections.length + index,\n\t\t\t\t\toptions.getUniqueAdjunctID(),\n\t\t\t\t);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// This is generally only used by screenshots\n\tif (options.autoAdjuncts) {\n\t\tconst autoSections = options.autoAdjuncts.map((auto, index) => {\n\t\t\t// We already have the template on the deckversion, so we can find it here.\n\t\t\tif (!auto.template) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Attempted to use an autoadjunct that has no template.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst section = PresentationSection.createFromTemplate(\n\t\t\t\tauto.template,\n\t\t\t\tdeck.sections.length + index,\n\t\t\t\toptions.getUniqueAdjunctID(),\n\t\t\t);\n\n\t\t\t// We've just borrowed the \"from template\" method above. We want to add\n\t\t\t// back some of the specific keys about the auto.\n\t\t\tsection.autoAdjunctID = auto.id;\n\t\t\tsection.key = auto.key;\n\t\t\tsection.title = auto.name;\n\n\t\t\treturn section;\n\t\t});\n\n\t\tdeck.sections.add(autoSections);\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\tcmsvalkey_set: [],\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\tcmsvalkey_set: [],\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"],"mappings":"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"}
|