@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
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TemplateModel } from "./template.js";
|
|
2
|
+
import { register } from "../state-register.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @constructor
|
|
6
|
+
* @alias models.AppointmentTemplateModel
|
|
7
|
+
* @extends models.BaseModel
|
|
8
|
+
*/
|
|
9
|
+
export const AppointmentTemplateModel = TemplateModel.extend({
|
|
10
|
+
modelName: "appointment-templates",
|
|
11
|
+
|
|
12
|
+
getResourceURL() {
|
|
13
|
+
return TemplateModel.prototype.getResourceURL.call({
|
|
14
|
+
modelName: TemplateModel.prototype.modelName,
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
register("AppointmentTemplateModel", AppointmentTemplateModel);
|
|
@@ -15,13 +15,20 @@ import "../collections/slide-selections.js";
|
|
|
15
15
|
import "../collections/dispatches.js";
|
|
16
16
|
import "../collections/users.js";
|
|
17
17
|
import "../collections/appointment-tags";
|
|
18
|
+
import "../collections/appointment-deckversion-tags";
|
|
19
|
+
import "../collections/appointment-section-tags";
|
|
20
|
+
import "../collections/appointment-slide-tags";
|
|
21
|
+
import "../collections/appointment-adjunct-tags";
|
|
18
22
|
|
|
19
23
|
import { AdjunctSectionCollection } from "../collections/adjunct-sections.js";
|
|
20
24
|
import { AdjunctSlideCollection } from "../collections/adjunct-slides.js";
|
|
21
25
|
import { AdjunctSubSlideCollection } from "../collections/adjunct-sub-slides.js";
|
|
26
|
+
import { AppointmentTemplateCollection } from "../collections/appointment-templates.js";
|
|
22
27
|
import { BaseModel } from "./base.js";
|
|
28
|
+
import { ContactPhoneCollection } from "../collections/contact-phones.js";
|
|
23
29
|
import { DeckNoteCollection } from "../collections/deck-notes.js";
|
|
24
30
|
import Promise from "bluebird";
|
|
31
|
+
import _ from "lodash";
|
|
25
32
|
import log from "../log.js";
|
|
26
33
|
import moment from "moment";
|
|
27
34
|
import { register } from "../state-register.js";
|
|
@@ -54,6 +61,7 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
54
61
|
* @property {date} no_edit_after
|
|
55
62
|
* @property {date} no_share_after
|
|
56
63
|
* @property {date} no_delete_after
|
|
64
|
+
* @property {string} share_visibility_mode
|
|
57
65
|
*/
|
|
58
66
|
props: {
|
|
59
67
|
name: "stringSanitized",
|
|
@@ -79,6 +87,7 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
79
87
|
no_share_after: "date",
|
|
80
88
|
no_delete_after: "date",
|
|
81
89
|
no_snapshot_create_after: "date",
|
|
90
|
+
share_visibility_mode: "string",
|
|
82
91
|
},
|
|
83
92
|
|
|
84
93
|
/**
|
|
@@ -152,6 +161,17 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
152
161
|
return adjunctSubSlides;
|
|
153
162
|
},
|
|
154
163
|
},
|
|
164
|
+
includedTemplates: {
|
|
165
|
+
deps: ["id"],
|
|
166
|
+
fn() {
|
|
167
|
+
return new AppointmentTemplateCollection(
|
|
168
|
+
{},
|
|
169
|
+
{
|
|
170
|
+
appointment: this,
|
|
171
|
+
},
|
|
172
|
+
);
|
|
173
|
+
},
|
|
174
|
+
},
|
|
155
175
|
deckNotes: {
|
|
156
176
|
deps: ["id"],
|
|
157
177
|
fn() {
|
|
@@ -211,6 +231,16 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
211
231
|
return this.cannotEdit || this.cannotDelete;
|
|
212
232
|
},
|
|
213
233
|
},
|
|
234
|
+
// This property should be set by the calling code of the appointment and be the set of
|
|
235
|
+
// contact phones for all contacts on this preso. It must be fetchd and set after the contact_set
|
|
236
|
+
// is fetched. It's up to the calling code to decide if this property is required and
|
|
237
|
+
// therefore the extra fetch
|
|
238
|
+
contactPhones: {
|
|
239
|
+
deps: ["id", "contact_set"],
|
|
240
|
+
fn() {
|
|
241
|
+
return new ContactPhoneCollection();
|
|
242
|
+
},
|
|
243
|
+
},
|
|
214
244
|
},
|
|
215
245
|
|
|
216
246
|
getHooksPath() {
|
|
@@ -220,26 +250,26 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
220
250
|
return this.deckversion_set.first().getHooksPath();
|
|
221
251
|
},
|
|
222
252
|
|
|
223
|
-
fetchAll(fetchSelf = false,
|
|
253
|
+
fetchAll(fetchSelf = false, fetchOptions = {}) {
|
|
224
254
|
return Promise.resolve()
|
|
225
255
|
.then(() => {
|
|
226
256
|
if (!this._url || fetchSelf) {
|
|
227
|
-
return this.fetch(
|
|
257
|
+
return this.fetch(fetchOptions);
|
|
228
258
|
}
|
|
229
259
|
return Promise.resolve();
|
|
230
260
|
})
|
|
231
261
|
.then(() => {
|
|
232
262
|
const fetches = [
|
|
233
|
-
this.deckversion_set
|
|
234
|
-
this.appointmentssection_set
|
|
235
|
-
this.appointmentsslide_set
|
|
236
|
-
this.appointmenteditor_set
|
|
237
|
-
this.adjunctSlides
|
|
238
|
-
this.adjunctSections
|
|
239
|
-
this.adjunctSubSlides
|
|
240
|
-
this.contact_set
|
|
241
|
-
this.tags
|
|
242
|
-
this.user
|
|
263
|
+
this.deckversion_set?.fetchModels(fetchOptions),
|
|
264
|
+
this.appointmentssection_set?.fetch(fetchOptions),
|
|
265
|
+
this.appointmentsslide_set?.fetch(fetchOptions),
|
|
266
|
+
this.appointmenteditor_set?.fetch(fetchOptions),
|
|
267
|
+
this.adjunctSlides?.fetch(fetchOptions),
|
|
268
|
+
this.adjunctSections?.fetch(fetchOptions),
|
|
269
|
+
this.adjunctSubSlides?.fetch(fetchOptions),
|
|
270
|
+
this.contact_set?.fetchSet(fetchOptions),
|
|
271
|
+
this.tags?.fetch(fetchOptions),
|
|
272
|
+
this.user?.fetch(fetchOptions)?.catch((e) => {
|
|
243
273
|
if (e.status && e.status === 404) {
|
|
244
274
|
// It's possible for a user to be deactivated, which means they'll
|
|
245
275
|
// return with a 404. We want to be able to still load the preso,
|
|
@@ -249,52 +279,84 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
249
279
|
}
|
|
250
280
|
throw e;
|
|
251
281
|
}),
|
|
252
|
-
this.deckNotes
|
|
253
|
-
this.
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
282
|
+
this.deckNotes?.fetch(fetchOptions),
|
|
283
|
+
this.includedTemplates.fetch(fetchOptions),
|
|
284
|
+
this.opportunity_set
|
|
285
|
+
?.fetchSet(fetchOptions)
|
|
286
|
+
?.then(() => {
|
|
287
|
+
return Promise.all(
|
|
288
|
+
this.opportunity_set.map((opp) =>
|
|
289
|
+
opp.customer.fetch(fetchOptions),
|
|
290
|
+
),
|
|
291
|
+
);
|
|
292
|
+
})
|
|
293
|
+
?.catch(() => {
|
|
294
|
+
log.error(
|
|
295
|
+
`Failed to fetch Opportunity set`,
|
|
296
|
+
this.opportunity_set.toJSON(),
|
|
297
|
+
);
|
|
298
|
+
return Promise.resolve();
|
|
299
|
+
}),
|
|
260
300
|
];
|
|
261
301
|
|
|
262
302
|
if (this.latest_snapshot) {
|
|
263
|
-
fetches.push(this.latest_snapshot.fetch(
|
|
303
|
+
fetches.push(this.latest_snapshot.fetch(fetchOptions));
|
|
264
304
|
}
|
|
265
305
|
|
|
266
306
|
if (this.latest_feed_data) {
|
|
267
|
-
fetches.push(this.latest_feed_data.fetch(
|
|
307
|
+
fetches.push(this.latest_feed_data.fetch(fetchOptions));
|
|
268
308
|
}
|
|
269
309
|
|
|
270
310
|
if (this.latest_tele) {
|
|
271
|
-
fetches.push(this.latest_tele.fetch(
|
|
311
|
+
fetches.push(this.latest_tele.fetch(fetchOptions));
|
|
272
312
|
}
|
|
273
313
|
|
|
274
314
|
return Promise.all(fetches);
|
|
275
315
|
})
|
|
276
316
|
.then(() => {
|
|
317
|
+
return Promise.all(
|
|
318
|
+
this.deckversion_set.map((model) => {
|
|
319
|
+
return Promise.all([
|
|
320
|
+
model.screenshots.fetch(fetchOptions),
|
|
321
|
+
model.template_set.fetchSet(fetchOptions),
|
|
322
|
+
model.manifest_json.fetch(fetchOptions),
|
|
323
|
+
model.deck.fetch(fetchOptions),
|
|
324
|
+
]);
|
|
325
|
+
}),
|
|
326
|
+
);
|
|
327
|
+
})
|
|
328
|
+
.then(() => {
|
|
329
|
+
const deckversionTemplates =
|
|
330
|
+
this.deckversion_set.first().template_set.models;
|
|
331
|
+
|
|
332
|
+
const allTemplates = _.uniqBy(
|
|
333
|
+
this.includedTemplates.models.concat(deckversionTemplates),
|
|
334
|
+
"id",
|
|
335
|
+
);
|
|
336
|
+
|
|
337
|
+
async function getTemplateOrFetch(adj) {
|
|
338
|
+
const existingTemplate = allTemplates.find(
|
|
339
|
+
(t) => t.id === adj.template.id,
|
|
340
|
+
);
|
|
341
|
+
if (existingTemplate) {
|
|
342
|
+
adj.template = existingTemplate;
|
|
343
|
+
} else {
|
|
344
|
+
await adj.template.fetch(fetchOptions);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
return adj;
|
|
348
|
+
}
|
|
349
|
+
|
|
277
350
|
const adjunctSlides = this.adjunctSlides
|
|
278
351
|
.filter((adj) => adj.template)
|
|
279
|
-
.map((adj) => adj
|
|
352
|
+
.map((adj) => getTemplateOrFetch(adj));
|
|
353
|
+
|
|
280
354
|
const adjunctSections = this.adjunctSections
|
|
281
355
|
.filter((adj) => adj.template)
|
|
282
|
-
.map((adj) => adj
|
|
356
|
+
.map((adj) => getTemplateOrFetch(adj));
|
|
283
357
|
|
|
284
358
|
return Promise.all([...adjunctSlides, ...adjunctSections]);
|
|
285
359
|
})
|
|
286
|
-
.then(() => {
|
|
287
|
-
return Promise.all(
|
|
288
|
-
this.deckversion_set.map((model) => {
|
|
289
|
-
return Promise.all([
|
|
290
|
-
model.screenshots.fetch(options),
|
|
291
|
-
model.template_set.fetchSet(options),
|
|
292
|
-
model.manifest_json.fetch(options),
|
|
293
|
-
model.deck.fetch(options),
|
|
294
|
-
]);
|
|
295
|
-
})
|
|
296
|
-
);
|
|
297
|
-
})
|
|
298
360
|
.return(this);
|
|
299
361
|
},
|
|
300
362
|
|
|
@@ -320,6 +382,7 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
320
382
|
no_delete_after: appointment.no_delete_after,
|
|
321
383
|
team: this._retrieveURL(appointment.team),
|
|
322
384
|
editors_can_change_editors: appointment.editors_can_change_editors,
|
|
385
|
+
share_visibility_mode: appointment.share_visibility_mode,
|
|
323
386
|
};
|
|
324
387
|
|
|
325
388
|
if (this.id) {
|
|
@@ -328,7 +391,7 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
328
391
|
|
|
329
392
|
return data;
|
|
330
393
|
},
|
|
331
|
-
}
|
|
394
|
+
},
|
|
332
395
|
);
|
|
333
396
|
|
|
334
397
|
register("AppointmentModel", AppointmentModel);
|
package/src/models/asset.js
CHANGED
|
@@ -33,6 +33,20 @@ export const AssetModel = BaseModel.extend(
|
|
|
33
33
|
orig_path: "string",
|
|
34
34
|
},
|
|
35
35
|
|
|
36
|
+
/**
|
|
37
|
+
* The asset serializer actually returns the file in question for the URL.
|
|
38
|
+
* This method returns the actual URL of the asset endpoint, for example:
|
|
39
|
+
*
|
|
40
|
+
* /api/assets/2/
|
|
41
|
+
*/
|
|
42
|
+
assetURL() {
|
|
43
|
+
// HACK: For some reason the API endpoint returns a url with a pack in it, but
|
|
44
|
+
// this doesn't actually work. We just want the 'asset' url.
|
|
45
|
+
return `${this.getResourceURL().replace("/packs/{pack.id}", "")}${
|
|
46
|
+
this.id
|
|
47
|
+
}/`;
|
|
48
|
+
},
|
|
49
|
+
|
|
36
50
|
/**
|
|
37
51
|
* @property {models.PackModel} pack
|
|
38
52
|
*/
|
|
@@ -43,7 +57,7 @@ export const AssetModel = BaseModel.extend(
|
|
|
43
57
|
url() {
|
|
44
58
|
return this._url;
|
|
45
59
|
},
|
|
46
|
-
}
|
|
60
|
+
},
|
|
47
61
|
);
|
|
48
62
|
|
|
49
63
|
register("AssetModel", AssetModel);
|
|
@@ -41,6 +41,7 @@ export const AutoAdjunctModel = BaseModel.extend(
|
|
|
41
41
|
sequence: "number",
|
|
42
42
|
tags: "array",
|
|
43
43
|
cmsvalkey_set: "array",
|
|
44
|
+
_tenancy: "object",
|
|
44
45
|
},
|
|
45
46
|
|
|
46
47
|
/**
|
|
@@ -52,7 +53,7 @@ export const AutoAdjunctModel = BaseModel.extend(
|
|
|
52
53
|
template: "TemplateModel",
|
|
53
54
|
team: "TeamModel",
|
|
54
55
|
},
|
|
55
|
-
}
|
|
56
|
+
},
|
|
56
57
|
);
|
|
57
58
|
|
|
58
59
|
register("AutoAdjunctModel", AutoAdjunctModel);
|
package/src/models/base.js
CHANGED
|
@@ -21,6 +21,7 @@ export const BaseModel = Model.extend(
|
|
|
21
21
|
/** @lends models.BaseModel# */ {
|
|
22
22
|
modelName: null,
|
|
23
23
|
queryData: {},
|
|
24
|
+
detailType: "number",
|
|
24
25
|
|
|
25
26
|
// This is unfortunately necessary to avoid the default ampersand model/state
|
|
26
27
|
// behaviour from automatically hydrating all children and collections on a fetch.
|
|
@@ -99,6 +100,15 @@ export const BaseModel = Model.extend(
|
|
|
99
100
|
if (def && (def.isState || def instanceof Collection)) {
|
|
100
101
|
dataCopy[key] = def.toJSON();
|
|
101
102
|
}
|
|
103
|
+
|
|
104
|
+
if (def && Array.isArray(def)) {
|
|
105
|
+
dataCopy[key] = def.map((obj) => {
|
|
106
|
+
if (obj instanceof Model) {
|
|
107
|
+
return obj.toJSON();
|
|
108
|
+
}
|
|
109
|
+
return obj;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
102
112
|
}
|
|
103
113
|
|
|
104
114
|
this.registerStates();
|
|
@@ -131,7 +141,7 @@ export const BaseModel = Model.extend(
|
|
|
131
141
|
for (const derivedProp of Object.keys(this._data[derivedKey])) {
|
|
132
142
|
this[derivedKey].set(
|
|
133
143
|
derivedProp,
|
|
134
|
-
this._data[derivedKey][derivedProp]
|
|
144
|
+
this._data[derivedKey][derivedProp],
|
|
135
145
|
);
|
|
136
146
|
}
|
|
137
147
|
}
|
|
@@ -152,9 +162,9 @@ export const BaseModel = Model.extend(
|
|
|
152
162
|
const replacements = _.extend(
|
|
153
163
|
{},
|
|
154
164
|
{
|
|
155
|
-
detailKey:
|
|
165
|
+
detailKey: this.detailType,
|
|
156
166
|
},
|
|
157
|
-
this.urlMatchKeys
|
|
167
|
+
this.urlMatchKeys,
|
|
158
168
|
);
|
|
159
169
|
|
|
160
170
|
const regexes = Object.keys(replacements).reduce((result, key) => {
|
|
@@ -162,6 +172,8 @@ export const BaseModel = Model.extend(
|
|
|
162
172
|
const name = key.replace(/\./g, "_");
|
|
163
173
|
if (type === "number") {
|
|
164
174
|
result[name] = "\\d+";
|
|
175
|
+
} else if (type === "uuid") {
|
|
176
|
+
result[name] = "([a-z]|[0-9]|-)+";
|
|
165
177
|
} else if (type === "string") {
|
|
166
178
|
result[name] = "\\w+";
|
|
167
179
|
} else {
|
|
@@ -208,7 +220,7 @@ export const BaseModel = Model.extend(
|
|
|
208
220
|
Failed to match URL '${url}' for model '${this.modelName}'.
|
|
209
221
|
This is usually because the regex type for a key hasn't been set.
|
|
210
222
|
Error: `,
|
|
211
|
-
e
|
|
223
|
+
e,
|
|
212
224
|
);
|
|
213
225
|
return false;
|
|
214
226
|
}
|
|
@@ -226,8 +238,8 @@ export const BaseModel = Model.extend(
|
|
|
226
238
|
// and we want to ignore the hostname (https://staging-demo.salespreso.com)
|
|
227
239
|
// and strip out the '/api' from both the resource url and the variable url
|
|
228
240
|
// so that we can use the remaining part to isolate the id
|
|
229
|
-
_getIDFromURL(url) {
|
|
230
|
-
const resourceURL = this.getResourceURL();
|
|
241
|
+
_getIDFromURL(url, resource = "") {
|
|
242
|
+
const resourceURL = resource || this.getResourceURL();
|
|
231
243
|
|
|
232
244
|
if (!url || !resourceURL) {
|
|
233
245
|
return null;
|
|
@@ -318,7 +330,7 @@ export const BaseModel = Model.extend(
|
|
|
318
330
|
const Model = registeredStates[model];
|
|
319
331
|
if (!Model) {
|
|
320
332
|
throw new Error(
|
|
321
|
-
`'${model}' not found! Did you forget to import it on the '${this.modelName}' model
|
|
333
|
+
`'${model}' not found! Did you forget to import it on the '${this.modelName}' model?`,
|
|
322
334
|
);
|
|
323
335
|
}
|
|
324
336
|
this._children[prop] = Model;
|
|
@@ -328,7 +340,7 @@ export const BaseModel = Model.extend(
|
|
|
328
340
|
const Collection = state[collection];
|
|
329
341
|
if (!Collection) {
|
|
330
342
|
throw new Error(
|
|
331
|
-
`'${collection}' not found! Did you forget to import it on the '${this.modelName}' model
|
|
343
|
+
`'${collection}' not found! Did you forget to import it on the '${this.modelName}' model?`,
|
|
332
344
|
);
|
|
333
345
|
}
|
|
334
346
|
this._collections[prop] = Collection;
|
|
@@ -362,7 +374,7 @@ export const BaseModel = Model.extend(
|
|
|
362
374
|
}
|
|
363
375
|
}
|
|
364
376
|
},
|
|
365
|
-
this
|
|
377
|
+
this,
|
|
366
378
|
);
|
|
367
379
|
|
|
368
380
|
// Loop throught the collections and replace with the registered collection
|
|
@@ -373,7 +385,7 @@ export const BaseModel = Model.extend(
|
|
|
373
385
|
this._registerCollection(registeredStates, prop, collection);
|
|
374
386
|
}
|
|
375
387
|
},
|
|
376
|
-
this
|
|
388
|
+
this,
|
|
377
389
|
);
|
|
378
390
|
},
|
|
379
391
|
|
|
@@ -452,10 +464,10 @@ export const BaseModel = Model.extend(
|
|
|
452
464
|
_.concat(
|
|
453
465
|
_.concat(
|
|
454
466
|
Object.keys(this._unsetChildren),
|
|
455
|
-
Object.keys(this._unsetCollections)
|
|
467
|
+
Object.keys(this._unsetCollections),
|
|
456
468
|
),
|
|
457
|
-
Object.keys(this._values)
|
|
458
|
-
)
|
|
469
|
+
Object.keys(this._values),
|
|
470
|
+
),
|
|
459
471
|
);
|
|
460
472
|
|
|
461
473
|
keys.forEach((key) => {
|
|
@@ -508,12 +520,12 @@ export const BaseModel = Model.extend(
|
|
|
508
520
|
if (typeof this._children[child] === "function") {
|
|
509
521
|
this._safeSet(
|
|
510
522
|
child,
|
|
511
|
-
new this._children[child](val, { parent: this })
|
|
523
|
+
new this._children[child](val, { parent: this }),
|
|
512
524
|
);
|
|
513
525
|
this.listenTo(
|
|
514
526
|
this[child],
|
|
515
527
|
"all",
|
|
516
|
-
this._getCachedEventBubblingHandler(child)
|
|
528
|
+
this._getCachedEventBubblingHandler(child),
|
|
517
529
|
);
|
|
518
530
|
} else {
|
|
519
531
|
this._safeSet(child, val);
|
|
@@ -541,7 +553,7 @@ export const BaseModel = Model.extend(
|
|
|
541
553
|
if (typeof this._collections[coll] === "function") {
|
|
542
554
|
this._safeSet(
|
|
543
555
|
coll,
|
|
544
|
-
new this._collections[coll](val, { parent: this })
|
|
556
|
+
new this._collections[coll](val, { parent: this }),
|
|
545
557
|
);
|
|
546
558
|
} else {
|
|
547
559
|
this._safeSet(coll, val);
|
|
@@ -601,7 +613,6 @@ export const BaseModel = Model.extend(
|
|
|
601
613
|
if (this._url && this.isNew()) {
|
|
602
614
|
return this.getFullURLPath(this._url);
|
|
603
615
|
}
|
|
604
|
-
|
|
605
616
|
return this.getFullURLPath(this.getPlainURL());
|
|
606
617
|
},
|
|
607
618
|
|
|
@@ -617,6 +628,10 @@ export const BaseModel = Model.extend(
|
|
|
617
628
|
resp += "/";
|
|
618
629
|
}
|
|
619
630
|
|
|
631
|
+
if (!resp.includes("{") || !resp.includes("}")) {
|
|
632
|
+
return resp;
|
|
633
|
+
}
|
|
634
|
+
|
|
620
635
|
// Replace any values in a url with one from the model.
|
|
621
636
|
// So if you have /path/to/{model.id}/
|
|
622
637
|
// It will check the model from "this.model.id" and replace
|
|
@@ -655,7 +670,7 @@ export const BaseModel = Model.extend(
|
|
|
655
670
|
return sync.apply(this, arguments);
|
|
656
671
|
},
|
|
657
672
|
|
|
658
|
-
serialize() {
|
|
673
|
+
serialize(opts = { derived: true }) {
|
|
659
674
|
// Return nothing if data passed is falsy. More than likely this is
|
|
660
675
|
// a null value
|
|
661
676
|
if (!this._data) {
|
|
@@ -665,7 +680,7 @@ export const BaseModel = Model.extend(
|
|
|
665
680
|
const data = Model.prototype.serialize.apply(this, arguments);
|
|
666
681
|
data.url = this.url();
|
|
667
682
|
|
|
668
|
-
let derived = this.getAttributes(
|
|
683
|
+
let derived = this.getAttributes(opts);
|
|
669
684
|
derived = Object.keys(derived).reduce((object, key) => {
|
|
670
685
|
let value = derived[key];
|
|
671
686
|
if (value instanceof Collection || value instanceof Model) {
|
|
@@ -716,7 +731,7 @@ export const BaseModel = Model.extend(
|
|
|
716
731
|
|
|
717
732
|
return null;
|
|
718
733
|
},
|
|
719
|
-
}
|
|
734
|
+
},
|
|
720
735
|
);
|
|
721
736
|
|
|
722
737
|
function replacePropertyDefinition(object, name) {
|
|
@@ -785,7 +800,7 @@ function replacePropertyDefinition(object, name) {
|
|
|
785
800
|
get() {
|
|
786
801
|
if (!this._values) {
|
|
787
802
|
throw new Error(
|
|
788
|
-
`Trying to retrieve value ${name} of model ${object.modelName} during constructor
|
|
803
|
+
`Trying to retrieve value ${name} of model ${object.modelName} during constructor`,
|
|
789
804
|
);
|
|
790
805
|
}
|
|
791
806
|
|