@livepreso/api 6.45.0 → 6.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
- package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
- package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
- package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
- package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
- package/.rush/temp/operation/test/all.log +19 -0
- package/.rush/temp/operation/test/state.json +3 -0
- package/.rush/temp/shrinkwrap-deps.json +563 -546
- package/CHANGELOG.json +12 -0
- package/CHANGELOG.md +8 -1
- package/README.md +4 -4
- package/api.build.log +2 -4
- package/api.test.cache.log +1 -0
- package/api.test.log +19 -0
- 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 +5 -32
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +52 -77
- 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 +37 -111
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +186 -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 +4 -17
- package/cjs/collections/deck-version-screenshots.js.map +1 -1
- 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 +22 -88
- 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 +3 -19
- 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 +85 -70
- 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 +3 -14
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +74 -176
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +0 -31
- 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 +1 -13
- package/cjs/models/deck-version-screenshot.js.map +1 -1
- package/cjs/models/deck-version.js +28 -44
- 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 +1 -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 +1 -16
- 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 +74 -73
- 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 +1 -14
- 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 +1 -14
- 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 +87 -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 +1 -11
- package/cjs/models/token.js.map +1 -1
- 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 +10 -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 +22 -132
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +9 -35
- 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 +40 -74
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +6 -27
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +46 -83
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +72 -95
- 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 +37 -77
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +211 -271
- 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 +49 -76
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +145 -192
- 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 +62 -111
- 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 +4 -3
- package/package.json +9 -6
- package/src/api.js +17 -2
- package/src/auth.js +3 -3
- 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 +10 -6
- package/src/collections/base.spec.js +2 -2
- 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 +1 -1
- 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 +2 -0
- package/src/fixtures.js +193 -0
- package/src/models/activity-item.js +1 -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 +101 -38
- package/src/models/asset.js +15 -1
- package/src/models/auto-adjunct-key-check.js +1 -1
- package/src/models/auto-adjunct.js +2 -1
- package/src/models/base.js +36 -21
- package/src/models/base.spec.js +18 -18
- 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 +1 -1
- package/src/models/deck-version.js +31 -6
- 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 +2 -2
- 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 +1 -1
- package/src/models/location.js +1 -1
- package/src/models/manifest-json.js +56 -5
- 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 +1 -1
- package/src/models/slide-selection.js +1 -1
- package/src/models/slide.js +1 -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 +72 -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 +1 -1
- package/src/models/transcribe-socket.js +1 -1
- package/src/models/user.js +13 -2
- package/src/models.js +2 -0
- package/src/presentation/appointment-presentation.js +4 -4
- package/src/presentation/base-presentation-collection.js +1 -1
- package/src/presentation/base-presentation-model.js +25 -16
- package/src/presentation/base-presentation-model.spec.js +5 -5
- package/src/presentation/presentation-deck.js +28 -23
- package/src/presentation/presentation-deck.spec.js +4 -4
- package/src/presentation/presentation-decks.js +1 -1
- package/src/presentation/presentation-section.js +59 -31
- package/src/presentation/presentation-section.spec.js +31 -32
- package/src/presentation/presentation-sections.js +1 -1
- package/src/presentation/presentation-slide.js +51 -25
- package/src/presentation/presentation-slide.spec.js +21 -27
- 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 +5 -3
- 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
- package/.rush/temp/package-deps_test.json +0 -172
|
@@ -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,
|
|
@@ -73,66 +51,59 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
73
51
|
},
|
|
74
52
|
constructor: function constructor() {
|
|
75
53
|
var _data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
76
|
-
|
|
77
54
|
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
78
55
|
var data = _data;
|
|
79
|
-
|
|
80
56
|
var options = _lodash.default.defaults(opts, {
|
|
81
57
|
data: {}
|
|
82
|
-
});
|
|
83
|
-
// create an empty model using a data object
|
|
84
|
-
|
|
58
|
+
});
|
|
85
59
|
|
|
86
|
-
|
|
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 = [];
|
|
87
63
|
|
|
64
|
+
// Allow passing in collections
|
|
88
65
|
if (data instanceof _ampersandRestCollection.default) {
|
|
89
66
|
data = data.toJSON();
|
|
90
67
|
}
|
|
91
|
-
|
|
92
68
|
this._data = data;
|
|
93
|
-
this._options = options;
|
|
69
|
+
this._options = options;
|
|
70
|
+
|
|
71
|
+
// Remove reference to the prototype, or this can accidentally
|
|
94
72
|
// apply to all collections
|
|
73
|
+
this.queryData = _lodash.default.extend({}, this.defaultFetchData, options.data);
|
|
95
74
|
|
|
96
|
-
|
|
75
|
+
// Check for specialized url returns from the server. This is for when the
|
|
97
76
|
// server responds with an array of urls rather than object data.
|
|
98
|
-
|
|
99
77
|
if (data && data.url) {
|
|
100
78
|
this._url = data.url;
|
|
101
79
|
} else if (data && data.length) {
|
|
102
80
|
newData = data;
|
|
103
81
|
}
|
|
104
|
-
|
|
105
82
|
this.registerStates();
|
|
83
|
+
_ampersandRestCollection.default.prototype.constructor.call(this, newData, opts);
|
|
106
84
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
85
|
+
// Get the name for the collection based on the model
|
|
110
86
|
if (!this.modelName && typeof this.model === "function") {
|
|
111
87
|
this.modelName = this.model.prototype.modelName;
|
|
112
88
|
}
|
|
113
89
|
},
|
|
114
90
|
add: function add(values) {
|
|
115
91
|
var args = Array.prototype.slice.call(arguments);
|
|
116
|
-
|
|
117
92
|
if (values && values instanceof _ampersandRestCollection.default) {
|
|
118
93
|
args[0] = values.toJSON();
|
|
119
94
|
}
|
|
120
|
-
|
|
121
95
|
return _ampersandRestCollection.default.prototype.add.apply(this, args);
|
|
122
96
|
},
|
|
123
97
|
_prepareModel: function _prepareModel(attrs, options) {
|
|
124
98
|
var opts = _lodash.default.omit(options, ["data"]);
|
|
125
|
-
|
|
126
99
|
return _ampersandRestCollection.default.prototype._prepareModel.call(this, attrs, opts);
|
|
127
100
|
},
|
|
128
101
|
registerStates: function registerStates() {
|
|
129
102
|
if (typeof this.model === "string") {
|
|
130
103
|
var Model = _stateRegister.registeredStates[this.model];
|
|
131
|
-
|
|
132
104
|
if (!Model) {
|
|
133
105
|
throw new Error("'".concat(this.model, "' not found! Did you forget to import it on the '").concat(this.modelName, "' model?"));
|
|
134
106
|
}
|
|
135
|
-
|
|
136
107
|
this.model = Model;
|
|
137
108
|
}
|
|
138
109
|
},
|
|
@@ -144,61 +115,52 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
144
115
|
},
|
|
145
116
|
getFullURLPath: function getFullURLPath(path) {
|
|
146
117
|
var url = path;
|
|
147
|
-
|
|
148
118
|
if (Object.keys(this.queryData).length) {
|
|
149
119
|
var query = this.queryData;
|
|
150
120
|
var queryIndex = url.indexOf("?");
|
|
151
|
-
|
|
152
121
|
if (queryIndex > -1) {
|
|
153
122
|
url = url.slice(0, queryIndex);
|
|
154
123
|
query = _lodash.default.extend({}, _qs.default.parse(url.slice(queryIndex + 1)), this.queryData);
|
|
155
124
|
}
|
|
156
|
-
|
|
157
125
|
if (url.slice(-1) !== "/") {
|
|
158
126
|
url += "/";
|
|
159
127
|
}
|
|
160
|
-
|
|
161
128
|
url += "?".concat(_qs.default.stringify(query, {
|
|
162
129
|
arrayFormat: "repeat"
|
|
163
130
|
}));
|
|
164
131
|
}
|
|
165
|
-
|
|
166
132
|
return url;
|
|
167
133
|
},
|
|
168
134
|
url: function url() {
|
|
169
135
|
if (this._url) {
|
|
170
136
|
return this.getFullURLPath(this._url);
|
|
171
137
|
}
|
|
172
|
-
|
|
173
138
|
var resp = this.urlRoot();
|
|
174
|
-
|
|
175
139
|
if (resp.slice(-1) !== "/" && resp.indexOf("?") === -1) {
|
|
176
140
|
resp += "/";
|
|
177
|
-
}
|
|
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.
|
|
178
147
|
// So if you have /path/to/{model.id}/models/
|
|
179
148
|
// It will check the collection options for "model.id" and replace
|
|
180
149
|
// it in the url
|
|
181
|
-
|
|
182
|
-
|
|
183
150
|
var re = /(\{(?:\w+\.?)+\})/g;
|
|
184
151
|
var matches = resp.match(re) || [];
|
|
185
|
-
|
|
186
152
|
var _iterator = _createForOfIteratorHelper(matches),
|
|
187
|
-
|
|
188
|
-
|
|
153
|
+
_step;
|
|
189
154
|
try {
|
|
190
155
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
191
156
|
var match = _step.value;
|
|
192
157
|
var path = match.slice(1, -1);
|
|
193
|
-
|
|
194
158
|
var replacement = _lodash.default.get(this._options, path);
|
|
195
|
-
|
|
196
159
|
if (replacement) {
|
|
197
160
|
resp = resp.replace(match, replacement);
|
|
198
161
|
} else if (!this.isNew()) {
|
|
199
162
|
_log.default.error("Collection ".concat(this.modelName, " is missing value ").concat(path, " as an option"));
|
|
200
163
|
}
|
|
201
|
-
|
|
202
164
|
resp = resp.replace(match, replacement);
|
|
203
165
|
}
|
|
204
166
|
} catch (err) {
|
|
@@ -206,7 +168,6 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
206
168
|
} finally {
|
|
207
169
|
_iterator.f();
|
|
208
170
|
}
|
|
209
|
-
|
|
210
171
|
return this.getFullURLPath(resp);
|
|
211
172
|
},
|
|
212
173
|
getResourceURL: function getResourceURL() {
|
|
@@ -214,7 +175,6 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
214
175
|
if (this.modelName === null) {
|
|
215
176
|
return _api.Api.getURL();
|
|
216
177
|
}
|
|
217
|
-
|
|
218
178
|
return _api.Api.getResourceURL(this.modelName);
|
|
219
179
|
},
|
|
220
180
|
sync: function sync() {
|
|
@@ -229,83 +189,68 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
229
189
|
},
|
|
230
190
|
fetchSet: function fetchSet() {
|
|
231
191
|
var _this = this;
|
|
232
|
-
|
|
233
192
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
234
193
|
var idSet = this.models.map(function (model) {
|
|
235
194
|
return model.id;
|
|
236
195
|
});
|
|
237
|
-
|
|
238
196
|
if (!idSet.length) {
|
|
239
197
|
_log.default.warn("Tried to fetch ".concat(this.modelName, " set with no models"));
|
|
240
|
-
|
|
241
198
|
return _bluebird.default.resolve();
|
|
242
199
|
}
|
|
243
|
-
|
|
244
200
|
var data = opts.data,
|
|
245
|
-
|
|
246
|
-
|
|
201
|
+
otherOpts = (0, _objectWithoutProperties2.default)(opts, _excluded);
|
|
247
202
|
var options = _objectSpread({
|
|
248
203
|
data: _objectSpread(_objectSpread({}, data), {}, {
|
|
249
204
|
id: idSet
|
|
250
205
|
})
|
|
251
|
-
}, otherOpts);
|
|
252
|
-
// and the children weren't updated correctly with the new data.
|
|
253
|
-
|
|
206
|
+
}, otherOpts);
|
|
254
207
|
|
|
208
|
+
// Necessary because these models were already initialised before the fetch,
|
|
209
|
+
// and the children weren't updated correctly with the new data.
|
|
255
210
|
return this.fetch(options).tap(function (data) {
|
|
256
211
|
_this.reset();
|
|
257
|
-
|
|
258
212
|
_this.add(data.results);
|
|
259
213
|
});
|
|
260
214
|
},
|
|
261
215
|
fetch: function fetch() {
|
|
262
216
|
var _this2 = this;
|
|
263
|
-
|
|
264
217
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
218
|
+
var options = _lodash.default.cloneDeep(opts);
|
|
265
219
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
220
|
+
// Add default params to the fetch (ie ?per_page=1000)
|
|
269
221
|
options.data = _lodash.default.extend({}, this.queryData, options.data || {});
|
|
270
222
|
this._options = _lodash.default.extend({}, this._options, options);
|
|
271
223
|
this.queryData = _objectSpread({}, options.data);
|
|
272
|
-
|
|
273
224
|
if (options.url) {
|
|
274
225
|
this._url = options.url;
|
|
275
226
|
}
|
|
276
|
-
|
|
277
227
|
return _ampersandRestCollection.default.prototype.fetch.call(this, options).tap(function (response) {
|
|
278
228
|
_this2._data = response;
|
|
279
229
|
});
|
|
280
230
|
},
|
|
281
231
|
fetchAll: function fetchAll() {
|
|
282
232
|
var _this3 = this;
|
|
283
|
-
|
|
284
233
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
234
|
+
var options = _lodash.default.cloneDeep(opts);
|
|
285
235
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
236
|
+
// Add default params to the fetch (ie ?per_page=1000)
|
|
289
237
|
options.data = _lodash.default.extend({}, this.queryData, options.data || {});
|
|
290
238
|
this._options = _lodash.default.extend({}, this._options, options);
|
|
291
239
|
this.queryData = _objectSpread({}, this._options.data);
|
|
292
|
-
|
|
293
240
|
if (this._options.url) {
|
|
294
241
|
this._url = options.url;
|
|
295
242
|
}
|
|
296
|
-
|
|
297
243
|
var checkPages = function checkPages(response) {
|
|
298
244
|
var notLastPage = response.total_pages > response.page;
|
|
299
245
|
var belowPageLimit = response.page < pageLimit;
|
|
300
|
-
|
|
301
246
|
if (notLastPage && belowPageLimit) {
|
|
302
247
|
var _options = _objectSpread(_objectSpread({}, _this3._options), {}, {
|
|
303
248
|
data: _objectSpread(_objectSpread({}, _this3._options.data), {}, {
|
|
304
249
|
page: response.page + 1
|
|
305
250
|
})
|
|
306
|
-
});
|
|
307
|
-
|
|
251
|
+
});
|
|
308
252
|
|
|
253
|
+
// Update the collection with the new data & page number
|
|
309
254
|
_this3._options = _options;
|
|
310
255
|
_this3.queryData = _objectSpread({}, _options.data);
|
|
311
256
|
return _this3.fetchPage().then(function (response) {
|
|
@@ -316,21 +261,17 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
316
261
|
// batch of models every time a new page is fetched.
|
|
317
262
|
// Here we add back all of the previously-fetched models.
|
|
318
263
|
_this3.add(_this3._data.results);
|
|
319
|
-
|
|
320
264
|
return _this3._data;
|
|
321
265
|
}
|
|
322
266
|
};
|
|
323
|
-
|
|
324
267
|
return this.fetchPage().then(function (response) {
|
|
325
268
|
return checkPages(response);
|
|
326
269
|
});
|
|
327
270
|
},
|
|
328
271
|
fetchPage: function fetchPage() {
|
|
329
272
|
var _this4 = this;
|
|
330
|
-
|
|
331
273
|
return _ampersandRestCollection.default.prototype.fetch.call(this, this._options).then(function (response) {
|
|
332
274
|
var _this4$_data$results;
|
|
333
|
-
|
|
334
275
|
// Add the response data to this._data - if we're fetching
|
|
335
276
|
// multiple pages, this._data.results will contain all of the
|
|
336
277
|
// results fetched from all pages so far
|
|
@@ -341,7 +282,6 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
341
282
|
} else {
|
|
342
283
|
_this4._data = response;
|
|
343
284
|
}
|
|
344
|
-
|
|
345
285
|
return response;
|
|
346
286
|
});
|
|
347
287
|
},
|
|
@@ -352,11 +292,8 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
352
292
|
} else if (model.serialize) {
|
|
353
293
|
return model.serialize();
|
|
354
294
|
}
|
|
355
|
-
|
|
356
295
|
var out = {};
|
|
357
|
-
|
|
358
296
|
_lodash.default.extend(out, model);
|
|
359
|
-
|
|
360
297
|
delete out.collection;
|
|
361
298
|
return out;
|
|
362
299
|
});
|
|
@@ -372,26 +309,21 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
372
309
|
},
|
|
373
310
|
serialize: function serialize() {
|
|
374
311
|
var collection = _ampersandRestCollection.default.prototype.serialize.call(this);
|
|
375
|
-
|
|
376
312
|
if (_lodash.default.isObject(this._data) && this._data.url && !collection.length) {
|
|
377
313
|
return this._data.url;
|
|
378
314
|
}
|
|
379
|
-
|
|
380
315
|
return collection;
|
|
381
316
|
},
|
|
382
317
|
save: function save() {
|
|
383
318
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
384
319
|
var batch = options.batch,
|
|
385
|
-
|
|
386
|
-
|
|
320
|
+
patch = options.patch;
|
|
387
321
|
if (batch || !this.length) {
|
|
388
322
|
if (patch) {
|
|
389
323
|
return this.sync("patch", this, options);
|
|
390
324
|
}
|
|
391
|
-
|
|
392
325
|
return this.sync("create", this, options);
|
|
393
326
|
}
|
|
394
|
-
|
|
395
327
|
return _bluebird.default.all(this.map(function (model) {
|
|
396
328
|
return model.save(model.toServer(), options);
|
|
397
329
|
}));
|
|
@@ -399,18 +331,15 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
399
331
|
delete: function _delete() {
|
|
400
332
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
401
333
|
var batch = options.batch;
|
|
402
|
-
|
|
403
334
|
if (batch) {
|
|
404
335
|
return this.sync("delete", this, options);
|
|
405
336
|
}
|
|
406
|
-
|
|
407
337
|
return _bluebird.default.all(this.map(function (model) {
|
|
408
338
|
return model.delete(model.toServer(), options);
|
|
409
339
|
}));
|
|
410
340
|
},
|
|
411
341
|
parse: function parse(attrs) {
|
|
412
342
|
var results = attrs.results || attrs;
|
|
413
|
-
|
|
414
343
|
if (Array.isArray(results) && results.length && typeof results[0] === "string") {
|
|
415
344
|
// Convert any url responses from the server into an object that
|
|
416
345
|
// can be passed to the model.
|
|
@@ -422,14 +351,11 @@ var BaseCollection = _ampersandRestCollection.default.extend(
|
|
|
422
351
|
};
|
|
423
352
|
});
|
|
424
353
|
}
|
|
425
|
-
|
|
426
354
|
return results;
|
|
427
355
|
}
|
|
428
|
-
});
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
exports.BaseCollection = BaseCollection;
|
|
356
|
+
});
|
|
432
357
|
|
|
358
|
+
// Make matchesURL available as a static method
|
|
433
359
|
BaseCollection.matchesURL = function (url) {
|
|
434
360
|
return this.prototype.matchesURL(url);
|
|
435
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","data","options","_","defaults","newData","toJSON","_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","areModelsFetched","isFetched","every","Boolean","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\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\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"],"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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"}
|