@livepreso/api 6.45.0 → 6.47.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 (364) 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/package-deps_build.json +156 -141
  9. package/.rush/temp/shrinkwrap-deps.json +281 -214
  10. package/CHANGELOG.json +29 -0
  11. package/CHANGELOG.md +15 -1
  12. package/README.md +4 -4
  13. package/api.build.log +6 -3
  14. package/api.test.cache.log +1 -0
  15. package/api.test.log +19 -0
  16. package/cjs/api.js +18 -2
  17. package/cjs/api.js.map +1 -1
  18. package/cjs/auth.js +3 -3
  19. package/cjs/auth.js.map +1 -1
  20. package/cjs/collections/activity.js.map +1 -1
  21. package/cjs/collections/adjunct-sections.js.map +1 -1
  22. package/cjs/collections/adjunct-slides.js.map +1 -1
  23. package/cjs/collections/adjunct-sub-slides.js.map +1 -1
  24. package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
  25. package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
  26. package/cjs/collections/appointment-editors.js.map +1 -1
  27. package/cjs/collections/appointment-section-tags.js.map +1 -1
  28. package/cjs/collections/appointment-slide-tags.js.map +1 -1
  29. package/cjs/collections/appointment-tags.js +9 -7
  30. package/cjs/collections/appointment-tags.js.map +1 -1
  31. package/cjs/collections/appointment-templates.js +36 -0
  32. package/cjs/collections/appointment-templates.js.map +1 -0
  33. package/cjs/collections/appointments.js.map +1 -1
  34. package/cjs/collections/assets.js.map +1 -1
  35. package/cjs/collections/auto-adjuncts.js.map +1 -1
  36. package/cjs/collections/base.js +4 -0
  37. package/cjs/collections/base.js.map +1 -1
  38. package/cjs/collections/base.spec.js.map +1 -1
  39. package/cjs/collections/cms-vals.js +5 -0
  40. package/cjs/collections/cms-vals.js.map +1 -1
  41. package/cjs/collections/contact-phones.js +28 -0
  42. package/cjs/collections/contact-phones.js.map +1 -0
  43. package/cjs/collections/contacts.js.map +1 -1
  44. package/cjs/collections/created-assets.js.map +1 -1
  45. package/cjs/collections/customers.js.map +1 -1
  46. package/cjs/collections/deck-notes.js.map +1 -1
  47. package/cjs/collections/deck-version-screenshots.js.map +1 -1
  48. package/cjs/collections/deck-versions.js.map +1 -1
  49. package/cjs/collections/decks.js.map +1 -1
  50. package/cjs/collections/deleted-assets.js.map +1 -1
  51. package/cjs/collections/dispatches.js.map +1 -1
  52. package/cjs/collections/event-objects.js.map +1 -1
  53. package/cjs/collections/events.js.map +1 -1
  54. package/cjs/collections/groups.js.map +1 -1
  55. package/cjs/collections/images.js.map +1 -1
  56. package/cjs/collections/locations.js.map +1 -1
  57. package/cjs/collections/opportunities.js.map +1 -1
  58. package/cjs/collections/pack-diffs.js.map +1 -1
  59. package/cjs/collections/packs.js.map +1 -1
  60. package/cjs/collections/presets.js.map +1 -1
  61. package/cjs/collections/section-selections.js.map +1 -1
  62. package/cjs/collections/sections.js.map +1 -1
  63. package/cjs/collections/signers.js +28 -0
  64. package/cjs/collections/signers.js.map +1 -0
  65. package/cjs/collections/signing-requests.js +28 -0
  66. package/cjs/collections/signing-requests.js.map +1 -0
  67. package/cjs/collections/slide-selections.js.map +1 -1
  68. package/cjs/collections/slides.js.map +1 -1
  69. package/cjs/collections/snapshots.js.map +1 -1
  70. package/cjs/collections/sub-slides.js.map +1 -1
  71. package/cjs/collections/tags.js.map +1 -1
  72. package/cjs/collections/teams.js.map +1 -1
  73. package/cjs/collections/templates.js.map +1 -1
  74. package/cjs/collections/uploads.js.map +1 -1
  75. package/cjs/collections/users.js.map +1 -1
  76. package/cjs/collections.js +52 -13
  77. package/cjs/collections.js.map +1 -1
  78. package/cjs/fixtures.js +232 -0
  79. package/cjs/fixtures.js.map +1 -0
  80. package/cjs/index.js +28 -4
  81. package/cjs/index.js.map +1 -1
  82. package/cjs/models/activity-item.js +10 -2
  83. package/cjs/models/activity-item.js.map +1 -1
  84. package/cjs/models/adjunct-section.js +7 -2
  85. package/cjs/models/adjunct-section.js.map +1 -1
  86. package/cjs/models/adjunct-slide.js +7 -2
  87. package/cjs/models/adjunct-slide.js.map +1 -1
  88. package/cjs/models/adjunct-sub-slide.js.map +1 -1
  89. package/cjs/models/adjunct.js +40 -0
  90. package/cjs/models/adjunct.js.map +1 -1
  91. package/cjs/models/appointment-adjunct-tags.js.map +1 -1
  92. package/cjs/models/appointment-deckversion-tags.js.map +1 -1
  93. package/cjs/models/appointment-editor.js.map +1 -1
  94. package/cjs/models/appointment-section-tags.js.map +1 -1
  95. package/cjs/models/appointment-slide-tags.js.map +1 -1
  96. package/cjs/models/appointment-stats.js.map +1 -1
  97. package/cjs/models/appointment-tags.js.map +1 -1
  98. package/cjs/models/appointment-template.js +28 -0
  99. package/cjs/models/appointment-template.js.map +1 -0
  100. package/cjs/models/appointment-viewing.js.map +1 -1
  101. package/cjs/models/appointment.js +108 -15
  102. package/cjs/models/appointment.js.map +1 -1
  103. package/cjs/models/asset.js +12 -0
  104. package/cjs/models/asset.js.map +1 -1
  105. package/cjs/models/auto-adjunct-key-check.js.map +1 -1
  106. package/cjs/models/auto-adjunct.js +2 -1
  107. package/cjs/models/auto-adjunct.js.map +1 -1
  108. package/cjs/models/base.js +25 -5
  109. package/cjs/models/base.js.map +1 -1
  110. package/cjs/models/base.spec.js.map +1 -1
  111. package/cjs/models/choicelist.js.map +1 -1
  112. package/cjs/models/cms-val.js +35 -1
  113. package/cjs/models/cms-val.js.map +1 -1
  114. package/cjs/models/cms-val.spec.js +32 -0
  115. package/cjs/models/cms-val.spec.js.map +1 -0
  116. package/cjs/models/contact-phone.js +66 -0
  117. package/cjs/models/contact-phone.js.map +1 -0
  118. package/cjs/models/contact.js.map +1 -1
  119. package/cjs/models/customer.js +3 -1
  120. package/cjs/models/customer.js.map +1 -1
  121. package/cjs/models/deck-note.js.map +1 -1
  122. package/cjs/models/deck-tags.js.map +1 -1
  123. package/cjs/models/deck-version-screenshot.js.map +1 -1
  124. package/cjs/models/deck-version.js +31 -8
  125. package/cjs/models/deck-version.js.map +1 -1
  126. package/cjs/models/deck.js.map +1 -1
  127. package/cjs/models/dispatch-preview.js.map +1 -1
  128. package/cjs/models/dispatch.js.map +1 -1
  129. package/cjs/models/event-object.js.map +1 -1
  130. package/cjs/models/event.js.map +1 -1
  131. package/cjs/models/feed-data.js.map +1 -1
  132. package/cjs/models/file.js.map +1 -1
  133. package/cjs/models/group.js.map +1 -1
  134. package/cjs/models/handover.js.map +1 -1
  135. package/cjs/models/hosted-preso.js.map +1 -1
  136. package/cjs/models/image.js.map +1 -1
  137. package/cjs/models/location.js.map +1 -1
  138. package/cjs/models/manifest-json.js +70 -2
  139. package/cjs/models/manifest-json.js.map +1 -1
  140. package/cjs/models/onshare.js.map +1 -1
  141. package/cjs/models/opportunity.js.map +1 -1
  142. package/cjs/models/pack-diff.js.map +1 -1
  143. package/cjs/models/pack.js.map +1 -1
  144. package/cjs/models/preset.js +4 -1
  145. package/cjs/models/preset.js.map +1 -1
  146. package/cjs/models/refresh-request.js +24 -0
  147. package/cjs/models/refresh-request.js.map +1 -1
  148. package/cjs/models/room.js.map +1 -1
  149. package/cjs/models/salesforce-lookup.js.map +1 -1
  150. package/cjs/models/section-selection.js.map +1 -1
  151. package/cjs/models/section.js.map +1 -1
  152. package/cjs/models/signer.js +47 -0
  153. package/cjs/models/signer.js.map +1 -0
  154. package/cjs/models/signing-request.js +66 -0
  155. package/cjs/models/signing-request.js.map +1 -0
  156. package/cjs/models/slide-selection.js.map +1 -1
  157. package/cjs/models/slide.js.map +1 -1
  158. package/cjs/models/snapshot.js +41 -2
  159. package/cjs/models/snapshot.js.map +1 -1
  160. package/cjs/models/snapshot.spec.js +51 -0
  161. package/cjs/models/snapshot.spec.js.map +1 -0
  162. package/cjs/models/sub-slide.js.map +1 -1
  163. package/cjs/models/support-ticket.js.map +1 -1
  164. package/cjs/models/tag.js.map +1 -1
  165. package/cjs/models/team.js +15 -2
  166. package/cjs/models/team.js.map +1 -1
  167. package/cjs/models/template.js +105 -3
  168. package/cjs/models/template.js.map +1 -1
  169. package/cjs/models/tenancy.js +3 -0
  170. package/cjs/models/tenancy.js.map +1 -1
  171. package/cjs/models/timing-log.js.map +1 -1
  172. package/cjs/models/timing-log.spec.js.map +1 -1
  173. package/cjs/models/token.js.map +1 -1
  174. package/cjs/models/transcribe-socket.js.map +1 -1
  175. package/cjs/models/user.js +7 -2
  176. package/cjs/models/user.js.map +1 -1
  177. package/cjs/models.js +52 -13
  178. package/cjs/models.js.map +1 -1
  179. package/cjs/presentation/appointment-presentation.js.map +1 -1
  180. package/cjs/presentation/base-presentation-collection.js.map +1 -1
  181. package/cjs/presentation/base-presentation-model.js +23 -14
  182. package/cjs/presentation/base-presentation-model.js.map +1 -1
  183. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  184. package/cjs/presentation/presentation-deck.js +5 -1
  185. package/cjs/presentation/presentation-deck.js.map +1 -1
  186. package/cjs/presentation/presentation-deck.spec.js.map +1 -1
  187. package/cjs/presentation/presentation-decks.js.map +1 -1
  188. package/cjs/presentation/presentation-section.js +33 -8
  189. package/cjs/presentation/presentation-section.js.map +1 -1
  190. package/cjs/presentation/presentation-section.spec.js +13 -20
  191. package/cjs/presentation/presentation-section.spec.js.map +1 -1
  192. package/cjs/presentation/presentation-sections.js.map +1 -1
  193. package/cjs/presentation/presentation-slide.js +43 -9
  194. package/cjs/presentation/presentation-slide.js.map +1 -1
  195. package/cjs/presentation/presentation-slide.spec.js +11 -18
  196. package/cjs/presentation/presentation-slide.spec.js.map +1 -1
  197. package/cjs/presentation/presentation-slides.js.map +1 -1
  198. package/cjs/presentation/presentation-subslide.js.map +1 -1
  199. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  200. package/cjs/presentation/presentation-subslides.js.map +1 -1
  201. package/cjs/presentation/presentation.js +8 -3
  202. package/cjs/presentation/presentation.js.map +1 -1
  203. package/cjs/selections.js +106 -0
  204. package/cjs/selections.js.map +1 -0
  205. package/cjs/sync.js.map +1 -1
  206. package/cjs/utils.js +43 -6
  207. package/cjs/utils.js.map +1 -1
  208. package/cjs/utils.spec.js +1 -1
  209. package/cjs/utils.spec.js.map +1 -1
  210. package/jest.config.js +4 -3
  211. package/package.json +12 -9
  212. package/src/api.js +17 -2
  213. package/src/auth.js +3 -3
  214. package/src/collections/activity.js +4 -4
  215. package/src/collections/adjunct-sections.js +1 -1
  216. package/src/collections/adjunct-slides.js +1 -1
  217. package/src/collections/adjunct-sub-slides.js +1 -1
  218. package/src/collections/appointment-adjunct-tags.js +1 -1
  219. package/src/collections/appointment-deckversion-tags.js +2 -2
  220. package/src/collections/appointment-editors.js +1 -1
  221. package/src/collections/appointment-section-tags.js +1 -1
  222. package/src/collections/appointment-slide-tags.js +1 -1
  223. package/src/collections/appointment-tags.js +20 -18
  224. package/src/collections/appointment-templates.js +26 -0
  225. package/src/collections/appointments.js +9 -9
  226. package/src/collections/assets.js +1 -1
  227. package/src/collections/auto-adjuncts.js +1 -1
  228. package/src/collections/base.js +10 -6
  229. package/src/collections/base.spec.js +2 -2
  230. package/src/collections/cms-vals.js +5 -1
  231. package/src/collections/contact-phones.js +18 -0
  232. package/src/collections/contacts.js +1 -1
  233. package/src/collections/created-assets.js +1 -1
  234. package/src/collections/customers.js +1 -1
  235. package/src/collections/deck-notes.js +1 -1
  236. package/src/collections/deck-version-screenshots.js +1 -1
  237. package/src/collections/deck-versions.js +1 -1
  238. package/src/collections/decks.js +1 -1
  239. package/src/collections/deleted-assets.js +1 -1
  240. package/src/collections/dispatches.js +2 -2
  241. package/src/collections/event-objects.js +1 -1
  242. package/src/collections/events.js +1 -1
  243. package/src/collections/groups.js +1 -1
  244. package/src/collections/images.js +1 -1
  245. package/src/collections/locations.js +1 -1
  246. package/src/collections/opportunities.js +1 -1
  247. package/src/collections/pack-diffs.js +1 -1
  248. package/src/collections/packs.js +1 -1
  249. package/src/collections/presets.js +1 -1
  250. package/src/collections/section-selections.js +1 -1
  251. package/src/collections/sections.js +1 -1
  252. package/src/collections/signers.js +18 -0
  253. package/src/collections/signing-requests.js +18 -0
  254. package/src/collections/slide-selections.js +1 -1
  255. package/src/collections/slides.js +1 -1
  256. package/src/collections/snapshots.js +1 -1
  257. package/src/collections/sub-slides.js +1 -1
  258. package/src/collections/tags.js +1 -1
  259. package/src/collections/teams.js +1 -1
  260. package/src/collections/templates.js +1 -1
  261. package/src/collections/uploads.js +1 -1
  262. package/src/collections/users.js +1 -1
  263. package/src/collections.js +4 -1
  264. package/src/fixtures.js +195 -0
  265. package/src/index.js +2 -3
  266. package/src/models/activity-item.js +9 -1
  267. package/src/models/adjunct-section.js +7 -2
  268. package/src/models/adjunct-slide.js +7 -2
  269. package/src/models/adjunct-sub-slide.js +1 -1
  270. package/src/models/adjunct.js +39 -1
  271. package/src/models/appointment-adjunct-tags.js +1 -1
  272. package/src/models/appointment-deckversion-tags.js +1 -1
  273. package/src/models/appointment-editor.js +1 -1
  274. package/src/models/appointment-section-tags.js +1 -1
  275. package/src/models/appointment-slide-tags.js +1 -1
  276. package/src/models/appointment-stats.js +1 -1
  277. package/src/models/appointment-tags.js +1 -1
  278. package/src/models/appointment-template.js +19 -0
  279. package/src/models/appointment-viewing.js +1 -1
  280. package/src/models/appointment.js +104 -38
  281. package/src/models/asset.js +15 -1
  282. package/src/models/auto-adjunct-key-check.js +1 -1
  283. package/src/models/auto-adjunct.js +2 -1
  284. package/src/models/base.js +36 -21
  285. package/src/models/base.spec.js +18 -18
  286. package/src/models/choicelist.js +1 -1
  287. package/src/models/cms-val.js +24 -1
  288. package/src/models/cms-val.spec.js +14 -0
  289. package/src/models/contact-phone.js +57 -0
  290. package/src/models/contact.js +1 -1
  291. package/src/models/customer.js +3 -3
  292. package/src/models/deck-note.js +1 -1
  293. package/src/models/deck-tags.js +1 -1
  294. package/src/models/deck-version-screenshot.js +1 -1
  295. package/src/models/deck-version.js +32 -6
  296. package/src/models/deck.js +1 -1
  297. package/src/models/dispatch-preview.js +1 -1
  298. package/src/models/dispatch.js +1 -1
  299. package/src/models/event-object.js +1 -1
  300. package/src/models/event.js +1 -1
  301. package/src/models/feed-data.js +2 -2
  302. package/src/models/file.js +1 -1
  303. package/src/models/group.js +1 -1
  304. package/src/models/handover.js +1 -1
  305. package/src/models/hosted-preso.js +1 -1
  306. package/src/models/image.js +1 -1
  307. package/src/models/location.js +1 -1
  308. package/src/models/manifest-json.js +65 -5
  309. package/src/models/onshare.js +1 -1
  310. package/src/models/opportunity.js +1 -1
  311. package/src/models/pack-diff.js +1 -1
  312. package/src/models/pack.js +1 -1
  313. package/src/models/preset.js +4 -1
  314. package/src/models/refresh-request.js +16 -1
  315. package/src/models/room.js +1 -1
  316. package/src/models/salesforce-lookup.js +1 -1
  317. package/src/models/section-selection.js +1 -1
  318. package/src/models/section.js +1 -1
  319. package/src/models/signer.js +37 -0
  320. package/src/models/signing-request.js +56 -0
  321. package/src/models/slide-selection.js +1 -1
  322. package/src/models/slide.js +1 -1
  323. package/src/models/snapshot.js +30 -2
  324. package/src/models/snapshot.spec.js +31 -0
  325. package/src/models/sub-slide.js +1 -1
  326. package/src/models/support-ticket.js +1 -1
  327. package/src/models/tag.js +1 -1
  328. package/src/models/team.js +14 -3
  329. package/src/models/template.js +72 -2
  330. package/src/models/tenancy.js +4 -1
  331. package/src/models/timing-log.js +2 -2
  332. package/src/models/timing-log.spec.js +1 -1
  333. package/src/models/token.js +1 -1
  334. package/src/models/transcribe-socket.js +1 -1
  335. package/src/models/user.js +13 -2
  336. package/src/models.js +4 -1
  337. package/src/presentation/appointment-presentation.js +4 -4
  338. package/src/presentation/base-presentation-collection.js +1 -1
  339. package/src/presentation/base-presentation-model.js +25 -16
  340. package/src/presentation/base-presentation-model.spec.js +5 -5
  341. package/src/presentation/presentation-deck.js +28 -23
  342. package/src/presentation/presentation-deck.spec.js +4 -4
  343. package/src/presentation/presentation-decks.js +1 -1
  344. package/src/presentation/presentation-section.js +59 -31
  345. package/src/presentation/presentation-section.spec.js +31 -32
  346. package/src/presentation/presentation-sections.js +1 -1
  347. package/src/presentation/presentation-slide.js +51 -25
  348. package/src/presentation/presentation-slide.spec.js +21 -27
  349. package/src/presentation/presentation-slides.js +1 -1
  350. package/src/presentation/presentation-subslide.js +5 -5
  351. package/src/presentation/presentation-subslide.spec.js +3 -3
  352. package/src/presentation/presentation-subslides.js +1 -1
  353. package/src/presentation/presentation.js +5 -3
  354. package/src/selections.js +71 -0
  355. package/src/sync.js +1 -1
  356. package/src/utils.js +31 -8
  357. package/src/utils.spec.js +8 -8
  358. package/.rush/temp/package-deps_test.json +0 -172
  359. package/cjs/collections/appointment-duplicates.js +0 -29
  360. package/cjs/collections/appointment-duplicates.js.map +0 -1
  361. package/cjs/models/appointment-duplicate.js +0 -94
  362. package/cjs/models/appointment-duplicate.js.map +0 -1
  363. package/src/collections/appointment-duplicates.js +0 -19
  364. package/src/models/appointment-duplicate.js +0 -73
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/base.spec.js"],"names":["it","TestModel","BaseModel","extend","props","testDate","model","date","moment","utc","expect","toEqual","format","DATE_FORMAT_T","model2","date2","Model","begin","URL","url","modelName","children","test","toBeInstanceOf","id","parent","toThrow","testModel","TestCollection","BaseCollection","collections","tests","first","mustFail","at","normalString","control","withSpace","withoutSpace","withSpecialCharacters","foo","firstModel","secondModel","testURL","getResourceURL","prototype","jest","fn","DerivedModel","name","derived","myDerivedModel","DerivedCollection","myDerivedCollection","describe","matchesURL","errorFn","spyOn","log","mockImplementation","not","toBeCalled","urlMatchKeys","bar","endpoint","td","replace","Api","ActivityModel"],"mappings":"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","sourcesContent":["import { Api } from \"../api.js\";\nimport { BaseCollection } from \"../collections/base.js\";\nimport { BaseModel } from \"./base.js\";\nimport { DATE_FORMAT_T } from \"../utils.js\";\nimport { G } from \"sp-test/api\";\nimport log from \"../log.js\";\nimport moment from \"moment\";\nimport td from \"testdouble\";\n\nit(\"should set date types correctly (SP-2698)\", () => {\n\tconst TestModel = BaseModel.extend({ props: { testDate: \"date\" } });\n\n\tconst model = new TestModel();\n\tconst date = moment.utc();\n\tmodel.testDate = date;\n\n\texpect(model.testDate).toEqual(date.format(DATE_FORMAT_T));\n\n\tconst model2 = new TestModel();\n\tconst date2 = moment.utc();\n\tmodel2.testDate = date2;\n\n\texpect(model2.testDate).toEqual(date2.format(DATE_FORMAT_T));\n});\n\nit(\"should accept moment object for date types\", () => {\n\tconst Model = BaseModel.extend({ props: { begin: \"date\" } });\n\tconst model = new Model({ begin: moment(\"2014-04-25T01:32:21.196000Z\") });\n\texpect(model.begin).toEqual(\"2014-04-25T01:32:21.196000Z\");\n});\n\nit(\"should override url if passed to constructor\", () => {\n\tconst URL = \"path/to/api/\";\n\tconst Model = BaseModel.extend();\n\tconst model = new Model({ url: URL });\n\texpect(URL).toEqual(model.url());\n});\n\nit(\"should append a trailing slash to urls if not there\", () => {\n\tconst Model = G(BaseModel.extend({ modelName: \"tests\" }));\n\tconst model = new Model({ url: \"/api/tests\" });\n\texpect(model.url()).toEqual(\"/api/tests/\");\n});\n\nit(\"should not append a slash to a get query\", () => {\n\tconst Model = G(BaseModel.extend({ modelName: \"tests\" }));\n\tconst model = new Model({ url: \"/api/tests/?foo=bar\" });\n\texpect(model.url()).toEqual(\"/api/tests/?foo=bar\");\n});\n\nit(\"should replace child model strings with the registered model\", () => {\n\tconst TestModel = G(BaseModel, \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t})\n\t);\n\tconst model = new Model({ test: 1 });\n\texpect(model.test).toBeInstanceOf(TestModel);\n});\n\nit(\"should allow the model to be passed in\", () => {\n\tconst TestModel = G(BaseModel, \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t})\n\t);\n\tconst model = new Model({ test: new TestModel({ id: 1 }) });\n\texpect(model.test.id).toEqual(1);\n\texpect(model.test).toBeInstanceOf(TestModel);\n});\n\nit(\"should reference parent model if foreign key exists\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t})\n\t);\n\tconst model = new Model({ test: 1 });\n\texpect(model).toEqual(model.test.parent);\n});\n\nit(\"should throw an error if the child model doesn't exist\", () => {\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"DoesntExist\" },\n\t\t})\n\t);\n\n\texpect(() => new Model()).toThrow();\n});\n\nit(\"should convert a url into a model\", () => {\n\tG(BaseModel.extend({ modelName: \"tests\" }), \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t})\n\t);\n\tconst model = new Model({ test: \"/api/tests/1/\" });\n\texpect(model.test.id).toEqual(1);\n});\n\nit(\"should convert an id into a model\", () => {\n\tconst TestModel = BaseModel.extend({ modelName: \"test\" });\n\tconst testModel = new TestModel(1);\n\texpect(testModel.id).toEqual(1);\n\texpect(testModel.url()).toEqual(\"/test/1/\");\n});\n\nit(\"should convert an object into a model\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t})\n\t);\n\tconst model = new Model({ test: { id: 1 } });\n\texpect(model.test.id).toEqual(1);\n});\n\nit(\"should replace collection strings with their registered state\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst TestCollection = G(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"TestModel\",\n\t\t}),\n\t\t\"TestCollection\"\n\t);\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t})\n\t);\n\tconst model = new Model({\n\t\ttests: [{ id: 1 }],\n\t});\n\texpect(model.tests).toBeInstanceOf(TestCollection);\n});\n\nit(\"should allow a list of models to be passed into a collection\", () => {\n\tconst TestModel = G(BaseModel, \"TestModel\");\n\tG(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"TestModel\",\n\t\t}),\n\t\t\"TestCollection\"\n\t);\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t})\n\t);\n\tconst test = new TestModel({ id: 1 });\n\tconst model = new Model({\n\t\ttests: [test],\n\t});\n\texpect(model.tests.first().id).toEqual(1);\n});\n\nit(\"should allow a collection to be passed in directly\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst TestCollection = G(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"TestModel\",\n\t\t}),\n\t\t\"TestCollection\"\n\t);\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t})\n\t);\n\tconst model = new Model({\n\t\ttests: new TestCollection([{ id: 1 }]),\n\t});\n\texpect(model.tests).toBeInstanceOf(TestCollection);\n});\n\nit(\"should throw an error if the child collection doesn't exist\", () => {\n\tconst Model = BaseModel.extend({\n\t\tcollections: { mustFail: \"DoesntExist\" },\n\t});\n\texpect(() => new Model()).toThrow();\n});\n\nit(\"should convert a url into a collection\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst TestCollection = G(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"TestModel\",\n\t\t}),\n\t\t\"TestCollection\"\n\t);\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t})\n\t);\n\tconst model = new Model({ tests: \"/api/tests/\" });\n\texpect(model.tests).toBeInstanceOf(TestCollection);\n});\n\nit(\"should convert an array of objects into a collection\", () => {\n\tG(BaseModel, \"TestModel\");\n\tG(BaseCollection.extend({ model: \"TestModel\" }), \"TestCollection\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t})\n\t);\n\tconst model = new Model({\n\t\ttests: [{ id: 1 }, { id: 2 }],\n\t});\n\texpect(model.tests.at(0).id).toEqual(1);\n\texpect(model.tests.at(1).id).toEqual(2);\n});\n\nit(\"should correctly sanitize strings of multibyte characters (preserving spaces)\", () => {\n\tconst TestModel = BaseModel.extend({\n\t\tprops: {\n\t\t\tnormalString: \"string\",\n\t\t\tcontrol: \"stringSanitized\",\n\t\t\twithSpace: \"stringSanitized\",\n\t\t\twithoutSpace: \"stringSanitized\",\n\t\t\twithSpecialCharacters: \"stringSanitized\",\n\t\t},\n\t});\n\n\tconst model = new TestModel({\n\t\tnormalString: \"A’ B Cç\",\n\t\tcontrol: \"ABC\",\n\t\twithSpace: \"A’ B Cç\",\n\t\twithoutSpace: \"AãB®C\",\n\t\twithSpecialCharacters: \"!@#$%^&*()_+\",\n\t});\n\n\texpect(model.normalString).toEqual(\"A’ B Cç\");\n\texpect(model.control).toEqual(\"ABC\");\n\texpect(model.withSpace).toEqual(\"A B C\");\n\texpect(model.withoutSpace).toEqual(\"ABC\");\n\texpect(model.withSpecialCharacters).toEqual(\"!@#$%^&*()_+\");\n});\n\nit(\"should allow passing in another model into a model\", () => {\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t\tprops: {\n\t\t\tfoo: \"string\",\n\t\t},\n\t});\n\n\tconst firstModel = new TestModel({ foo: \"bar\" });\n\tconst secondModel = new TestModel(firstModel);\n\n\texpect(secondModel.foo).toEqual(\"bar\");\n});\n\nit(\"should retrieve the ID when there is no resource URL\", () => {\n\tconst testURL = \"http://localhost:9980/api/test/34/\";\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t});\n\n\tconst testModel = new TestModel({ url: testURL });\n\n\texpect(testModel.getResourceURL()).toEqual(\"/test/\");\n\texpect(testModel.id).toEqual(34);\n});\n\nit(\"should retrieve the ID when the resource URL is the same as the hostname\", () => {\n\tconst testURL = \"http://localhost:9980/api/test/34/\";\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t});\n\n\tTestModel.prototype.getResourceURL = jest.fn(() => {\n\t\treturn \"http://localhost:9980/api/test/\";\n\t});\n\n\tconst testModel = new TestModel({ url: testURL });\n\n\texpect(testModel.id).toEqual(34);\n});\n\nit(\"should retrieve the ID when the resource hostname is different to the URL hostname\", () => {\n\tconst testURL = \"http://some-hostname/api/test/34/\";\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t});\n\n\tTestModel.prototype.getResourceURL = jest.fn(() => {\n\t\treturn \"http://localhost:9980/api/test/\";\n\t});\n\n\tconst testModel = new TestModel({ url: testURL });\n\n\texpect(testModel.id).toEqual(34);\n});\n\nit(\"should pass through values into a derived model\", () => {\n\tconst DerivedModel = BaseModel.extend({\n\t\tmodelName: \"derived\",\n\t\tprops: {\n\t\t\tname: \"string\",\n\t\t},\n\t});\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t\tderived: {\n\t\t\tmyDerivedModel: {\n\t\t\t\tfn() {\n\t\t\t\t\treturn new DerivedModel();\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t});\n\n\tconst model = new TestModel({ myDerivedModel: { id: 1, name: \"foo\" } });\n\texpect(model.myDerivedModel.id).toEqual(1);\n\texpect(model.myDerivedModel.name).toEqual(\"foo\");\n});\n\nit(\"should pass through values into a derived collection\", () => {\n\tG(\n\t\tBaseModel.extend({\n\t\t\tmodelName: \"derived\",\n\t\t\tprops: {\n\t\t\t\tname: \"string\",\n\t\t\t},\n\t\t}),\n\t\t\"DerivedModel\"\n\t);\n\n\tconst DerivedCollection = G(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"DerivedModel\",\n\t\t})\n\t);\n\n\tconst TestModel = G(\n\t\tBaseModel.extend({\n\t\t\tmodelName: \"test\",\n\t\t\tderived: {\n\t\t\t\tmyDerivedCollection: {\n\t\t\t\t\tfn() {\n\t\t\t\t\t\treturn new DerivedCollection();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t\"TestModel\"\n\t);\n\n\tconst model = new TestModel({\n\t\tmyDerivedCollection: [{ id: 1, name: \"foo\" }],\n\t});\n\texpect(model.myDerivedCollection.first().id).toEqual(1);\n\texpect(model.myDerivedCollection.first().name).toEqual(\"foo\");\n});\n\ndescribe(\".matchesURL\", () => {\n\tit(\"should have a model match the right url\", () => {\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"foo\",\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/foo/1/\")).toEqual(true);\n\t});\n\n\tit(\"should have a model not match the wrong url\", () => {\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"foo\",\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/bar/1/\")).toEqual(false);\n\t});\n\n\tit(\"should not throw a nasty error when url isn't even close\", () => {\n\t\tconst errorFn = jest.spyOn(log, \"error\").mockImplementation(jest.fn());\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"bar\",\n\t\t\tgetResourceURL() {\n\t\t\t\treturn \"/api/bar/{foo}/\";\n\t\t\t},\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/foo/1/\")).toEqual(false);\n\t\texpect(errorFn).not.toBeCalled();\n\t});\n\n\tit(\"should throw an error if url matches, but it isn't set up right\", () => {\n\t\tconst errorFn = jest.spyOn(log, \"error\").mockImplementation(jest.fn());\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"bar\",\n\t\t\tgetResourceURL() {\n\t\t\t\treturn \"/api/bar/{foo}/\";\n\t\t\t},\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/bar/1/\")).toEqual(false);\n\t\texpect(errorFn).toBeCalled();\n\t});\n\n\tit(\"should expect values passed in through url match keys\", () => {\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"bar\",\n\t\t\turlMatchKeys: {\n\t\t\t\tfoo: \"string\",\n\t\t\t\tbar: \"number\",\n\t\t\t},\n\t\t\tgetResourceURL() {\n\t\t\t\treturn \"/api/bar/{bar}/{foo}/\";\n\t\t\t},\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/bar/1/hello/1/\")).toEqual(true);\n\t});\n\n\tit(\"should match with the full server endpoint included\", () => {\n\t\tconst endpoint = \"http://localhost:8000/api/\";\n\t\ttd.replace(Api, \"getURL\", () => endpoint);\n\t\tconst url = \"http://localhost:8000/api/activities/2719/\";\n\t\tconst ActivityModel = G(\"ActivityItemModel\").extend({\n\t\t\tgetResourceURL() {\n\t\t\t\treturn `${endpoint}activities/`;\n\t\t\t},\n\t\t});\n\t\texpect(ActivityModel.matchesURL(url)).toEqual(true);\n\t});\n});\n"],"file":"base.spec.js"}
1
+ {"version":3,"sources":["../../src/models/base.spec.js"],"names":["it","TestModel","BaseModel","extend","props","testDate","model","date","moment","utc","expect","toEqual","format","DATE_FORMAT_T","model2","date2","Model","begin","URL","url","modelName","children","test","toBeInstanceOf","id","parent","toThrow","testModel","TestCollection","BaseCollection","collections","tests","first","mustFail","at","normalString","control","withSpace","withoutSpace","withSpecialCharacters","foo","firstModel","secondModel","testURL","getResourceURL","prototype","jest","fn","DerivedModel","name","derived","myDerivedModel","DerivedCollection","myDerivedCollection","describe","matchesURL","errorFn","spyOn","log","mockImplementation","not","toBeCalled","urlMatchKeys","bar","endpoint","td","replace","Api","ActivityModel"],"mappings":"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","sourcesContent":["import { Api } from \"../api.js\";\nimport { BaseCollection } from \"../collections/base.js\";\nimport { BaseModel } from \"./base.js\";\nimport { DATE_FORMAT_T } from \"../utils.js\";\nimport { G } from \"sp-test/api\";\nimport log from \"../log.js\";\nimport moment from \"moment\";\nimport td from \"testdouble\";\n\nit(\"should set date types correctly (SP-2698)\", () => {\n\tconst TestModel = BaseModel.extend({ props: { testDate: \"date\" } });\n\n\tconst model = new TestModel();\n\tconst date = moment.utc();\n\tmodel.testDate = date;\n\n\texpect(model.testDate).toEqual(date.format(DATE_FORMAT_T));\n\n\tconst model2 = new TestModel();\n\tconst date2 = moment.utc();\n\tmodel2.testDate = date2;\n\n\texpect(model2.testDate).toEqual(date2.format(DATE_FORMAT_T));\n});\n\nit(\"should accept moment object for date types\", () => {\n\tconst Model = BaseModel.extend({ props: { begin: \"date\" } });\n\tconst model = new Model({ begin: moment(\"2014-04-25T01:32:21.196000Z\") });\n\texpect(model.begin).toEqual(\"2014-04-25T01:32:21.196000Z\");\n});\n\nit(\"should override url if passed to constructor\", () => {\n\tconst URL = \"path/to/api/\";\n\tconst Model = BaseModel.extend();\n\tconst model = new Model({ url: URL });\n\texpect(URL).toEqual(model.url());\n});\n\nit(\"should append a trailing slash to urls if not there\", () => {\n\tconst Model = G(BaseModel.extend({ modelName: \"tests\" }));\n\tconst model = new Model({ url: \"/api/tests\" });\n\texpect(model.url()).toEqual(\"/api/tests/\");\n});\n\nit(\"should not append a slash to a get query\", () => {\n\tconst Model = G(BaseModel.extend({ modelName: \"tests\" }));\n\tconst model = new Model({ url: \"/api/tests/?foo=bar\" });\n\texpect(model.url()).toEqual(\"/api/tests/?foo=bar\");\n});\n\nit(\"should replace child model strings with the registered model\", () => {\n\tconst TestModel = G(BaseModel, \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t}),\n\t);\n\tconst model = new Model({ test: 1 });\n\texpect(model.test).toBeInstanceOf(TestModel);\n});\n\nit(\"should allow the model to be passed in\", () => {\n\tconst TestModel = G(BaseModel, \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t}),\n\t);\n\tconst model = new Model({ test: new TestModel({ id: 1 }) });\n\texpect(model.test.id).toEqual(1);\n\texpect(model.test).toBeInstanceOf(TestModel);\n});\n\nit(\"should reference parent model if foreign key exists\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t}),\n\t);\n\tconst model = new Model({ test: 1 });\n\texpect(model).toEqual(model.test.parent);\n});\n\nit(\"should throw an error if the child model doesn't exist\", () => {\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"DoesntExist\" },\n\t\t}),\n\t);\n\n\texpect(() => new Model()).toThrow();\n});\n\nit(\"should convert a url into a model\", () => {\n\tG(BaseModel.extend({ modelName: \"tests\" }), \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t}),\n\t);\n\tconst model = new Model({ test: \"/api/tests/1/\" });\n\texpect(model.test.id).toEqual(1);\n});\n\nit(\"should convert an id into a model\", () => {\n\tconst TestModel = BaseModel.extend({ modelName: \"test\" });\n\tconst testModel = new TestModel(1);\n\texpect(testModel.id).toEqual(1);\n\texpect(testModel.url()).toEqual(\"/test/1/\");\n});\n\nit(\"should convert an object into a model\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tchildren: { test: \"TestModel\" },\n\t\t}),\n\t);\n\tconst model = new Model({ test: { id: 1 } });\n\texpect(model.test.id).toEqual(1);\n});\n\nit(\"should replace collection strings with their registered state\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst TestCollection = G(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"TestModel\",\n\t\t}),\n\t\t\"TestCollection\",\n\t);\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t}),\n\t);\n\tconst model = new Model({\n\t\ttests: [{ id: 1 }],\n\t});\n\texpect(model.tests).toBeInstanceOf(TestCollection);\n});\n\nit(\"should allow a list of models to be passed into a collection\", () => {\n\tconst TestModel = G(BaseModel, \"TestModel\");\n\tG(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"TestModel\",\n\t\t}),\n\t\t\"TestCollection\",\n\t);\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t}),\n\t);\n\tconst test = new TestModel({ id: 1 });\n\tconst model = new Model({\n\t\ttests: [test],\n\t});\n\texpect(model.tests.first().id).toEqual(1);\n});\n\nit(\"should allow a collection to be passed in directly\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst TestCollection = G(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"TestModel\",\n\t\t}),\n\t\t\"TestCollection\",\n\t);\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t}),\n\t);\n\tconst model = new Model({\n\t\ttests: new TestCollection([{ id: 1 }]),\n\t});\n\texpect(model.tests).toBeInstanceOf(TestCollection);\n});\n\nit(\"should throw an error if the child collection doesn't exist\", () => {\n\tconst Model = BaseModel.extend({\n\t\tcollections: { mustFail: \"DoesntExist\" },\n\t});\n\texpect(() => new Model()).toThrow();\n});\n\nit(\"should convert a url into a collection\", () => {\n\tG(BaseModel, \"TestModel\");\n\tconst TestCollection = G(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"TestModel\",\n\t\t}),\n\t\t\"TestCollection\",\n\t);\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t}),\n\t);\n\tconst model = new Model({ tests: \"/api/tests/\" });\n\texpect(model.tests).toBeInstanceOf(TestCollection);\n});\n\nit(\"should convert an array of objects into a collection\", () => {\n\tG(BaseModel, \"TestModel\");\n\tG(BaseCollection.extend({ model: \"TestModel\" }), \"TestCollection\");\n\tconst Model = G(\n\t\tBaseModel.extend({\n\t\t\tcollections: { tests: \"TestCollection\" },\n\t\t}),\n\t);\n\tconst model = new Model({\n\t\ttests: [{ id: 1 }, { id: 2 }],\n\t});\n\texpect(model.tests.at(0).id).toEqual(1);\n\texpect(model.tests.at(1).id).toEqual(2);\n});\n\nit(\"should correctly sanitize strings of multibyte characters (preserving spaces)\", () => {\n\tconst TestModel = BaseModel.extend({\n\t\tprops: {\n\t\t\tnormalString: \"string\",\n\t\t\tcontrol: \"stringSanitized\",\n\t\t\twithSpace: \"stringSanitized\",\n\t\t\twithoutSpace: \"stringSanitized\",\n\t\t\twithSpecialCharacters: \"stringSanitized\",\n\t\t},\n\t});\n\n\tconst model = new TestModel({\n\t\tnormalString: \"A’ B Cç\",\n\t\tcontrol: \"ABC\",\n\t\twithSpace: \"A’ B Cç\",\n\t\twithoutSpace: \"AãB®C\",\n\t\twithSpecialCharacters: \"!@#$%^&*()_+\",\n\t});\n\n\texpect(model.normalString).toEqual(\"A’ B Cç\");\n\texpect(model.control).toEqual(\"ABC\");\n\texpect(model.withSpace).toEqual(\"A B C\");\n\texpect(model.withoutSpace).toEqual(\"ABC\");\n\texpect(model.withSpecialCharacters).toEqual(\"!@#$%^&*()_+\");\n});\n\nit(\"should allow passing in another model into a model\", () => {\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t\tprops: {\n\t\t\tfoo: \"string\",\n\t\t},\n\t});\n\n\tconst firstModel = new TestModel({ foo: \"bar\" });\n\tconst secondModel = new TestModel(firstModel);\n\n\texpect(secondModel.foo).toEqual(\"bar\");\n});\n\nit(\"should retrieve the ID when there is no resource URL\", () => {\n\tconst testURL = \"http://localhost:9980/api/test/34/\";\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t});\n\n\tconst testModel = new TestModel({ url: testURL });\n\n\texpect(testModel.getResourceURL()).toEqual(\"/test/\");\n\texpect(testModel.id).toEqual(34);\n});\n\nit(\"should retrieve the ID when the resource URL is the same as the hostname\", () => {\n\tconst testURL = \"http://localhost:9980/api/test/34/\";\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t});\n\n\tTestModel.prototype.getResourceURL = jest.fn(() => {\n\t\treturn \"http://localhost:9980/api/test/\";\n\t});\n\n\tconst testModel = new TestModel({ url: testURL });\n\n\texpect(testModel.id).toEqual(34);\n});\n\nit(\"should retrieve the ID when the resource hostname is different to the URL hostname\", () => {\n\tconst testURL = \"http://some-hostname/api/test/34/\";\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t});\n\n\tTestModel.prototype.getResourceURL = jest.fn(() => {\n\t\treturn \"http://localhost:9980/api/test/\";\n\t});\n\n\tconst testModel = new TestModel({ url: testURL });\n\n\texpect(testModel.id).toEqual(34);\n});\n\nit(\"should pass through values into a derived model\", () => {\n\tconst DerivedModel = BaseModel.extend({\n\t\tmodelName: \"derived\",\n\t\tprops: {\n\t\t\tname: \"string\",\n\t\t},\n\t});\n\tconst TestModel = BaseModel.extend({\n\t\tmodelName: \"test\",\n\t\tderived: {\n\t\t\tmyDerivedModel: {\n\t\t\t\tfn() {\n\t\t\t\t\treturn new DerivedModel();\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t});\n\n\tconst model = new TestModel({ myDerivedModel: { id: 1, name: \"foo\" } });\n\texpect(model.myDerivedModel.id).toEqual(1);\n\texpect(model.myDerivedModel.name).toEqual(\"foo\");\n});\n\nit(\"should pass through values into a derived collection\", () => {\n\tG(\n\t\tBaseModel.extend({\n\t\t\tmodelName: \"derived\",\n\t\t\tprops: {\n\t\t\t\tname: \"string\",\n\t\t\t},\n\t\t}),\n\t\t\"DerivedModel\",\n\t);\n\n\tconst DerivedCollection = G(\n\t\tBaseCollection.extend({\n\t\t\tmodel: \"DerivedModel\",\n\t\t}),\n\t);\n\n\tconst TestModel = G(\n\t\tBaseModel.extend({\n\t\t\tmodelName: \"test\",\n\t\t\tderived: {\n\t\t\t\tmyDerivedCollection: {\n\t\t\t\t\tfn() {\n\t\t\t\t\t\treturn new DerivedCollection();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t\"TestModel\",\n\t);\n\n\tconst model = new TestModel({\n\t\tmyDerivedCollection: [{ id: 1, name: \"foo\" }],\n\t});\n\texpect(model.myDerivedCollection.first().id).toEqual(1);\n\texpect(model.myDerivedCollection.first().name).toEqual(\"foo\");\n});\n\ndescribe(\".matchesURL\", () => {\n\tit(\"should have a model match the right url\", () => {\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"foo\",\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/foo/1/\")).toEqual(true);\n\t});\n\n\tit(\"should have a model not match the wrong url\", () => {\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"foo\",\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/bar/1/\")).toEqual(false);\n\t});\n\n\tit(\"should not throw a nasty error when url isn't even close\", () => {\n\t\tconst errorFn = jest.spyOn(log, \"error\").mockImplementation(jest.fn());\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"bar\",\n\t\t\tgetResourceURL() {\n\t\t\t\treturn \"/api/bar/{foo}/\";\n\t\t\t},\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/foo/1/\")).toEqual(false);\n\t\texpect(errorFn).not.toBeCalled();\n\t});\n\n\tit(\"should throw an error if url matches, but it isn't set up right\", () => {\n\t\tconst errorFn = jest.spyOn(log, \"error\").mockImplementation(jest.fn());\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"bar\",\n\t\t\tgetResourceURL() {\n\t\t\t\treturn \"/api/bar/{foo}/\";\n\t\t\t},\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/bar/1/\")).toEqual(false);\n\t\texpect(errorFn).toBeCalled();\n\t});\n\n\tit(\"should expect values passed in through url match keys\", () => {\n\t\tconst TestModel = G(BaseModel, \"TestModel\").extend({\n\t\t\tmodelName: \"bar\",\n\t\t\turlMatchKeys: {\n\t\t\t\tfoo: \"string\",\n\t\t\t\tbar: \"number\",\n\t\t\t},\n\t\t\tgetResourceURL() {\n\t\t\t\treturn \"/api/bar/{bar}/{foo}/\";\n\t\t\t},\n\t\t});\n\t\texpect(TestModel.matchesURL(\"/api/bar/1/hello/1/\")).toEqual(true);\n\t});\n\n\tit(\"should match with the full server endpoint included\", () => {\n\t\tconst endpoint = \"http://localhost:8000/api/\";\n\t\ttd.replace(Api, \"getURL\", () => endpoint);\n\t\tconst url = \"http://localhost:8000/api/activities/2719/\";\n\t\tconst ActivityModel = G(\"ActivityItemModel\").extend({\n\t\t\tgetResourceURL() {\n\t\t\t\treturn `${endpoint}activities/`;\n\t\t\t},\n\t\t});\n\t\texpect(ActivityModel.matchesURL(url)).toEqual(true);\n\t});\n});\n"],"file":"base.spec.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/choicelist.js"],"names":["ChoicelistModel","BaseModel","extend","modelName","props","modified_date","created_date","choices"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,eAAe,GAAGC,gBAAUC,MAAV;AAC9B;AAAsC;AACrCC,EAAAA,SAAS,EAAE,aAD0B;AAGrCC,EAAAA,KAAK,EAAE;AACNC,IAAAA,aAAa,EAAE,MADT;AAENC,IAAAA,YAAY,EAAE,MAFR;AAGNC,IAAAA,OAAO,EAAE;AAHH;AAH8B,CADR,CAAxB;;;AAYP,6BAAS,iBAAT,EAA4BP,eAA5B","sourcesContent":["import { BaseModel } from \"../models/base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.ChoicelistModel\n * @extends models.BaseModel\n */\nexport const ChoicelistModel = BaseModel.extend(\n\t/** @lends models.ChoicelistModel# */ {\n\t\tmodelName: \"choicelists\",\n\n\t\tprops: {\n\t\t\tmodified_date: \"date\",\n\t\t\tcreated_date: \"date\",\n\t\t\tchoices: \"array\",\n\t\t},\n\t}\n);\n\nregister(\"ChoicelistModel\", ChoicelistModel);\n"],"file":"choicelist.js"}
1
+ {"version":3,"sources":["../../src/models/choicelist.js"],"names":["ChoicelistModel","BaseModel","extend","modelName","props","modified_date","created_date","choices"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,eAAe,GAAGC,gBAAUC,MAAV;AAC9B;AAAsC;AACrCC,EAAAA,SAAS,EAAE,aAD0B;AAGrCC,EAAAA,KAAK,EAAE;AACNC,IAAAA,aAAa,EAAE,MADT;AAENC,IAAAA,YAAY,EAAE,MAFR;AAGNC,IAAAA,OAAO,EAAE;AAHH;AAH8B,CADR,CAAxB;;;AAYP,6BAAS,iBAAT,EAA4BP,eAA5B","sourcesContent":["import { BaseModel } from \"../models/base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.ChoicelistModel\n * @extends models.BaseModel\n */\nexport const ChoicelistModel = BaseModel.extend(\n\t/** @lends models.ChoicelistModel# */ {\n\t\tmodelName: \"choicelists\",\n\n\t\tprops: {\n\t\t\tmodified_date: \"date\",\n\t\t\tcreated_date: \"date\",\n\t\t\tchoices: \"array\",\n\t\t},\n\t},\n);\n\nregister(\"ChoicelistModel\", ChoicelistModel);\n"],"file":"choicelist.js"}
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.CMSValModel = void 0;
7
9
 
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
8
14
  require("./user.js");
