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