@livepreso/api 6.44.0 → 6.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +3 -0
- package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
- package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +10 -0
- package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +10 -0
- package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +10 -0
- package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
- package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +10 -0
- package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
- package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +10 -0
- package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +10 -0
- package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +10 -0
- package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +10 -0
- package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +10 -0
- package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +10 -0
- package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +10 -0
- package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +10 -0
- package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
- package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
- package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +10 -0
- package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +10 -0
- package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +10 -0
- package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +10 -0
- package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +10 -0
- package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +10 -0
- package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +10 -0
- package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +10 -0
- package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +10 -0
- package/.rush/temp/operation/test/all.log +19 -0
- package/.rush/temp/operation/test/state.json +3 -0
- package/.rush/temp/{package-deps_test.json → package-deps_build.json} +11 -11
- package/.rush/temp/shrinkwrap-deps.json +605 -597
- package/CHANGELOG.json +29 -0
- package/CHANGELOG.md +15 -1
- package/README.md +4 -4
- package/api.build.log +1 -1
- package/api.test.cache.log +1 -0
- package/api.test.log +19 -0
- package/bin/test.sh +0 -1
- package/cjs/api.js +18 -17
- package/cjs/api.js.map +1 -1
- package/cjs/api.spec.js +0 -4
- package/cjs/api.spec.js.map +1 -1
- package/cjs/auth.js +35 -36
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +52 -71
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +2 -7
- package/cjs/caching.js.map +1 -1
- package/cjs/collections/activity.js +16 -56
- package/cjs/collections/activity.js.map +1 -1
- package/cjs/collections/adjunct-sections.js +1 -10
- package/cjs/collections/adjunct-sections.js.map +1 -1
- package/cjs/collections/adjunct-slides.js +1 -10
- package/cjs/collections/adjunct-slides.js.map +1 -1
- package/cjs/collections/adjunct-sub-slides.js +1 -9
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/collections/appointment-adjunct-tags.js +1 -9
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
- package/cjs/collections/appointment-deckversion-tags.js +1 -9
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
- package/cjs/collections/appointment-duplicates.js +1 -9
- package/cjs/collections/appointment-duplicates.js.map +1 -1
- package/cjs/collections/appointment-editors.js +1 -10
- package/cjs/collections/appointment-editors.js.map +1 -1
- package/cjs/collections/appointment-section-tags.js +1 -9
- package/cjs/collections/appointment-section-tags.js.map +1 -1
- package/cjs/collections/appointment-slide-tags.js +1 -9
- package/cjs/collections/appointment-slide-tags.js.map +1 -1
- package/cjs/collections/appointment-tags.js +66 -103
- package/cjs/collections/appointment-tags.js.map +1 -1
- package/cjs/collections/appointment-templates.js +27 -0
- package/cjs/collections/appointment-templates.js.map +1 -0
- package/cjs/collections/appointments.js +9 -29
- package/cjs/collections/appointments.js.map +1 -1
- package/cjs/collections/assets.js +1 -9
- package/cjs/collections/assets.js.map +1 -1
- package/cjs/collections/auto-adjuncts.js +6 -21
- package/cjs/collections/auto-adjuncts.js.map +1 -1
- package/cjs/collections/base.js +46 -112
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +204 -233
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/cms-vals.js +9 -16
- package/cjs/collections/cms-vals.js.map +1 -1
- package/cjs/collections/contact-phones.js +20 -0
- package/cjs/collections/contact-phones.js.map +1 -0
- package/cjs/collections/contacts.js +1 -9
- package/cjs/collections/contacts.js.map +1 -1
- package/cjs/collections/created-assets.js +1 -10
- package/cjs/collections/created-assets.js.map +1 -1
- package/cjs/collections/customers.js +1 -9
- package/cjs/collections/customers.js.map +1 -1
- package/cjs/collections/deck-notes.js +1 -10
- package/cjs/collections/deck-notes.js.map +1 -1
- package/cjs/collections/deck-version-screenshots.js +49 -0
- package/cjs/collections/deck-version-screenshots.js.map +1 -0
- package/cjs/collections/deck-versions.js +5 -20
- package/cjs/collections/deck-versions.js.map +1 -1
- package/cjs/collections/decks.js +1 -9
- package/cjs/collections/decks.js.map +1 -1
- package/cjs/collections/deleted-assets.js +1 -10
- package/cjs/collections/deleted-assets.js.map +1 -1
- package/cjs/collections/dispatches.js +1 -13
- package/cjs/collections/dispatches.js.map +1 -1
- package/cjs/collections/event-objects.js +1 -9
- package/cjs/collections/event-objects.js.map +1 -1
- package/cjs/collections/events.js +1 -9
- package/cjs/collections/events.js.map +1 -1
- package/cjs/collections/groups.js +1 -9
- package/cjs/collections/groups.js.map +1 -1
- package/cjs/collections/images.js +1 -9
- package/cjs/collections/images.js.map +1 -1
- package/cjs/collections/locations.js +1 -9
- package/cjs/collections/locations.js.map +1 -1
- package/cjs/collections/opportunities.js +1 -9
- package/cjs/collections/opportunities.js.map +1 -1
- package/cjs/collections/pack-diffs.js +1 -9
- package/cjs/collections/pack-diffs.js.map +1 -1
- package/cjs/collections/packs.js +1 -9
- package/cjs/collections/packs.js.map +1 -1
- package/cjs/collections/presets.js +1 -9
- package/cjs/collections/presets.js.map +1 -1
- package/cjs/collections/section-selections.js +1 -9
- package/cjs/collections/section-selections.js.map +1 -1
- package/cjs/collections/sections.js +1 -9
- package/cjs/collections/sections.js.map +1 -1
- package/cjs/collections/slide-selections.js +1 -9
- package/cjs/collections/slide-selections.js.map +1 -1
- package/cjs/collections/slides.js +1 -9
- package/cjs/collections/slides.js.map +1 -1
- package/cjs/collections/snapshots.js +1 -9
- package/cjs/collections/snapshots.js.map +1 -1
- package/cjs/collections/sub-slides.js +1 -9
- package/cjs/collections/sub-slides.js.map +1 -1
- package/cjs/collections/tags.js +1 -9
- package/cjs/collections/tags.js.map +1 -1
- package/cjs/collections/teams.js +1 -9
- package/cjs/collections/teams.js.map +1 -1
- package/cjs/collections/templates.js +1 -9
- package/cjs/collections/templates.js.map +1 -1
- package/cjs/collections/uploads.js +1 -9
- package/cjs/collections/uploads.js.map +1 -1
- package/cjs/collections/users.js +1 -9
- package/cjs/collections/users.js.map +1 -1
- package/cjs/collections.js +33 -86
- package/cjs/collections.js.map +1 -1
- package/cjs/fixtures.js +187 -0
- package/cjs/fixtures.js.map +1 -0
- package/cjs/index.js +0 -10
- package/cjs/index.js.map +1 -1
- package/cjs/log.js +0 -1
- package/cjs/log.js.map +1 -1
- package/cjs/middleware.js +2 -7
- package/cjs/middleware.js.map +1 -1
- package/cjs/middlewares/auth.js +1 -17
- package/cjs/middlewares/auth.js.map +1 -1
- package/cjs/middlewares/base.js +3 -9
- package/cjs/middlewares/base.js.map +1 -1
- package/cjs/middlewares/json.js +1 -19
- package/cjs/middlewares/json.js.map +1 -1
- package/cjs/middlewares/redirect.js +5 -21
- package/cjs/middlewares/redirect.js.map +1 -1
- package/cjs/models/activity-item.js +6 -20
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/adjunct-section.js +8 -21
- package/cjs/models/adjunct-section.js.map +1 -1
- package/cjs/models/adjunct-slide.js +8 -21
- package/cjs/models/adjunct-slide.js.map +1 -1
- package/cjs/models/adjunct-sub-slide.js +1 -16
- package/cjs/models/adjunct-sub-slide.js.map +1 -1
- package/cjs/models/adjunct.js +34 -10
- package/cjs/models/adjunct.js.map +1 -1
- package/cjs/models/api.js +1 -6
- package/cjs/models/api.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +1 -13
- package/cjs/models/appointment-adjunct-tags.js.map +1 -1
- package/cjs/models/appointment-deckversion-tags.js +1 -13
- package/cjs/models/appointment-deckversion-tags.js.map +1 -1
- package/cjs/models/appointment-duplicate.js +3 -25
- package/cjs/models/appointment-duplicate.js.map +1 -1
- package/cjs/models/appointment-editor.js +1 -14
- package/cjs/models/appointment-editor.js.map +1 -1
- package/cjs/models/appointment-section-tags.js +1 -13
- package/cjs/models/appointment-section-tags.js.map +1 -1
- package/cjs/models/appointment-slide-tags.js +1 -13
- package/cjs/models/appointment-slide-tags.js.map +1 -1
- package/cjs/models/appointment-stats.js +1 -11
- package/cjs/models/appointment-stats.js.map +1 -1
- package/cjs/models/appointment-tags.js +1 -10
- package/cjs/models/appointment-tags.js.map +1 -1
- package/cjs/models/appointment-template.js +23 -0
- package/cjs/models/appointment-template.js.map +1 -0
- package/cjs/models/appointment-viewing.js +1 -8
- package/cjs/models/appointment-viewing.js.map +1 -1
- package/cjs/models/appointment.js +94 -69
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/asset.js +12 -11
- package/cjs/models/asset.js.map +1 -1
- package/cjs/models/auto-adjunct-key-check.js +1 -15
- package/cjs/models/auto-adjunct-key-check.js.map +1 -1
- package/cjs/models/auto-adjunct.js +5 -14
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +89 -173
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +8 -30
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/choicelist.js +1 -8
- package/cjs/models/choicelist.js.map +1 -1
- package/cjs/models/cms-val.js +28 -15
- package/cjs/models/cms-val.js.map +1 -1
- package/cjs/models/cms-val.spec.js +25 -0
- package/cjs/models/cms-val.spec.js.map +1 -0
- package/cjs/models/contact-phone.js +54 -0
- package/cjs/models/contact-phone.js.map +1 -0
- package/cjs/models/contact.js +1 -18
- package/cjs/models/contact.js.map +1 -1
- package/cjs/models/customer.js +5 -30
- package/cjs/models/customer.js.map +1 -1
- package/cjs/models/deck-note.js +1 -9
- package/cjs/models/deck-note.js.map +1 -1
- package/cjs/models/deck-tags.js +1 -12
- package/cjs/models/deck-tags.js.map +1 -1
- package/cjs/models/deck-version-screenshot.js +47 -0
- package/cjs/models/deck-version-screenshot.js.map +1 -0
- package/cjs/models/deck-version.js +54 -47
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +1 -14
- package/cjs/models/deck.js.map +1 -1
- package/cjs/models/dispatch-preview.js +1 -13
- package/cjs/models/dispatch-preview.js.map +1 -1
- package/cjs/models/dispatch.js +1 -23
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/envs.js +1 -6
- package/cjs/models/envs.js.map +1 -1
- package/cjs/models/event-object.js +1 -11
- package/cjs/models/event-object.js.map +1 -1
- package/cjs/models/event.js +1 -13
- package/cjs/models/event.js.map +1 -1
- package/cjs/models/feed-data.js +6 -13
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/file.js +1 -11
- package/cjs/models/file.js.map +1 -1
- package/cjs/models/group.js +1 -11
- package/cjs/models/group.js.map +1 -1
- package/cjs/models/handover.js +1 -13
- package/cjs/models/handover.js.map +1 -1
- package/cjs/models/hosted-preso.js +1 -15
- package/cjs/models/hosted-preso.js.map +1 -1
- package/cjs/models/image.js +30 -11
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/location.js +1 -13
- package/cjs/models/location.js.map +1 -1
- package/cjs/models/manifest-json.js +75 -74
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/onshare.js +1 -14
- package/cjs/models/onshare.js.map +1 -1
- package/cjs/models/opportunity.js +1 -14
- package/cjs/models/opportunity.js.map +1 -1
- package/cjs/models/pack-diff.js +1 -14
- package/cjs/models/pack-diff.js.map +1 -1
- package/cjs/models/pack.js +1 -12
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/preset.js +4 -20
- package/cjs/models/preset.js.map +1 -1
- package/cjs/models/refresh-request.js +17 -11
- package/cjs/models/refresh-request.js.map +1 -1
- package/cjs/models/room.js +1 -9
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/salesforce-lookup.js +1 -12
- package/cjs/models/salesforce-lookup.js.map +1 -1
- package/cjs/models/section-selection.js +1 -14
- package/cjs/models/section-selection.js.map +1 -1
- package/cjs/models/section.js +4 -15
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/slide-selection.js +1 -14
- package/cjs/models/slide-selection.js.map +1 -1
- package/cjs/models/slide.js +4 -15
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/snapshot.js +13 -15
- package/cjs/models/snapshot.js.map +1 -1
- package/cjs/models/snapshot.spec.js +44 -0
- package/cjs/models/snapshot.spec.js.map +1 -0
- package/cjs/models/sub-slide.js +1 -12
- package/cjs/models/sub-slide.js.map +1 -1
- package/cjs/models/support-ticket.js +1 -11
- package/cjs/models/support-ticket.js.map +1 -1
- package/cjs/models/tag.js +1 -13
- package/cjs/models/tag.js.map +1 -1
- package/cjs/models/team.js +14 -13
- package/cjs/models/team.js.map +1 -1
- package/cjs/models/template.js +89 -15
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/tenancy.js +4 -11
- package/cjs/models/tenancy.js.map +1 -1
- package/cjs/models/timing-log.js +21 -78
- package/cjs/models/timing-log.js.map +1 -1
- package/cjs/models/timing-log.spec.js +24 -37
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/token.js +46 -0
- package/cjs/models/token.js.map +1 -0
- package/cjs/models/transcribe-socket.js +1 -8
- package/cjs/models/transcribe-socket.js.map +1 -1
- package/cjs/models/upload.js +1 -7
- package/cjs/models/upload.js.map +1 -1
- package/cjs/models/user.js +11 -28
- package/cjs/models/user.js.map +1 -1
- package/cjs/models/user.spec.js +20 -30
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/models.js +44 -128
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +14 -36
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-collection.js +1 -7
- package/cjs/presentation/base-presentation-collection.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +108 -33
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +58 -23
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +73 -83
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +118 -88
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-decks.js +1 -9
- package/cjs/presentation/presentation-decks.js.map +1 -1
- package/cjs/presentation/presentation-section.js +70 -84
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +296 -238
- package/cjs/presentation/presentation-section.spec.js.map +1 -1
- package/cjs/presentation/presentation-sections.js +1 -9
- package/cjs/presentation/presentation-sections.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +74 -84
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +211 -166
- package/cjs/presentation/presentation-slide.spec.js.map +1 -1
- package/cjs/presentation/presentation-slides.js +1 -9
- package/cjs/presentation/presentation-slides.js.map +1 -1
- package/cjs/presentation/presentation-subslide.js +3 -23
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +101 -125
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslides.js +1 -9
- package/cjs/presentation/presentation-subslides.js.map +1 -1
- package/cjs/presentation/presentation.js +87 -32
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/presentation.js +0 -20
- package/cjs/presentation.js.map +1 -1
- package/cjs/selections.js +81 -0
- package/cjs/selections.js.map +1 -0
- package/cjs/state-register.js +3 -11
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +32 -76
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +51 -42
- package/cjs/utils.js.map +1 -1
- package/cjs/utils.spec.js +0 -4
- package/cjs/utils.spec.js.map +1 -1
- package/jest.config.js +5 -3
- package/package.json +11 -8
- package/src/api.js +17 -2
- package/src/auth.js +45 -9
- package/src/auth.spec.js +2 -0
- package/src/collections/activity.js +4 -4
- package/src/collections/adjunct-sections.js +1 -1
- package/src/collections/adjunct-slides.js +1 -1
- package/src/collections/adjunct-sub-slides.js +1 -1
- package/src/collections/appointment-adjunct-tags.js +1 -1
- package/src/collections/appointment-deckversion-tags.js +2 -2
- package/src/collections/appointment-duplicates.js +1 -1
- package/src/collections/appointment-editors.js +1 -1
- package/src/collections/appointment-section-tags.js +1 -1
- package/src/collections/appointment-slide-tags.js +1 -1
- package/src/collections/appointment-tags.js +20 -18
- package/src/collections/appointment-templates.js +26 -0
- package/src/collections/appointments.js +9 -9
- package/src/collections/assets.js +1 -1
- package/src/collections/auto-adjuncts.js +1 -1
- package/src/collections/base.js +20 -10
- package/src/collections/base.spec.js +19 -5
- package/src/collections/cms-vals.js +5 -1
- package/src/collections/contact-phones.js +18 -0
- package/src/collections/contacts.js +1 -1
- package/src/collections/created-assets.js +1 -1
- package/src/collections/customers.js +1 -1
- package/src/collections/deck-notes.js +1 -1
- package/src/collections/deck-version-screenshots.js +48 -0
- package/src/collections/deck-versions.js +1 -1
- package/src/collections/decks.js +1 -1
- package/src/collections/deleted-assets.js +1 -1
- package/src/collections/dispatches.js +2 -2
- package/src/collections/event-objects.js +1 -1
- package/src/collections/events.js +1 -1
- package/src/collections/groups.js +1 -1
- package/src/collections/images.js +1 -1
- package/src/collections/locations.js +1 -1
- package/src/collections/opportunities.js +1 -1
- package/src/collections/pack-diffs.js +1 -1
- package/src/collections/packs.js +1 -1
- package/src/collections/presets.js +1 -1
- package/src/collections/section-selections.js +1 -1
- package/src/collections/sections.js +1 -1
- package/src/collections/slide-selections.js +1 -1
- package/src/collections/slides.js +1 -1
- package/src/collections/snapshots.js +1 -1
- package/src/collections/sub-slides.js +1 -1
- package/src/collections/tags.js +1 -1
- package/src/collections/teams.js +1 -1
- package/src/collections/templates.js +1 -1
- package/src/collections/uploads.js +1 -1
- package/src/collections/users.js +1 -1
- package/src/collections.js +3 -0
- package/src/fixtures.js +193 -0
- package/src/models/activity-item.js +3 -1
- package/src/models/adjunct-section.js +7 -2
- package/src/models/adjunct-slide.js +7 -2
- package/src/models/adjunct-sub-slide.js +1 -1
- package/src/models/adjunct.js +39 -1
- package/src/models/appointment-adjunct-tags.js +1 -1
- package/src/models/appointment-deckversion-tags.js +1 -1
- package/src/models/appointment-duplicate.js +1 -1
- package/src/models/appointment-editor.js +1 -1
- package/src/models/appointment-section-tags.js +1 -1
- package/src/models/appointment-slide-tags.js +1 -1
- package/src/models/appointment-stats.js +1 -1
- package/src/models/appointment-tags.js +1 -1
- package/src/models/appointment-template.js +19 -0
- package/src/models/appointment-viewing.js +1 -1
- package/src/models/appointment.js +112 -37
- package/src/models/asset.js +15 -1
- package/src/models/auto-adjunct-key-check.js +1 -1
- package/src/models/auto-adjunct.js +4 -1
- package/src/models/base.js +55 -22
- package/src/models/base.spec.js +34 -27
- package/src/models/choicelist.js +1 -1
- package/src/models/cms-val.js +24 -1
- package/src/models/cms-val.spec.js +14 -0
- package/src/models/contact-phone.js +57 -0
- package/src/models/contact.js +1 -1
- package/src/models/customer.js +3 -3
- package/src/models/deck-note.js +1 -1
- package/src/models/deck-tags.js +1 -1
- package/src/models/deck-version-screenshot.js +48 -0
- package/src/models/deck-version.js +60 -9
- package/src/models/deck.js +1 -1
- package/src/models/dispatch-preview.js +1 -1
- package/src/models/dispatch.js +1 -1
- package/src/models/event-object.js +1 -1
- package/src/models/event.js +1 -1
- package/src/models/feed-data.js +3 -1
- package/src/models/file.js +1 -1
- package/src/models/group.js +1 -1
- package/src/models/handover.js +1 -1
- package/src/models/hosted-preso.js +1 -1
- package/src/models/image.js +33 -1
- package/src/models/location.js +1 -1
- package/src/models/manifest-json.js +57 -6
- package/src/models/onshare.js +1 -1
- package/src/models/opportunity.js +1 -1
- package/src/models/pack-diff.js +1 -1
- package/src/models/pack.js +1 -1
- package/src/models/preset.js +3 -1
- package/src/models/refresh-request.js +15 -1
- package/src/models/room.js +1 -1
- package/src/models/salesforce-lookup.js +1 -1
- package/src/models/section-selection.js +1 -1
- package/src/models/section.js +3 -1
- package/src/models/slide-selection.js +1 -1
- package/src/models/slide.js +3 -1
- package/src/models/snapshot.js +11 -2
- package/src/models/snapshot.spec.js +31 -0
- package/src/models/sub-slide.js +1 -1
- package/src/models/support-ticket.js +1 -1
- package/src/models/tag.js +1 -1
- package/src/models/team.js +14 -3
- package/src/models/template.js +74 -2
- package/src/models/tenancy.js +4 -1
- package/src/models/timing-log.js +2 -2
- package/src/models/timing-log.spec.js +1 -1
- package/src/models/token.js +47 -0
- package/src/models/transcribe-socket.js +1 -1
- package/src/models/user.js +15 -2
- package/src/models.js +4 -0
- package/src/presentation/appointment-presentation.js +13 -5
- package/src/presentation/base-presentation-collection.js +1 -1
- package/src/presentation/base-presentation-model.js +88 -3
- package/src/presentation/base-presentation-model.spec.js +80 -3
- package/src/presentation/presentation-deck.js +65 -22
- package/src/presentation/presentation-deck.spec.js +55 -2
- package/src/presentation/presentation-decks.js +1 -1
- package/src/presentation/presentation-section.js +91 -31
- package/src/presentation/presentation-section.spec.js +142 -10
- package/src/presentation/presentation-sections.js +1 -1
- package/src/presentation/presentation-slide.js +69 -23
- package/src/presentation/presentation-slide.spec.js +105 -9
- package/src/presentation/presentation-slides.js +1 -1
- package/src/presentation/presentation-subslide.js +5 -5
- package/src/presentation/presentation-subslide.spec.js +3 -3
- package/src/presentation/presentation-subslides.js +1 -1
- package/src/presentation/presentation.js +27 -8
- package/src/selections.js +71 -0
- package/src/sync.js +1 -1
- package/src/utils.js +31 -8
- package/src/utils.spec.js +4 -4
package/cjs/models/base.js
CHANGED
|
@@ -1,62 +1,43 @@
|
|
|
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,
|
|
38
|
+
// Useful to figure out whether the model is just a URL (unfetched), or has been
|
|
39
|
+
// fetched from the server (an object).
|
|
40
|
+
_isFetched: true,
|
|
60
41
|
// Object of regexes that should be used to match a url in `matchesURL`
|
|
61
42
|
// For example the URL: /api/foo/{pk}/bar/ might have the following:
|
|
62
43
|
//
|
|
@@ -69,72 +50,80 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
69
50
|
// ```
|
|
70
51
|
urlMatchKeys: {},
|
|
71
52
|
constructor: function constructor() {
|
|
72
|
-
var
|
|
53
|
+
var _data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
73
54
|
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
74
|
-
|
|
75
55
|
var options = _lodash.default.defaults(opts, {
|
|
76
56
|
data: {}
|
|
77
57
|
});
|
|
78
|
-
|
|
58
|
+
var data = _data;
|
|
79
59
|
this._unsetChildren = {};
|
|
80
60
|
this._unsetCollections = {};
|
|
81
61
|
this._expandedValues = {};
|
|
82
|
-
|
|
83
62
|
if (data === null) {
|
|
84
63
|
data = {};
|
|
85
|
-
}
|
|
86
|
-
|
|
64
|
+
}
|
|
87
65
|
|
|
66
|
+
// Allow passing in models
|
|
88
67
|
if (data instanceof _ampersandModel.default) {
|
|
89
68
|
data = data.toJSON();
|
|
90
69
|
}
|
|
70
|
+
this.queryData = options.data;
|
|
91
71
|
|
|
92
|
-
|
|
93
|
-
|
|
72
|
+
// Convert any strings into a url format we can understand
|
|
94
73
|
if (_lodash.default.isString(data)) {
|
|
95
74
|
data = {
|
|
96
75
|
url: data
|
|
97
76
|
};
|
|
77
|
+
this._isFetched = false;
|
|
98
78
|
}
|
|
99
79
|
|
|
80
|
+
// Convert model ids into a format we can understand
|
|
81
|
+
if (_lodash.default.isNumber(data)) {
|
|
82
|
+
data = {
|
|
83
|
+
id: data
|
|
84
|
+
};
|
|
85
|
+
this._isFetched = false;
|
|
86
|
+
}
|
|
100
87
|
var dataCopy = _lodash.default.extend({}, data);
|
|
101
|
-
|
|
102
88
|
this._data = dataCopy;
|
|
103
|
-
this._options = options;
|
|
89
|
+
this._options = options;
|
|
104
90
|
|
|
91
|
+
// Stop making edits to these affect other models
|
|
105
92
|
this._children = _lodash.default.clone(this._children);
|
|
106
93
|
this._collections = _lodash.default.clone(this._collections);
|
|
107
|
-
this._definition = _lodash.default.clone(this._definition);
|
|
108
|
-
// server responds with an array of urls rather than object data.
|
|
94
|
+
this._definition = _lodash.default.clone(this._definition);
|
|
109
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.
|
|
110
98
|
if (dataCopy && typeof dataCopy.url === "string") {
|
|
111
99
|
this._url = dataCopy.url;
|
|
112
100
|
}
|
|
113
|
-
|
|
114
101
|
for (var key in dataCopy) {
|
|
115
|
-
var def = dataCopy[key];
|
|
102
|
+
var def = dataCopy[key];
|
|
103
|
+
// Any models/collections passed into the constructor should be
|
|
116
104
|
// converted to JSON so that it can be parsed
|
|
117
|
-
|
|
118
105
|
if (def && (def.isState || def instanceof _ampersandRestCollection.default)) {
|
|
119
106
|
dataCopy[key] = def.toJSON();
|
|
120
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
|
+
}
|
|
121
116
|
}
|
|
122
|
-
|
|
123
117
|
this.registerStates();
|
|
124
|
-
|
|
125
118
|
this._convertToValues();
|
|
126
|
-
|
|
127
119
|
var id = this._getIDFromURL(this._url);
|
|
128
|
-
|
|
129
120
|
if (!dataCopy.id && id) {
|
|
130
121
|
dataCopy.id = id;
|
|
131
122
|
}
|
|
132
|
-
|
|
133
123
|
_ampersandModel.default.prototype.constructor.call(this, dataCopy, options);
|
|
124
|
+
this._setDerived();
|
|
134
125
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
126
|
+
// Re-set the values that were previously children or collections
|
|
138
127
|
this._initUnsetValues();
|
|
139
128
|
},
|
|
140
129
|
// If there is a model returned from a derived property, and the model
|
|
@@ -142,19 +131,17 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
142
131
|
_setDerived: function _setDerived() {
|
|
143
132
|
for (var _i = 0, _Object$keys = Object.keys(this._derived); _i < _Object$keys.length; _i++) {
|
|
144
133
|
var derivedKey = _Object$keys[_i];
|
|
145
|
-
|
|
146
134
|
if (!this._data[derivedKey]) {
|
|
147
135
|
continue;
|
|
148
136
|
}
|
|
149
|
-
|
|
150
137
|
if (this[derivedKey] instanceof _ampersandModel.default) {
|
|
151
138
|
for (var _i2 = 0, _Object$keys2 = Object.keys(this._data[derivedKey]); _i2 < _Object$keys2.length; _i2++) {
|
|
152
139
|
var derivedProp = _Object$keys2[_i2];
|
|
153
140
|
this[derivedKey].set(derivedProp, this._data[derivedKey][derivedProp]);
|
|
154
141
|
}
|
|
155
|
-
}
|
|
156
|
-
|
|
142
|
+
}
|
|
157
143
|
|
|
144
|
+
// If it's a collection, we can just pass the data straight in
|
|
158
145
|
if (this[derivedKey] instanceof _ampersandRestCollection.default) {
|
|
159
146
|
this[derivedKey].set(this._data[derivedKey]);
|
|
160
147
|
}
|
|
@@ -163,70 +150,63 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
163
150
|
// Internal function. Used by collection as well.
|
|
164
151
|
_matchesURL: function _matchesURL(url) {
|
|
165
152
|
var matchesDetail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
166
|
-
|
|
167
153
|
if (!this.modelName || this.urlRoot() === _api.Api.getURL()) {
|
|
168
154
|
return false;
|
|
169
155
|
}
|
|
170
|
-
|
|
171
156
|
var replacements = _lodash.default.extend({}, {
|
|
172
|
-
detailKey:
|
|
157
|
+
detailKey: this.detailType
|
|
173
158
|
}, this.urlMatchKeys);
|
|
174
|
-
|
|
175
159
|
var regexes = Object.keys(replacements).reduce(function (result, key) {
|
|
176
160
|
var type = replacements[key];
|
|
177
161
|
var name = key.replace(/\./g, "_");
|
|
178
|
-
|
|
179
162
|
if (type === "number") {
|
|
180
163
|
result[name] = "\\d+";
|
|
164
|
+
} else if (type === "uuid") {
|
|
165
|
+
result[name] = "([a-z]|[0-9]|-)+";
|
|
181
166
|
} else if (type === "string") {
|
|
182
167
|
result[name] = "\\w+";
|
|
183
168
|
} else {
|
|
184
169
|
throw new Error("Unknown regex type '".concat(type, "'."));
|
|
185
170
|
}
|
|
186
|
-
|
|
187
171
|
return result;
|
|
188
|
-
}, {});
|
|
189
|
-
// be read from any server.
|
|
172
|
+
}, {});
|
|
190
173
|
|
|
174
|
+
// Create a starting regex string with variables. Strips the root url so that it could
|
|
175
|
+
// be read from any server.
|
|
191
176
|
var urlWithoutRoot = this.urlRoot().replace(_api.Api.getURL(), "");
|
|
192
177
|
var urlStructure = urlWithoutRoot.slice();
|
|
193
|
-
|
|
194
178
|
if (matchesDetail) {
|
|
195
179
|
urlStructure += "{detailKey}/";
|
|
196
|
-
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Let's test if the url has even a remote chance of matching
|
|
197
183
|
// the url (like a partial match, any part without variables).
|
|
198
184
|
// If that doesn't match, we can sometimes prevent a nasty log
|
|
199
185
|
// error from being thrown.
|
|
200
|
-
|
|
201
|
-
|
|
202
186
|
var split = urlStructure.split("/");
|
|
203
187
|
var argIndex = split.findIndex(function (val) {
|
|
204
188
|
return val.indexOf("{") === 0;
|
|
205
189
|
});
|
|
206
|
-
|
|
207
190
|
if (argIndex >= 0) {
|
|
208
191
|
var attemptedURLWithoutRoot = url.replace(_api.Api.getURL(), "");
|
|
209
192
|
var partial = split.slice(0, argIndex).join("/");
|
|
210
|
-
|
|
211
193
|
if (attemptedURLWithoutRoot.indexOf(partial) !== 0) {
|
|
212
194
|
return false;
|
|
213
195
|
}
|
|
214
|
-
}
|
|
215
|
-
|
|
196
|
+
}
|
|
216
197
|
|
|
198
|
+
// Replace keys with regexes
|
|
217
199
|
var interpolatedString;
|
|
218
|
-
|
|
219
200
|
try {
|
|
220
201
|
interpolatedString = _lodash.default.template(urlStructure.replace(/\./g, "_"), {
|
|
221
202
|
interpolate: /{([\s\S\.]+?)}/g
|
|
222
203
|
})(regexes);
|
|
223
204
|
} catch (e) {
|
|
224
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);
|
|
225
|
-
|
|
226
206
|
return false;
|
|
227
|
-
}
|
|
228
|
-
|
|
207
|
+
}
|
|
229
208
|
|
|
209
|
+
// Convert into a regex and test if url matches
|
|
230
210
|
var baseString = ".*".concat(interpolatedString.replace(/\//m, "/"), "$");
|
|
231
211
|
var re = new RegExp(baseString);
|
|
232
212
|
return re.test(url);
|
|
@@ -239,30 +219,26 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
239
219
|
// and strip out the '/api' from both the resource url and the variable url
|
|
240
220
|
// so that we can use the remaining part to isolate the id
|
|
241
221
|
_getIDFromURL: function _getIDFromURL(url) {
|
|
242
|
-
var
|
|
243
|
-
|
|
222
|
+
var resource = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
223
|
+
var resourceURL = resource || this.getResourceURL();
|
|
244
224
|
if (!url || !resourceURL) {
|
|
245
225
|
return null;
|
|
246
226
|
}
|
|
247
|
-
|
|
248
227
|
var urlPath = _url.default.parse(url).path;
|
|
228
|
+
var resourceURLPath = _url.default.parse(resourceURL).path;
|
|
249
229
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
230
|
+
// Remove the '/api' if present
|
|
253
231
|
var resourceEnd = resourceURLPath.split("/api").join("");
|
|
254
|
-
var urlEnd = urlPath.split("/api").join("");
|
|
232
|
+
var urlEnd = urlPath.split("/api").join("");
|
|
255
233
|
|
|
234
|
+
// If they are the same, there is no id at the end
|
|
256
235
|
if (!urlEnd || urlEnd === resourceEnd) {
|
|
257
236
|
return null;
|
|
258
237
|
}
|
|
259
|
-
|
|
260
238
|
var idStr = urlEnd.split(resourceEnd).join("");
|
|
261
|
-
|
|
262
239
|
if ((idStr.match(/\//g) || []).length === 1) {
|
|
263
240
|
return parseInt(idStr.slice(0, -1), 10);
|
|
264
241
|
}
|
|
265
|
-
|
|
266
242
|
return null;
|
|
267
243
|
},
|
|
268
244
|
// Public version for details only
|
|
@@ -281,11 +257,9 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
281
257
|
if (typeof currentVal === "undefined") {
|
|
282
258
|
return false;
|
|
283
259
|
}
|
|
284
|
-
|
|
285
260
|
if (currentVal || newVal) {
|
|
286
261
|
return (0, _moment.default)(currentVal).isSame((0, _moment.default)(newVal));
|
|
287
262
|
}
|
|
288
|
-
|
|
289
263
|
return currentVal !== newVal;
|
|
290
264
|
}
|
|
291
265
|
},
|
|
@@ -309,7 +283,6 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
309
283
|
}
|
|
310
284
|
}
|
|
311
285
|
},
|
|
312
|
-
|
|
313
286
|
/**
|
|
314
287
|
* @property {number} [id]
|
|
315
288
|
*/
|
|
@@ -319,7 +292,6 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
319
292
|
required: false
|
|
320
293
|
}
|
|
321
294
|
},
|
|
322
|
-
|
|
323
295
|
/*
|
|
324
296
|
* Overridable serialization for sending data to
|
|
325
297
|
* the server
|
|
@@ -329,29 +301,23 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
329
301
|
},
|
|
330
302
|
_registerChildModel: function _registerChildModel(states, prop, model) {
|
|
331
303
|
var Model = _stateRegister.registeredStates[model];
|
|
332
|
-
|
|
333
304
|
if (!Model) {
|
|
334
305
|
throw new Error("'".concat(model, "' not found! Did you forget to import it on the '").concat(this.modelName, "' model?"));
|
|
335
306
|
}
|
|
336
|
-
|
|
337
307
|
this._children[prop] = Model;
|
|
338
308
|
},
|
|
339
309
|
_registerCollection: function _registerCollection(state, prop, collection) {
|
|
340
310
|
var Collection = state[collection];
|
|
341
|
-
|
|
342
311
|
if (!Collection) {
|
|
343
312
|
throw new Error("'".concat(collection, "' not found! Did you forget to import it on the '").concat(this.modelName, "' model?"));
|
|
344
313
|
}
|
|
345
|
-
|
|
346
314
|
this._collections[prop] = Collection;
|
|
347
315
|
},
|
|
348
|
-
|
|
349
316
|
/*
|
|
350
317
|
* Replace strings respresenting a registered model/collection the function
|
|
351
318
|
*/
|
|
352
319
|
registerStates: function registerStates() {
|
|
353
320
|
var _this = this;
|
|
354
|
-
|
|
355
321
|
// Loop through children and replace any parent objects directly to stop
|
|
356
322
|
// maximum stack overflows
|
|
357
323
|
_lodash.default.each(this._children, function (model, prop) {
|
|
@@ -359,9 +325,10 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
359
325
|
if (_this._options.parent && model === _this._options.parent._registerName) {
|
|
360
326
|
// This part is important, if the link stays when there's a circular dependency,
|
|
361
327
|
// this will continue forever.
|
|
362
|
-
delete _this._children[prop];
|
|
363
|
-
// so that we can retrieve this value later.
|
|
328
|
+
delete _this._children[prop];
|
|
364
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.
|
|
365
332
|
_this._definition[prop] = {
|
|
366
333
|
type: "any"
|
|
367
334
|
};
|
|
@@ -370,9 +337,9 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
370
337
|
_this._registerChildModel(_stateRegister.registeredStates, prop, model);
|
|
371
338
|
}
|
|
372
339
|
}
|
|
373
|
-
}, this);
|
|
374
|
-
|
|
340
|
+
}, this);
|
|
375
341
|
|
|
342
|
+
// Loop throught the collections and replace with the registered collection
|
|
376
343
|
_lodash.default.each(this._collections, function (collection, prop) {
|
|
377
344
|
if (typeof collection === "string") {
|
|
378
345
|
_this._registerCollection(_stateRegister.registeredStates, prop, collection);
|
|
@@ -381,14 +348,13 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
381
348
|
},
|
|
382
349
|
_updateResponse: function _updateResponse(response) {
|
|
383
350
|
var _this2 = this;
|
|
384
|
-
|
|
385
351
|
this._data = response || {};
|
|
386
|
-
|
|
387
352
|
if (!response) {
|
|
388
353
|
return;
|
|
389
|
-
}
|
|
390
|
-
// data retrieved during the fetch
|
|
354
|
+
}
|
|
391
355
|
|
|
356
|
+
// Set previously-initialised children & collections with new
|
|
357
|
+
// data retrieved during the fetch
|
|
392
358
|
|
|
393
359
|
Object.keys(this._children).forEach(function (key) {
|
|
394
360
|
if (response[key]) {
|
|
@@ -403,54 +369,46 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
403
369
|
},
|
|
404
370
|
save: function save() {
|
|
405
371
|
var _this3 = this;
|
|
406
|
-
|
|
407
372
|
return _ampersandModel.default.prototype.save.apply(this, arguments).tap(function (response) {
|
|
408
373
|
_this3._updateResponse(response);
|
|
409
374
|
});
|
|
410
375
|
},
|
|
411
376
|
fetch: function fetch() {
|
|
412
377
|
var _this4 = this;
|
|
413
|
-
|
|
414
378
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
415
|
-
|
|
416
379
|
if (options.url) {
|
|
417
380
|
this._url = options.url;
|
|
418
381
|
}
|
|
419
|
-
|
|
420
382
|
this._options = _lodash.default.extend({}, this._options, options);
|
|
421
383
|
this.isFetching = true;
|
|
422
384
|
return _ampersandModel.default.prototype.fetch.apply(this, arguments).tap(function (response) {
|
|
385
|
+
_this4._isFetched = true;
|
|
423
386
|
_this4.isFetching = false;
|
|
424
|
-
|
|
425
387
|
_this4._updateResponse(response);
|
|
426
388
|
});
|
|
427
389
|
},
|
|
428
390
|
options: function options() {
|
|
429
391
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
430
|
-
|
|
431
392
|
if (options.url) {
|
|
432
393
|
this._url = options.url;
|
|
433
394
|
}
|
|
434
|
-
|
|
435
395
|
return (0, _superagentBluebirdPromise.default)("OPTIONS", this.url()).set(BaseModel.Auth.headers).then(function (res) {
|
|
436
396
|
if (res.body && res.body.actions) {
|
|
437
397
|
return res.body.actions;
|
|
438
398
|
}
|
|
439
|
-
|
|
440
399
|
return null;
|
|
441
400
|
});
|
|
442
401
|
},
|
|
402
|
+
isFetched: function isFetched() {
|
|
403
|
+
return this._isFetched;
|
|
404
|
+
},
|
|
443
405
|
getSafeAttrs: function getSafeAttrs(key) {
|
|
444
406
|
var _this5 = this;
|
|
445
|
-
|
|
446
407
|
if (!_lodash.default.isUndefined(key)) {
|
|
447
408
|
return !_lodash.default.isUndefined(this._expandedValues[key]) ? this._expandedValues[key] : this._values[key];
|
|
448
409
|
}
|
|
449
|
-
|
|
450
410
|
var attrs = {};
|
|
451
|
-
|
|
452
411
|
var keys = _lodash.default.uniq(_lodash.default.concat(_lodash.default.concat(Object.keys(this._unsetChildren), Object.keys(this._unsetCollections)), Object.keys(this._values)));
|
|
453
|
-
|
|
454
412
|
keys.forEach(function (key) {
|
|
455
413
|
if (!_lodash.default.isUndefined(_this5._values[key])) {
|
|
456
414
|
attrs[key] = _this5._values[key];
|
|
@@ -465,7 +423,6 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
465
423
|
// definitions for them (necessary for Ampersand State to treat them as values)
|
|
466
424
|
_convertToValues: function _convertToValues() {
|
|
467
425
|
var _this6 = this;
|
|
468
|
-
|
|
469
426
|
Object.keys(this._children).forEach(function (key) {
|
|
470
427
|
_this6._definition[key] = {
|
|
471
428
|
type: "any"
|
|
@@ -485,14 +442,11 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
485
442
|
// The default version always creates an empty model
|
|
486
443
|
_initChildren: function _initChildren() {
|
|
487
444
|
var child;
|
|
488
|
-
|
|
489
445
|
if (!this._children) {
|
|
490
446
|
return;
|
|
491
447
|
}
|
|
492
|
-
|
|
493
448
|
for (child in this._children) {
|
|
494
449
|
var val = this._data[child];
|
|
495
|
-
|
|
496
450
|
if (val) {
|
|
497
451
|
// Assume here that if it's a string, it's a url.
|
|
498
452
|
if (typeof val === "string") {
|
|
@@ -500,15 +454,14 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
500
454
|
url: val
|
|
501
455
|
};
|
|
502
456
|
}
|
|
503
|
-
}
|
|
504
|
-
// not the constructor. We want to add the non-hydrated url if so.
|
|
505
|
-
|
|
457
|
+
}
|
|
506
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.
|
|
507
461
|
if (typeof this._children[child] === "function") {
|
|
508
462
|
this._safeSet(child, new this._children[child](val, {
|
|
509
463
|
parent: this
|
|
510
464
|
}));
|
|
511
|
-
|
|
512
465
|
this.listenTo(this[child], "all", this._getCachedEventBubblingHandler(child));
|
|
513
466
|
} else {
|
|
514
467
|
this._safeSet(child, val);
|
|
@@ -518,24 +471,21 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
518
471
|
// Override the initialization of collections to pass in data to the constructor.
|
|
519
472
|
_initCollections: function _initCollections() {
|
|
520
473
|
var coll;
|
|
521
|
-
|
|
522
474
|
if (!this._collections) {
|
|
523
475
|
return;
|
|
524
476
|
}
|
|
525
|
-
|
|
526
477
|
for (coll in this._collections) {
|
|
527
478
|
var val = this._data[coll];
|
|
528
|
-
|
|
529
479
|
if (val) {
|
|
530
480
|
if (typeof val === "string") {
|
|
531
481
|
val = {
|
|
532
482
|
url: val
|
|
533
483
|
};
|
|
534
484
|
}
|
|
535
|
-
}
|
|
536
|
-
// not the constructor. We want to add the non-hydrated array if so.
|
|
537
|
-
|
|
485
|
+
}
|
|
538
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.
|
|
539
489
|
if (typeof this._collections[coll] === "function") {
|
|
540
490
|
this._safeSet(coll, new this._collections[coll](val, {
|
|
541
491
|
parent: this
|
|
@@ -547,13 +497,11 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
547
497
|
},
|
|
548
498
|
_initUnsetValues: function _initUnsetValues() {
|
|
549
499
|
var _this7 = this;
|
|
550
|
-
|
|
551
500
|
_lodash.default.each(this._unsetChildren, function (child, key) {
|
|
552
501
|
var tmpValue = _this7._values[key];
|
|
553
502
|
replacePropertyDefinition(_this7, key);
|
|
554
503
|
_this7[key] = tmpValue;
|
|
555
504
|
});
|
|
556
|
-
|
|
557
505
|
_lodash.default.each(this._unsetCollections, function (child, key) {
|
|
558
506
|
var tmpValue = _this7._values[key];
|
|
559
507
|
replacePropertyDefinition(_this7, key);
|
|
@@ -572,22 +520,17 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
572
520
|
if (path === null) {
|
|
573
521
|
return null;
|
|
574
522
|
}
|
|
575
|
-
|
|
576
523
|
var url = path;
|
|
577
|
-
|
|
578
524
|
if (url.slice(-1) !== "/" && url.indexOf("?") === -1) {
|
|
579
525
|
url += "/";
|
|
580
526
|
}
|
|
581
|
-
|
|
582
527
|
if (Object.keys(this.queryData).length) {
|
|
583
528
|
url += "?".concat(_qs.default.stringify(this.queryData, {
|
|
584
529
|
arrayFormat: "repeat"
|
|
585
530
|
}));
|
|
586
531
|
}
|
|
587
|
-
|
|
588
532
|
return url;
|
|
589
533
|
},
|
|
590
|
-
|
|
591
534
|
/*
|
|
592
535
|
* Get url
|
|
593
536
|
* @return {String}
|
|
@@ -596,7 +539,6 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
596
539
|
if (this._url && this.isNew()) {
|
|
597
540
|
return this.getFullURLPath(this._url);
|
|
598
541
|
}
|
|
599
|
-
|
|
600
542
|
return this.getFullURLPath(this.getPlainURL());
|
|
601
543
|
},
|
|
602
544
|
// Returns url without query data
|
|
@@ -604,30 +546,27 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
604
546
|
if (!this.modelName) {
|
|
605
547
|
return null;
|
|
606
548
|
}
|
|
607
|
-
|
|
608
549
|
var resp = _ampersandModel.default.prototype.url.call(this);
|
|
609
|
-
|
|
610
550
|
if (resp.slice(-1) !== "/" && resp.indexOf("?") === -1) {
|
|
611
551
|
resp += "/";
|
|
612
|
-
}
|
|
552
|
+
}
|
|
553
|
+
if (!resp.includes("{") || !resp.includes("}")) {
|
|
554
|
+
return resp;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
// Replace any values in a url with one from the model.
|
|
613
558
|
// So if you have /path/to/{model.id}/
|
|
614
559
|
// It will check the model from "this.model.id" and replace
|
|
615
560
|
// it in the url
|
|
616
|
-
|
|
617
|
-
|
|
618
561
|
var re = /(\{(?:\w+\.?)+\})/g;
|
|
619
562
|
var matches = resp.match(re) || [];
|
|
620
|
-
|
|
621
563
|
var _iterator = _createForOfIteratorHelper(matches),
|
|
622
|
-
|
|
623
|
-
|
|
564
|
+
_step;
|
|
624
565
|
try {
|
|
625
566
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
626
567
|
var match = _step.value;
|
|
627
568
|
var path = match.slice(1, -1);
|
|
628
|
-
|
|
629
569
|
var replacement = _lodash.default.get(this, path);
|
|
630
|
-
|
|
631
570
|
if (replacement) {
|
|
632
571
|
resp = resp.replace(match, replacement);
|
|
633
572
|
} else if (!this.isNew()) {
|
|
@@ -639,22 +578,18 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
639
578
|
} finally {
|
|
640
579
|
_iterator.f();
|
|
641
580
|
}
|
|
642
|
-
|
|
643
581
|
return resp;
|
|
644
582
|
},
|
|
645
583
|
getResourceURL: function getResourceURL() {
|
|
646
584
|
if (this.modelName === null && !Object.keys(_api.Api.resources).length) {
|
|
647
585
|
return null;
|
|
648
586
|
}
|
|
649
|
-
|
|
650
587
|
if (!Object.keys(_api.Api.resources).length) {
|
|
651
588
|
return "/".concat(this.modelName, "/");
|
|
652
589
|
}
|
|
653
|
-
|
|
654
590
|
if (this.modelName === null) {
|
|
655
591
|
return _api.Api.getURL();
|
|
656
592
|
}
|
|
657
|
-
|
|
658
593
|
return _api.Api.getResourceURL(this.modelName);
|
|
659
594
|
},
|
|
660
595
|
sync: function sync() {
|
|
@@ -662,26 +597,22 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
662
597
|
},
|
|
663
598
|
serialize: function serialize() {
|
|
664
599
|
var _this8 = this;
|
|
665
|
-
|
|
600
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
601
|
+
derived: true
|
|
602
|
+
};
|
|
666
603
|
// Return nothing if data passed is falsy. More than likely this is
|
|
667
604
|
// a null value
|
|
668
605
|
if (!this._data) {
|
|
669
606
|
return {};
|
|
670
607
|
}
|
|
671
|
-
|
|
672
608
|
var data = _ampersandModel.default.prototype.serialize.apply(this, arguments);
|
|
673
|
-
|
|
674
609
|
data.url = this.url();
|
|
675
|
-
var derived = this.getAttributes(
|
|
676
|
-
derived: true
|
|
677
|
-
});
|
|
610
|
+
var derived = this.getAttributes(opts);
|
|
678
611
|
derived = Object.keys(derived).reduce(function (object, key) {
|
|
679
612
|
var value = derived[key];
|
|
680
|
-
|
|
681
613
|
if (value instanceof _ampersandRestCollection.default || value instanceof _ampersandModel.default) {
|
|
682
614
|
value = value.toJSON();
|
|
683
615
|
}
|
|
684
|
-
|
|
685
616
|
object[key] = value;
|
|
686
617
|
return object;
|
|
687
618
|
}, {});
|
|
@@ -701,7 +632,6 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
701
632
|
// be hydrated
|
|
702
633
|
_retrieveURL: function _retrieveURL(item) {
|
|
703
634
|
var _this9 = this;
|
|
704
|
-
|
|
705
635
|
if (_lodash.default.isUndefined(item) || item === null) {
|
|
706
636
|
return item;
|
|
707
637
|
} else if (typeof item === "string") {
|
|
@@ -719,13 +649,9 @@ var BaseModel = _ampersandModel.default.extend(
|
|
|
719
649
|
} else if ((0, _typeof2.default)(item) === "object" && item !== null) {
|
|
720
650
|
return typeof item.url === "function" ? item.url() : item.url;
|
|
721
651
|
}
|
|
722
|
-
|
|
723
652
|
return null;
|
|
724
653
|
}
|
|
725
654
|
});
|
|
726
|
-
|
|
727
|
-
exports.BaseModel = BaseModel;
|
|
728
|
-
|
|
729
655
|
function replacePropertyDefinition(object, name) {
|
|
730
656
|
function addCollection(value) {
|
|
731
657
|
var data = typeof value === "string" ? {
|
|
@@ -737,7 +663,6 @@ function replacePropertyDefinition(object, name) {
|
|
|
737
663
|
object._expandedValues[name] = collection;
|
|
738
664
|
return object._expandedValues[name];
|
|
739
665
|
}
|
|
740
|
-
|
|
741
666
|
function addChild(value) {
|
|
742
667
|
var data = typeof value === "string" ? {
|
|
743
668
|
url: value
|
|
@@ -748,19 +673,16 @@ function replacePropertyDefinition(object, name) {
|
|
|
748
673
|
object._expandedValues[name] = child;
|
|
749
674
|
return object._expandedValues[name];
|
|
750
675
|
}
|
|
751
|
-
|
|
752
676
|
function expandCollection(value) {
|
|
753
677
|
object._collections[name] = object._unsetCollections[name];
|
|
754
678
|
delete object._unsetCollections[name];
|
|
755
679
|
return addCollection(value);
|
|
756
680
|
}
|
|
757
|
-
|
|
758
681
|
function expandChild(value) {
|
|
759
682
|
object._children[name] = object._unsetChildren[name];
|
|
760
683
|
delete object._unsetChildren[name];
|
|
761
684
|
return addChild(value);
|
|
762
685
|
}
|
|
763
|
-
|
|
764
686
|
Object.defineProperty(object, name, {
|
|
765
687
|
set: function set(val) {
|
|
766
688
|
if (_lodash.default.includes(Object.keys(object._children), name)) {
|
|
@@ -787,34 +709,28 @@ function replacePropertyDefinition(object, name) {
|
|
|
787
709
|
if (!this._values) {
|
|
788
710
|
throw new Error("Trying to retrieve value ".concat(name, " of model ").concat(object.modelName, " during constructor"));
|
|
789
711
|
}
|
|
790
|
-
|
|
791
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)) {
|
|
792
713
|
return object._expandedValues[name];
|
|
793
714
|
}
|
|
794
|
-
|
|
795
715
|
var value = object._values[name];
|
|
796
|
-
|
|
797
716
|
if (this.isFetching) {
|
|
798
717
|
return value;
|
|
799
718
|
}
|
|
800
|
-
|
|
801
719
|
if ((_lodash.default.isUndefined(value) || value === null) && !(object._unsetChildren[name] && object._unsetChildren[name].canBeEmpty) && !(object._unsetCollections[name] && object._unsetCollections[name].canBeEmpty)) {
|
|
802
720
|
return value;
|
|
803
721
|
}
|
|
804
|
-
|
|
805
722
|
if (_lodash.default.includes(Object.keys(object._unsetCollections), name)) {
|
|
806
723
|
return expandCollection(value);
|
|
807
724
|
} else if (_lodash.default.includes(Object.keys(object._unsetChildren), name)) {
|
|
808
725
|
return expandChild(value);
|
|
809
726
|
}
|
|
810
|
-
|
|
811
727
|
return value;
|
|
812
728
|
},
|
|
813
729
|
configurable: true
|
|
814
730
|
});
|
|
815
|
-
}
|
|
816
|
-
|
|
731
|
+
}
|
|
817
732
|
|
|
733
|
+
// Make matchesURL available as a static method
|
|
818
734
|
BaseModel.matchesURL = function (url) {
|
|
819
735
|
return this.prototype.matchesURL(url);
|
|
820
736
|
};
|