9
15
 
10
16
  require("./team.js");
@@ -15,6 +21,12 @@ var _base = require("../models/base.js");
15
21
 
16
22
  var _stateRegister = require("../state-register.js");
17
23
 
24
+ var _utils = require("../utils.js");
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
+
18
30
  /**
19
31
  * @constructor
20
32
  * @alias models.CMSValModel
@@ -30,7 +42,8 @@ var CMSValModel = _base.BaseModel.extend(
30
42
  key: "string",
31
43
  scope: "string",
32
44
  mime: "string",
33
- value: "string"
45
+ value: "string",
46
+ _tenancy: "object"
34
47
  },
35
48
 
36
49
  /**
@@ -63,6 +76,27 @@ var CMSValModel = _base.BaseModel.extend(
63
76
 
64
77
  data.user = this.user ? this.user.url() : undefined;
65
78
  return data;
79
+ },
80
+ toServer: function toServer() {
81
+ var obj = _base.BaseModel.prototype.toServer.call(this);
82
+
83
+ return _objectSpread(_objectSpread({}, obj), {}, {
84
+ // We shouldn't allow any base64 to get in here, otherwise it can
85
+ // KO all users appointments.
86
+ value: (0, _utils.sanitizeBase64)(obj.value)
87
+ });
88
+ },
89
+ toCompactJSON: function toCompactJSON() {
90
+ var json = this.toJSON();
91
+ var wanted = ["key", "value", "mime", "scope"];
92
+ var compact = Object.fromEntries(Object.entries(json).filter(function (_ref) {
93
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
94
+ key = _ref2[0],
95
+ val = _ref2[1];
96
+
97
+ return wanted.includes(key);
98
+ }));
99
+ return compact;
66
100
  }
67
101
  });
68
102
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/cms-val.js"],"names":["CMSValModel","BaseModel","extend","modelName","props","modified_date","created_date","key","scope","mime","value","children","user","deck","team","url","_url","id","model","baseURL","prototype","apply","arguments","toJSON","data","undefined"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,WAAW,GAAGC,gBAAUC,MAAV;AAC1B;AAAkC;AACjCC,EAAAA,SAAS,EAAE,SADsB;AAGjCC,EAAAA,KAAK,EAAE;AACNC,IAAAA,aAAa,EAAE,MADT;AAENC,IAAAA,YAAY,EAAE,MAFR;AAGNC,IAAAA,GAAG,EAAE,QAHC;AAINC,IAAAA,KAAK,EAAE,QAJD;AAKNC,IAAAA,IAAI,EAAE,QALA;AAMNC,IAAAA,KAAK,EAAE;AAND,GAH0B;;AAYjC;AACF;AACA;AACA;AACA;AACEC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,IAAI,EAAE,WADG;AAETC,IAAAA,IAAI,EAAE,WAFG;AAGTC,IAAAA,IAAI,EAAE;AAHG,GAjBuB;AAuBjCC,EAAAA,GAvBiC,iBAuB3B;AACL,QAAI,CAAC,KAAKC,IAAV,EAAgB;AACf,UAAI,KAAKC,EAAL,IAAW,KAAKV,GAApB,EAAyB;AACxB,YAAMW,KAAK,GAAG,IAAIlB,WAAJ,CAAgB;AAAEO,UAAAA,GAAG,EAAE,KAAKA;AAAZ,SAAhB,CAAd;AACA,YAAMY,OAAO,GAAGD,KAAK,CAACH,GAAN,EAAhB;AACA,aAAKC,IAAL,aAAeG,OAAf,SAAyB,KAAKZ,GAA9B;AACA,OAJD,MAIO;AACN,aAAKS,IAAL,GAAYf,gBAAUmB,SAAV,CAAoBL,GAApB,CAAwBM,KAAxB,CAA8B,IAA9B,EAAoCC,SAApC,CAAZ;AACA;AACD;;AAED,WAAO,KAAKN,IAAZ;AACA,GAnCgC;AAqCjCO,EAAAA,MArCiC,oBAqCxB;AACR,QAAMC,IAAI,GAAGvB,gBAAUmB,SAAV,CAAoBG,MAApB,CAA2BF,KAA3B,CAAiC,IAAjC,EAAuCC,SAAvC,CAAb;;AAEAE,IAAAA,IAAI,CAACZ,IAAL,GAAY,KAAKA,IAAL,GAAY,KAAKA,IAAL,CAAUG,GAAV,EAAZ,GAA8BU,SAA1C;AAEA,WAAOD,IAAP;AACA;AA3CgC,CADR,CAApB;;;AAgDP,6BAAS,aAAT,EAAwBxB,WAAxB","sourcesContent":["import \"./user.js\";\nimport \"./team.js\";\nimport \"./deck.js\";\n\nimport { BaseModel } from \"../models/base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.CMSValModel\n * @extends models.BaseModel\n */\nexport const CMSValModel = BaseModel.extend(\n\t/** @lends models.CMSValModel# */ {\n\t\tmodelName: \"cmsvals\",\n\n\t\tprops: {\n\t\t\tmodified_date: \"date\",\n\t\t\tcreated_date: \"date\",\n\t\t\tkey: \"string\",\n\t\t\tscope: \"string\",\n\t\t\tmime: \"string\",\n\t\t\tvalue: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.UserModel} user\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.TeamModel} team\n\t\t */\n\t\tchildren: {\n\t\t\tuser: \"UserModel\",\n\t\t\tdeck: \"DeckModel\",\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tif (this.id && this.key) {\n\t\t\t\t\tconst model = new CMSValModel({ key: this.key });\n\t\t\t\t\tconst baseURL = model.url();\n\t\t\t\t\tthis._url = `${baseURL}${this.key}/`;\n\t\t\t\t} else {\n\t\t\t\t\tthis._url = BaseModel.prototype.url.apply(this, arguments);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this._url;\n\t\t},\n\n\t\ttoJSON() {\n\t\t\tconst data = BaseModel.prototype.toJSON.apply(this, arguments);\n\n\t\t\tdata.user = this.user ? this.user.url() : undefined;\n\n\t\t\treturn data;\n\t\t},\n\t}\n);\n\nregister(\"CMSValModel\", CMSValModel);\n"],"file":"cms-val.js"}
1
+ {"version":3,"sources":["../../src/models/cms-val.js"],"names":["CMSValModel","BaseModel","extend","modelName","props","modified_date","created_date","key","scope","mime","value","_tenancy","children","user","deck","team","url","_url","id","model","baseURL","prototype","apply","arguments","toJSON","data","undefined","toServer","obj","call","toCompactJSON","json","wanted","compact","Object","fromEntries","entries","filter","val","includes"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,WAAW,GAAGC,gBAAUC,MAAV;AAC1B;AAAkC;AACjCC,EAAAA,SAAS,EAAE,SADsB;AAGjCC,EAAAA,KAAK,EAAE;AACNC,IAAAA,aAAa,EAAE,MADT;AAENC,IAAAA,YAAY,EAAE,MAFR;AAGNC,IAAAA,GAAG,EAAE,QAHC;AAINC,IAAAA,KAAK,EAAE,QAJD;AAKNC,IAAAA,IAAI,EAAE,QALA;AAMNC,IAAAA,KAAK,EAAE,QAND;AAONC,IAAAA,QAAQ,EAAE;AAPJ,GAH0B;;AAajC;AACF;AACA;AACA;AACA;AACEC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,IAAI,EAAE,WADG;AAETC,IAAAA,IAAI,EAAE,WAFG;AAGTC,IAAAA,IAAI,EAAE;AAHG,GAlBuB;AAwBjCC,EAAAA,GAxBiC,iBAwB3B;AACL,QAAI,CAAC,KAAKC,IAAV,EAAgB;AACf,UAAI,KAAKC,EAAL,IAAW,KAAKX,GAApB,EAAyB;AACxB,YAAMY,KAAK,GAAG,IAAInB,WAAJ,CAAgB;AAAEO,UAAAA,GAAG,EAAE,KAAKA;AAAZ,SAAhB,CAAd;AACA,YAAMa,OAAO,GAAGD,KAAK,CAACH,GAAN,EAAhB;AACA,aAAKC,IAAL,aAAeG,OAAf,SAAyB,KAAKb,GAA9B;AACA,OAJD,MAIO;AACN,aAAKU,IAAL,GAAYhB,gBAAUoB,SAAV,CAAoBL,GAApB,CAAwBM,KAAxB,CAA8B,IAA9B,EAAoCC,SAApC,CAAZ;AACA;AACD;;AAED,WAAO,KAAKN,IAAZ;AACA,GApCgC;AAsCjCO,EAAAA,MAtCiC,oBAsCxB;AACR,QAAMC,IAAI,GAAGxB,gBAAUoB,SAAV,CAAoBG,MAApB,CAA2BF,KAA3B,CAAiC,IAAjC,EAAuCC,SAAvC,CAAb;;AAEAE,IAAAA,IAAI,CAACZ,IAAL,GAAY,KAAKA,IAAL,GAAY,KAAKA,IAAL,CAAUG,GAAV,EAAZ,GAA8BU,SAA1C;AAEA,WAAOD,IAAP;AACA,GA5CgC;AA8CjCE,EAAAA,QA9CiC,sBA8CtB;AACV,QAAMC,GAAG,GAAG3B,gBAAUoB,SAAV,CAAoBM,QAApB,CAA6BE,IAA7B,CAAkC,IAAlC,CAAZ;;AACA,2CACID,GADJ;AAEC;AACA;AACAlB,MAAAA,KAAK,EAAE,2BAAekB,GAAG,CAAClB,KAAnB;AAJR;AAMA,GAtDgC;AAwDjCoB,EAAAA,aAxDiC,2BAwDjB;AACf,QAAMC,IAAI,GAAG,KAAKP,MAAL,EAAb;AACA,QAAMQ,MAAM,GAAG,CAAC,KAAD,EAAQ,OAAR,EAAiB,MAAjB,EAAyB,OAAzB,CAAf;AAEA,QAAMC,OAAO,GAAGC,MAAM,CAACC,WAAP,CACfD,MAAM,CAACE,OAAP,CAAeL,IAAf,EAAqBM,MAArB,CAA4B;AAAA;AAAA,UAAE9B,GAAF;AAAA,UAAO+B,GAAP;;AAAA,aAAgBN,MAAM,CAACO,QAAP,CAAgBhC,GAAhB,CAAhB;AAAA,KAA5B,CADe,CAAhB;AAIA,WAAO0B,OAAP;AACA;AAjEgC,CADR,CAApB;;;AAsEP,6BAAS,aAAT,EAAwBjC,WAAxB","sourcesContent":["import \"./user.js\";\nimport \"./team.js\";\nimport \"./deck.js\";\n\nimport { BaseModel } from \"../models/base.js\";\nimport { register } from \"../state-register.js\";\nimport { sanitizeBase64 } from \"../utils.js\";\n\n/**\n * @constructor\n * @alias models.CMSValModel\n * @extends models.BaseModel\n */\nexport const CMSValModel = BaseModel.extend(\n\t/** @lends models.CMSValModel# */ {\n\t\tmodelName: \"cmsvals\",\n\n\t\tprops: {\n\t\t\tmodified_date: \"date\",\n\t\t\tcreated_date: \"date\",\n\t\t\tkey: \"string\",\n\t\t\tscope: \"string\",\n\t\t\tmime: \"string\",\n\t\t\tvalue: \"string\",\n\t\t\t_tenancy: \"object\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.UserModel} user\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.TeamModel} team\n\t\t */\n\t\tchildren: {\n\t\t\tuser: \"UserModel\",\n\t\t\tdeck: \"DeckModel\",\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tif (this.id && this.key) {\n\t\t\t\t\tconst model = new CMSValModel({ key: this.key });\n\t\t\t\t\tconst baseURL = model.url();\n\t\t\t\t\tthis._url = `${baseURL}${this.key}/`;\n\t\t\t\t} else {\n\t\t\t\t\tthis._url = BaseModel.prototype.url.apply(this, arguments);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this._url;\n\t\t},\n\n\t\ttoJSON() {\n\t\t\tconst data = BaseModel.prototype.toJSON.apply(this, arguments);\n\n\t\t\tdata.user = this.user ? this.user.url() : undefined;\n\n\t\t\treturn data;\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst obj = BaseModel.prototype.toServer.call(this);\n\t\t\treturn {\n\t\t\t\t...obj,\n\t\t\t\t// We shouldn't allow any base64 to get in here, otherwise it can\n\t\t\t\t// KO all users appointments.\n\t\t\t\tvalue: sanitizeBase64(obj.value),\n\t\t\t};\n\t\t},\n\n\t\ttoCompactJSON() {\n\t\t\tconst json = this.toJSON();\n\t\t\tconst wanted = [\"key\", \"value\", \"mime\", \"scope\"];\n\n\t\t\tconst compact = Object.fromEntries(\n\t\t\t\tObject.entries(json).filter(([key, val]) => wanted.includes(key)),\n\t\t\t);\n\n\t\t\treturn compact;\n\t\t},\n\t},\n);\n\nregister(\"CMSValModel\", CMSValModel);\n"],"file":"cms-val.js"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
+
7
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
+
9
+ var _api = require("sp-test/api");
10
+
11
+ it("should remove large base64 strings from value when saving", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
12
+ var CMSValModel, largeBase64, cmsVal;
13
+ return _regenerator.default.wrap(function _callee$(_context) {
14
+ while (1) {
15
+ switch (_context.prev = _context.next) {
16
+ case 0:
17
+ CMSValModel = (0, _api.G)("CMSValModel");
18
+ largeBase64 = "data:image/gif;base64," + new Array(50000).fill("a").join("");
19
+ cmsVal = new CMSValModel({
20
+ mime: "image",
21
+ value: largeBase64
22
+ });
23
+ expect(cmsVal.toServer().value).toEqual("");
24
+
25
+ case 4:
26
+ case "end":
27
+ return _context.stop();
28
+ }
29
+ }
30
+ }, _callee);
31
+ })));
32
+ //# sourceMappingURL=cms-val.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/models/cms-val.spec.js"],"names":["it","CMSValModel","largeBase64","Array","fill","join","cmsVal","mime","value","expect","toServer","toEqual"],"mappings":";;;;;;;;AAAA;;AAEAA,EAAE,CAAC,2DAAD,uFAA8D;AAAA;AAAA;AAAA;AAAA;AAAA;AACzDC,UAAAA,WADyD,GAC3C,YAAE,aAAF,CAD2C;AAEzDC,UAAAA,WAFyD,GAG9D,2BAA2B,IAAIC,KAAJ,CAAU,KAAV,EAAkBC,IAAlB,CAAuB,GAAvB,EAA4BC,IAA5B,CAAiC,EAAjC,CAHmC;AAKzDC,UAAAA,MALyD,GAKhD,IAAIL,WAAJ,CAAgB;AAC9BM,YAAAA,IAAI,EAAE,OADwB;AAE9BC,YAAAA,KAAK,EAAEN;AAFuB,WAAhB,CALgD;AAU/DO,UAAAA,MAAM,CAACH,MAAM,CAACI,QAAP,GAAkBF,KAAnB,CAAN,CAAgCG,OAAhC,CAAwC,EAAxC;;AAV+D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAA9D,GAAF","sourcesContent":["import { G } from \"sp-test/api\";\n\nit(\"should remove large base64 strings from value when saving\", async () => {\n\tconst CMSValModel = G(\"CMSValModel\");\n\tconst largeBase64 =\n\t\t\"data:image/gif;base64,\" + new Array(50_000).fill(\"a\").join(\"\");\n\n\tconst cmsVal = new CMSValModel({\n\t\tmime: \"image\",\n\t\tvalue: largeBase64,\n\t});\n\n\texpect(cmsVal.toServer().value).toEqual(\"\");\n});\n"],"file":"cms-val.spec.js"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ContactPhoneModel = void 0;
7
+
8
+ require("./customer.js");
9
+
10
+ var _base = require("./base.js");
11
+
12
+ var _stateRegister = require("../state-register.js");
13
+
14
+ /**
15
+ * @constructor
16
+ * @alias models.ContactModel
17
+ * @extends models.BaseModel
18
+ */
19
+ var ContactPhoneModel = _base.BaseModel.extend(
20
+ /** @lends models.ContactPhoneModel# */
21
+ {
22
+ modelName: "contact-phones",
23
+
24
+ /**
25
+ * @property {date} created_date
26
+ * @property {date} modified_date
27
+ * @property {boolean} is_valid
28
+ * @property {string} raw
29
+ * @property {string} e164_format
30
+ * @property {string} national_format
31
+ * @property {string} number_type
32
+ */
33
+ props: {
34
+ created_date: "date",
35
+ modified_date: "date",
36
+ is_valid: "boolean",
37
+ raw: "string",
38
+ e164_format: "string",
39
+ national_format: "string",
40
+ number_type: "string"
41
+ },
42
+
43
+ /**
44
+ * @property {models.ContactModel} contact
45
+ */
46
+ children: {
47
+ contact: "ContactModel"
48
+ },
49
+ toServer: function toServer() {
50
+ /* Only write to `raw` field. The others are derived on the server */
51
+ var data = {
52
+ raw: this.raw,
53
+ contact: this._retrieveURL(this.contact)
54
+ };
55
+
56
+ if (this.id) {
57
+ data.id = this.id;
58
+ }
59
+
60
+ return data;
61
+ }
62
+ });
63
+
64
+ exports.ContactPhoneModel = ContactPhoneModel;
65
+ (0, _stateRegister.register)("ContactPhoneModel", ContactPhoneModel);
66
+ //# sourceMappingURL=contact-phone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/models/contact-phone.js"],"names":["ContactPhoneModel","BaseModel","extend","modelName","props","created_date","modified_date","is_valid","raw","e164_format","national_format","number_type","children","contact","toServer","data","_retrieveURL","id"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,iBAAiB,GAAGC,gBAAUC,MAAV;AAChC;AAAwC;AACvCC,EAAAA,SAAS,EAAE,gBAD4B;;AAGvC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,YAAY,EAAE,MADR;AAENC,IAAAA,aAAa,EAAE,MAFT;AAGNC,IAAAA,QAAQ,EAAE,SAHJ;AAINC,IAAAA,GAAG,EAAE,QAJC;AAKNC,IAAAA,WAAW,EAAE,QALP;AAMNC,IAAAA,eAAe,EAAE,QANX;AAONC,IAAAA,WAAW,EAAE;AAPP,GAZgC;;AAsBvC;AACF;AACA;AACEC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,OAAO,EAAE;AADA,GAzB6B;AA6BvCC,EAAAA,QA7BuC,sBA6B5B;AACV;AACA,QAAMC,IAAI,GAAG;AACZP,MAAAA,GAAG,EAAE,KAAKA,GADE;AAEZK,MAAAA,OAAO,EAAE,KAAKG,YAAL,CAAkB,KAAKH,OAAvB;AAFG,KAAb;;AAKA,QAAI,KAAKI,EAAT,EAAa;AACZF,MAAAA,IAAI,CAACE,EAAL,GAAU,KAAKA,EAAf;AACA;;AAED,WAAOF,IAAP;AACA;AAzCsC,CADR,CAA1B;;;AA8CP,6BAAS,mBAAT,EAA8Bf,iBAA9B","sourcesContent":["import \"./customer.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.ContactModel\n * @extends models.BaseModel\n */\nexport const ContactPhoneModel = BaseModel.extend(\n\t/** @lends models.ContactPhoneModel# */ {\n\t\tmodelName: \"contact-phones\",\n\n\t\t/**\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\n\t\t * @property {boolean} is_valid\n\t\t * @property {string} raw\n\t\t * @property {string} e164_format\n\t\t * @property {string} national_format\n\t\t * @property {string} number_type\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\tis_valid: \"boolean\",\n\t\t\traw: \"string\",\n\t\t\te164_format: \"string\",\n\t\t\tnational_format: \"string\",\n\t\t\tnumber_type: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.ContactModel} contact\n\t\t */\n\t\tchildren: {\n\t\t\tcontact: \"ContactModel\",\n\t\t},\n\n\t\ttoServer() {\n\t\t\t/* Only write to `raw` field. The others are derived on the server */\n\t\t\tconst data = {\n\t\t\t\traw: this.raw,\n\t\t\t\tcontact: this._retrieveURL(this.contact),\n\t\t\t};\n\n\t\t\tif (this.id) {\n\t\t\t\tdata.id = this.id;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nregister(\"ContactPhoneModel\", ContactPhoneModel);\n"],"file":"contact-phone.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/contact.js"],"names":["ContactModel","BaseModel","extend","modelName","props","created_date","email","modified_date","name_first","name_last","notes","phone","photo_128","photo_256","photo_512","position","profile","fixture_key","collections","opportunity_set","children","location","customer","user","derived","fullName","deps","fn","toServer","data","_retrieveURL","id"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,YAAY,GAAGC,gBAAUC,MAAV;AAC3B;AAAmC;AAClCC,EAAAA,SAAS,EAAE,UADuB;;AAGlC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,YAAY,EAAE,MADR;AAENC,IAAAA,KAAK,EAAE,QAFD;AAGNC,IAAAA,aAAa,EAAE,MAHT;AAINC,IAAAA,UAAU,EAAE,iBAJN;AAKNC,IAAAA,SAAS,EAAE,iBALL;AAMNC,IAAAA,KAAK,EAAE,iBAND;AAONC,IAAAA,KAAK,EAAE,iBAPD;AAQNC,IAAAA,SAAS,EAAE,QARL;AASNC,IAAAA,SAAS,EAAE,QATL;AAUNC,IAAAA,SAAS,EAAE,QAVL;AAWNC,IAAAA,QAAQ,EAAE,QAXJ;AAYNC,IAAAA,OAAO,EAAE,QAZH;AAaNC,IAAAA,WAAW,EAAE;AAbP,GAjB2B;;AAiClC;AACF;AACA;AACEC,EAAAA,WAAW,EAAE;AACZC,IAAAA,eAAe,EAAE;AADL,GApCqB;;AAwClC;AACF;AACA;AACA;AACA;AACEC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,QAAQ,EAAE,eADD;AAETC,IAAAA,QAAQ,EAAE,eAFD;AAGTC,IAAAA,IAAI,EAAE;AAHG,GA7CwB;;AAmDlC;AACF;AACA;AACEC,EAAAA,OAAO,EAAE;AACR;AACH;AACA;AACA;AACA;AACGC,IAAAA,QAAQ,EAAE;AACTC,MAAAA,IAAI,EAAE,CAAC,YAAD,EAAe,WAAf,CADG;AAETC,MAAAA,EAAE,EAAE,cAAY;AACf,yBAAU,KAAKnB,UAAf,cAA6B,KAAKC,SAAlC;AACA;AAJQ;AANF,GAtDyB;AAoElCmB,EAAAA,QApEkC,sBAoEvB;AACV,QAAMC,IAAI,GAAG;AACZvB,MAAAA,KAAK,EAAE,KAAKA,KADA;AAEZE,MAAAA,UAAU,EAAE,KAAKA,UAFL;AAGZC,MAAAA,SAAS,EAAE,KAAKA,SAHJ;AAIZC,MAAAA,KAAK,EAAE,KAAKA,KAJA;AAKZC,MAAAA,KAAK,EAAE,KAAKA,KALA;AAMZI,MAAAA,QAAQ,EAAE,KAAKA,QANH;AAOZI,MAAAA,eAAe,EAAE,KAAKW,YAAL,CAAkB,KAAKX,eAAvB,CAPL;AAQZG,MAAAA,QAAQ,EAAE,KAAKQ,YAAL,CAAkB,KAAKR,QAAvB,CARE;AASZD,MAAAA,QAAQ,EAAE,KAAKS,YAAL,CAAkB,KAAKT,QAAvB,CATE;AAUZE,MAAAA,IAAI,EAAE,KAAKO,YAAL,CAAkB,KAAKP,IAAvB;AAVM,KAAb;;AAaA,QAAI,KAAKQ,EAAT,EAAa;AACZF,MAAAA,IAAI,CAACE,EAAL,GAAU,KAAKA,EAAf;AACA;;AAED,WAAOF,IAAP;AACA;AAvFiC,CADR,CAArB;;;AA4FP,6BAAS,cAAT,EAAyB7B,YAAzB","sourcesContent":["import \"./user.js\";\nimport \"./customer.js\";\nimport \"./location.js\";\nimport \"../collections/opportunities.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.ContactModel\n * @extends models.BaseModel\n */\nexport const ContactModel = BaseModel.extend(\n\t/** @lends models.ContactModel# */ {\n\t\tmodelName: \"contacts\",\n\n\t\t/**\n\t\t * @property {date} created_date\n\t\t * @property {string} email\n\t\t * @property {date} modified_date\n\t\t * @property {string} name_first\n\t\t * @property {string} name_last\n\t\t * @property {string} notes\n\t\t * @property {string} phone\n\t\t * @property {string} photo_128\n\t\t * @property {string} photo_256\n\t\t * @property {string} photo_512\n\t\t * @property {string} position\n\t\t * @property {object} profile\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\temail: \"string\",\n\t\t\tmodified_date: \"date\",\n\t\t\tname_first: \"stringSanitized\",\n\t\t\tname_last: \"stringSanitized\",\n\t\t\tnotes: \"stringSanitized\",\n\t\t\tphone: \"stringSanitized\",\n\t\t\tphoto_128: \"string\",\n\t\t\tphoto_256: \"string\",\n\t\t\tphoto_512: \"string\",\n\t\t\tposition: \"string\",\n\t\t\tprofile: \"object\",\n\t\t\tfixture_key: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.OpportunityCollection} opportunity_set\n\t\t */\n\t\tcollections: {\n\t\t\topportunity_set: \"OpportunityCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.LocationModel} location\n\t\t * @property {models.CustomerModel} customer\n\t\t * @property {models.UserModel} user\n\t\t */\n\t\tchildren: {\n\t\t\tlocation: \"LocationModel\",\n\t\t\tcustomer: \"CustomerModel\",\n\t\t\tuser: \"UserModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {string} fullName\n\t\t */\n\t\tderived: {\n\t\t\t/**\n\t\t\t * The full name of the contact\n\t\t\t * @property fullName\n\t\t\t * @type String\n\t\t\t */\n\t\t\tfullName: {\n\t\t\t\tdeps: [\"name_first\", \"name_last\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\treturn `${this.name_first} ${this.name_last}`;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = {\n\t\t\t\temail: this.email,\n\t\t\t\tname_first: this.name_first,\n\t\t\t\tname_last: this.name_last,\n\t\t\t\tnotes: this.notes,\n\t\t\t\tphone: this.phone,\n\t\t\t\tposition: this.position,\n\t\t\t\topportunity_set: this._retrieveURL(this.opportunity_set),\n\t\t\t\tcustomer: this._retrieveURL(this.customer),\n\t\t\t\tlocation: this._retrieveURL(this.location),\n\t\t\t\tuser: this._retrieveURL(this.user),\n\t\t\t};\n\n\t\t\tif (this.id) {\n\t\t\t\tdata.id = this.id;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t}\n);\n\nregister(\"ContactModel\", ContactModel);\n"],"file":"contact.js"}
1
+ {"version":3,"sources":["../../src/models/contact.js"],"names":["ContactModel","BaseModel","extend","modelName","props","created_date","email","modified_date","name_first","name_last","notes","phone","photo_128","photo_256","photo_512","position","profile","fixture_key","collections","opportunity_set","children","location","customer","user","derived","fullName","deps","fn","toServer","data","_retrieveURL","id"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,YAAY,GAAGC,gBAAUC,MAAV;AAC3B;AAAmC;AAClCC,EAAAA,SAAS,EAAE,UADuB;;AAGlC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,YAAY,EAAE,MADR;AAENC,IAAAA,KAAK,EAAE,QAFD;AAGNC,IAAAA,aAAa,EAAE,MAHT;AAINC,IAAAA,UAAU,EAAE,iBAJN;AAKNC,IAAAA,SAAS,EAAE,iBALL;AAMNC,IAAAA,KAAK,EAAE,iBAND;AAONC,IAAAA,KAAK,EAAE,iBAPD;AAQNC,IAAAA,SAAS,EAAE,QARL;AASNC,IAAAA,SAAS,EAAE,QATL;AAUNC,IAAAA,SAAS,EAAE,QAVL;AAWNC,IAAAA,QAAQ,EAAE,QAXJ;AAYNC,IAAAA,OAAO,EAAE,QAZH;AAaNC,IAAAA,WAAW,EAAE;AAbP,GAjB2B;;AAiClC;AACF;AACA;AACEC,EAAAA,WAAW,EAAE;AACZC,IAAAA,eAAe,EAAE;AADL,GApCqB;;AAwClC;AACF;AACA;AACA;AACA;AACEC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,QAAQ,EAAE,eADD;AAETC,IAAAA,QAAQ,EAAE,eAFD;AAGTC,IAAAA,IAAI,EAAE;AAHG,GA7CwB;;AAmDlC;AACF;AACA;AACEC,EAAAA,OAAO,EAAE;AACR;AACH;AACA;AACA;AACA;AACGC,IAAAA,QAAQ,EAAE;AACTC,MAAAA,IAAI,EAAE,CAAC,YAAD,EAAe,WAAf,CADG;AAETC,MAAAA,EAAE,EAAE,cAAY;AACf,yBAAU,KAAKnB,UAAf,cAA6B,KAAKC,SAAlC;AACA;AAJQ;AANF,GAtDyB;AAoElCmB,EAAAA,QApEkC,sBAoEvB;AACV,QAAMC,IAAI,GAAG;AACZvB,MAAAA,KAAK,EAAE,KAAKA,KADA;AAEZE,MAAAA,UAAU,EAAE,KAAKA,UAFL;AAGZC,MAAAA,SAAS,EAAE,KAAKA,SAHJ;AAIZC,MAAAA,KAAK,EAAE,KAAKA,KAJA;AAKZC,MAAAA,KAAK,EAAE,KAAKA,KALA;AAMZI,MAAAA,QAAQ,EAAE,KAAKA,QANH;AAOZI,MAAAA,eAAe,EAAE,KAAKW,YAAL,CAAkB,KAAKX,eAAvB,CAPL;AAQZG,MAAAA,QAAQ,EAAE,KAAKQ,YAAL,CAAkB,KAAKR,QAAvB,CARE;AASZD,MAAAA,QAAQ,EAAE,KAAKS,YAAL,CAAkB,KAAKT,QAAvB,CATE;AAUZE,MAAAA,IAAI,EAAE,KAAKO,YAAL,CAAkB,KAAKP,IAAvB;AAVM,KAAb;;AAaA,QAAI,KAAKQ,EAAT,EAAa;AACZF,MAAAA,IAAI,CAACE,EAAL,GAAU,KAAKA,EAAf;AACA;;AAED,WAAOF,IAAP;AACA;AAvFiC,CADR,CAArB;;;AA4FP,6BAAS,cAAT,EAAyB7B,YAAzB","sourcesContent":["import \"./user.js\";\nimport \"./customer.js\";\nimport \"./location.js\";\nimport \"../collections/opportunities.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.ContactModel\n * @extends models.BaseModel\n */\nexport const ContactModel = BaseModel.extend(\n\t/** @lends models.ContactModel# */ {\n\t\tmodelName: \"contacts\",\n\n\t\t/**\n\t\t * @property {date} created_date\n\t\t * @property {string} email\n\t\t * @property {date} modified_date\n\t\t * @property {string} name_first\n\t\t * @property {string} name_last\n\t\t * @property {string} notes\n\t\t * @property {string} phone\n\t\t * @property {string} photo_128\n\t\t * @property {string} photo_256\n\t\t * @property {string} photo_512\n\t\t * @property {string} position\n\t\t * @property {object} profile\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\temail: \"string\",\n\t\t\tmodified_date: \"date\",\n\t\t\tname_first: \"stringSanitized\",\n\t\t\tname_last: \"stringSanitized\",\n\t\t\tnotes: \"stringSanitized\",\n\t\t\tphone: \"stringSanitized\",\n\t\t\tphoto_128: \"string\",\n\t\t\tphoto_256: \"string\",\n\t\t\tphoto_512: \"string\",\n\t\t\tposition: \"string\",\n\t\t\tprofile: \"object\",\n\t\t\tfixture_key: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.OpportunityCollection} opportunity_set\n\t\t */\n\t\tcollections: {\n\t\t\topportunity_set: \"OpportunityCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.LocationModel} location\n\t\t * @property {models.CustomerModel} customer\n\t\t * @property {models.UserModel} user\n\t\t */\n\t\tchildren: {\n\t\t\tlocation: \"LocationModel\",\n\t\t\tcustomer: \"CustomerModel\",\n\t\t\tuser: \"UserModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {string} fullName\n\t\t */\n\t\tderived: {\n\t\t\t/**\n\t\t\t * The full name of the contact\n\t\t\t * @property fullName\n\t\t\t * @type String\n\t\t\t */\n\t\t\tfullName: {\n\t\t\t\tdeps: [\"name_first\", \"name_last\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\treturn `${this.name_first} ${this.name_last}`;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = {\n\t\t\t\temail: this.email,\n\t\t\t\tname_first: this.name_first,\n\t\t\t\tname_last: this.name_last,\n\t\t\t\tnotes: this.notes,\n\t\t\t\tphone: this.phone,\n\t\t\t\tposition: this.position,\n\t\t\t\topportunity_set: this._retrieveURL(this.opportunity_set),\n\t\t\t\tcustomer: this._retrieveURL(this.customer),\n\t\t\t\tlocation: this._retrieveURL(this.location),\n\t\t\t\tuser: this._retrieveURL(this.user),\n\t\t\t};\n\n\t\t\tif (this.id) {\n\t\t\t\tdata.id = this.id;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nregister(\"ContactModel\", ContactModel);\n"],"file":"contact.js"}
@@ -87,8 +87,10 @@ var CustomerModel = _base.BaseModel.extend(
87
87
  logo: {
88
88
  deps: ["logo_512", "profile"],
89
89
  fn: function fn() {
90
+ var _this$profile;
91
+
90
92
  // HACK: Check for the REA usecase where it gets images from profile
91
- if (this.profile && this.profile.rea_image_large) {
93
+ if ((_this$profile = this.profile) !== null && _this$profile !== void 0 && _this$profile.rea_image_large) {
92
94
  return this.profile.rea_image_large;
93
95
  }
94
96
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/customer.js"],"names":["CustomerModel","BaseModel","extend","modelName","props","created_date","logo_128","logo_256","logo_512","logo_original","modified_date","notes","primary_colour","profile","soft_deleted","title","website","children","default_location","default_opportunity","collections","contact_set","opportunity_set","location_set","team_set","derived","logo","deps","fn","rea_image_large","primaryColour","fetch","baseFetch","prototype","apply","arguments","then","topParent","curParent","parent","name","contactUrls","map","contact","_retrieveUrl","filteredContacts","filter","indexOf","set","toServer","data","_retrieveURL","id"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,aAAa,GAAGC,gBAAUC,MAAV;AAC5B;AAAoC;AACnCC,EAAAA,SAAS,EAAE,WADwB;;AAGnC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,YAAY,EAAE,MADR;AAENC,IAAAA,QAAQ,EAAE,QAFJ;AAGNC,IAAAA,QAAQ,EAAE,QAHJ;AAINC,IAAAA,QAAQ,EAAE,QAJJ;AAKNC,IAAAA,aAAa,EAAE,QALT;AAMNC,IAAAA,aAAa,EAAE,MANT;AAONC,IAAAA,KAAK,EAAE,iBAPD;AAQNC,IAAAA,cAAc,EAAE,QARV;AASNC,IAAAA,OAAO,EAAE,QATH;AAUNC,IAAAA,YAAY,EAAE,SAVR;AAWNC,IAAAA,KAAK,EAAE,iBAXD;AAYNC,IAAAA,OAAO,EAAE;AAZH,GAjB4B;;AAgCnC;AACF;AACA;AACA;AACEC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,gBAAgB,EAAE,eADT;AAETC,IAAAA,mBAAmB,EAAE;AAFZ,GApCyB;;AAyCnC;AACF;AACA;AACA;AACA;AACEC,EAAAA,WAAW,EAAE;AACZC,IAAAA,WAAW,EAAE,mBADD;AAEZC,IAAAA,eAAe,EAAE,uBAFL;AAGZC,IAAAA,YAAY,EAAE,oBAHF;AAIZC,IAAAA,QAAQ,EAAE;AAJE,GA9CsB;;AAqDnC;AACF;AACA;AACA;AACEC,EAAAA,OAAO,EAAE;AACRC,IAAAA,IAAI,EAAE;AACLC,MAAAA,IAAI,EAAE,CAAC,UAAD,EAAa,SAAb,CADD;AAELC,MAAAA,EAAE,EAAE,cAAY;AACf;AACA,YAAI,KAAKf,OAAL,IAAgB,KAAKA,OAAL,CAAagB,eAAjC,EAAkD;AACjD,iBAAO,KAAKhB,OAAL,CAAagB,eAApB;AACA;;AAED,eAAO,KAAKrB,QAAZ;AACA;AATI,KADE;AAYRsB,IAAAA,aAAa,EAAE;AACdH,MAAAA,IAAI,EAAE,CAAC,gBAAD,EAAmB,SAAnB,CADQ;AAEdC,MAAAA,EAAE,EAAE,cAAY;AACf;AACA,YAAI,KAAKf,OAAL,IAAgB,KAAKA,OAAL,CAAaD,cAAjC,EAAiD;AAChD,iBAAO,KAAKC,OAAL,CAAaD,cAApB;AACA;;AAED,eAAO,KAAKA,cAAZ;AACA;AATa;AAZP,GAzD0B;AAkFnCmB,EAAAA,KAlFmC,mBAkF3B;AAAA;;AACP,QAAMC,SAAS,GAAG/B,gBAAUgC,SAAV,CAAoBF,KAApB,CAA0BG,KAA1B,CAAgC,IAAhC,EAAsCC,SAAtC,CAAlB;;AAEA,WAAOH,SAAS,CAACI,IAAV,CAAe,YAAM;AAC3B,UAAIC,SAAJ;AACA,UAAIC,SAAS,GAAG,KAAI,CAACC,MAArB;;AAEA,aAAO,OAAOD,SAAP,KAAqB,WAA5B,EAAyC;AACxCA,QAAAA,SAAS,GAAGA,SAAS,CAACC,MAAtB;;AACA,YAAID,SAAJ,EAAe;AACdD,UAAAA,SAAS,GAAGC,SAAZ;AACA;AACD,OAT0B,CAW3B;;;AACA,UAAID,SAAS,IAAIA,SAAS,CAACG,IAAV,KAAmB,cAApC,EAAoD;AACnD,YAAMC,WAAW,GAAG,KAAI,CAACpB,WAAL,CAAiBqB,GAAjB,CAAqB,UAACC,OAAD;AAAA,iBACxC,KAAI,CAACC,YAAL,CAAkBD,OAAlB,CADwC;AAAA,SAArB,CAApB;;AAIA,YAAME,gBAAgB,GAAGR,SAAS,CAAChB,WAAV,CAAsByB,MAAtB,CAA6B,UAACH,OAAD,EAAa;AAClE,iBAAOF,WAAW,CAACM,OAAZ,CAAoB,KAAI,CAACH,YAAL,CAAkBD,OAAlB,CAApB,IAAkD,CAAC,CAA1D;AACA,SAFwB,CAAzB;;AAIA,QAAA,KAAI,CAACtB,WAAL,CAAiB2B,GAAjB,CAAqBH,gBAArB;AACA;AACD,KAvBM,CAAP;AAwBA,GA7GkC;AA+GnCI,EAAAA,QA/GmC,sBA+GxB;AACV,QAAMC,IAAI,GAAG;AACZvC,MAAAA,KAAK,EAAE,KAAKA,KADA;AAEZC,MAAAA,cAAc,EAAE,KAAKA,cAFT;AAGZG,MAAAA,KAAK,EAAE,KAAKA,KAHA;AAIZC,MAAAA,OAAO,EAAE,KAAKA,OAJF;AAKZQ,MAAAA,QAAQ,EAAE,KAAK2B,YAAL,CAAkB,KAAK3B,QAAvB;AALE,KAAb;;AAQA,QAAI,KAAK4B,EAAT,EAAa;AACZF,MAAAA,IAAI,CAACE,EAAL,GAAU,KAAKA,EAAf;AACA;;AAED,WAAOF,IAAP;AACA;AA7HkC,CADR,CAAtB;;;AAkIP,6BAAS,eAAT,EAA0BlD,aAA1B","sourcesContent":["import \"../models/opportunity.js\";\nimport \"../collections/locations.js\";\nimport \"../collections/contacts.js\";\nimport \"../collections/locations.js\";\nimport \"../collections/opportunities.js\";\nimport \"../collections/teams.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.CustomerModel\n * @extends models.BaseModel\n */\nexport const CustomerModel = BaseModel.extend(\n\t/** @lends models.CustomerModel# */ {\n\t\tmodelName: \"customers\",\n\n\t\t/**\n\t\t * @property {date} created_date\n\t\t * @property {string} logo_128\n\t\t * @property {string} logo_256\n\t\t * @property {string} logo_512\n\t\t * @property {string} logo_original\n\t\t * @property {date} modified_date\n\t\t * @property {string} notes\n\t\t * @property {string} primary_colour\n\t\t * @property {object} profile\n\t\t * @property {boolean} soft_deleted\n\t\t * @property {string} title\n\t\t * @property {string} website\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\tlogo_128: \"string\",\n\t\t\tlogo_256: \"string\",\n\t\t\tlogo_512: \"string\",\n\t\t\tlogo_original: \"string\",\n\t\t\tmodified_date: \"date\",\n\t\t\tnotes: \"stringSanitized\",\n\t\t\tprimary_colour: \"string\",\n\t\t\tprofile: \"object\",\n\t\t\tsoft_deleted: \"boolean\",\n\t\t\ttitle: \"stringSanitized\",\n\t\t\twebsite: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.LocationModel} default_location\n\t\t * @property {models.OpportunityModel} default_opportunity\n\t\t */\n\t\tchildren: {\n\t\t\tdefault_location: \"LocationModel\",\n\t\t\tdefault_opportunity: \"OpportunityModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.ContactCollection} contact_set\n\t\t * @property {collections.OpportunityCollection} opportunity_set\n\t\t * @property {collections.LocationCollection} location_set\n\t\t */\n\t\tcollections: {\n\t\t\tcontact_set: \"ContactCollection\",\n\t\t\topportunity_set: \"OpportunityCollection\",\n\t\t\tlocation_set: \"LocationCollection\",\n\t\t\tteam_set: \"TeamCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {string} logo\n\t\t * @property {string} primaryColour\n\t\t */\n\t\tderived: {\n\t\t\tlogo: {\n\t\t\t\tdeps: [\"logo_512\", \"profile\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\t// HACK: Check for the REA usecase where it gets images from profile\n\t\t\t\t\tif (this.profile && this.profile.rea_image_large) {\n\t\t\t\t\t\treturn this.profile.rea_image_large;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.logo_512;\n\t\t\t\t},\n\t\t\t},\n\t\t\tprimaryColour: {\n\t\t\t\tdeps: [\"primary_colour\", \"profile\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\t// HACK: Check for the REA usecase where it gets primary colour from profile\n\t\t\t\t\tif (this.profile && this.profile.primary_colour) {\n\t\t\t\t\t\treturn this.profile.primary_colour;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.primary_colour;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tfetch() {\n\t\t\tconst baseFetch = BaseModel.prototype.fetch.apply(this, arguments);\n\n\t\t\treturn baseFetch.then(() => {\n\t\t\t\tlet topParent;\n\t\t\t\tlet curParent = this.parent;\n\n\t\t\t\twhile (typeof curParent !== \"undefined\") {\n\t\t\t\t\tcurParent = curParent.parent;\n\t\t\t\t\tif (curParent) {\n\t\t\t\t\t\ttopParent = curParent;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Filter contacts if this is fetched from an appointment\n\t\t\t\tif (topParent && topParent.name === \"appointments\") {\n\t\t\t\t\tconst contactUrls = this.contact_set.map((contact) =>\n\t\t\t\t\t\tthis._retrieveUrl(contact)\n\t\t\t\t\t);\n\n\t\t\t\t\tconst filteredContacts = topParent.contact_set.filter((contact) => {\n\t\t\t\t\t\treturn contactUrls.indexOf(this._retrieveUrl(contact)) > -1;\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.contact_set.set(filteredContacts);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = {\n\t\t\t\tnotes: this.notes,\n\t\t\t\tprimary_colour: this.primary_colour,\n\t\t\t\ttitle: this.title,\n\t\t\t\twebsite: this.website,\n\t\t\t\tteam_set: this._retrieveURL(this.team_set),\n\t\t\t};\n\n\t\t\tif (this.id) {\n\t\t\t\tdata.id = this.id;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t}\n);\n\nregister(\"CustomerModel\", CustomerModel);\n"],"file":"customer.js"}
1
+ {"version":3,"sources":["../../src/models/customer.js"],"names":["CustomerModel","BaseModel","extend","modelName","props","created_date","logo_128","logo_256","logo_512","logo_original","modified_date","notes","primary_colour","profile","soft_deleted","title","website","children","default_location","default_opportunity","collections","contact_set","opportunity_set","location_set","team_set","derived","logo","deps","fn","rea_image_large","primaryColour","fetch","baseFetch","prototype","apply","arguments","then","topParent","curParent","parent","name","contactUrls","map","contact","_retrieveUrl","filteredContacts","filter","indexOf","set","toServer","data","_retrieveURL","id"],"mappings":"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","sourcesContent":["import \"../models/opportunity.js\";\nimport \"../collections/locations.js\";\nimport \"../collections/contacts.js\";\nimport \"../collections/locations.js\";\nimport \"../collections/opportunities.js\";\nimport \"../collections/teams.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.CustomerModel\n * @extends models.BaseModel\n */\nexport const CustomerModel = BaseModel.extend(\n\t/** @lends models.CustomerModel# */ {\n\t\tmodelName: \"customers\",\n\n\t\t/**\n\t\t * @property {date} created_date\n\t\t * @property {string} logo_128\n\t\t * @property {string} logo_256\n\t\t * @property {string} logo_512\n\t\t * @property {string} logo_original\n\t\t * @property {date} modified_date\n\t\t * @property {string} notes\n\t\t * @property {string} primary_colour\n\t\t * @property {object} profile\n\t\t * @property {boolean} soft_deleted\n\t\t * @property {string} title\n\t\t * @property {string} website\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\tlogo_128: \"string\",\n\t\t\tlogo_256: \"string\",\n\t\t\tlogo_512: \"string\",\n\t\t\tlogo_original: \"string\",\n\t\t\tmodified_date: \"date\",\n\t\t\tnotes: \"stringSanitized\",\n\t\t\tprimary_colour: \"string\",\n\t\t\tprofile: \"object\",\n\t\t\tsoft_deleted: \"boolean\",\n\t\t\ttitle: \"stringSanitized\",\n\t\t\twebsite: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.LocationModel} default_location\n\t\t * @property {models.OpportunityModel} default_opportunity\n\t\t */\n\t\tchildren: {\n\t\t\tdefault_location: \"LocationModel\",\n\t\t\tdefault_opportunity: \"OpportunityModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.ContactCollection} contact_set\n\t\t * @property {collections.OpportunityCollection} opportunity_set\n\t\t * @property {collections.LocationCollection} location_set\n\t\t */\n\t\tcollections: {\n\t\t\tcontact_set: \"ContactCollection\",\n\t\t\topportunity_set: \"OpportunityCollection\",\n\t\t\tlocation_set: \"LocationCollection\",\n\t\t\tteam_set: \"TeamCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {string} logo\n\t\t * @property {string} primaryColour\n\t\t */\n\t\tderived: {\n\t\t\tlogo: {\n\t\t\t\tdeps: [\"logo_512\", \"profile\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\t// HACK: Check for the REA usecase where it gets images from profile\n\t\t\t\t\tif (this.profile?.rea_image_large) {\n\t\t\t\t\t\treturn this.profile.rea_image_large;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.logo_512;\n\t\t\t\t},\n\t\t\t},\n\t\t\tprimaryColour: {\n\t\t\t\tdeps: [\"primary_colour\", \"profile\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\t// HACK: Check for the REA usecase where it gets primary colour from profile\n\t\t\t\t\tif (this.profile && this.profile.primary_colour) {\n\t\t\t\t\t\treturn this.profile.primary_colour;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.primary_colour;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tfetch() {\n\t\t\tconst baseFetch = BaseModel.prototype.fetch.apply(this, arguments);\n\n\t\t\treturn baseFetch.then(() => {\n\t\t\t\tlet topParent;\n\t\t\t\tlet curParent = this.parent;\n\n\t\t\t\twhile (typeof curParent !== \"undefined\") {\n\t\t\t\t\tcurParent = curParent.parent;\n\t\t\t\t\tif (curParent) {\n\t\t\t\t\t\ttopParent = curParent;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Filter contacts if this is fetched from an appointment\n\t\t\t\tif (topParent && topParent.name === \"appointments\") {\n\t\t\t\t\tconst contactUrls = this.contact_set.map((contact) =>\n\t\t\t\t\t\tthis._retrieveUrl(contact),\n\t\t\t\t\t);\n\n\t\t\t\t\tconst filteredContacts = topParent.contact_set.filter((contact) => {\n\t\t\t\t\t\treturn contactUrls.indexOf(this._retrieveUrl(contact)) > -1;\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.contact_set.set(filteredContacts);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = {\n\t\t\t\tnotes: this.notes,\n\t\t\t\tprimary_colour: this.primary_colour,\n\t\t\t\ttitle: this.title,\n\t\t\t\twebsite: this.website,\n\t\t\t\tteam_set: this._retrieveURL(this.team_set),\n\t\t\t};\n\n\t\t\tif (this.id) {\n\t\t\t\tdata.id = this.id;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nregister(\"CustomerModel\", CustomerModel);\n"],"file":"customer.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/deck-note.js"],"names":["DeckNoteModel","BaseModel","extend","modelName","props","created_date","modified_date","note","mime","parent_key","children","deck","user","team","canBeEmpty"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,aAAa,GAAGC,gBAAUC,MAAV;AAC5B;AAAgC;AAC/BC,EAAAA,SAAS,EAAE,WADoB;;AAG/B;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,YAAY,EAAE,MADR;AAENC,IAAAA,aAAa,EAAE,MAFT;AAGNC,IAAAA,IAAI,EAAE,QAHA;AAINC,IAAAA,IAAI,EAAE,QAJA;AAKNC,IAAAA,UAAU,EAAE;AALN,GAVwB;AAkB/BC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,IAAI,EAAE,WADG;AAETC,IAAAA,IAAI,EAAE,WAFG;AAGTC,IAAAA,IAAI,EAAE;AAHG;AAlBqB,CADJ,CAAtB;;;AA2BPb,aAAa,CAACc,UAAd,GAA2B,IAA3B;AAEA,6BAAS,eAAT,EAA0Bd,aAA1B","sourcesContent":["import { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckModel\n * @extends models.BaseModel\n */\nexport const DeckNoteModel = BaseModel.extend(\n\t/** @lends models.NoteModel# */ {\n\t\tmodelName: \"decknotes\",\n\n\t\t/**\n\t\t * @property {string} attached_to_key\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\n\t\t * @property {string} note\n\t\t * @property {string} mime\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\tnote: \"string\",\n\t\t\tmime: \"string\",\n\t\t\tparent_key: \"string\",\n\t\t},\n\n\t\tchildren: {\n\t\t\tdeck: \"DeckModel\",\n\t\t\tuser: \"UserModel\",\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\t}\n);\n\nDeckNoteModel.canBeEmpty = true;\n\nregister(\"DeckNoteModel\", DeckNoteModel);\n"],"file":"deck-note.js"}
1
+ {"version":3,"sources":["../../src/models/deck-note.js"],"names":["DeckNoteModel","BaseModel","extend","modelName","props","created_date","modified_date","note","mime","parent_key","children","deck","user","team","canBeEmpty"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,aAAa,GAAGC,gBAAUC,MAAV;AAC5B;AAAgC;AAC/BC,EAAAA,SAAS,EAAE,WADoB;;AAG/B;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,YAAY,EAAE,MADR;AAENC,IAAAA,aAAa,EAAE,MAFT;AAGNC,IAAAA,IAAI,EAAE,QAHA;AAINC,IAAAA,IAAI,EAAE,QAJA;AAKNC,IAAAA,UAAU,EAAE;AALN,GAVwB;AAkB/BC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,IAAI,EAAE,WADG;AAETC,IAAAA,IAAI,EAAE,WAFG;AAGTC,IAAAA,IAAI,EAAE;AAHG;AAlBqB,CADJ,CAAtB;;;AA2BPb,aAAa,CAACc,UAAd,GAA2B,IAA3B;AAEA,6BAAS,eAAT,EAA0Bd,aAA1B","sourcesContent":["import { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckModel\n * @extends models.BaseModel\n */\nexport const DeckNoteModel = BaseModel.extend(\n\t/** @lends models.NoteModel# */ {\n\t\tmodelName: \"decknotes\",\n\n\t\t/**\n\t\t * @property {string} attached_to_key\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\n\t\t * @property {string} note\n\t\t * @property {string} mime\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\tnote: \"string\",\n\t\t\tmime: \"string\",\n\t\t\tparent_key: \"string\",\n\t\t},\n\n\t\tchildren: {\n\t\t\tdeck: \"DeckModel\",\n\t\t\tuser: \"UserModel\",\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\t},\n);\n\nDeckNoteModel.canBeEmpty = true;\n\nregister(\"DeckNoteModel\", DeckNoteModel);\n"],"file":"deck-note.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/deck-tags.js"],"names":["DeckTagsModel","BaseModel","extend","modelName","props","items","url","parent","getFullURLPath","getPlainURL","prototype","call","fetch","opts","tap","tags","isNew","toServer","save","canBeEmpty"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,aAAa,GAAGC,gBAAUC,MAAV;AAC5B;AAAoC;AACnCC,EAAAA,SAAS,EAAE,WADwB;;AAGnC;AACF;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,KAAK,EAAE;AADD,GAN4B;AAUnCC,EAAAA,GAVmC,iBAU7B;AACL,QAAI,KAAKC,MAAL,IAAe,KAAKA,MAAL,CAAYJ,SAAZ,KAA0B,OAA7C,EAAsD;AACrD,aAAO,KAAKK,cAAL,WAAuB,KAAKD,MAAL,CAAYE,WAAZ,EAAvB,WAAP;AACA;;AACD,WAAOR,gBAAUS,SAAV,CAAoBJ,GAApB,CAAwBK,IAAxB,CAA6B,IAA7B,CAAP;AACA,GAfkC;AAiBnCC,EAAAA,KAjBmC,iBAiB7BC,IAjB6B,EAiBvB;AAAA;;AACX,WAAOZ,gBAAUS,SAAV,CAAoBE,KAApB,CAA0BD,IAA1B,CAA+B,IAA/B,EAAqCE,IAArC,EAA2CC,GAA3C,CAA+C,UAACC,IAAD,EAAU;AAC/D,MAAA,KAAI,CAACV,KAAL,GAAaU,IAAb;AACA,KAFM,CAAP;AAGA,GArBkC;AAuBnCC,EAAAA,KAvBmC,mBAuB3B;AACP;AACA,WAAO,KAAP;AACA,GA1BkC;AA4BnCC,EAAAA,QA5BmC,sBA4BxB;AACV,WAAO,KAAKZ,KAAZ;AACA,GA9BkC;AAgCnCa,EAAAA,IAhCmC,kBAgC5B;AAAA;;AACN,WAAOjB,gBAAUS,SAAV,CAAoBQ,IAApB,CAAyBP,IAAzB,CAA8B,IAA9B,EAAoCG,GAApC,CAAwC,UAACC,IAAD,EAAU;AACxD,MAAA,MAAI,CAACV,KAAL,GAAaU,IAAb;AACA,KAFM,CAAP;AAGA;AApCkC,CADR,CAAtB;;;AAyCPf,aAAa,CAACmB,UAAd,GAA2B,IAA3B;AAEA,6BAAS,eAAT,EAA0BnB,aAA1B","sourcesContent":["import { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckTagsModel\n * @extends models.BaseModel\n */\nexport const DeckTagsModel = BaseModel.extend(\n\t/** @lends models.DeckTagsModel# */ {\n\t\tmodelName: \"deck-tags\",\n\n\t\t/**\n\t\t * @property {object} items\n\t\t */\n\t\tprops: {\n\t\t\titems: \"object\",\n\t\t},\n\n\t\turl() {\n\t\t\tif (this.parent && this.parent.modelName === \"decks\") {\n\t\t\t\treturn this.getFullURLPath(`${this.parent.getPlainURL()}tags/`);\n\t\t\t}\n\t\t\treturn BaseModel.prototype.url.call(this);\n\t\t},\n\n\t\tfetch(opts) {\n\t\t\treturn BaseModel.prototype.fetch.call(this, opts).tap((tags) => {\n\t\t\t\tthis.items = tags;\n\t\t\t});\n\t\t},\n\n\t\tisNew() {\n\t\t\t// Force deck-tags to always use PUT.\n\t\t\treturn false;\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn this.items;\n\t\t},\n\n\t\tsave() {\n\t\t\treturn BaseModel.prototype.save.call(this).tap((tags) => {\n\t\t\t\tthis.items = tags;\n\t\t\t});\n\t\t},\n\t}\n);\n\nDeckTagsModel.canBeEmpty = true;\n\nregister(\"DeckTagsModel\", DeckTagsModel);\n"],"file":"deck-tags.js"}
1
+ {"version":3,"sources":["../../src/models/deck-tags.js"],"names":["DeckTagsModel","BaseModel","extend","modelName","props","items","url","parent","getFullURLPath","getPlainURL","prototype","call","fetch","opts","tap","tags","isNew","toServer","save","canBeEmpty"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,aAAa,GAAGC,gBAAUC,MAAV;AAC5B;AAAoC;AACnCC,EAAAA,SAAS,EAAE,WADwB;;AAGnC;AACF;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,KAAK,EAAE;AADD,GAN4B;AAUnCC,EAAAA,GAVmC,iBAU7B;AACL,QAAI,KAAKC,MAAL,IAAe,KAAKA,MAAL,CAAYJ,SAAZ,KAA0B,OAA7C,EAAsD;AACrD,aAAO,KAAKK,cAAL,WAAuB,KAAKD,MAAL,CAAYE,WAAZ,EAAvB,WAAP;AACA;;AACD,WAAOR,gBAAUS,SAAV,CAAoBJ,GAApB,CAAwBK,IAAxB,CAA6B,IAA7B,CAAP;AACA,GAfkC;AAiBnCC,EAAAA,KAjBmC,iBAiB7BC,IAjB6B,EAiBvB;AAAA;;AACX,WAAOZ,gBAAUS,SAAV,CAAoBE,KAApB,CAA0BD,IAA1B,CAA+B,IAA/B,EAAqCE,IAArC,EAA2CC,GAA3C,CAA+C,UAACC,IAAD,EAAU;AAC/D,MAAA,KAAI,CAACV,KAAL,GAAaU,IAAb;AACA,KAFM,CAAP;AAGA,GArBkC;AAuBnCC,EAAAA,KAvBmC,mBAuB3B;AACP;AACA,WAAO,KAAP;AACA,GA1BkC;AA4BnCC,EAAAA,QA5BmC,sBA4BxB;AACV,WAAO,KAAKZ,KAAZ;AACA,GA9BkC;AAgCnCa,EAAAA,IAhCmC,kBAgC5B;AAAA;;AACN,WAAOjB,gBAAUS,SAAV,CAAoBQ,IAApB,CAAyBP,IAAzB,CAA8B,IAA9B,EAAoCG,GAApC,CAAwC,UAACC,IAAD,EAAU;AACxD,MAAA,MAAI,CAACV,KAAL,GAAaU,IAAb;AACA,KAFM,CAAP;AAGA;AApCkC,CADR,CAAtB;;;AAyCPf,aAAa,CAACmB,UAAd,GAA2B,IAA3B;AAEA,6BAAS,eAAT,EAA0BnB,aAA1B","sourcesContent":["import { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckTagsModel\n * @extends models.BaseModel\n */\nexport const DeckTagsModel = BaseModel.extend(\n\t/** @lends models.DeckTagsModel# */ {\n\t\tmodelName: \"deck-tags\",\n\n\t\t/**\n\t\t * @property {object} items\n\t\t */\n\t\tprops: {\n\t\t\titems: \"object\",\n\t\t},\n\n\t\turl() {\n\t\t\tif (this.parent && this.parent.modelName === \"decks\") {\n\t\t\t\treturn this.getFullURLPath(`${this.parent.getPlainURL()}tags/`);\n\t\t\t}\n\t\t\treturn BaseModel.prototype.url.call(this);\n\t\t},\n\n\t\tfetch(opts) {\n\t\t\treturn BaseModel.prototype.fetch.call(this, opts).tap((tags) => {\n\t\t\t\tthis.items = tags;\n\t\t\t});\n\t\t},\n\n\t\tisNew() {\n\t\t\t// Force deck-tags to always use PUT.\n\t\t\treturn false;\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn this.items;\n\t\t},\n\n\t\tsave() {\n\t\t\treturn BaseModel.prototype.save.call(this).tap((tags) => {\n\t\t\t\tthis.items = tags;\n\t\t\t});\n\t\t},\n\t},\n);\n\nDeckTagsModel.canBeEmpty = true;\n\nregister(\"DeckTagsModel\", DeckTagsModel);\n"],"file":"deck-tags.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/deck-version-screenshot.js"],"names":["DeckVersionScreenshotModel","BaseModel","extend","modelName","urlMatchKeys","props","created_date","modified_date","image_128","image_256","image_512","subject","children","team","serialize","data","prototype","call","_","omit"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,0BAA0B,GAAGC,gBAAUC,MAAV;AACzC;AAAiD;AAChDC,EAAAA,SAAS,EAAE,yBADqC;AAGhDC,EAAAA,YAAY,EAAE;AACb,sBAAkB;AADL,GAHkC;;AAOhD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,YAAY,EAAE,MADR;AAENC,IAAAA,aAAa,EAAE,MAFT;AAGNC,IAAAA,SAAS,EAAE,QAHL;AAINC,IAAAA,SAAS,EAAE,QAJL;AAKNC,IAAAA,SAAS,EAAE,QALL;AAMNC,IAAAA,OAAO,EAAE;AANH,GAfyC;AAwBhDC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,IAAI,EAAE;AADG,GAxBsC;AA4BhDC,EAAAA,SA5BgD,uBA4BpC;AACX,QAAMC,IAAI,GAAGd,gBAAUe,SAAV,CAAoBF,SAApB,CAA8BG,IAA9B,CAAmC,IAAnC,CAAb;;AACA,WAAOC,gBAAEC,IAAF,CAAOJ,IAAP,EAAa,CAAC,KAAD,CAAb,CAAP;AACA;AA/B+C,CADR,CAAnC;;;AAoCP,6BAAS,4BAAT,EAAuCf,0BAAvC","sourcesContent":["import \"./team.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport _ from \"lodash\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckVersionScreenshotModel\n * @extends models.BaseModel\n */\nexport const DeckVersionScreenshotModel = BaseModel.extend(\n\t/** @lends models.DeckVersionScreenshotModel# */ {\n\t\tmodelName: \"deckversion-screenshots\",\n\n\t\turlMatchKeys: {\n\t\t\t\"deckversion.id\": \"number\",\n\t\t},\n\n\t\t/**\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\n\t\t * @property {string} image_128\n\t\t * @property {string} image_256\n\t\t * @property {string} image_512\n\t\t * @property {string} subject - A url for a screenshotted model (section, slide, etc.)\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\timage_128: \"string\",\n\t\t\timage_256: \"string\",\n\t\t\timage_512: \"string\",\n\t\t\tsubject: \"string\",\n\t\t},\n\n\t\tchildren: {\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\n\t\tserialize() {\n\t\t\tconst data = BaseModel.prototype.serialize.call(this);\n\t\t\treturn _.omit(data, [\"url\"]);\n\t\t},\n\t}\n);\n\nregister(\"DeckVersionScreenshotModel\", DeckVersionScreenshotModel);\n"],"file":"deck-version-screenshot.js"}
1
+ {"version":3,"sources":["../../src/models/deck-version-screenshot.js"],"names":["DeckVersionScreenshotModel","BaseModel","extend","modelName","urlMatchKeys","props","created_date","modified_date","image_128","image_256","image_512","subject","children","team","serialize","data","prototype","call","_","omit"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,0BAA0B,GAAGC,gBAAUC,MAAV;AACzC;AAAiD;AAChDC,EAAAA,SAAS,EAAE,yBADqC;AAGhDC,EAAAA,YAAY,EAAE;AACb,sBAAkB;AADL,GAHkC;;AAOhD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE;AACNC,IAAAA,YAAY,EAAE,MADR;AAENC,IAAAA,aAAa,EAAE,MAFT;AAGNC,IAAAA,SAAS,EAAE,QAHL;AAINC,IAAAA,SAAS,EAAE,QAJL;AAKNC,IAAAA,SAAS,EAAE,QALL;AAMNC,IAAAA,OAAO,EAAE;AANH,GAfyC;AAwBhDC,EAAAA,QAAQ,EAAE;AACTC,IAAAA,IAAI,EAAE;AADG,GAxBsC;AA4BhDC,EAAAA,SA5BgD,uBA4BpC;AACX,QAAMC,IAAI,GAAGd,gBAAUe,SAAV,CAAoBF,SAApB,CAA8BG,IAA9B,CAAmC,IAAnC,CAAb;;AACA,WAAOC,gBAAEC,IAAF,CAAOJ,IAAP,EAAa,CAAC,KAAD,CAAb,CAAP;AACA;AA/B+C,CADR,CAAnC;;;AAoCP,6BAAS,4BAAT,EAAuCf,0BAAvC","sourcesContent":["import \"./team.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport _ from \"lodash\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckVersionScreenshotModel\n * @extends models.BaseModel\n */\nexport const DeckVersionScreenshotModel = BaseModel.extend(\n\t/** @lends models.DeckVersionScreenshotModel# */ {\n\t\tmodelName: \"deckversion-screenshots\",\n\n\t\turlMatchKeys: {\n\t\t\t\"deckversion.id\": \"number\",\n\t\t},\n\n\t\t/**\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\n\t\t * @property {string} image_128\n\t\t * @property {string} image_256\n\t\t * @property {string} image_512\n\t\t * @property {string} subject - A url for a screenshotted model (section, slide, etc.)\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\timage_128: \"string\",\n\t\t\timage_256: \"string\",\n\t\t\timage_512: \"string\",\n\t\t\tsubject: \"string\",\n\t\t},\n\n\t\tchildren: {\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\n\t\tserialize() {\n\t\t\tconst data = BaseModel.prototype.serialize.call(this);\n\t\t\treturn _.omit(data, [\"url\"]);\n\t\t},\n\t},\n);\n\nregister(\"DeckVersionScreenshotModel\", DeckVersionScreenshotModel);\n"],"file":"deck-version-screenshot.js"}
@@ -11,8 +11,6 @@ require("../collections/sections.js");
11
11
 
12
12
  require("../collections/deck-notes.js");
13
13
 
14
- require("../collections/templates.js");
15
-
16
14
  require("./pack.js");
17
15
 
18
16
  require("./deck.js");
@@ -27,6 +25,8 @@ var _deckVersionScreenshots = require("../collections/deck-version-screenshots.j
27
25
 
28
26
  var _bluebird = _interopRequireDefault(require("bluebird"));
29
27
 
28
+ var _collections = require("../collections.js");
29
+
30
30
  var _lodash = _interopRequireDefault(require("lodash"));
31
31
 
32
32
  var _stateRegister = require("../state-register.js");
@@ -80,6 +80,7 @@ var DeckVersionModel = _base.BaseModel.extend(
80
80
  upgrade_description: "string",
81
81
  friendly_release_notes: "string",
82
82
  has_editable_share_support: "boolean",
83
+ has_signing_support: "boolean",
83
84
  point_in_time_share_policy: "string",
84
85
  tags: "array",
85
86
  cmsvalkey_set: "array"
@@ -101,12 +102,10 @@ var DeckVersionModel = _base.BaseModel.extend(
101
102
  /**
102
103
  * @property {collections.SectionCollection} section_set
103
104
  * @property {models.DeckNoteCollection} note_set
104
- * @property {models.TemplateCollection} template_set
105
105
  */
106
106
  collections: {
107
107
  section_set: "SectionCollection",
108
- note_set: "DeckNoteCollection",
109
- template_set: "TemplateCollection"
108
+ note_set: "DeckNoteCollection"
110
109
  },
111
110
 
112
111
  /**
@@ -121,6 +120,18 @@ var DeckVersionModel = _base.BaseModel.extend(
121
120
  });
122
121
  return screenshots;
123
122
  }
123
+ },
124
+ template_set: {
125
+ deps: ["id"],
126
+ fn: function fn() {
127
+ var templates = new _collections.TemplateCollection({}, {
128
+ data: {
129
+ deckversion: this.id,
130
+ scope: "global"
131
+ }
132
+ });
133
+ return templates;
134
+ }
124
135
  }
125
136
  },
126
137
  getHooksPath: function getHooksPath() {
@@ -188,16 +199,28 @@ var DeckVersionModel = _base.BaseModel.extend(
188
199
 
189
200
  return _bluebird.default.all(imports);
190
201
  },
191
- waitForReady: function waitForReady() {
202
+ fetch: function fetch() {
192
203
  var _this2 = this;
193
204
 
205
+ var fetch = _base.BaseModel.prototype.fetch.apply(this, arguments);
206
+
207
+ return _bluebird.default.resolve(fetch).tap(function () {
208
+ // `template_set` used to come on the deckversion response, but we have since
209
+ // decided to request it separately (this helps with caching). To keep the app
210
+ // working with minimal changes, we're making the extra request here.
211
+ return _this2.template_set.fetch();
212
+ });
213
+ },
214
+ waitForReady: function waitForReady() {
215
+ var _this3 = this;
216
+
194
217
  return this.fetch().then(function () {
195
- if (["created", "failed"].indexOf(_this2.creation_status) > -1) {
218
+ if (["created", "failed"].indexOf(_this3.creation_status) > -1) {
196
219
  return _bluebird.default.resolve();
197
220
  }
198
221
 
199
222
  return _bluebird.default.delay(1000).then(function () {
200
- return _this2.waitForReady();
223
+ return _this3.waitForReady();
201
224
  });
202
225
  });
203
226
  },