@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
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.BasePresentationModel = void 0;
|
|
7
9
|
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
8
12
|
var _base = require("../models/base.js");
|
|
9
13
|
|
|
14
|
+
var _deckVersionScreenshots = require("../collections/deck-version-screenshots.js");
|
|
15
|
+
|
|
16
|
+
var _team2 = require("../models/team.js");
|
|
17
|
+
|
|
18
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
19
|
+
|
|
20
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
21
|
+
|
|
22
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
23
|
+
|
|
24
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
25
|
+
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
+
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
|
+
|
|
10
30
|
/**
|
|
11
31
|
* @constructor
|
|
12
32
|
* @alias presentation.BasePresentationModel
|
|
@@ -19,6 +39,97 @@ var BasePresentationModel = _base.BaseModel.extend(
|
|
|
19
39
|
return null;
|
|
20
40
|
}
|
|
21
41
|
});
|
|
42
|
+
/**
|
|
43
|
+
* Logic to pick a thumbnail based on either the model itself or from
|
|
44
|
+
* and overriding screenshot if one exists.
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
exports.BasePresentationModel = BasePresentationModel;
|
|
49
|
+
|
|
50
|
+
BasePresentationModel.getThumbnail = function (model, screenshots) {
|
|
51
|
+
var _screenshots$filter;
|
|
52
|
+
|
|
53
|
+
var overrideScreenshot = (_screenshots$filter = screenshots === null || screenshots === void 0 ? void 0 : screenshots.filter(function (screen) {
|
|
54
|
+
return screen.subject === model.url();
|
|
55
|
+
})) !== null && _screenshots$filter !== void 0 ? _screenshots$filter : [];
|
|
56
|
+
|
|
57
|
+
if (overrideScreenshot.length) {
|
|
58
|
+
if (overrideScreenshot.length > 1) {
|
|
59
|
+
throw new Error("\n\t\t\t\tFound multiple screenshots that could match this subject. If there is a team\n\t\t\t\tand a global, be sure to remove the screenshot that you don't need.\n\t\t\t");
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return overrideScreenshot[0].image_256;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return model.image_256;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Takes a list of screenshots and filters it to only be a list used by a single team
|
|
69
|
+
* (or company wide).
|
|
70
|
+
*
|
|
71
|
+
* The logic should be like this:
|
|
72
|
+
*
|
|
73
|
+
* * If the team is null, we just return all global screenshots (team = null)
|
|
74
|
+
* * If we select a team, we take those global screenshots and replace any that have a
|
|
75
|
+
* team specific version of that screenshot. If none is found, the team will want to
|
|
76
|
+
* see the same global version. Obviously only one team's screenshots should be available.
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
BasePresentationModel.filterScreenshotsByTeam = function (_screenshots) {
|
|
81
|
+
var _team = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
82
|
+
|
|
83
|
+
var screenshots = new _deckVersionScreenshots.DeckVersionScreenshotCollection(_screenshots);
|
|
84
|
+
var team = _team ? new _team2.TeamModel(_team) : null;
|
|
85
|
+
var globalScreenshots = screenshots.filter(function (screen) {
|
|
86
|
+
return screen.team === null;
|
|
87
|
+
}).map(function (screen) {
|
|
88
|
+
return screen.toJSON();
|
|
89
|
+
});
|
|
90
|
+
var result = globalScreenshots;
|
|
91
|
+
|
|
92
|
+
if (team) {
|
|
93
|
+
var teamScreenshots = screenshots.filter(function (screen) {
|
|
94
|
+
return screen.team && screen.team.url() === team.url();
|
|
95
|
+
}).map(function (screen) {
|
|
96
|
+
return _objectSpread(_objectSpread({}, screen.toJSON()), {}, {
|
|
97
|
+
team: screen.team.url()
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
var _iterator = _createForOfIteratorHelper(teamScreenshots),
|
|
102
|
+
_step;
|
|
103
|
+
|
|
104
|
+
try {
|
|
105
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
106
|
+
var teamScreen = _step.value;
|
|
107
|
+
|
|
108
|
+
var existingGlobalIndex = _lodash.default.findIndex(result, {
|
|
109
|
+
subject: teamScreen.subject
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
if (existingGlobalIndex === -1) {
|
|
113
|
+
// If there isn't an existing global version, just add the team
|
|
114
|
+
// screenshot to the list
|
|
115
|
+
result.push(teamScreen);
|
|
116
|
+
} else {
|
|
117
|
+
// Otherwise we should use the team version instead of the global version
|
|
118
|
+
result[existingGlobalIndex] = teamScreen;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
} catch (err) {
|
|
122
|
+
_iterator.e(err);
|
|
123
|
+
} finally {
|
|
124
|
+
_iterator.f();
|
|
125
|
+
}
|
|
126
|
+
} // Try to return it in the same order every time
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
var ordered = _lodash.default.orderBy(result, ["team", "subject"], ["desc", "asc"]);
|
|
130
|
+
|
|
131
|
+
return new _deckVersionScreenshots.DeckVersionScreenshotCollection(ordered);
|
|
132
|
+
};
|
|
22
133
|
/**
|
|
23
134
|
* Standard function for retrieving the visibility and sequence of a model
|
|
24
135
|
* from a choicelist or section & slide selections. If a choicelist is
|
|
@@ -28,8 +139,6 @@ var BasePresentationModel = _base.BaseModel.extend(
|
|
|
28
139
|
*/
|
|
29
140
|
|
|
30
141
|
|
|
31
|
-
exports.BasePresentationModel = BasePresentationModel;
|
|
32
|
-
|
|
33
142
|
BasePresentationModel.getVisibilityAndSequence = function (model) {
|
|
34
143
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
35
144
|
var _options$choicelist = options.choicelist,
|
|
@@ -76,17 +185,66 @@ BasePresentationModel.getVisibilityAndSequence = function (model) {
|
|
|
76
185
|
return config;
|
|
77
186
|
};
|
|
78
187
|
|
|
188
|
+
var getAppointmentTags = function getAppointmentTags(model, tags) {
|
|
189
|
+
var _model$adjunct;
|
|
190
|
+
|
|
191
|
+
var url = ((_model$adjunct = model.adjunct) === null || _model$adjunct === void 0 ? void 0 : _model$adjunct.url()) || model.url();
|
|
192
|
+
var tagItem = tags.find(function (tag) {
|
|
193
|
+
return tag.content_url === url;
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
if (tagItem) {
|
|
197
|
+
return tagItem.tags || [];
|
|
198
|
+
} // Subslide tags currently aren't included in the
|
|
199
|
+
// appointmentTags data.
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
return model.tags || [];
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
var getDeckTags = function getDeckTags(model, tags) {
|
|
206
|
+
// All non-adjunct sections, slides and subslides have namespaced_key
|
|
207
|
+
if (model.namespaced_key) {
|
|
208
|
+
return tags[model.namespaced_key] || model.tags || [];
|
|
209
|
+
} else if (model.adjunct || model.isAutoAdjunct) {
|
|
210
|
+
// Autoadjunct keys are unique and move around so we search for them
|
|
211
|
+
// and ignore the rest of the namespaced key
|
|
212
|
+
var keys = Object.keys(tags).filter(function (key) {
|
|
213
|
+
if (key.includes("/")) {
|
|
214
|
+
var splitKey = key.split("/");
|
|
215
|
+
return splitKey[splitKey.length - 1] === model.key;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
return key === model.key;
|
|
219
|
+
});
|
|
220
|
+
return keys.length ? tags[keys[0]] : [];
|
|
221
|
+
} else if (model.deck) {
|
|
222
|
+
// The deck's namespaced key is always "" - this is because the
|
|
223
|
+
// namespaced key format is section-key/slide-key, but the
|
|
224
|
+
// deck sits above sections.
|
|
225
|
+
return tags[""] || model.tags || [];
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return model.tags || [];
|
|
229
|
+
}; // Retrieve the tags for the model.
|
|
230
|
+
// If appointmentTags is passed through in the options, we call the
|
|
231
|
+
// getAppointmentTags function above to retrieve the appointment tags
|
|
232
|
+
// for the model.
|
|
233
|
+
// if there are no appointmentTags but deckTags are passed
|
|
234
|
+
// through then we call the getDeckTags function.
|
|
235
|
+
// In the future we will always use one of these two methods and
|
|
236
|
+
// references to model.tags should be removed.
|
|
237
|
+
|
|
238
|
+
|
|
79
239
|
BasePresentationModel.getTags = function (model) {
|
|
80
240
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
81
241
|
|
|
82
|
-
if (options.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
} else if (model.deck) {
|
|
86
|
-
return options.tags[""];
|
|
87
|
-
}
|
|
242
|
+
if (options.appointmentTags) {
|
|
243
|
+
return getAppointmentTags(model, options.appointmentTags);
|
|
244
|
+
}
|
|
88
245
|
|
|
89
|
-
|
|
246
|
+
if (options.deckTags) {
|
|
247
|
+
return getDeckTags(model, options.deckTags);
|
|
90
248
|
}
|
|
91
249
|
|
|
92
250
|
return model.tags || [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/presentation/base-presentation-model.js"],"names":["BasePresentationModel","BaseModel","extend","url","getVisibilityAndSequence","model","options","choicelist","selections","config","visible","enabled","sequence","selectionID","choice","find","item","indexOf","adjunct","selection","id","getTags","tags","namespaced_key","deck","canBeEmpty"],"mappings":";;;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,qBAAqB,GAAGC,gBAAUC,MAAV;AACpC;AAAkD;AACjDC,EAAAA,GADiD,iBAC3C;AACL,WAAO,IAAP;AACA;AAHgD,CADd,CAA9B;AAQP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAEAH,qBAAqB,CAACI,wBAAtB,GAAiD,UAChDC,KADgD,EAG/C;AAAA,MADDC,OACC,uEADS,EACT;AACD,4BAAiDA,OAAjD,CAAQC,UAAR;AAAA,MAAQA,UAAR,oCAAqB,IAArB;AAAA,4BAAiDD,OAAjD,CAA2BE,UAA3B;AAAA,MAA2BA,UAA3B,oCAAwC,IAAxC;AACA,MAAML,GAAG,GAAGE,KAAK,CAACF,GAAN,EAAZ;AAEA,MAAMM,MAAM,GAAG;AACdC,IAAAA,OAAO,EAAEL,KAAK,CAACK,OAAN,IAAiBL,KAAK,CAACM,OAAvB,IAAkC,KAD7B;AAEdC,IAAAA,QAAQ,EAAEP,KAAK,CAACO,QAFF;AAGdC,IAAAA,WAAW,EAAE;AAHC,GAAf;;AAMA,MAAIN,UAAJ,EAAgB;AACf;AACA;AACA,QAAMO,MAAM,GAAGP,UAAU,CAACQ,IAAX,CAAgB,UAACC,IAAD;AAAA,aAAUA,IAAI,CAACb,GAAL,KAAaA,GAAvB;AAAA,KAAhB,CAAf;;AAEA,QAAIW,MAAJ,EAAY;AACXL,MAAAA,MAAM,CAACG,QAAP,GAAkBL,UAAU,CAACU,OAAX,CAAmBH,MAAnB,CAAlB;AACAL,MAAAA,MAAM,CAACC,OAAP,GAAiBI,MAAM,CAACJ,OAAxB;AACA,KAHD,MAGO;AACND,MAAAA,MAAM,CAACC,OAAP,GAAiB,KAAjB;AACA;AACD,GAXD,MAWO,IAAIF,UAAU,IAAI,CAACH,KAAK,CAACa,OAAzB,EAAkC;AACxC;AACA;AACA;AACA,QAAMC,SAAS,GAAGX,UAAU,CAACO,IAAX,CAAgB,UAACI,SAAD;AAAA,aAAeA,SAAS,CAAChB,GAAV,KAAkBA,GAAjC;AAAA,KAAhB,CAAlB;;AAEA,QAAIgB,SAAJ,EAAe;AACdV,MAAAA,MAAM,CAACC,OAAP,GAAiBS,SAAS,CAACT,OAA3B;AACAD,MAAAA,MAAM,CAACG,QAAP,GAAkBO,SAAS,CAACP,QAA5B;AACAH,MAAAA,MAAM,CAACI,WAAP,GAAqBM,SAAS,CAACC,EAA/B;AACA;AACD,GAhCA,CAkCD;AACA;;;AAEA,SAAOX,MAAP;AACA,CAzCD;;AA2CAT,qBAAqB,CAACqB,OAAtB,GAAgC,UAAUhB,KAAV,EAA+B;AAAA,MAAdC,OAAc,uEAAJ,EAAI;;AAC9D,MAAIA,OAAO,CAACgB,IAAZ,EAAkB;AACjB,QAAIjB,KAAK,CAACkB,cAAV,EAA0B;AACzB,aAAOjB,OAAO,CAACgB,IAAR,CAAajB,KAAK,CAACkB,cAAnB,KAAsC,EAA7C;AACA,KAFD,MAEO,IAAIlB,KAAK,CAACmB,IAAV,EAAgB;AACtB,aAAOlB,OAAO,CAACgB,IAAR,CAAa,EAAb,CAAP;AACA;;AAED,WAAO,EAAP;AACA;;AAED,SAAOjB,KAAK,CAACiB,IAAN,IAAc,EAArB;AACA,CAZD;;AAcAtB,qBAAqB,CAACyB,UAAtB,GAAmC,IAAnC","sourcesContent":["import { BaseModel } from \"../models/base.js\";\n\n/**\n * @constructor\n * @alias presentation.BasePresentationModel\n * @extends presentation.BaseModel\n */\nexport const BasePresentationModel = BaseModel.extend(\n\t/** @lends presentation.BasePresentationModel# */ {\n\t\turl() {\n\t\t\treturn null;\n\t\t},\n\t}\n);\n\n/**\n * Standard function for retrieving the visibility and sequence of a model\n * from a choicelist or section & slide selections. If a choicelist is\n * provided we prefer the choicelist, otherwise we use selections.\n * Adjuncts are included in choicelists but not in selections so we use the\n * model's state to determine sequence & vis when selections are used.\n */\n\nBasePresentationModel.getVisibilityAndSequence = function (\n\tmodel,\n\toptions = {}\n) {\n\tconst { choicelist = null, selections = null } = options;\n\tconst url = model.url();\n\n\tconst config = {\n\t\tvisible: model.visible || model.enabled || false,\n\t\tsequence: model.sequence,\n\t\tselectionID: null,\n\t};\n\n\tif (choicelist) {\n\t\t// All items should have a choicelist entry - if it's not in\n\t\t// the choicelist, it's not in the preso\n\t\tconst choice = choicelist.find((item) => item.url === url);\n\n\t\tif (choice) {\n\t\t\tconfig.sequence = choicelist.indexOf(choice);\n\t\t\tconfig.visible = choice.visible;\n\t\t} else {\n\t\t\tconfig.visible = false;\n\t\t}\n\t} else if (selections && !model.adjunct) {\n\t\t// Non-adjunct subslides and adjunct sections/slides/subslides\n\t\t// have no selections - they fall through here using their\n\t\t// model's values\n\t\tconst selection = selections.find((selection) => selection.url === url);\n\n\t\tif (selection) {\n\t\t\tconfig.visible = selection.visible;\n\t\t\tconfig.sequence = selection.sequence;\n\t\t\tconfig.selectionID = selection.id;\n\t\t}\n\t}\n\n\t// If neither a choicelist nor selections are available, the\n\t// values on the model will be used.\n\n\treturn config;\n};\n\nBasePresentationModel.getTags = function (model, options = {}) {\n\tif (options.tags) {\n\t\tif (model.namespaced_key) {\n\t\t\treturn options.tags[model.namespaced_key] || [];\n\t\t} else if (model.deck) {\n\t\t\treturn options.tags[\"\"];\n\t\t}\n\n\t\treturn [];\n\t}\n\n\treturn model.tags || [];\n};\n\nBasePresentationModel.canBeEmpty = true;\n"],"file":"base-presentation-model.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/presentation/base-presentation-model.js"],"names":["BasePresentationModel","BaseModel","extend","url","getThumbnail","model","screenshots","overrideScreenshot","filter","screen","subject","length","Error","image_256","filterScreenshotsByTeam","_screenshots","_team","DeckVersionScreenshotCollection","team","TeamModel","globalScreenshots","map","toJSON","result","teamScreenshots","teamScreen","existingGlobalIndex","_","findIndex","push","ordered","orderBy","getVisibilityAndSequence","options","choicelist","selections","config","visible","enabled","sequence","selectionID","choice","find","item","indexOf","adjunct","selection","id","getAppointmentTags","tags","tagItem","tag","content_url","getDeckTags","namespaced_key","isAutoAdjunct","keys","Object","key","includes","splitKey","split","deck","getTags","appointmentTags","deckTags","canBeEmpty"],"mappings":"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","sourcesContent":["import { BaseModel } from \"../models/base.js\";\nimport { DeckVersionScreenshotCollection } from \"../collections/deck-version-screenshots.js\";\nimport { TeamModel } from \"../models/team.js\";\nimport _ from \"lodash\";\n\n/**\n * @constructor\n * @alias presentation.BasePresentationModel\n * @extends presentation.BaseModel\n */\nexport const BasePresentationModel = BaseModel.extend(\n\t/** @lends presentation.BasePresentationModel# */ {\n\t\turl() {\n\t\t\treturn null;\n\t\t},\n\t}\n);\n\n/**\n * Logic to pick a thumbnail based on either the model itself or from\n * and overriding screenshot if one exists.\n */\nBasePresentationModel.getThumbnail = function (model, screenshots) {\n\tconst overrideScreenshot =\n\t\tscreenshots?.filter((screen) => {\n\t\t\treturn screen.subject === model.url();\n\t\t}) ?? [];\n\n\tif (overrideScreenshot.length) {\n\t\tif (overrideScreenshot.length > 1) {\n\t\t\tthrow new Error(`\n\t\t\t\tFound multiple screenshots that could match this subject. If there is a team\n\t\t\t\tand a global, be sure to remove the screenshot that you don't need.\n\t\t\t`);\n\t\t}\n\n\t\treturn overrideScreenshot[0].image_256;\n\t}\n\n\treturn model.image_256;\n};\n\n/**\n * Takes a list of screenshots and filters it to only be a list used by a single team\n * (or company wide).\n *\n * The logic should be like this:\n *\n *\t* If the team is null, we just return all global screenshots (team = null)\n *\t* If we select a team, we take those global screenshots and replace any that have a\n *\t\tteam specific version of that screenshot. If none is found, the team will want to\n *\t\tsee the same global version. Obviously only one team's screenshots should be available.\n */\nBasePresentationModel.filterScreenshotsByTeam = function (\n\t_screenshots,\n\t_team = null\n) {\n\tconst screenshots = new DeckVersionScreenshotCollection(_screenshots);\n\tconst team = _team ? new TeamModel(_team) : null;\n\n\tconst globalScreenshots = screenshots\n\t\t.filter((screen) => screen.team === null)\n\t\t.map((screen) => screen.toJSON());\n\n\tconst result = globalScreenshots;\n\n\tif (team) {\n\t\tconst teamScreenshots = screenshots\n\t\t\t.filter((screen) => screen.team && screen.team.url() === team.url())\n\t\t\t.map((screen) => ({ ...screen.toJSON(), team: screen.team.url() }));\n\n\t\tfor (const teamScreen of teamScreenshots) {\n\t\t\tconst existingGlobalIndex = _.findIndex(result, {\n\t\t\t\tsubject: teamScreen.subject,\n\t\t\t});\n\n\t\t\tif (existingGlobalIndex === -1) {\n\t\t\t\t// If there isn't an existing global version, just add the team\n\t\t\t\t// screenshot to the list\n\t\t\t\tresult.push(teamScreen);\n\t\t\t} else {\n\t\t\t\t// Otherwise we should use the team version instead of the global version\n\t\t\t\tresult[existingGlobalIndex] = teamScreen;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Try to return it in the same order every time\n\tconst ordered = _.orderBy(result, [\"team\", \"subject\"], [\"desc\", \"asc\"]);\n\treturn new DeckVersionScreenshotCollection(ordered);\n};\n\n/**\n * Standard function for retrieving the visibility and sequence of a model\n * from a choicelist or section & slide selections. If a choicelist is\n * provided we prefer the choicelist, otherwise we use selections.\n * Adjuncts are included in choicelists but not in selections so we use the\n * model's state to determine sequence & vis when selections are used.\n */\nBasePresentationModel.getVisibilityAndSequence = function (\n\tmodel,\n\toptions = {}\n) {\n\tconst { choicelist = null, selections = null } = options;\n\tconst url = model.url();\n\n\tconst config = {\n\t\tvisible: model.visible || model.enabled || false,\n\t\tsequence: model.sequence,\n\t\tselectionID: null,\n\t};\n\n\tif (choicelist) {\n\t\t// All items should have a choicelist entry - if it's not in\n\t\t// the choicelist, it's not in the preso\n\t\tconst choice = choicelist.find((item) => item.url === url);\n\n\t\tif (choice) {\n\t\t\tconfig.sequence = choicelist.indexOf(choice);\n\t\t\tconfig.visible = choice.visible;\n\t\t} else {\n\t\t\tconfig.visible = false;\n\t\t}\n\t} else if (selections && !model.adjunct) {\n\t\t// Non-adjunct subslides and adjunct sections/slides/subslides\n\t\t// have no selections - they fall through here using their\n\t\t// model's values\n\t\tconst selection = selections.find((selection) => selection.url === url);\n\n\t\tif (selection) {\n\t\t\tconfig.visible = selection.visible;\n\t\t\tconfig.sequence = selection.sequence;\n\t\t\tconfig.selectionID = selection.id;\n\t\t}\n\t}\n\n\t// If neither a choicelist nor selections are available, the\n\t// values on the model will be used.\n\n\treturn config;\n};\n\nconst getAppointmentTags = function (model, tags) {\n\tconst url = model.adjunct?.url() || model.url();\n\tconst tagItem = tags.find((tag) => tag.content_url === url);\n\n\tif (tagItem) {\n\t\treturn tagItem.tags || [];\n\t}\n\n\t// Subslide tags currently aren't included in the\n\t// appointmentTags data.\n\treturn model.tags || [];\n};\n\nconst getDeckTags = function (model, tags) {\n\t// All non-adjunct sections, slides and subslides have namespaced_key\n\tif (model.namespaced_key) {\n\t\treturn tags[model.namespaced_key] || model.tags || [];\n\t} else if (model.adjunct || model.isAutoAdjunct) {\n\t\t// Autoadjunct keys are unique and move around so we search for them\n\t\t// and ignore the rest of the namespaced key\n\t\tconst keys = Object.keys(tags).filter((key) => {\n\t\t\tif (key.includes(\"/\")) {\n\t\t\t\tconst splitKey = key.split(\"/\");\n\n\t\t\t\treturn splitKey[splitKey.length - 1] === model.key;\n\t\t\t}\n\t\t\treturn key === model.key;\n\t\t});\n\t\treturn keys.length ? tags[keys[0]] : [];\n\t} else if (model.deck) {\n\t\t// The deck's namespaced key is always \"\" - this is because the\n\t\t// namespaced key format is section-key/slide-key, but the\n\t\t// deck sits above sections.\n\t\treturn tags[\"\"] || model.tags || [];\n\t}\n\n\treturn model.tags || [];\n};\n\n// Retrieve the tags for the model.\n// If appointmentTags is passed through in the options, we call the\n// getAppointmentTags function above to retrieve the appointment tags\n// for the model.\n// if there are no appointmentTags but deckTags are passed\n// through then we call the getDeckTags function.\n// In the future we will always use one of these two methods and\n// references to model.tags should be removed.\nBasePresentationModel.getTags = function (model, options = {}) {\n\tif (options.appointmentTags) {\n\t\treturn getAppointmentTags(model, options.appointmentTags);\n\t}\n\n\tif (options.deckTags) {\n\t\treturn getDeckTags(model, options.deckTags);\n\t}\n\n\treturn model.tags || [];\n};\n\nBasePresentationModel.canBeEmpty = true;\n"],"file":"base-presentation-model.js"}
|
|
@@ -6,6 +6,8 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
|
6
6
|
|
|
7
7
|
var _basePresentationModel = require("./base-presentation-model.js");
|
|
8
8
|
|
|
9
|
+
var _deckVersionScreenshots = require("../collections/deck-version-screenshots.js");
|
|
10
|
+
|
|
9
11
|
describe("#getVisibilityAndSequence", function () {
|
|
10
12
|
it("should return model defaults when no options", function () {
|
|
11
13
|
var config = _basePresentationModel.BasePresentationModel.getVisibilityAndSequence({
|
|
@@ -122,13 +124,13 @@ describe("#getVisibilityAndSequence", function () {
|
|
|
122
124
|
}); // adjuncts!!
|
|
123
125
|
});
|
|
124
126
|
describe("#getTags", function () {
|
|
125
|
-
it("should return empty array when no options or model
|
|
127
|
+
it("should return empty array when no options or model tags", function () {
|
|
126
128
|
var tags = _basePresentationModel.BasePresentationModel.getTags({});
|
|
127
129
|
|
|
128
130
|
expect((0, _typeof2.default)(tags)).toEqual("object");
|
|
129
131
|
expect(tags.length).toEqual(0);
|
|
130
132
|
});
|
|
131
|
-
it("should return
|
|
133
|
+
it("should return tags when no tags passed in options", function () {
|
|
132
134
|
var model = {
|
|
133
135
|
tags: ["model-tag-1", "model-tag-2"]
|
|
134
136
|
};
|
|
@@ -137,13 +139,13 @@ describe("#getTags", function () {
|
|
|
137
139
|
|
|
138
140
|
expect(tags).toEqual(model.tags);
|
|
139
141
|
});
|
|
140
|
-
it("should return
|
|
142
|
+
it("should return tags for slide when tags passed in options", function () {
|
|
141
143
|
var model = {
|
|
142
144
|
namespaced_key: "slide-key",
|
|
143
145
|
tags: ["model-tag-1", "model-tag-2"]
|
|
144
146
|
};
|
|
145
147
|
var options = {
|
|
146
|
-
|
|
148
|
+
deckTags: {
|
|
147
149
|
"": ["deck-tags"],
|
|
148
150
|
"slide-key": ["slide-tags"]
|
|
149
151
|
}
|
|
@@ -153,13 +155,13 @@ describe("#getTags", function () {
|
|
|
153
155
|
|
|
154
156
|
expect(tags).toEqual(["slide-tags"]);
|
|
155
157
|
});
|
|
156
|
-
it("should return
|
|
158
|
+
it("should return tags for welcome slide when tags passed in options", function () {
|
|
157
159
|
var model = {
|
|
158
160
|
deck: {},
|
|
159
161
|
tags: ["model-tag-1", "model-tag-2"]
|
|
160
162
|
};
|
|
161
163
|
var options = {
|
|
162
|
-
|
|
164
|
+
deckTags: {
|
|
163
165
|
"": ["deck-tags"],
|
|
164
166
|
"slide-key": ["slide-tags"]
|
|
165
167
|
}
|
|
@@ -169,5 +171,93 @@ describe("#getTags", function () {
|
|
|
169
171
|
|
|
170
172
|
expect(tags).toEqual(["deck-tags"]);
|
|
171
173
|
});
|
|
174
|
+
it("should return tags for an adjunct section when tags passed in options", function () {
|
|
175
|
+
var model = {
|
|
176
|
+
adjunct: true,
|
|
177
|
+
key: "adjunctsection-key",
|
|
178
|
+
tags: ["old-tag-1", "old-tag-2"]
|
|
179
|
+
};
|
|
180
|
+
var options = {
|
|
181
|
+
deckTags: {
|
|
182
|
+
"": ["deck-tags"],
|
|
183
|
+
"adjunctsection-key": ["adjunctsection-tags"]
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
var tags = _basePresentationModel.BasePresentationModel.getTags(model, options);
|
|
188
|
+
|
|
189
|
+
expect(tags).toEqual(["adjunctsection-tags"]);
|
|
190
|
+
});
|
|
191
|
+
it("should return tags for an adjunct slide when tags passed in options", function () {
|
|
192
|
+
var model = {
|
|
193
|
+
adjunct: true,
|
|
194
|
+
key: "adjunctslide-key",
|
|
195
|
+
tags: ["old-tag-1", "old-tag-2"]
|
|
196
|
+
};
|
|
197
|
+
var options = {
|
|
198
|
+
deckTags: {
|
|
199
|
+
"": ["deck-tags"],
|
|
200
|
+
"section-key/adjunctslide-key": ["adjunctslide-tags"]
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
var tags = _basePresentationModel.BasePresentationModel.getTags(model, options);
|
|
205
|
+
|
|
206
|
+
expect(tags).toEqual(["adjunctslide-tags"]);
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
describe("#filterScreenshotsByTeam", function () {
|
|
210
|
+
var screenshots = new _deckVersionScreenshots.DeckVersionScreenshotCollection([{
|
|
211
|
+
subject: "/api/slides/1/",
|
|
212
|
+
image_256: "global-screenshot-1.png",
|
|
213
|
+
team: null
|
|
214
|
+
}, {
|
|
215
|
+
subject: "/api/slides/2/",
|
|
216
|
+
image_256: "global-screenshot-2.png",
|
|
217
|
+
team: null
|
|
218
|
+
}, {
|
|
219
|
+
subject: "/api/slides/1/",
|
|
220
|
+
image_256: "team-1-screenshot.png",
|
|
221
|
+
team: "/api/teams/1/"
|
|
222
|
+
}, {
|
|
223
|
+
subject: "/api/sections/2/",
|
|
224
|
+
image_256: "team-1-screenshot.png",
|
|
225
|
+
team: "/api/teams/1/"
|
|
226
|
+
}, // Just for testing that the team filters don't get cross-contaminated
|
|
227
|
+
{
|
|
228
|
+
subject: "/api/sections/2/",
|
|
229
|
+
image_256: "team-2-screenshot.png",
|
|
230
|
+
team: "/api/teams/2/"
|
|
231
|
+
}]);
|
|
232
|
+
it("should just return global screenshots if team is null", function () {
|
|
233
|
+
var filtered = _basePresentationModel.BasePresentationModel.filterScreenshotsByTeam(screenshots, null).toJSON();
|
|
234
|
+
|
|
235
|
+
expect(filtered).toEqual([{
|
|
236
|
+
subject: "/api/slides/1/",
|
|
237
|
+
image_256: "global-screenshot-1.png",
|
|
238
|
+
team: null
|
|
239
|
+
}, {
|
|
240
|
+
subject: "/api/slides/2/",
|
|
241
|
+
image_256: "global-screenshot-2.png",
|
|
242
|
+
team: null
|
|
243
|
+
}]);
|
|
244
|
+
});
|
|
245
|
+
it("should return globals with team override", function () {
|
|
246
|
+
var filtered = _basePresentationModel.BasePresentationModel.filterScreenshotsByTeam(screenshots, 1).toJSON();
|
|
247
|
+
|
|
248
|
+
expect(filtered).toEqual([{
|
|
249
|
+
image_256: "global-screenshot-2.png",
|
|
250
|
+
subject: "/api/slides/2/",
|
|
251
|
+
team: null
|
|
252
|
+
}, {
|
|
253
|
+
image_256: "team-1-screenshot.png",
|
|
254
|
+
subject: "/api/sections/2/",
|
|
255
|
+
team: "/api/teams/1/"
|
|
256
|
+
}, {
|
|
257
|
+
image_256: "team-1-screenshot.png",
|
|
258
|
+
subject: "/api/slides/1/",
|
|
259
|
+
team: "/api/teams/1/"
|
|
260
|
+
}]);
|
|
261
|
+
});
|
|
172
262
|
});
|
|
173
263
|
//# sourceMappingURL=base-presentation-model.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/presentation/base-presentation-model.spec.js"],"names":["describe","it","config","BasePresentationModel","getVisibilityAndSequence","sequence","visible","url","expected","selectionID","expect","toEqual","choicelist","selections","id","tags","getTags","length","model","namespaced_key","options","deck"],"mappings":"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","sourcesContent":["import { BasePresentationModel } from \"./base-presentation-model.js\";\n\ndescribe(\"#getVisibilityAndSequence\", () => {\n\tit(\"should return model defaults when no options\", () => {\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence({\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\turl: () => \"\",\n\t\t});\n\n\t\tconst expected = {\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return model defaults when no options\", () => {\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence({\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\turl: () => \"\",\n\t\t});\n\n\t\tconst expected = {\n\t\t\tsequence: 99,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return choicelist config\", () => {\n\t\tconst choicelist = [\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t},\n\t\t];\n\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence(\n\t\t\t{\n\t\t\t\tsequence: 99,\n\t\t\t\tvisible: false,\n\t\t\t\turl: () => \"bleh/meh\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tchoicelist,\n\t\t\t}\n\t\t);\n\n\t\tconst expected = {\n\t\t\tsequence: 0,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return selections config\", () => {\n\t\tconst selections = [\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t\tsequence: 27,\n\t\t\t\tid: 58,\n\t\t\t},\n\t\t];\n\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence(\n\t\t\t{\n\t\t\t\tsequence: 99,\n\t\t\t\tvisible: false,\n\t\t\t\turl: () => \"bleh/meh\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tselections,\n\t\t\t}\n\t\t);\n\n\t\tconst expected = {\n\t\t\tsequence: 27,\n\t\t\tvisible: true,\n\t\t\tselectionID: 58,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\tit(\"should return choicelist config if both are provided\", () => {\n\t\tconst choicelist = [\n\t\t\t{\n\t\t\t\turl: \"gah/meh\",\n\t\t\t\tvisible: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t},\n\t\t];\n\n\t\tconst selections = [\n\t\t\t{\n\t\t\t\turl: \"bleh/meh\",\n\t\t\t\tvisible: true,\n\t\t\t\tsequence: 27,\n\t\t\t\tid: 58,\n\t\t\t},\n\t\t];\n\n\t\tconst config = BasePresentationModel.getVisibilityAndSequence(\n\t\t\t{\n\t\t\t\tsequence: 99,\n\t\t\t\tvisible: false,\n\t\t\t\turl: () => \"bleh/meh\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tchoicelist,\n\t\t\t\tselections,\n\t\t\t}\n\t\t);\n\n\t\tconst expected = {\n\t\t\tsequence: 1,\n\t\t\tvisible: true,\n\t\t\tselectionID: null,\n\t\t};\n\n\t\texpect(config).toEqual(expected);\n\t});\n\n\t// adjuncts!!\n});\n\ndescribe(\"#getTags\", () => {\n\tit(\"should return empty array when no options or model.tags\", () => {\n\t\tconst tags = BasePresentationModel.getTags({});\n\n\t\texpect(typeof tags).toEqual(\"object\");\n\t\texpect(tags.length).toEqual(0);\n\t});\n\n\tit(\"should return model.tags when no tags passed in options\", () => {\n\t\tconst model = {\n\t\t\ttags: [\"model-tag-1\", \"model-tag-2\"],\n\t\t};\n\t\tconst tags = BasePresentationModel.getTags(model);\n\n\t\texpect(tags).toEqual(model.tags);\n\t});\n\n\tit(\"should return options.tags for slide when tags passed in options\", () => {\n\t\tconst model = {\n\t\t\tnamespaced_key: \"slide-key\",\n\t\t\ttags: [\"model-tag-1\", \"model-tag-2\"],\n\t\t};\n\n\t\tconst options = {\n\t\t\ttags: {\n\t\t\t\t\"\": [\"deck-tags\"],\n\t\t\t\t\"slide-key\": [\"slide-tags\"],\n\t\t\t},\n\t\t};\n\n\t\tconst tags = BasePresentationModel.getTags(model, options);\n\n\t\texpect(tags).toEqual([\"slide-tags\"]);\n\t});\n\n\tit(\"should return options.tags[''] for welcome slide \", () => {\n\t\tconst model = {\n\t\t\tdeck: {},\n\t\t\ttags: [\"model-tag-1\", \"model-tag-2\"],\n\t\t};\n\n\t\tconst options = {\n\t\t\ttags: {\n\t\t\t\t\"\": [\"deck-tags\"],\n\t\t\t\t\"slide-key\": [\"slide-tags\"],\n\t\t\t},\n\t\t};\n\n\t\tconst tags = BasePresentationModel.getTags(model, options);\n\n\t\texpect(tags).toEqual([\"deck-tags\"]);\n\t});\n});\n"],"file":"base-presentation-model.spec.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/presentation/base-presentation-model.spec.js"],"names":["describe","it","config","BasePresentationModel","getVisibilityAndSequence","sequence","visible","url","expected","selectionID","expect","toEqual","choicelist","selections","id","tags","getTags","length","model","namespaced_key","options","deckTags","deck","adjunct","key","screenshots","DeckVersionScreenshotCollection","subject","image_256","team","filtered","filterScreenshotsByTeam","toJSON"],"mappings":";;;;;;AAAA;;AACA;;AAEAA,QAAQ,CAAC,2BAAD,EAA8B,YAAM;AAC3CC,EAAAA,EAAE,CAAC,8CAAD,EAAiD,YAAM;AACxD,QAAMC,MAAM,GAAGC,6CAAsBC,wBAAtB,CAA+C;AAC7DC,MAAAA,QAAQ,EAAE,EADmD;AAE7DC,MAAAA,OAAO,EAAE,IAFoD;AAG7DC,MAAAA,GAAG,EAAE;AAAA,eAAM,EAAN;AAAA;AAHwD,KAA/C,CAAf;;AAMA,QAAMC,QAAQ,GAAG;AAChBH,MAAAA,QAAQ,EAAE,EADM;AAEhBC,MAAAA,OAAO,EAAE,IAFO;AAGhBG,MAAAA,WAAW,EAAE;AAHG,KAAjB;AAMAC,IAAAA,MAAM,CAACR,MAAD,CAAN,CAAeS,OAAf,CAAuBH,QAAvB;AACA,GAdC,CAAF;AAgBAP,EAAAA,EAAE,CAAC,8CAAD,EAAiD,YAAM;AACxD,QAAMC,MAAM,GAAGC,6CAAsBC,wBAAtB,CAA+C;AAC7DC,MAAAA,QAAQ,EAAE,EADmD;AAE7DC,MAAAA,OAAO,EAAE,IAFoD;AAG7DC,MAAAA,GAAG,EAAE;AAAA,eAAM,EAAN;AAAA;AAHwD,KAA/C,CAAf;;AAMA,QAAMC,QAAQ,GAAG;AAChBH,MAAAA,QAAQ,EAAE,EADM;AAEhBC,MAAAA,OAAO,EAAE,IAFO;AAGhBG,MAAAA,WAAW,EAAE;AAHG,KAAjB;AAMAC,IAAAA,MAAM,CAACR,MAAD,CAAN,CAAeS,OAAf,CAAuBH,QAAvB;AACA,GAdC,CAAF;AAgBAP,EAAAA,EAAE,CAAC,iCAAD,EAAoC,YAAM;AAC3C,QAAMW,UAAU,GAAG,CAClB;AACCL,MAAAA,GAAG,EAAE,UADN;AAECD,MAAAA,OAAO,EAAE;AAFV,KADkB,CAAnB;;AAOA,QAAMJ,MAAM,GAAGC,6CAAsBC,wBAAtB,CACd;AACCC,MAAAA,QAAQ,EAAE,EADX;AAECC,MAAAA,OAAO,EAAE,KAFV;AAGCC,MAAAA,GAAG,EAAE;AAAA,eAAM,UAAN;AAAA;AAHN,KADc,EAMd;AACCK,MAAAA,UAAU,EAAVA;AADD,KANc,CAAf;;AAWA,QAAMJ,QAAQ,GAAG;AAChBH,MAAAA,QAAQ,EAAE,CADM;AAEhBC,MAAAA,OAAO,EAAE,IAFO;AAGhBG,MAAAA,WAAW,EAAE;AAHG,KAAjB;AAMAC,IAAAA,MAAM,CAACR,MAAD,CAAN,CAAeS,OAAf,CAAuBH,QAAvB;AACA,GA1BC,CAAF;AA4BAP,EAAAA,EAAE,CAAC,iCAAD,EAAoC,YAAM;AAC3C,QAAMY,UAAU,GAAG,CAClB;AACCN,MAAAA,GAAG,EAAE,UADN;AAECD,MAAAA,OAAO,EAAE,IAFV;AAGCD,MAAAA,QAAQ,EAAE,EAHX;AAICS,MAAAA,EAAE,EAAE;AAJL,KADkB,CAAnB;;AASA,QAAMZ,MAAM,GAAGC,6CAAsBC,wBAAtB,CACd;AACCC,MAAAA,QAAQ,EAAE,EADX;AAECC,MAAAA,OAAO,EAAE,KAFV;AAGCC,MAAAA,GAAG,EAAE;AAAA,eAAM,UAAN;AAAA;AAHN,KADc,EAMd;AACCM,MAAAA,UAAU,EAAVA;AADD,KANc,CAAf;;AAWA,QAAML,QAAQ,GAAG;AAChBH,MAAAA,QAAQ,EAAE,EADM;AAEhBC,MAAAA,OAAO,EAAE,IAFO;AAGhBG,MAAAA,WAAW,EAAE;AAHG,KAAjB;AAMAC,IAAAA,MAAM,CAACR,MAAD,CAAN,CAAeS,OAAf,CAAuBH,QAAvB;AACA,GA5BC,CAAF;AA8BAP,EAAAA,EAAE,CAAC,sDAAD,EAAyD,YAAM;AAChE,QAAMW,UAAU,GAAG,CAClB;AACCL,MAAAA,GAAG,EAAE,SADN;AAECD,MAAAA,OAAO,EAAE;AAFV,KADkB,EAKlB;AACCC,MAAAA,GAAG,EAAE,UADN;AAECD,MAAAA,OAAO,EAAE;AAFV,KALkB,CAAnB;AAWA,QAAMO,UAAU,GAAG,CAClB;AACCN,MAAAA,GAAG,EAAE,UADN;AAECD,MAAAA,OAAO,EAAE,IAFV;AAGCD,MAAAA,QAAQ,EAAE,EAHX;AAICS,MAAAA,EAAE,EAAE;AAJL,KADkB,CAAnB;;AASA,QAAMZ,MAAM,GAAGC,6CAAsBC,wBAAtB,CACd;AACCC,MAAAA,QAAQ,EAAE,EADX;AAECC,MAAAA,OAAO,EAAE,KAFV;AAGCC,MAAAA,GAAG,EAAE;AAAA,eAAM,UAAN;AAAA;AAHN,KADc,EAMd;AACCK,MAAAA,UAAU,EAAVA,UADD;AAECC,MAAAA,UAAU,EAAVA;AAFD,KANc,CAAf;;AAYA,QAAML,QAAQ,GAAG;AAChBH,MAAAA,QAAQ,EAAE,CADM;AAEhBC,MAAAA,OAAO,EAAE,IAFO;AAGhBG,MAAAA,WAAW,EAAE;AAHG,KAAjB;AAMAC,IAAAA,MAAM,CAACR,MAAD,CAAN,CAAeS,OAAf,CAAuBH,QAAvB;AACA,GAxCC,CAAF,CA3F2C,CAqI3C;AACA,CAtIO,CAAR;AAwIAR,QAAQ,CAAC,UAAD,EAAa,YAAM;AAC1BC,EAAAA,EAAE,CAAC,yDAAD,EAA4D,YAAM;AACnE,QAAMc,IAAI,GAAGZ,6CAAsBa,OAAtB,CAA8B,EAA9B,CAAb;;AAEAN,IAAAA,MAAM,uBAAQK,IAAR,EAAN,CAAoBJ,OAApB,CAA4B,QAA5B;AACAD,IAAAA,MAAM,CAACK,IAAI,CAACE,MAAN,CAAN,CAAoBN,OAApB,CAA4B,CAA5B;AACA,GALC,CAAF;AAOAV,EAAAA,EAAE,CAAC,mDAAD,EAAsD,YAAM;AAC7D,QAAMiB,KAAK,GAAG;AACbH,MAAAA,IAAI,EAAE,CAAC,aAAD,EAAgB,aAAhB;AADO,KAAd;;AAGA,QAAMA,IAAI,GAAGZ,6CAAsBa,OAAtB,CAA8BE,KAA9B,CAAb;;AAEAR,IAAAA,MAAM,CAACK,IAAD,CAAN,CAAaJ,OAAb,CAAqBO,KAAK,CAACH,IAA3B;AACA,GAPC,CAAF;AASAd,EAAAA,EAAE,CAAC,0DAAD,EAA6D,YAAM;AACpE,QAAMiB,KAAK,GAAG;AACbC,MAAAA,cAAc,EAAE,WADH;AAEbJ,MAAAA,IAAI,EAAE,CAAC,aAAD,EAAgB,aAAhB;AAFO,KAAd;AAKA,QAAMK,OAAO,GAAG;AACfC,MAAAA,QAAQ,EAAE;AACT,YAAI,CAAC,WAAD,CADK;AAET,qBAAa,CAAC,YAAD;AAFJ;AADK,KAAhB;;AAOA,QAAMN,IAAI,GAAGZ,6CAAsBa,OAAtB,CAA8BE,KAA9B,EAAqCE,OAArC,CAAb;;AAEAV,IAAAA,MAAM,CAACK,IAAD,CAAN,CAAaJ,OAAb,CAAqB,CAAC,YAAD,CAArB;AACA,GAhBC,CAAF;AAkBAV,EAAAA,EAAE,CAAC,kEAAD,EAAqE,YAAM;AAC5E,QAAMiB,KAAK,GAAG;AACbI,MAAAA,IAAI,EAAE,EADO;AAEbP,MAAAA,IAAI,EAAE,CAAC,aAAD,EAAgB,aAAhB;AAFO,KAAd;AAKA,QAAMK,OAAO,GAAG;AACfC,MAAAA,QAAQ,EAAE;AACT,YAAI,CAAC,WAAD,CADK;AAET,qBAAa,CAAC,YAAD;AAFJ;AADK,KAAhB;;AAOA,QAAMN,IAAI,GAAGZ,6CAAsBa,OAAtB,CAA8BE,KAA9B,EAAqCE,OAArC,CAAb;;AAEAV,IAAAA,MAAM,CAACK,IAAD,CAAN,CAAaJ,OAAb,CAAqB,CAAC,WAAD,CAArB;AACA,GAhBC,CAAF;AAkBAV,EAAAA,EAAE,CAAC,uEAAD,EAA0E,YAAM;AACjF,QAAMiB,KAAK,GAAG;AACbK,MAAAA,OAAO,EAAE,IADI;AAEbC,MAAAA,GAAG,EAAE,oBAFQ;AAGbT,MAAAA,IAAI,EAAE,CAAC,WAAD,EAAc,WAAd;AAHO,KAAd;AAMA,QAAMK,OAAO,GAAG;AACfC,MAAAA,QAAQ,EAAE;AACT,YAAI,CAAC,WAAD,CADK;AAET,8BAAsB,CAAC,qBAAD;AAFb;AADK,KAAhB;;AAOA,QAAMN,IAAI,GAAGZ,6CAAsBa,OAAtB,CAA8BE,KAA9B,EAAqCE,OAArC,CAAb;;AAEAV,IAAAA,MAAM,CAACK,IAAD,CAAN,CAAaJ,OAAb,CAAqB,CAAC,qBAAD,CAArB;AACA,GAjBC,CAAF;AAmBAV,EAAAA,EAAE,CAAC,qEAAD,EAAwE,YAAM;AAC/E,QAAMiB,KAAK,GAAG;AACbK,MAAAA,OAAO,EAAE,IADI;AAEbC,MAAAA,GAAG,EAAE,kBAFQ;AAGbT,MAAAA,IAAI,EAAE,CAAC,WAAD,EAAc,WAAd;AAHO,KAAd;AAMA,QAAMK,OAAO,GAAG;AACfC,MAAAA,QAAQ,EAAE;AACT,YAAI,CAAC,WAAD,CADK;AAET,wCAAgC,CAAC,mBAAD;AAFvB;AADK,KAAhB;;AAOA,QAAMN,IAAI,GAAGZ,6CAAsBa,OAAtB,CAA8BE,KAA9B,EAAqCE,OAArC,CAAb;;AAEAV,IAAAA,MAAM,CAACK,IAAD,CAAN,CAAaJ,OAAb,CAAqB,CAAC,mBAAD,CAArB;AACA,GAjBC,CAAF;AAkBA,CA1FO,CAAR;AA4FAX,QAAQ,CAAC,0BAAD,EAA6B,YAAM;AAC1C,MAAMyB,WAAW,GAAG,IAAIC,uDAAJ,CAAoC,CACvD;AACCC,IAAAA,OAAO,EAAE,gBADV;AAECC,IAAAA,SAAS,EAAE,yBAFZ;AAGCC,IAAAA,IAAI,EAAE;AAHP,GADuD,EAMvD;AACCF,IAAAA,OAAO,EAAE,gBADV;AAECC,IAAAA,SAAS,EAAE,yBAFZ;AAGCC,IAAAA,IAAI,EAAE;AAHP,GANuD,EAWvD;AACCF,IAAAA,OAAO,EAAE,gBADV;AAECC,IAAAA,SAAS,EAAE,uBAFZ;AAGCC,IAAAA,IAAI,EAAE;AAHP,GAXuD,EAgBvD;AACCF,IAAAA,OAAO,EAAE,kBADV;AAECC,IAAAA,SAAS,EAAE,uBAFZ;AAGCC,IAAAA,IAAI,EAAE;AAHP,GAhBuD,EAqBvD;AACA;AACCF,IAAAA,OAAO,EAAE,kBADV;AAECC,IAAAA,SAAS,EAAE,uBAFZ;AAGCC,IAAAA,IAAI,EAAE;AAHP,GAtBuD,CAApC,CAApB;AA6BA5B,EAAAA,EAAE,CAAC,uDAAD,EAA0D,YAAM;AACjE,QAAM6B,QAAQ,GAAG3B,6CAAsB4B,uBAAtB,CAChBN,WADgB,EAEhB,IAFgB,EAGfO,MAHe,EAAjB;;AAKAtB,IAAAA,MAAM,CAACoB,QAAD,CAAN,CAAiBnB,OAAjB,CAAyB,CACxB;AACCgB,MAAAA,OAAO,EAAE,gBADV;AAECC,MAAAA,SAAS,EAAE,yBAFZ;AAGCC,MAAAA,IAAI,EAAE;AAHP,KADwB,EAMxB;AACCF,MAAAA,OAAO,EAAE,gBADV;AAECC,MAAAA,SAAS,EAAE,yBAFZ;AAGCC,MAAAA,IAAI,EAAE;AAHP,KANwB,CAAzB;AAYA,GAlBC,CAAF;AAoBA5B,EAAAA,EAAE,CAAC,0CAAD,EAA6C,YAAM;AACpD,QAAM6B,QAAQ,GAAG3B,6CAAsB4B,uBAAtB,CAChBN,WADgB,EAEhB,CAFgB,EAGfO,MAHe,EAAjB;;AAKAtB,IAAAA,MAAM,CAACoB,QAAD,CAAN,CAAiBnB,OAAjB,CAAyB,CACxB;AACCiB,MAAAA,SAAS,EAAE,yBADZ;AAECD,MAAAA,OAAO,EAAE,gBAFV;AAGCE,MAAAA,IAAI,EAAE;AAHP,KADwB,EAMxB;AACCD,MAAAA,SAAS,EAAE,uBADZ;AAECD,MAAAA,OAAO,EAAE,kBAFV;AAGCE,MAAAA,IAAI,EAAE;AAHP,KANwB,EAWxB;AACCD,MAAAA,SAAS,EAAE,uBADZ;AAECD,MAAAA,OAAO,EAAE,gBAFV;AAGCE,MAAAA,IAAI,EAAE;AAHP,KAXwB,CAAzB;AAiBA,GAvBC,CAAF;AAwBA,CA1EO,CAAR","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"}
|
|
@@ -39,9 +39,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
39
39
|
|
|
40
40
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
41
41
|
|
|
42
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
42
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
43
43
|
|
|
44
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
44
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* @constructor
|
|
@@ -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);
|
|
@@ -341,7 +366,9 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
|
|
|
341
366
|
thumbnail: null,
|
|
342
367
|
deckID: 1,
|
|
343
368
|
title: "Local",
|
|
344
|
-
version: 1
|
|
369
|
+
version: 1,
|
|
370
|
+
tags: manifestJSON.tags[""] || [],
|
|
371
|
+
cmsvalkey_set: []
|
|
345
372
|
});
|
|
346
373
|
|
|
347
374
|
var usesImpostorSections = _lodash.default.some(manifestJSON.tags, function (tags) {
|
|
@@ -362,7 +389,8 @@ PresentationDeck.createFromManifestJSON = function (manifestJSON) {
|
|
|
362
389
|
html: _url.default.resolve(manifestJSON.getAssetPath(key), "index.html"),
|
|
363
390
|
css: _url.default.resolve(manifestJSON.getAssetPath(key), "slide.css"),
|
|
364
391
|
title: manifestJSON.titles[key],
|
|
365
|
-
tags: manifestJSON.tags[key] || []
|
|
392
|
+
tags: manifestJSON.tags[key] || [],
|
|
393
|
+
cmsvalkey_set: []
|
|
366
394
|
};
|
|
367
395
|
});
|
|
368
396
|
items = _lodash.default.sortBy(items, "sequence");
|