@livepreso/api 6.57.0 → 6.57.1
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/.rush/temp/chunked-rush-logs/api.build.chunks.jsonl +5 -15
- package/.rush/temp/operation/build/all.log +5 -15
- package/.rush/temp/operation/build/error.log +3 -13
- package/.rush/temp/operation/build/log-chunks.jsonl +5 -15
- package/.rush/temp/operation/build/state.json +1 -1
- package/.rush/temp/shrinkwrap-deps.json +11 -11
- package/CHANGELOG.json +23 -0
- package/CHANGELOG.md +10 -1
- package/cjs/collections/adjunct-sub-slides.js +13 -1
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/fixtures.js +13 -2
- package/cjs/fixtures.js.map +1 -1
- package/cjs/models/base.js +12 -3
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/deck-version.js +2 -0
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/dispatch.js +1 -1
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/room.js +4 -0
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/user.js +1 -1
- package/cjs/models/user.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +6 -6
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +82 -27
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-section.js +42 -47
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +35 -39
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/utils.js +9 -6
- package/cjs/utils.js.map +1 -1
- package/package.json +3 -3
- package/rush-logs/api.build.error.log +3 -13
- package/rush-logs/api.build.log +5 -15
- package/src/collections/adjunct-sub-slides.js +13 -0
- package/src/fixtures.js +16 -2
- package/src/models/base.js +16 -3
- package/src/models/deck-version.js +2 -0
- package/src/models/dispatch.js +1 -1
- package/src/models/room.js +5 -0
- package/src/models/user.js +4 -4
- package/src/presentation/base-presentation-model.js +14 -6
- package/src/presentation/presentation-deck.js +63 -24
- package/src/presentation/presentation-section.js +31 -50
- package/src/presentation/presentation-slide.js +36 -43
- package/src/utils.js +9 -6
- package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +0 -10
- package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +0 -10
- package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +0 -10
- package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +0 -10
- package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +0 -10
- package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +0 -10
- package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +0 -10
- package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +0 -10
- package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +0 -10
- package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +0 -10
- package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +0 -10
- package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +0 -10
- package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +0 -10
- package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +0 -10
- package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +0 -10
- package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +0 -10
- package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +0 -10
- package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +0 -10
- package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +0 -10
- package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +0 -10
- package/.rush/temp/build-cache-tar.log +0 -7
- package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +0 -10
- package/.rush/temp/chunked-rush-logs/api.test.chunks.jsonl +0 -1
- package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +0 -10
- package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +0 -10
- package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +0 -10
- package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +0 -10
- package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +0 -10
- package/.rush/temp/operation/test/all.log +0 -21
- package/.rush/temp/operation/test/log-chunks.jsonl +0 -21
- package/.rush/temp/operation/test/state.json +0 -3
- package/.rush/temp/package-deps_build.json +0 -185
- package/api.build.log +0 -9
- package/api.test.cache.log +0 -1
- package/api.test.log +0 -19
- package/rush-logs/api.test.cache.log +0 -1
- package/rush-logs/api.test.log +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation-slide.js","names":["require","collections","_interopRequireWildcard","_models","_basePresentationModel","_presentationSubslide","_lodash","_interopRequireDefault","_index","_stateRegister","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","PresentationSlide","exports","BasePresentationModel","extend","props","id","adjunctID","autoAdjunctID","type","templateID","createdByAutoAdjunct","createdByTemplate","namespacedKey","html","css","index","key","sequence","custom","temporary","visible","title","section","sectionKey","image","_orig_image","thumbnail","selectionID","editable","titleEditable","notesEditable","tagsEditable","tags","cmsvalkey_set","isWelcome","isSlide","isSection","children","adjunct","template","subslides","url","_url","_","isNumber","AdjunctSlideModel","SlideModel","toString","concat","createFromSlide","slideModel","options","undefined","defaults","adjunctSubSlides","AdjunctSubSlideCollection","screenshots","DeckVersionScreenshotCollection","rootAssetPath","selections","choicelist","getUniqueAdjunctID","parseInt","uniqueId","screenshotsToMap","assetRoot","getAssetRoot","index_asset","baseRoot","deckversion","slidePath","slice","config","getVisibilityAndSequence","getTags","slide","getThumbnail","indexOf","namespaced_key","add","subslide_set","map","model","PresentationSubSlide","createFromSubSlide","adjunctSubslides","maxID","max","pluck","createFromAdjunctSubSlide","createFromAdjunctSlide","adjunctSlideModel","_adjunctSlideModel$cr","_adjunctSlideModel$te","_adjunctSlideModel$te2","keyID","creator_autoadjunct","image_256","created_by_autoadjunct","Boolean","Error","origPath","orig_path","image_original","createFromManifestJSON","manifestJSON","project","sectionID","_project$sections","_project$sections$fin","_projectSection$slide","_projectSection$slide2","_projectSlide$editabl","_key$split","split","_key$split2","_slicedToArray2","slideKey","projectSection","sections","find","s","projectSlide","slides","titles","resolveURL","getAssetPath","ordering","editables","createFromManifestImpostor","_section","_project$sections2","_project$sections2$fi","_projectSection$slide3","_projectSection$slide4","_projectSlide$editabl2","presentationSlide","createFromTemplate","minID","Number","createFromAutoAdjunct","_autoAdjunct$template","opts","requiredKeys","_i","_requiredKeys","allowConvert","deckversionID","impostor","isAutoAdjunct","autoAdjunct","AutoAdjunctModel","autoAdjunctSlide","name","_autoAdjunctSlide$cms","missingKeys","k","startsWith","_toConsumableArray2","register"],"sources":["../../src/presentation/presentation-slide.js"],"sourcesContent":["import \"./presentation-subslides.js\";\n\nimport * as collections from \"../collections.js\";\n\nimport { AdjunctSlideModel, AutoAdjunctModel, SlideModel } from \"../models.js\";\n\nimport { BasePresentationModel } from \"./base-presentation-model.js\";\nimport { PresentationSubSlide } from \"./presentation-subslide.js\";\nimport _ from \"lodash\";\nimport { getAssetRoot } from \"../index.js\";\nimport { register } from \"../state-register.js\";\nimport { resolveURL } from \"../utils.js\";\n\n/**\n * @constructor\n * @alias presentation.PresentationSlide\n * @extends presentation.BasePresentationModel\n */\nexport const PresentationSlide = BasePresentationModel.extend(\n\t/** @lends presentation.PresentationSlide# */ {\n\t\t/**\n\t\t * @property {number} id\n\t\t * @property {number} adjunctID\n\t\t * @property {number} autoAdjunctID\n\t\t * @property {number} templateID\n\t\t * @property {boolean} createdByAutoAdjunct\n\t\t * @property {boolean} createdByTemplate\n\t\t * @property {string} namespacedKey\n\t\t * @property {string} html\n\t\t * @property {string} css\n\t\t * @property {number} index\n\t\t * @property {string} key\n\t\t * @property {number} sequence\n\t\t * @property {boolean} custom\n\t\t * @property {boolean} temporary\n\t\t * @property {boolean} visible\n\t\t * @property {string} title\n\t\t * @property {number} section\n\t\t * @property {string} image\n\t\t * @property {string} _orig_image\n\t\t * @property {string} thumbnail\n\t\t * @property {number} selectionID\n\t\t * @property {bool} editable\n\t\t * @property {bool} titleEditable\n\t\t * @property {bool} notesEditable\n\t\t * @property {bool} tagsEditable\n\t\t * @property {array} tags\n\t\t * @property {string[]} cmsvalkey_set\n\t\t */\n\t\tprops: {\n\t\t\tid: \"number\",\n\t\t\tadjunctID: \"number\",\n\t\t\tautoAdjunctID: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t\ttemplateID: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t\tcreatedByAutoAdjunct: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tcreatedByTemplate: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tnamespacedKey: \"string\",\n\t\t\thtml: \"string\",\n\t\t\tcss: \"string\",\n\t\t\tindex: \"number\",\n\t\t\tkey: \"string\",\n\t\t\tsequence: \"number\",\n\t\t\tcustom: \"boolean\",\n\t\t\ttemporary: \"boolean\",\n\t\t\tvisible: \"boolean\",\n\t\t\ttitle: \"string\",\n\t\t\tsection: \"number\",\n\t\t\tsectionKey: \"string\",\n\t\t\timage: \"string\",\n\t\t\t_orig_image: \"string\",\n\t\t\tthumbnail: \"string\",\n\t\t\tselectionID: \"number\",\n\t\t\teditable: \"boolean\",\n\t\t\ttitleEditable: \"boolean\",\n\t\t\tnotesEditable: \"boolean\",\n\t\t\ttagsEditable: \"boolean\",\n\t\t\ttags: \"array\",\n\t\t\tcmsvalkey_set: \"array\",\n\t\t\tisWelcome: { type: \"boolean\", default: false },\n\t\t\tisSlide: { type: \"boolean\", default: true },\n\t\t\tisSection: { type: \"boolean\", default: false },\n\t\t},\n\n\t\t/**\n\t\t * @property {models.AdjunctModel} adjunct\n\t\t */\n\t\tchildren: {\n\t\t\tadjunct: \"AdjunctModel\",\n\t\t\ttemplate: \"TemplateModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.PresentationSubSlideCollection} subslides\n\t\t */\n\t\tcollections: {\n\t\t\tsubslides: \"PresentationSubSlideCollection\",\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tif (_.isNumber(this.adjunctID)) {\n\t\t\t\t\tthis._url = new AdjunctSlideModel({ id: this.adjunctID }).url();\n\t\t\t\t} else {\n\t\t\t\t\tthis._url = new SlideModel({ id: this.id }).url();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._url;\n\t\t},\n\n\t\ttoString() {\n\t\t\treturn `Slide: ${this.key} (${this.id})`;\n\t\t},\n\t},\n);\n\n/**\n * @function createFromSlide\n * @memberof presentation.PresentationSlide\n * @param {models.SlideModel} slideModel\n * @param {object} [options]\n * @returns {presentation.PresentationSlide}\n */\nPresentationSlide.createFromSlide = function (slideModel, options = {}) {\n\t_.defaults(options, {\n\t\tadjunctSubSlides: new collections.AdjunctSubSlideCollection(),\n\t\tscreenshots: new collections.DeckVersionScreenshotCollection(),\n\t\trootAssetPath: null,\n\t\tselections: null,\n\t\tchoicelist: null,\n\t\tgetUniqueAdjunctID: () => {\n\t\t\treturn parseInt(_.uniqueId(), 10);\n\t\t},\n\t});\n\n\toptions.screenshots = PresentationSlide.screenshotsToMap(options.screenshots);\n\n\tlet html;\n\tlet css;\n\n\tconst assetRoot = getAssetRoot(slideModel.index_asset.url());\n\n\tif (options.rootAssetPath) {\n\t\tconst baseRoot = getAssetRoot(\n\t\t\tslideModel.section.deckversion.index_asset.url(),\n\t\t);\n\t\tconst slidePath = assetRoot.slice(baseRoot.length);\n\t\thtml = `${options.rootAssetPath}${slidePath}index.html`;\n\t\tcss = `${options.rootAssetPath}${slidePath}slide.css`;\n\t} else {\n\t\thtml = `${assetRoot}index.html`;\n\t\tcss = `${assetRoot}slide.css`;\n\t}\n\n\tconst config = PresentationSlide.getVisibilityAndSequence(\n\t\tslideModel,\n\t\toptions,\n\t);\n\n\tconst tags = PresentationSlide.getTags(slideModel, options);\n\n\tconst slide = new PresentationSlide({\n\t\tid: slideModel.id,\n\t\tadjunctID: null,\n\t\thtml,\n\t\tcss,\n\t\tkey: slideModel.key,\n\t\tthumbnail: PresentationSlide.getThumbnail(slideModel, options.screenshots),\n\t\tcustom: false,\n\t\teditable: tags.indexOf(\"editable\") > -1,\n\t\t// By default this is true for a deck slide. These can be changed later in PM depending\n\t\t// on the logged in user and properties of an AutoAdjunct\n\t\ttitleEditable: false,\n\t\tnotesEditable: true,\n\t\ttagsEditable: true,\n\t\ttitle: slideModel.title,\n\t\tsection: slideModel.section.id,\n\t\tsectionKey: slideModel.section.key,\n\t\ttags,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible,\n\t\tselectionID: config.selectionID,\n\t\tcmsvalkey_set: slideModel.cmsvalkey_set,\n\t\tnamespacedKey: slideModel.namespaced_key,\n\t});\n\n\tslide.subslides.add(\n\t\tslideModel.subslide_set.map((model) => {\n\t\t\treturn PresentationSubSlide.createFromSubSlide(model, options);\n\t\t}),\n\t);\n\n\tconst adjunctSubslides = options.adjunctSubSlides.filter((model) => {\n\t\treturn model.slide.id === slideModel.id;\n\t});\n\n\t// If the slide's content is entirely adjunct and does not have a distinct\n\t// first subslide, we need to create one based on the slide.\n\t// This is mostly just a legacy format and is required for screenshots.\n\t// See REA-Developer's Investment Summary for an example.\n\tif (\n\t\tadjunctSubslides.length &&\n\t\t!slide.subslides.length &&\n\t\t!(tags.indexOf(\"subslide_container\") > -1)\n\t) {\n\t\tslide.subslides.add(PresentationSubSlide.createFromSlide(slide));\n\t}\n\n\tlet maxID = 0;\n\tif (slide.subslides.length) {\n\t\tmaxID = _.max(slide.subslides.pluck(\"id\"));\n\t}\n\n\t// Add any adjunct subslides to the list\n\tslide.subslides.add(\n\t\tadjunctSubslides.map((model, index) => {\n\t\t\tconst id = maxID + index + 1;\n\n\t\t\treturn PresentationSubSlide.createFromAdjunctSubSlide(model, slideModel, {\n\t\t\t\t...options,\n\t\t\t\tid,\n\t\t\t});\n\t\t}),\n\t);\n\n\treturn slide;\n};\n\n/**\n * @function createFromAdjunctSlide\n * @memberof presentation.PresentationSlide\n * @param {models.AdjunctSlideModel} adjunctSlideModel\n * @param {models.SectionModel} sectionModel\n * @param {object} [options]\n * @returns {presentation.PresentationSlide}\n */\nPresentationSlide.createFromAdjunctSlide = function (\n\tadjunctSlideModel,\n\tsection = null,\n\toptions = {},\n) {\n\t_.defaults(options, {\n\t\tid: null,\n\t\trootAssetPath: null,\n\t\tselections: null,\n\t\tchoicelist: null,\n\t\tgetUniqueAdjunctID: () => {\n\t\t\treturn parseInt(_.uniqueId(), 10);\n\t\t},\n\t\tscreenshots: new collections.DeckVersionScreenshotCollection(),\n\t});\n\n\toptions.screenshots = PresentationSlide.screenshotsToMap(options.screenshots);\n\n\tconst keyID =\n\t\tadjunctSlideModel.id ||\n\t\t(adjunctSlideModel.creator_autoadjunct\n\t\t\t? adjunctSlideModel.creator_autoadjunct.id\n\t\t\t: null);\n\n\tlet key = null;\n\n\tif (adjunctSlideModel.key) {\n\t\tkey = adjunctSlideModel.key;\n\t} else if (keyID) {\n\t\tkey = `adjunct-${keyID}`;\n\t\tadjunctSlideModel.key = key;\n\t}\n\n\tconst config = PresentationSlide.getVisibilityAndSequence(\n\t\tadjunctSlideModel,\n\t\toptions,\n\t);\n\n\tconst tags = PresentationSlide.getTags(adjunctSlideModel, options);\n\n\tconst autoAdjunctID = adjunctSlideModel.creator_autoadjunct?.id || null;\n\n\tconst slide = new PresentationSlide({\n\t\tid: options.id || options.getUniqueAdjunctID(),\n\t\tadjunct: adjunctSlideModel.adjunct,\n\t\tadjunctID: adjunctSlideModel.id,\n\t\tautoAdjunctID,\n\t\tkey,\n\t\tthumbnail: adjunctSlideModel.image_256,\n\t\tcreatedByAutoAdjunct: adjunctSlideModel.created_by_autoadjunct,\n\t\tcreatedByTemplate: Boolean(adjunctSlideModel.template),\n\t\tcustom: !adjunctSlideModel.created_by_autoadjunct,\n\t\ttemporary: adjunctSlideModel.created_by_autoadjunct,\n\t\ttitle: adjunctSlideModel.title,\n\t\tsection: section ? section.id : null,\n\t\ttags,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible,\n\t\tcmsvalkey_set: adjunctSlideModel.template?.cmsvalkey_set || [],\n\t\ttemplateID: adjunctSlideModel.template?.id || null,\n\t\ttemplate: adjunctSlideModel.template || null,\n\t\tnamespacedKey: adjunctSlideModel.namespaced_key,\n\t});\n\n\tif (adjunctSlideModel.template) {\n\t\tif (!adjunctSlideModel.template.index_asset) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Template missing index_asset. Do you have the whole template available?\",\n\t\t\t);\n\t\t}\n\t\tconst origPath = adjunctSlideModel.template.index_asset.orig_path;\n\t\tlet html;\n\t\tlet css;\n\n\t\tif (options.rootAssetPath) {\n\t\t\thtml = `${options.rootAssetPath}${origPath}/index.html`;\n\t\t\tcss = `${options.rootAssetPath}${origPath}/slide.css`;\n\t\t} else {\n\t\t\tconst assetRoot = getAssetRoot(\n\t\t\t\tadjunctSlideModel.template.index_asset.url(),\n\t\t\t);\n\t\t\thtml = `${assetRoot}index.html`;\n\t\t\tcss = `${assetRoot}slide.css`;\n\t\t}\n\t\tslide.html = html;\n\t\tslide.css = css;\n\n\t\tif (adjunctSlideModel.creator_autoadjunct) {\n\t\t\tslide.thumbnail = PresentationSlide.getThumbnail(\n\t\t\t\tadjunctSlideModel.creator_autoadjunct,\n\t\t\t\toptions.screenshots,\n\t\t\t);\n\t\t}\n\n\t\tif (!slide.thumbnail) {\n\t\t\tslide.thumbnail = adjunctSlideModel.template.image_256;\n\t\t}\n\t} else {\n\t\tslide.image = adjunctSlideModel.image_original;\n\t}\n\n\treturn slide;\n};\n\nPresentationSlide.createFromManifestJSON = function (\n\tmanifestJSON,\n\tproject,\n\tkey,\n\tsectionID,\n\tindex,\n) {\n\tconst [sectionKey, slideKey] = key.split(\"/\");\n\tconst projectSection = project?.sections?.find?.((s) => s.key === sectionKey);\n\tconst projectSlide = projectSection?.slides?.find?.(\n\t\t(s) => s.key === slideKey,\n\t);\n\n\tconst slide = new PresentationSlide({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\ttitle: manifestJSON.titles[key],\n\t\tindex,\n\t\thtml: resolveURL(manifestJSON.getAssetPath(key), \"index.html\"),\n\t\tcss: resolveURL(manifestJSON.getAssetPath(key), \"slide.css\"),\n\t\tkey: slideKey,\n\t\teditable: false,\n\t\ttitleEditable: false,\n\t\tnotesEditable: true,\n\t\ttagsEditable: true,\n\t\tsequence: manifestJSON.ordering[key],\n\t\tthumbnail: null,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tsection: sectionID,\n\t\ttags: manifestJSON.tags[key] || null,\n\t\tcmsvalkey_set: projectSlide?.editables ?? [],\n\t});\n\n\treturn slide;\n};\n\nPresentationSlide.createFromManifestImpostor = function (\n\tslide,\n\t_section,\n\tproject,\n\tindex,\n\tsectionID,\n) {\n\tconst projectSection = project?.sections?.find?.(\n\t\t(s) => s.key === project.key,\n\t);\n\tconst projectSlide = projectSection?.slides?.find?.(\n\t\t(s) => s.key === slide.key,\n\t);\n\n\tconst presentationSlide = new PresentationSlide({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\teditable: slide.tags.indexOf(\"editable\") !== -1,\n\t\ttitleEditable: false,\n\t\tnotesEditable: true,\n\t\ttagsEditable: true,\n\t\tthumbnail: null,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tsection: sectionID,\n\t\tindex,\n\t\t...slide,\n\t\tcmsvalkey_set: projectSlide?.editables ?? [],\n\t});\n\n\treturn presentationSlide;\n};\n\nPresentationSlide.createFromTemplate = function (\n\ttemplate,\n\tindex,\n\tsectionID,\n\tminID = 0,\n) {\n\tconst presentationSlide = new PresentationSlide({\n\t\t...template,\n\t\tid: minID + parseInt(_.uniqueId(), 10),\n\t\teditable: false,\n\t\ttitleEditable: false,\n\t\tnotesEditable: false,\n\t\ttagsEditable: false,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tthumbnail: template.image_256,\n\t\tsection: sectionID,\n\t\t// Makes sure templates are rendered with unique IDs\n\t\tautoAdjunctID: Number(_.uniqueId()),\n\t\tindex,\n\t\tcreatedByTemplate: true,\n\t\tcmsvalkey_set: [],\n\t\tnamespacedKey: template.namespaced_key,\n\t});\n\treturn presentationSlide;\n};\n\nPresentationSlide.createFromAutoAdjunct = function (model, opts = {}) {\n\tconst requiredKeys = [\"index\", \"deckversionID\"];\n\tfor (const key of requiredKeys) {\n\t\tif (typeof opts[key] === \"undefined\") {\n\t\t\tthrow new Error(`Missing required key '${key}'.`);\n\t\t}\n\t}\n\n\tconst options = _.defaults(opts, {\n\t\tallowConvert: true,\n\t\tvisible: true,\n\t\tindex: -1,\n\t\tdeckversionID: -1,\n\t\tsectionKey: \"\",\n\t\tsequence: opts.index,\n\t\timpostor: false,\n\t\tscreenshots: new collections.DeckVersionScreenshotCollection(),\n\t});\n\n\toptions.screenshots = PresentationSlide.screenshotsToMap(options.screenshots);\n\n\tconst tags = PresentationSlide.getTags(\n\t\t{\n\t\t\tisAutoAdjunct: true,\n\t\t\tkey: model.key,\n\t\t\ttags: model.tags,\n\t\t},\n\t\toptions,\n\t);\n\n\tconst autoAdjunct = new AutoAdjunctModel(model);\n\n\tconst autoAdjunctSlide = new PresentationSlide({\n\t\tid: options.id || autoAdjunct.id,\n\t\tadjunctID: autoAdjunct.id,\n\t\tautoAdjunctID: autoAdjunct.id,\n\t\tcreatedByTemplate: autoAdjunct.template !== null,\n\t\ttemplateID: autoAdjunct.template?.id || null,\n\t\ttemplate: autoAdjunct.template || null,\n\t\thtml: \"\",\n\t\tcss: \"\",\n\t\tsequence: options.sequence,\n\t\tindex: options.index,\n\t\tkey: autoAdjunct.key,\n\t\tcreatedByAutoAdjunct: false,\n\t\tthumbnail: PresentationSlide.getThumbnail(autoAdjunct, options.screenshots),\n\t\ttemporary: true,\n\t\ttitle: autoAdjunct.name,\n\t\tvisible: options.visible,\n\t\tallowConvert: options.allowConvert,\n\t\tdeckversion: options.deckversionID,\n\t\timpostor: options.impostor,\n\t\tsectionKey: options.sectionKey,\n\t\ttags,\n\t\tcmsvalkey_set: autoAdjunct.cmsvalkey_set,\n\t\tnamespacedKey: autoAdjunct.namespaced_key,\n\t\teditable: true,\n\t\ttitleEditable: true,\n\t\tnotesEditable: true,\n\t\ttagsEditable: true,\n\t});\n\n\tif (autoAdjunct.template) {\n\t\t// If we've found a new screenshot for it, we don't want to override it here\n\t\tif (!autoAdjunctSlide.thumbnail) {\n\t\t\tautoAdjunctSlide.thumbnail = autoAdjunct.template.image_256;\n\t\t}\n\t\tautoAdjunctSlide.createdByTemplate = true;\n\t\tautoAdjunctSlide.templateID = autoAdjunct.template.id;\n\t\tautoAdjunctSlide.html = autoAdjunct.template.index_asset.url();\n\t\t//\n\t\t// We've had some instances where the caching was returning the wrong data, and the\n\t\t// app was unable to recover when an autoadjunct was missing keys. So, check for missing\n\t\t// keys.\n\t\tconst missingKeys = autoAdjunct.template.cmsvalkey_set\n\t\t\t.filter((t) => {\n\t\t\t\treturn !autoAdjunctSlide.cmsvalkey_set.find((k) => k.startsWith(t));\n\t\t\t})\n\t\t\t.map((t) => {\n\t\t\t\treturn `${t}-autoadjunct-${autoAdjunct.id}`;\n\t\t\t});\n\n\t\tautoAdjunctSlide.cmsvalkey_set.push(...missingKeys);\n\t} else {\n\t\tautoAdjunctSlide.image = autoAdjunct.image_original;\n\t}\n\n\treturn autoAdjunctSlide;\n};\n\nregister(\"PresentationSlide\", PresentationSlide);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"presentation-slide.js","names":["require","collections","_interopRequireWildcard","_models","_basePresentationModel","_presentationSubslide","_lodash","_interopRequireDefault","_index","_stateRegister","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","PresentationSlide","exports","BasePresentationModel","extend","props","id","adjunctID","autoAdjunctID","type","templateID","createdByAutoAdjunct","createdByTemplate","namespacedKey","html","css","index","key","sequence","custom","temporary","visible","title","section","sectionKey","image","_orig_image","thumbnail","selectionID","editable","titleEditable","notesEditable","tagsEditable","tags","cmsvalkey_set","isWelcome","isSlide","isSection","children","adjunct","template","subslides","url","_url","_","isNumber","AdjunctSlideModel","SlideModel","toString","concat","createFromSlide","slideModel","_options$adjunctSubSl","_options$rootAssetPat","_options$selections","_options$choicelist","_options$getUniqueAdj","_options$screenshots","_options$adjunctSubSl2","options","undefined","adjunctSubSlides","AdjunctSubSlideCollection","rootAssetPath","selections","choicelist","getUniqueAdjunctID","parseInt","uniqueId","screenshots","screenshotsToMap","DeckVersionScreenshotCollection","assetRoot","getAssetRoot","index_asset","_options$baseRoot","baseRoot","deckversion","slidePath","slice","config","getVisibilityAndSequence","getTags","slide","getThumbnail","indexOf","namespaced_key","add","subslide_set","map","model","PresentationSubSlide","createFromSubSlide","adjunctSubslides","adjunctSubSlidesBySlide","maxID","Math","max","_toConsumableArray2","s","createFromAdjunctSubSlide","createFromAdjunctSlide","adjunctSlideModel","_options$id","_options$rootAssetPat2","_options$selections2","_options$choicelist2","_options$getUniqueAdj2","_options$screenshots2","_adjunctSlideModel$cr","_adjunctSlideModel$te","_adjunctSlideModel$te2","keyID","creator_autoadjunct","image_256","created_by_autoadjunct","Boolean","Error","origPath","orig_path","image_original","createFromManifestJSON","manifestJSON","project","sectionID","_project$sections","_project$sections$fin","_projectSection$slide","_projectSection$slide2","_projectSlide$editabl","_key$split","split","_key$split2","_slicedToArray2","slideKey","projectSection","sections","find","projectSlide","slides","titles","resolveURL","getAssetPath","ordering","editables","createFromManifestImpostor","_section","_project$sections2","_project$sections2$fi","_projectSection$slide3","_projectSection$slide4","_projectSlide$editabl2","presentationSlide","createFromTemplate","minID","Number","createFromAutoAdjunct","_options$allowConvert","_options$visible","_options$index","_options$deckversionI","_options$sectionKey","_options$sequence","_options$impostor","_options$screenshots3","_autoAdjunct$template","opts","requiredKeys","_i","_requiredKeys","allowConvert","deckversionID","impostor","isAutoAdjunct","autoAdjunct","AutoAdjunctModel","autoAdjunctSlide","name","_autoAdjunctSlide$cms","missingKeys","k","startsWith","register"],"sources":["../../src/presentation/presentation-slide.js"],"sourcesContent":["import \"./presentation-subslides.js\";\n\nimport * as collections from \"../collections.js\";\n\nimport { AdjunctSlideModel, AutoAdjunctModel, SlideModel } from \"../models.js\";\n\nimport { BasePresentationModel } from \"./base-presentation-model.js\";\nimport { PresentationSubSlide } from \"./presentation-subslide.js\";\nimport _ from \"lodash\";\nimport { getAssetRoot } from \"../index.js\";\nimport { register } from \"../state-register.js\";\nimport { resolveURL } from \"../utils.js\";\n\n/**\n * @constructor\n * @alias presentation.PresentationSlide\n * @extends presentation.BasePresentationModel\n */\nexport const PresentationSlide = BasePresentationModel.extend(\n\t/** @lends presentation.PresentationSlide# */ {\n\t\t/**\n\t\t * @property {number} id\n\t\t * @property {number} adjunctID\n\t\t * @property {number} autoAdjunctID\n\t\t * @property {number} templateID\n\t\t * @property {boolean} createdByAutoAdjunct\n\t\t * @property {boolean} createdByTemplate\n\t\t * @property {string} namespacedKey\n\t\t * @property {string} html\n\t\t * @property {string} css\n\t\t * @property {number} index\n\t\t * @property {string} key\n\t\t * @property {number} sequence\n\t\t * @property {boolean} custom\n\t\t * @property {boolean} temporary\n\t\t * @property {boolean} visible\n\t\t * @property {string} title\n\t\t * @property {number} section\n\t\t * @property {string} image\n\t\t * @property {string} _orig_image\n\t\t * @property {string} thumbnail\n\t\t * @property {number} selectionID\n\t\t * @property {bool} editable\n\t\t * @property {bool} titleEditable\n\t\t * @property {bool} notesEditable\n\t\t * @property {bool} tagsEditable\n\t\t * @property {array} tags\n\t\t * @property {string[]} cmsvalkey_set\n\t\t */\n\t\tprops: {\n\t\t\tid: \"number\",\n\t\t\tadjunctID: \"number\",\n\t\t\tautoAdjunctID: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t\ttemplateID: {\n\t\t\t\ttype: \"number\",\n\t\t\t\tdefault: null,\n\t\t\t},\n\t\t\tcreatedByAutoAdjunct: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tcreatedByTemplate: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tnamespacedKey: \"string\",\n\t\t\thtml: \"string\",\n\t\t\tcss: \"string\",\n\t\t\tindex: \"number\",\n\t\t\tkey: \"string\",\n\t\t\tsequence: \"number\",\n\t\t\tcustom: \"boolean\",\n\t\t\ttemporary: \"boolean\",\n\t\t\tvisible: \"boolean\",\n\t\t\ttitle: \"string\",\n\t\t\tsection: \"number\",\n\t\t\tsectionKey: \"string\",\n\t\t\timage: \"string\",\n\t\t\t_orig_image: \"string\",\n\t\t\tthumbnail: \"string\",\n\t\t\tselectionID: \"number\",\n\t\t\teditable: \"boolean\",\n\t\t\ttitleEditable: \"boolean\",\n\t\t\tnotesEditable: \"boolean\",\n\t\t\ttagsEditable: \"boolean\",\n\t\t\ttags: \"array\",\n\t\t\tcmsvalkey_set: \"array\",\n\t\t\tisWelcome: { type: \"boolean\", default: false },\n\t\t\tisSlide: { type: \"boolean\", default: true },\n\t\t\tisSection: { type: \"boolean\", default: false },\n\t\t},\n\n\t\t/**\n\t\t * @property {models.AdjunctModel} adjunct\n\t\t */\n\t\tchildren: {\n\t\t\tadjunct: \"AdjunctModel\",\n\t\t\ttemplate: \"TemplateModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {presentation.PresentationSubSlideCollection} subslides\n\t\t */\n\t\tcollections: {\n\t\t\tsubslides: \"PresentationSubSlideCollection\",\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tif (_.isNumber(this.adjunctID)) {\n\t\t\t\t\tthis._url = new AdjunctSlideModel({ id: this.adjunctID }).url();\n\t\t\t\t} else {\n\t\t\t\t\tthis._url = new SlideModel({ id: this.id }).url();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._url;\n\t\t},\n\n\t\ttoString() {\n\t\t\treturn `Slide: ${this.key} (${this.id})`;\n\t\t},\n\t},\n);\n\n/**\n * @function createFromSlide\n * @memberof presentation.PresentationSlide\n * @param {models.SlideModel} slideModel\n * @param {object} [options]\n * @returns {presentation.PresentationSlide}\n */\nPresentationSlide.createFromSlide = function (slideModel, options = {}) {\n\toptions.adjunctSubSlides ??= new collections.AdjunctSubSlideCollection();\n\toptions.rootAssetPath ??= null;\n\toptions.selections ??= null;\n\toptions.choicelist ??= null;\n\toptions.getUniqueAdjunctID ??= () => parseInt(_.uniqueId(), 10);\n\toptions.screenshots = PresentationSlide.screenshotsToMap(\n\t\toptions.screenshots ?? new collections.DeckVersionScreenshotCollection(),\n\t);\n\n\tlet html;\n\tlet css;\n\n\tconst assetRoot = getAssetRoot(slideModel.index_asset.url());\n\n\tif (options.rootAssetPath) {\n\t\tconst baseRoot =\n\t\t\toptions.baseRoot ??\n\t\t\tgetAssetRoot(slideModel.section.deckversion.index_asset.url());\n\t\tconst slidePath = assetRoot.slice(baseRoot.length);\n\t\thtml = `${options.rootAssetPath}${slidePath}index.html`;\n\t\tcss = `${options.rootAssetPath}${slidePath}slide.css`;\n\t} else {\n\t\thtml = `${assetRoot}index.html`;\n\t\tcss = `${assetRoot}slide.css`;\n\t}\n\n\tconst config = PresentationSlide.getVisibilityAndSequence(\n\t\tslideModel,\n\t\toptions,\n\t);\n\n\tconst tags = PresentationSlide.getTags(slideModel, options);\n\n\tconst slide = new PresentationSlide({\n\t\tid: slideModel.id,\n\t\tadjunctID: null,\n\t\thtml,\n\t\tcss,\n\t\tkey: slideModel.key,\n\t\tthumbnail: PresentationSlide.getThumbnail(slideModel, options.screenshots),\n\t\tcustom: false,\n\t\teditable: tags.indexOf(\"editable\") > -1,\n\t\t// By default this is true for a deck slide. These can be changed later in PM depending\n\t\t// on the logged in user and properties of an AutoAdjunct\n\t\ttitleEditable: false,\n\t\tnotesEditable: true,\n\t\ttagsEditable: true,\n\t\ttitle: slideModel.title,\n\t\tsection: slideModel.section.id,\n\t\tsectionKey: slideModel.section.key,\n\t\ttags,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible,\n\t\tselectionID: config.selectionID,\n\t\tcmsvalkey_set: slideModel.cmsvalkey_set,\n\t\tnamespacedKey: slideModel.namespaced_key,\n\t});\n\n\tslide.subslides.add(\n\t\tslideModel.subslide_set.map((model) => {\n\t\t\treturn PresentationSubSlide.createFromSubSlide(model, options);\n\t\t}),\n\t);\n\n\tconst adjunctSubslides = options.adjunctSubSlidesBySlide\n\t\t? (options.adjunctSubSlidesBySlide.get(slideModel.id) ?? [])\n\t\t: options.adjunctSubSlides.filter(\n\t\t\t\t(model) => model.slide.id === slideModel.id,\n\t\t\t);\n\n\t// If the slide's content is entirely adjunct and does not have a distinct\n\t// first subslide, we need to create one based on the slide.\n\t// This is mostly just a legacy format and is required for screenshots.\n\t// See REA-Developer's Investment Summary for an example.\n\tif (\n\t\tadjunctSubslides.length &&\n\t\t!slide.subslides.length &&\n\t\t!(tags.indexOf(\"subslide_container\") > -1)\n\t) {\n\t\tslide.subslides.add(PresentationSubSlide.createFromSlide(slide));\n\t}\n\n\tlet maxID = 0;\n\tif (slide.subslides.length) {\n\t\tmaxID = Math.max(...slide.subslides.map((s) => s.id));\n\t}\n\n\t// Add any adjunct subslides to the list\n\tslide.subslides.add(\n\t\tadjunctSubslides.map((model, index) => {\n\t\t\tconst id = maxID + index + 1;\n\n\t\t\treturn PresentationSubSlide.createFromAdjunctSubSlide(model, slideModel, {\n\t\t\t\t...options,\n\t\t\t\tid,\n\t\t\t});\n\t\t}),\n\t);\n\n\treturn slide;\n};\n\n/**\n * @function createFromAdjunctSlide\n * @memberof presentation.PresentationSlide\n * @param {models.AdjunctSlideModel} adjunctSlideModel\n * @param {models.SectionModel} sectionModel\n * @param {object} [options]\n * @returns {presentation.PresentationSlide}\n */\nPresentationSlide.createFromAdjunctSlide = function (\n\tadjunctSlideModel,\n\tsection = null,\n\toptions = {},\n) {\n\toptions.id ??= null;\n\toptions.rootAssetPath ??= null;\n\toptions.selections ??= null;\n\toptions.choicelist ??= null;\n\toptions.getUniqueAdjunctID ??= () => parseInt(_.uniqueId(), 10);\n\toptions.screenshots = PresentationSlide.screenshotsToMap(\n\t\toptions.screenshots ?? new collections.DeckVersionScreenshotCollection(),\n\t);\n\n\tconst keyID =\n\t\tadjunctSlideModel.id ||\n\t\t(adjunctSlideModel.creator_autoadjunct\n\t\t\t? adjunctSlideModel.creator_autoadjunct.id\n\t\t\t: null);\n\n\tlet key = null;\n\n\tif (adjunctSlideModel.key) {\n\t\tkey = adjunctSlideModel.key;\n\t} else if (keyID) {\n\t\tkey = `adjunct-${keyID}`;\n\t\tadjunctSlideModel.key = key;\n\t}\n\n\tconst config = PresentationSlide.getVisibilityAndSequence(\n\t\tadjunctSlideModel,\n\t\toptions,\n\t);\n\n\tconst tags = PresentationSlide.getTags(adjunctSlideModel, options);\n\n\tconst autoAdjunctID = adjunctSlideModel.creator_autoadjunct?.id || null;\n\n\tconst slide = new PresentationSlide({\n\t\tid: options.id || options.getUniqueAdjunctID(),\n\t\tadjunct: adjunctSlideModel.adjunct,\n\t\tadjunctID: adjunctSlideModel.id,\n\t\tautoAdjunctID,\n\t\tkey,\n\t\tthumbnail: adjunctSlideModel.image_256,\n\t\tcreatedByAutoAdjunct: adjunctSlideModel.created_by_autoadjunct,\n\t\tcreatedByTemplate: Boolean(adjunctSlideModel.template),\n\t\tcustom: !adjunctSlideModel.created_by_autoadjunct,\n\t\ttemporary: adjunctSlideModel.created_by_autoadjunct,\n\t\ttitle: adjunctSlideModel.title,\n\t\tsection: section ? section.id : null,\n\t\ttags,\n\t\tindex: config.sequence,\n\t\tsequence: config.sequence,\n\t\tvisible: config.visible,\n\t\tcmsvalkey_set: adjunctSlideModel.template?.cmsvalkey_set || [],\n\t\ttemplateID: adjunctSlideModel.template?.id || null,\n\t\ttemplate: adjunctSlideModel.template || null,\n\t\tnamespacedKey: adjunctSlideModel.namespaced_key,\n\t});\n\n\tif (adjunctSlideModel.template) {\n\t\tif (!adjunctSlideModel.template.index_asset) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Template missing index_asset. Do you have the whole template available?\",\n\t\t\t);\n\t\t}\n\t\tconst origPath = adjunctSlideModel.template.index_asset.orig_path;\n\t\tlet html;\n\t\tlet css;\n\n\t\tif (options.rootAssetPath) {\n\t\t\thtml = `${options.rootAssetPath}${origPath}/index.html`;\n\t\t\tcss = `${options.rootAssetPath}${origPath}/slide.css`;\n\t\t} else {\n\t\t\tconst assetRoot = getAssetRoot(\n\t\t\t\tadjunctSlideModel.template.index_asset.url(),\n\t\t\t);\n\t\t\thtml = `${assetRoot}index.html`;\n\t\t\tcss = `${assetRoot}slide.css`;\n\t\t}\n\t\tslide.html = html;\n\t\tslide.css = css;\n\n\t\tif (adjunctSlideModel.creator_autoadjunct) {\n\t\t\tslide.thumbnail = PresentationSlide.getThumbnail(\n\t\t\t\tadjunctSlideModel.creator_autoadjunct,\n\t\t\t\toptions.screenshots,\n\t\t\t);\n\t\t}\n\n\t\tif (!slide.thumbnail) {\n\t\t\tslide.thumbnail = adjunctSlideModel.template.image_256;\n\t\t}\n\t} else {\n\t\tslide.image = adjunctSlideModel.image_original;\n\t}\n\n\treturn slide;\n};\n\nPresentationSlide.createFromManifestJSON = function (\n\tmanifestJSON,\n\tproject,\n\tkey,\n\tsectionID,\n\tindex,\n) {\n\tconst [sectionKey, slideKey] = key.split(\"/\");\n\tconst projectSection = project?.sections?.find?.((s) => s.key === sectionKey);\n\tconst projectSlide = projectSection?.slides?.find?.(\n\t\t(s) => s.key === slideKey,\n\t);\n\n\tconst slide = new PresentationSlide({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\ttitle: manifestJSON.titles[key],\n\t\tindex,\n\t\thtml: resolveURL(manifestJSON.getAssetPath(key), \"index.html\"),\n\t\tcss: resolveURL(manifestJSON.getAssetPath(key), \"slide.css\"),\n\t\tkey: slideKey,\n\t\teditable: false,\n\t\ttitleEditable: false,\n\t\tnotesEditable: true,\n\t\ttagsEditable: true,\n\t\tsequence: manifestJSON.ordering[key],\n\t\tthumbnail: null,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tsection: sectionID,\n\t\ttags: manifestJSON.tags[key] || null,\n\t\tcmsvalkey_set: projectSlide?.editables ?? [],\n\t});\n\n\treturn slide;\n};\n\nPresentationSlide.createFromManifestImpostor = function (\n\tslide,\n\t_section,\n\tproject,\n\tindex,\n\tsectionID,\n) {\n\tconst projectSection = project?.sections?.find?.(\n\t\t(s) => s.key === project.key,\n\t);\n\tconst projectSlide = projectSection?.slides?.find?.(\n\t\t(s) => s.key === slide.key,\n\t);\n\n\tconst presentationSlide = new PresentationSlide({\n\t\tid: parseInt(_.uniqueId(), 10),\n\t\teditable: slide.tags.indexOf(\"editable\") !== -1,\n\t\ttitleEditable: false,\n\t\tnotesEditable: true,\n\t\ttagsEditable: true,\n\t\tthumbnail: null,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tsection: sectionID,\n\t\tindex,\n\t\t...slide,\n\t\tcmsvalkey_set: projectSlide?.editables ?? [],\n\t});\n\n\treturn presentationSlide;\n};\n\nPresentationSlide.createFromTemplate = function (\n\ttemplate,\n\tindex,\n\tsectionID,\n\tminID = 0,\n) {\n\tconst presentationSlide = new PresentationSlide({\n\t\t...template,\n\t\tid: minID + parseInt(_.uniqueId(), 10),\n\t\teditable: false,\n\t\ttitleEditable: false,\n\t\tnotesEditable: false,\n\t\ttagsEditable: false,\n\t\tcustom: false,\n\t\tvisible: true,\n\t\tthumbnail: template.image_256,\n\t\tsection: sectionID,\n\t\t// Makes sure templates are rendered with unique IDs\n\t\tautoAdjunctID: Number(_.uniqueId()),\n\t\tindex,\n\t\tcreatedByTemplate: true,\n\t\tcmsvalkey_set: [],\n\t\tnamespacedKey: template.namespaced_key,\n\t});\n\treturn presentationSlide;\n};\n\nPresentationSlide.createFromAutoAdjunct = function (model, opts = {}) {\n\tconst requiredKeys = [\"index\", \"deckversionID\"];\n\tfor (const key of requiredKeys) {\n\t\tif (typeof opts[key] === \"undefined\") {\n\t\t\tthrow new Error(`Missing required key '${key}'.`);\n\t\t}\n\t}\n\n\tconst options = opts;\n\toptions.allowConvert ??= true;\n\toptions.visible ??= true;\n\toptions.index ??= -1;\n\toptions.deckversionID ??= -1;\n\toptions.sectionKey ??= \"\";\n\toptions.sequence ??= opts.index;\n\toptions.impostor ??= false;\n\toptions.screenshots = PresentationSlide.screenshotsToMap(\n\t\toptions.screenshots ?? new collections.DeckVersionScreenshotCollection(),\n\t);\n\n\tconst tags = PresentationSlide.getTags(\n\t\t{\n\t\t\tisAutoAdjunct: true,\n\t\t\tkey: model.key,\n\t\t\ttags: model.tags,\n\t\t},\n\t\toptions,\n\t);\n\n\tconst autoAdjunct = new AutoAdjunctModel(model);\n\n\tconst autoAdjunctSlide = new PresentationSlide({\n\t\tid: options.id || autoAdjunct.id,\n\t\tadjunctID: autoAdjunct.id,\n\t\tautoAdjunctID: autoAdjunct.id,\n\t\tcreatedByTemplate: autoAdjunct.template !== null,\n\t\ttemplateID: autoAdjunct.template?.id || null,\n\t\ttemplate: autoAdjunct.template || null,\n\t\thtml: \"\",\n\t\tcss: \"\",\n\t\tsequence: options.sequence,\n\t\tindex: options.index,\n\t\tkey: autoAdjunct.key,\n\t\tcreatedByAutoAdjunct: false,\n\t\tthumbnail: PresentationSlide.getThumbnail(autoAdjunct, options.screenshots),\n\t\ttemporary: true,\n\t\ttitle: autoAdjunct.name,\n\t\tvisible: options.visible,\n\t\tallowConvert: options.allowConvert,\n\t\tdeckversion: options.deckversionID,\n\t\timpostor: options.impostor,\n\t\tsectionKey: options.sectionKey,\n\t\ttags,\n\t\tcmsvalkey_set: autoAdjunct.cmsvalkey_set,\n\t\tnamespacedKey: autoAdjunct.namespaced_key,\n\t\teditable: true,\n\t\ttitleEditable: true,\n\t\tnotesEditable: true,\n\t\ttagsEditable: true,\n\t});\n\n\tif (autoAdjunct.template) {\n\t\t// If we've found a new screenshot for it, we don't want to override it here\n\t\tif (!autoAdjunctSlide.thumbnail) {\n\t\t\tautoAdjunctSlide.thumbnail = autoAdjunct.template.image_256;\n\t\t}\n\t\tautoAdjunctSlide.createdByTemplate = true;\n\t\tautoAdjunctSlide.templateID = autoAdjunct.template.id;\n\t\tautoAdjunctSlide.html = autoAdjunct.template.index_asset.url();\n\t\t//\n\t\t// We've had some instances where the caching was returning the wrong data, and the\n\t\t// app was unable to recover when an autoadjunct was missing keys. So, check for missing\n\t\t// keys.\n\t\tconst missingKeys = autoAdjunct.template.cmsvalkey_set\n\t\t\t.filter((t) => {\n\t\t\t\treturn !autoAdjunctSlide.cmsvalkey_set.find((k) => k.startsWith(t));\n\t\t\t})\n\t\t\t.map((t) => {\n\t\t\t\treturn `${t}-autoadjunct-${autoAdjunct.id}`;\n\t\t\t});\n\n\t\tautoAdjunctSlide.cmsvalkey_set.push(...missingKeys);\n\t} else {\n\t\tautoAdjunctSlide.image = autoAdjunct.image_original;\n\t}\n\n\treturn autoAdjunctSlide;\n};\n\nregister(\"PresentationSlide\", PresentationSlide);\n"],"mappings":"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","ignoreList":[]}
|
package/cjs/utils.js
CHANGED
|
@@ -134,15 +134,18 @@ function getMaxID(deckVersionModel) {
|
|
|
134
134
|
// but the sequence is not necessarily 0-based and sequential (e.g. in the
|
|
135
135
|
// case of impostor decks). We fix that here.
|
|
136
136
|
function setSequentialSequences(deck) {
|
|
137
|
+
// Write directly to _values to bypass ampersand-state's setter overhead
|
|
138
|
+
// (type casting + change event firing). These are freshly created presentation
|
|
139
|
+
// models with no external listeners, so skipping the events is safe.
|
|
137
140
|
deck.sections.forEach(function (section, index) {
|
|
138
|
-
section.sequence = index;
|
|
139
|
-
section.index = index;
|
|
141
|
+
section._values.sequence = index;
|
|
142
|
+
section._values.index = index;
|
|
140
143
|
section.slides.forEach(function (slide, index) {
|
|
141
|
-
slide.sequence = index;
|
|
142
|
-
slide.index = index;
|
|
144
|
+
slide._values.sequence = index;
|
|
145
|
+
slide._values.index = index;
|
|
143
146
|
slide.subslides.forEach(function (subslide, index) {
|
|
144
|
-
subslide.sequence = index;
|
|
145
|
-
subslide.index = index;
|
|
147
|
+
subslide._values.sequence = index;
|
|
148
|
+
subslide._values.index = index;
|
|
146
149
|
});
|
|
147
150
|
});
|
|
148
151
|
});
|
package/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_lodash","_interopRequireDefault","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","DATE_FORMAT","exports","DATE_FORMAT_T","getShortURL","url","URL","pathname","resolveURL","base","relative","dummyBase","href","resolved","replace","e2","removeMultiByteChars","_txt","txt","HOSTNAME_RE","getHostname","data","Error","concat","match","replaceHostname","before","after","hostnameBefore","hostnameAfter","indexOf","Array","isArray","map","item","_","isObject","reduce","newObj","key","getMaxID","deckVersionModel","ids","section_set","section","slides","slide_set","slide","subslides","subslide_set","subslide","id","_toConsumableArray2","flatten","max","setSequentialSequences","deck","sections","index","sequence","isImpostor","model","tags","isImpostorDeck","first","Boolean","find","sanitizeBase64","obj","conditionFn","undefined","v","_typeof2","acc","re","test","_conditionFn","process","env","NODE_ENV","window","Cypress"],"sources":["../src/utils.js"],"sourcesContent":["import _ from \"lodash\";\n/* eslint-disable no-control-regex */\n\nexport const DATE_FORMAT = \"YYYY-MM-DD HH:mm:ss.SSSSSS[Z]\";\nexport const DATE_FORMAT_T = \"YYYY-MM-DDTHH:mm:ss.SSSSSS[Z]\";\n\nexport function getShortURL(url) {\n\tif (!url) return url;\n\tif (typeof url !== \"string\") return url;\n\n\ttry {\n\t\treturn new URL(url, \"http://a.b\").pathname;\n\t} catch (e) {\n\t\treturn url;\n\t}\n}\n\n/**\n * Resolves a target URL relative to a base URL in a manner similar to a Web browser resolving an anchor tag.\n * Matches url.resolve() behavior but handles relative bases.\n */\nexport function resolveURL(base, relative) {\n\tif (!base) return relative;\n\tif (!relative) return base;\n\n\tconst dummyBase = \"http://a.b\";\n\ttry {\n\t\t// Try resolving normally (if base is absolute)\n\t\treturn new URL(relative, base).href;\n\t} catch (e) {\n\t\ttry {\n\t\t\t// If base is relative, resolve it against a dummy base, then strip it\n\t\t\tconst resolved = new URL(relative, new URL(base, dummyBase));\n\t\t\treturn resolved.href.replace(dummyBase, \"\");\n\t\t} catch (e2) {\n\t\t\treturn relative;\n\t\t}\n\t}\n}\n\n/**\n * Sometimes a string(especially from another platform) has characters encoded using another method.\n * In these circumstances those characters, when encoded with utf-8, look like errors.\n * see http://i18nqa.com/debug/utf8-debug.html for examples\n */\nexport function removeMultiByteChars(_txt) {\n\t// replace possible whitespace characters (non-breaking space, thin space etc.) with a normal space\n\tconst txt = _txt.replace(/(\\xA0|\\x20|\\x07|â)/gmu, \" \");\n\n\t// remove every other cursed character entirely.\n\treturn txt.replace(\n\t\t/[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}|[\\x80-\\xBF][\\xC0-\\xFF]/gmu,\n\t\t\"\",\n\t);\n}\n\nconst HOSTNAME_RE = /^(?:https?:\\/\\/)?([\\w-\\._]*)/;\n\nexport function getHostname(data) {\n\tif (typeof data !== \"string\") {\n\t\tthrow new Error(\n\t\t\t`Arg must contain a hostname, ie: \"test.livepreso.com\". Found \"${data}\"`,\n\t\t);\n\t}\n\n\treturn data.match(HOSTNAME_RE)[1];\n}\n\n/**\n * Replaces the hostname in some data (regardless of it being a string, array or object),\n * it will recursively update it all.\n *\n * Eg:\n *\n * replaceHostname(\"https://test.com/api/cool/1/\", \"test.com\", \"real.com\")\n * > \"https://real.com/api/cool/1/\"\n *\n */\nexport function replaceHostname(data, before, after) {\n\t// Don't do anything if they're the same!\n\tif (before === after) {\n\t\treturn data;\n\t}\n\n\tconst hostnameBefore = getHostname(before, \"Before\");\n\tconst hostnameAfter = getHostname(after, \"After\");\n\n\tif (typeof data === \"string\" && data.indexOf(\"http\") === 0) {\n\t\treturn data.replace(hostnameBefore, hostnameAfter);\n\t} else if (Array.isArray(data)) {\n\t\treturn data.map((item) => replaceHostname(item, before, after));\n\t} else if (_.isObject(data)) {\n\t\treturn Object.keys(data).reduce((newObj, key) => {\n\t\t\tnewObj[key] = replaceHostname(data[key], before, after);\n\t\t\treturn newObj;\n\t\t}, {});\n\t}\n\treturn data;\n}\n\n// Takes the deckversion model and retrieves the highest id between all of\n// the sections, slides and subslides\nexport function getMaxID(deckVersionModel) {\n\tconst ids = deckVersionModel.section_set.map((section) => {\n\t\tlet slides = [];\n\t\tif (section.slide_set) {\n\t\t\tslides = section.slide_set.map((slide) => {\n\t\t\t\tlet subslides = [];\n\n\t\t\t\tif (slide.subslide_set) {\n\t\t\t\t\tsubslides = slide.subslide_set.map((subslide) => subslide.id);\n\t\t\t\t}\n\n\t\t\t\treturn [slide.id, ...subslides];\n\t\t\t});\n\t\t}\n\n\t\treturn [section.id, ..._.flatten(slides)];\n\t});\n\n\treturn _.max(_.flatten(ids));\n}\n\n// The sections, slides and subslides are currently ordered by sequence\n// but the sequence is not necessarily 0-based and sequential (e.g. in the\n// case of impostor decks). We fix that here.\nexport function setSequentialSequences(deck) {\n\tdeck.sections.forEach((section, index) => {\n\t\tsection.sequence = index;\n\t\tsection.index = index;\n\n\t\tsection.slides.forEach((slide, index) => {\n\t\t\tslide.sequence = index;\n\t\t\tslide.index = index;\n\n\t\t\tslide.subslides.forEach((subslide, index) => {\n\t\t\t\tsubslide.sequence = index;\n\t\t\t\tsubslide.index = index;\n\t\t\t});\n\t\t});\n\t});\n}\n\n// A simple function to check the tags of a model - if it has the \"section-header\"\n// tag then it's an impostor slide\nexport function isImpostor(model) {\n\tconst tags = model.tags || [];\n\n\treturn tags.indexOf(\"section-header\") !== -1;\n}\n\n// An impostor deck will have impostor slides - checking for these is the\n// most reliable method of determining whether a deck is an impostor deck,\n// and is also the same method that the server uses.\nexport function isImpostorDeck(deckVersionModel) {\n\tconst section = deckVersionModel.section_set.first();\n\n\treturn Boolean(\n\t\tsection && section.slide_set.find((slide) => isImpostor(slide)),\n\t);\n}\n\n/**\n * Strips base64 strings recursively.\n *\n * Optionally accepts a condition function, which you can use you add any extra\n * checks to test whether you want to clear the string.\n */\nexport function sanitizeBase64(obj, conditionFn = () => true) {\n\tif (Array.isArray(obj)) {\n\t\treturn obj.map((v) => sanitizeBase64(v, conditionFn));\n\t} else if (\n\t\ttypeof obj === \"object\" &&\n\t\tobj !== null &&\n\t\ttypeof obj !== \"undefined\"\n\t) {\n\t\treturn Object.keys(obj).reduce((acc, key) => {\n\t\t\treturn { ...acc, [key]: sanitizeBase64(obj[key], conditionFn) };\n\t\t}, {});\n\t} else if (typeof obj === \"string\") {\n\t\t// Catch anything that looks like base64, or base64%2C (which is the encoded version)\n\t\t// and strip it. This is a last resort, we'd prefer not to be in this position!\n\t\tconst re = /base64(,|(%2C))/;\n\n\t\tif (re.test(obj)) {\n\t\t\t// If you're a developer, let's throw an error.\n\t\t\tif (process.env.NODE_ENV === \"development\" && !window.Cypress) {\n\t\t\t\tthrow new Error(\"Tried to save a base64 string. Figure out why!\");\n\t\t\t}\n\n\t\t\tif (conditionFn?.(obj) ?? true) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn obj;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_lodash","_interopRequireDefault","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","DATE_FORMAT","exports","DATE_FORMAT_T","getShortURL","url","URL","pathname","resolveURL","base","relative","dummyBase","href","resolved","replace","e2","removeMultiByteChars","_txt","txt","HOSTNAME_RE","getHostname","data","Error","concat","match","replaceHostname","before","after","hostnameBefore","hostnameAfter","indexOf","Array","isArray","map","item","_","isObject","reduce","newObj","key","getMaxID","deckVersionModel","ids","section_set","section","slides","slide_set","slide","subslides","subslide_set","subslide","id","_toConsumableArray2","flatten","max","setSequentialSequences","deck","sections","index","_values","sequence","isImpostor","model","tags","isImpostorDeck","first","Boolean","find","sanitizeBase64","obj","conditionFn","undefined","v","_typeof2","acc","re","test","_conditionFn","process","env","NODE_ENV","window","Cypress"],"sources":["../src/utils.js"],"sourcesContent":["import _ from \"lodash\";\n/* eslint-disable no-control-regex */\n\nexport const DATE_FORMAT = \"YYYY-MM-DD HH:mm:ss.SSSSSS[Z]\";\nexport const DATE_FORMAT_T = \"YYYY-MM-DDTHH:mm:ss.SSSSSS[Z]\";\n\nexport function getShortURL(url) {\n\tif (!url) return url;\n\tif (typeof url !== \"string\") return url;\n\n\ttry {\n\t\treturn new URL(url, \"http://a.b\").pathname;\n\t} catch (e) {\n\t\treturn url;\n\t}\n}\n\n/**\n * Resolves a target URL relative to a base URL in a manner similar to a Web browser resolving an anchor tag.\n * Matches url.resolve() behavior but handles relative bases.\n */\nexport function resolveURL(base, relative) {\n\tif (!base) return relative;\n\tif (!relative) return base;\n\n\tconst dummyBase = \"http://a.b\";\n\ttry {\n\t\t// Try resolving normally (if base is absolute)\n\t\treturn new URL(relative, base).href;\n\t} catch (e) {\n\t\ttry {\n\t\t\t// If base is relative, resolve it against a dummy base, then strip it\n\t\t\tconst resolved = new URL(relative, new URL(base, dummyBase));\n\t\t\treturn resolved.href.replace(dummyBase, \"\");\n\t\t} catch (e2) {\n\t\t\treturn relative;\n\t\t}\n\t}\n}\n\n/**\n * Sometimes a string(especially from another platform) has characters encoded using another method.\n * In these circumstances those characters, when encoded with utf-8, look like errors.\n * see http://i18nqa.com/debug/utf8-debug.html for examples\n */\nexport function removeMultiByteChars(_txt) {\n\t// replace possible whitespace characters (non-breaking space, thin space etc.) with a normal space\n\tconst txt = _txt.replace(/(\\xA0|\\x20|\\x07|â)/gmu, \" \");\n\n\t// remove every other cursed character entirely.\n\treturn txt.replace(\n\t\t/[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}|[\\x80-\\xBF][\\xC0-\\xFF]/gmu,\n\t\t\"\",\n\t);\n}\n\nconst HOSTNAME_RE = /^(?:https?:\\/\\/)?([\\w-\\._]*)/;\n\nexport function getHostname(data) {\n\tif (typeof data !== \"string\") {\n\t\tthrow new Error(\n\t\t\t`Arg must contain a hostname, ie: \"test.livepreso.com\". Found \"${data}\"`,\n\t\t);\n\t}\n\n\treturn data.match(HOSTNAME_RE)[1];\n}\n\n/**\n * Replaces the hostname in some data (regardless of it being a string, array or object),\n * it will recursively update it all.\n *\n * Eg:\n *\n * replaceHostname(\"https://test.com/api/cool/1/\", \"test.com\", \"real.com\")\n * > \"https://real.com/api/cool/1/\"\n *\n */\nexport function replaceHostname(data, before, after) {\n\t// Don't do anything if they're the same!\n\tif (before === after) {\n\t\treturn data;\n\t}\n\n\tconst hostnameBefore = getHostname(before, \"Before\");\n\tconst hostnameAfter = getHostname(after, \"After\");\n\n\tif (typeof data === \"string\" && data.indexOf(\"http\") === 0) {\n\t\treturn data.replace(hostnameBefore, hostnameAfter);\n\t} else if (Array.isArray(data)) {\n\t\treturn data.map((item) => replaceHostname(item, before, after));\n\t} else if (_.isObject(data)) {\n\t\treturn Object.keys(data).reduce((newObj, key) => {\n\t\t\tnewObj[key] = replaceHostname(data[key], before, after);\n\t\t\treturn newObj;\n\t\t}, {});\n\t}\n\treturn data;\n}\n\n// Takes the deckversion model and retrieves the highest id between all of\n// the sections, slides and subslides\nexport function getMaxID(deckVersionModel) {\n\tconst ids = deckVersionModel.section_set.map((section) => {\n\t\tlet slides = [];\n\t\tif (section.slide_set) {\n\t\t\tslides = section.slide_set.map((slide) => {\n\t\t\t\tlet subslides = [];\n\n\t\t\t\tif (slide.subslide_set) {\n\t\t\t\t\tsubslides = slide.subslide_set.map((subslide) => subslide.id);\n\t\t\t\t}\n\n\t\t\t\treturn [slide.id, ...subslides];\n\t\t\t});\n\t\t}\n\n\t\treturn [section.id, ..._.flatten(slides)];\n\t});\n\n\treturn _.max(_.flatten(ids));\n}\n\n// The sections, slides and subslides are currently ordered by sequence\n// but the sequence is not necessarily 0-based and sequential (e.g. in the\n// case of impostor decks). We fix that here.\nexport function setSequentialSequences(deck) {\n\t// Write directly to _values to bypass ampersand-state's setter overhead\n\t// (type casting + change event firing). These are freshly created presentation\n\t// models with no external listeners, so skipping the events is safe.\n\tdeck.sections.forEach((section, index) => {\n\t\tsection._values.sequence = index;\n\t\tsection._values.index = index;\n\n\t\tsection.slides.forEach((slide, index) => {\n\t\t\tslide._values.sequence = index;\n\t\t\tslide._values.index = index;\n\n\t\t\tslide.subslides.forEach((subslide, index) => {\n\t\t\t\tsubslide._values.sequence = index;\n\t\t\t\tsubslide._values.index = index;\n\t\t\t});\n\t\t});\n\t});\n}\n\n// A simple function to check the tags of a model - if it has the \"section-header\"\n// tag then it's an impostor slide\nexport function isImpostor(model) {\n\tconst tags = model.tags || [];\n\n\treturn tags.indexOf(\"section-header\") !== -1;\n}\n\n// An impostor deck will have impostor slides - checking for these is the\n// most reliable method of determining whether a deck is an impostor deck,\n// and is also the same method that the server uses.\nexport function isImpostorDeck(deckVersionModel) {\n\tconst section = deckVersionModel.section_set.first();\n\n\treturn Boolean(\n\t\tsection && section.slide_set.find((slide) => isImpostor(slide)),\n\t);\n}\n\n/**\n * Strips base64 strings recursively.\n *\n * Optionally accepts a condition function, which you can use you add any extra\n * checks to test whether you want to clear the string.\n */\nexport function sanitizeBase64(obj, conditionFn = () => true) {\n\tif (Array.isArray(obj)) {\n\t\treturn obj.map((v) => sanitizeBase64(v, conditionFn));\n\t} else if (\n\t\ttypeof obj === \"object\" &&\n\t\tobj !== null &&\n\t\ttypeof obj !== \"undefined\"\n\t) {\n\t\treturn Object.keys(obj).reduce((acc, key) => {\n\t\t\treturn { ...acc, [key]: sanitizeBase64(obj[key], conditionFn) };\n\t\t}, {});\n\t} else if (typeof obj === \"string\") {\n\t\t// Catch anything that looks like base64, or base64%2C (which is the encoded version)\n\t\t// and strip it. This is a last resort, we'd prefer not to be in this position!\n\t\tconst re = /base64(,|(%2C))/;\n\n\t\tif (re.test(obj)) {\n\t\t\t// If you're a developer, let's throw an error.\n\t\t\tif (process.env.NODE_ENV === \"development\" && !window.Cypress) {\n\t\t\t\tthrow new Error(\"Tried to save a base64 string. Figure out why!\");\n\t\t\t}\n\n\t\t\tif (conditionFn?.(obj) ?? true) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn obj;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livepreso/api",
|
|
3
3
|
"license": "UNLICENSED",
|
|
4
|
-
"version": "6.57.
|
|
4
|
+
"version": "6.57.1",
|
|
5
5
|
"description": "Everything to do with talking to the SalePreso API",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"module": "esm/index.js",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"jest-fixed-default-reporter": "~2.0.1",
|
|
57
57
|
"rosie": "~2.1.0",
|
|
58
58
|
"@faker-js/faker": "~7.5.0",
|
|
59
|
-
"
|
|
60
|
-
"
|
|
59
|
+
"sp-test": "0.2.0",
|
|
60
|
+
"@livepreso/eslint-config": "1.0.0"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"test:debug": "node --inspect node_modules/.bin/jest --watch --runInBand",
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
npm verbose title npm run build:cjs
|
|
5
|
-
npm verbose argv "run" "build:cjs"
|
|
6
|
-
npm verbose logfile logs-max:10 dir:/home/adam/.npm/_logs/2026-02-17T02_45_57_253Z-
|
|
7
|
-
npm verbose logfile /home/adam/.npm/_logs/2026-02-17T02_45_57_253Z-debug-0.log
|
|
8
|
-
npm verbose cwd /home/adam/Programming/work/livepreso/modules/api
|
|
9
|
-
npm verbose os Linux 6.14.0-29-generic
|
|
10
|
-
npm verbose node v24.12.0
|
|
11
|
-
npm verbose npm v11.6.2
|
|
12
|
-
npm verbose exit 0
|
|
13
|
-
npm info ok
|
|
1
|
+
Browserslist: browsers data (caniuse-lite) is 9 months old. Please run:
|
|
2
|
+
npx update-browserslist-db@latest
|
|
3
|
+
Why you should do it regularly: https://github.com/browserslist/update-db#readme
|
package/rush-logs/api.build.log
CHANGED
|
@@ -1,19 +1,9 @@
|
|
|
1
1
|
Invoking: run-p build:*
|
|
2
|
-
npm verbose cli /home/adam/.nvm/versions/node/v24.12.0/bin/node /home/adam/.nvm/versions/node/v24.12.0/bin/npm
|
|
3
|
-
npm info using npm@11.6.2
|
|
4
|
-
npm info using node@v24.12.0
|
|
5
|
-
npm verbose title npm run build:cjs
|
|
6
|
-
npm verbose argv "run" "build:cjs"
|
|
7
|
-
npm verbose logfile logs-max:10 dir:/home/adam/.npm/_logs/2026-02-17T02_45_57_253Z-
|
|
8
|
-
npm verbose logfile /home/adam/.npm/_logs/2026-02-17T02_45_57_253Z-debug-0.log
|
|
9
2
|
|
|
10
|
-
> @livepreso/api@6.
|
|
3
|
+
> @livepreso/api@6.53.0 build:cjs
|
|
11
4
|
> BABEL_ENV=cjs babel --delete-dir-on-start src/ --out-dir=cjs/ -s
|
|
12
5
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
npm verbose npm v11.6.2
|
|
18
|
-
npm verbose exit 0
|
|
19
|
-
npm info ok
|
|
6
|
+
Browserslist: browsers data (caniuse-lite) is 9 months old. Please run:
|
|
7
|
+
npx update-browserslist-db@latest
|
|
8
|
+
Why you should do it regularly: https://github.com/browserslist/update-db#readme
|
|
9
|
+
Successfully compiled 163 files with Babel (17903ms).
|
|
@@ -13,6 +13,19 @@ export const AdjunctSubSlideCollection = DuplicateIdCollection.extend(
|
|
|
13
13
|
/** @lends collections.AdjunctSubSlideCollection# */ {
|
|
14
14
|
comparator: "sequence",
|
|
15
15
|
model: "AdjunctSubSlideModel",
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Fetch a collection of adjunct slides related to an appointment
|
|
19
|
+
* @param {Integer} id - The id of the appointment
|
|
20
|
+
* @return {Promise} - A collection of AdjunctSlide models
|
|
21
|
+
*/
|
|
22
|
+
fetchByAppointmentID(id) {
|
|
23
|
+
return this.fetch({
|
|
24
|
+
data: {
|
|
25
|
+
appointment: id,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
},
|
|
16
29
|
},
|
|
17
30
|
);
|
|
18
31
|
|
package/src/fixtures.js
CHANGED
|
@@ -22,6 +22,8 @@ const presentationCollections = {
|
|
|
22
22
|
PresentationSubSlides: presentation.PresentationSubSlides,
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
+
const _buildStack = new Set();
|
|
26
|
+
|
|
25
27
|
function uuid() {
|
|
26
28
|
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
27
29
|
const r = (Math.random() * 16) | 0;
|
|
@@ -70,7 +72,17 @@ function makeFactory(name, Model, ignoreFields = []) {
|
|
|
70
72
|
continue;
|
|
71
73
|
}
|
|
72
74
|
factory.attr(key, () => {
|
|
73
|
-
|
|
75
|
+
if (_buildStack.has(value)) {
|
|
76
|
+
throw new Error(
|
|
77
|
+
`Recursion detected: ${[..._buildStack].join(" -> ")} -> ${value}`,
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
_buildStack.add(value);
|
|
81
|
+
try {
|
|
82
|
+
return Factory.build(value);
|
|
83
|
+
} finally {
|
|
84
|
+
_buildStack.delete(value);
|
|
85
|
+
}
|
|
74
86
|
});
|
|
75
87
|
}
|
|
76
88
|
}
|
|
@@ -187,6 +199,8 @@ factories.UserModel.attr("first_name", () => faker.name.firstName()).attr(
|
|
|
187
199
|
|
|
188
200
|
factories.TenancyModel.attr("administrator", null);
|
|
189
201
|
|
|
202
|
+
factories.RoomModel.attr("hostedpreso", null);
|
|
203
|
+
|
|
190
204
|
factories.TemplateModel.sequence("sequence")
|
|
191
205
|
// Prevent max call stack overflow
|
|
192
206
|
.attr("original_template", null)
|
|
@@ -201,7 +215,7 @@ factories.ContactModel.attr("customer", null)
|
|
|
201
215
|
.attr("name_first", () => faker.name.firstName())
|
|
202
216
|
.attr("name_last", () => faker.name.lastName())
|
|
203
217
|
.attr("email", () => faker.internet.email())
|
|
204
|
-
.after((contact
|
|
218
|
+
.after((contact) => {
|
|
205
219
|
if (!contact.customer) {
|
|
206
220
|
contact.customer = M("CustomerModel", {
|
|
207
221
|
contact_set: [contact],
|
package/src/models/base.js
CHANGED
|
@@ -12,6 +12,8 @@ import qs from "qs";
|
|
|
12
12
|
import { registeredStates } from "../state-register.js";
|
|
13
13
|
import { sync } from "../sync.js";
|
|
14
14
|
|
|
15
|
+
const URL_TEMPLATE_RE = /(\{(?:\w+\.?)+\})/g;
|
|
16
|
+
|
|
15
17
|
/**
|
|
16
18
|
* @constructor
|
|
17
19
|
* @alias models.BaseModel
|
|
@@ -154,7 +156,11 @@ export const BaseModel = Model.extend(
|
|
|
154
156
|
|
|
155
157
|
// Internal function. Used by collection as well.
|
|
156
158
|
_matchesURL(url, matchesDetail = true) {
|
|
157
|
-
if (
|
|
159
|
+
if (
|
|
160
|
+
typeof url !== "string" ||
|
|
161
|
+
!this.modelName ||
|
|
162
|
+
this.urlRoot() === Api.getURL()
|
|
163
|
+
) {
|
|
158
164
|
return false;
|
|
159
165
|
}
|
|
160
166
|
|
|
@@ -435,6 +441,13 @@ export const BaseModel = Model.extend(
|
|
|
435
441
|
save() {
|
|
436
442
|
return Model.prototype.save.apply(this, arguments).tap((response) => {
|
|
437
443
|
this._updateResponse(response);
|
|
444
|
+
// Sort events after server response to ensure ascending order
|
|
445
|
+
// since the server may return them in a different order
|
|
446
|
+
if (this.events && this.events.length > 1) {
|
|
447
|
+
this.events.sort((a, b) => {
|
|
448
|
+
return new Date(a.timestamp) - new Date(b.timestamp);
|
|
449
|
+
});
|
|
450
|
+
}
|
|
438
451
|
});
|
|
439
452
|
},
|
|
440
453
|
|
|
@@ -653,8 +666,8 @@ export const BaseModel = Model.extend(
|
|
|
653
666
|
// So if you have /path/to/{model.id}/
|
|
654
667
|
// It will check the model from "this.model.id" and replace
|
|
655
668
|
// it in the url
|
|
656
|
-
|
|
657
|
-
const matches = resp.match(
|
|
669
|
+
URL_TEMPLATE_RE.lastIndex = 0;
|
|
670
|
+
const matches = resp.match(URL_TEMPLATE_RE) || [];
|
|
658
671
|
for (const match of matches) {
|
|
659
672
|
const path = match.slice(1, -1);
|
|
660
673
|
const replacement = _.get(this, path);
|
|
@@ -50,6 +50,8 @@ export const DeckVersionModel = BaseModel.extend(
|
|
|
50
50
|
image_256_archive: "string",
|
|
51
51
|
image_512_archive: "string",
|
|
52
52
|
namespaced_key: "string",
|
|
53
|
+
created_date: "date",
|
|
54
|
+
modified_date: "date",
|
|
53
55
|
creation_status: "string",
|
|
54
56
|
creation_percent: "number",
|
|
55
57
|
update_description: "string",
|
package/src/models/dispatch.js
CHANGED
package/src/models/room.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseModel } from "./base.js";
|
|
2
2
|
import { register } from "../state-register.js";
|
|
3
|
+
import "./hosted-preso.js";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* @constructor
|
|
@@ -38,6 +39,10 @@ export const RoomModel = BaseModel.extend(
|
|
|
38
39
|
wamp_version: "string",
|
|
39
40
|
websocket_server_uri: "string",
|
|
40
41
|
},
|
|
42
|
+
|
|
43
|
+
children: {
|
|
44
|
+
hostedpreso: "HostedPresoModel",
|
|
45
|
+
},
|
|
41
46
|
},
|
|
42
47
|
);
|
|
43
48
|
|
package/src/models/user.js
CHANGED
|
@@ -143,15 +143,15 @@ export const UserModel = BaseModel.extend(
|
|
|
143
143
|
presomanager.isGlobalTemporarySlideManager ||
|
|
144
144
|
presomanager.isTeamTemporarySlideManager;
|
|
145
145
|
|
|
146
|
+
presomanager.canModifyContent =
|
|
147
|
+
this.actions.indexOf("Create Content") > -1 ||
|
|
148
|
+
this.actions.indexOf("Manage Team Editable Text") > -1;
|
|
149
|
+
|
|
146
150
|
presomanager.isPresoManagerUser =
|
|
147
151
|
presomanager.canModifyTemporarySlides ||
|
|
148
152
|
presomanager.canModifyNotes ||
|
|
149
153
|
presomanager.canModifyContent;
|
|
150
154
|
|
|
151
|
-
presomanager.canModifyContent =
|
|
152
|
-
this.actions.indexOf("Create Content") > -1 ||
|
|
153
|
-
this.actions.indexOf("Manage Team Editable Text") > -1;
|
|
154
|
-
|
|
155
155
|
const appointments = {
|
|
156
156
|
canUploadCustomSlides:
|
|
157
157
|
this.actions.indexOf("Upload Custom Slides") > -1 &&
|
|
@@ -128,10 +128,14 @@ BasePresentationModel.getVisibilityAndSequence = function (
|
|
|
128
128
|
if (choicelist) {
|
|
129
129
|
// All items should have a choicelist entry - if it's not in
|
|
130
130
|
// the choicelist, it's not in the preso
|
|
131
|
-
const choice =
|
|
131
|
+
const choice = options.choicelistMap
|
|
132
|
+
? options.choicelistMap.get(url)
|
|
133
|
+
: choicelist.find((item) => item.url === url);
|
|
132
134
|
|
|
133
135
|
if (choice) {
|
|
134
|
-
config.sequence =
|
|
136
|
+
config.sequence = options.choicelistMap
|
|
137
|
+
? choice._idx
|
|
138
|
+
: choicelist.indexOf(choice);
|
|
135
139
|
config.visible = choice.visible;
|
|
136
140
|
} else {
|
|
137
141
|
config.visible = false;
|
|
@@ -140,7 +144,9 @@ BasePresentationModel.getVisibilityAndSequence = function (
|
|
|
140
144
|
// Non-adjunct subslides and adjunct sections/slides/subslides
|
|
141
145
|
// have no selections - they fall through here using their
|
|
142
146
|
// model's values
|
|
143
|
-
const selection =
|
|
147
|
+
const selection = options.selectionsMap
|
|
148
|
+
? options.selectionsMap.get(url)
|
|
149
|
+
: selections.find((selection) => selection.url === url);
|
|
144
150
|
|
|
145
151
|
if (selection) {
|
|
146
152
|
config.visible = selection.visible;
|
|
@@ -155,9 +161,11 @@ BasePresentationModel.getVisibilityAndSequence = function (
|
|
|
155
161
|
return config;
|
|
156
162
|
};
|
|
157
163
|
|
|
158
|
-
const getAppointmentTags = function (model, tags) {
|
|
164
|
+
const getAppointmentTags = function (model, tags, options) {
|
|
159
165
|
const url = model.adjunct?.url() || model.url();
|
|
160
|
-
const tagItem =
|
|
166
|
+
const tagItem = options?.appointmentTagsMap
|
|
167
|
+
? options.appointmentTagsMap.get(url)
|
|
168
|
+
: tags.find((tag) => tag.content_url === url);
|
|
161
169
|
|
|
162
170
|
if (tagItem) {
|
|
163
171
|
return tagItem.tags || [];
|
|
@@ -204,7 +212,7 @@ const getDeckTags = function (model, tags) {
|
|
|
204
212
|
// references to model.tags should be removed.
|
|
205
213
|
BasePresentationModel.getTags = function (model, options = {}) {
|
|
206
214
|
if (options.appointmentTags) {
|
|
207
|
-
return getAppointmentTags(model, options.appointmentTags);
|
|
215
|
+
return getAppointmentTags(model, options.appointmentTags, options);
|
|
208
216
|
}
|
|
209
217
|
|
|
210
218
|
if (options.deckTags) {
|