@livepreso/api 6.44.0 → 6.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +3 -0
- package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
- package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +10 -0
- package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +10 -0
- package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +10 -0
- package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
- package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +10 -0
- package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
- package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +10 -0
- package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +10 -0
- package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +10 -0
- package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +10 -0
- package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +10 -0
- package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +10 -0
- package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +10 -0
- package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +10 -0
- package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
- package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
- package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +10 -0
- package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +10 -0
- package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +10 -0
- package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +10 -0
- package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +10 -0
- package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +10 -0
- package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +10 -0
- package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +10 -0
- package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +10 -0
- package/.rush/temp/operation/test/all.log +19 -0
- package/.rush/temp/operation/test/state.json +3 -0
- package/.rush/temp/{package-deps_test.json → package-deps_build.json} +11 -11
- package/.rush/temp/shrinkwrap-deps.json +605 -597
- package/CHANGELOG.json +29 -0
- package/CHANGELOG.md +15 -1
- package/README.md +4 -4
- package/api.build.log +1 -1
- package/api.test.cache.log +1 -0
- package/api.test.log +19 -0
- package/bin/test.sh +0 -1
- package/cjs/api.js +18 -17
- package/cjs/api.js.map +1 -1
- package/cjs/api.spec.js +0 -4
- package/cjs/api.spec.js.map +1 -1
- package/cjs/auth.js +35 -36
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +52 -71
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +2 -7
- package/cjs/caching.js.map +1 -1
- package/cjs/collections/activity.js +16 -56
- package/cjs/collections/activity.js.map +1 -1
- package/cjs/collections/adjunct-sections.js +1 -10
- package/cjs/collections/adjunct-sections.js.map +1 -1
- package/cjs/collections/adjunct-slides.js +1 -10
- package/cjs/collections/adjunct-slides.js.map +1 -1
- package/cjs/collections/adjunct-sub-slides.js +1 -9
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/collections/appointment-adjunct-tags.js +1 -9
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
- package/cjs/collections/appointment-deckversion-tags.js +1 -9
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
- package/cjs/collections/appointment-duplicates.js +1 -9
- package/cjs/collections/appointment-duplicates.js.map +1 -1
- package/cjs/collections/appointment-editors.js +1 -10
- package/cjs/collections/appointment-editors.js.map +1 -1
- package/cjs/collections/appointment-section-tags.js +1 -9
- package/cjs/collections/appointment-section-tags.js.map +1 -1
- package/cjs/collections/appointment-slide-tags.js +1 -9
- package/cjs/collections/appointment-slide-tags.js.map +1 -1
- package/cjs/collections/appointment-tags.js +66 -103
- package/cjs/collections/appointment-tags.js.map +1 -1
- package/cjs/collections/appointment-templates.js +27 -0
- package/cjs/collections/appointment-templates.js.map +1 -0
- package/cjs/collections/appointments.js +9 -29
- package/cjs/collections/appointments.js.map +1 -1
- package/cjs/collections/assets.js +1 -9
- package/cjs/collections/assets.js.map +1 -1
- package/cjs/collections/auto-adjuncts.js +6 -21
- package/cjs/collections/auto-adjuncts.js.map +1 -1
- package/cjs/collections/base.js +46 -112
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +204 -233
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/cms-vals.js +9 -16
- package/cjs/collections/cms-vals.js.map +1 -1
- package/cjs/collections/contact-phones.js +20 -0
- package/cjs/collections/contact-phones.js.map +1 -0
- package/cjs/collections/contacts.js +1 -9
- package/cjs/collections/contacts.js.map +1 -1
- package/cjs/collections/created-assets.js +1 -10
- package/cjs/collections/created-assets.js.map +1 -1
- package/cjs/collections/customers.js +1 -9
- package/cjs/collections/customers.js.map +1 -1
- package/cjs/collections/deck-notes.js +1 -10
- package/cjs/collections/deck-notes.js.map +1 -1
- package/cjs/collections/deck-version-screenshots.js +49 -0
- package/cjs/collections/deck-version-screenshots.js.map +1 -0
- package/cjs/collections/deck-versions.js +5 -20
- package/cjs/collections/deck-versions.js.map +1 -1
- package/cjs/collections/decks.js +1 -9
- package/cjs/collections/decks.js.map +1 -1
- package/cjs/collections/deleted-assets.js +1 -10
- package/cjs/collections/deleted-assets.js.map +1 -1
- package/cjs/collections/dispatches.js +1 -13
- package/cjs/collections/dispatches.js.map +1 -1
- package/cjs/collections/event-objects.js +1 -9
- package/cjs/collections/event-objects.js.map +1 -1
- package/cjs/collections/events.js +1 -9
- package/cjs/collections/events.js.map +1 -1
- package/cjs/collections/groups.js +1 -9
- package/cjs/collections/groups.js.map +1 -1
- package/cjs/collections/images.js +1 -9
- package/cjs/collections/images.js.map +1 -1
- package/cjs/collections/locations.js +1 -9
- package/cjs/collections/locations.js.map +1 -1
- package/cjs/collections/opportunities.js +1 -9
- package/cjs/collections/opportunities.js.map +1 -1
- package/cjs/collections/pack-diffs.js +1 -9
- package/cjs/collections/pack-diffs.js.map +1 -1
- package/cjs/collections/packs.js +1 -9
- package/cjs/collections/packs.js.map +1 -1
- package/cjs/collections/presets.js +1 -9
- package/cjs/collections/presets.js.map +1 -1
- package/cjs/collections/section-selections.js +1 -9
- package/cjs/collections/section-selections.js.map +1 -1
- package/cjs/collections/sections.js +1 -9
- package/cjs/collections/sections.js.map +1 -1
- package/cjs/collections/slide-selections.js +1 -9
- package/cjs/collections/slide-selections.js.map +1 -1
- package/cjs/collections/slides.js +1 -9
- package/cjs/collections/slides.js.map +1 -1
- package/cjs/collections/snapshots.js +1 -9
- package/cjs/collections/snapshots.js.map +1 -1
- package/cjs/collections/sub-slides.js +1 -9
- package/cjs/collections/sub-slides.js.map +1 -1
- package/cjs/collections/tags.js +1 -9
- package/cjs/collections/tags.js.map +1 -1
- package/cjs/collections/teams.js +1 -9
- package/cjs/collections/teams.js.map +1 -1
- package/cjs/collections/templates.js +1 -9
- package/cjs/collections/templates.js.map +1 -1
- package/cjs/collections/uploads.js +1 -9
- package/cjs/collections/uploads.js.map +1 -1
- package/cjs/collections/users.js +1 -9
- package/cjs/collections/users.js.map +1 -1
- package/cjs/collections.js +33 -86
- package/cjs/collections.js.map +1 -1
- package/cjs/fixtures.js +187 -0
- package/cjs/fixtures.js.map +1 -0
- package/cjs/index.js +0 -10
- package/cjs/index.js.map +1 -1
- package/cjs/log.js +0 -1
- package/cjs/log.js.map +1 -1
- package/cjs/middleware.js +2 -7
- package/cjs/middleware.js.map +1 -1
- package/cjs/middlewares/auth.js +1 -17
- package/cjs/middlewares/auth.js.map +1 -1
- package/cjs/middlewares/base.js +3 -9
- package/cjs/middlewares/base.js.map +1 -1
- package/cjs/middlewares/json.js +1 -19
- package/cjs/middlewares/json.js.map +1 -1
- package/cjs/middlewares/redirect.js +5 -21
- package/cjs/middlewares/redirect.js.map +1 -1
- package/cjs/models/activity-item.js +6 -20
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/adjunct-section.js +8 -21
- package/cjs/models/adjunct-section.js.map +1 -1
- package/cjs/models/adjunct-slide.js +8 -21
- package/cjs/models/adjunct-slide.js.map +1 -1
- package/cjs/models/adjunct-sub-slide.js +1 -16
- package/cjs/models/adjunct-sub-slide.js.map +1 -1
- package/cjs/models/adjunct.js +34 -10
- package/cjs/models/adjunct.js.map +1 -1
- package/cjs/models/api.js +1 -6
- package/cjs/models/api.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +1 -13
- package/cjs/models/appointment-adjunct-tags.js.map +1 -1
- package/cjs/models/appointment-deckversion-tags.js +1 -13
- package/cjs/models/appointment-deckversion-tags.js.map +1 -1
- package/cjs/models/appointment-duplicate.js +3 -25
- package/cjs/models/appointment-duplicate.js.map +1 -1
- package/cjs/models/appointment-editor.js +1 -14
- package/cjs/models/appointment-editor.js.map +1 -1
- package/cjs/models/appointment-section-tags.js +1 -13
- package/cjs/models/appointment-section-tags.js.map +1 -1
- package/cjs/models/appointment-slide-tags.js +1 -13
- package/cjs/models/appointment-slide-tags.js.map +1 -1
- package/cjs/models/appointment-stats.js +1 -11
- package/cjs/models/appointment-stats.js.map +1 -1
- package/cjs/models/appointment-tags.js +1 -10
- package/cjs/models/appointment-tags.js.map +1 -1
- package/cjs/models/appointment-template.js +23 -0
- package/cjs/models/appointment-template.js.map +1 -0
- package/cjs/models/appointment-viewing.js +1 -8
- package/cjs/models/appointment-viewing.js.map +1 -1
- package/cjs/models/appointment.js +94 -69
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/asset.js +12 -11
- package/cjs/models/asset.js.map +1 -1
- package/cjs/models/auto-adjunct-key-check.js +1 -15
- package/cjs/models/auto-adjunct-key-check.js.map +1 -1
- package/cjs/models/auto-adjunct.js +5 -14
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +89 -173
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +8 -30
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/choicelist.js +1 -8
- package/cjs/models/choicelist.js.map +1 -1
- package/cjs/models/cms-val.js +28 -15
- package/cjs/models/cms-val.js.map +1 -1
- package/cjs/models/cms-val.spec.js +25 -0
- package/cjs/models/cms-val.spec.js.map +1 -0
- package/cjs/models/contact-phone.js +54 -0
- package/cjs/models/contact-phone.js.map +1 -0
- package/cjs/models/contact.js +1 -18
- package/cjs/models/contact.js.map +1 -1
- package/cjs/models/customer.js +5 -30
- package/cjs/models/customer.js.map +1 -1
- package/cjs/models/deck-note.js +1 -9
- package/cjs/models/deck-note.js.map +1 -1
- package/cjs/models/deck-tags.js +1 -12
- package/cjs/models/deck-tags.js.map +1 -1
- package/cjs/models/deck-version-screenshot.js +47 -0
- package/cjs/models/deck-version-screenshot.js.map +1 -0
- package/cjs/models/deck-version.js +54 -47
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +1 -14
- package/cjs/models/deck.js.map +1 -1
- package/cjs/models/dispatch-preview.js +1 -13
- package/cjs/models/dispatch-preview.js.map +1 -1
- package/cjs/models/dispatch.js +1 -23
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/envs.js +1 -6
- package/cjs/models/envs.js.map +1 -1
- package/cjs/models/event-object.js +1 -11
- package/cjs/models/event-object.js.map +1 -1
- package/cjs/models/event.js +1 -13
- package/cjs/models/event.js.map +1 -1
- package/cjs/models/feed-data.js +6 -13
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/file.js +1 -11
- package/cjs/models/file.js.map +1 -1
- package/cjs/models/group.js +1 -11
- package/cjs/models/group.js.map +1 -1
- package/cjs/models/handover.js +1 -13
- package/cjs/models/handover.js.map +1 -1
- package/cjs/models/hosted-preso.js +1 -15
- package/cjs/models/hosted-preso.js.map +1 -1
- package/cjs/models/image.js +30 -11
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/location.js +1 -13
- package/cjs/models/location.js.map +1 -1
- package/cjs/models/manifest-json.js +75 -74
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/onshare.js +1 -14
- package/cjs/models/onshare.js.map +1 -1
- package/cjs/models/opportunity.js +1 -14
- package/cjs/models/opportunity.js.map +1 -1
- package/cjs/models/pack-diff.js +1 -14
- package/cjs/models/pack-diff.js.map +1 -1
- package/cjs/models/pack.js +1 -12
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/preset.js +4 -20
- package/cjs/models/preset.js.map +1 -1
- package/cjs/models/refresh-request.js +17 -11
- package/cjs/models/refresh-request.js.map +1 -1
- package/cjs/models/room.js +1 -9
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/salesforce-lookup.js +1 -12
- package/cjs/models/salesforce-lookup.js.map +1 -1
- package/cjs/models/section-selection.js +1 -14
- package/cjs/models/section-selection.js.map +1 -1
- package/cjs/models/section.js +4 -15
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/slide-selection.js +1 -14
- package/cjs/models/slide-selection.js.map +1 -1
- package/cjs/models/slide.js +4 -15
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/snapshot.js +13 -15
- package/cjs/models/snapshot.js.map +1 -1
- package/cjs/models/snapshot.spec.js +44 -0
- package/cjs/models/snapshot.spec.js.map +1 -0
- package/cjs/models/sub-slide.js +1 -12
- package/cjs/models/sub-slide.js.map +1 -1
- package/cjs/models/support-ticket.js +1 -11
- package/cjs/models/support-ticket.js.map +1 -1
- package/cjs/models/tag.js +1 -13
- package/cjs/models/tag.js.map +1 -1
- package/cjs/models/team.js +14 -13
- package/cjs/models/team.js.map +1 -1
- package/cjs/models/template.js +89 -15
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/tenancy.js +4 -11
- package/cjs/models/tenancy.js.map +1 -1
- package/cjs/models/timing-log.js +21 -78
- package/cjs/models/timing-log.js.map +1 -1
- package/cjs/models/timing-log.spec.js +24 -37
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/token.js +46 -0
- package/cjs/models/token.js.map +1 -0
- package/cjs/models/transcribe-socket.js +1 -8
- package/cjs/models/transcribe-socket.js.map +1 -1
- package/cjs/models/upload.js +1 -7
- package/cjs/models/upload.js.map +1 -1
- package/cjs/models/user.js +11 -28
- package/cjs/models/user.js.map +1 -1
- package/cjs/models/user.spec.js +20 -30
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/models.js +44 -128
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +14 -36
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-collection.js +1 -7
- package/cjs/presentation/base-presentation-collection.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +108 -33
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +58 -23
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +73 -83
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +118 -88
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-decks.js +1 -9
- package/cjs/presentation/presentation-decks.js.map +1 -1
- package/cjs/presentation/presentation-section.js +70 -84
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +296 -238
- package/cjs/presentation/presentation-section.spec.js.map +1 -1
- package/cjs/presentation/presentation-sections.js +1 -9
- package/cjs/presentation/presentation-sections.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +74 -84
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +211 -166
- package/cjs/presentation/presentation-slide.spec.js.map +1 -1
- package/cjs/presentation/presentation-slides.js +1 -9
- package/cjs/presentation/presentation-slides.js.map +1 -1
- package/cjs/presentation/presentation-subslide.js +3 -23
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +101 -125
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslides.js +1 -9
- package/cjs/presentation/presentation-subslides.js.map +1 -1
- package/cjs/presentation/presentation.js +87 -32
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/presentation.js +0 -20
- package/cjs/presentation.js.map +1 -1
- package/cjs/selections.js +81 -0
- package/cjs/selections.js.map +1 -0
- package/cjs/state-register.js +3 -11
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +32 -76
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +51 -42
- package/cjs/utils.js.map +1 -1
- package/cjs/utils.spec.js +0 -4
- package/cjs/utils.spec.js.map +1 -1
- package/jest.config.js +5 -3
- package/package.json +11 -8
- package/src/api.js +17 -2
- package/src/auth.js +45 -9
- package/src/auth.spec.js +2 -0
- package/src/collections/activity.js +4 -4
- package/src/collections/adjunct-sections.js +1 -1
- package/src/collections/adjunct-slides.js +1 -1
- package/src/collections/adjunct-sub-slides.js +1 -1
- package/src/collections/appointment-adjunct-tags.js +1 -1
- package/src/collections/appointment-deckversion-tags.js +2 -2
- package/src/collections/appointment-duplicates.js +1 -1
- package/src/collections/appointment-editors.js +1 -1
- package/src/collections/appointment-section-tags.js +1 -1
- package/src/collections/appointment-slide-tags.js +1 -1
- package/src/collections/appointment-tags.js +20 -18
- package/src/collections/appointment-templates.js +26 -0
- package/src/collections/appointments.js +9 -9
- package/src/collections/assets.js +1 -1
- package/src/collections/auto-adjuncts.js +1 -1
- package/src/collections/base.js +20 -10
- package/src/collections/base.spec.js +19 -5
- package/src/collections/cms-vals.js +5 -1
- package/src/collections/contact-phones.js +18 -0
- package/src/collections/contacts.js +1 -1
- package/src/collections/created-assets.js +1 -1
- package/src/collections/customers.js +1 -1
- package/src/collections/deck-notes.js +1 -1
- package/src/collections/deck-version-screenshots.js +48 -0
- package/src/collections/deck-versions.js +1 -1
- package/src/collections/decks.js +1 -1
- package/src/collections/deleted-assets.js +1 -1
- package/src/collections/dispatches.js +2 -2
- package/src/collections/event-objects.js +1 -1
- package/src/collections/events.js +1 -1
- package/src/collections/groups.js +1 -1
- package/src/collections/images.js +1 -1
- package/src/collections/locations.js +1 -1
- package/src/collections/opportunities.js +1 -1
- package/src/collections/pack-diffs.js +1 -1
- package/src/collections/packs.js +1 -1
- package/src/collections/presets.js +1 -1
- package/src/collections/section-selections.js +1 -1
- package/src/collections/sections.js +1 -1
- package/src/collections/slide-selections.js +1 -1
- package/src/collections/slides.js +1 -1
- package/src/collections/snapshots.js +1 -1
- package/src/collections/sub-slides.js +1 -1
- package/src/collections/tags.js +1 -1
- package/src/collections/teams.js +1 -1
- package/src/collections/templates.js +1 -1
- package/src/collections/uploads.js +1 -1
- package/src/collections/users.js +1 -1
- package/src/collections.js +3 -0
- package/src/fixtures.js +193 -0
- package/src/models/activity-item.js +3 -1
- package/src/models/adjunct-section.js +7 -2
- package/src/models/adjunct-slide.js +7 -2
- package/src/models/adjunct-sub-slide.js +1 -1
- package/src/models/adjunct.js +39 -1
- package/src/models/appointment-adjunct-tags.js +1 -1
- package/src/models/appointment-deckversion-tags.js +1 -1
- package/src/models/appointment-duplicate.js +1 -1
- package/src/models/appointment-editor.js +1 -1
- package/src/models/appointment-section-tags.js +1 -1
- package/src/models/appointment-slide-tags.js +1 -1
- package/src/models/appointment-stats.js +1 -1
- package/src/models/appointment-tags.js +1 -1
- package/src/models/appointment-template.js +19 -0
- package/src/models/appointment-viewing.js +1 -1
- package/src/models/appointment.js +112 -37
- package/src/models/asset.js +15 -1
- package/src/models/auto-adjunct-key-check.js +1 -1
- package/src/models/auto-adjunct.js +4 -1
- package/src/models/base.js +55 -22
- package/src/models/base.spec.js +34 -27
- package/src/models/choicelist.js +1 -1
- package/src/models/cms-val.js +24 -1
- package/src/models/cms-val.spec.js +14 -0
- package/src/models/contact-phone.js +57 -0
- package/src/models/contact.js +1 -1
- package/src/models/customer.js +3 -3
- package/src/models/deck-note.js +1 -1
- package/src/models/deck-tags.js +1 -1
- package/src/models/deck-version-screenshot.js +48 -0
- package/src/models/deck-version.js +60 -9
- package/src/models/deck.js +1 -1
- package/src/models/dispatch-preview.js +1 -1
- package/src/models/dispatch.js +1 -1
- package/src/models/event-object.js +1 -1
- package/src/models/event.js +1 -1
- package/src/models/feed-data.js +3 -1
- package/src/models/file.js +1 -1
- package/src/models/group.js +1 -1
- package/src/models/handover.js +1 -1
- package/src/models/hosted-preso.js +1 -1
- package/src/models/image.js +33 -1
- package/src/models/location.js +1 -1
- package/src/models/manifest-json.js +57 -6
- package/src/models/onshare.js +1 -1
- package/src/models/opportunity.js +1 -1
- package/src/models/pack-diff.js +1 -1
- package/src/models/pack.js +1 -1
- package/src/models/preset.js +3 -1
- package/src/models/refresh-request.js +15 -1
- package/src/models/room.js +1 -1
- package/src/models/salesforce-lookup.js +1 -1
- package/src/models/section-selection.js +1 -1
- package/src/models/section.js +3 -1
- package/src/models/slide-selection.js +1 -1
- package/src/models/slide.js +3 -1
- package/src/models/snapshot.js +11 -2
- package/src/models/snapshot.spec.js +31 -0
- package/src/models/sub-slide.js +1 -1
- package/src/models/support-ticket.js +1 -1
- package/src/models/tag.js +1 -1
- package/src/models/team.js +14 -3
- package/src/models/template.js +74 -2
- package/src/models/tenancy.js +4 -1
- package/src/models/timing-log.js +2 -2
- package/src/models/timing-log.spec.js +1 -1
- package/src/models/token.js +47 -0
- package/src/models/transcribe-socket.js +1 -1
- package/src/models/user.js +15 -2
- package/src/models.js +4 -0
- package/src/presentation/appointment-presentation.js +13 -5
- package/src/presentation/base-presentation-collection.js +1 -1
- package/src/presentation/base-presentation-model.js +88 -3
- package/src/presentation/base-presentation-model.spec.js +80 -3
- package/src/presentation/presentation-deck.js +65 -22
- package/src/presentation/presentation-deck.spec.js +55 -2
- package/src/presentation/presentation-decks.js +1 -1
- package/src/presentation/presentation-section.js +91 -31
- package/src/presentation/presentation-section.spec.js +142 -10
- package/src/presentation/presentation-sections.js +1 -1
- package/src/presentation/presentation-slide.js +69 -23
- package/src/presentation/presentation-slide.spec.js +105 -9
- package/src/presentation/presentation-slides.js +1 -1
- package/src/presentation/presentation-subslide.js +5 -5
- package/src/presentation/presentation-subslide.spec.js +3 -3
- package/src/presentation/presentation-subslides.js +1 -1
- package/src/presentation/presentation.js +27 -8
- package/src/selections.js +71 -0
- package/src/sync.js +1 -1
- package/src/utils.js +31 -8
- package/src/utils.spec.js +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"auto-adjuncts.js","names":["require","_auth","_interopRequireDefault","_base","_stateRegister","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","AutoAdjunctCollection","exports","BaseCollection","extend","comparator","model","fetchByDeckID","deckID","options","undefined","fetch","data","deck","opts","user","Auth","team","concat","team_set","map","id","prototype","call","register"],"sources":["../../src/collections/auto-adjuncts.js"],"sourcesContent":["import \"../models/auto-adjunct.js\";\n\nimport Auth from \"../auth.js\";\nimport { BaseCollection } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias collections.AutoAdjunctCollection\n * @extends collections.BaseCollection\n * @see models.AutoAdjunctModel\n */\nexport const AutoAdjunctCollection = BaseCollection.extend(\n\t/** @lends collections.AutoAdjunctCollection# */ {\n\t\tcomparator: \"sequence\",\n\t\tmodel: \"AutoAdjunctModel\",\n\n\t\tfetchByDeckID(deckID, options = {}) {\n\t\t\treturn this.fetch({\n\t\t\t\t...options,\n\t\t\t\tdata: {\n\t\t\t\t\tdeck: deckID,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\n\t\tfetch(opts = {}) {\n\t\t\tconst { user } = Auth;\n\n\t\t\tif (!opts.data) {\n\t\t\t\topts.data = {};\n\t\t\t}\n\n\t\t\t// Let's only add this if it's not already being set, in case a global user\n\t\t\t// DOES want to see a specific team.\n\t\t\tif (!opts.data.team) {\n\t\t\t\t//\n\t\t\t\t// Filter all global autoadjuncts, and only query teams that\n\t\t\t\t// the authorized user is a part of. This is mostly for the case where\n\t\t\t\t// a 'global' temp slide admin could end up seeing autoadjuncts for\n\t\t\t\t// many teams - which would be increadibly confusing.\n\t\t\t\topts.data.team = [null].concat(user.team_set.map((team) => team.id));\n\t\t\t}\n\n\t\t\treturn BaseCollection.prototype.fetch.call(this, opts);\n\t\t},\n\t},\n);\n\nregister(\"AutoAdjunctCollection\", AutoAdjunctCollection);\n"],"mappings":";;;;;;;;AAAAA,OAAA;AAEA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAAgD,SAAAK,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAnB,CAAA,EAAAG,MAAA,CAAAe,yBAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAiB,cAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEhD;AACA;AACA;AACA;AACA;AACA;AACO,IAAMqB,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAGE,oBAAc,CAACC,MAAM,EACzD,gDAAiD;EAChDC,UAAU,EAAE,UAAU;EACtBC,KAAK,EAAE,kBAAkB;EAEzBC,aAAa,WAAAA,cAACC,MAAM,EAAgB;IAAA,IAAdC,OAAO,GAAAhB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAiB,SAAA,GAAAjB,SAAA,MAAG,CAAC,CAAC;IACjC,OAAO,IAAI,CAACkB,KAAK,CAAAnB,aAAA,CAAAA,aAAA,KACbiB,OAAO;MACVG,IAAI,EAAE;QACLC,IAAI,EAAEL;MACP;IAAC,EACD,CAAC;EACH,CAAC;EAEDG,KAAK,WAAAA,MAAA,EAAY;IAAA,IAAXG,IAAI,GAAArB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAiB,SAAA,GAAAjB,SAAA,MAAG,CAAC,CAAC;IACd,IAAQsB,IAAI,GAAKC,aAAI,CAAbD,IAAI;IAEZ,IAAI,CAACD,IAAI,CAACF,IAAI,EAAE;MACfE,IAAI,CAACF,IAAI,GAAG,CAAC,CAAC;IACf;;IAEA;IACA;IACA,IAAI,CAACE,IAAI,CAACF,IAAI,CAACK,IAAI,EAAE;MACpB;MACA;MACA;MACA;MACA;MACAH,IAAI,CAACF,IAAI,CAACK,IAAI,GAAG,CAAC,IAAI,CAAC,CAACC,MAAM,CAACH,IAAI,CAACI,QAAQ,CAACC,GAAG,CAAC,UAACH,IAAI;QAAA,OAAKA,IAAI,CAACI,EAAE;MAAA,EAAC,CAAC;IACrE;IAEA,OAAOlB,oBAAc,CAACmB,SAAS,CAACX,KAAK,CAACY,IAAI,CAAC,IAAI,EAAET,IAAI,CAAC;EACvD;AACD,CACD,CAAC;AAED,IAAAU,uBAAQ,EAAC,uBAAuB,EAAEvB,qBAAqB,CAAC"}
|
package/cjs/collections/base.js
CHANGED
|
@@ -1,59 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.BaseCollection = void 0;
|
|
9
|
-
|
|
10
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
|
|
12
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
-
|
|
16
11
|
var _api = require("../api.js");
|
|
17
|
-
|
|
18
12
|
var _base = require("../models/base.js");
|
|
19
|
-
|
|
20
13
|
var _ampersandRestCollection = _interopRequireDefault(require("ampersand-rest-collection"));
|
|
21
|
-
|
|
22
14
|
var _bluebird = _interopRequireDefault(require("bluebird"));
|
|
23
|
-
|
|
24
15
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
25
|
-
|
|
26
16
|
var _log = _interopRequireDefault(require("../log.js"));
|
|
27
|
-
|
|
28
17
|
var _qs = _interopRequireDefault(require("qs"));
|
|
29
|
-
|
|
30
18
|
var _stateRegister = require("../state-register.js");
|
|
31
|
-
|
|
32
19
|
var _sync2 = require("../sync.js");
|
|
33
|
-
|
|
34
20
|
var _excluded = ["data"];
|
|
35
|
-
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
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; }
|
|
39
|
-
|
|
21
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
40
23
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
41
|
-
|
|
42
24
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
43
|
-
|
|
44
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
45
|
-
|
|
25
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
46
26
|
// Current hardcoded limit for maximum number of pages fetched
|
|
47
27
|
// automatically by fetchAll
|
|
48
28
|
var pageLimit = 20;
|
|
29
|
+
|
|
49
30
|
/**
|
|
50
31
|
* @constructor
|
|
51
32
|
* @alias collections.BaseCollection
|
|
52
33
|
*/
|
|
53
|
-
|
|
54
|
-
var BaseCollection = _ampersandRestCollection.default.extend(
|
|
55
|
-
/** @lends collections.BaseCollection# */
|
|
56
|
-
{
|
|
34
|
+
var BaseCollection = exports.BaseCollection = _ampersandRestCollection.default.extend( /** @lends collections.BaseCollection# */{
|
|
57
35
|
modelName: null,
|
|
58
36
|
model: _base.BaseModel,
|
|
59
37
|
fetchEmpty: false,
|
|
@@ -72,65 +50,60 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
72
50
|
per_page: 1000
|
|
73
51
|
},
|
|
74
52
|
constructor: function constructor() {
|
|
75
|
-
var
|
|
53
|
+
var _data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
76
54
|
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
77
|
-
|
|
55
|
+
var data = _data;
|
|
78
56
|
var options = _lodash.default.defaults(opts, {
|
|
79
57
|
data: {}
|
|
80
|
-
});
|
|
81
|
-
// create an empty model using a data object
|
|
82
|
-
|
|
58
|
+
});
|
|
83
59
|
|
|
84
|
-
|
|
60
|
+
// We ensure that we pass an array because we don't want the collection constructor to
|
|
61
|
+
// create an empty model using a data object
|
|
62
|
+
var newData = [];
|
|
85
63
|
|
|
64
|
+
// Allow passing in collections
|
|
86
65
|
if (data instanceof _ampersandRestCollection.default) {
|
|
87
66
|
data = data.toJSON();
|
|
88
67
|
}
|
|
89
|
-
|
|
90
68
|
this._data = data;
|
|
91
|
-
this._options = options;
|
|
69
|
+
this._options = options;
|
|
70
|
+
|
|
71
|
+
// Remove reference to the prototype, or this can accidentally
|
|
92
72
|
// apply to all collections
|
|
73
|
+
this.queryData = _lodash.default.extend({}, this.defaultFetchData, options.data);
|
|
93
74
|
|
|
94
|
-
|
|
75
|
+
// Check for specialized url returns from the server. This is for when the
|
|
95
76
|
// server responds with an array of urls rather than object data.
|
|
96
|
-
|
|
97
77
|
if (data && data.url) {
|
|
98
78
|
this._url = data.url;
|
|
99
79
|
} else if (data && data.length) {
|
|
100
80
|
newData = data;
|
|
101
81
|
}
|
|
102
|
-
|
|
103
82
|
this.registerStates();
|
|
83
|
+
_ampersandRestCollection.default.prototype.constructor.call(this, newData, opts);
|
|
104
84
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
85
|
+
// Get the name for the collection based on the model
|
|
108
86
|
if (!this.modelName && typeof this.model === "function") {
|
|
109
87
|
this.modelName = this.model.prototype.modelName;
|
|
110
88
|
}
|
|
111
89
|
},
|
|
112
90
|
add: function add(values) {
|
|
113
91
|
var args = Array.prototype.slice.call(arguments);
|
|
114
|
-
|
|
115
92
|
if (values && values instanceof _ampersandRestCollection.default) {
|
|
116
93
|
args[0] = values.toJSON();
|
|
117
94
|
}
|
|
118
|
-
|
|
119
95
|
return _ampersandRestCollection.default.prototype.add.apply(this, args);
|
|
120
96
|
},
|
|
121
97
|
_prepareModel: function _prepareModel(attrs, options) {
|
|
122
98
|
var opts = _lodash.default.omit(options, ["data"]);
|
|
123
|
-
|
|
124
99
|
return _ampersandRestCollection.default.prototype._prepareModel.call(this, attrs, opts);
|
|
125
100
|
},
|
|
126
101
|
registerStates: function registerStates() {
|
|
127
102
|
if (typeof this.model === "string") {
|
|
128
103
|
var Model = _stateRegister.registeredStates[this.model];
|
|
129
|
-
|
|
130
104
|
if (!Model) {
|
|
131
105
|
throw new Error("'".concat(this.model, "' not found! Did you forget to import it on the '").concat(this.modelName, "' model?"));
|
|
132
106
|
}
|
|
133
|
-
|
|
134
107
|
this.model = Model;
|
|
135
108
|
}
|
|
136
109
|
},
|
|
@@ -142,61 +115,52 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
142
115
|
},
|
|
143
116
|
getFullURLPath: function getFullURLPath(path) {
|
|
144
117
|
var url = path;
|
|
145
|
-
|
|
146
118
|
if (Object.keys(this.queryData).length) {
|
|
147
119
|
var query = this.queryData;
|
|
148
120
|
var queryIndex = url.indexOf("?");
|
|
149
|
-
|
|
150
121
|
if (queryIndex > -1) {
|
|
151
122
|
url = url.slice(0, queryIndex);
|
|
152
123
|
query = _lodash.default.extend({}, _qs.default.parse(url.slice(queryIndex + 1)), this.queryData);
|
|
153
124
|
}
|
|
154
|
-
|
|
155
125
|
if (url.slice(-1) !== "/") {
|
|
156
126
|
url += "/";
|
|
157
127
|
}
|
|
158
|
-
|
|
159
128
|
url += "?".concat(_qs.default.stringify(query, {
|
|
160
129
|
arrayFormat: "repeat"
|
|
161
130
|
}));
|
|
162
131
|
}
|
|
163
|
-
|
|
164
132
|
return url;
|
|
165
133
|
},
|
|
166
134
|
url: function url() {
|
|
167
135
|
if (this._url) {
|
|
168
136
|
return this.getFullURLPath(this._url);
|
|
169
137
|
}
|
|
170
|
-
|
|
171
138
|
var resp = this.urlRoot();
|
|
172
|
-
|
|
173
139
|
if (resp.slice(-1) !== "/" && resp.indexOf("?") === -1) {
|
|
174
140
|
resp += "/";
|
|
175
|
-
}
|
|
141
|
+
}
|
|
142
|
+
if (!resp.includes("{") || !resp.includes("}")) {
|
|
143
|
+
return this.getFullURLPath(resp);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// Replace any values in a url with one from the collection's options.
|
|
176
147
|
// So if you have /path/to/{model.id}/models/
|
|
177
148
|
// It will check the collection options for "model.id" and replace
|
|
178
149
|
// it in the url
|
|
179
|
-
|
|
180
|
-
|
|
181
150
|
var re = /(\{(?:\w+\.?)+\})/g;
|
|
182
151
|
var matches = resp.match(re) || [];
|
|
183
|
-
|
|
184
152
|
var _iterator = _createForOfIteratorHelper(matches),
|
|
185
|
-
|
|
186
|
-
|
|
153
|
+
_step;
|
|
187
154
|
try {
|
|
188
155
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
189
156
|
var match = _step.value;
|
|
190
157
|
var path = match.slice(1, -1);
|
|
191
|
-
|
|
192
158
|
var replacement = _lodash.default.get(this._options, path);
|
|
193
|
-
|
|
194
159
|
if (replacement) {
|
|
195
160
|
resp = resp.replace(match, replacement);
|
|
196
161
|
} else if (!this.isNew()) {
|
|
197
162
|
_log.default.error("Collection ".concat(this.modelName, " is missing value ").concat(path, " as an option"));
|
|
198
163
|
}
|
|
199
|
-
|
|
200
164
|
resp = resp.replace(match, replacement);
|
|
201
165
|
}
|
|
202
166
|
} catch (err) {
|
|
@@ -204,7 +168,6 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
204
168
|
} finally {
|
|
205
169
|
_iterator.f();
|
|
206
170
|
}
|
|
207
|
-
|
|
208
171
|
return this.getFullURLPath(resp);
|
|
209
172
|
},
|
|
210
173
|
getResourceURL: function getResourceURL() {
|
|
@@ -212,7 +175,6 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
212
175
|
if (this.modelName === null) {
|
|
213
176
|
return _api.Api.getURL();
|
|
214
177
|
}
|
|
215
|
-
|
|
216
178
|
return _api.Api.getResourceURL(this.modelName);
|
|
217
179
|
},
|
|
218
180
|
sync: function sync() {
|
|
@@ -227,108 +189,89 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
227
189
|
},
|
|
228
190
|
fetchSet: function fetchSet() {
|
|
229
191
|
var _this = this;
|
|
230
|
-
|
|
231
192
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
232
193
|
var idSet = this.models.map(function (model) {
|
|
233
194
|
return model.id;
|
|
234
195
|
});
|
|
235
|
-
|
|
236
196
|
if (!idSet.length) {
|
|
237
197
|
_log.default.warn("Tried to fetch ".concat(this.modelName, " set with no models"));
|
|
238
|
-
|
|
239
198
|
return _bluebird.default.resolve();
|
|
240
199
|
}
|
|
241
|
-
|
|
242
200
|
var data = opts.data,
|
|
243
|
-
|
|
244
|
-
|
|
201
|
+
otherOpts = (0, _objectWithoutProperties2.default)(opts, _excluded);
|
|
245
202
|
var options = _objectSpread({
|
|
246
203
|
data: _objectSpread(_objectSpread({}, data), {}, {
|
|
247
204
|
id: idSet
|
|
248
205
|
})
|
|
249
|
-
}, otherOpts);
|
|
250
|
-
// and the children weren't updated correctly with the new data.
|
|
251
|
-
|
|
206
|
+
}, otherOpts);
|
|
252
207
|
|
|
208
|
+
// Necessary because these models were already initialised before the fetch,
|
|
209
|
+
// and the children weren't updated correctly with the new data.
|
|
253
210
|
return this.fetch(options).tap(function (data) {
|
|
254
211
|
_this.reset();
|
|
255
|
-
|
|
256
212
|
_this.add(data.results);
|
|
257
213
|
});
|
|
258
214
|
},
|
|
259
215
|
fetch: function fetch() {
|
|
260
216
|
var _this2 = this;
|
|
261
|
-
|
|
262
217
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
218
|
+
var options = _lodash.default.cloneDeep(opts);
|
|
263
219
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
220
|
+
// Add default params to the fetch (ie ?per_page=1000)
|
|
267
221
|
options.data = _lodash.default.extend({}, this.queryData, options.data || {});
|
|
268
222
|
this._options = _lodash.default.extend({}, this._options, options);
|
|
269
223
|
this.queryData = _objectSpread({}, options.data);
|
|
270
|
-
|
|
271
224
|
if (options.url) {
|
|
272
225
|
this._url = options.url;
|
|
273
226
|
}
|
|
274
|
-
|
|
275
227
|
return _ampersandRestCollection.default.prototype.fetch.call(this, options).tap(function (response) {
|
|
276
228
|
_this2._data = response;
|
|
277
229
|
});
|
|
278
230
|
},
|
|
279
231
|
fetchAll: function fetchAll() {
|
|
280
232
|
var _this3 = this;
|
|
281
|
-
|
|
282
233
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
234
|
+
var options = _lodash.default.cloneDeep(opts);
|
|
283
235
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
236
|
+
// Add default params to the fetch (ie ?per_page=1000)
|
|
287
237
|
options.data = _lodash.default.extend({}, this.queryData, options.data || {});
|
|
288
238
|
this._options = _lodash.default.extend({}, this._options, options);
|
|
289
239
|
this.queryData = _objectSpread({}, this._options.data);
|
|
290
|
-
|
|
291
240
|
if (this._options.url) {
|
|
292
241
|
this._url = options.url;
|
|
293
242
|
}
|
|
294
|
-
|
|
295
243
|
var checkPages = function checkPages(response) {
|
|
296
244
|
var notLastPage = response.total_pages > response.page;
|
|
297
245
|
var belowPageLimit = response.page < pageLimit;
|
|
298
|
-
|
|
299
246
|
if (notLastPage && belowPageLimit) {
|
|
300
247
|
var _options = _objectSpread(_objectSpread({}, _this3._options), {}, {
|
|
301
248
|
data: _objectSpread(_objectSpread({}, _this3._options.data), {}, {
|
|
302
249
|
page: response.page + 1
|
|
303
250
|
})
|
|
304
|
-
});
|
|
305
|
-
|
|
251
|
+
});
|
|
306
252
|
|
|
253
|
+
// Update the collection with the new data & page number
|
|
307
254
|
_this3._options = _options;
|
|
308
255
|
_this3.queryData = _objectSpread({}, _options.data);
|
|
309
256
|
return _this3.fetchPage().then(function (response) {
|
|
310
|
-
checkPages(response);
|
|
257
|
+
return checkPages(response);
|
|
311
258
|
});
|
|
312
259
|
} else {
|
|
313
260
|
// The collection's models are replaced with the latest
|
|
314
261
|
// batch of models every time a new page is fetched.
|
|
315
262
|
// Here we add back all of the previously-fetched models.
|
|
316
263
|
_this3.add(_this3._data.results);
|
|
317
|
-
|
|
318
264
|
return _this3._data;
|
|
319
265
|
}
|
|
320
266
|
};
|
|
321
|
-
|
|
322
267
|
return this.fetchPage().then(function (response) {
|
|
323
268
|
return checkPages(response);
|
|
324
269
|
});
|
|
325
270
|
},
|
|
326
271
|
fetchPage: function fetchPage() {
|
|
327
272
|
var _this4 = this;
|
|
328
|
-
|
|
329
273
|
return _ampersandRestCollection.default.prototype.fetch.call(this, this._options).then(function (response) {
|
|
330
274
|
var _this4$_data$results;
|
|
331
|
-
|
|
332
275
|
// Add the response data to this._data - if we're fetching
|
|
333
276
|
// multiple pages, this._data.results will contain all of the
|
|
334
277
|
// results fetched from all pages so far
|
|
@@ -339,7 +282,6 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
339
282
|
} else {
|
|
340
283
|
_this4._data = response;
|
|
341
284
|
}
|
|
342
|
-
|
|
343
285
|
return response;
|
|
344
286
|
});
|
|
345
287
|
},
|
|
@@ -350,40 +292,38 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
350
292
|
} else if (model.serialize) {
|
|
351
293
|
return model.serialize();
|
|
352
294
|
}
|
|
353
|
-
|
|
354
295
|
var out = {};
|
|
355
|
-
|
|
356
296
|
_lodash.default.extend(out, model);
|
|
357
|
-
|
|
358
297
|
delete out.collection;
|
|
359
298
|
return out;
|
|
360
299
|
});
|
|
361
300
|
},
|
|
301
|
+
// Returns "true" if all child models have been fetched
|
|
302
|
+
areModelsFetched: function areModelsFetched() {
|
|
303
|
+
return this.map(function (model) {
|
|
304
|
+
return model.isFetched();
|
|
305
|
+
}).every(Boolean);
|
|
306
|
+
},
|
|
362
307
|
isNew: function isNew() {
|
|
363
308
|
return true;
|
|
364
309
|
},
|
|
365
310
|
serialize: function serialize() {
|
|
366
311
|
var collection = _ampersandRestCollection.default.prototype.serialize.call(this);
|
|
367
|
-
|
|
368
312
|
if (_lodash.default.isObject(this._data) && this._data.url && !collection.length) {
|
|
369
313
|
return this._data.url;
|
|
370
314
|
}
|
|
371
|
-
|
|
372
315
|
return collection;
|
|
373
316
|
},
|
|
374
317
|
save: function save() {
|
|
375
318
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
376
319
|
var batch = options.batch,
|
|
377
|
-
|
|
378
|
-
|
|
320
|
+
patch = options.patch;
|
|
379
321
|
if (batch || !this.length) {
|
|
380
322
|
if (patch) {
|
|
381
323
|
return this.sync("patch", this, options);
|
|
382
324
|
}
|
|
383
|
-
|
|
384
325
|
return this.sync("create", this, options);
|
|
385
326
|
}
|
|
386
|
-
|
|
387
327
|
return _bluebird.default.all(this.map(function (model) {
|
|
388
328
|
return model.save(model.toServer(), options);
|
|
389
329
|
}));
|
|
@@ -391,18 +331,15 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
391
331
|
delete: function _delete() {
|
|
392
332
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
393
333
|
var batch = options.batch;
|
|
394
|
-
|
|
395
334
|
if (batch) {
|
|
396
335
|
return this.sync("delete", this, options);
|
|
397
336
|
}
|
|
398
|
-
|
|
399
337
|
return _bluebird.default.all(this.map(function (model) {
|
|
400
338
|
return model.delete(model.toServer(), options);
|
|
401
339
|
}));
|
|
402
340
|
},
|
|
403
341
|
parse: function parse(attrs) {
|
|
404
342
|
var results = attrs.results || attrs;
|
|
405
|
-
|
|
406
343
|
if (Array.isArray(results) && results.length && typeof results[0] === "string") {
|
|
407
344
|
// Convert any url responses from the server into an object that
|
|
408
345
|
// can be passed to the model.
|
|
@@ -414,14 +351,11 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
414
351
|
};
|
|
415
352
|
});
|
|
416
353
|
}
|
|
417
|
-
|
|
418
354
|
return results;
|
|
419
355
|
}
|
|
420
|
-
});
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
exports.BaseCollection = BaseCollection;
|
|
356
|
+
});
|
|
424
357
|
|
|
358
|
+
// Make matchesURL available as a static method
|
|
425
359
|
BaseCollection.matchesURL = function (url) {
|
|
426
360
|
return this.prototype.matchesURL(url);
|
|
427
361
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/collections/base.js"],"names":["pageLimit","BaseCollection","Collection","extend","modelName","model","BaseModel","fetchEmpty","urlMatchKeys","defaultFetchData","per_page","constructor","data","opts","options","_","defaults","newData","toJSON","_data","_options","queryData","url","_url","length","registerStates","prototype","call","add","values","args","arguments","apply","_prepareModel","attrs","omit","Model","registeredStates","Error","urlRoot","getResourceURL","matchesURL","_matchesURL","getFullURLPath","path","Object","keys","query","queryIndex","indexOf","slice","qs","parse","stringify","arrayFormat","resp","re","matches","match","replacement","get","replace","isNew","log","error","Api","getURL","sync","fetchModels","Promise","all","models","map","fetch","fetchSet","idSet","id","warn","resolve","otherOpts","tap","reset","results","cloneDeep","response","fetchAll","checkPages","notLastPage","total_pages","page","belowPageLimit","fetchPage","then","toServer","serialize","out","collection","isObject","save","batch","patch","delete","Array","isArray","attr"],"mappings":"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","sourcesContent":["import { Api } from \"../api.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport Collection from \"ampersand-rest-collection\";\nimport Promise from \"bluebird\";\nimport _ from \"lodash\";\nimport log from \"../log.js\";\nimport qs from \"qs\";\nimport { registeredStates } from \"../state-register.js\";\nimport { sync } from \"../sync.js\";\n\n// Current hardcoded limit for maximum number of pages fetched\n// automatically by fetchAll\nconst pageLimit = 20;\n\n/**\n * @constructor\n * @alias collections.BaseCollection\n */\nexport const BaseCollection = Collection.extend(\n\t/** @lends collections.BaseCollection# */ {\n\t\tmodelName: null,\n\t\tmodel: BaseModel,\n\t\tfetchEmpty: false,\n\n\t\t// Object of regexes that should be used to match a url in `matchesURL`\n\t\t// For example the URL: /api/foo/{pk}/bar/ might have the following:\n\t\t//\n\t\t// Example:\n\t\t//\n\t\t// ```\n\t\t// {\n\t\t// pk: \"number\"\n\t\t// }\n\t\t// ```\n\t\turlMatchKeys: {},\n\n\t\tdefaultFetchData: {\n\t\t\tper_page: 1000,\n\t\t},\n\n\t\tconstructor(data = {}, opts = {}) {\n\t\t\tconst options = _.defaults(opts, {\n\t\t\t\tdata: {},\n\t\t\t});\n\n\t\t\t// We ensure that we pass an array because we don't want the collection constructor to\n\t\t\t// create an empty model using a data object\n\t\t\tlet newData = [];\n\n\t\t\t// Allow passing in collections\n\t\t\tif (data instanceof Collection) {\n\t\t\t\tdata = data.toJSON();\n\t\t\t}\n\n\t\t\tthis._data = data;\n\t\t\tthis._options = options;\n\n\t\t\t// Remove reference to the prototype, or this can accidentally\n\t\t\t// apply to all collections\n\t\t\tthis.queryData = _.extend({}, this.defaultFetchData, options.data);\n\n\t\t\t// Check for specialized url returns from the server. This is for when the\n\t\t\t// server responds with an array of urls rather than object data.\n\t\t\tif (data && data.url) {\n\t\t\t\tthis._url = data.url;\n\t\t\t} else if (data && data.length) {\n\t\t\t\tnewData = data;\n\t\t\t}\n\n\t\t\tthis.registerStates();\n\n\t\t\tCollection.prototype.constructor.call(this, newData, opts);\n\n\t\t\t// Get the name for the collection based on the model\n\t\t\tif (!this.modelName && typeof this.model === \"function\") {\n\t\t\t\tthis.modelName = this.model.prototype.modelName;\n\t\t\t}\n\t\t},\n\n\t\tadd(values) {\n\t\t\tconst args = [...arguments];\n\n\t\t\tif (values && values instanceof Collection) {\n\t\t\t\targs[0] = values.toJSON();\n\t\t\t}\n\n\t\t\treturn Collection.prototype.add.apply(this, args);\n\t\t},\n\n\t\t_prepareModel(attrs, options) {\n\t\t\tconst opts = _.omit(options, [\"data\"]);\n\t\t\treturn Collection.prototype._prepareModel.call(this, attrs, opts);\n\t\t},\n\n\t\tregisterStates() {\n\t\t\tif (typeof this.model === \"string\") {\n\t\t\t\tconst Model = registeredStates[this.model];\n\t\t\t\tif (!Model) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`'${this.model}' not found! Did you forget to import it on the '${this.modelName}' model?`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.model = Model;\n\t\t\t}\n\t\t},\n\n\t\turlRoot() {\n\t\t\treturn this.getResourceURL();\n\t\t},\n\n\t\tmatchesURL(url) {\n\t\t\treturn this.model.prototype._matchesURL(url, false);\n\t\t},\n\n\t\tgetFullURLPath(path) {\n\t\t\tlet url = path;\n\t\t\tif (Object.keys(this.queryData).length) {\n\t\t\t\tlet query = this.queryData;\n\t\t\t\tconst queryIndex = url.indexOf(\"?\");\n\t\t\t\tif (queryIndex > -1) {\n\t\t\t\t\turl = url.slice(0, queryIndex);\n\t\t\t\t\tquery = _.extend(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tqs.parse(url.slice(queryIndex + 1)),\n\t\t\t\t\t\tthis.queryData\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (url.slice(-1) !== \"/\") {\n\t\t\t\t\turl += \"/\";\n\t\t\t\t}\n\t\t\t\turl += `?${qs.stringify(query, { arrayFormat: \"repeat\" })}`;\n\t\t\t}\n\t\t\treturn url;\n\t\t},\n\n\t\turl() {\n\t\t\tif (this._url) {\n\t\t\t\treturn this.getFullURLPath(this._url);\n\t\t\t}\n\t\t\tlet resp = this.urlRoot();\n\t\t\tif (resp.slice(-1) !== \"/\" && resp.indexOf(\"?\") === -1) {\n\t\t\t\tresp += \"/\";\n\t\t\t}\n\n\t\t\t// Replace any values in a url with one from the collection's options.\n\t\t\t// So if you have /path/to/{model.id}/models/\n\t\t\t// It will check the collection options for \"model.id\" and replace\n\t\t\t// it in the url\n\t\t\tconst re = /(\\{(?:\\w+\\.?)+\\})/g;\n\t\t\tconst matches = resp.match(re) || [];\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst path = match.slice(1, -1);\n\t\t\t\tconst replacement = _.get(this._options, path);\n\t\t\t\tif (replacement) {\n\t\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t\t} else if (!this.isNew()) {\n\t\t\t\t\tlog.error(\n\t\t\t\t\t\t`Collection ${this.modelName} is missing value ${path} as an option`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t}\n\n\t\t\treturn this.getFullURLPath(resp);\n\t\t},\n\n\t\tgetResourceURL() {\n\t\t\t// If no name is present, assume we want the root API.\n\t\t\tif (this.modelName === null) {\n\t\t\t\treturn Api.getURL();\n\t\t\t}\n\t\t\treturn Api.getResourceURL(this.modelName);\n\t\t},\n\n\t\tsync() {\n\t\t\t// Use our own sync instead of the default ampersand one\n\t\t\treturn sync.apply(this, arguments);\n\t\t},\n\n\t\tfetchModels(options = {}) {\n\t\t\treturn Promise.all(this.models.map((model) => model.fetch(options)));\n\t\t},\n\n\t\tfetchSet(opts = {}) {\n\t\t\tconst idSet = this.models.map((model) => model.id);\n\n\t\t\tif (!idSet.length) {\n\t\t\t\tlog.warn(`Tried to fetch ${this.modelName} set with no models`);\n\t\t\t\treturn Promise.resolve();\n\t\t\t}\n\n\t\t\tconst { data, ...otherOpts } = opts;\n\n\t\t\tconst options = {\n\t\t\t\tdata: {\n\t\t\t\t\t...data,\n\t\t\t\t\tid: idSet,\n\t\t\t\t},\n\t\t\t\t...otherOpts,\n\t\t\t};\n\n\t\t\t// Necessary because these models were already initialised before the fetch,\n\t\t\t// and the children weren't updated correctly with the new data.\n\t\t\treturn this.fetch(options).tap((data) => {\n\t\t\t\tthis.reset();\n\t\t\t\tthis.add(data.results);\n\t\t\t});\n\t\t},\n\n\t\tfetch(opts = {}) {\n\t\t\tconst options = _.cloneDeep(opts);\n\n\t\t\t// Add default params to the fetch (ie ?per_page=1000)\n\t\t\toptions.data = _.extend({}, this.queryData, options.data || {});\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.queryData = { ...options.data };\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\treturn Collection.prototype.fetch.call(this, options).tap((response) => {\n\t\t\t\tthis._data = response;\n\t\t\t});\n\t\t},\n\n\t\tfetchAll(opts = {}) {\n\t\t\tconst options = _.cloneDeep(opts);\n\n\t\t\t// Add default params to the fetch (ie ?per_page=1000)\n\t\t\toptions.data = _.extend({}, this.queryData, options.data || {});\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.queryData = { ...this._options.data };\n\n\t\t\tif (this._options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\tconst checkPages = (response) => {\n\t\t\t\tconst notLastPage = response.total_pages > response.page;\n\t\t\t\tconst belowPageLimit = response.page < pageLimit;\n\n\t\t\t\tif (notLastPage && belowPageLimit) {\n\t\t\t\t\tconst options = {\n\t\t\t\t\t\t...this._options,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t...this._options.data,\n\t\t\t\t\t\t\tpage: response.page + 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t// Update the collection with the new data & page number\n\t\t\t\t\tthis._options = options;\n\t\t\t\t\tthis.queryData = { ...options.data };\n\n\t\t\t\t\treturn this.fetchPage().then((response) => {\n\t\t\t\t\t\tcheckPages(response);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// The collection's models are replaced with the latest\n\t\t\t\t\t// batch of models every time a new page is fetched.\n\t\t\t\t\t// Here we add back all of the previously-fetched models.\n\t\t\t\t\tthis.add(this._data.results);\n\t\t\t\t\treturn this._data;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn this.fetchPage().then((response) => {\n\t\t\t\treturn checkPages(response);\n\t\t\t});\n\t\t},\n\n\t\tfetchPage() {\n\t\t\treturn Collection.prototype.fetch\n\t\t\t\t.call(this, this._options)\n\t\t\t\t.then((response) => {\n\t\t\t\t\t// Add the response data to this._data - if we're fetching\n\t\t\t\t\t// multiple pages, this._data.results will contain all of the\n\t\t\t\t\t// results fetched from all pages so far\n\t\t\t\t\tif (this._data.results?.length) {\n\t\t\t\t\t\tthis._data = {\n\t\t\t\t\t\t\t...response,\n\t\t\t\t\t\t\tresults: [...this._data.results, ...response.results],\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._data = response;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn this.map(function (model) {\n\t\t\t\tif (model.toServer) {\n\t\t\t\t\treturn model.toServer();\n\t\t\t\t} else if (model.serialize) {\n\t\t\t\t\treturn model.serialize();\n\t\t\t\t}\n\n\t\t\t\tconst out = {};\n\t\t\t\t_.extend(out, model);\n\t\t\t\tdelete out.collection;\n\t\t\t\treturn out;\n\t\t\t});\n\t\t},\n\n\t\tisNew() {\n\t\t\treturn true;\n\t\t},\n\n\t\tserialize() {\n\t\t\tconst collection = Collection.prototype.serialize.call(this);\n\n\t\t\tif (_.isObject(this._data) && this._data.url && !collection.length) {\n\t\t\t\treturn this._data.url;\n\t\t\t}\n\n\t\t\treturn collection;\n\t\t},\n\n\t\tsave(options = {}) {\n\t\t\tconst { batch, patch } = options;\n\n\t\t\tif (batch || !this.length) {\n\t\t\t\tif (patch) {\n\t\t\t\t\treturn this.sync(\"patch\", this, options);\n\t\t\t\t}\n\t\t\t\treturn this.sync(\"create\", this, options);\n\t\t\t}\n\n\t\t\treturn Promise.all(\n\t\t\t\tthis.map((model) => {\n\t\t\t\t\treturn model.save(model.toServer(), options);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\n\t\tdelete(options = {}) {\n\t\t\tconst { batch } = options;\n\n\t\t\tif (batch) {\n\t\t\t\treturn this.sync(\"delete\", this, options);\n\t\t\t}\n\n\t\t\treturn Promise.all(\n\t\t\t\tthis.map((model) => {\n\t\t\t\t\treturn model.delete(model.toServer(), options);\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\n\t\tparse(attrs) {\n\t\t\tconst results = attrs.results || attrs;\n\n\t\t\tif (\n\t\t\t\tArray.isArray(results) &&\n\t\t\t\tresults.length &&\n\t\t\t\ttypeof results[0] === \"string\"\n\t\t\t) {\n\t\t\t\t// Convert any url responses from the server into an object that\n\t\t\t\t// can be passed to the model.\n\t\t\t\t//\n\t\t\t\t// TODO: Regex match for URLs\n\t\t\t\treturn results.map(function (attr) {\n\t\t\t\t\treturn { url: attr };\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn results;\n\t\t},\n\t}\n);\n\n// Make matchesURL available as a static method\nBaseCollection.matchesURL = function (url) {\n\treturn this.prototype.matchesURL(url);\n};\n"],"file":"base.js"}
|
|
1
|
+
{"version":3,"file":"base.js","names":["_api","require","_base","_ampersandRestCollection","_interopRequireDefault","_bluebird","_lodash","_log","_qs","_stateRegister","_sync2","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","i","F","s","n","done","value","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","pageLimit","BaseCollection","exports","Collection","extend","modelName","model","BaseModel","fetchEmpty","urlMatchKeys","defaultFetchData","per_page","_data","undefined","opts","data","options","_","defaults","newData","toJSON","_options","queryData","url","_url","registerStates","add","values","args","_prepareModel","attrs","omit","Model","registeredStates","Error","concat","urlRoot","getResourceURL","matchesURL","_matchesURL","getFullURLPath","path","query","queryIndex","indexOf","qs","parse","stringify","arrayFormat","resp","includes","re","matches","match","_iterator","_step","replacement","get","replace","isNew","log","error","Api","getURL","sync","fetchModels","Promise","all","models","map","fetch","fetchSet","_this","idSet","id","warn","resolve","otherOpts","_objectWithoutProperties2","tap","reset","results","_this2","cloneDeep","response","fetchAll","_this3","checkPages","notLastPage","total_pages","page","belowPageLimit","fetchPage","then","_this4","_this4$_data$results","_toConsumableArray2","toServer","serialize","out","collection","areModelsFetched","isFetched","every","Boolean","isObject","save","batch","patch","delete","_delete","attr"],"sources":["../../src/collections/base.js"],"sourcesContent":["import { Api } from \"../api.js\";\nimport { BaseModel } from \"../models/base.js\";\nimport Collection from \"ampersand-rest-collection\";\nimport Promise from \"bluebird\";\nimport _ from \"lodash\";\nimport log from \"../log.js\";\nimport qs from \"qs\";\nimport { registeredStates } from \"../state-register.js\";\nimport { sync } from \"../sync.js\";\n\n// Current hardcoded limit for maximum number of pages fetched\n// automatically by fetchAll\nconst pageLimit = 20;\n\n/**\n * @constructor\n * @alias collections.BaseCollection\n */\nexport const BaseCollection = Collection.extend(\n\t/** @lends collections.BaseCollection# */ {\n\t\tmodelName: null,\n\t\tmodel: BaseModel,\n\t\tfetchEmpty: false,\n\n\t\t// Object of regexes that should be used to match a url in `matchesURL`\n\t\t// For example the URL: /api/foo/{pk}/bar/ might have the following:\n\t\t//\n\t\t// Example:\n\t\t//\n\t\t// ```\n\t\t// {\n\t\t// pk: \"number\"\n\t\t// }\n\t\t// ```\n\t\turlMatchKeys: {},\n\n\t\tdefaultFetchData: {\n\t\t\tper_page: 1000,\n\t\t},\n\n\t\tconstructor(_data = {}, opts = {}) {\n\t\t\tlet data = _data;\n\t\t\tconst options = _.defaults(opts, {\n\t\t\t\tdata: {},\n\t\t\t});\n\n\t\t\t// We ensure that we pass an array because we don't want the collection constructor to\n\t\t\t// create an empty model using a data object\n\t\t\tlet newData = [];\n\n\t\t\t// Allow passing in collections\n\t\t\tif (data instanceof Collection) {\n\t\t\t\tdata = data.toJSON();\n\t\t\t}\n\n\t\t\tthis._data = data;\n\t\t\tthis._options = options;\n\n\t\t\t// Remove reference to the prototype, or this can accidentally\n\t\t\t// apply to all collections\n\t\t\tthis.queryData = _.extend({}, this.defaultFetchData, options.data);\n\n\t\t\t// Check for specialized url returns from the server. This is for when the\n\t\t\t// server responds with an array of urls rather than object data.\n\t\t\tif (data && data.url) {\n\t\t\t\tthis._url = data.url;\n\t\t\t} else if (data && data.length) {\n\t\t\t\tnewData = data;\n\t\t\t}\n\n\t\t\tthis.registerStates();\n\n\t\t\tCollection.prototype.constructor.call(this, newData, opts);\n\n\t\t\t// Get the name for the collection based on the model\n\t\t\tif (!this.modelName && typeof this.model === \"function\") {\n\t\t\t\tthis.modelName = this.model.prototype.modelName;\n\t\t\t}\n\t\t},\n\n\t\tadd(values) {\n\t\t\tconst args = [...arguments];\n\n\t\t\tif (values && values instanceof Collection) {\n\t\t\t\targs[0] = values.toJSON();\n\t\t\t}\n\n\t\t\treturn Collection.prototype.add.apply(this, args);\n\t\t},\n\n\t\t_prepareModel(attrs, options) {\n\t\t\tconst opts = _.omit(options, [\"data\"]);\n\t\t\treturn Collection.prototype._prepareModel.call(this, attrs, opts);\n\t\t},\n\n\t\tregisterStates() {\n\t\t\tif (typeof this.model === \"string\") {\n\t\t\t\tconst Model = registeredStates[this.model];\n\t\t\t\tif (!Model) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`'${this.model}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.model = Model;\n\t\t\t}\n\t\t},\n\n\t\turlRoot() {\n\t\t\treturn this.getResourceURL();\n\t\t},\n\n\t\tmatchesURL(url) {\n\t\t\treturn this.model.prototype._matchesURL(url, false);\n\t\t},\n\n\t\tgetFullURLPath(path) {\n\t\t\tlet url = path;\n\t\t\tif (Object.keys(this.queryData).length) {\n\t\t\t\tlet query = this.queryData;\n\t\t\t\tconst queryIndex = url.indexOf(\"?\");\n\t\t\t\tif (queryIndex > -1) {\n\t\t\t\t\turl = url.slice(0, queryIndex);\n\t\t\t\t\tquery = _.extend(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tqs.parse(url.slice(queryIndex + 1)),\n\t\t\t\t\t\tthis.queryData,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (url.slice(-1) !== \"/\") {\n\t\t\t\t\turl += \"/\";\n\t\t\t\t}\n\t\t\t\turl += `?${qs.stringify(query, { arrayFormat: \"repeat\" })}`;\n\t\t\t}\n\t\t\treturn url;\n\t\t},\n\n\t\turl() {\n\t\t\tif (this._url) {\n\t\t\t\treturn this.getFullURLPath(this._url);\n\t\t\t}\n\t\t\tlet resp = this.urlRoot();\n\t\t\tif (resp.slice(-1) !== \"/\" && resp.indexOf(\"?\") === -1) {\n\t\t\t\tresp += \"/\";\n\t\t\t}\n\n\t\t\tif (!resp.includes(\"{\") || !resp.includes(\"}\")) {\n\t\t\t\treturn this.getFullURLPath(resp);\n\t\t\t}\n\n\t\t\t// Replace any values in a url with one from the collection's options.\n\t\t\t// So if you have /path/to/{model.id}/models/\n\t\t\t// It will check the collection options for \"model.id\" and replace\n\t\t\t// it in the url\n\t\t\tconst re = /(\\{(?:\\w+\\.?)+\\})/g;\n\t\t\tconst matches = resp.match(re) || [];\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst path = match.slice(1, -1);\n\t\t\t\tconst replacement = _.get(this._options, path);\n\t\t\t\tif (replacement) {\n\t\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t\t} else if (!this.isNew()) {\n\t\t\t\t\tlog.error(\n\t\t\t\t\t\t`Collection ${this.modelName} is missing value ${path} as an option`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t}\n\n\t\t\treturn this.getFullURLPath(resp);\n\t\t},\n\n\t\tgetResourceURL() {\n\t\t\t// If no name is present, assume we want the root API.\n\t\t\tif (this.modelName === null) {\n\t\t\t\treturn Api.getURL();\n\t\t\t}\n\t\t\treturn Api.getResourceURL(this.modelName);\n\t\t},\n\n\t\tsync() {\n\t\t\t// Use our own sync instead of the default ampersand one\n\t\t\treturn sync.apply(this, arguments);\n\t\t},\n\n\t\tfetchModels(options = {}) {\n\t\t\treturn Promise.all(this.models.map((model) => model.fetch(options)));\n\t\t},\n\n\t\tfetchSet(opts = {}) {\n\t\t\tconst idSet = this.models.map((model) => model.id);\n\n\t\t\tif (!idSet.length) {\n\t\t\t\tlog.warn(`Tried to fetch ${this.modelName} set with no models`);\n\t\t\t\treturn Promise.resolve();\n\t\t\t}\n\n\t\t\tconst { data, ...otherOpts } = opts;\n\n\t\t\tconst options = {\n\t\t\t\tdata: {\n\t\t\t\t\t...data,\n\t\t\t\t\tid: idSet,\n\t\t\t\t},\n\t\t\t\t...otherOpts,\n\t\t\t};\n\n\t\t\t// Necessary because these models were already initialised before the fetch,\n\t\t\t// and the children weren't updated correctly with the new data.\n\t\t\treturn this.fetch(options).tap((data) => {\n\t\t\t\tthis.reset();\n\t\t\t\tthis.add(data.results);\n\t\t\t});\n\t\t},\n\n\t\tfetch(opts = {}) {\n\t\t\tconst options = _.cloneDeep(opts);\n\n\t\t\t// Add default params to the fetch (ie ?per_page=1000)\n\t\t\toptions.data = _.extend({}, this.queryData, options.data || {});\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.queryData = { ...options.data };\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\treturn Collection.prototype.fetch.call(this, options).tap((response) => {\n\t\t\t\tthis._data = response;\n\t\t\t});\n\t\t},\n\n\t\tfetchAll(opts = {}) {\n\t\t\tconst options = _.cloneDeep(opts);\n\n\t\t\t// Add default params to the fetch (ie ?per_page=1000)\n\t\t\toptions.data = _.extend({}, this.queryData, options.data || {});\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.queryData = { ...this._options.data };\n\n\t\t\tif (this._options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\tconst checkPages = (response) => {\n\t\t\t\tconst notLastPage = response.total_pages > response.page;\n\t\t\t\tconst belowPageLimit = response.page < pageLimit;\n\n\t\t\t\tif (notLastPage && belowPageLimit) {\n\t\t\t\t\tconst options = {\n\t\t\t\t\t\t...this._options,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t...this._options.data,\n\t\t\t\t\t\t\tpage: response.page + 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t// Update the collection with the new data & page number\n\t\t\t\t\tthis._options = options;\n\t\t\t\t\tthis.queryData = { ...options.data };\n\n\t\t\t\t\treturn this.fetchPage().then((response) => {\n\t\t\t\t\t\treturn checkPages(response);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// The collection's models are replaced with the latest\n\t\t\t\t\t// batch of models every time a new page is fetched.\n\t\t\t\t\t// Here we add back all of the previously-fetched models.\n\t\t\t\t\tthis.add(this._data.results);\n\t\t\t\t\treturn this._data;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn this.fetchPage().then((response) => {\n\t\t\t\treturn checkPages(response);\n\t\t\t});\n\t\t},\n\n\t\tfetchPage() {\n\t\t\treturn Collection.prototype.fetch\n\t\t\t\t.call(this, this._options)\n\t\t\t\t.then((response) => {\n\t\t\t\t\t// Add the response data to this._data - if we're fetching\n\t\t\t\t\t// multiple pages, this._data.results will contain all of the\n\t\t\t\t\t// results fetched from all pages so far\n\t\t\t\t\tif (this._data.results?.length) {\n\t\t\t\t\t\tthis._data = {\n\t\t\t\t\t\t\t...response,\n\t\t\t\t\t\t\tresults: [...this._data.results, ...response.results],\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._data = response;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response;\n\t\t\t\t});\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn this.map((model) => {\n\t\t\t\tif (model.toServer) {\n\t\t\t\t\treturn model.toServer();\n\t\t\t\t} else if (model.serialize) {\n\t\t\t\t\treturn model.serialize();\n\t\t\t\t}\n\n\t\t\t\tconst out = {};\n\t\t\t\t_.extend(out, model);\n\t\t\t\tdelete out.collection;\n\t\t\t\treturn out;\n\t\t\t});\n\t\t},\n\n\t\t// Returns \"true\" if all child models have been fetched\n\t\tareModelsFetched() {\n\t\t\treturn this.map((model) => model.isFetched()).every(Boolean);\n\t\t},\n\n\t\tisNew() {\n\t\t\treturn true;\n\t\t},\n\n\t\tserialize() {\n\t\t\tconst collection = Collection.prototype.serialize.call(this);\n\n\t\t\tif (_.isObject(this._data) && this._data.url && !collection.length) {\n\t\t\t\treturn this._data.url;\n\t\t\t}\n\n\t\t\treturn collection;\n\t\t},\n\n\t\tsave(options = {}) {\n\t\t\tconst { batch, patch } = options;\n\n\t\t\tif (batch || !this.length) {\n\t\t\t\tif (patch) {\n\t\t\t\t\treturn this.sync(\"patch\", this, options);\n\t\t\t\t}\n\t\t\t\treturn this.sync(\"create\", this, options);\n\t\t\t}\n\n\t\t\treturn Promise.all(\n\t\t\t\tthis.map((model) => {\n\t\t\t\t\treturn model.save(model.toServer(), options);\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\n\t\tdelete(options = {}) {\n\t\t\tconst { batch } = options;\n\n\t\t\tif (batch) {\n\t\t\t\treturn this.sync(\"delete\", this, options);\n\t\t\t}\n\n\t\t\treturn Promise.all(\n\t\t\t\tthis.map((model) => {\n\t\t\t\t\treturn model.delete(model.toServer(), options);\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\n\t\tparse(attrs) {\n\t\t\tconst results = attrs.results || attrs;\n\n\t\t\tif (\n\t\t\t\tArray.isArray(results) &&\n\t\t\t\tresults.length &&\n\t\t\t\ttypeof results[0] === \"string\"\n\t\t\t) {\n\t\t\t\t// Convert any url responses from the server into an object that\n\t\t\t\t// can be passed to the model.\n\t\t\t\t//\n\t\t\t\t// TODO: Regex match for URLs\n\t\t\t\treturn results.map((attr) => {\n\t\t\t\t\treturn { url: attr };\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn results;\n\t\t},\n\t},\n);\n\n// Make matchesURL available as a static method\nBaseCollection.matchesURL = function (url) {\n\treturn this.prototype.matchesURL(url);\n};\n"],"mappings":"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"}
|