@livepreso/api 6.44.0 → 6.45.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/256021b5963b4c0221d3dec247b697b9691a9b2c.log +10 -0
- package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +10 -0
- package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +10 -0
- package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.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/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/package-deps_build.json +170 -0
- package/.rush/temp/package-deps_test.json +38 -36
- package/.rush/temp/shrinkwrap-deps.json +231 -240
- package/CHANGELOG.json +17 -0
- package/CHANGELOG.md +8 -1
- package/api.build.log +4 -2
- package/bin/test.sh +0 -1
- package/cjs/auth.js +36 -10
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +12 -6
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/collections/base.js +10 -2
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +22 -4
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/deck-version-screenshots.js +62 -0
- package/cjs/collections/deck-version-screenshots.js.map +1 -0
- package/cjs/collections.js +13 -0
- package/cjs/collections.js.map +1 -1
- package/cjs/models/activity-item.js +3 -1
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/appointment.js +11 -1
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/auto-adjunct.js +3 -1
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +19 -1
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +9 -0
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/deck-version-screenshot.js +59 -0
- package/cjs/models/deck-version-screenshot.js.map +1 -0
- package/cjs/models/deck-version.js +28 -5
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/feed-data.js +5 -0
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/image.js +34 -0
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/manifest-json.js +1 -1
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/section.js +3 -1
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/slide.js +3 -1
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/template.js +3 -1
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/token.js +56 -0
- package/cjs/models/token.js.map +1 -0
- package/cjs/models/user.js +2 -1
- package/cjs/models/user.js.map +1 -1
- package/cjs/models.js +26 -0
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +7 -3
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +111 -2
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +56 -0
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +33 -6
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +53 -0
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-section.js +42 -16
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +121 -3
- package/cjs/presentation/presentation-section.spec.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +30 -13
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +94 -2
- package/cjs/presentation/presentation-slide.spec.js.map +1 -1
- package/cjs/presentation/presentation.js +112 -8
- package/cjs/presentation/presentation.js.map +1 -1
- package/jest.config.js +1 -0
- package/package.json +4 -4
- package/src/auth.js +44 -8
- package/src/auth.spec.js +2 -0
- package/src/collections/base.js +10 -4
- package/src/collections/base.spec.js +17 -3
- package/src/collections/deck-version-screenshots.js +48 -0
- package/src/collections.js +1 -0
- package/src/models/activity-item.js +2 -0
- package/src/models/appointment.js +12 -0
- package/src/models/auto-adjunct.js +2 -0
- package/src/models/base.js +19 -1
- package/src/models/base.spec.js +16 -9
- package/src/models/deck-version-screenshot.js +48 -0
- package/src/models/deck-version.js +30 -4
- package/src/models/feed-data.js +2 -0
- package/src/models/image.js +32 -0
- package/src/models/manifest-json.js +1 -1
- package/src/models/section.js +2 -0
- package/src/models/slide.js +2 -0
- package/src/models/template.js +2 -0
- package/src/models/token.js +47 -0
- package/src/models/user.js +2 -0
- package/src/models.js +2 -0
- package/src/presentation/appointment-presentation.js +10 -2
- package/src/presentation/base-presentation-model.js +77 -1
- package/src/presentation/base-presentation-model.spec.js +77 -0
- package/src/presentation/presentation-deck.js +40 -2
- package/src/presentation/presentation-deck.spec.js +53 -0
- package/src/presentation/presentation-section.js +37 -5
- package/src/presentation/presentation-section.spec.js +135 -2
- package/src/presentation/presentation-slide.js +25 -5
- package/src/presentation/presentation-slide.spec.js +104 -2
- package/src/presentation/presentation.js +24 -7
|
@@ -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","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"}
|
|
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","screenshots","DeckVersionScreenshotCollection","subject","image_256","team","filtered","filterScreenshotsByTeam","toJSON"],"mappings":"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","sourcesContent":["import { BasePresentationModel } from \"./base-presentation-model.js\";\nimport { DeckVersionScreenshotCollection } from \"../collections/deck-version-screenshots.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\ndescribe(\"#filterScreenshotsByTeam\", () => {\n\tconst screenshots = new DeckVersionScreenshotCollection([\n\t\t{\n\t\t\tsubject: \"/api/slides/1/\",\n\t\t\timage_256: \"global-screenshot-1.png\",\n\t\t\tteam: null,\n\t\t},\n\t\t{\n\t\t\tsubject: \"/api/slides/2/\",\n\t\t\timage_256: \"global-screenshot-2.png\",\n\t\t\tteam: null,\n\t\t},\n\t\t{\n\t\t\tsubject: \"/api/slides/1/\",\n\t\t\timage_256: \"team-1-screenshot.png\",\n\t\t\tteam: \"/api/teams/1/\",\n\t\t},\n\t\t{\n\t\t\tsubject: \"/api/sections/2/\",\n\t\t\timage_256: \"team-1-screenshot.png\",\n\t\t\tteam: \"/api/teams/1/\",\n\t\t},\n\t\t// Just for testing that the team filters don't get cross-contaminated\n\t\t{\n\t\t\tsubject: \"/api/sections/2/\",\n\t\t\timage_256: \"team-2-screenshot.png\",\n\t\t\tteam: \"/api/teams/2/\",\n\t\t},\n\t]);\n\n\tit(\"should just return global screenshots if team is null\", () => {\n\t\tconst filtered = BasePresentationModel.filterScreenshotsByTeam(\n\t\t\tscreenshots,\n\t\t\tnull\n\t\t).toJSON();\n\n\t\texpect(filtered).toEqual([\n\t\t\t{\n\t\t\t\tsubject: \"/api/slides/1/\",\n\t\t\t\timage_256: \"global-screenshot-1.png\",\n\t\t\t\tteam: null,\n\t\t\t},\n\t\t\t{\n\t\t\t\tsubject: \"/api/slides/2/\",\n\t\t\t\timage_256: \"global-screenshot-2.png\",\n\t\t\t\tteam: null,\n\t\t\t},\n\t\t]);\n\t});\n\n\tit(\"should return globals with team override\", () => {\n\t\tconst filtered = BasePresentationModel.filterScreenshotsByTeam(\n\t\t\tscreenshots,\n\t\t\t1\n\t\t).toJSON();\n\n\t\texpect(filtered).toEqual([\n\t\t\t{\n\t\t\t\timage_256: \"global-screenshot-2.png\",\n\t\t\t\tsubject: \"/api/slides/2/\",\n\t\t\t\tteam: null,\n\t\t\t},\n\t\t\t{\n\t\t\t\timage_256: \"team-1-screenshot.png\",\n\t\t\t\tsubject: \"/api/sections/2/\",\n\t\t\t\tteam: \"/api/teams/1/\",\n\t\t\t},\n\t\t\t{\n\t\t\t\timage_256: \"team-1-screenshot.png\",\n\t\t\t\tsubject: \"/api/slides/1/\",\n\t\t\t\tteam: \"/api/teams/1/\",\n\t\t\t},\n\t\t]);\n\t});\n});\n"],"file":"base-presentation-model.spec.js"}
|
|
@@ -66,6 +66,7 @@ var PresentationDeck = _basePresentationModel.BasePresentationModel.extend(
|
|
|
66
66
|
* @property {boolean} editable
|
|
67
67
|
* @property {array} tags
|
|
68
68
|
* @property {number} version
|
|
69
|
+
* @property {string[]} cmsvalkey_set
|
|
69
70
|
*/
|
|
70
71
|
props: {
|
|
71
72
|
html: "string",
|
|
@@ -81,7 +82,8 @@ var PresentationDeck = _basePresentationModel.BasePresentationModel.extend(
|
|
|
81
82
|
usesImpostorSections: "boolean",
|
|
82
83
|
editable: "boolean",
|
|
83
84
|
tags: "array",
|
|
84
|
-
version: "number"
|
|
85
|
+
version: "number",
|
|
86
|
+
cmsvalkey_set: "array"
|
|
85
87
|
},
|
|
86
88
|
|
|
87
89
|
/**
|
|
@@ -136,11 +138,13 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
136
138
|
|
|
137
139
|
_lodash.default.defaults(options, {
|
|
138
140
|
index: 0,
|
|
141
|
+
autoAdjuncts: new collections.AutoAdjunctCollection(),
|
|
139
142
|
adjunctSections: new collections.AdjunctSectionCollection(),
|
|
140
143
|
adjunctSlides: new collections.AdjunctSlideCollection(),
|
|
141
144
|
adjunctSubSlides: new collections.AdjunctSubSlideCollection(),
|
|
142
145
|
sectionSelections: new collections.SectionSelectionCollection(),
|
|
143
146
|
slideSelections: new collections.SlideSelectionCollection(),
|
|
147
|
+
screenshots: new collections.DeckVersionScreenshotCollection(),
|
|
144
148
|
rootAssetPath: null,
|
|
145
149
|
templates: null,
|
|
146
150
|
choicelist: null
|
|
@@ -164,7 +168,7 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
164
168
|
css: css,
|
|
165
169
|
id: deckVersionModel.id,
|
|
166
170
|
index: options.index,
|
|
167
|
-
thumbnail: deckVersionModel.
|
|
171
|
+
thumbnail: PresentationDeck.getThumbnail(deckVersionModel, options.screenshots),
|
|
168
172
|
deckID: deckVersionModel.deck.id,
|
|
169
173
|
visible: true,
|
|
170
174
|
key: deckVersionModel.deck.key,
|
|
@@ -173,7 +177,8 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
173
177
|
editable: tags.indexOf("editable") > -1,
|
|
174
178
|
tags: tags,
|
|
175
179
|
version: deckVersionModel.version,
|
|
176
|
-
usesImpostorSections: (0, _utils.isImpostorDeck)(deckVersionModel)
|
|
180
|
+
usesImpostorSections: (0, _utils.isImpostorDeck)(deckVersionModel),
|
|
181
|
+
cmsvalkey_set: deckVersionModel.cmsvalkey_set || []
|
|
177
182
|
});
|
|
178
183
|
|
|
179
184
|
if (!deck.key) {
|
|
@@ -321,8 +326,28 @@ PresentationDeck.createFromDeckVersion = function (deckVersionModel) {
|
|
|
321
326
|
|
|
322
327
|
if (options.templates && options.templates.length > 0) {
|
|
323
328
|
deck.sections.add(options.templates.map(function (template, index) {
|
|
324
|
-
return _presentationSection.PresentationSection.createFromTemplate(template, index, options.getUniqueAdjunctID());
|
|
329
|
+
return _presentationSection.PresentationSection.createFromTemplate(template, deck.sections.length + index, options.getUniqueAdjunctID());
|
|
325
330
|
}));
|
|
331
|
+
} // This is generally only used by screenshots
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
if (options.autoAdjuncts) {
|
|
335
|
+
var autoSections = options.autoAdjuncts.map(function (auto, index) {
|
|
336
|
+
// We already have the template on the deckversion, so we can find it here.
|
|
337
|
+
if (!auto.template) {
|
|
338
|
+
throw new Error("Attempted to use an autoadjunct that has no template.");
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
var section = _presentationSection.PresentationSection.createFromTemplate(auto.template, deck.sections.length + index, options.getUniqueAdjunctID()); // We've just borrowed the "from template" method above. We want to add
|
|
342
|
+
// back some of the specific keys about the auto.
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
section.autoAdjunctID = auto.id;
|
|
346
|
+
section.key = auto.key;
|
|
347
|
+
section.title = auto.name;
|
|
348
|
+
return section;
|
|
349
|
+
});
|
|
350
|
+
deck.sections.add(autoSections);
|
|
326
351
|
}
|
|
327
352
|
|
|
328
353
|
(0, _utils.setSequentialSequences)(deck);
|
|
@@ -342,7 +367,8 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
|
|
|
342
367
|
deckID: 1,
|
|
343
368
|
title: "Local",
|
|
344
369
|
version: 1,
|
|
345
|
-
tags: manifestJSON.tags[""] || []
|
|
370
|
+
tags: manifestJSON.tags[""] || [],
|
|
371
|
+
cmsvalkey_set: []
|
|
346
372
|
});
|
|
347
373
|
|
|
348
374
|
var usesImpostorSections = _lodash.default.some(manifestJSON.tags, function (tags) {
|
|
@@ -363,7 +389,8 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
|
|
|
363
389
|
html: _url.default.resolve(manifestJSON.getAssetPath(key), "index.html"),
|
|
364
390
|
css: _url.default.resolve(manifestJSON.getAssetPath(key), "slide.css"),
|
|
365
391
|
title: manifestJSON.titles[key],
|
|
366
|
-
tags: manifestJSON.tags[key] || []
|
|
392
|
+
tags: manifestJSON.tags[key] || [],
|
|
393
|
+
cmsvalkey_set: []
|
|
367
394
|
};
|
|
368
395
|
});
|
|
369
396
|
items = _lodash.default.sortBy(items, "sequence");
|
|
@@ -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,"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","cmsvalkey_set","children","realSection","derived","welcomeSlide","fn","PresentationSection","getAttributes","isWelcome","collections","sections","url","_url","DeckVersionModel","createFromDeckVersion","deckVersionModel","options","_","defaults","autoAdjuncts","AutoAdjunctCollection","adjunctSections","AdjunctSectionCollection","adjunctSlides","AdjunctSlideCollection","adjunctSubSlides","AdjunctSubSlideCollection","sectionSelections","SectionSelectionCollection","slideSelections","SlideSelectionCollection","screenshots","DeckVersionScreenshotCollection","rootAssetPath","templates","choicelist","assetRoot","index_asset","getTags","deck","getThumbnail","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","autoSections","auto","Error","autoAdjunctID","name","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 * @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: \"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\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\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"],"file":"presentation-deck.js"}
|
|
@@ -8,6 +8,8 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
8
8
|
|
|
9
9
|
var _deckVersion = require("../models/deck-version");
|
|
10
10
|
|
|
11
|
+
var _deckVersionScreenshots = require("../collections/deck-version-screenshots.js");
|
|
12
|
+
|
|
11
13
|
var _api = require("sp-test/api");
|
|
12
14
|
|
|
13
15
|
var _manifestJson = require("../models/manifest-json");
|
|
@@ -74,6 +76,7 @@ describe("#createFromManifestJSON", function () {
|
|
|
74
76
|
});
|
|
75
77
|
describe("#createFromDeckVersion", function () {
|
|
76
78
|
var deckVersionJSON = {
|
|
79
|
+
image_256: "http://path/to/deck/thumbnail.png",
|
|
77
80
|
template_set: [{
|
|
78
81
|
id: 20,
|
|
79
82
|
title: "Apple",
|
|
@@ -100,6 +103,7 @@ describe("#createFromDeckVersion", function () {
|
|
|
100
103
|
section_set: [{
|
|
101
104
|
id: 1,
|
|
102
105
|
title: "Section 1",
|
|
106
|
+
image_256: "default_section.png",
|
|
103
107
|
index_asset: {
|
|
104
108
|
url: "http://path/to/index.html"
|
|
105
109
|
},
|
|
@@ -113,6 +117,7 @@ describe("#createFromDeckVersion", function () {
|
|
|
113
117
|
index_asset: {
|
|
114
118
|
url: "http://path/to/index.html"
|
|
115
119
|
},
|
|
120
|
+
image_256: "default_slide.png",
|
|
116
121
|
subslide_set: [],
|
|
117
122
|
section: {
|
|
118
123
|
id: 1
|
|
@@ -121,6 +126,7 @@ describe("#createFromDeckVersion", function () {
|
|
|
121
126
|
}, {
|
|
122
127
|
id: 2,
|
|
123
128
|
title: "Section 2",
|
|
129
|
+
image_256: "default_section.png",
|
|
124
130
|
index_asset: {
|
|
125
131
|
url: "http://path/to/index.html"
|
|
126
132
|
},
|
|
@@ -132,6 +138,7 @@ describe("#createFromDeckVersion", function () {
|
|
|
132
138
|
}, {
|
|
133
139
|
id: 3,
|
|
134
140
|
title: "Section 3",
|
|
141
|
+
image_256: "default_section.png",
|
|
135
142
|
index_asset: {
|
|
136
143
|
url: "http://path/to/index.html"
|
|
137
144
|
},
|
|
@@ -189,5 +196,51 @@ describe("#createFromDeckVersion", function () {
|
|
|
189
196
|
}
|
|
190
197
|
}, _callee3);
|
|
191
198
|
})));
|
|
199
|
+
describe("Screenshots", function () {
|
|
200
|
+
it("should use the default image from the slide if no screenshot found", function () {
|
|
201
|
+
var deck = new _deckVersion.DeckVersionModel(deckVersionJSON);
|
|
202
|
+
|
|
203
|
+
var presentationDeck = _presentationDeck.PresentationDeck.createFromDeckVersion(deck);
|
|
204
|
+
|
|
205
|
+
expect(presentationDeck.thumbnail).toEqual(deckVersionJSON.image_256);
|
|
206
|
+
});
|
|
207
|
+
it("should use the screenshot model if it matches", function () {
|
|
208
|
+
var deck = new _deckVersion.DeckVersionModel(deckVersionJSON);
|
|
209
|
+
var options = {
|
|
210
|
+
screenshots: new _deckVersionScreenshots.DeckVersionScreenshotCollection([{
|
|
211
|
+
subject: deck.url(),
|
|
212
|
+
image_256: "test-screenshot.png"
|
|
213
|
+
}])
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
var presentationDeck = _presentationDeck.PresentationDeck.createFromDeckVersion(deck, options);
|
|
217
|
+
|
|
218
|
+
expect(presentationDeck.thumbnail).toEqual("test-screenshot.png");
|
|
219
|
+
});
|
|
220
|
+
it("should pass screenshots to nested models", function () {
|
|
221
|
+
var deck = new _deckVersion.DeckVersionModel(deckVersionJSON);
|
|
222
|
+
var section = deck.section_set.first();
|
|
223
|
+
var slide = section.slide_set.first();
|
|
224
|
+
var options = {
|
|
225
|
+
screenshots: new _deckVersionScreenshots.DeckVersionScreenshotCollection([{
|
|
226
|
+
subject: deck.url(),
|
|
227
|
+
image_256: "test-screenshot.png"
|
|
228
|
+
}, {
|
|
229
|
+
subject: section.url(),
|
|
230
|
+
image_256: "test-screenshot.png"
|
|
231
|
+
}, {
|
|
232
|
+
subject: slide.url(),
|
|
233
|
+
image_256: "test-screenshot.png"
|
|
234
|
+
}])
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
var presentationDeck = _presentationDeck.PresentationDeck.createFromDeckVersion(deck, options);
|
|
238
|
+
|
|
239
|
+
var presentationSection = presentationDeck.sections.first();
|
|
240
|
+
var presentationSlide = presentationSection.slides.first();
|
|
241
|
+
expect(presentationSection.thumbnail).toEqual("test-screenshot.png");
|
|
242
|
+
expect(presentationSlide.thumbnail).toEqual("test-screenshot.png");
|
|
243
|
+
});
|
|
244
|
+
});
|
|
192
245
|
});
|
|
193
246
|
//# sourceMappingURL=presentation-deck.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/presentation/presentation-deck.spec.js"],"names":["describe","beforeEach","jest","spyOn","ManifestJSONModel","prototype","mockReturnValue","it","model","titles","section_1","section_2","section_3","ordering","templates","apple","title","orange","tags","deck","PresentationDeck","createFromManifestJSON","expect","sections","length","toEqual","at","lastSection","key","html","css","deckVersionJSON","template_set","id","sequence","index_asset","url","section_set","deckversion","slide_set","subslide_set","section","DeckVersionModel","createFromDeckVersion"],"mappings":"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","sourcesContent":["import { DeckVersionModel } from \"../models/deck-version\";\nimport { G } from \"sp-test/api\";\nimport { ManifestJSONModel } from \"../models/manifest-json\";\nimport { PresentationDeck } from \"./presentation-deck\";\n\ndescribe(\"#createFromManifestJSON\", () => {\n\tbeforeEach(() => {\n\t\tjest\n\t\t\t.spyOn(ManifestJSONModel.prototype, \"getAssetPath\")\n\t\t\t.mockReturnValue(\"/api/\");\n\t});\n\n\tit(\"should add template sections to the end of a deck\", async () => {\n\t\tG(ManifestJSONModel);\n\t\tconst model = new ManifestJSONModel({\n\t\t\ttitles: {\n\t\t\t\tsection_1: \"Section 1\",\n\t\t\t\t\"section_1/slide_1\": \"Section 1 Slide 1\",\n\t\t\t\tsection_2: \"Section 2\",\n\t\t\t\t\"section_2/slide_1\": \"Section 2 Slide 1\",\n\t\t\t\t\"section_2/slide_2\": \"Section 2 Slide 2\",\n\t\t\t\tsection_3: \"Section 3\",\n\t\t\t},\n\t\t\tordering: {\n\t\t\t\tsection_1: 1,\n\t\t\t\t\"section_1/slide_1\": 1,\n\t\t\t\tsection_2: 2,\n\t\t\t\t\"section_2/slide_1\": 1,\n\t\t\t\t\"section_2/slide_2\": 2,\n\t\t\t\tsection_3: 3,\n\t\t\t},\n\t\t\ttemplates: {\n\t\t\t\tapple: {\n\t\t\t\t\ttitle: \"Apple\",\n\t\t\t\t\tordering: 1,\n\t\t\t\t},\n\t\t\t\torange: {\n\t\t\t\t\ttitle: \"Orange\",\n\t\t\t\t\tordering: 2,\n\t\t\t\t},\n\t\t\t},\n\t\t\ttags: {},\n\t\t});\n\n\t\tconst deck = PresentationDeck.createFromManifestJSON(model);\n\t\texpect(deck.sections.length).toEqual(5);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(3).title).toEqual(\"Apple\");\n\n\t\tconst lastSection = deck.sections.at(deck.sections.length - 1);\n\t\texpect(lastSection.title).toEqual(\"Orange\");\n\t\texpect(lastSection.key).toEqual(\"template-orange\");\n\t\texpect(lastSection.html).toEqual(\"/api/templates/orange/index.html\");\n\t\texpect(lastSection.css).toEqual(\"/api/templates/orange/slide.css\");\n\t});\n});\n\ndescribe(\"#createFromDeckVersion\", () => {\n\tconst deckVersionJSON = {\n\t\ttemplate_set: [\n\t\t\t{\n\t\t\t\tid: 20,\n\t\t\t\ttitle: \"Apple\",\n\t\t\t\tkey: \"apple\",\n\t\t\t\tsequence: 1,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/template/apple/index.html\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 21,\n\t\t\t\ttitle: \"Orange\",\n\t\t\t\tkey: \"orange\",\n\t\t\t\tsequence: 2,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/template/orange/index.html\",\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tindex_asset: {\n\t\t\turl: \"http://path/to/index.html\",\n\t\t},\n\t\tdeck: {\n\t\t\tid: 1,\n\t\t},\n\t\tsection_set: [\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\ttitle: \"Section 1\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 1,\n\t\t\t\tslide_set: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 1,\n\t\t\t\t\t\ttitle: \"Slide 1\",\n\t\t\t\t\t\tindex_asset: {\n\t\t\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubslide_set: [],\n\t\t\t\t\t\tsection: { id: 1 },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\ttitle: \"Section 2\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 2,\n\t\t\t\tslide_set: [],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\ttitle: \"Section 3\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 3,\n\t\t\t\tslide_set: [],\n\t\t\t},\n\t\t],\n\t};\n\n\tit(\"should not add template sections to the end of a deck\", async () => {\n\t\tG(DeckVersionModel);\n\t\tconst model = new DeckVersionModel(deckVersionJSON);\n\t\tconst deck = PresentationDeck.createFromDeckVersion(model);\n\n\t\texpect(deck.sections.length).toEqual(3);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(deck.sections.length - 1).title).toEqual(\n\t\t\t\"Section 3\"\n\t\t);\n\t});\n\n\tit(\"should add template sections to the end of a deck\", async () => {\n\t\tG(DeckVersionModel);\n\t\tconst model = new DeckVersionModel(deckVersionJSON);\n\t\tconst deck = PresentationDeck.createFromDeckVersion(model, {\n\t\t\ttemplates: model.template_set,\n\t\t});\n\n\t\texpect(deck.sections.length).toEqual(5);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(3).title).toEqual(\"Apple\");\n\n\t\tconst lastSection = deck.sections.at(deck.sections.length - 1);\n\t\texpect(lastSection.title).toEqual(\"Orange\");\n\t\texpect(lastSection.key).toEqual(\"template-orange\");\n\t\texpect(lastSection.html).toEqual(\n\t\t\t\"http://path/to/template/orange/index.html\"\n\t\t);\n\t\texpect(lastSection.css).toEqual(\"http://path/to/template/orange/slide.css\");\n\t});\n});\n"],"file":"presentation-deck.spec.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/presentation/presentation-deck.spec.js"],"names":["describe","beforeEach","jest","spyOn","ManifestJSONModel","prototype","mockReturnValue","it","model","titles","section_1","section_2","section_3","ordering","templates","apple","title","orange","tags","deck","PresentationDeck","createFromManifestJSON","expect","sections","length","toEqual","at","lastSection","key","html","css","deckVersionJSON","image_256","template_set","id","sequence","index_asset","url","section_set","deckversion","slide_set","subslide_set","section","DeckVersionModel","createFromDeckVersion","presentationDeck","thumbnail","options","screenshots","DeckVersionScreenshotCollection","subject","first","slide","presentationSection","presentationSlide","slides"],"mappings":"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","sourcesContent":["import { DeckVersionModel } from \"../models/deck-version\";\nimport { DeckVersionScreenshotCollection } from \"../collections/deck-version-screenshots.js\";\nimport { G } from \"sp-test/api\";\nimport { ManifestJSONModel } from \"../models/manifest-json\";\nimport { PresentationDeck } from \"./presentation-deck\";\n\ndescribe(\"#createFromManifestJSON\", () => {\n\tbeforeEach(() => {\n\t\tjest\n\t\t\t.spyOn(ManifestJSONModel.prototype, \"getAssetPath\")\n\t\t\t.mockReturnValue(\"/api/\");\n\t});\n\n\tit(\"should add template sections to the end of a deck\", async () => {\n\t\tG(ManifestJSONModel);\n\t\tconst model = new ManifestJSONModel({\n\t\t\ttitles: {\n\t\t\t\tsection_1: \"Section 1\",\n\t\t\t\t\"section_1/slide_1\": \"Section 1 Slide 1\",\n\t\t\t\tsection_2: \"Section 2\",\n\t\t\t\t\"section_2/slide_1\": \"Section 2 Slide 1\",\n\t\t\t\t\"section_2/slide_2\": \"Section 2 Slide 2\",\n\t\t\t\tsection_3: \"Section 3\",\n\t\t\t},\n\t\t\tordering: {\n\t\t\t\tsection_1: 1,\n\t\t\t\t\"section_1/slide_1\": 1,\n\t\t\t\tsection_2: 2,\n\t\t\t\t\"section_2/slide_1\": 1,\n\t\t\t\t\"section_2/slide_2\": 2,\n\t\t\t\tsection_3: 3,\n\t\t\t},\n\t\t\ttemplates: {\n\t\t\t\tapple: {\n\t\t\t\t\ttitle: \"Apple\",\n\t\t\t\t\tordering: 1,\n\t\t\t\t},\n\t\t\t\torange: {\n\t\t\t\t\ttitle: \"Orange\",\n\t\t\t\t\tordering: 2,\n\t\t\t\t},\n\t\t\t},\n\t\t\ttags: {},\n\t\t});\n\n\t\tconst deck = PresentationDeck.createFromManifestJSON(model);\n\t\texpect(deck.sections.length).toEqual(5);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(3).title).toEqual(\"Apple\");\n\n\t\tconst lastSection = deck.sections.at(deck.sections.length - 1);\n\t\texpect(lastSection.title).toEqual(\"Orange\");\n\t\texpect(lastSection.key).toEqual(\"template-orange\");\n\t\texpect(lastSection.html).toEqual(\"/api/templates/orange/index.html\");\n\t\texpect(lastSection.css).toEqual(\"/api/templates/orange/slide.css\");\n\t});\n});\n\ndescribe(\"#createFromDeckVersion\", () => {\n\tconst deckVersionJSON = {\n\t\timage_256: \"http://path/to/deck/thumbnail.png\",\n\t\ttemplate_set: [\n\t\t\t{\n\t\t\t\tid: 20,\n\t\t\t\ttitle: \"Apple\",\n\t\t\t\tkey: \"apple\",\n\t\t\t\tsequence: 1,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/template/apple/index.html\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 21,\n\t\t\t\ttitle: \"Orange\",\n\t\t\t\tkey: \"orange\",\n\t\t\t\tsequence: 2,\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/template/orange/index.html\",\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tindex_asset: {\n\t\t\turl: \"http://path/to/index.html\",\n\t\t},\n\t\tdeck: {\n\t\t\tid: 1,\n\t\t},\n\t\tsection_set: [\n\t\t\t{\n\t\t\t\tid: 1,\n\t\t\t\ttitle: \"Section 1\",\n\t\t\t\timage_256: \"default_section.png\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 1,\n\t\t\t\tslide_set: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 1,\n\t\t\t\t\t\ttitle: \"Slide 1\",\n\t\t\t\t\t\tindex_asset: {\n\t\t\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\timage_256: \"default_slide.png\",\n\t\t\t\t\t\tsubslide_set: [],\n\t\t\t\t\t\tsection: { id: 1 },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 2,\n\t\t\t\ttitle: \"Section 2\",\n\t\t\t\timage_256: \"default_section.png\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 2,\n\t\t\t\tslide_set: [],\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 3,\n\t\t\t\ttitle: \"Section 3\",\n\t\t\t\timage_256: \"default_section.png\",\n\t\t\t\tindex_asset: {\n\t\t\t\t\turl: \"http://path/to/index.html\",\n\t\t\t\t},\n\t\t\t\tdeckversion: { id: 1 },\n\t\t\t\tsequence: 3,\n\t\t\t\tslide_set: [],\n\t\t\t},\n\t\t],\n\t};\n\n\tit(\"should not add template sections to the end of a deck\", async () => {\n\t\tG(DeckVersionModel);\n\t\tconst model = new DeckVersionModel(deckVersionJSON);\n\t\tconst deck = PresentationDeck.createFromDeckVersion(model);\n\n\t\texpect(deck.sections.length).toEqual(3);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(deck.sections.length - 1).title).toEqual(\n\t\t\t\"Section 3\"\n\t\t);\n\t});\n\n\tit(\"should add template sections to the end of a deck\", async () => {\n\t\tG(DeckVersionModel);\n\t\tconst model = new DeckVersionModel(deckVersionJSON);\n\t\tconst deck = PresentationDeck.createFromDeckVersion(model, {\n\t\t\ttemplates: model.template_set,\n\t\t});\n\n\t\texpect(deck.sections.length).toEqual(5);\n\t\texpect(deck.sections.at(0).title).toEqual(\"Section 1\");\n\t\texpect(deck.sections.at(3).title).toEqual(\"Apple\");\n\n\t\tconst lastSection = deck.sections.at(deck.sections.length - 1);\n\t\texpect(lastSection.title).toEqual(\"Orange\");\n\t\texpect(lastSection.key).toEqual(\"template-orange\");\n\t\texpect(lastSection.html).toEqual(\n\t\t\t\"http://path/to/template/orange/index.html\"\n\t\t);\n\t\texpect(lastSection.css).toEqual(\"http://path/to/template/orange/slide.css\");\n\t});\n\n\tdescribe(\"Screenshots\", () => {\n\t\tit(\"should use the default image from the slide if no screenshot found\", () => {\n\t\t\tconst deck = new DeckVersionModel(deckVersionJSON);\n\t\t\tconst presentationDeck = PresentationDeck.createFromDeckVersion(deck);\n\t\t\texpect(presentationDeck.thumbnail).toEqual(deckVersionJSON.image_256);\n\t\t});\n\n\t\tit(\"should use the screenshot model if it matches\", () => {\n\t\t\tconst deck = new DeckVersionModel(deckVersionJSON);\n\t\t\tconst options = {\n\t\t\t\tscreenshots: new DeckVersionScreenshotCollection([\n\t\t\t\t\t{ subject: deck.url(), image_256: \"test-screenshot.png\" },\n\t\t\t\t]),\n\t\t\t};\n\n\t\t\tconst presentationDeck = PresentationDeck.createFromDeckVersion(\n\t\t\t\tdeck,\n\t\t\t\toptions\n\t\t\t);\n\t\t\texpect(presentationDeck.thumbnail).toEqual(\"test-screenshot.png\");\n\t\t});\n\n\t\tit(\"should pass screenshots to nested models\", () => {\n\t\t\tconst deck = new DeckVersionModel(deckVersionJSON);\n\t\t\tconst section = deck.section_set.first();\n\t\t\tconst slide = section.slide_set.first();\n\n\t\t\tconst options = {\n\t\t\t\tscreenshots: new DeckVersionScreenshotCollection([\n\t\t\t\t\t{ subject: deck.url(), image_256: \"test-screenshot.png\" },\n\t\t\t\t\t{ subject: section.url(), image_256: \"test-screenshot.png\" },\n\t\t\t\t\t{ subject: slide.url(), image_256: \"test-screenshot.png\" },\n\t\t\t\t]),\n\t\t\t};\n\n\t\t\tconst presentationDeck = PresentationDeck.createFromDeckVersion(\n\t\t\t\tdeck,\n\t\t\t\toptions\n\t\t\t);\n\t\t\tconst presentationSection = presentationDeck.sections.first();\n\t\t\tconst presentationSlide = presentationSection.slides.first();\n\n\t\t\texpect(presentationSection.thumbnail).toEqual(\"test-screenshot.png\");\n\t\t\texpect(presentationSlide.thumbnail).toEqual(\"test-screenshot.png\");\n\t\t});\n\t});\n});\n"],"file":"presentation-deck.spec.js"}
|