@livepreso/api 6.45.0 → 6.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) hide show
  1. package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
  2. package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
  3. package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
  4. package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
  5. package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
  6. package/.rush/temp/operation/test/all.log +19 -0
  7. package/.rush/temp/operation/test/state.json +3 -0
  8. package/.rush/temp/shrinkwrap-deps.json +563 -546
  9. package/CHANGELOG.json +12 -0
  10. package/CHANGELOG.md +8 -1
  11. package/README.md +4 -4
  12. package/api.build.log +2 -4
  13. package/api.test.cache.log +1 -0
  14. package/api.test.log +19 -0
  15. package/cjs/api.js +18 -17
  16. package/cjs/api.js.map +1 -1
  17. package/cjs/api.spec.js +0 -4
  18. package/cjs/api.spec.js.map +1 -1
  19. package/cjs/auth.js +5 -32
  20. package/cjs/auth.js.map +1 -1
  21. package/cjs/auth.spec.js +52 -77
  22. package/cjs/auth.spec.js.map +1 -1
  23. package/cjs/caching.js +2 -7
  24. package/cjs/caching.js.map +1 -1
  25. package/cjs/collections/activity.js +16 -56
  26. package/cjs/collections/activity.js.map +1 -1
  27. package/cjs/collections/adjunct-sections.js +1 -10
  28. package/cjs/collections/adjunct-sections.js.map +1 -1
  29. package/cjs/collections/adjunct-slides.js +1 -10
  30. package/cjs/collections/adjunct-slides.js.map +1 -1
  31. package/cjs/collections/adjunct-sub-slides.js +1 -9
  32. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  33. package/cjs/collections/appointment-adjunct-tags.js +1 -9
  34. package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
  35. package/cjs/collections/appointment-deckversion-tags.js +1 -9
  36. package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
  37. package/cjs/collections/appointment-duplicates.js +1 -9
  38. package/cjs/collections/appointment-duplicates.js.map +1 -1
  39. package/cjs/collections/appointment-editors.js +1 -10
  40. package/cjs/collections/appointment-editors.js.map +1 -1
  41. package/cjs/collections/appointment-section-tags.js +1 -9
  42. package/cjs/collections/appointment-section-tags.js.map +1 -1
  43. package/cjs/collections/appointment-slide-tags.js +1 -9
  44. package/cjs/collections/appointment-slide-tags.js.map +1 -1
  45. package/cjs/collections/appointment-tags.js +66 -103
  46. package/cjs/collections/appointment-tags.js.map +1 -1
  47. package/cjs/collections/appointment-templates.js +27 -0
  48. package/cjs/collections/appointment-templates.js.map +1 -0
  49. package/cjs/collections/appointments.js +9 -29
  50. package/cjs/collections/appointments.js.map +1 -1
  51. package/cjs/collections/assets.js +1 -9
  52. package/cjs/collections/assets.js.map +1 -1
  53. package/cjs/collections/auto-adjuncts.js +6 -21
  54. package/cjs/collections/auto-adjuncts.js.map +1 -1
  55. package/cjs/collections/base.js +37 -111
  56. package/cjs/collections/base.js.map +1 -1
  57. package/cjs/collections/base.spec.js +186 -233
  58. package/cjs/collections/base.spec.js.map +1 -1
  59. package/cjs/collections/cms-vals.js +9 -16
  60. package/cjs/collections/cms-vals.js.map +1 -1
  61. package/cjs/collections/contact-phones.js +20 -0
  62. package/cjs/collections/contact-phones.js.map +1 -0
  63. package/cjs/collections/contacts.js +1 -9
  64. package/cjs/collections/contacts.js.map +1 -1
  65. package/cjs/collections/created-assets.js +1 -10
  66. package/cjs/collections/created-assets.js.map +1 -1
  67. package/cjs/collections/customers.js +1 -9
  68. package/cjs/collections/customers.js.map +1 -1
  69. package/cjs/collections/deck-notes.js +1 -10
  70. package/cjs/collections/deck-notes.js.map +1 -1
  71. package/cjs/collections/deck-version-screenshots.js +4 -17
  72. package/cjs/collections/deck-version-screenshots.js.map +1 -1
  73. package/cjs/collections/deck-versions.js +5 -20
  74. package/cjs/collections/deck-versions.js.map +1 -1
  75. package/cjs/collections/decks.js +1 -9
  76. package/cjs/collections/decks.js.map +1 -1
  77. package/cjs/collections/deleted-assets.js +1 -10
  78. package/cjs/collections/deleted-assets.js.map +1 -1
  79. package/cjs/collections/dispatches.js +1 -13
  80. package/cjs/collections/dispatches.js.map +1 -1
  81. package/cjs/collections/event-objects.js +1 -9
  82. package/cjs/collections/event-objects.js.map +1 -1
  83. package/cjs/collections/events.js +1 -9
  84. package/cjs/collections/events.js.map +1 -1
  85. package/cjs/collections/groups.js +1 -9
  86. package/cjs/collections/groups.js.map +1 -1
  87. package/cjs/collections/images.js +1 -9
  88. package/cjs/collections/images.js.map +1 -1
  89. package/cjs/collections/locations.js +1 -9
  90. package/cjs/collections/locations.js.map +1 -1
  91. package/cjs/collections/opportunities.js +1 -9
  92. package/cjs/collections/opportunities.js.map +1 -1
  93. package/cjs/collections/pack-diffs.js +1 -9
  94. package/cjs/collections/pack-diffs.js.map +1 -1
  95. package/cjs/collections/packs.js +1 -9
  96. package/cjs/collections/packs.js.map +1 -1
  97. package/cjs/collections/presets.js +1 -9
  98. package/cjs/collections/presets.js.map +1 -1
  99. package/cjs/collections/section-selections.js +1 -9
  100. package/cjs/collections/section-selections.js.map +1 -1
  101. package/cjs/collections/sections.js +1 -9
  102. package/cjs/collections/sections.js.map +1 -1
  103. package/cjs/collections/slide-selections.js +1 -9
  104. package/cjs/collections/slide-selections.js.map +1 -1
  105. package/cjs/collections/slides.js +1 -9
  106. package/cjs/collections/slides.js.map +1 -1
  107. package/cjs/collections/snapshots.js +1 -9
  108. package/cjs/collections/snapshots.js.map +1 -1
  109. package/cjs/collections/sub-slides.js +1 -9
  110. package/cjs/collections/sub-slides.js.map +1 -1
  111. package/cjs/collections/tags.js +1 -9
  112. package/cjs/collections/tags.js.map +1 -1
  113. package/cjs/collections/teams.js +1 -9
  114. package/cjs/collections/teams.js.map +1 -1
  115. package/cjs/collections/templates.js +1 -9
  116. package/cjs/collections/templates.js.map +1 -1
  117. package/cjs/collections/uploads.js +1 -9
  118. package/cjs/collections/uploads.js.map +1 -1
  119. package/cjs/collections/users.js +1 -9
  120. package/cjs/collections/users.js.map +1 -1
  121. package/cjs/collections.js +22 -88
  122. package/cjs/collections.js.map +1 -1
  123. package/cjs/fixtures.js +187 -0
  124. package/cjs/fixtures.js.map +1 -0
  125. package/cjs/index.js +0 -10
  126. package/cjs/index.js.map +1 -1
  127. package/cjs/log.js +0 -1
  128. package/cjs/log.js.map +1 -1
  129. package/cjs/middleware.js +2 -7
  130. package/cjs/middleware.js.map +1 -1
  131. package/cjs/middlewares/auth.js +1 -17
  132. package/cjs/middlewares/auth.js.map +1 -1
  133. package/cjs/middlewares/base.js +3 -9
  134. package/cjs/middlewares/base.js.map +1 -1
  135. package/cjs/middlewares/json.js +1 -19
  136. package/cjs/middlewares/json.js.map +1 -1
  137. package/cjs/middlewares/redirect.js +5 -21
  138. package/cjs/middlewares/redirect.js.map +1 -1
  139. package/cjs/models/activity-item.js +3 -19
  140. package/cjs/models/activity-item.js.map +1 -1
  141. package/cjs/models/adjunct-section.js +8 -21
  142. package/cjs/models/adjunct-section.js.map +1 -1
  143. package/cjs/models/adjunct-slide.js +8 -21
  144. package/cjs/models/adjunct-slide.js.map +1 -1
  145. package/cjs/models/adjunct-sub-slide.js +1 -16
  146. package/cjs/models/adjunct-sub-slide.js.map +1 -1
  147. package/cjs/models/adjunct.js +34 -10
  148. package/cjs/models/adjunct.js.map +1 -1
  149. package/cjs/models/api.js +1 -6
  150. package/cjs/models/api.js.map +1 -1
  151. package/cjs/models/appointment-adjunct-tags.js +1 -13
  152. package/cjs/models/appointment-adjunct-tags.js.map +1 -1
  153. package/cjs/models/appointment-deckversion-tags.js +1 -13
  154. package/cjs/models/appointment-deckversion-tags.js.map +1 -1
  155. package/cjs/models/appointment-duplicate.js +3 -25
  156. package/cjs/models/appointment-duplicate.js.map +1 -1
  157. package/cjs/models/appointment-editor.js +1 -14
  158. package/cjs/models/appointment-editor.js.map +1 -1
  159. package/cjs/models/appointment-section-tags.js +1 -13
  160. package/cjs/models/appointment-section-tags.js.map +1 -1
  161. package/cjs/models/appointment-slide-tags.js +1 -13
  162. package/cjs/models/appointment-slide-tags.js.map +1 -1
  163. package/cjs/models/appointment-stats.js +1 -11
  164. package/cjs/models/appointment-stats.js.map +1 -1
  165. package/cjs/models/appointment-tags.js +1 -10
  166. package/cjs/models/appointment-tags.js.map +1 -1
  167. package/cjs/models/appointment-template.js +23 -0
  168. package/cjs/models/appointment-template.js.map +1 -0
  169. package/cjs/models/appointment-viewing.js +1 -8
  170. package/cjs/models/appointment-viewing.js.map +1 -1
  171. package/cjs/models/appointment.js +85 -70
  172. package/cjs/models/appointment.js.map +1 -1
  173. package/cjs/models/asset.js +12 -11
  174. package/cjs/models/asset.js.map +1 -1
  175. package/cjs/models/auto-adjunct-key-check.js +1 -15
  176. package/cjs/models/auto-adjunct-key-check.js.map +1 -1
  177. package/cjs/models/auto-adjunct.js +3 -14
  178. package/cjs/models/auto-adjunct.js.map +1 -1
  179. package/cjs/models/base.js +74 -176
  180. package/cjs/models/base.js.map +1 -1
  181. package/cjs/models/base.spec.js +0 -31
  182. package/cjs/models/base.spec.js.map +1 -1
  183. package/cjs/models/choicelist.js +1 -8
  184. package/cjs/models/choicelist.js.map +1 -1
  185. package/cjs/models/cms-val.js +28 -15
  186. package/cjs/models/cms-val.js.map +1 -1
  187. package/cjs/models/cms-val.spec.js +25 -0
  188. package/cjs/models/cms-val.spec.js.map +1 -0
  189. package/cjs/models/contact-phone.js +54 -0
  190. package/cjs/models/contact-phone.js.map +1 -0
  191. package/cjs/models/contact.js +1 -18
  192. package/cjs/models/contact.js.map +1 -1
  193. package/cjs/models/customer.js +5 -30
  194. package/cjs/models/customer.js.map +1 -1
  195. package/cjs/models/deck-note.js +1 -9
  196. package/cjs/models/deck-note.js.map +1 -1
  197. package/cjs/models/deck-tags.js +1 -12
  198. package/cjs/models/deck-tags.js.map +1 -1
  199. package/cjs/models/deck-version-screenshot.js +1 -13
  200. package/cjs/models/deck-version-screenshot.js.map +1 -1
  201. package/cjs/models/deck-version.js +28 -44
  202. package/cjs/models/deck-version.js.map +1 -1
  203. package/cjs/models/deck.js +1 -14
  204. package/cjs/models/deck.js.map +1 -1
  205. package/cjs/models/dispatch-preview.js +1 -13
  206. package/cjs/models/dispatch-preview.js.map +1 -1
  207. package/cjs/models/dispatch.js +1 -23
  208. package/cjs/models/dispatch.js.map +1 -1
  209. package/cjs/models/envs.js +1 -6
  210. package/cjs/models/envs.js.map +1 -1
  211. package/cjs/models/event-object.js +1 -11
  212. package/cjs/models/event-object.js.map +1 -1
  213. package/cjs/models/event.js +1 -13
  214. package/cjs/models/event.js.map +1 -1
  215. package/cjs/models/feed-data.js +1 -13
  216. package/cjs/models/feed-data.js.map +1 -1
  217. package/cjs/models/file.js +1 -11
  218. package/cjs/models/file.js.map +1 -1
  219. package/cjs/models/group.js +1 -11
  220. package/cjs/models/group.js.map +1 -1
  221. package/cjs/models/handover.js +1 -13
  222. package/cjs/models/handover.js.map +1 -1
  223. package/cjs/models/hosted-preso.js +1 -15
  224. package/cjs/models/hosted-preso.js.map +1 -1
  225. package/cjs/models/image.js +1 -16
  226. package/cjs/models/image.js.map +1 -1
  227. package/cjs/models/location.js +1 -13
  228. package/cjs/models/location.js.map +1 -1
  229. package/cjs/models/manifest-json.js +74 -73
  230. package/cjs/models/manifest-json.js.map +1 -1
  231. package/cjs/models/onshare.js +1 -14
  232. package/cjs/models/onshare.js.map +1 -1
  233. package/cjs/models/opportunity.js +1 -14
  234. package/cjs/models/opportunity.js.map +1 -1
  235. package/cjs/models/pack-diff.js +1 -14
  236. package/cjs/models/pack-diff.js.map +1 -1
  237. package/cjs/models/pack.js +1 -12
  238. package/cjs/models/pack.js.map +1 -1
  239. package/cjs/models/preset.js +4 -20
  240. package/cjs/models/preset.js.map +1 -1
  241. package/cjs/models/refresh-request.js +17 -11
  242. package/cjs/models/refresh-request.js.map +1 -1
  243. package/cjs/models/room.js +1 -9
  244. package/cjs/models/room.js.map +1 -1
  245. package/cjs/models/salesforce-lookup.js +1 -12
  246. package/cjs/models/salesforce-lookup.js.map +1 -1
  247. package/cjs/models/section-selection.js +1 -14
  248. package/cjs/models/section-selection.js.map +1 -1
  249. package/cjs/models/section.js +1 -14
  250. package/cjs/models/section.js.map +1 -1
  251. package/cjs/models/slide-selection.js +1 -14
  252. package/cjs/models/slide-selection.js.map +1 -1
  253. package/cjs/models/slide.js +1 -14
  254. package/cjs/models/slide.js.map +1 -1
  255. package/cjs/models/snapshot.js +13 -15
  256. package/cjs/models/snapshot.js.map +1 -1
  257. package/cjs/models/snapshot.spec.js +44 -0
  258. package/cjs/models/snapshot.spec.js.map +1 -0
  259. package/cjs/models/sub-slide.js +1 -12
  260. package/cjs/models/sub-slide.js.map +1 -1
  261. package/cjs/models/support-ticket.js +1 -11
  262. package/cjs/models/support-ticket.js.map +1 -1
  263. package/cjs/models/tag.js +1 -13
  264. package/cjs/models/tag.js.map +1 -1
  265. package/cjs/models/team.js +14 -13
  266. package/cjs/models/team.js.map +1 -1
  267. package/cjs/models/template.js +87 -15
  268. package/cjs/models/template.js.map +1 -1
  269. package/cjs/models/tenancy.js +4 -11
  270. package/cjs/models/tenancy.js.map +1 -1
  271. package/cjs/models/timing-log.js +21 -78
  272. package/cjs/models/timing-log.js.map +1 -1
  273. package/cjs/models/timing-log.spec.js +24 -37
  274. package/cjs/models/timing-log.spec.js.map +1 -1
  275. package/cjs/models/token.js +1 -11
  276. package/cjs/models/token.js.map +1 -1
  277. package/cjs/models/transcribe-socket.js +1 -8
  278. package/cjs/models/transcribe-socket.js.map +1 -1
  279. package/cjs/models/upload.js +1 -7
  280. package/cjs/models/upload.js.map +1 -1
  281. package/cjs/models/user.js +10 -28
  282. package/cjs/models/user.js.map +1 -1
  283. package/cjs/models/user.spec.js +20 -30
  284. package/cjs/models/user.spec.js.map +1 -1
  285. package/cjs/models.js +22 -132
  286. package/cjs/models.js.map +1 -1
  287. package/cjs/presentation/appointment-presentation.js +9 -35
  288. package/cjs/presentation/appointment-presentation.js.map +1 -1
  289. package/cjs/presentation/base-presentation-collection.js +1 -7
  290. package/cjs/presentation/base-presentation-collection.js.map +1 -1
  291. package/cjs/presentation/base-presentation-model.js +40 -74
  292. package/cjs/presentation/base-presentation-model.js.map +1 -1
  293. package/cjs/presentation/base-presentation-model.spec.js +6 -27
  294. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  295. package/cjs/presentation/presentation-deck.js +46 -83
  296. package/cjs/presentation/presentation-deck.js.map +1 -1
  297. package/cjs/presentation/presentation-deck.spec.js +72 -95
  298. package/cjs/presentation/presentation-deck.spec.js.map +1 -1
  299. package/cjs/presentation/presentation-decks.js +1 -9
  300. package/cjs/presentation/presentation-decks.js.map +1 -1
  301. package/cjs/presentation/presentation-section.js +37 -77
  302. package/cjs/presentation/presentation-section.js.map +1 -1
  303. package/cjs/presentation/presentation-section.spec.js +211 -271
  304. package/cjs/presentation/presentation-section.spec.js.map +1 -1
  305. package/cjs/presentation/presentation-sections.js +1 -9
  306. package/cjs/presentation/presentation-sections.js.map +1 -1
  307. package/cjs/presentation/presentation-slide.js +49 -76
  308. package/cjs/presentation/presentation-slide.js.map +1 -1
  309. package/cjs/presentation/presentation-slide.spec.js +145 -192
  310. package/cjs/presentation/presentation-slide.spec.js.map +1 -1
  311. package/cjs/presentation/presentation-slides.js +1 -9
  312. package/cjs/presentation/presentation-slides.js.map +1 -1
  313. package/cjs/presentation/presentation-subslide.js +3 -23
  314. package/cjs/presentation/presentation-subslide.js.map +1 -1
  315. package/cjs/presentation/presentation-subslide.spec.js +101 -125
  316. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  317. package/cjs/presentation/presentation-subslides.js +1 -9
  318. package/cjs/presentation/presentation-subslides.js.map +1 -1
  319. package/cjs/presentation/presentation.js +62 -111
  320. package/cjs/presentation/presentation.js.map +1 -1
  321. package/cjs/presentation.js +0 -20
  322. package/cjs/presentation.js.map +1 -1
  323. package/cjs/selections.js +81 -0
  324. package/cjs/selections.js.map +1 -0
  325. package/cjs/state-register.js +3 -11
  326. package/cjs/state-register.js.map +1 -1
  327. package/cjs/sync.js +32 -76
  328. package/cjs/sync.js.map +1 -1
  329. package/cjs/utils.js +51 -42
  330. package/cjs/utils.js.map +1 -1
  331. package/cjs/utils.spec.js +0 -4
  332. package/cjs/utils.spec.js.map +1 -1
  333. package/jest.config.js +4 -3
  334. package/package.json +9 -6
  335. package/src/api.js +17 -2
  336. package/src/auth.js +3 -3
  337. package/src/collections/activity.js +4 -4
  338. package/src/collections/adjunct-sections.js +1 -1
  339. package/src/collections/adjunct-slides.js +1 -1
  340. package/src/collections/adjunct-sub-slides.js +1 -1
  341. package/src/collections/appointment-adjunct-tags.js +1 -1
  342. package/src/collections/appointment-deckversion-tags.js +2 -2
  343. package/src/collections/appointment-duplicates.js +1 -1
  344. package/src/collections/appointment-editors.js +1 -1
  345. package/src/collections/appointment-section-tags.js +1 -1
  346. package/src/collections/appointment-slide-tags.js +1 -1
  347. package/src/collections/appointment-tags.js +20 -18
  348. package/src/collections/appointment-templates.js +26 -0
  349. package/src/collections/appointments.js +9 -9
  350. package/src/collections/assets.js +1 -1
  351. package/src/collections/auto-adjuncts.js +1 -1
  352. package/src/collections/base.js +10 -6
  353. package/src/collections/base.spec.js +2 -2
  354. package/src/collections/cms-vals.js +5 -1
  355. package/src/collections/contact-phones.js +18 -0
  356. package/src/collections/contacts.js +1 -1
  357. package/src/collections/created-assets.js +1 -1
  358. package/src/collections/customers.js +1 -1
  359. package/src/collections/deck-notes.js +1 -1
  360. package/src/collections/deck-version-screenshots.js +1 -1
  361. package/src/collections/deck-versions.js +1 -1
  362. package/src/collections/decks.js +1 -1
  363. package/src/collections/deleted-assets.js +1 -1
  364. package/src/collections/dispatches.js +2 -2
  365. package/src/collections/event-objects.js +1 -1
  366. package/src/collections/events.js +1 -1
  367. package/src/collections/groups.js +1 -1
  368. package/src/collections/images.js +1 -1
  369. package/src/collections/locations.js +1 -1
  370. package/src/collections/opportunities.js +1 -1
  371. package/src/collections/pack-diffs.js +1 -1
  372. package/src/collections/packs.js +1 -1
  373. package/src/collections/presets.js +1 -1
  374. package/src/collections/section-selections.js +1 -1
  375. package/src/collections/sections.js +1 -1
  376. package/src/collections/slide-selections.js +1 -1
  377. package/src/collections/slides.js +1 -1
  378. package/src/collections/snapshots.js +1 -1
  379. package/src/collections/sub-slides.js +1 -1
  380. package/src/collections/tags.js +1 -1
  381. package/src/collections/teams.js +1 -1
  382. package/src/collections/templates.js +1 -1
  383. package/src/collections/uploads.js +1 -1
  384. package/src/collections/users.js +1 -1
  385. package/src/collections.js +2 -0
  386. package/src/fixtures.js +193 -0
  387. package/src/models/activity-item.js +1 -1
  388. package/src/models/adjunct-section.js +7 -2
  389. package/src/models/adjunct-slide.js +7 -2
  390. package/src/models/adjunct-sub-slide.js +1 -1
  391. package/src/models/adjunct.js +39 -1
  392. package/src/models/appointment-adjunct-tags.js +1 -1
  393. package/src/models/appointment-deckversion-tags.js +1 -1
  394. package/src/models/appointment-duplicate.js +1 -1
  395. package/src/models/appointment-editor.js +1 -1
  396. package/src/models/appointment-section-tags.js +1 -1
  397. package/src/models/appointment-slide-tags.js +1 -1
  398. package/src/models/appointment-stats.js +1 -1
  399. package/src/models/appointment-tags.js +1 -1
  400. package/src/models/appointment-template.js +19 -0
  401. package/src/models/appointment-viewing.js +1 -1
  402. package/src/models/appointment.js +101 -38
  403. package/src/models/asset.js +15 -1
  404. package/src/models/auto-adjunct-key-check.js +1 -1
  405. package/src/models/auto-adjunct.js +2 -1
  406. package/src/models/base.js +36 -21
  407. package/src/models/base.spec.js +18 -18
  408. package/src/models/choicelist.js +1 -1
  409. package/src/models/cms-val.js +24 -1
  410. package/src/models/cms-val.spec.js +14 -0
  411. package/src/models/contact-phone.js +57 -0
  412. package/src/models/contact.js +1 -1
  413. package/src/models/customer.js +3 -3
  414. package/src/models/deck-note.js +1 -1
  415. package/src/models/deck-tags.js +1 -1
  416. package/src/models/deck-version-screenshot.js +1 -1
  417. package/src/models/deck-version.js +31 -6
  418. package/src/models/deck.js +1 -1
  419. package/src/models/dispatch-preview.js +1 -1
  420. package/src/models/dispatch.js +1 -1
  421. package/src/models/event-object.js +1 -1
  422. package/src/models/event.js +1 -1
  423. package/src/models/feed-data.js +2 -2
  424. package/src/models/file.js +1 -1
  425. package/src/models/group.js +1 -1
  426. package/src/models/handover.js +1 -1
  427. package/src/models/hosted-preso.js +1 -1
  428. package/src/models/image.js +1 -1
  429. package/src/models/location.js +1 -1
  430. package/src/models/manifest-json.js +56 -5
  431. package/src/models/onshare.js +1 -1
  432. package/src/models/opportunity.js +1 -1
  433. package/src/models/pack-diff.js +1 -1
  434. package/src/models/pack.js +1 -1
  435. package/src/models/preset.js +3 -1
  436. package/src/models/refresh-request.js +15 -1
  437. package/src/models/room.js +1 -1
  438. package/src/models/salesforce-lookup.js +1 -1
  439. package/src/models/section-selection.js +1 -1
  440. package/src/models/section.js +1 -1
  441. package/src/models/slide-selection.js +1 -1
  442. package/src/models/slide.js +1 -1
  443. package/src/models/snapshot.js +11 -2
  444. package/src/models/snapshot.spec.js +31 -0
  445. package/src/models/sub-slide.js +1 -1
  446. package/src/models/support-ticket.js +1 -1
  447. package/src/models/tag.js +1 -1
  448. package/src/models/team.js +14 -3
  449. package/src/models/template.js +72 -2
  450. package/src/models/tenancy.js +4 -1
  451. package/src/models/timing-log.js +2 -2
  452. package/src/models/timing-log.spec.js +1 -1
  453. package/src/models/token.js +1 -1
  454. package/src/models/transcribe-socket.js +1 -1
  455. package/src/models/user.js +13 -2
  456. package/src/models.js +2 -0
  457. package/src/presentation/appointment-presentation.js +4 -4
  458. package/src/presentation/base-presentation-collection.js +1 -1
  459. package/src/presentation/base-presentation-model.js +25 -16
  460. package/src/presentation/base-presentation-model.spec.js +5 -5
  461. package/src/presentation/presentation-deck.js +28 -23
  462. package/src/presentation/presentation-deck.spec.js +4 -4
  463. package/src/presentation/presentation-decks.js +1 -1
  464. package/src/presentation/presentation-section.js +59 -31
  465. package/src/presentation/presentation-section.spec.js +31 -32
  466. package/src/presentation/presentation-sections.js +1 -1
  467. package/src/presentation/presentation-slide.js +51 -25
  468. package/src/presentation/presentation-slide.spec.js +21 -27
  469. package/src/presentation/presentation-slides.js +1 -1
  470. package/src/presentation/presentation-subslide.js +5 -5
  471. package/src/presentation/presentation-subslide.spec.js +3 -3
  472. package/src/presentation/presentation-subslides.js +1 -1
  473. package/src/presentation/presentation.js +5 -3
  474. package/src/selections.js +71 -0
  475. package/src/sync.js +1 -1
  476. package/src/utils.js +31 -8
  477. package/src/utils.spec.js +4 -4
  478. package/.rush/temp/package-deps_test.json +0 -172
