@livepreso/api 6.42.1 → 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/build-cache-tar.log +7 -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 +152 -134
- package/.rush/temp/package-deps_test.json +172 -0
- package/.rush/temp/shrinkwrap-deps.json +946 -847
- package/CHANGELOG.json +41 -0
- package/CHANGELOG.md +22 -1
- package/api.build.log +3 -26
- package/babel.config.js +1 -1
- package/bin/test.sh +0 -1
- package/cjs/api.js +1 -1
- package/cjs/api.js.map +1 -1
- package/cjs/auth.js +38 -11
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +12 -6
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +3 -3
- package/cjs/collections/activity.js +2 -2
- package/cjs/collections/appointment-adjunct-tags.js +28 -0
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -0
- package/cjs/collections/appointment-deckversion-tags.js +28 -0
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -0
- package/cjs/collections/appointment-section-tags.js +28 -0
- package/cjs/collections/appointment-section-tags.js.map +1 -0
- package/cjs/collections/appointment-slide-tags.js +28 -0
- package/cjs/collections/appointment-slide-tags.js.map +1 -0
- package/cjs/collections/appointment-tags.js +208 -0
- package/cjs/collections/appointment-tags.js.map +1 -0
- package/cjs/collections/appointments.js +2 -2
- package/cjs/collections/auto-adjuncts.js +2 -2
- package/cjs/collections/base.js +84 -3
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +178 -0
- 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/deck-versions.js +2 -2
- package/cjs/collections/tags.js +28 -0
- package/cjs/collections/tags.js.map +1 -0
- package/cjs/collections.js +91 -0
- package/cjs/collections.js.map +1 -1
- package/cjs/models/activity-item.js +5 -3
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +52 -0
- package/cjs/models/appointment-adjunct-tags.js.map +1 -0
- package/cjs/models/appointment-deckversion-tags.js +52 -0
- package/cjs/models/appointment-deckversion-tags.js.map +1 -0
- package/cjs/models/appointment-duplicate.js +2 -2
- package/cjs/models/appointment-section-tags.js +52 -0
- package/cjs/models/appointment-section-tags.js.map +1 -0
- package/cjs/models/appointment-slide-tags.js +52 -0
- package/cjs/models/appointment-slide-tags.js.map +1 -0
- package/cjs/models/appointment-tags.js +16 -15
- package/cjs/models/appointment-tags.js.map +1 -1
- package/cjs/models/appointment.js +19 -3
- 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-tags.js +61 -0
- package/cjs/models/deck-tags.js.map +1 -0
- 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 +30 -5
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +4 -1
- package/cjs/models/deck.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 +56 -13
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/preset.js +21 -1
- package/cjs/models/preset.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/tag.js +54 -0
- package/cjs/models/tag.js.map +1 -0
- 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 +4 -2
- package/cjs/models/user.js.map +1 -1
- package/cjs/models.js +104 -0
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +11 -4
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +167 -9
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +96 -6
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +36 -8
- 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 +64 -25
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +536 -0
- package/cjs/presentation/presentation-section.spec.js.map +1 -0
- package/cjs/presentation/presentation-slide.js +43 -18
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +386 -0
- package/cjs/presentation/presentation-slide.spec.js.map +1 -0
- package/cjs/presentation/presentation-subslide.js +5 -2
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +58 -12
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation.js +120 -6
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/state-register.js +11 -1
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +1 -1
- package/cjs/utils.js +5 -5
- package/config/rush-project.json +11 -0
- package/jest.config.js +1 -0
- package/package.json +66 -66
- package/src/api.js +1 -1
- package/src/auth.js +44 -8
- package/src/auth.spec.js +2 -0
- package/src/collections/appointment-adjunct-tags.js +18 -0
- package/src/collections/appointment-deckversion-tags.js +21 -0
- package/src/collections/appointment-section-tags.js +18 -0
- package/src/collections/appointment-slide-tags.js +18 -0
- package/src/collections/appointment-tags.js +136 -0
- package/src/collections/base.js +80 -3
- package/src/collections/base.spec.js +108 -1
- package/src/collections/deck-version-screenshots.js +48 -0
- package/src/collections/tags.js +18 -0
- package/src/collections.js +7 -0
- package/src/models/activity-item.js +2 -0
- package/src/models/appointment-adjunct-tags.js +41 -0
- package/src/models/appointment-deckversion-tags.js +41 -0
- package/src/models/appointment-section-tags.js +41 -0
- package/src/models/appointment-slide-tags.js +41 -0
- package/src/models/appointment-tags.js +16 -14
- package/src/models/appointment.js +18 -1
- 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-tags.js +52 -0
- package/src/models/deck-version-screenshot.js +48 -0
- package/src/models/deck-version.js +32 -4
- package/src/models/deck.js +2 -0
- package/src/models/feed-data.js +2 -0
- package/src/models/image.js +32 -0
- package/src/models/manifest-json.js +55 -7
- package/src/models/preset.js +19 -0
- package/src/models/section.js +2 -0
- package/src/models/slide.js +2 -0
- package/src/models/tag.js +42 -0
- package/src/models/template.js +2 -0
- package/src/models/token.js +47 -0
- package/src/models/user.js +4 -0
- package/src/models.js +8 -0
- package/src/presentation/appointment-presentation.js +13 -2
- package/src/presentation/base-presentation-model.js +129 -8
- package/src/presentation/base-presentation-model.spec.js +121 -6
- package/src/presentation/presentation-deck.js +41 -2
- package/src/presentation/presentation-deck.spec.js +53 -0
- package/src/presentation/presentation-section.js +57 -14
- package/src/presentation/presentation-section.spec.js +496 -0
- package/src/presentation/presentation-slide.js +41 -8
- package/src/presentation/presentation-slide.spec.js +352 -0
- package/src/presentation/presentation-subslide.js +7 -2
- package/src/presentation/presentation-subslide.spec.js +32 -3
- package/src/presentation/presentation.js +35 -6
- package/src/state-register.js +7 -0
- package/api.build.error.log +0 -16
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import { AdjunctSlideModel } from "../models/adjunct-slide";
|
|
2
|
+
import { AutoAdjunctModel } from "../models/auto-adjunct";
|
|
3
|
+
import { DeckVersionScreenshotCollection } from "../collections/deck-version-screenshots.js";
|
|
4
|
+
import { PresentationSlide } from "./presentation-slide";
|
|
5
|
+
import { SlideModel } from "../models/slide";
|
|
6
|
+
|
|
7
|
+
describe("#createFromSlide", () => {
|
|
8
|
+
const getSlideJSON = () => {
|
|
9
|
+
return {
|
|
10
|
+
created_date: "2021-07-22T04:57:56.484060Z",
|
|
11
|
+
description: "",
|
|
12
|
+
enabled: true,
|
|
13
|
+
id: 23219,
|
|
14
|
+
image_128: null,
|
|
15
|
+
image_256: null,
|
|
16
|
+
image_512: null,
|
|
17
|
+
index_asset: {
|
|
18
|
+
created_date: "2021-07-22T04:57:32.977770Z",
|
|
19
|
+
data: "sections/test-deck/slides/slide-key/index.html",
|
|
20
|
+
id: 148204,
|
|
21
|
+
modified_date: "2021-07-22T04:57:32.977790Z",
|
|
22
|
+
orig_path: "sections/test-deck/slides/slide-key",
|
|
23
|
+
pack: "https://staging-test.salespreso.com/api/packs/410/",
|
|
24
|
+
url: "https://staging-test-cdn.salespreso.com/media/pack/410/assets/sections/test-deck/slides/slide-key/index.html",
|
|
25
|
+
},
|
|
26
|
+
key: "slide-key",
|
|
27
|
+
modified_date: "2021-07-22T05:03:07.778106Z",
|
|
28
|
+
namespaced_key: "test-deck/slide-key",
|
|
29
|
+
section: "https://staging-test.salespreso.com/api/sections/1738/",
|
|
30
|
+
sequence: 13,
|
|
31
|
+
subslide_set: [],
|
|
32
|
+
tags: [],
|
|
33
|
+
title: "Digital Transformation",
|
|
34
|
+
url: "https://staging-test.salespreso.com/api/slides/23219/",
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
it("should create a presentation slide", async () => {
|
|
39
|
+
const slide = new SlideModel(getSlideJSON());
|
|
40
|
+
const presentationSlide = PresentationSlide.createFromSlide(slide);
|
|
41
|
+
|
|
42
|
+
const expected = {
|
|
43
|
+
adjunctID: null,
|
|
44
|
+
autoAdjunctID: null,
|
|
45
|
+
createdByAutoAdjunct: false,
|
|
46
|
+
createdByTemplate: false,
|
|
47
|
+
css: "https://staging-test-cdn.salespreso.com/media/pack/410/assets/sections/test-deck/slides/slide-key/slide.css",
|
|
48
|
+
custom: false,
|
|
49
|
+
editable: false,
|
|
50
|
+
html: "https://staging-test-cdn.salespreso.com/media/pack/410/assets/sections/test-deck/slides/slide-key/index.html",
|
|
51
|
+
id: 23219,
|
|
52
|
+
index: 13,
|
|
53
|
+
key: "slide-key",
|
|
54
|
+
section: 1738,
|
|
55
|
+
selectionID: null,
|
|
56
|
+
sequence: 13,
|
|
57
|
+
subslides: [],
|
|
58
|
+
tags: [],
|
|
59
|
+
templateID: null,
|
|
60
|
+
thumbnail: null,
|
|
61
|
+
title: "Digital Transformation",
|
|
62
|
+
url: "/api/slides/23219/",
|
|
63
|
+
visible: true,
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
expect(presentationSlide.toJSON()).toEqual(expected);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it("should use deckTags when available", async () => {
|
|
70
|
+
const slide = new SlideModel(getSlideJSON());
|
|
71
|
+
const options = {
|
|
72
|
+
deckTags: { "test-deck/slide-key": ["slide-tag"] },
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const presentationSlide = PresentationSlide.createFromSlide(slide, options);
|
|
76
|
+
|
|
77
|
+
expect(presentationSlide.tags).toEqual(["slide-tag"]);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
describe("Screenshots", () => {
|
|
81
|
+
it("should use the default image from the model if no screenshot found", () => {
|
|
82
|
+
const slide = new SlideModel(getSlideJSON());
|
|
83
|
+
const presentationSlide = PresentationSlide.createFromSlide(slide);
|
|
84
|
+
expect(presentationSlide.thumbnail).toEqual(null);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it("should use the screenshot model if it matches", () => {
|
|
88
|
+
const slide = new SlideModel(getSlideJSON());
|
|
89
|
+
const options = {
|
|
90
|
+
screenshots: new DeckVersionScreenshotCollection([
|
|
91
|
+
{ subject: "/api/slides/23219/", image_256: "test-screenshot.png" },
|
|
92
|
+
]),
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const presentationSlide = PresentationSlide.createFromSlide(
|
|
96
|
+
slide,
|
|
97
|
+
options
|
|
98
|
+
);
|
|
99
|
+
expect(presentationSlide.thumbnail).toEqual("test-screenshot.png");
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
describe("#createFromAdjunctSlide", () => {
|
|
105
|
+
const getAdjunctSlideJSON = (includeTemplate = false) => {
|
|
106
|
+
const template = {
|
|
107
|
+
id: 1,
|
|
108
|
+
image_256: "template.png",
|
|
109
|
+
index_asset: {
|
|
110
|
+
created_date: "2021-07-22T04:57:32.977770Z",
|
|
111
|
+
data: "index.html",
|
|
112
|
+
id: 148204,
|
|
113
|
+
modified_date: "2021-07-22T04:57:32.977790Z",
|
|
114
|
+
orig_path: "templates/test-template/foo",
|
|
115
|
+
pack: "https://staging-test.salespreso.com/api/packs/410/",
|
|
116
|
+
url: "https://staging-test-cdn.salespreso.com/media/pack/410/assets/sections/test-deck/slides/slide-key/index.html",
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
return {
|
|
121
|
+
adjunct: "https://staging-test.salespreso.com/api/adjuncts/7457/",
|
|
122
|
+
appointment: "https://staging-test.salespreso.com/api/appointments/2426/",
|
|
123
|
+
created_by_autoadjunct: true,
|
|
124
|
+
created_date: "2021-09-20T05:34:45.267698Z",
|
|
125
|
+
creator_autoadjunct:
|
|
126
|
+
"https://staging-test.salespreso.com/api/autoadjuncts/541/",
|
|
127
|
+
deleted: false,
|
|
128
|
+
enabled: true,
|
|
129
|
+
html_content:
|
|
130
|
+
'<img src="https://staging-test-cdn.salespreso.com/media/autoadjunct/123.png">',
|
|
131
|
+
id: 10529,
|
|
132
|
+
image_128:
|
|
133
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.jpg",
|
|
134
|
+
image_256:
|
|
135
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.jpg",
|
|
136
|
+
image_512:
|
|
137
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.jpg",
|
|
138
|
+
image_1024:
|
|
139
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.png",
|
|
140
|
+
image_original:
|
|
141
|
+
"https://staging-test-cdn.salespreso.com/media/autoadjunct/123.png",
|
|
142
|
+
modified_date: "2021-09-20T05:34:45.267703Z",
|
|
143
|
+
section: "https://staging-test.salespreso.com/api/sections/1755/",
|
|
144
|
+
sequence: 3,
|
|
145
|
+
tags: [],
|
|
146
|
+
template: includeTemplate ? template : null,
|
|
147
|
+
title: "Six",
|
|
148
|
+
url: "https://staging-test.salespreso.com/api/adjunctslides/10529/",
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
it("should create a presentation slide", async () => {
|
|
153
|
+
const adjunctSlide = new AdjunctSlideModel(getAdjunctSlideJSON());
|
|
154
|
+
const presentationSlide =
|
|
155
|
+
PresentationSlide.createFromAdjunctSlide(adjunctSlide);
|
|
156
|
+
|
|
157
|
+
const expected = {
|
|
158
|
+
adjunct: {
|
|
159
|
+
url: "https://staging-test.salespreso.com/api/adjuncts/7457/",
|
|
160
|
+
},
|
|
161
|
+
adjunctID: 10529,
|
|
162
|
+
autoAdjunctID: 541,
|
|
163
|
+
createdByAutoAdjunct: true,
|
|
164
|
+
createdByTemplate: false,
|
|
165
|
+
custom: false,
|
|
166
|
+
id: 1,
|
|
167
|
+
image:
|
|
168
|
+
"https://staging-test-cdn.salespreso.com/media/autoadjunct/123.png",
|
|
169
|
+
index: 3,
|
|
170
|
+
key: "adjunct-10529",
|
|
171
|
+
section: null,
|
|
172
|
+
sequence: 3,
|
|
173
|
+
subslides: [],
|
|
174
|
+
tags: [],
|
|
175
|
+
templateID: null,
|
|
176
|
+
temporary: true,
|
|
177
|
+
thumbnail:
|
|
178
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.jpg",
|
|
179
|
+
title: "Six",
|
|
180
|
+
url: "/api/adjunctslides/10529/",
|
|
181
|
+
visible: true,
|
|
182
|
+
cmsvalkey_set: [],
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
expect(presentationSlide.toJSON()).toEqual(expected);
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
it("should use deckTags when available", async () => {
|
|
189
|
+
const adjunctSlide = new AdjunctSlideModel(getAdjunctSlideJSON());
|
|
190
|
+
const options = {
|
|
191
|
+
deckTags: { "test-deck/adjunct-10529": ["adjunctslide-tag"] },
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
const presentationSlide = PresentationSlide.createFromAdjunctSlide(
|
|
195
|
+
adjunctSlide,
|
|
196
|
+
null,
|
|
197
|
+
options
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
expect(presentationSlide.tags).toEqual(["adjunctslide-tag"]);
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
describe("Screenshots", () => {
|
|
204
|
+
it("should use the default image from the model if no screenshot found", () => {
|
|
205
|
+
const data = getAdjunctSlideJSON(true);
|
|
206
|
+
const adjunctSlide = new AdjunctSlideModel(data);
|
|
207
|
+
const presentationSlide =
|
|
208
|
+
PresentationSlide.createFromAdjunctSlide(adjunctSlide);
|
|
209
|
+
expect(presentationSlide.thumbnail).toEqual(data.template.image_256);
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
it("should use the screenshot model if it matches", () => {
|
|
213
|
+
const adjunctSlide = new AdjunctSlideModel(getAdjunctSlideJSON(true));
|
|
214
|
+
|
|
215
|
+
const options = {
|
|
216
|
+
screenshots: new DeckVersionScreenshotCollection([
|
|
217
|
+
{
|
|
218
|
+
subject: "/api/autoadjuncts/541/",
|
|
219
|
+
image_256: "test-screenshot.png",
|
|
220
|
+
},
|
|
221
|
+
]),
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
const presentationSlide = PresentationSlide.createFromAdjunctSlide(
|
|
225
|
+
adjunctSlide,
|
|
226
|
+
null,
|
|
227
|
+
options
|
|
228
|
+
);
|
|
229
|
+
expect(presentationSlide.thumbnail).toEqual("test-screenshot.png");
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
describe("#createFromAutoAdjunct", () => {
|
|
235
|
+
const getAutoAdjunctJSON = () => {
|
|
236
|
+
return {
|
|
237
|
+
after_key: "test-deck/industry_insights",
|
|
238
|
+
created_date: "2021-08-02T00:28:41.992805Z",
|
|
239
|
+
deck: "https://staging-test.salespreso.com/api/decks/4/",
|
|
240
|
+
enabled: true,
|
|
241
|
+
id: 525,
|
|
242
|
+
image_128:
|
|
243
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.jpg",
|
|
244
|
+
image_256:
|
|
245
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.jpg",
|
|
246
|
+
image_512:
|
|
247
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.jpg",
|
|
248
|
+
image_1024:
|
|
249
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.png",
|
|
250
|
+
image_original:
|
|
251
|
+
"https://staging-test-cdn.salespreso.com/media/autoadjunct/123.png",
|
|
252
|
+
key: "autoadjunct-three",
|
|
253
|
+
modified_date: "2021-09-15T05:52:49.234837Z",
|
|
254
|
+
name: "Three",
|
|
255
|
+
parent_key: "test-deck",
|
|
256
|
+
sequence: 4,
|
|
257
|
+
tags: [],
|
|
258
|
+
team: null,
|
|
259
|
+
template: null,
|
|
260
|
+
url: "https://staging-test.salespreso.com/api/autoadjuncts/525/",
|
|
261
|
+
};
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
it("should create a presentation slide", async () => {
|
|
265
|
+
const autoAdjunct = new AutoAdjunctModel(getAutoAdjunctJSON());
|
|
266
|
+
const options = {
|
|
267
|
+
index: 3,
|
|
268
|
+
deckversionID: 12,
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
const presentationSlide = PresentationSlide.createFromAutoAdjunct(
|
|
272
|
+
autoAdjunct,
|
|
273
|
+
options
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
const expected = {
|
|
277
|
+
adjunctID: 525,
|
|
278
|
+
autoAdjunctID: 525,
|
|
279
|
+
createdByAutoAdjunct: false,
|
|
280
|
+
createdByTemplate: false,
|
|
281
|
+
css: "",
|
|
282
|
+
html: "",
|
|
283
|
+
id: 525,
|
|
284
|
+
image:
|
|
285
|
+
"https://staging-test-cdn.salespreso.com/media/autoadjunct/123.png",
|
|
286
|
+
index: 3,
|
|
287
|
+
key: "autoadjunct-three",
|
|
288
|
+
sequence: 3,
|
|
289
|
+
subslides: [],
|
|
290
|
+
tags: [],
|
|
291
|
+
templateID: null,
|
|
292
|
+
temporary: true,
|
|
293
|
+
thumbnail:
|
|
294
|
+
"https://staging-test-cdn.salespreso.com/media/CACHE/images/autoadjunct/123/456.jpg",
|
|
295
|
+
title: "Three",
|
|
296
|
+
url: "/api/adjunctslides/525/",
|
|
297
|
+
visible: true,
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
expect(presentationSlide.toJSON()).toEqual(expected);
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
it("should use deckTags when available", async () => {
|
|
304
|
+
const autoAdjunct = new AutoAdjunctModel(getAutoAdjunctJSON());
|
|
305
|
+
const options = {
|
|
306
|
+
index: 3,
|
|
307
|
+
deckversionID: 12,
|
|
308
|
+
deckTags: {
|
|
309
|
+
"test-deck/autoadjunct-three": ["autoadjunct-tags"],
|
|
310
|
+
},
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
const presentationSlide = PresentationSlide.createFromAutoAdjunct(
|
|
314
|
+
autoAdjunct,
|
|
315
|
+
options
|
|
316
|
+
);
|
|
317
|
+
expect(presentationSlide.tags).toEqual(["autoadjunct-tags"]);
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
describe("Screenshots", () => {
|
|
321
|
+
it("should use the default image from the model if no screenshot found", () => {
|
|
322
|
+
const options = { index: 3, deckversionID: 12 };
|
|
323
|
+
const data = getAutoAdjunctJSON();
|
|
324
|
+
const autoAdjunct = new AutoAdjunctModel(data);
|
|
325
|
+
const presentationSlide = PresentationSlide.createFromAutoAdjunct(
|
|
326
|
+
autoAdjunct,
|
|
327
|
+
options
|
|
328
|
+
);
|
|
329
|
+
expect(presentationSlide.thumbnail).toEqual(data.image_256);
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
it("should use the screenshot model if it matches", () => {
|
|
333
|
+
const options = {
|
|
334
|
+
index: 3,
|
|
335
|
+
deckversionID: 12,
|
|
336
|
+
screenshots: new DeckVersionScreenshotCollection([
|
|
337
|
+
{
|
|
338
|
+
subject: "/api/autoadjuncts/525/",
|
|
339
|
+
image_256: "test-screenshot.png",
|
|
340
|
+
},
|
|
341
|
+
]),
|
|
342
|
+
};
|
|
343
|
+
const data = getAutoAdjunctJSON();
|
|
344
|
+
const autoAdjunct = new AutoAdjunctModel(data);
|
|
345
|
+
const presentationSlide = PresentationSlide.createFromAutoAdjunct(
|
|
346
|
+
autoAdjunct,
|
|
347
|
+
options
|
|
348
|
+
);
|
|
349
|
+
expect(presentationSlide.thumbnail).toEqual("test-screenshot.png");
|
|
350
|
+
});
|
|
351
|
+
});
|
|
352
|
+
});
|
|
@@ -127,11 +127,16 @@ PresentationSubSlide.createFromAdjunctSubSlide = function (
|
|
|
127
127
|
},
|
|
128
128
|
});
|
|
129
129
|
|
|
130
|
+
const key = `adjunct-${adjunctSubSlideModel.id}`;
|
|
131
|
+
adjunctSubSlideModel.key = key;
|
|
132
|
+
|
|
130
133
|
const config = PresentationSubSlide.getVisibilityAndSequence(
|
|
131
134
|
adjunctSubSlideModel,
|
|
132
135
|
options
|
|
133
136
|
);
|
|
134
137
|
|
|
138
|
+
const tags = PresentationSubSlide.getTags(adjunctSubSlideModel, options);
|
|
139
|
+
|
|
135
140
|
const subslide = new PresentationSubSlide({
|
|
136
141
|
id: options.id || options.getUniqueAdjunctID(),
|
|
137
142
|
adjunct: adjunctSubSlideModel.adjunct
|
|
@@ -139,12 +144,12 @@ PresentationSubSlide.createFromAdjunctSubSlide = function (
|
|
|
139
144
|
: null,
|
|
140
145
|
adjunctID: adjunctSubSlideModel.id,
|
|
141
146
|
html_content: adjunctSubSlideModel.html_content,
|
|
142
|
-
key
|
|
147
|
+
key,
|
|
143
148
|
image: adjunctSubSlideModel.image_256,
|
|
144
149
|
custom: true,
|
|
145
150
|
title: adjunctSubSlideModel.title,
|
|
146
151
|
slide: slideModel.id,
|
|
147
|
-
tags
|
|
152
|
+
tags,
|
|
148
153
|
index: config.sequence,
|
|
149
154
|
sequence: config.sequence,
|
|
150
155
|
visible: config.visible,
|
|
@@ -15,9 +15,6 @@ describe("#createFromSubSlide", () => {
|
|
|
15
15
|
index_asset: {
|
|
16
16
|
created_date: "2020-07-20T03:25:15.530683Z",
|
|
17
17
|
data: "sections/test-deck/slides/why_myob_vision/index.html",
|
|
18
|
-
hash_algorithm: "sha-256",
|
|
19
|
-
hash_digest:
|
|
20
|
-
"5e2426643a0d9f9360f343891da19faecf6bd37584ed4be05528c87b981f1f26",
|
|
21
18
|
id: 7836,
|
|
22
19
|
modified_date: "2020-07-20T03:25:15.530717Z",
|
|
23
20
|
orig_path: "sections/test-deck/slides/why_myob_vision",
|
|
@@ -55,6 +52,19 @@ describe("#createFromSubSlide", () => {
|
|
|
55
52
|
|
|
56
53
|
expect(presentationSub.toJSON()).toEqual(expected);
|
|
57
54
|
});
|
|
55
|
+
|
|
56
|
+
it("should use deckTags when available", async () => {
|
|
57
|
+
const subslide = new SubSlideModel(subslideJSON);
|
|
58
|
+
const options = {
|
|
59
|
+
deckTags: { "test-deck/why_myob_vision/subslide-1": ["subslide-tag"] },
|
|
60
|
+
};
|
|
61
|
+
const presentationSub = PresentationSubSlide.createFromSubSlide(
|
|
62
|
+
subslide,
|
|
63
|
+
options
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
expect(presentationSub.tags).toEqual(["subslide-tag"]);
|
|
67
|
+
});
|
|
58
68
|
});
|
|
59
69
|
|
|
60
70
|
describe("#createFromAdjunctSubSlide", () => {
|
|
@@ -107,11 +117,30 @@ describe("#createFromAdjunctSubSlide", () => {
|
|
|
107
117
|
index: 2,
|
|
108
118
|
sequence: 2,
|
|
109
119
|
visible: true,
|
|
120
|
+
tags: [],
|
|
110
121
|
url: subslide.url(),
|
|
111
122
|
};
|
|
112
123
|
|
|
113
124
|
expect(presentationSub.toJSON()).toEqual(expected);
|
|
114
125
|
});
|
|
126
|
+
|
|
127
|
+
it("should use deckTags when available", async () => {
|
|
128
|
+
const subslide = new AdjunctSubSlideModel(adjunctSubSlideJSON);
|
|
129
|
+
|
|
130
|
+
const options = {
|
|
131
|
+
id: 23,
|
|
132
|
+
deckTags: {
|
|
133
|
+
"test-deck/why_myob_vision/adjunct-562": ["adjunctsubslide-tag"],
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
const presentationSub = PresentationSubSlide.createFromAdjunctSubSlide(
|
|
137
|
+
subslide,
|
|
138
|
+
{ id: 58 },
|
|
139
|
+
options
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
expect(presentationSub.tags).toEqual(["adjunctsubslide-tag"]);
|
|
143
|
+
});
|
|
115
144
|
});
|
|
116
145
|
|
|
117
146
|
describe("#createFromSlide", () => {
|
|
@@ -2,6 +2,7 @@ import "./presentation-decks.js";
|
|
|
2
2
|
|
|
3
3
|
import { DeckVersionModel, ManifestJSONModel } from "../models.js";
|
|
4
4
|
|
|
5
|
+
import { AutoAdjunctCollection } from "../collections/auto-adjuncts.js";
|
|
5
6
|
import { BasePresentationModel } from "./base-presentation-model.js";
|
|
6
7
|
import { PresentationDeck } from "./presentation-deck.js";
|
|
7
8
|
import Promise from "bluebird";
|
|
@@ -17,9 +18,10 @@ export const Presentation = BasePresentationModel.extend({
|
|
|
17
18
|
|
|
18
19
|
Presentation.createFromDeckversion = function (deckversionURL, options) {
|
|
19
20
|
const deckversion = new DeckVersionModel(deckversionURL);
|
|
20
|
-
|
|
21
|
-
options = _.defaults(options, {
|
|
21
|
+
const opts = _.defaults(options, {
|
|
22
22
|
includeTemplates: false,
|
|
23
|
+
choicelist: null,
|
|
24
|
+
autoAdjuncts: new AutoAdjunctCollection(),
|
|
23
25
|
});
|
|
24
26
|
|
|
25
27
|
return deckversion
|
|
@@ -30,15 +32,42 @@ Presentation.createFromDeckversion = function (deckversionURL, options) {
|
|
|
30
32
|
deckversion.deck.fetch(),
|
|
31
33
|
]);
|
|
32
34
|
})
|
|
35
|
+
.then(async () => {
|
|
36
|
+
const templates = deckversion.template_set.models;
|
|
37
|
+
|
|
38
|
+
for (const auto of opts.autoAdjuncts.models) {
|
|
39
|
+
const dvTemplate = templates.find(
|
|
40
|
+
(t) => t.url() === auto.template.url()
|
|
41
|
+
);
|
|
42
|
+
if (dvTemplate) {
|
|
43
|
+
auto.template = dvTemplate;
|
|
44
|
+
} else {
|
|
45
|
+
await auto.template.fetch();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
})
|
|
33
49
|
.then(() => {
|
|
50
|
+
return deckversion.deck.tags.fetch();
|
|
51
|
+
})
|
|
52
|
+
.then(() => {
|
|
53
|
+
const deckTags = deckversion.deck.tags.items.reduce((tagObj, tagItem) => {
|
|
54
|
+
tagObj[tagItem.namespaced_key] = tagItem.tags;
|
|
55
|
+
return tagObj;
|
|
56
|
+
}, {});
|
|
57
|
+
|
|
34
58
|
const presentation = new Presentation();
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
59
|
+
|
|
60
|
+
const { includeTemplates, ...otherOpts } = opts;
|
|
61
|
+
|
|
62
|
+
if (includeTemplates) {
|
|
63
|
+
otherOpts.templates = deckversion.template_set.toJSON();
|
|
38
64
|
}
|
|
39
65
|
|
|
40
66
|
presentation.decks.add([
|
|
41
|
-
PresentationDeck.createFromDeckVersion(deckversion,
|
|
67
|
+
PresentationDeck.createFromDeckVersion(deckversion, {
|
|
68
|
+
...otherOpts,
|
|
69
|
+
deckTags,
|
|
70
|
+
}),
|
|
42
71
|
]);
|
|
43
72
|
|
|
44
73
|
return presentation;
|
package/src/state-register.js
CHANGED
|
@@ -4,3 +4,10 @@ export const register = (name, State) => {
|
|
|
4
4
|
State.prototype._registerName = name;
|
|
5
5
|
registeredStates[name] = State;
|
|
6
6
|
};
|
|
7
|
+
|
|
8
|
+
export const getState = (name) => {
|
|
9
|
+
if (!registeredStates[name]) {
|
|
10
|
+
throw new Error(`Registered state '${name}' not found.`);
|
|
11
|
+
}
|
|
12
|
+
return registeredStates[name];
|
|
13
|
+
};
|
package/api.build.error.log
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
PASS src/presentation/base-presentation-model.spec.js (48.024s)
|
|
2
|
-
PASS src/presentation/presentation-subslide.spec.js (48.051s)
|
|
3
|
-
PASS src/presentation/presentation-deck.spec.js (48.156s)
|
|
4
|
-
PASS src/utils.spec.js (48.326s)
|
|
5
|
-
PASS src/collections/base.spec.js (48.602s)
|
|
6
|
-
PASS src/models/timing-log.spec.js (48.606s)
|
|
7
|
-
PASS src/models/base.spec.js (49.267s)
|
|
8
|
-
PASS src/api.spec.js
|
|
9
|
-
PASS src/models/user.spec.js
|
|
10
|
-
PASS src/auth.spec.js
|
|
11
|
-
|
|
12
|
-
Test Suites: 10 passed, 10 total
|
|
13
|
-
Tests: 96 passed, 96 total
|
|
14
|
-
Snapshots: 0 total
|
|
15
|
-
Time: 55.047s
|
|
16
|
-
Ran all test suites.
|