@@ -1,59 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.BaseModel = void 0;
9
-
10
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _utils = require("../utils.js");
15
-
16
11
  var _api = require("../api.js");
17
-
18
12
  var _ampersandRestCollection = _interopRequireDefault(require("ampersand-rest-collection"));
19
-
20
13
  var _ampersandModel = _interopRequireDefault(require("ampersand-model"));
21
-
22
14
  var _superagentBluebirdPromise = _interopRequireDefault(require("superagent-bluebird-promise"));
23
-
24
15
  var _lodash = _interopRequireDefault(require("lodash"));
25
-
26
16
  var _dedentJs = _interopRequireDefault(require("dedent-js"));
27
-
28
17
  var _log = _interopRequireDefault(require("../log.js"));
29
-
30
18
  var _moment = _interopRequireDefault(require("moment"));
31
-
32
19
  var _qs = _interopRequireDefault(require("qs"));
33
-
34
20
  var _stateRegister = require("../state-register.js");
35
-
36
21
  var _sync2 = require("../sync.js");
37
-
38
22
  var _url = _interopRequireDefault(require("url"));
39
-
40
23
  var _templateObject;
41
-
42
24
  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; } } }; }
43
-
44
25
  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); }
45
-
46
- 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; }
47
-
26
+ 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; }
48
27
  /**
49
28
  * @constructor
50
29
  * @alias models.BaseModel
51
30
  */
52
- var BaseModel = _ampersandModel.default.extend(
53
- /** @lends models.BaseModel# */
54
- {
31
+ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends models.BaseModel# */{
55
32
  modelName: null,
56
33
  queryData: {},
34
+ detailType: "number",
57
35
  // This is unfortunately necessary to avoid the default ampersand model/state
58
36
  // behaviour from automatically hydrating all children and collections on a fetch.
59
37
  isFetching: false,
@@ -73,82 +51,79 @@ var BaseModel = _ampersandModel.default.extend(
73
51
  urlMatchKeys: {},
74
52
  constructor: function constructor() {
75
53
  var _data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
76
-
77
54
  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
78
-
79
55
  var options = _lodash.default.defaults(opts, {
80
56
  data: {}
81
57
  });
82
-
83
58
  var data = _data;
84
59
  this._unsetChildren = {};
85
60
  this._unsetCollections = {};
86
61
  this._expandedValues = {};
87
-
88
62
  if (data === null) {
89
63
  data = {};
90
- } // Allow passing in models
91
-
64
+ }
92
65
 
66
+ // Allow passing in models
93
67
  if (data instanceof _ampersandModel.default) {
94
68
  data = data.toJSON();
95
69
  }
70
+ this.queryData = options.data;
96
71
 
97
- this.queryData = options.data; // Convert any strings into a url format we can understand
98
-
72
+ // Convert any strings into a url format we can understand
99
73
  if (_lodash.default.isString(data)) {
100
74
  data = {
101
75
  url: data
102
76
  };
103
77
  this._isFetched = false;
104
- } // Convert model ids into a format we can understand
105
-
78
+ }
106
79
 
80
+ // Convert model ids into a format we can understand
107
81
  if (_lodash.default.isNumber(data)) {
108
82
  data = {
109
83
  id: data
110
84
  };
111
85
  this._isFetched = false;
112
86
  }
113
-
114
87
  var dataCopy = _lodash.default.extend({}, data);
115
-
116
88
  this._data = dataCopy;
117
- this._options = options; // Stop making edits to these affect other models
89
+ this._options = options;
118
90
 
91
+ // Stop making edits to these affect other models
119
92
  this._children = _lodash.default.clone(this._children);
120
93
  this._collections = _lodash.default.clone(this._collections);
121
- this._definition = _lodash.default.clone(this._definition); // Check for specialized url returns from the server. This is for when the
122
- // server responds with an array of urls rather than object data.
94
+ this._definition = _lodash.default.clone(this._definition);
123
95
 
96
+ // Check for specialized url returns from the server. This is for when the
97
+ // server responds with an array of urls rather than object data.
124
98
  if (dataCopy && typeof dataCopy.url === "string") {
125
99
  this._url = dataCopy.url;
126
100
  }
127
-
128
101
  for (var key in dataCopy) {
129
- var def = dataCopy[key]; // Any models/collections passed into the constructor should be
102
+ var def = dataCopy[key];
103
+ // Any models/collections passed into the constructor should be
130
104
  // converted to JSON so that it can be parsed
131
-
132
105
  if (def && (def.isState || def instanceof _ampersandRestCollection.default)) {
133
106
  dataCopy[key] = def.toJSON();
134
107
  }
108
+ if (def && Array.isArray(def)) {
109
+ dataCopy[key] = def.map(function (obj) {
110
+ if (obj instanceof _ampersandModel.default) {
111
+ return obj.toJSON();
112
+ }
113
+ return obj;
114
+ });
115
+ }
135
116
  }
136
-
137
117
  this.registerStates();
138
-
139
118
  this._convertToValues();
140
-
141
119
  var id = this._getIDFromURL(this._url);
142
-
143
120
  if (!dataCopy.id && id) {
144
121
  dataCopy.id = id;
145
122
  }
146
-
147
123
  _ampersandModel.default.prototype.constructor.call(this, dataCopy, options);
124
+ this._setDerived();
148
125
 
149
- this._setDerived(); // Re-set the values that were previously children or collections
150
-
151
-
126
+ // Re-set the values that were previously children or collections
152
127
  this._initUnsetValues();
153
128
  },
154
129
  // If there is a model returned from a derived property, and the model
@@ -156,19 +131,17 @@ var BaseModel = _ampersandModel.default.extend(
156
131
  _setDerived: function _setDerived() {
157
132
  for (var _i = 0, _Object$keys = Object.keys(this._derived); _i < _Object$keys.length; _i++) {
158
133
  var derivedKey = _Object$keys[_i];
159
-
160
134
  if (!this._data[derivedKey]) {
161
135
  continue;
162
136
  }
163
-
164
137
  if (this[derivedKey] instanceof _ampersandModel.default) {
165
138
  for (var _i2 = 0, _Object$keys2 = Object.keys(this._data[derivedKey]); _i2 < _Object$keys2.length; _i2++) {
166
139
  var derivedProp = _Object$keys2[_i2];
167
140
  this[derivedKey].set(derivedProp, this._data[derivedKey][derivedProp]);
168
141
  }
169
- } // If it's a collection, we can just pass the data straight in
170
-
142
+ }
171
143
 
144
+ // If it's a collection, we can just pass the data straight in
172
145
  if (this[derivedKey] instanceof _ampersandRestCollection.default) {
173
146
  this[derivedKey].set(this._data[derivedKey]);
174
147
  }
@@ -177,70 +150,63 @@ var BaseModel = _ampersandModel.default.extend(
177
150
  // Internal function. Used by collection as well.
178
151
  _matchesURL: function _matchesURL(url) {
179
152
  var matchesDetail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
180
-
181
153
  if (!this.modelName || this.urlRoot() === _api.Api.getURL()) {
182
154
  return false;
183
155
  }
184
-
185
156
  var replacements = _lodash.default.extend({}, {
186
- detailKey: "number"
157
+ detailKey: this.detailType
187
158
  }, this.urlMatchKeys);
188
-
189
159
  var regexes = Object.keys(replacements).reduce(function (result, key) {
190
160
  var type = replacements[key];
191
161
  var name = key.replace(/\./g, "_");
192
-
193
162
  if (type === "number") {
194
163
  result[name] = "\\d+";
164
+ } else if (type === "uuid") {
165
+ result[name] = "([a-z]|[0-9]|-)+";
195
166
  } else if (type === "string") {
196
167
  result[name] = "\\w+";
197
168
  } else {
198
169
  throw new Error("Unknown regex type '".concat(type, "'."));
199
170
  }
200
-
201
171
  return result;
202
- }, {}); // Create a starting regex string with variables. Strips the root url so that it could
203
- // be read from any server.
172
+ }, {});
204
173
 
174
+ // Create a starting regex string with variables. Strips the root url so that it could
175
+ // be read from any server.
205
176
  var urlWithoutRoot = this.urlRoot().replace(_api.Api.getURL(), "");
206
177
  var urlStructure = urlWithoutRoot.slice();
207
-
208
178
  if (matchesDetail) {
209
179
  urlStructure += "{detailKey}/";
210
- } // Let's test if the url has even a remote chance of matching
180
+ }
181
+
182
+ // Let's test if the url has even a remote chance of matching
211
183
  // the url (like a partial match, any part without variables).
212
184
  // If that doesn't match, we can sometimes prevent a nasty log
213
185
  // error from being thrown.
214
-
215
-
216
186
  var split = urlStructure.split("/");
217
187
  var argIndex = split.findIndex(function (val) {
218
188
  return val.indexOf("{") === 0;
219
189
  });
220
-
221
190
  if (argIndex >= 0) {
222
191
  var attemptedURLWithoutRoot = url.replace(_api.Api.getURL(), "");
223
192
  var partial = split.slice(0, argIndex).join("/");
224
-
225
193
  if (attemptedURLWithoutRoot.indexOf(partial) !== 0) {
226
194
  return false;
227
195
  }
228
- } // Replace keys with regexes
229
-
196
+ }
230
197
 
198
+ // Replace keys with regexes
231
199
  var interpolatedString;
232
-
233
200
  try {
234
201
  interpolatedString = _lodash.default.template(urlStructure.replace(/\./g, "_"), {
235
202
  interpolate: /{([\s\S\.]+?)}/g
236
203
  })(regexes);
237
204
  } catch (e) {
238
205
  _log.default.error((0, _dedentJs.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t\tFailed to match URL '", "' for model '", "'.\n\t\t\t\tThis is usually because the regex type for a key hasn't been set.\n\t\t\t\tError: "])), url, this.modelName), e);
239
-
240
206
  return false;
241
- } // Convert into a regex and test if url matches
242
-
207
+ }
243
208
 
209
+ // Convert into a regex and test if url matches
244
210
  var baseString = ".*".concat(interpolatedString.replace(/\//m, "/"), "$");
245
211
  var re = new RegExp(baseString);
246
212
  return re.test(url);
@@ -253,30 +219,26 @@ var BaseModel = _ampersandModel.default.extend(
253
219
  // and strip out the '/api' from both the resource url and the variable url
254
220
  // so that we can use the remaining part to isolate the id
255
221
  _getIDFromURL: function _getIDFromURL(url) {
256
- var resourceURL = this.getResourceURL();
257
-
222
+ var resource = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
223
+ var resourceURL = resource || this.getResourceURL();
258
224
  if (!url || !resourceURL) {
259
225
  return null;
260
226
  }
261
-
262
227
  var urlPath = _url.default.parse(url).path;
228
+ var resourceURLPath = _url.default.parse(resourceURL).path;
263
229
 
264
- var resourceURLPath = _url.default.parse(resourceURL).path; // Remove the '/api' if present
265
-
266
-
230
+ // Remove the '/api' if present
267
231
  var resourceEnd = resourceURLPath.split("/api").join("");
268
- var urlEnd = urlPath.split("/api").join(""); // If they are the same, there is no id at the end
232
+ var urlEnd = urlPath.split("/api").join("");
269
233
 
234
+ // If they are the same, there is no id at the end
270
235
  if (!urlEnd || urlEnd === resourceEnd) {
271
236
  return null;
272
237
  }
273
-
274
238
  var idStr = urlEnd.split(resourceEnd).join("");
275
-
276
239
  if ((idStr.match(/\//g) || []).length === 1) {
277
240
  return parseInt(idStr.slice(0, -1), 10);
278
241
  }
279
-
280
242
  return null;
281
243
  },
282
244
  // Public version for details only
@@ -295,11 +257,9 @@ var BaseModel = _ampersandModel.default.extend(
295
257
  if (typeof currentVal === "undefined") {
296
258
  return false;
297
259
  }
298
-
299
260
  if (currentVal || newVal) {
300
261
  return (0, _moment.default)(currentVal).isSame((0, _moment.default)(newVal));
301
262
  }
302
-
303
263
  return currentVal !== newVal;
304
264
  }
305
265
  },
@@ -323,7 +283,6 @@ var BaseModel = _ampersandModel.default.extend(
323
283
  }
324
284
  }
325
285
  },
326
-
327
286
  /**
328
287
  * @property {number} [id]
329
288
  */
@@ -333,7 +292,6 @@ var BaseModel = _ampersandModel.default.extend(
333
292
  required: false
334
293
  }
335
294
  },
336
-
337
295
  /*
338
296
  * Overridable serialization for sending data to
339
297
  * the server
@@ -343,29 +301,23 @@ var BaseModel = _ampersandModel.default.extend(
343
301
  },
344
302
  _registerChildModel: function _registerChildModel(states, prop, model) {
345
303
  var Model = _stateRegister.registeredStates[model];
346
-
347
304
  if (!Model) {
348
305
  throw new Error("'".concat(model, "' not found! Did you forget to import it on the '").concat(this.modelName, "' model?"));
349
306
  }
350
-
351
307
  this._children[prop] = Model;
352
308
  },
353
309
  _registerCollection: function _registerCollection(state, prop, collection) {
354
310
  var Collection = state[collection];
355
-
356
311
  if (!Collection) {
357
312
  throw new Error("'".concat(collection, "' not found! Did you forget to import it on the '").concat(this.modelName, "' model?"));
358
313
  }
359
-
360
314
  this._collections[prop] = Collection;
361
315
  },
362
-
363
316
  /*
364
317
  * Replace strings respresenting a registered model/collection the function
365
318
  */
366
319
  registerStates: function registerStates() {
367
320
  var _this = this;
368
-
369
321
  // Loop through children and replace any parent objects directly to stop
370
322
  // maximum stack overflows
371
323
  _lodash.default.each(this._children, function (model, prop) {
@@ -373,9 +325,10 @@ var BaseModel = _ampersandModel.default.extend(
373
325
  if (_this._options.parent && model === _this._options.parent._registerName) {
374
326
  // This part is important, if the link stays when there's a circular dependency,
375
327
  // this will continue forever.
376
- delete _this._children[prop]; // Can be a string or an object so we use "any". We add the definition
377
- // so that we can retrieve this value later.
328
+ delete _this._children[prop];
378
329
 
330
+ // Can be a string or an object so we use "any". We add the definition
331
+ // so that we can retrieve this value later.
379
332
  _this._definition[prop] = {
380
333
  type: "any"
381
334
  };
@@ -384,9 +337,9 @@ var BaseModel = _ampersandModel.default.extend(
384
337
  _this._registerChildModel(_stateRegister.registeredStates, prop, model);
385
338
  }
386
339
  }
387
- }, this); // Loop throught the collections and replace with the registered collection
388
-
340
+ }, this);
389
341
 
342
+ // Loop throught the collections and replace with the registered collection
390
343
  _lodash.default.each(this._collections, function (collection, prop) {
391
344
  if (typeof collection === "string") {
392
345
  _this._registerCollection(_stateRegister.registeredStates, prop, collection);
@@ -395,14 +348,13 @@ var BaseModel = _ampersandModel.default.extend(
395
348
  },
396
349
  _updateResponse: function _updateResponse(response) {
397
350
  var _this2 = this;
398
-
399
351
  this._data = response || {};
400
-
401
352
  if (!response) {
402
353
  return;
403
- } // Set previously-initialised children & collections with new
404
- // data retrieved during the fetch
354
+ }
405
355
 
356
+ // Set previously-initialised children & collections with new
357
+ // data retrieved during the fetch
406
358
 
407
359
  Object.keys(this._children).forEach(function (key) {
408
360
  if (response[key]) {
@@ -417,41 +369,33 @@ var BaseModel = _ampersandModel.default.extend(
417
369
  },
418
370
  save: function save() {
419
371
  var _this3 = this;
420
-
421
372
  return _ampersandModel.default.prototype.save.apply(this, arguments).tap(function (response) {
422
373
  _this3._updateResponse(response);
423
374
  });
424
375
  },
425
376
  fetch: function fetch() {
426
377
  var _this4 = this;
427
-
428
378
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
429
-
430
379
  if (options.url) {
431
380
  this._url = options.url;
432
381
  }
433
-
434
382
  this._options = _lodash.default.extend({}, this._options, options);
435
383
  this.isFetching = true;
436
384
  return _ampersandModel.default.prototype.fetch.apply(this, arguments).tap(function (response) {
437
385
  _this4._isFetched = true;
438
386
  _this4.isFetching = false;
439
-
440
387
  _this4._updateResponse(response);
441
388
  });
442
389
  },
443
390
  options: function options() {
444
391
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
445
-
446
392
  if (options.url) {
447
393
  this._url = options.url;
448
394
  }
449
-
450
395
  return (0, _superagentBluebirdPromise.default)("OPTIONS", this.url()).set(BaseModel.Auth.headers).then(function (res) {
451
396
  if (res.body && res.body.actions) {
452
397
  return res.body.actions;
453
398
  }
454
-
455
399
  return null;
456
400
  });
457
401
  },
@@ -460,15 +404,11 @@ var BaseModel = _ampersandModel.default.extend(
460
404
  },
461
405
  getSafeAttrs: function getSafeAttrs(key) {
462
406
  var _this5 = this;
463
-
464
407
  if (!_lodash.default.isUndefined(key)) {
465
408
  return !_lodash.default.isUndefined(this._expandedValues[key]) ? this._expandedValues[key] : this._values[key];
466
409
  }
467
-
468
410
  var attrs = {};
469
-
470
411
  var keys = _lodash.default.uniq(_lodash.default.concat(_lodash.default.concat(Object.keys(this._unsetChildren), Object.keys(this._unsetCollections)), Object.keys(this._values)));
471
-
472
412
  keys.forEach(function (key) {
473
413
  if (!_lodash.default.isUndefined(_this5._values[key])) {
474
414
  attrs[key] = _this5._values[key];
@@ -483,7 +423,6 @@ var BaseModel = _ampersandModel.default.extend(
483
423
  // definitions for them (necessary for Ampersand State to treat them as values)
484
424
  _convertToValues: function _convertToValues() {
485
425
  var _this6 = this;
486
-
487
426
  Object.keys(this._children).forEach(function (key) {
488
427
  _this6._definition[key] = {
489
428
  type: "any"
@@ -503,14 +442,11 @@ var BaseModel = _ampersandModel.default.extend(
503
442
  // The default version always creates an empty model
504
443
  _initChildren: function _initChildren() {
505
444
  var child;
506
-
507
445
  if (!this._children) {
508
446
  return;
509
447
  }
510
-
511
448
  for (child in this._children) {
512
449
  var val = this._data[child];
513
-
514
450
  if (val) {
515
451
  // Assume here that if it's a string, it's a url.
516
452
  if (typeof val === "string") {
@@ -518,15 +454,14 @@ var BaseModel = _ampersandModel.default.extend(
518
454
  url: val
519
455
  };
520
456
  }
521
- } // If hydrate is set to false, this will be the name of the child and
522
- // not the constructor. We want to add the non-hydrated url if so.
523
-
457
+ }
524
458
 
459
+ // If hydrate is set to false, this will be the name of the child and
460
+ // not the constructor. We want to add the non-hydrated url if so.
525
461
  if (typeof this._children[child] === "function") {
526
462
  this._safeSet(child, new this._children[child](val, {
527
463
  parent: this
528
464
  }));
529
-
530
465
  this.listenTo(this[child], "all", this._getCachedEventBubblingHandler(child));
531
466
  } else {
532
467
  this._safeSet(child, val);
@@ -536,24 +471,21 @@ var BaseModel = _ampersandModel.default.extend(
536
471
  // Override the initialization of collections to pass in data to the constructor.
537
472
  _initCollections: function _initCollections() {
538
473
  var coll;
539
-
540
474
  if (!this._collections) {
541
475
  return;
542
476
  }
543
-
544
477
  for (coll in this._collections) {
545
478
  var val = this._data[coll];
546
-
547
479
  if (val) {
548
480
  if (typeof val === "string") {
549
481
  val = {
550
482
  url: val
551
483
  };
552
484
  }
553
- } // If hydrate is set to false, this will be the name of the collection and
554
- // not the constructor. We want to add the non-hydrated array if so.
555
-
485
+ }
556
486
 
487
+ // If hydrate is set to false, this will be the name of the collection and
488
+ // not the constructor. We want to add the non-hydrated array if so.
557
489
  if (typeof this._collections[coll] === "function") {
558
490
  this._safeSet(coll, new this._collections[coll](val, {
559
491
  parent: this
@@ -565,13 +497,11 @@ var BaseModel = _ampersandModel.default.extend(
565
497
  },
566
498
  _initUnsetValues: function _initUnsetValues() {
567
499
  var _this7 = this;
568
-
569
500
  _lodash.default.each(this._unsetChildren, function (child, key) {
570
501
  var tmpValue = _this7._values[key];
571
502
  replacePropertyDefinition(_this7, key);
572
503
  _this7[key] = tmpValue;
573
504
  });
574
-
575
505
  _lodash.default.each(this._unsetCollections, function (child, key) {
576
506
  var tmpValue = _this7._values[key];
577
507
  replacePropertyDefinition(_this7, key);
@@ -590,22 +520,17 @@ var BaseModel = _ampersandModel.default.extend(
590
520
  if (path === null) {
591
521
  return null;
592
522
  }
593
-
594
523
  var url = path;
595
-
596
524
  if (url.slice(-1) !== "/" && url.indexOf("?") === -1) {
597
525
  url += "/";
598
526
  }
599
-
600
527
  if (Object.keys(this.queryData).length) {
601
528
  url += "?".concat(_qs.default.stringify(this.queryData, {
602
529
  arrayFormat: "repeat"
603
530
  }));
604
531
  }
605
-
606
532
  return url;
607
533
  },
608
-
609
534
  /*
610
535
  * Get url
611
536
  * @return {String}
@@ -614,7 +539,6 @@ var BaseModel = _ampersandModel.default.extend(
614
539
  if (this._url && this.isNew()) {
615
540
  return this.getFullURLPath(this._url);
616
541
  }
617
-
618
542
  return this.getFullURLPath(this.getPlainURL());
619
543
  },
620
544
  // Returns url without query data
@@ -622,30 +546,27 @@ var BaseModel = _ampersandModel.default.extend(
622
546
  if (!this.modelName) {
623
547
  return null;
624
548
  }
625
-
626
549
  var resp = _ampersandModel.default.prototype.url.call(this);
627
-
628
550
  if (resp.slice(-1) !== "/" && resp.indexOf("?") === -1) {
629
551
  resp += "/";
630
- } // Replace any values in a url with one from the model.
552
+ }
553
+ if (!resp.includes("{") || !resp.includes("}")) {
554
+ return resp;
555
+ }
556
+
557
+ // Replace any values in a url with one from the model.
631
558
  // So if you have /path/to/{model.id}/
632
559
  // It will check the model from "this.model.id" and replace
633
560
  // it in the url
634
-
635
-
636
561
  var re = /(\{(?:\w+\.?)+\})/g;
637
562
  var matches = resp.match(re) || [];
638
-
639
563
  var _iterator = _createForOfIteratorHelper(matches),
640
- _step;
641
-
564
+ _step;
642
565
  try {
643
566
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
644
567
  var match = _step.value;
645
568
  var path = match.slice(1, -1);
646
-
647
569
  var replacement = _lodash.default.get(this, path);
648
-
649
570
  if (replacement) {
650
571
  resp = resp.replace(match, replacement);
651
572
  } else if (!this.isNew()) {
@@ -657,22 +578,18 @@ var BaseModel = _ampersandModel.default.extend(
657
578
  } finally {
658
579
  _iterator.f();
659
580
  }
660
-
661
581
  return resp;
662
582
  },
663
583
  getResourceURL: function getResourceURL() {
664
584
  if (this.modelName === null && !Object.keys(_api.Api.resources).length) {
665
585
  return null;
666
586
  }
667
-
668
587
  if (!Object.keys(_api.Api.resources).length) {
669
588
  return "/".concat(this.modelName, "/");
670
589
  }
671
-
672
590
  if (this.modelName === null) {
673
591
  return _api.Api.getURL();
674
592
  }
675
-
676
593
  return _api.Api.getResourceURL(this.modelName);
677
594
  },
678
595
  sync: function sync() {
@@ -680,26 +597,22 @@ var BaseModel = _ampersandModel.default.extend(
680
597
  },
681
598
  serialize: function serialize() {
682
599
  var _this8 = this;
683
-
600
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
601
+ derived: true
602
+ };
684
603
  // Return nothing if data passed is falsy. More than likely this is
685
604
  // a null value
686
605
  if (!this._data) {
687
606
  return {};
688
607
  }
689
-
690
608
  var data = _ampersandModel.default.prototype.serialize.apply(this, arguments);
691
-
692
609
  data.url = this.url();
693
- var derived = this.getAttributes({
694
- derived: true
695
- });
610
+ var derived = this.getAttributes(opts);
696
611
  derived = Object.keys(derived).reduce(function (object, key) {
697
612
  var value = derived[key];
698
-
699
613
  if (value instanceof _ampersandRestCollection.default || value instanceof _ampersandModel.default) {
700
614
  value = value.toJSON();
701
615
  }
702
-
703
616
  object[key] = value;
704
617
  return object;
705
618
  }, {});
@@ -719,7 +632,6 @@ var BaseModel = _ampersandModel.default.extend(
719
632
  // be hydrated
720
633
  _retrieveURL: function _retrieveURL(item) {
721
634
  var _this9 = this;
722
-
723
635
  if (_lodash.default.isUndefined(item) || item === null) {
724
636
  return item;
725
637
  } else if (typeof item === "string") {
@@ -737,13 +649,9 @@ var BaseModel = _ampersandModel.default.extend(
737
649
  } else if ((0, _typeof2.default)(item) === "object" && item !== null) {
738
650
  return typeof item.url === "function" ? item.url() : item.url;
739
651
  }
740
-
741
652
  return null;
742
653
  }
743
654
  });
744
-
745
- exports.BaseModel = BaseModel;
746
-
747
655
  function replacePropertyDefinition(object, name) {
748
656
  function addCollection(value) {
749
657
  var data = typeof value === "string" ? {
@@ -755,7 +663,6 @@ function replacePropertyDefinition(object, name) {
755
663
  object._expandedValues[name] = collection;
756
664
  return object._expandedValues[name];
757
665
  }
758
-
759
666
  function addChild(value) {
760
667
  var data = typeof value === "string" ? {
761
668
  url: value
@@ -766,19 +673,16 @@ function replacePropertyDefinition(object, name) {
766
673
  object._expandedValues[name] = child;
767
674
  return object._expandedValues[name];
768
675
  }
769
-
770
676
  function expandCollection(value) {
771
677
  object._collections[name] = object._unsetCollections[name];
772
678
  delete object._unsetCollections[name];
773
679
  return addCollection(value);
774
680
  }
775
-
776
681
  function expandChild(value) {
777
682
  object._children[name] = object._unsetChildren[name];
778
683
  delete object._unsetChildren[name];
779
684
  return addChild(value);
780
685
  }
781
-
782
686
  Object.defineProperty(object, name, {
783
687
  set: function set(val) {
784
688
  if (_lodash.default.includes(Object.keys(object._children), name)) {
@@ -805,34 +709,28 @@ function replacePropertyDefinition(object, name) {
805
709
  if (!this._values) {
806
710
  throw new Error("Trying to retrieve value ".concat(name, " of model ").concat(object.modelName, " during constructor"));
807
711
  }
808
-
809
712
  if ((_lodash.default.includes(Object.keys(object._collections), name) || _lodash.default.includes(Object.keys(object._children), name)) && _lodash.default.includes(Object.keys(object._expandedValues), name)) {
810
713
  return object._expandedValues[name];
811
714
  }
812
-
813
715
  var value = object._values[name];
814
-
815
716
  if (this.isFetching) {
816
717
  return value;
817
718
  }
818
-
819
719
  if ((_lodash.default.isUndefined(value) || value === null) && !(object._unsetChildren[name] && object._unsetChildren[name].canBeEmpty) && !(object._unsetCollections[name] && object._unsetCollections[name].canBeEmpty)) {
820
720
  return value;
821
721
  }
822
-
823
722
  if (_lodash.default.includes(Object.keys(object._unsetCollections), name)) {
824
723
  return expandCollection(value);
825
724
  } else if (_lodash.default.includes(Object.keys(object._unsetChildren), name)) {
826
725
  return expandChild(value);
827
726
  }
828
-
829
727
  return value;
830
728
  },
831
729
  configurable: true
832
730
  });
833
- } // Make matchesURL available as a static method
834
-
731
+ }
835
732
 
733
+ // Make matchesURL available as a static method
836
734
  BaseModel.matchesURL = function (url) {
837
735
  return this.prototype.matchesURL(url);
838
736
  };