@livepreso/api 6.53.1 → 6.55.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.
Files changed (119) hide show
  1. package/.rush/temp/chunked-rush-logs/api.build.chunks.jsonl +2 -2
  2. package/.rush/temp/operation/build/all.log +2 -2
  3. package/.rush/temp/operation/build/error.log +1 -1
  4. package/.rush/temp/operation/build/log-chunks.jsonl +2 -2
  5. package/.rush/temp/operation/build/state.json +1 -1
  6. package/.rush/temp/shrinkwrap-deps.json +65 -15
  7. package/CHANGELOG.json +46 -0
  8. package/CHANGELOG.md +27 -1
  9. package/cjs/api.js +1 -1
  10. package/cjs/api.js.map +1 -1
  11. package/cjs/collections/auto-adjuncts.js +0 -22
  12. package/cjs/collections/auto-adjuncts.js.map +1 -1
  13. package/cjs/collections/cms-vals.js +25 -0
  14. package/cjs/collections/cms-vals.js.map +1 -1
  15. package/cjs/collections/cms-vals.spec.js +73 -0
  16. package/cjs/collections/cms-vals.spec.js.map +1 -0
  17. package/cjs/collections/deck-version-screenshots.js +0 -23
  18. package/cjs/collections/deck-version-screenshots.js.map +1 -1
  19. package/cjs/collections/scenarios.js +20 -0
  20. package/cjs/collections/scenarios.js.map +1 -0
  21. package/cjs/collections.js +11 -22
  22. package/cjs/collections.js.map +1 -1
  23. package/cjs/fixtures.js +18 -1
  24. package/cjs/fixtures.js.map +1 -1
  25. package/cjs/middlewares/base.js +1 -2
  26. package/cjs/middlewares/base.js.map +1 -1
  27. package/cjs/models/appointment.js +29 -8
  28. package/cjs/models/appointment.js.map +1 -1
  29. package/cjs/models/auto-adjunct.js +3 -2
  30. package/cjs/models/auto-adjunct.js.map +1 -1
  31. package/cjs/models/base.js +3 -1
  32. package/cjs/models/base.js.map +1 -1
  33. package/cjs/models/cms-val.js +3 -3
  34. package/cjs/models/cms-val.js.map +1 -1
  35. package/cjs/models/customer.js +2 -1
  36. package/cjs/models/customer.js.map +1 -1
  37. package/cjs/models/deck-layout.js +52 -0
  38. package/cjs/models/deck-layout.js.map +1 -0
  39. package/cjs/models/deck-version-screenshot.js +2 -2
  40. package/cjs/models/deck-version-screenshot.js.map +1 -1
  41. package/cjs/models/deck-version.js +43 -20
  42. package/cjs/models/deck-version.js.map +1 -1
  43. package/cjs/models/image.js +0 -2
  44. package/cjs/models/image.js.map +1 -1
  45. package/cjs/models/pack-diff.js +18 -9
  46. package/cjs/models/pack-diff.js.map +1 -1
  47. package/cjs/models/preset.js +8 -6
  48. package/cjs/models/preset.js.map +1 -1
  49. package/cjs/models/scenario.js +41 -0
  50. package/cjs/models/scenario.js.map +1 -0
  51. package/cjs/models/user.js +8 -3
  52. package/cjs/models/user.js.map +1 -1
  53. package/cjs/models.js +22 -0
  54. package/cjs/models.js.map +1 -1
  55. package/cjs/presentation/appointment-presentation.js +5 -3
  56. package/cjs/presentation/appointment-presentation.js.map +1 -1
  57. package/cjs/presentation/base-presentation-model.js +26 -23
  58. package/cjs/presentation/base-presentation-model.js.map +1 -1
  59. package/cjs/presentation/base-presentation-model.spec.js +21 -21
  60. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  61. package/cjs/presentation/presentation-deck.js +6 -0
  62. package/cjs/presentation/presentation-deck.js.map +1 -1
  63. package/cjs/presentation/presentation-section.js +28 -3
  64. package/cjs/presentation/presentation-section.js.map +1 -1
  65. package/cjs/presentation/presentation-section.spec.js +16 -3
  66. package/cjs/presentation/presentation-section.spec.js.map +1 -1
  67. package/cjs/presentation/presentation-slide.js +25 -1
  68. package/cjs/presentation/presentation-slide.js.map +1 -1
  69. package/cjs/presentation/presentation-slide.spec.js +8 -1
  70. package/cjs/presentation/presentation-slide.spec.js.map +1 -1
  71. package/cjs/sync.js +17 -9
  72. package/cjs/sync.js.map +1 -1
  73. package/cjs/utils.js +12 -3
  74. package/cjs/utils.js.map +1 -1
  75. package/cjs/utils.spec.js +22 -0
  76. package/cjs/utils.spec.js.map +1 -1
  77. package/package.json +1 -1
  78. package/rush-logs/api.build.error.log +1 -1
  79. package/rush-logs/api.build.log +2 -2
  80. package/src/api.js +1 -1
  81. package/src/collections/auto-adjuncts.js +0 -22
  82. package/src/collections/cms-vals.js +28 -0
  83. package/src/collections/cms-vals.spec.js +66 -0
  84. package/src/collections/deck-version-screenshots.js +0 -22
  85. package/src/collections/scenarios.js +18 -0
  86. package/src/collections.js +1 -2
  87. package/src/fixtures.js +17 -1
  88. package/src/middlewares/base.js +1 -2
  89. package/src/models/appointment.js +32 -6
  90. package/src/models/auto-adjunct.js +3 -2
  91. package/src/models/base.js +3 -2
  92. package/src/models/cms-val.js +3 -3
  93. package/src/models/customer.js +1 -0
  94. package/src/models/deck-layout.js +54 -0
  95. package/src/models/deck-version-screenshot.js +2 -2
  96. package/src/models/deck-version.js +12 -14
  97. package/src/models/image.js +0 -3
  98. package/src/models/pack-diff.js +14 -9
  99. package/src/models/preset.js +8 -6
  100. package/src/models/scenario.js +39 -0
  101. package/src/models/user.js +8 -1
  102. package/src/models.js +2 -0
  103. package/src/presentation/appointment-presentation.js +7 -4
  104. package/src/presentation/base-presentation-model.js +29 -23
  105. package/src/presentation/base-presentation-model.spec.js +22 -22
  106. package/src/presentation/presentation-deck.js +6 -0
  107. package/src/presentation/presentation-section.js +26 -1
  108. package/src/presentation/presentation-section.spec.js +14 -1
  109. package/src/presentation/presentation-slide.js +24 -0
  110. package/src/presentation/presentation-slide.spec.js +7 -0
  111. package/src/sync.js +16 -12
  112. package/src/utils.js +13 -3
  113. package/src/utils.spec.js +27 -0
  114. package/cjs/collections/created-assets.js +0 -26
  115. package/cjs/collections/created-assets.js.map +0 -1
  116. package/cjs/collections/deleted-assets.js +0 -26
  117. package/cjs/collections/deleted-assets.js.map +0 -1
  118. package/src/collections/created-assets.js +0 -26
  119. package/src/collections/deleted-assets.js +0 -26
@@ -6,13 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.AppointmentModel = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
  require("./user.js");
12
12
  require("./snapshot.js");
13
13
  require("./feed-data.js");
14
14
  require("./preset.js");
15
15
  require("./team.js");
16
+ require("./scenario.js");
16
17
  require("./hosted-preso.js");
17
18
  require("./appointment-stats.js");
18
19
  require("./appointment-tags.js");
@@ -126,6 +127,8 @@ var AppointmentModel = exports.AppointmentModel = _base.BaseModel.extend(/** @le
126
127
  * @property {models.SnapshotModel} latest_snapshot
127
128
  * @property {models.UserModel} user
128
129
  * @property {models.AppointmentStatsModel} appointmentStats
130
+ * @property {models.ScenarioModel} scenario
131
+ * @property {models.TeamModel} team_branding
129
132
  */
130
133
  children: {
131
134
  preset: "PresetModel",
@@ -134,7 +137,8 @@ var AppointmentModel = exports.AppointmentModel = _base.BaseModel.extend(/** @le
134
137
  user: "UserModel",
135
138
  latest_tele: "HostedPresoModel",
136
139
  stats: "AppointmentStatsModel",
137
- team: "TeamModel"
140
+ scenario: "ScenarioModel",
141
+ team_branding: "TeamModel"
138
142
  },
139
143
  /**
140
144
  * @property {collections.AdjunctSlideCollection} adjunctSlides
@@ -264,8 +268,14 @@ var AppointmentModel = exports.AppointmentModel = _base.BaseModel.extend(/** @le
264
268
  }
265
269
  return _bluebird.default.resolve();
266
270
  }).then(function () {
267
- var _this$deckversion_set, _this$appointmentssec, _this$appointmentssli, _this$appointmentedit, _this$adjunctSlides, _this$adjunctSections, _this$adjunctSubSlide, _this$contact_set, _this$tags, _this$user, _this$user$fetch, _this$deckNotes, _this$opportunity_set, _this$opportunity_set2, _this$opportunity_set3;
268
- var fetches = [(_this$deckversion_set = _this.deckversion_set) === null || _this$deckversion_set === void 0 ? void 0 : _this$deckversion_set.fetchModels(fetchOptions), (_this$appointmentssec = _this.appointmentssection_set) === null || _this$appointmentssec === void 0 ? void 0 : _this$appointmentssec.fetch(fetchOptions), (_this$appointmentssli = _this.appointmentsslide_set) === null || _this$appointmentssli === void 0 ? void 0 : _this$appointmentssli.fetch(fetchOptions), (_this$appointmentedit = _this.appointmenteditor_set) === null || _this$appointmentedit === void 0 ? void 0 : _this$appointmentedit.fetch(fetchOptions), (_this$adjunctSlides = _this.adjunctSlides) === null || _this$adjunctSlides === void 0 ? void 0 : _this$adjunctSlides.fetch(fetchOptions), (_this$adjunctSections = _this.adjunctSections) === null || _this$adjunctSections === void 0 ? void 0 : _this$adjunctSections.fetch(fetchOptions), (_this$adjunctSubSlide = _this.adjunctSubSlides) === null || _this$adjunctSubSlide === void 0 ? void 0 : _this$adjunctSubSlide.fetch(fetchOptions), (_this$contact_set = _this.contact_set) === null || _this$contact_set === void 0 ? void 0 : _this$contact_set.fetchSet(fetchOptions), (_this$tags = _this.tags) === null || _this$tags === void 0 ? void 0 : _this$tags.fetch(fetchOptions), (_this$user = _this.user) === null || _this$user === void 0 ? void 0 : (_this$user$fetch = _this$user.fetch(fetchOptions)) === null || _this$user$fetch === void 0 ? void 0 : _this$user$fetch.catch(function (e) {
271
+ var _this$deckversion_set, _this$appointmentssec, _this$appointmentssli, _this$appointmentedit, _this$adjunctSlides, _this$adjunctSections, _this$adjunctSubSlide, _this$contact_set, _this$tags, _this$team_branding, _this$scenario, _this$scenario$fetch, _this$user, _this$user$fetch, _this$deckNotes, _this$opportunity_set, _this$opportunity_set2, _this$opportunity_set3;
272
+ var fetches = [(_this$deckversion_set = _this.deckversion_set) === null || _this$deckversion_set === void 0 ? void 0 : _this$deckversion_set.fetchModels(fetchOptions), (_this$appointmentssec = _this.appointmentssection_set) === null || _this$appointmentssec === void 0 ? void 0 : _this$appointmentssec.fetch(fetchOptions), (_this$appointmentssli = _this.appointmentsslide_set) === null || _this$appointmentssli === void 0 ? void 0 : _this$appointmentssli.fetch(fetchOptions), (_this$appointmentedit = _this.appointmenteditor_set) === null || _this$appointmentedit === void 0 ? void 0 : _this$appointmentedit.fetch(fetchOptions), (_this$adjunctSlides = _this.adjunctSlides) === null || _this$adjunctSlides === void 0 ? void 0 : _this$adjunctSlides.fetch(fetchOptions), (_this$adjunctSections = _this.adjunctSections) === null || _this$adjunctSections === void 0 ? void 0 : _this$adjunctSections.fetch(fetchOptions), (_this$adjunctSubSlide = _this.adjunctSubSlides) === null || _this$adjunctSubSlide === void 0 ? void 0 : _this$adjunctSubSlide.fetch(fetchOptions), (_this$contact_set = _this.contact_set) === null || _this$contact_set === void 0 ? void 0 : _this$contact_set.fetchSet(fetchOptions), (_this$tags = _this.tags) === null || _this$tags === void 0 ? void 0 : _this$tags.fetch(fetchOptions), (_this$team_branding = _this.team_branding) === null || _this$team_branding === void 0 ? void 0 : _this$team_branding.fetch(fetchOptions), (_this$scenario = _this.scenario) === null || _this$scenario === void 0 ? void 0 : (_this$scenario$fetch = _this$scenario.fetch(fetchOptions)) === null || _this$scenario$fetch === void 0 ? void 0 : _this$scenario$fetch.catch(function (e) {
273
+ if (e.status === 404) {
274
+ _this.scenario = null;
275
+ return;
276
+ }
277
+ throw e;
278
+ }), (_this$user = _this.user) === null || _this$user === void 0 ? void 0 : (_this$user$fetch = _this$user.fetch(fetchOptions)) === null || _this$user$fetch === void 0 ? void 0 : _this$user$fetch.catch(function (e) {
269
279
  if (e.status && e.status === 404) {
270
280
  // It's possible for a user to be deactivated, which means they'll
271
281
  // return with a 404. We want to be able to still load the preso,
@@ -293,9 +303,19 @@ var AppointmentModel = exports.AppointmentModel = _base.BaseModel.extend(/** @le
293
303
  }
294
304
  return _bluebird.default.all(fetches);
295
305
  }).then(function () {
296
- return _bluebird.default.all(_this.deckversion_set.map(function (model) {
297
- return _bluebird.default.all([model.screenshots.fetch(fetchOptions), model.template_set.fetchSet(fetchOptions), model.manifest_json.fetch(fetchOptions), model.deck.fetch(fetchOptions)]);
298
- }));
306
+ var _this$scenario$id, _this$scenario2, _this$scenario3, _this$scenario3$owner, _this$scenario3$owner2;
307
+ var scenarioID = (_this$scenario$id = (_this$scenario2 = _this.scenario) === null || _this$scenario2 === void 0 ? void 0 : _this$scenario2.id) !== null && _this$scenario$id !== void 0 ? _this$scenario$id : null;
308
+ var scenarioFilter = [null];
309
+ if (scenarioID) {
310
+ scenarioFilter.push(scenarioID);
311
+ }
312
+ return _bluebird.default.all([(_this$scenario3 = _this.scenario) === null || _this$scenario3 === void 0 ? void 0 : (_this$scenario3$owner = _this$scenario3.owner_team) === null || _this$scenario3$owner === void 0 ? void 0 : (_this$scenario3$owner2 = _this$scenario3$owner.fetch) === null || _this$scenario3$owner2 === void 0 ? void 0 : _this$scenario3$owner2.call(_this$scenario3$owner, fetchOptions)].concat((0, _toConsumableArray2.default)(_this.deckversion_set.map(function (model) {
313
+ return _bluebird.default.all([model.screenshots.fetch(_lodash.default.merge(fetchOptions, {
314
+ data: {
315
+ scenario: scenarioFilter
316
+ }
317
+ })), model.template_set.fetchSet(fetchOptions), model.manifest_json.fetch(fetchOptions), model.deck.fetch(fetchOptions)]);
318
+ }))));
299
319
  }).then(function () {
300
320
  var deckversionTemplates = _this.deckversion_set.first().template_set.models;
301
321
  var allTemplates = _lodash.default.uniqBy(_this.includedTemplates.models.concat(deckversionTemplates), "id");
@@ -364,7 +384,8 @@ var AppointmentModel = exports.AppointmentModel = _base.BaseModel.extend(/** @le
364
384
  no_edit_after: appointment.no_edit_after,
365
385
  no_share_after: appointment.no_share_after,
366
386
  no_delete_after: appointment.no_delete_after,
367
- team: this._retrieveURL(appointment.team),
387
+ scenario: this._retrieveURL(appointment.scenario),
388
+ team_branding: this._retrieveURL(appointment.team_branding),
368
389
  editors_can_change_editors: appointment.editors_can_change_editors,
369
390
  share_visibility_mode: appointment.share_visibility_mode
370
391
  };
@@ -1 +1 @@
1
- {"version":3,"file":"appointment.js","names":["require","_adjunctSections","_adjunctSlides","_adjunctSubSlides","_appointmentTemplates","_base","_contactPhones","_deckNotes","_bluebird","_interopRequireDefault","_lodash","_log","_moment","_stateRegister","AppointmentModel","exports","BaseModel","extend","modelName","props","name","attendees","begin","content_modified_date","created_by_support","created_date","creation_status","creation_status_history","editors_can_change_editors","end","locks","modified_date","notes","sort_date","display_contacts","display_title","viewtype","support_mode","is_muted","is_signing_enabled","no_edit_after","no_share_after","no_delete_after","no_snapshot_create_after","share_visibility_mode","preso_id","collections","contact_set","deckversion_set","opportunity_set","appointmenteditor_set","appointmentssection_set","appointmentsslide_set","dispatch_set","current_editor_set","tags","appointmentdeckversiontags_set","appointmentsectiontags_set","appointmentslidetags_set","appointmentadjuncttags_set","children","preset","latest_snapshot","latest_feed_data","user","latest_tele","stats","team","derived","adjunctSlides","deps","fn","AdjunctSlideCollection","queryData","appointment","id","adjunctSections","AdjunctSectionCollection","adjunctSubSlides","AdjunctSubSlideCollection","includedTemplates","AppointmentTemplateCollection","deckNotes","appointmentUrl","url","DeckNoteCollection","concat","cannotShare","noShareAfter","moment","diff","cannotEdit","noEditAfter","cannotDelete","noDeleteAfter","cannotCreateSnapshot","noCreateAfter","readOnly","shareOnly","contactPhones","ContactPhoneCollection","getHooksPath","length","Error","first","fetchAll","_this","fetchSelf","arguments","undefined","fetchOptions","Promise","resolve","then","_url","fetch","_this$deckversion_set","_this$appointmentssec","_this$appointmentssli","_this$appointmentedit","_this$adjunctSlides","_this$adjunctSections","_this$adjunctSubSlide","_this$contact_set","_this$tags","_this$user","_this$user$fetch","_this$deckNotes","_this$opportunity_set","_this$opportunity_set2","_this$opportunity_set3","fetches","fetchModels","fetchSet","catch","e","status","all","map","opp","customer","log","error","toJSON","push","model","screenshots","template_set","manifest_json","deck","deckversionTemplates","models","allTemplates","_","uniqBy","getTemplateOrFetch","_x","_getTemplateOrFetch","apply","_asyncToGenerator2","default","_regenerator","mark","_callee","adj","existingTemplate","wrap","_callee$","_context","prev","next","find","t","template","abrupt","stop","filter","_toConsumableArray2","return","toServer","data","_retrieveURL","register"],"sources":["../../src/models/appointment.js"],"sourcesContent":["import \"./user.js\";\nimport \"./snapshot.js\";\nimport \"./feed-data.js\";\nimport \"./preset.js\";\nimport \"./team.js\";\nimport \"./hosted-preso.js\";\nimport \"./appointment-stats.js\";\nimport \"./appointment-tags.js\";\nimport \"../collections/contacts.js\";\nimport \"../collections/appointment-editors.js\";\nimport \"../collections/deck-versions.js\";\nimport \"../collections/opportunities.js\";\nimport \"../collections/section-selections.js\";\nimport \"../collections/slide-selections.js\";\nimport \"../collections/dispatches.js\";\nimport \"../collections/users.js\";\nimport \"../collections/appointment-tags\";\nimport \"../collections/appointment-deckversion-tags\";\nimport \"../collections/appointment-section-tags\";\nimport \"../collections/appointment-slide-tags\";\nimport \"../collections/appointment-adjunct-tags\";\n\nimport { AdjunctSectionCollection } from \"../collections/adjunct-sections.js\";\nimport { AdjunctSlideCollection } from \"../collections/adjunct-slides.js\";\nimport { AdjunctSubSlideCollection } from \"../collections/adjunct-sub-slides.js\";\nimport { AppointmentTemplateCollection } from \"../collections/appointment-templates.js\";\nimport { BaseModel } from \"./base.js\";\nimport { ContactPhoneCollection } from \"../collections/contact-phones.js\";\nimport { DeckNoteCollection } from \"../collections/deck-notes.js\";\nimport Promise from \"bluebird\";\nimport _ from \"lodash\";\nimport log from \"../log.js\";\nimport moment from \"moment\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.AppointmentModel\n * @extends models.BaseModel\n */\nexport const AppointmentModel = BaseModel.extend(\n\t/** @lends models.AppointmentModel# */ {\n\t\tmodelName: \"appointments\",\n\n\t\t/**\n\t\t * @property {string} name\n\t\t * @property {string} attendees\n\t\t * @property {date} begin\n\t\t * @property {boolean} created_by_support\n\t\t * @property {date} created_date\n\t\t * @property {string} creation_state\n\t\t * @property {date} end\n\t\t * @property {date} modified_date\n\t\t * @property {string} notes\n\t\t * @property {date} sort_date\n\t\t * @property {string} display_contacts\n\t\t * @property {string} display_title\n\t\t * @property {string} viewtype\n\t\t * @property {boolean} support_mode\n\t\t * @property {boolean} is_muted\n\t\t * @property {boolean} is_signing_enabled\n\t\t * @property {date} no_edit_after\n\t\t * @property {date} no_share_after\n\t\t * @property {date} no_delete_after\n\t\t * @property {string} share_visibility_mode\n\t\t */\n\t\tprops: {\n\t\t\tname: \"stringSanitized\",\n\t\t\tattendees: \"string\",\n\t\t\tbegin: \"date\",\n\t\t\tcontent_modified_date: \"date\",\n\t\t\tcreated_by_support: \"boolean\",\n\t\t\tcreated_date: \"date\",\n\t\t\tcreation_status: \"string\",\n\t\t\tcreation_status_history: \"array\",\n\t\t\teditors_can_change_editors: \"boolean\",\n\t\t\tend: \"date\",\n\t\t\tlocks: \"array\",\n\t\t\tmodified_date: \"date\",\n\t\t\tnotes: \"stringSanitized\",\n\t\t\tsort_date: \"date\",\n\t\t\tdisplay_contacts: \"string\",\n\t\t\tdisplay_title: \"stringSanitized\",\n\t\t\tviewtype: \"string\",\n\t\t\tsupport_mode: \"boolean\",\n\t\t\tis_muted: \"boolean\",\n\t\t\tis_signing_enabled: \"boolean\",\n\t\t\tno_edit_after: \"date\",\n\t\t\tno_share_after: \"date\",\n\t\t\tno_delete_after: \"date\",\n\t\t\tno_snapshot_create_after: \"date\",\n\t\t\tshare_visibility_mode: \"string\",\n\t\t\t// Unique cross-instance preso UUID\n\t\t\tpreso_id: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.ContactCollection} contact_set\n\t\t * @property {collections.DeckVersionCollection} deckversion_set\n\t\t * @property {collections.OpportunityCollection} opportunity_set\n\t\t * @property {collections.SectionSelectionCollection} appointmentssection_set\n\t\t * @property {collections.SlideSelectionCollection} appointmentsslide_set\n\t\t */\n\t\tcollections: {\n\t\t\tcontact_set: \"ContactCollection\",\n\t\t\tdeckversion_set: \"DeckVersionCollection\",\n\t\t\topportunity_set: \"OpportunityCollection\",\n\t\t\tappointmenteditor_set: \"AppointmentEditorCollection\",\n\t\t\tappointmentssection_set: \"SectionSelectionCollection\",\n\t\t\tappointmentsslide_set: \"SlideSelectionCollection\",\n\t\t\tdispatch_set: \"DispatchCollection\",\n\t\t\tcurrent_editor_set: \"UserCollection\",\n\t\t\ttags: \"AppointmentTagsCollection\",\n\t\t\tappointmentdeckversiontags_set: \"AppointmentDeckVersionTagsCollection\",\n\t\t\tappointmentsectiontags_set: \"AppointmentSectionTagsCollection\",\n\t\t\tappointmentslidetags_set: \"AppointmentSlideTagsCollection\",\n\t\t\tappointmentadjuncttags_set: \"AppointmentAdjunctTagsCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.PresetModel} preset\n\t\t * @property {models.SnapshotModel} latest_snapshot\n\t\t * @property {models.UserModel} user\n\t\t * @property {models.AppointmentStatsModel} appointmentStats\n\t\t */\n\t\tchildren: {\n\t\t\tpreset: \"PresetModel\",\n\t\t\tlatest_snapshot: \"SnapshotModel\",\n\t\t\tlatest_feed_data: \"FeedDataModel\",\n\t\t\tuser: \"UserModel\",\n\t\t\tlatest_tele: \"HostedPresoModel\",\n\t\t\tstats: \"AppointmentStatsModel\",\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.AdjunctSlideCollection} adjunctSlides\n\t\t * @property {collections.AdjunctSectionCollection} adjunctSections\n\t\t * @property {collections.AdjunctSubSlideCollection} adjunctSubSlides\n\t\t * @property {boolean} readOnly\n\t\t * @property {boolean} shareOnly\n\t\t */\n\t\tderived: {\n\t\t\tadjunctSlides: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\tconst adjunctSlides = new AdjunctSlideCollection();\n\t\t\t\t\tadjunctSlides.queryData.appointment = this.id;\n\t\t\t\t\treturn adjunctSlides;\n\t\t\t\t},\n\t\t\t},\n\t\t\tadjunctSections: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\tconst adjunctSections = new AdjunctSectionCollection();\n\t\t\t\t\tadjunctSections.queryData.appointment = this.id;\n\t\t\t\t\treturn adjunctSections;\n\t\t\t\t},\n\t\t\t},\n\t\t\tadjunctSubSlides: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\tconst adjunctSubSlides = new AdjunctSubSlideCollection();\n\t\t\t\t\tadjunctSubSlides.queryData.appointment = this.id;\n\t\t\t\t\treturn adjunctSubSlides;\n\t\t\t\t},\n\t\t\t},\n\t\t\tincludedTemplates: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\treturn new AppointmentTemplateCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tappointment: this,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t\tdeckNotes: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\tconst appointmentUrl = this.url();\n\t\t\t\t\treturn new DeckNoteCollection({ url: `${appointmentUrl}notes/` });\n\t\t\t\t},\n\t\t\t},\n\t\t\tcannotShare: {\n\t\t\t\tdeps: [\"no_share_after\"],\n\t\t\t\tfn() {\n\t\t\t\t\tif (!this.no_share_after) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst noShareAfter = moment(this.no_share_after);\n\t\t\t\t\treturn moment().diff(noShareAfter) > 0;\n\t\t\t\t},\n\t\t\t},\n\t\t\tcannotEdit: {\n\t\t\t\tdeps: [\"no_edit_after\"],\n\t\t\t\tfn() {\n\t\t\t\t\tif (!this.no_edit_after) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst noEditAfter = moment(this.no_edit_after);\n\t\t\t\t\treturn moment().diff(noEditAfter) > 0;\n\t\t\t\t},\n\t\t\t},\n\t\t\tcannotDelete: {\n\t\t\t\tdeps: [\"no_delete_after\"],\n\t\t\t\tfn() {\n\t\t\t\t\tif (!this.no_delete_after) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst noDeleteAfter = moment(this.no_delete_after);\n\t\t\t\t\treturn moment().diff(noDeleteAfter) > 0;\n\t\t\t\t},\n\t\t\t},\n\t\t\tcannotCreateSnapshot: {\n\t\t\t\tdeps: [\"no_snapshot_create_after\"],\n\t\t\t\tfn() {\n\t\t\t\t\tif (!this.no_snapshot_create_after) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst noCreateAfter = moment(this.no_snapshot_create_after);\n\t\t\t\t\treturn moment().diff(noCreateAfter) > 0;\n\t\t\t\t},\n\t\t\t},\n\t\t\treadOnly: {\n\t\t\t\tdeps: [\"cannotShare\"],\n\t\t\t\tfn() {\n\t\t\t\t\treturn this.cannotShare;\n\t\t\t\t},\n\t\t\t},\n\t\t\tshareOnly: {\n\t\t\t\tdeps: [\"cannotEdit\", \"cannotDelete\"],\n\t\t\t\tfn() {\n\t\t\t\t\treturn this.cannotEdit || this.cannotDelete;\n\t\t\t\t},\n\t\t\t},\n\t\t\t// This property should be set by the calling code of the appointment and be the set of\n\t\t\t// contact phones for all contacts on this preso. It must be fetchd and set after the contact_set\n\t\t\t// is fetched. It's up to the calling code to decide if this property is required and\n\t\t\t// therefore the extra fetch\n\t\t\tcontactPhones: {\n\t\t\t\tdeps: [\"id\", \"contact_set\"],\n\t\t\t\tfn() {\n\t\t\t\t\treturn new ContactPhoneCollection();\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tgetHooksPath() {\n\t\t\tif (!this.deckversion_set.length) {\n\t\t\t\tthrow new Error(\"Requires a deckversion to get hooks.\");\n\t\t\t}\n\t\t\treturn this.deckversion_set.first().getHooksPath();\n\t\t},\n\n\t\tfetchAll(fetchSelf = false, fetchOptions = {}) {\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (!this._url || fetchSelf) {\n\t\t\t\t\t\treturn this.fetch(fetchOptions);\n\t\t\t\t\t}\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst fetches = [\n\t\t\t\t\t\tthis.deckversion_set?.fetchModels(fetchOptions),\n\t\t\t\t\t\tthis.appointmentssection_set?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.appointmentsslide_set?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.appointmenteditor_set?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.adjunctSlides?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.adjunctSections?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.adjunctSubSlides?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.contact_set?.fetchSet(fetchOptions),\n\t\t\t\t\t\tthis.tags?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.user?.fetch(fetchOptions)?.catch((e) => {\n\t\t\t\t\t\t\tif (e.status && e.status === 404) {\n\t\t\t\t\t\t\t\t// It's possible for a user to be deactivated, which means they'll\n\t\t\t\t\t\t\t\t// return with a 404. We want to be able to still load the preso,\n\t\t\t\t\t\t\t\t// but it will be readonly.\n\t\t\t\t\t\t\t\tthis.user = null;\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tthis.deckNotes?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.includedTemplates.fetch(fetchOptions),\n\t\t\t\t\t\tthis.opportunity_set\n\t\t\t\t\t\t\t?.fetchSet(fetchOptions)\n\t\t\t\t\t\t\t?.then(() => {\n\t\t\t\t\t\t\t\treturn Promise.all(\n\t\t\t\t\t\t\t\t\tthis.opportunity_set.map((opp) =>\n\t\t\t\t\t\t\t\t\t\topp.customer.fetch(fetchOptions),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t?.catch(() => {\n\t\t\t\t\t\t\t\tlog.error(\n\t\t\t\t\t\t\t\t\t`Failed to fetch Opportunity set`,\n\t\t\t\t\t\t\t\t\tthis.opportunity_set.toJSON(),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t];\n\n\t\t\t\t\tif (this.latest_snapshot) {\n\t\t\t\t\t\tfetches.push(this.latest_snapshot.fetch(fetchOptions));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.latest_feed_data) {\n\t\t\t\t\t\tfetches.push(this.latest_feed_data.fetch(fetchOptions));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.latest_tele) {\n\t\t\t\t\t\tfetches.push(this.latest_tele.fetch(fetchOptions));\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Promise.all(fetches);\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\treturn Promise.all(\n\t\t\t\t\t\tthis.deckversion_set.map((model) => {\n\t\t\t\t\t\t\treturn Promise.all([\n\t\t\t\t\t\t\t\tmodel.screenshots.fetch(fetchOptions),\n\t\t\t\t\t\t\t\tmodel.template_set.fetchSet(fetchOptions),\n\t\t\t\t\t\t\t\tmodel.manifest_json.fetch(fetchOptions),\n\t\t\t\t\t\t\t\tmodel.deck.fetch(fetchOptions),\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst deckversionTemplates =\n\t\t\t\t\t\tthis.deckversion_set.first().template_set.models;\n\n\t\t\t\t\tconst allTemplates = _.uniqBy(\n\t\t\t\t\t\tthis.includedTemplates.models.concat(deckversionTemplates),\n\t\t\t\t\t\t\"id\",\n\t\t\t\t\t);\n\n\t\t\t\t\tasync function getTemplateOrFetch(adj) {\n\t\t\t\t\t\tconst existingTemplate = allTemplates.find(\n\t\t\t\t\t\t\t(t) => t.id === adj.template.id,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (existingTemplate) {\n\t\t\t\t\t\t\tadj.template = existingTemplate;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tawait adj.template.fetch(fetchOptions);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn adj;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst adjunctSlides = this.adjunctSlides\n\t\t\t\t\t\t.filter((adj) => adj.template)\n\t\t\t\t\t\t.map((adj) => getTemplateOrFetch(adj));\n\n\t\t\t\t\tconst adjunctSections = this.adjunctSections\n\t\t\t\t\t\t.filter((adj) => adj.template)\n\t\t\t\t\t\t.map((adj) => getTemplateOrFetch(adj));\n\n\t\t\t\t\treturn Promise.all([...adjunctSlides, ...adjunctSections]);\n\t\t\t\t})\n\t\t\t\t.return(this);\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst appointment = this.toJSON();\n\n\t\t\tconst data = {\n\t\t\t\tname: appointment.name,\n\t\t\t\tbegin: appointment.begin,\n\t\t\t\tend: appointment.end,\n\t\t\t\tcreation_status: appointment.creation_status,\n\t\t\t\tcontact_set: this._retrieveURL(appointment.contact_set),\n\t\t\t\tdeckversion_set: this._retrieveURL(appointment.deckversion_set),\n\t\t\t\tnotes: appointment.notes,\n\t\t\t\topportunity_set: this._retrieveURL(appointment.opportunity_set),\n\t\t\t\tuser: this._retrieveURL(appointment.user),\n\t\t\t\tviewtype: appointment.viewtype,\n\t\t\t\tpreset: this._retrieveURL(appointment.preset),\n\t\t\t\tlocks: appointment.locks,\n\t\t\t\tis_muted: appointment.is_muted,\n\t\t\t\tis_signing_enabled: appointment.is_signing_enabled,\n\t\t\t\tno_edit_after: appointment.no_edit_after,\n\t\t\t\tno_share_after: appointment.no_share_after,\n\t\t\t\tno_delete_after: appointment.no_delete_after,\n\t\t\t\tteam: this._retrieveURL(appointment.team),\n\t\t\t\teditors_can_change_editors: appointment.editors_can_change_editors,\n\t\t\t\tshare_visibility_mode: appointment.share_visibility_mode,\n\t\t\t};\n\n\t\t\tif (this.id) {\n\t\t\t\tdata.id = this.id;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nregister(\"AppointmentModel\", AppointmentModel);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"appointment.js","names":["require","_adjunctSections","_adjunctSlides","_adjunctSubSlides","_appointmentTemplates","_base","_contactPhones","_deckNotes","_bluebird","_interopRequireDefault","_lodash","_log","_moment","_stateRegister","AppointmentModel","exports","BaseModel","extend","modelName","props","name","attendees","begin","content_modified_date","created_by_support","created_date","creation_status","creation_status_history","editors_can_change_editors","end","locks","modified_date","notes","sort_date","display_contacts","display_title","viewtype","support_mode","is_muted","is_signing_enabled","no_edit_after","no_share_after","no_delete_after","no_snapshot_create_after","share_visibility_mode","preso_id","collections","contact_set","deckversion_set","opportunity_set","appointmenteditor_set","appointmentssection_set","appointmentsslide_set","dispatch_set","current_editor_set","tags","appointmentdeckversiontags_set","appointmentsectiontags_set","appointmentslidetags_set","appointmentadjuncttags_set","children","preset","latest_snapshot","latest_feed_data","user","latest_tele","stats","scenario","team_branding","derived","adjunctSlides","deps","fn","AdjunctSlideCollection","queryData","appointment","id","adjunctSections","AdjunctSectionCollection","adjunctSubSlides","AdjunctSubSlideCollection","includedTemplates","AppointmentTemplateCollection","deckNotes","appointmentUrl","url","DeckNoteCollection","concat","cannotShare","noShareAfter","moment","diff","cannotEdit","noEditAfter","cannotDelete","noDeleteAfter","cannotCreateSnapshot","noCreateAfter","readOnly","shareOnly","contactPhones","ContactPhoneCollection","getHooksPath","length","Error","first","fetchAll","_this","fetchSelf","arguments","undefined","fetchOptions","Promise","resolve","then","_url","fetch","_this$deckversion_set","_this$appointmentssec","_this$appointmentssli","_this$appointmentedit","_this$adjunctSlides","_this$adjunctSections","_this$adjunctSubSlide","_this$contact_set","_this$tags","_this$team_branding","_this$scenario","_this$scenario$fetch","_this$user","_this$user$fetch","_this$deckNotes","_this$opportunity_set","_this$opportunity_set2","_this$opportunity_set3","fetches","fetchModels","fetchSet","catch","e","status","all","map","opp","customer","log","error","toJSON","push","_this$scenario$id","_this$scenario2","_this$scenario3","_this$scenario3$owner","_this$scenario3$owner2","scenarioID","scenarioFilter","owner_team","call","_toConsumableArray2","default","model","screenshots","_","merge","data","template_set","manifest_json","deck","deckversionTemplates","models","allTemplates","uniqBy","getTemplateOrFetch","_x","_getTemplateOrFetch","apply","_asyncToGenerator2","_regenerator","mark","_callee","adj","existingTemplate","wrap","_callee$","_context","prev","next","find","t","template","abrupt","stop","filter","return","toServer","_retrieveURL","register"],"sources":["../../src/models/appointment.js"],"sourcesContent":["import \"./user.js\";\nimport \"./snapshot.js\";\nimport \"./feed-data.js\";\nimport \"./preset.js\";\nimport \"./team.js\";\nimport \"./scenario.js\";\nimport \"./hosted-preso.js\";\nimport \"./appointment-stats.js\";\nimport \"./appointment-tags.js\";\nimport \"../collections/contacts.js\";\nimport \"../collections/appointment-editors.js\";\nimport \"../collections/deck-versions.js\";\nimport \"../collections/opportunities.js\";\nimport \"../collections/section-selections.js\";\nimport \"../collections/slide-selections.js\";\nimport \"../collections/dispatches.js\";\nimport \"../collections/users.js\";\nimport \"../collections/appointment-tags\";\nimport \"../collections/appointment-deckversion-tags\";\nimport \"../collections/appointment-section-tags\";\nimport \"../collections/appointment-slide-tags\";\nimport \"../collections/appointment-adjunct-tags\";\n\nimport { AdjunctSectionCollection } from \"../collections/adjunct-sections.js\";\nimport { AdjunctSlideCollection } from \"../collections/adjunct-slides.js\";\nimport { AdjunctSubSlideCollection } from \"../collections/adjunct-sub-slides.js\";\nimport { AppointmentTemplateCollection } from \"../collections/appointment-templates.js\";\nimport { BaseModel } from \"./base.js\";\nimport { ContactPhoneCollection } from \"../collections/contact-phones.js\";\nimport { DeckNoteCollection } from \"../collections/deck-notes.js\";\nimport Promise from \"bluebird\";\nimport _ from \"lodash\";\nimport log from \"../log.js\";\nimport moment from \"moment\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.AppointmentModel\n * @extends models.BaseModel\n */\nexport const AppointmentModel = BaseModel.extend(\n\t/** @lends models.AppointmentModel# */ {\n\t\tmodelName: \"appointments\",\n\n\t\t/**\n\t\t * @property {string} name\n\t\t * @property {string} attendees\n\t\t * @property {date} begin\n\t\t * @property {boolean} created_by_support\n\t\t * @property {date} created_date\n\t\t * @property {string} creation_state\n\t\t * @property {date} end\n\t\t * @property {date} modified_date\n\t\t * @property {string} notes\n\t\t * @property {date} sort_date\n\t\t * @property {string} display_contacts\n\t\t * @property {string} display_title\n\t\t * @property {string} viewtype\n\t\t * @property {boolean} support_mode\n\t\t * @property {boolean} is_muted\n\t\t * @property {boolean} is_signing_enabled\n\t\t * @property {date} no_edit_after\n\t\t * @property {date} no_share_after\n\t\t * @property {date} no_delete_after\n\t\t * @property {string} share_visibility_mode\n\t\t */\n\t\tprops: {\n\t\t\tname: \"stringSanitized\",\n\t\t\tattendees: \"string\",\n\t\t\tbegin: \"date\",\n\t\t\tcontent_modified_date: \"date\",\n\t\t\tcreated_by_support: \"boolean\",\n\t\t\tcreated_date: \"date\",\n\t\t\tcreation_status: \"string\",\n\t\t\tcreation_status_history: \"array\",\n\t\t\teditors_can_change_editors: \"boolean\",\n\t\t\tend: \"date\",\n\t\t\tlocks: \"array\",\n\t\t\tmodified_date: \"date\",\n\t\t\tnotes: \"stringSanitized\",\n\t\t\tsort_date: \"date\",\n\t\t\tdisplay_contacts: \"string\",\n\t\t\tdisplay_title: \"stringSanitized\",\n\t\t\tviewtype: \"string\",\n\t\t\tsupport_mode: \"boolean\",\n\t\t\tis_muted: \"boolean\",\n\t\t\tis_signing_enabled: \"boolean\",\n\t\t\tno_edit_after: \"date\",\n\t\t\tno_share_after: \"date\",\n\t\t\tno_delete_after: \"date\",\n\t\t\tno_snapshot_create_after: \"date\",\n\t\t\tshare_visibility_mode: \"string\",\n\t\t\t// Unique cross-instance preso UUID\n\t\t\tpreso_id: \"string\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.ContactCollection} contact_set\n\t\t * @property {collections.DeckVersionCollection} deckversion_set\n\t\t * @property {collections.OpportunityCollection} opportunity_set\n\t\t * @property {collections.SectionSelectionCollection} appointmentssection_set\n\t\t * @property {collections.SlideSelectionCollection} appointmentsslide_set\n\t\t */\n\t\tcollections: {\n\t\t\tcontact_set: \"ContactCollection\",\n\t\t\tdeckversion_set: \"DeckVersionCollection\",\n\t\t\topportunity_set: \"OpportunityCollection\",\n\t\t\tappointmenteditor_set: \"AppointmentEditorCollection\",\n\t\t\tappointmentssection_set: \"SectionSelectionCollection\",\n\t\t\tappointmentsslide_set: \"SlideSelectionCollection\",\n\t\t\tdispatch_set: \"DispatchCollection\",\n\t\t\tcurrent_editor_set: \"UserCollection\",\n\t\t\ttags: \"AppointmentTagsCollection\",\n\t\t\tappointmentdeckversiontags_set: \"AppointmentDeckVersionTagsCollection\",\n\t\t\tappointmentsectiontags_set: \"AppointmentSectionTagsCollection\",\n\t\t\tappointmentslidetags_set: \"AppointmentSlideTagsCollection\",\n\t\t\tappointmentadjuncttags_set: \"AppointmentAdjunctTagsCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.PresetModel} preset\n\t\t * @property {models.SnapshotModel} latest_snapshot\n\t\t * @property {models.UserModel} user\n\t\t * @property {models.AppointmentStatsModel} appointmentStats\n\t\t * @property {models.ScenarioModel} scenario\n\t\t * @property {models.TeamModel} team_branding\n\t\t */\n\t\tchildren: {\n\t\t\tpreset: \"PresetModel\",\n\t\t\tlatest_snapshot: \"SnapshotModel\",\n\t\t\tlatest_feed_data: \"FeedDataModel\",\n\t\t\tuser: \"UserModel\",\n\t\t\tlatest_tele: \"HostedPresoModel\",\n\t\t\tstats: \"AppointmentStatsModel\",\n\t\t\tscenario: \"ScenarioModel\",\n\t\t\tteam_branding: \"TeamModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.AdjunctSlideCollection} adjunctSlides\n\t\t * @property {collections.AdjunctSectionCollection} adjunctSections\n\t\t * @property {collections.AdjunctSubSlideCollection} adjunctSubSlides\n\t\t * @property {boolean} readOnly\n\t\t * @property {boolean} shareOnly\n\t\t */\n\t\tderived: {\n\t\t\tadjunctSlides: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\tconst adjunctSlides = new AdjunctSlideCollection();\n\t\t\t\t\tadjunctSlides.queryData.appointment = this.id;\n\t\t\t\t\treturn adjunctSlides;\n\t\t\t\t},\n\t\t\t},\n\t\t\tadjunctSections: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\tconst adjunctSections = new AdjunctSectionCollection();\n\t\t\t\t\tadjunctSections.queryData.appointment = this.id;\n\t\t\t\t\treturn adjunctSections;\n\t\t\t\t},\n\t\t\t},\n\t\t\tadjunctSubSlides: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\tconst adjunctSubSlides = new AdjunctSubSlideCollection();\n\t\t\t\t\tadjunctSubSlides.queryData.appointment = this.id;\n\t\t\t\t\treturn adjunctSubSlides;\n\t\t\t\t},\n\t\t\t},\n\t\t\tincludedTemplates: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\treturn new AppointmentTemplateCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tappointment: this,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t\tdeckNotes: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn() {\n\t\t\t\t\tconst appointmentUrl = this.url();\n\t\t\t\t\treturn new DeckNoteCollection({ url: `${appointmentUrl}notes/` });\n\t\t\t\t},\n\t\t\t},\n\t\t\tcannotShare: {\n\t\t\t\tdeps: [\"no_share_after\"],\n\t\t\t\tfn() {\n\t\t\t\t\tif (!this.no_share_after) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst noShareAfter = moment(this.no_share_after);\n\t\t\t\t\treturn moment().diff(noShareAfter) > 0;\n\t\t\t\t},\n\t\t\t},\n\t\t\tcannotEdit: {\n\t\t\t\tdeps: [\"no_edit_after\"],\n\t\t\t\tfn() {\n\t\t\t\t\tif (!this.no_edit_after) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst noEditAfter = moment(this.no_edit_after);\n\t\t\t\t\treturn moment().diff(noEditAfter) > 0;\n\t\t\t\t},\n\t\t\t},\n\t\t\tcannotDelete: {\n\t\t\t\tdeps: [\"no_delete_after\"],\n\t\t\t\tfn() {\n\t\t\t\t\tif (!this.no_delete_after) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst noDeleteAfter = moment(this.no_delete_after);\n\t\t\t\t\treturn moment().diff(noDeleteAfter) > 0;\n\t\t\t\t},\n\t\t\t},\n\t\t\tcannotCreateSnapshot: {\n\t\t\t\tdeps: [\"no_snapshot_create_after\"],\n\t\t\t\tfn() {\n\t\t\t\t\tif (!this.no_snapshot_create_after) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst noCreateAfter = moment(this.no_snapshot_create_after);\n\t\t\t\t\treturn moment().diff(noCreateAfter) > 0;\n\t\t\t\t},\n\t\t\t},\n\t\t\treadOnly: {\n\t\t\t\tdeps: [\"cannotShare\"],\n\t\t\t\tfn() {\n\t\t\t\t\treturn this.cannotShare;\n\t\t\t\t},\n\t\t\t},\n\t\t\tshareOnly: {\n\t\t\t\tdeps: [\"cannotEdit\", \"cannotDelete\"],\n\t\t\t\tfn() {\n\t\t\t\t\treturn this.cannotEdit || this.cannotDelete;\n\t\t\t\t},\n\t\t\t},\n\t\t\t// This property should be set by the calling code of the appointment and be the set of\n\t\t\t// contact phones for all contacts on this preso. It must be fetchd and set after the contact_set\n\t\t\t// is fetched. It's up to the calling code to decide if this property is required and\n\t\t\t// therefore the extra fetch\n\t\t\tcontactPhones: {\n\t\t\t\tdeps: [\"id\", \"contact_set\"],\n\t\t\t\tfn() {\n\t\t\t\t\treturn new ContactPhoneCollection();\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tgetHooksPath() {\n\t\t\tif (!this.deckversion_set.length) {\n\t\t\t\tthrow new Error(\"Requires a deckversion to get hooks.\");\n\t\t\t}\n\t\t\treturn this.deckversion_set.first().getHooksPath();\n\t\t},\n\n\t\tfetchAll(fetchSelf = false, fetchOptions = {}) {\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (!this._url || fetchSelf) {\n\t\t\t\t\t\treturn this.fetch(fetchOptions);\n\t\t\t\t\t}\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst fetches = [\n\t\t\t\t\t\tthis.deckversion_set?.fetchModels(fetchOptions),\n\t\t\t\t\t\tthis.appointmentssection_set?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.appointmentsslide_set?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.appointmenteditor_set?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.adjunctSlides?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.adjunctSections?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.adjunctSubSlides?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.contact_set?.fetchSet(fetchOptions),\n\t\t\t\t\t\tthis.tags?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.team_branding?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.scenario?.fetch(fetchOptions)?.catch((e) => {\n\t\t\t\t\t\t\tif (e.status === 404) {\n\t\t\t\t\t\t\t\tthis.scenario = null;\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tthis.user?.fetch(fetchOptions)?.catch((e) => {\n\t\t\t\t\t\t\tif (e.status && e.status === 404) {\n\t\t\t\t\t\t\t\t// It's possible for a user to be deactivated, which means they'll\n\t\t\t\t\t\t\t\t// return with a 404. We want to be able to still load the preso,\n\t\t\t\t\t\t\t\t// but it will be readonly.\n\t\t\t\t\t\t\t\tthis.user = null;\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tthis.deckNotes?.fetch(fetchOptions),\n\t\t\t\t\t\tthis.includedTemplates.fetch(fetchOptions),\n\t\t\t\t\t\tthis.opportunity_set\n\t\t\t\t\t\t\t?.fetchSet(fetchOptions)\n\t\t\t\t\t\t\t?.then(() => {\n\t\t\t\t\t\t\t\treturn Promise.all(\n\t\t\t\t\t\t\t\t\tthis.opportunity_set.map((opp) =>\n\t\t\t\t\t\t\t\t\t\topp.customer.fetch(fetchOptions),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t?.catch(() => {\n\t\t\t\t\t\t\t\tlog.error(\n\t\t\t\t\t\t\t\t\t`Failed to fetch Opportunity set`,\n\t\t\t\t\t\t\t\t\tthis.opportunity_set.toJSON(),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t];\n\n\t\t\t\t\tif (this.latest_snapshot) {\n\t\t\t\t\t\tfetches.push(this.latest_snapshot.fetch(fetchOptions));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.latest_feed_data) {\n\t\t\t\t\t\tfetches.push(this.latest_feed_data.fetch(fetchOptions));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.latest_tele) {\n\t\t\t\t\t\tfetches.push(this.latest_tele.fetch(fetchOptions));\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Promise.all(fetches);\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst scenarioID = this.scenario?.id ?? null;\n\t\t\t\t\tconst scenarioFilter = [null];\n\t\t\t\t\tif (scenarioID) {\n\t\t\t\t\t\tscenarioFilter.push(scenarioID);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Promise.all([\n\t\t\t\t\t\tthis.scenario?.owner_team?.fetch?.(fetchOptions),\n\t\t\t\t\t\t...this.deckversion_set.map((model) => {\n\t\t\t\t\t\t\treturn Promise.all([\n\t\t\t\t\t\t\t\tmodel.screenshots.fetch(\n\t\t\t\t\t\t\t\t\t_.merge(fetchOptions, {\n\t\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\t\tscenario: scenarioFilter,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmodel.template_set.fetchSet(fetchOptions),\n\t\t\t\t\t\t\t\tmodel.manifest_json.fetch(fetchOptions),\n\t\t\t\t\t\t\t\tmodel.deck.fetch(fetchOptions),\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}),\n\t\t\t\t\t]);\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst deckversionTemplates =\n\t\t\t\t\t\tthis.deckversion_set.first().template_set.models;\n\n\t\t\t\t\tconst allTemplates = _.uniqBy(\n\t\t\t\t\t\tthis.includedTemplates.models.concat(deckversionTemplates),\n\t\t\t\t\t\t\"id\",\n\t\t\t\t\t);\n\n\t\t\t\t\tasync function getTemplateOrFetch(adj) {\n\t\t\t\t\t\tconst existingTemplate = allTemplates.find(\n\t\t\t\t\t\t\t(t) => t.id === adj.template.id,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (existingTemplate) {\n\t\t\t\t\t\t\tadj.template = existingTemplate;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tawait adj.template.fetch(fetchOptions);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn adj;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst adjunctSlides = this.adjunctSlides\n\t\t\t\t\t\t.filter((adj) => adj.template)\n\t\t\t\t\t\t.map((adj) => getTemplateOrFetch(adj));\n\n\t\t\t\t\tconst adjunctSections = this.adjunctSections\n\t\t\t\t\t\t.filter((adj) => adj.template)\n\t\t\t\t\t\t.map((adj) => getTemplateOrFetch(adj));\n\n\t\t\t\t\treturn Promise.all([...adjunctSlides, ...adjunctSections]);\n\t\t\t\t})\n\t\t\t\t.return(this);\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst appointment = this.toJSON();\n\n\t\t\tconst data = {\n\t\t\t\tname: appointment.name,\n\t\t\t\tbegin: appointment.begin,\n\t\t\t\tend: appointment.end,\n\t\t\t\tcreation_status: appointment.creation_status,\n\t\t\t\tcontact_set: this._retrieveURL(appointment.contact_set),\n\t\t\t\tdeckversion_set: this._retrieveURL(appointment.deckversion_set),\n\t\t\t\tnotes: appointment.notes,\n\t\t\t\topportunity_set: this._retrieveURL(appointment.opportunity_set),\n\t\t\t\tuser: this._retrieveURL(appointment.user),\n\t\t\t\tviewtype: appointment.viewtype,\n\t\t\t\tpreset: this._retrieveURL(appointment.preset),\n\t\t\t\tlocks: appointment.locks,\n\t\t\t\tis_muted: appointment.is_muted,\n\t\t\t\tis_signing_enabled: appointment.is_signing_enabled,\n\t\t\t\tno_edit_after: appointment.no_edit_after,\n\t\t\t\tno_share_after: appointment.no_share_after,\n\t\t\t\tno_delete_after: appointment.no_delete_after,\n\t\t\t\tscenario: this._retrieveURL(appointment.scenario),\n\t\t\t\tteam_branding: this._retrieveURL(appointment.team_branding),\n\t\t\t\teditors_can_change_editors: appointment.editors_can_change_editors,\n\t\t\t\tshare_visibility_mode: appointment.share_visibility_mode,\n\t\t\t};\n\n\t\t\tif (this.id) {\n\t\t\t\tdata.id = this.id;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nregister(\"AppointmentModel\", AppointmentModel);\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.AutoAdjunctModel = void 0;
7
7
  require("./template.js");
8
- require("./team.js");
8
+ require("./scenario.js");
9
9
  require("./deck.js");
10
10
  var _base = require("./base.js");
11
11
  var _stateRegister = require("../state-register.js");
@@ -50,11 +50,12 @@ var AutoAdjunctModel = exports.AutoAdjunctModel = _base.BaseModel.extend(/** @le
50
50
  /**
51
51
  * @property {models.DeckModel} deck
52
52
  * @property {models.TemplateModel} template
53
+ * @property {models.ScenarioModel} scenario
53
54
  */
54
55
  children: {
55
56
  deck: "DeckModel",
56
57
  template: "TemplateModel",
57
- team: "TeamModel"
58
+ scenario: "ScenarioModel"
58
59
  }
59
60
  });
60
61
  (0, _stateRegister.register)("AutoAdjunctModel", AutoAdjunctModel);
@@ -1 +1 @@
1
- {"version":3,"file":"auto-adjunct.js","names":["require","_base","_stateRegister","AutoAdjunctModel","exports","BaseModel","extend","modelName","props","image_128","image_256","image_512","image_1024","image_original","namespaced_key","name","parent_key","after_key","key","enabled","sequence","tags","cmsvalkey_set","_tenancy","children","deck","template","team","register"],"sources":["../../src/models/auto-adjunct.js"],"sourcesContent":["import \"./template.js\";\nimport \"./team.js\";\nimport \"./deck.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.AutoAdjunctModel\n * @extends models.BaseModel\n */\nexport const AutoAdjunctModel = BaseModel.extend(\n\t/** @lends models.AutoAdjunctModel# */ {\n\t\tmodelName: \"autoadjuncts\",\n\n\t\t/**\n\t\t * @property {string} image_128\n\t\t * @property {string} image_256\n\t\t * @property {string} image_512\n\t\t * @property {string} image_1024\n\t\t * @property {string} image_original\n\t\t * @property {string} namespaced_key\n\t\t * @property {string} name\n\t\t * @property {string} parent_key\n\t\t * @property {string} after_key\n\t\t * @property {boolean} enabled\n\t\t * @property {number} sequence\n\t\t * @property {string[]} cmsvalkey_set\n\t\t */\n\t\tprops: {\n\t\t\timage_128: \"string\",\n\t\t\timage_256: \"string\",\n\t\t\timage_512: \"string\",\n\t\t\timage_1024: \"string\",\n\t\t\timage_original: \"string\",\n\t\t\tnamespaced_key: \"string\",\n\t\t\tname: \"stringSanitized\",\n\t\t\tparent_key: \"string\",\n\t\t\tafter_key: \"string\",\n\t\t\tkey: \"string\",\n\t\t\tenabled: \"boolean\",\n\t\t\tsequence: \"number\",\n\t\t\ttags: \"array\",\n\t\t\tcmsvalkey_set: \"array\",\n\t\t\t_tenancy: \"object\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.TemplateModel} template\n\t\t */\n\t\tchildren: {\n\t\t\tdeck: \"DeckModel\",\n\t\t\ttemplate: \"TemplateModel\",\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\t},\n);\n\nregister(\"AutoAdjunctModel\", AutoAdjunctModel);\n"],"mappings":";;;;;;AAAAA,OAAA;AACAA,OAAA;AACAA,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,eAAS,CAACC,MAAM,CAC/C,sCAAuC;EACtCC,SAAS,EAAE,cAAc;EAEzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,cAAc,EAAE,QAAQ;IACxBC,IAAI,EAAE,iBAAiB;IACvBC,UAAU,EAAE,QAAQ;IACpBC,SAAS,EAAE,QAAQ;IACnBC,GAAG,EAAE,QAAQ;IACbC,OAAO,EAAE,SAAS;IAClBC,QAAQ,EAAE,QAAQ;IAClBC,IAAI,EAAE,OAAO;IACbC,aAAa,EAAE,OAAO;IACtBC,QAAQ,EAAE;EACX,CAAC;EAED;AACF;AACA;AACA;EACEC,QAAQ,EAAE;IACTC,IAAI,EAAE,WAAW;IACjBC,QAAQ,EAAE,eAAe;IACzBC,IAAI,EAAE;EACP;AACD,CACD,CAAC;AAED,IAAAC,uBAAQ,EAAC,kBAAkB,EAAEzB,gBAAgB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"auto-adjunct.js","names":["require","_base","_stateRegister","AutoAdjunctModel","exports","BaseModel","extend","modelName","props","image_128","image_256","image_512","image_1024","image_original","namespaced_key","name","parent_key","after_key","key","enabled","sequence","tags","cmsvalkey_set","_tenancy","children","deck","template","scenario","register"],"sources":["../../src/models/auto-adjunct.js"],"sourcesContent":["import \"./template.js\";\nimport \"./scenario.js\";\nimport \"./deck.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.AutoAdjunctModel\n * @extends models.BaseModel\n */\nexport const AutoAdjunctModel = BaseModel.extend(\n\t/** @lends models.AutoAdjunctModel# */ {\n\t\tmodelName: \"autoadjuncts\",\n\n\t\t/**\n\t\t * @property {string} image_128\n\t\t * @property {string} image_256\n\t\t * @property {string} image_512\n\t\t * @property {string} image_1024\n\t\t * @property {string} image_original\n\t\t * @property {string} namespaced_key\n\t\t * @property {string} name\n\t\t * @property {string} parent_key\n\t\t * @property {string} after_key\n\t\t * @property {boolean} enabled\n\t\t * @property {number} sequence\n\t\t * @property {string[]} cmsvalkey_set\n\t\t */\n\t\tprops: {\n\t\t\timage_128: \"string\",\n\t\t\timage_256: \"string\",\n\t\t\timage_512: \"string\",\n\t\t\timage_1024: \"string\",\n\t\t\timage_original: \"string\",\n\t\t\tnamespaced_key: \"string\",\n\t\t\tname: \"stringSanitized\",\n\t\t\tparent_key: \"string\",\n\t\t\tafter_key: \"string\",\n\t\t\tkey: \"string\",\n\t\t\tenabled: \"boolean\",\n\t\t\tsequence: \"number\",\n\t\t\ttags: \"array\",\n\t\t\tcmsvalkey_set: \"array\",\n\t\t\t_tenancy: \"object\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.TemplateModel} template\n\t\t * @property {models.ScenarioModel} scenario\n\t\t */\n\t\tchildren: {\n\t\t\tdeck: \"DeckModel\",\n\t\t\ttemplate: \"TemplateModel\",\n\t\t\tscenario: \"ScenarioModel\",\n\t\t},\n\t},\n);\n\nregister(\"AutoAdjunctModel\", AutoAdjunctModel);\n"],"mappings":";;;;;;AAAAA,OAAA;AACAA,OAAA;AACAA,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,eAAS,CAACC,MAAM,CAC/C,sCAAuC;EACtCC,SAAS,EAAE,cAAc;EAEzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,cAAc,EAAE,QAAQ;IACxBC,IAAI,EAAE,iBAAiB;IACvBC,UAAU,EAAE,QAAQ;IACpBC,SAAS,EAAE,QAAQ;IACnBC,GAAG,EAAE,QAAQ;IACbC,OAAO,EAAE,SAAS;IAClBC,QAAQ,EAAE,QAAQ;IAClBC,IAAI,EAAE,OAAO;IACbC,aAAa,EAAE,OAAO;IACtBC,QAAQ,EAAE;EACX,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,QAAQ,EAAE;IACTC,IAAI,EAAE,WAAW;IACjBC,QAAQ,EAAE,eAAe;IACzBC,QAAQ,EAAE;EACX;AACD,CACD,CAAC;AAED,IAAAC,uBAAQ,EAAC,kBAAkB,EAAEzB,gBAAgB,CAAC","ignoreList":[]}
@@ -240,7 +240,9 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend(/** @lends mo
240
240
  return null;
241
241
  }
242
242
  var idStr = urlEnd.split(resourceEnd).join("");
243
- if ((idStr.match(/\//g) || []).length === 1) {
243
+ if (this.detailType === "uuid") {
244
+ return idStr.slice(0, -1);
245
+ } else if ((idStr.match(/\//g) || []).length === 1) {
244
246
  return parseInt(idStr.slice(0, -1), 10);
245
247
  }
246
248
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":["_utils","require","_api","_ampersandRestCollection","_interopRequireDefault","_ampersandModel","_bluebird","_superagentBluebirdPromise","_lodash","_dedentJs","_log","_moment","_qs","_stateRegister","_sync2","_url","_templateObject","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","BaseModel","exports","Model","extend","modelName","queryData","detailType","isFetching","_isFetched","urlMatchKeys","_data","arguments","undefined","opts","options","_","defaults","data","_unsetChildren","_unsetCollections","_expandedValues","toJSON","isString","url","isNumber","id","dataCopy","_options","_children","clone","_collections","_definition","key","def","isState","Collection","map","obj","registerStates","_convertToValues","getIDFromURL","prototype","_setDerived","_initUnsetValues","_i","_Object$keys","Object","keys","_derived","derivedKey","_i2","_Object$keys2","derivedProp","set","_matchesURL","matchesDetail","urlRoot","Api","getURL","replacements","detailKey","regexes","reduce","result","type","replace","Error","concat","urlWithoutRoot","urlStructure","split","argIndex","findIndex","val","indexOf","attemptedURLWithoutRoot","partial","join","interpolatedString","template","interpolate","log","error","dedent","_taggedTemplateLiteral2","default","baseString","re","RegExp","resource","resourceURL","getResourceURL","urlPath","url2","parse","path","resourceURLPath","resourceEnd","urlEnd","idStr","match","parseInt","matchesURL","dataTypes","date","newVal","moment","utc","format","DATE_FORMAT_T","compare","currentVal","isSame","stringSanitized","removeMultiByteChars","get","any","props","required","toServer","serialize","_registerChildModel","states","prop","model","registeredStates","_registerCollection","state","collection","_this","each","parent","_registerName","_updateResponse","response","_this2","forEach","save","_this3","apply","tap","fetch","_this4","SuperAgentRequest","Auth","headers","then","res","body","isFetched","getSafeAttrs","_this5","isUndefined","_values","attrs","uniq","_this6","_initChildren","child","_safeSet","listenTo","_getCachedEventBubblingHandler","_initCollections","coll","_this7","tmpValue","replacePropertyDefinition","safeSet","property","getFullURLPath","qs","stringify","arrayFormat","isNew","getPlainURL","resp","includes","matches","_iterator","_step","replacement","err","resources","waitForReady","_arguments","_this8","_asyncToGenerator2","_regenerator","mark","_callee","attempts","wrap","_callee$","_context","prev","abrupt","Promise","reject","creation_status","resolve","delay","stop","sync","derived","_ref","_ref$urlsOnly","urlsOnly","getAttributes","object","allCollectionKeys","_toConsumableArray2","_iterator2","_step2","m","canBeEmpty","allChildrenKeys","_iterator3","_step3","_retrieveURL","item","_this9","_typeof2","addCollection","addChild","expandCollection","expandChild","defineProperty","configurable","_this$prototype"],"sources":["../../src/models/base.js"],"sourcesContent":["import { DATE_FORMAT_T, removeMultiByteChars } from \"../utils.js\";\n\nimport { Api } from \"../api.js\";\nimport Collection from \"ampersand-rest-collection\";\nimport Model from \"ampersand-model\";\nimport Promise from \"bluebird\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport _ from \"lodash\";\nimport dedent from \"dedent-js\";\nimport log from \"../log.js\";\nimport moment from \"moment\";\nimport qs from \"qs\";\nimport { registeredStates } from \"../state-register.js\";\nimport { sync } from \"../sync.js\";\nimport url2 from \"url\";\n\n/**\n * @constructor\n * @alias models.BaseModel\n */\nexport const BaseModel = Model.extend(\n\t/** @lends models.BaseModel# */ {\n\t\tmodelName: null,\n\t\tqueryData: {},\n\t\tdetailType: \"number\",\n\n\t\t// This is unfortunately necessary to avoid the default ampersand model/state\n\t\t// behaviour from automatically hydrating all children and collections on a fetch.\n\t\tisFetching: false,\n\n\t\t// Useful to figure out whether the model is just a URL (unfetched), or has been\n\t\t// fetched from the server (an object).\n\t\t_isFetched: true,\n\n\t\t// Object of regexes that should be used to match a url in `matchesURL`\n\t\t// For example the URL: /api/foo/{pk}/bar/ might have the following:\n\t\t//\n\t\t// Example:\n\t\t//\n\t\t// ```\n\t\t// {\n\t\t// pk: \"number\"\n\t\t// }\n\t\t// ```\n\t\turlMatchKeys: {},\n\n\t\tconstructor(_data = {}, opts = {}) {\n\t\t\tconst options = _.defaults(opts, {\n\t\t\t\tdata: {},\n\t\t\t});\n\n\t\t\tlet data = _data;\n\n\t\t\tthis._unsetChildren = {};\n\t\t\tthis._unsetCollections = {};\n\t\t\tthis._expandedValues = {};\n\n\t\t\tif (data === null) {\n\t\t\t\tdata = {};\n\t\t\t}\n\n\t\t\t// Allow passing in models\n\t\t\tif (data instanceof Model) {\n\t\t\t\tdata = data.toJSON();\n\t\t\t}\n\n\t\t\tthis.queryData = options.data;\n\n\t\t\t// Convert any strings into a url format we can understand\n\t\t\tif (_.isString(data)) {\n\t\t\t\tdata = { url: data };\n\t\t\t\tthis._isFetched = false;\n\t\t\t}\n\n\t\t\t// Convert model ids into a format we can understand\n\t\t\tif (_.isNumber(data)) {\n\t\t\t\tdata = { id: data };\n\t\t\t\tthis._isFetched = false;\n\t\t\t}\n\n\t\t\tconst dataCopy = _.extend({}, data);\n\n\t\t\tthis._data = dataCopy;\n\t\t\tthis._options = options;\n\n\t\t\t// Stop making edits to these affect other models\n\t\t\tthis._children = _.clone(this._children);\n\t\t\tthis._collections = _.clone(this._collections);\n\t\t\tthis._definition = _.clone(this._definition);\n\n\t\t\t// Check for specialized url returns from the server. This is for when the\n\t\t\t// server responds with an array of urls rather than object data.\n\t\t\tif (dataCopy && typeof dataCopy.url === \"string\") {\n\t\t\t\tthis._url = dataCopy.url;\n\t\t\t}\n\n\t\t\tfor (const key in dataCopy) {\n\t\t\t\tconst def = dataCopy[key];\n\t\t\t\t// Any models/collections passed into the constructor should be\n\t\t\t\t// converted to JSON so that it can be parsed\n\t\t\t\tif (def && (def.isState || def instanceof Collection)) {\n\t\t\t\t\tdataCopy[key] = def.toJSON();\n\t\t\t\t}\n\n\t\t\t\tif (def && Array.isArray(def)) {\n\t\t\t\t\tdataCopy[key] = def.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof Model) {\n\t\t\t\t\t\t\treturn obj.toJSON();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn obj;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.registerStates();\n\n\t\t\tthis._convertToValues();\n\n\t\t\tconst id = this.getIDFromURL(this._url);\n\n\t\t\tif (!dataCopy.id && id) {\n\t\t\t\tdataCopy.id = id;\n\t\t\t}\n\n\t\t\tModel.prototype.constructor.call(this, dataCopy, options);\n\n\t\t\tthis._setDerived();\n\n\t\t\t// Re-set the values that were previously children or collections\n\t\t\tthis._initUnsetValues();\n\t\t},\n\n\t\t// If there is a model returned from a derived property, and the model\n\t\t// has been initialzied with model data, we manually set the values on it.\n\t\t_setDerived() {\n\t\t\tfor (const derivedKey of Object.keys(this._derived)) {\n\t\t\t\tif (!this._data[derivedKey]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (this[derivedKey] instanceof Model) {\n\t\t\t\t\tfor (const derivedProp of Object.keys(this._data[derivedKey])) {\n\t\t\t\t\t\tthis[derivedKey].set(\n\t\t\t\t\t\t\tderivedProp,\n\t\t\t\t\t\t\tthis._data[derivedKey][derivedProp],\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If it's a collection, we can just pass the data straight in\n\t\t\t\tif (this[derivedKey] instanceof Collection) {\n\t\t\t\t\tthis[derivedKey].set(this._data[derivedKey]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Internal function. Used by collection as well.\n\t\t_matchesURL(url, matchesDetail = true) {\n\t\t\tif (!this.modelName || this.urlRoot() === Api.getURL()) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst replacements = _.extend(\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\tdetailKey: this.detailType,\n\t\t\t\t},\n\t\t\t\tthis.urlMatchKeys,\n\t\t\t);\n\n\t\t\tconst regexes = Object.keys(replacements).reduce((result, key) => {\n\t\t\t\tconst type = replacements[key];\n\t\t\t\tconst name = key.replace(/\\./g, \"_\");\n\t\t\t\tif (type === \"number\") {\n\t\t\t\t\tresult[name] = \"\\\\d+\";\n\t\t\t\t} else if (type === \"uuid\") {\n\t\t\t\t\tresult[name] = \"([a-z]|[0-9]|-)+\";\n\t\t\t\t} else if (type === \"string\") {\n\t\t\t\t\tresult[name] = \"\\\\w+\";\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Unknown regex type '${type}'.`);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}, {});\n\n\t\t\t// Create a starting regex string with variables. Strips the root url so that it could\n\t\t\t// be read from any server.\n\t\t\tconst urlWithoutRoot = this.urlRoot().replace(Api.getURL(), \"\");\n\t\t\tlet urlStructure = urlWithoutRoot.slice();\n\t\t\tif (matchesDetail) {\n\t\t\t\turlStructure += \"{detailKey}/\";\n\t\t\t}\n\n\t\t\t// Let's test if the url has even a remote chance of matching\n\t\t\t// the url (like a partial match, any part without variables).\n\t\t\t// If that doesn't match, we can sometimes prevent a nasty log\n\t\t\t// error from being thrown.\n\t\t\tconst split = urlStructure.split(\"/\");\n\t\t\tconst argIndex = split.findIndex((val) => {\n\t\t\t\treturn val.indexOf(\"{\") === 0;\n\t\t\t});\n\n\t\t\tif (argIndex >= 0) {\n\t\t\t\tconst attemptedURLWithoutRoot = url.replace(Api.getURL(), \"\");\n\n\t\t\t\tconst partial = split.slice(0, argIndex).join(\"/\");\n\t\t\t\tif (attemptedURLWithoutRoot.indexOf(partial) !== 0) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Replace keys with regexes\n\t\t\tlet interpolatedString;\n\t\t\ttry {\n\t\t\t\tinterpolatedString = _.template(urlStructure.replace(/\\./g, \"_\"), {\n\t\t\t\t\tinterpolate: /{([\\s\\S\\.]+?)}/g,\n\t\t\t\t})(regexes);\n\t\t\t} catch (e) {\n\t\t\t\tlog.error(\n\t\t\t\t\tdedent`\n\t\t\t\tFailed to match URL '${url}' for model '${this.modelName}'.\n\t\t\t\tThis is usually because the regex type for a key hasn't been set.\n\t\t\t\tError: `,\n\t\t\t\t\te,\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Convert into a regex and test if url matches\n\t\t\tconst baseString = `.*${interpolatedString.replace(/\\//m, \"/\")}$`;\n\t\t\tconst re = new RegExp(baseString);\n\t\t\treturn re.test(url);\n\t\t},\n\n\t\t// Retrieve the id from the url (if present) without caring about\n\t\t// the hostname.\n\t\t// The url will have a structure like\n\t\t// https://staging-demo.salespreso.com/api/users/1/\n\t\t// and we want to ignore the hostname (https://staging-demo.salespreso.com)\n\t\t// and strip out the '/api' from both the resource url and the variable url\n\t\t// so that we can use the remaining part to isolate the id\n\t\tgetIDFromURL(url, resource = \"\") {\n\t\t\tconst resourceURL = resource || this.getResourceURL();\n\n\t\t\tif (typeof url !== \"string\" || !resourceURL) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst urlPath = url2.parse(url).path;\n\t\t\tconst resourceURLPath = url2.parse(resourceURL).path;\n\n\t\t\t// Remove the '/api' if present\n\t\t\tconst resourceEnd = resourceURLPath.split(\"/api\").join(\"\");\n\t\t\tconst urlEnd = urlPath.split(\"/api\").join(\"\");\n\n\t\t\t// If they are the same, there is no id at the end\n\t\t\tif (!urlEnd || urlEnd === resourceEnd) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst idStr = urlEnd.split(resourceEnd).join(\"\");\n\n\t\t\tif ((idStr.match(/\\//g) || []).length === 1) {\n\t\t\t\treturn parseInt(idStr.slice(0, -1), 10);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\t\t// Public version for details only\n\t\tmatchesURL(url) {\n\t\t\treturn this._matchesURL(url, true);\n\t\t},\n\n\t\tdataTypes: {\n\t\t\tdate: {\n\t\t\t\tset: (newVal) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tval: newVal ? moment.utc(newVal).format(DATE_FORMAT_T) : null,\n\t\t\t\t\t\ttype: \"date\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcompare: (currentVal, newVal) => {\n\t\t\t\t\tif (typeof currentVal === \"undefined\") {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (currentVal || newVal) {\n\t\t\t\t\t\treturn moment(currentVal).isSame(moment(newVal));\n\t\t\t\t\t}\n\t\t\t\t\treturn currentVal !== newVal;\n\t\t\t\t},\n\t\t\t},\n\t\t\tstringSanitized: {\n\t\t\t\tset: (newVal) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tval: newVal ? removeMultiByteChars(newVal) : newVal,\n\t\t\t\t\t\ttype: \"stringSanitized\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcompare: (currentVal, newVal) => {\n\t\t\t\t\treturn currentVal === newVal;\n\t\t\t\t},\n\t\t\t\tget: (val) => {\n\t\t\t\t\treturn val;\n\t\t\t\t},\n\t\t\t},\n\t\t\tany: {\n\t\t\t\tdefault: () => {\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * @property {number} [id]\n\t\t */\n\t\tprops: {\n\t\t\tid: { type: \"any\", required: false },\n\t\t},\n\n\t\t/*\n\t\t * Overridable serialization for sending data to\n\t\t * the server\n\t\t */\n\t\ttoServer() {\n\t\t\treturn this.serialize();\n\t\t},\n\n\t\t_registerChildModel(states, prop, model) {\n\t\t\tconst Model = registeredStates[model];\n\t\t\tif (!Model) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`'${model}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._children[prop] = Model;\n\t\t},\n\n\t\t_registerCollection(state, prop, collection) {\n\t\t\tconst Collection = state[collection];\n\t\t\tif (!Collection) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`'${collection}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._collections[prop] = Collection;\n\t\t},\n\n\t\t/*\n\t\t * Replace strings respresenting a registered model/collection the function\n\t\t */\n\t\tregisterStates() {\n\t\t\t// Loop through children and replace any parent objects directly to stop\n\t\t\t// maximum stack overflows\n\t\t\t_.each(\n\t\t\t\tthis._children,\n\t\t\t\t(model, prop) => {\n\t\t\t\t\tif (typeof model === \"string\") {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthis._options.parent &&\n\t\t\t\t\t\t\tmodel === this._options.parent._registerName\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// This part is important, if the link stays when there's a circular dependency,\n\t\t\t\t\t\t\t// this will continue forever.\n\t\t\t\t\t\t\tdelete this._children[prop];\n\n\t\t\t\t\t\t\t// Can be a string or an object so we use \"any\". We add the definition\n\t\t\t\t\t\t\t// so that we can retrieve this value later.\n\t\t\t\t\t\t\tthis._definition[prop] = { type: \"any\" };\n\n\t\t\t\t\t\t\tthis[prop] = this._options.parent;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._registerChildModel(registeredStates, prop, model);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\n\t\t\t// Loop throught the collections and replace with the registered collection\n\t\t\t_.each(\n\t\t\t\tthis._collections,\n\t\t\t\t(collection, prop) => {\n\t\t\t\t\tif (typeof collection === \"string\") {\n\t\t\t\t\t\tthis._registerCollection(registeredStates, prop, collection);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\t\t},\n\n\t\t_updateResponse(response) {\n\t\t\tthis._data = response || {};\n\n\t\t\tif (!response) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set previously-initialised children & collections with new\n\t\t\t// data retrieved during the fetch\n\n\t\t\tObject.keys(this._children).forEach((key) => {\n\t\t\t\tif (response[key]) {\n\t\t\t\t\tthis[key] = response[key];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tObject.keys(this._collections).forEach((key) => {\n\t\t\t\tif (response[key]) {\n\t\t\t\t\tthis[key] = response[key];\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tsave() {\n\t\t\treturn Model.prototype.save.apply(this, arguments).tap((response) => {\n\t\t\t\tthis._updateResponse(response);\n\t\t\t});\n\t\t},\n\n\t\tfetch(options = {}) {\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.isFetching = true;\n\t\t\treturn Model.prototype.fetch.apply(this, arguments).tap((response) => {\n\t\t\t\tthis._isFetched = true;\n\t\t\t\tthis.isFetching = false;\n\t\t\t\tthis._updateResponse(response);\n\t\t\t});\n\t\t},\n\n\t\toptions(options = {}) {\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\t\t\treturn SuperAgentRequest(\"OPTIONS\", this.url())\n\t\t\t\t.set(BaseModel.Auth.headers)\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res.body;\n\t\t\t\t});\n\t\t},\n\n\t\tisFetched() {\n\t\t\treturn this._isFetched;\n\t\t},\n\n\t\tgetSafeAttrs(key) {\n\t\t\tif (!_.isUndefined(key)) {\n\t\t\t\treturn !_.isUndefined(this._expandedValues[key])\n\t\t\t\t\t? this._expandedValues[key]\n\t\t\t\t\t: this._values[key];\n\t\t\t}\n\n\t\t\tconst attrs = {};\n\n\t\t\tconst keys = _.uniq(\n\t\t\t\t_.concat(\n\t\t\t\t\t_.concat(\n\t\t\t\t\t\tObject.keys(this._unsetChildren),\n\t\t\t\t\t\tObject.keys(this._unsetCollections),\n\t\t\t\t\t),\n\t\t\t\t\tObject.keys(this._values),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\tkeys.forEach((key) => {\n\t\t\t\tif (!_.isUndefined(this._values[key])) {\n\t\t\t\t\tattrs[key] = this._values[key];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tObject.keys(this._expandedValues).forEach((key) => {\n\t\t\t\tattrs[key] = this[key];\n\t\t\t});\n\n\t\t\treturn attrs;\n\t\t},\n\n\t\t// Unset all specified children and collection constructors and insert value\n\t\t// definitions for them (necessary for Ampersand State to treat them as values)\n\t\t_convertToValues() {\n\t\t\tObject.keys(this._children).forEach((key) => {\n\t\t\t\tthis._definition[key] = { type: \"any\" };\n\t\t\t\tthis._unsetChildren[key] = this._children[key];\n\t\t\t\tdelete this._children[key];\n\t\t\t});\n\n\t\t\tObject.keys(this._collections).forEach((key) => {\n\t\t\t\tthis._definition[key] = { type: \"any\" };\n\t\t\t\tthis._unsetCollections[key] = this._collections[key];\n\t\t\t\tdelete this._collections[key];\n\t\t\t});\n\t\t},\n\n\t\t// Override the initialization of children to pass in data to the constructor.\n\t\t// The default version always creates an empty model\n\t\t_initChildren() {\n\t\t\tlet child;\n\t\t\tif (!this._children) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (child in this._children) {\n\t\t\t\tlet val = this._data[child];\n\t\t\t\tif (val) {\n\t\t\t\t\t// Assume here that if it's a string, it's a url.\n\t\t\t\t\tif (typeof val === \"string\") {\n\t\t\t\t\t\tval = { url: val };\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If hydrate is set to false, this will be the name of the child and\n\t\t\t\t// not the constructor. We want to add the non-hydrated url if so.\n\t\t\t\tif (typeof this._children[child] === \"function\") {\n\t\t\t\t\tthis._safeSet(\n\t\t\t\t\t\tchild,\n\t\t\t\t\t\tnew this._children[child](val, { parent: this }),\n\t\t\t\t\t);\n\t\t\t\t\tthis.listenTo(\n\t\t\t\t\t\tthis[child],\n\t\t\t\t\t\t\"all\",\n\t\t\t\t\t\tthis._getCachedEventBubblingHandler(child),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis._safeSet(child, val);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Override the initialization of collections to pass in data to the constructor.\n\t\t_initCollections() {\n\t\t\tlet coll;\n\t\t\tif (!this._collections) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (coll in this._collections) {\n\t\t\t\tlet val = this._data[coll];\n\t\t\t\tif (val) {\n\t\t\t\t\tif (typeof val === \"string\") {\n\t\t\t\t\t\tval = { url: val };\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If hydrate is set to false, this will be the name of the collection and\n\t\t\t\t// not the constructor. We want to add the non-hydrated array if so.\n\t\t\t\tif (typeof this._collections[coll] === \"function\") {\n\t\t\t\t\tthis._safeSet(\n\t\t\t\t\t\tcoll,\n\t\t\t\t\t\tnew this._collections[coll](val, { parent: this }),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis._safeSet(coll, val);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_initUnsetValues() {\n\t\t\t_.each(this._unsetChildren, (child, key) => {\n\t\t\t\tconst tmpValue = this._values[key];\n\n\t\t\t\treplacePropertyDefinition(this, key);\n\n\t\t\t\tthis[key] = tmpValue;\n\t\t\t});\n\n\t\t\t_.each(this._unsetCollections, (child, key) => {\n\t\t\t\tconst tmpValue = this._values[key];\n\n\t\t\t\treplacePropertyDefinition(this, key);\n\n\t\t\t\tthis[key] = tmpValue;\n\t\t\t});\n\t\t},\n\n\t\t// Make safeSet less safe... as we do need to run this twice\n\t\t_safeSet: function safeSet(property, value) {\n\t\t\tthis[property] = value;\n\t\t\treturn this;\n\t\t},\n\n\t\turlRoot() {\n\t\t\treturn this.getResourceURL();\n\t\t},\n\n\t\tgetFullURLPath(path) {\n\t\t\tif (path === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet url = path;\n\t\t\tif (url.slice(-1) !== \"/\" && url.indexOf(\"?\") === -1) {\n\t\t\t\turl += \"/\";\n\t\t\t}\n\n\t\t\tif (Object.keys(this.queryData).length) {\n\t\t\t\turl += `?${qs.stringify(this.queryData, { arrayFormat: \"repeat\" })}`;\n\t\t\t}\n\t\t\treturn url;\n\t\t},\n\n\t\t/*\n\t\t * Get url\n\t\t * @return {String}\n\t\t */\n\t\turl() {\n\t\t\tif (this._url && this.isNew()) {\n\t\t\t\treturn this.getFullURLPath(this._url);\n\t\t\t}\n\t\t\treturn this.getFullURLPath(this.getPlainURL());\n\t\t},\n\n\t\t// Returns url without query data\n\t\tgetPlainURL() {\n\t\t\tif (!this.modelName) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet resp = Model.prototype.url.call(this);\n\n\t\t\tif (resp.slice(-1) !== \"/\" && resp.indexOf(\"?\") === -1) {\n\t\t\t\tresp += \"/\";\n\t\t\t}\n\n\t\t\tif (!resp.includes(\"{\") || !resp.includes(\"}\")) {\n\t\t\t\treturn resp;\n\t\t\t}\n\n\t\t\t// Replace any values in a url with one from the model.\n\t\t\t// So if you have /path/to/{model.id}/\n\t\t\t// It will check the model from \"this.model.id\" and replace\n\t\t\t// it in the url\n\t\t\tconst re = /(\\{(?:\\w+\\.?)+\\})/g;\n\t\t\tconst matches = resp.match(re) || [];\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst path = match.slice(1, -1);\n\t\t\t\tconst replacement = _.get(this, path);\n\t\t\t\tif (replacement) {\n\t\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t\t} else if (!this.isNew()) {\n\t\t\t\t\tlog.error(`Model ${this.modelName} is missing value ${path}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn resp;\n\t\t},\n\n\t\tgetResourceURL() {\n\t\t\tif (this.modelName === null && !Object.keys(Api.resources).length) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (!Object.keys(Api.resources).length) {\n\t\t\t\treturn `/${this.modelName}/`;\n\t\t\t}\n\n\t\t\tif (this.modelName === null) {\n\t\t\t\treturn Api.getURL();\n\t\t\t}\n\t\t\treturn Api.getResourceURL(this.modelName);\n\t\t},\n\n\t\tasync waitForReady(opts = {}, attempts = 20) {\n\t\t\tif (attempts === 0) {\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\t\t\treturn this.fetch(opts).then(() => {\n\t\t\t\tif (!this.creation_status) {\n\t\t\t\t\treturn Promise.reject(new Error(\"No creation_status key found\"));\n\t\t\t\t}\n\n\t\t\t\tif ([\"ready\", \"failed\"].indexOf(this.creation_status) > -1) {\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\t\t\t\treturn Promise.delay(1000).then(() =>\n\t\t\t\t\tthis.waitForReady(opts, attempts - 1),\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\tsync() {\n\t\t\treturn sync.apply(this, arguments);\n\t\t},\n\n\t\tserialize(opts = { derived: true }) {\n\t\t\t// Return nothing if data passed is falsy. More than likely this is\n\t\t\t// a null value\n\t\t\tif (!this._data) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\t// Urls only will build a model without its children/collections expanded -\n\t\t\t// it will return urls instead of the full model.\n\t\t\tconst { urlsOnly = false } = opts ?? {};\n\n\t\t\tconst data = Model.prototype.serialize.apply(this, arguments);\n\t\t\tdata.url = this.url();\n\n\t\t\tlet derived = this.getAttributes(opts);\n\t\t\tderived = Object.keys(derived).reduce((object, key) => {\n\t\t\t\tlet value = derived[key];\n\t\t\t\tif (value instanceof Collection || value instanceof Model) {\n\t\t\t\t\tvalue = value.toJSON();\n\t\t\t\t}\n\t\t\t\tobject[key] = value;\n\t\t\t\treturn object;\n\t\t\t}, {});\n\n\t\t\tconst allCollectionKeys = [\n\t\t\t\t...Object.keys(this._unsetCollections),\n\t\t\t\t...Object.keys(this._collections),\n\t\t\t];\n\n\t\t\tfor (const key of allCollectionKeys) {\n\t\t\t\tconst constructor = this._unsetCollections[key];\n\n\t\t\t\tif (urlsOnly && this[key]) {\n\t\t\t\t\tif (typeof this._values[key] === \"string\") {\n\t\t\t\t\t\tderived[key] = this._values[key];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tderived[key] = this[key].map((m) => m.url());\n\t\t\t\t\t}\n\t\t\t\t} else if (!constructor) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (constructor.canBeEmpty && !this._values[key]) {\n\t\t\t\t\tderived[key] = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst allChildrenKeys = [\n\t\t\t\t...Object.keys(this._unsetChildren),\n\t\t\t\t...(urlsOnly ? Object.keys(this._children) : []),\n\t\t\t];\n\n\t\t\tfor (const key of allChildrenKeys) {\n\t\t\t\tconst constructor = this._unsetChildren[key];\n\n\t\t\t\tif (urlsOnly && this[key]) {\n\t\t\t\t\tderived[key] = this[key].url();\n\t\t\t\t} else if (!constructor) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (constructor.canBeEmpty && !this._values[key] && this[key]) {\n\t\t\t\t\tderived[key] = this[key].url();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn _.extend(data, derived);\n\t\t},\n\n\t\t// Safely retrieve the url from a child or collection that may or may not\n\t\t// be hydrated\n\t\t_retrieveURL(item) {\n\t\t\tif (_.isUndefined(item) || item === null) {\n\t\t\t\treturn item;\n\t\t\t} else if (typeof item === \"string\") {\n\t\t\t\t// It's just a url string\n\t\t\t\treturn item;\n\t\t\t} else if (item instanceof Model) {\n\t\t\t\treturn item.isNew() && !item._url ? null : item.url();\n\t\t\t} else if (item instanceof Collection) {\n\t\t\t\treturn _.map(item.toJSON(), \"url\");\n\t\t\t} else if (_.isArray(item)) {\n\t\t\t\t// It's an array of urls or objects\n\t\t\t\treturn item.map((child) => {\n\t\t\t\t\treturn this._retrieveURL(child);\n\t\t\t\t});\n\t\t\t} else if (typeof item === \"object\" && item !== null) {\n\t\t\t\treturn typeof item.url === \"function\" ? item.url() : item.url;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t},\n);\n\nfunction replacePropertyDefinition(object, name) {\n\tfunction addCollection(value) {\n\t\tconst data = typeof value === \"string\" ? { url: value } : value;\n\n\t\tconst collection = new object._collections[name](data, { parent: object });\n\t\tobject._expandedValues[name] = collection;\n\n\t\treturn object._expandedValues[name];\n\t}\n\n\tfunction addChild(value) {\n\t\tconst data = typeof value === \"string\" ? { url: value } : value;\n\n\t\tconst child = new object._children[name](data, { parent: object });\n\t\tobject._expandedValues[name] = child;\n\n\t\treturn object._expandedValues[name];\n\t}\n\n\tfunction expandCollection(value) {\n\t\tobject._collections[name] = object._unsetCollections[name];\n\t\tdelete object._unsetCollections[name];\n\n\t\treturn addCollection(value);\n\t}\n\n\tfunction expandChild(value) {\n\t\tobject._children[name] = object._unsetChildren[name];\n\t\tdelete object._unsetChildren[name];\n\n\t\treturn addChild(value);\n\t}\n\n\tObject.defineProperty(object, name, {\n\t\tset(val) {\n\t\t\tif (_.includes(Object.keys(object._children), name)) {\n\t\t\t\tif (val instanceof Model) {\n\t\t\t\t\tobject._expandedValues[name] = val;\n\t\t\t\t} else if (val !== this[name].url()) {\n\t\t\t\t\taddChild(val);\n\t\t\t\t}\n\t\t\t} else if (_.includes(Object.keys(object._collections), name)) {\n\t\t\t\tif (val instanceof Collection) {\n\t\t\t\t\tobject._expandedValues[name] = val;\n\t\t\t\t} else if (this[name].length || val !== this[name].url()) {\n\t\t\t\t\taddCollection(val);\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tval &&\n\t\t\t\tval instanceof Model &&\n\t\t\t\t_.includes(Object.keys(object._unsetChildren), name)\n\t\t\t) {\n\t\t\t\tobject._expandedValues[name] = expandChild(val.toJSON());\n\t\t\t} else if (\n\t\t\t\tval &&\n\t\t\t\tval instanceof Collection &&\n\t\t\t\t_.includes(Object.keys(object._unsetCollections), name)\n\t\t\t) {\n\t\t\t\tobject._expandedValues[name] = expandCollection(val.toJSON());\n\t\t\t} else {\n\t\t\t\tobject._values[name] = val;\n\t\t\t}\n\t\t},\n\t\tget() {\n\t\t\tif (!this._values) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Trying to retrieve value ${name} of model ${object.modelName} during constructor`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(_.includes(Object.keys(object._collections), name) ||\n\t\t\t\t\t_.includes(Object.keys(object._children), name)) &&\n\t\t\t\t_.includes(Object.keys(object._expandedValues), name)\n\t\t\t) {\n\t\t\t\treturn object._expandedValues[name];\n\t\t\t}\n\n\t\t\tconst value = object._values[name];\n\n\t\t\tif (this.isFetching) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(_.isUndefined(value) || value === null) &&\n\t\t\t\t!(\n\t\t\t\t\tobject._unsetChildren[name] && object._unsetChildren[name].canBeEmpty\n\t\t\t\t) &&\n\t\t\t\t!(\n\t\t\t\t\tobject._unsetCollections[name] &&\n\t\t\t\t\tobject._unsetCollections[name].canBeEmpty\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (_.includes(Object.keys(object._unsetCollections), name)) {\n\t\t\t\treturn expandCollection(value);\n\t\t\t} else if (_.includes(Object.keys(object._unsetChildren), name)) {\n\t\t\t\treturn expandChild(value);\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tconfigurable: true,\n\t});\n}\n\n// Make matchesURL available as a static method\nBaseModel.matchesURL = function (url) {\n\treturn this.prototype.matchesURL(url);\n};\n\nBaseModel.getIDFromURL = function (...args) {\n\treturn this.prototype.getIDFromURL(...args);\n};\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,eAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,SAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,0BAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,OAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,SAAA,GAAAL,sBAAA,CAAAH,OAAA;AACA,IAAAS,IAAA,GAAAN,sBAAA,CAAAH,OAAA;AACA,IAAAU,OAAA,GAAAP,sBAAA,CAAAH,OAAA;AACA,IAAAW,GAAA,GAAAR,sBAAA,CAAAH,OAAA;AACA,IAAAY,cAAA,GAAAZ,OAAA;AACA,IAAAa,MAAA,GAAAb,OAAA;AACA,IAAAc,IAAA,GAAAX,sBAAA,CAAAH,OAAA;AAAuB,IAAAe,eAAA;AAAA,SAAAC,2BAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,yBAAAC,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,CAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,CAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,CAAA,IAAAD,CAAA,uBAAAA,CAAA,CAAAQ,MAAA,IAAAN,CAAA,KAAAF,CAAA,GAAAE,CAAA,OAAAO,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,WAAAH,EAAA,IAAAT,CAAA,CAAAQ,MAAA,KAAAK,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAAd,CAAA,CAAAS,EAAA,UAAAR,CAAA,WAAAA,EAAAD,CAAA,UAAAA,CAAA,KAAAe,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAAC,CAAA,EAAAC,CAAA,OAAAC,CAAA,gBAAAR,CAAA,WAAAA,EAAA,IAAAT,CAAA,GAAAA,CAAA,CAAAkB,IAAA,CAAApB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAZ,CAAA,GAAAE,CAAA,CAAAmB,IAAA,WAAAH,CAAA,GAAAlB,CAAA,CAAAa,IAAA,EAAAb,CAAA,KAAAC,CAAA,WAAAA,EAAAD,CAAA,IAAAmB,CAAA,OAAAF,CAAA,GAAAjB,CAAA,KAAAe,CAAA,WAAAA,EAAA,UAAAG,CAAA,YAAAhB,CAAA,CAAAoB,MAAA,IAAApB,CAAA,CAAAoB,MAAA,oBAAAH,CAAA,QAAAF,CAAA;AAAA,SAAAV,4BAAAP,CAAA,EAAAkB,CAAA,QAAAlB,CAAA,2BAAAA,CAAA,SAAAuB,iBAAA,CAAAvB,CAAA,EAAAkB,CAAA,OAAAhB,CAAA,MAAAsB,QAAA,CAAAJ,IAAA,CAAApB,CAAA,EAAAyB,KAAA,6BAAAvB,CAAA,IAAAF,CAAA,CAAA0B,WAAA,KAAAxB,CAAA,GAAAF,CAAA,CAAA0B,WAAA,CAAAC,IAAA,aAAAzB,CAAA,cAAAA,CAAA,GAAAG,KAAA,CAAAuB,IAAA,CAAA5B,CAAA,oBAAAE,CAAA,+CAAA2B,IAAA,CAAA3B,CAAA,IAAAqB,iBAAA,CAAAvB,CAAA,EAAAkB,CAAA;AAAA,SAAAK,kBAAAvB,CAAA,EAAAkB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,MAAAU,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,YAAAP,CAAA,MAAAW,CAAA,GAAAP,KAAA,CAAAa,CAAA,GAAAjB,CAAA,GAAAiB,CAAA,EAAAjB,CAAA,IAAAW,CAAA,CAAAX,CAAA,IAAAD,CAAA,CAAAC,CAAA,UAAAW,CAAA;AAEvB;AACA;AACA;AACA;AACO,IAAMkB,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,uBAAK,CAACC,MAAM,CACpC,+BAAgC;EAC/BC,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,CAAC,CAAC;EACbC,UAAU,EAAE,QAAQ;EAEpB;EACA;EACAC,UAAU,EAAE,KAAK;EAEjB;EACA;EACAC,UAAU,EAAE,IAAI;EAEhB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAC,YAAY,EAAE,CAAC,CAAC;EAEhBb,WAAW,WAAXA,WAAWA,CAAA,EAAwB;IAAA,IAAvBc,KAAK,GAAAC,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;IAAA,IAAEE,IAAI,GAAAF,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;IAChC,IAAMG,OAAO,GAAGC,eAAC,CAACC,QAAQ,CAACH,IAAI,EAAE;MAChCI,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IAEF,IAAIA,IAAI,GAAGP,KAAK;IAEhB,IAAI,CAACQ,cAAc,GAAG,CAAC,CAAC;IACxB,IAAI,CAACC,iBAAiB,GAAG,CAAC,CAAC;IAC3B,IAAI,CAACC,eAAe,GAAG,CAAC,CAAC;IAEzB,IAAIH,IAAI,KAAK,IAAI,EAAE;MAClBA,IAAI,GAAG,CAAC,CAAC;IACV;;IAEA;IACA,IAAIA,IAAI,YAAYf,uBAAK,EAAE;MAC1Be,IAAI,GAAGA,IAAI,CAACI,MAAM,CAAC,CAAC;IACrB;IAEA,IAAI,CAAChB,SAAS,GAAGS,OAAO,CAACG,IAAI;;IAE7B;IACA,IAAIF,eAAC,CAACO,QAAQ,CAACL,IAAI,CAAC,EAAE;MACrBA,IAAI,GAAG;QAAEM,GAAG,EAAEN;MAAK,CAAC;MACpB,IAAI,CAACT,UAAU,GAAG,KAAK;IACxB;;IAEA;IACA,IAAIO,eAAC,CAACS,QAAQ,CAACP,IAAI,CAAC,EAAE;MACrBA,IAAI,GAAG;QAAEQ,EAAE,EAAER;MAAK,CAAC;MACnB,IAAI,CAACT,UAAU,GAAG,KAAK;IACxB;IAEA,IAAMkB,QAAQ,GAAGX,eAAC,CAACZ,MAAM,CAAC,CAAC,CAAC,EAAEc,IAAI,CAAC;IAEnC,IAAI,CAACP,KAAK,GAAGgB,QAAQ;IACrB,IAAI,CAACC,QAAQ,GAAGb,OAAO;;IAEvB;IACA,IAAI,CAACc,SAAS,GAAGb,eAAC,CAACc,KAAK,CAAC,IAAI,CAACD,SAAS,CAAC;IACxC,IAAI,CAACE,YAAY,GAAGf,eAAC,CAACc,KAAK,CAAC,IAAI,CAACC,YAAY,CAAC;IAC9C,IAAI,CAACC,WAAW,GAAGhB,eAAC,CAACc,KAAK,CAAC,IAAI,CAACE,WAAW,CAAC;;IAE5C;IACA;IACA,IAAIL,QAAQ,IAAI,OAAOA,QAAQ,CAACH,GAAG,KAAK,QAAQ,EAAE;MACjD,IAAI,CAACxD,IAAI,GAAG2D,QAAQ,CAACH,GAAG;IACzB;IAEA,KAAK,IAAMS,GAAG,IAAIN,QAAQ,EAAE;MAC3B,IAAMO,GAAG,GAAGP,QAAQ,CAACM,GAAG,CAAC;MACzB;MACA;MACA,IAAIC,GAAG,KAAKA,GAAG,CAACC,OAAO,IAAID,GAAG,YAAYE,gCAAU,CAAC,EAAE;QACtDT,QAAQ,CAACM,GAAG,CAAC,GAAGC,GAAG,CAACZ,MAAM,CAAC,CAAC;MAC7B;MAEA,IAAIY,GAAG,IAAI1D,KAAK,CAACC,OAAO,CAACyD,GAAG,CAAC,EAAE;QAC9BP,QAAQ,CAACM,GAAG,CAAC,GAAGC,GAAG,CAACG,GAAG,CAAC,UAACC,GAAG,EAAK;UAChC,IAAIA,GAAG,YAAYnC,uBAAK,EAAE;YACzB,OAAOmC,GAAG,CAAChB,MAAM,CAAC,CAAC;UACpB;UACA,OAAOgB,GAAG;QACX,CAAC,CAAC;MACH;IACD;IAEA,IAAI,CAACC,cAAc,CAAC,CAAC;IAErB,IAAI,CAACC,gBAAgB,CAAC,CAAC;IAEvB,IAAMd,EAAE,GAAG,IAAI,CAACe,YAAY,CAAC,IAAI,CAACzE,IAAI,CAAC;IAEvC,IAAI,CAAC2D,QAAQ,CAACD,EAAE,IAAIA,EAAE,EAAE;MACvBC,QAAQ,CAACD,EAAE,GAAGA,EAAE;IACjB;IAEAvB,uBAAK,CAACuC,SAAS,CAAC7C,WAAW,CAACN,IAAI,CAAC,IAAI,EAAEoC,QAAQ,EAAEZ,OAAO,CAAC;IAEzD,IAAI,CAAC4B,WAAW,CAAC,CAAC;;IAElB;IACA,IAAI,CAACC,gBAAgB,CAAC,CAAC;EACxB,CAAC;EAED;EACA;EACAD,WAAW,WAAXA,WAAWA,CAAA,EAAG;IACb,SAAAE,EAAA,MAAAC,YAAA,GAAyBC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACC,QAAQ,CAAC,EAAAJ,EAAA,GAAAC,YAAA,CAAAnE,MAAA,EAAAkE,EAAA,IAAE;MAAhD,IAAMK,UAAU,GAAAJ,YAAA,CAAAD,EAAA;MACpB,IAAI,CAAC,IAAI,CAAClC,KAAK,CAACuC,UAAU,CAAC,EAAE;QAC5B;MACD;MAEA,IAAI,IAAI,CAACA,UAAU,CAAC,YAAY/C,uBAAK,EAAE;QACtC,SAAAgD,GAAA,MAAAC,aAAA,GAA0BL,MAAM,CAACC,IAAI,CAAC,IAAI,CAACrC,KAAK,CAACuC,UAAU,CAAC,CAAC,EAAAC,GAAA,GAAAC,aAAA,CAAAzE,MAAA,EAAAwE,GAAA,IAAE;UAA1D,IAAME,WAAW,GAAAD,aAAA,CAAAD,GAAA;UACrB,IAAI,CAACD,UAAU,CAAC,CAACI,GAAG,CACnBD,WAAW,EACX,IAAI,CAAC1C,KAAK,CAACuC,UAAU,CAAC,CAACG,WAAW,CACnC,CAAC;QACF;MACD;;MAEA;MACA,IAAI,IAAI,CAACH,UAAU,CAAC,YAAYd,gCAAU,EAAE;QAC3C,IAAI,CAACc,UAAU,CAAC,CAACI,GAAG,CAAC,IAAI,CAAC3C,KAAK,CAACuC,UAAU,CAAC,CAAC;MAC7C;IACD;EACD,CAAC;EAED;EACAK,WAAW,WAAXA,WAAWA,CAAC/B,GAAG,EAAwB;IAAA,IAAtBgC,aAAa,GAAA5C,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,IAAI;IACpC,IAAI,CAAC,IAAI,CAACP,SAAS,IAAI,IAAI,CAACoD,OAAO,CAAC,CAAC,KAAKC,QAAG,CAACC,MAAM,CAAC,CAAC,EAAE;MACvD,OAAO,KAAK;IACb;IAEA,IAAMC,YAAY,GAAG5C,eAAC,CAACZ,MAAM,CAC5B,CAAC,CAAC,EACF;MACCyD,SAAS,EAAE,IAAI,CAACtD;IACjB,CAAC,EACD,IAAI,CAACG,YACN,CAAC;IAED,IAAMoD,OAAO,GAAGf,MAAM,CAACC,IAAI,CAACY,YAAY,CAAC,CAACG,MAAM,CAAC,UAACC,MAAM,EAAE/B,GAAG,EAAK;MACjE,IAAMgC,IAAI,GAAGL,YAAY,CAAC3B,GAAG,CAAC;MAC9B,IAAMnC,IAAI,GAAGmC,GAAG,CAACiC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;MACpC,IAAID,IAAI,KAAK,QAAQ,EAAE;QACtBD,MAAM,CAAClE,IAAI,CAAC,GAAG,MAAM;MACtB,CAAC,MAAM,IAAImE,IAAI,KAAK,MAAM,EAAE;QAC3BD,MAAM,CAAClE,IAAI,CAAC,GAAG,kBAAkB;MAClC,CAAC,MAAM,IAAImE,IAAI,KAAK,QAAQ,EAAE;QAC7BD,MAAM,CAAClE,IAAI,CAAC,GAAG,MAAM;MACtB,CAAC,MAAM;QACN,MAAM,IAAIqE,KAAK,wBAAAC,MAAA,CAAwBH,IAAI,OAAI,CAAC;MACjD;MACA,OAAOD,MAAM;IACd,CAAC,EAAE,CAAC,CAAC,CAAC;;IAEN;IACA;IACA,IAAMK,cAAc,GAAG,IAAI,CAACZ,OAAO,CAAC,CAAC,CAACS,OAAO,CAACR,QAAG,CAACC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;IAC/D,IAAIW,YAAY,GAAGD,cAAc,CAACzE,KAAK,CAAC,CAAC;IACzC,IAAI4D,aAAa,EAAE;MAClBc,YAAY,IAAI,cAAc;IAC/B;;IAEA;IACA;IACA;IACA;IACA,IAAMC,KAAK,GAAGD,YAAY,CAACC,KAAK,CAAC,GAAG,CAAC;IACrC,IAAMC,QAAQ,GAAGD,KAAK,CAACE,SAAS,CAAC,UAACC,GAAG,EAAK;MACzC,OAAOA,GAAG,CAACC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9B,CAAC,CAAC;IAEF,IAAIH,QAAQ,IAAI,CAAC,EAAE;MAClB,IAAMI,uBAAuB,GAAGpD,GAAG,CAAC0C,OAAO,CAACR,QAAG,CAACC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;MAE7D,IAAMkB,OAAO,GAAGN,KAAK,CAAC3E,KAAK,CAAC,CAAC,EAAE4E,QAAQ,CAAC,CAACM,IAAI,CAAC,GAAG,CAAC;MAClD,IAAIF,uBAAuB,CAACD,OAAO,CAACE,OAAO,CAAC,KAAK,CAAC,EAAE;QACnD,OAAO,KAAK;MACb;IACD;;IAEA;IACA,IAAIE,kBAAkB;IACtB,IAAI;MACHA,kBAAkB,GAAG/D,eAAC,CAACgE,QAAQ,CAACV,YAAY,CAACJ,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;QACjEe,WAAW,EAAE;MACd,CAAC,CAAC,CAACnB,OAAO,CAAC;IACZ,CAAC,CAAC,OAAO1F,CAAC,EAAE;MACX8G,YAAG,CAACC,KAAK,KACRC,iBAAM,EAAAnH,eAAA,KAAAA,eAAA,OAAAoH,uBAAA,CAAAC,OAAA,4JACgB9D,GAAG,EAAgB,IAAI,CAACnB,SAAS,GAGvDjC,CACD,CAAC;MACD,OAAO,KAAK;IACb;;IAEA;IACA,IAAMmH,UAAU,QAAAnB,MAAA,CAAQW,kBAAkB,CAACb,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAG;IACjE,IAAMsB,EAAE,GAAG,IAAIC,MAAM,CAACF,UAAU,CAAC;IACjC,OAAOC,EAAE,CAACxF,IAAI,CAACwB,GAAG,CAAC;EACpB,CAAC;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACAiB,YAAY,WAAZA,YAAYA,CAACjB,GAAG,EAAiB;IAAA,IAAfkE,QAAQ,GAAA9E,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,EAAE;IAC9B,IAAM+E,WAAW,GAAGD,QAAQ,IAAI,IAAI,CAACE,cAAc,CAAC,CAAC;IAErD,IAAI,OAAOpE,GAAG,KAAK,QAAQ,IAAI,CAACmE,WAAW,EAAE;MAC5C,OAAO,IAAI;IACZ;IAEA,IAAME,OAAO,GAAGC,YAAI,CAACC,KAAK,CAACvE,GAAG,CAAC,CAACwE,IAAI;IACpC,IAAMC,eAAe,GAAGH,YAAI,CAACC,KAAK,CAACJ,WAAW,CAAC,CAACK,IAAI;;IAEpD;IACA,IAAME,WAAW,GAAGD,eAAe,CAAC1B,KAAK,CAAC,MAAM,CAAC,CAACO,IAAI,CAAC,EAAE,CAAC;IAC1D,IAAMqB,MAAM,GAAGN,OAAO,CAACtB,KAAK,CAAC,MAAM,CAAC,CAACO,IAAI,CAAC,EAAE,CAAC;;IAE7C;IACA,IAAI,CAACqB,MAAM,IAAIA,MAAM,KAAKD,WAAW,EAAE;MACtC,OAAO,IAAI;IACZ;IAEA,IAAME,KAAK,GAAGD,MAAM,CAAC5B,KAAK,CAAC2B,WAAW,CAAC,CAACpB,IAAI,CAAC,EAAE,CAAC;IAEhD,IAAI,CAACsB,KAAK,CAACC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE1H,MAAM,KAAK,CAAC,EAAE;MAC5C,OAAO2H,QAAQ,CAACF,KAAK,CAACxG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACxC;IAEA,OAAO,IAAI;EACZ,CAAC;EAED;EACA2G,UAAU,WAAVA,UAAUA,CAAC/E,GAAG,EAAE;IACf,OAAO,IAAI,CAAC+B,WAAW,CAAC/B,GAAG,EAAE,IAAI,CAAC;EACnC,CAAC;EAEDgF,SAAS,EAAE;IACVC,IAAI,EAAE;MACLnD,GAAG,EAAE,SAALA,GAAGA,CAAGoD,MAAM,EAAK;QAChB,OAAO;UACNhC,GAAG,EAAEgC,MAAM,GAAGC,eAAM,CAACC,GAAG,CAACF,MAAM,CAAC,CAACG,MAAM,CAACC,oBAAa,CAAC,GAAG,IAAI;UAC7D7C,IAAI,EAAE;QACP,CAAC;MACF,CAAC;MACD8C,OAAO,EAAE,SAATA,OAAOA,CAAGC,UAAU,EAAEN,MAAM,EAAK;QAChC,IAAI,OAAOM,UAAU,KAAK,WAAW,EAAE;UACtC,OAAO,KAAK;QACb;QAEA,IAAIA,UAAU,IAAIN,MAAM,EAAE;UACzB,OAAO,IAAAC,eAAM,EAACK,UAAU,CAAC,CAACC,MAAM,CAAC,IAAAN,eAAM,EAACD,MAAM,CAAC,CAAC;QACjD;QACA,OAAOM,UAAU,KAAKN,MAAM;MAC7B;IACD,CAAC;IACDQ,eAAe,EAAE;MAChB5D,GAAG,EAAE,SAALA,GAAGA,CAAGoD,MAAM,EAAK;QAChB,OAAO;UACNhC,GAAG,EAAEgC,MAAM,GAAG,IAAAS,2BAAoB,EAACT,MAAM,CAAC,GAAGA,MAAM;UACnDzC,IAAI,EAAE;QACP,CAAC;MACF,CAAC;MACD8C,OAAO,EAAE,SAATA,OAAOA,CAAGC,UAAU,EAAEN,MAAM,EAAK;QAChC,OAAOM,UAAU,KAAKN,MAAM;MAC7B,CAAC;MACDU,GAAG,EAAE,SAALA,GAAGA,CAAG1C,GAAG,EAAK;QACb,OAAOA,GAAG;MACX;IACD,CAAC;IACD2C,GAAG,EAAE;MACJ/B,OAAO,EAAE,SAATA,QAAOA,CAAA,EAAQ;QACd,OAAO,IAAI;MACZ;IACD;EACD,CAAC;EAED;AACF;AACA;EACEgC,KAAK,EAAE;IACN5F,EAAE,EAAE;MAAEuC,IAAI,EAAE,KAAK;MAAEsD,QAAQ,EAAE;IAAM;EACpC,CAAC;EAED;AACF;AACA;AACA;EACEC,QAAQ,WAARA,QAAQA,CAAA,EAAG;IACV,OAAO,IAAI,CAACC,SAAS,CAAC,CAAC;EACxB,CAAC;EAEDC,mBAAmB,WAAnBA,mBAAmBA,CAACC,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAE;IACxC,IAAM1H,KAAK,GAAG2H,+BAAgB,CAACD,KAAK,CAAC;IACrC,IAAI,CAAC1H,KAAK,EAAE;MACX,MAAM,IAAIgE,KAAK,KAAAC,MAAA,CACVyD,KAAK,uDAAAzD,MAAA,CAAoD,IAAI,CAAC/D,SAAS,aAC5E,CAAC;IACF;IACA,IAAI,CAACwB,SAAS,CAAC+F,IAAI,CAAC,GAAGzH,KAAK;EAC7B,CAAC;EAED4H,mBAAmB,WAAnBA,mBAAmBA,CAACC,KAAK,EAAEJ,IAAI,EAAEK,UAAU,EAAE;IAC5C,IAAM7F,UAAU,GAAG4F,KAAK,CAACC,UAAU,CAAC;IACpC,IAAI,CAAC7F,UAAU,EAAE;MAChB,MAAM,IAAI+B,KAAK,KAAAC,MAAA,CACV6D,UAAU,uDAAA7D,MAAA,CAAoD,IAAI,CAAC/D,SAAS,aACjF,CAAC;IACF;IACA,IAAI,CAAC0B,YAAY,CAAC6F,IAAI,CAAC,GAAGxF,UAAU;EACrC,CAAC;EAED;AACF;AACA;EACEG,cAAc,WAAdA,cAAcA,CAAA,EAAG;IAAA,IAAA2F,KAAA;IAChB;IACA;IACAlH,eAAC,CAACmH,IAAI,CACL,IAAI,CAACtG,SAAS,EACd,UAACgG,KAAK,EAAED,IAAI,EAAK;MAChB,IAAI,OAAOC,KAAK,KAAK,QAAQ,EAAE;QAC9B,IACCK,KAAI,CAACtG,QAAQ,CAACwG,MAAM,IACpBP,KAAK,KAAKK,KAAI,CAACtG,QAAQ,CAACwG,MAAM,CAACC,aAAa,EAC3C;UACD;UACA;UACA,OAAOH,KAAI,CAACrG,SAAS,CAAC+F,IAAI,CAAC;;UAE3B;UACA;UACAM,KAAI,CAAClG,WAAW,CAAC4F,IAAI,CAAC,GAAG;YAAE3D,IAAI,EAAE;UAAM,CAAC;UAExCiE,KAAI,CAACN,IAAI,CAAC,GAAGM,KAAI,CAACtG,QAAQ,CAACwG,MAAM;QAClC,CAAC,MAAM;UACNF,KAAI,CAACR,mBAAmB,CAACI,+BAAgB,EAAEF,IAAI,EAAEC,KAAK,CAAC;QACxD;MACD;IACD,CAAC,EACD,IACD,CAAC;;IAED;IACA7G,eAAC,CAACmH,IAAI,CACL,IAAI,CAACpG,YAAY,EACjB,UAACkG,UAAU,EAAEL,IAAI,EAAK;MACrB,IAAI,OAAOK,UAAU,KAAK,QAAQ,EAAE;QACnCC,KAAI,CAACH,mBAAmB,CAACD,+BAAgB,EAAEF,IAAI,EAAEK,UAAU,CAAC;MAC7D;IACD,CAAC,EACD,IACD,CAAC;EACF,CAAC;EAEDK,eAAe,WAAfA,eAAeA,CAACC,QAAQ,EAAE;IAAA,IAAAC,MAAA;IACzB,IAAI,CAAC7H,KAAK,GAAG4H,QAAQ,IAAI,CAAC,CAAC;IAE3B,IAAI,CAACA,QAAQ,EAAE;MACd;IACD;;IAEA;IACA;;IAEAxF,MAAM,CAACC,IAAI,CAAC,IAAI,CAACnB,SAAS,CAAC,CAAC4G,OAAO,CAAC,UAACxG,GAAG,EAAK;MAC5C,IAAIsG,QAAQ,CAACtG,GAAG,CAAC,EAAE;QAClBuG,MAAI,CAACvG,GAAG,CAAC,GAAGsG,QAAQ,CAACtG,GAAG,CAAC;MAC1B;IACD,CAAC,CAAC;IAEFc,MAAM,CAACC,IAAI,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC0G,OAAO,CAAC,UAACxG,GAAG,EAAK;MAC/C,IAAIsG,QAAQ,CAACtG,GAAG,CAAC,EAAE;QAClBuG,MAAI,CAACvG,GAAG,CAAC,GAAGsG,QAAQ,CAACtG,GAAG,CAAC;MAC1B;IACD,CAAC,CAAC;EACH,CAAC;EAEDyG,IAAI,WAAJA,IAAIA,CAAA,EAAG;IAAA,IAAAC,MAAA;IACN,OAAOxI,uBAAK,CAACuC,SAAS,CAACgG,IAAI,CAACE,KAAK,CAAC,IAAI,EAAEhI,SAAS,CAAC,CAACiI,GAAG,CAAC,UAACN,QAAQ,EAAK;MACpEI,MAAI,CAACL,eAAe,CAACC,QAAQ,CAAC;IAC/B,CAAC,CAAC;EACH,CAAC;EAEDO,KAAK,WAALA,KAAKA,CAAA,EAAe;IAAA,IAAAC,MAAA;IAAA,IAAdhI,OAAO,GAAAH,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;IACjB,IAAIG,OAAO,CAACS,GAAG,EAAE;MAChB,IAAI,CAACxD,IAAI,GAAG+C,OAAO,CAACS,GAAG;IACxB;IAEA,IAAI,CAACI,QAAQ,GAAGZ,eAAC,CAACZ,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACwB,QAAQ,EAAEb,OAAO,CAAC;IAEpD,IAAI,CAACP,UAAU,GAAG,IAAI;IACtB,OAAOL,uBAAK,CAACuC,SAAS,CAACoG,KAAK,CAACF,KAAK,CAAC,IAAI,EAAEhI,SAAS,CAAC,CAACiI,GAAG,CAAC,UAACN,QAAQ,EAAK;MACrEQ,MAAI,CAACtI,UAAU,GAAG,IAAI;MACtBsI,MAAI,CAACvI,UAAU,GAAG,KAAK;MACvBuI,MAAI,CAACT,eAAe,CAACC,QAAQ,CAAC;IAC/B,CAAC,CAAC;EACH,CAAC;EAEDxH,OAAO,WAAPA,OAAOA,CAAA,EAAe;IAAA,IAAdA,OAAO,GAAAH,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;IACnB,IAAIG,OAAO,CAACS,GAAG,EAAE;MAChB,IAAI,CAACxD,IAAI,GAAG+C,OAAO,CAACS,GAAG;IACxB;IACA,OAAO,IAAAwH,kCAAiB,EAAC,SAAS,EAAE,IAAI,CAACxH,GAAG,CAAC,CAAC,CAAC,CAC7C8B,GAAG,CAACrD,SAAS,CAACgJ,IAAI,CAACC,OAAO,CAAC,CAC3BC,IAAI,CAAC,UAACC,GAAG,EAAK;MACd,OAAOA,GAAG,CAACC,IAAI;IAChB,CAAC,CAAC;EACJ,CAAC;EAEDC,SAAS,WAATA,SAASA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC7I,UAAU;EACvB,CAAC;EAED8I,YAAY,WAAZA,YAAYA,CAACtH,GAAG,EAAE;IAAA,IAAAuH,MAAA;IACjB,IAAI,CAACxI,eAAC,CAACyI,WAAW,CAACxH,GAAG,CAAC,EAAE;MACxB,OAAO,CAACjB,eAAC,CAACyI,WAAW,CAAC,IAAI,CAACpI,eAAe,CAACY,GAAG,CAAC,CAAC,GAC7C,IAAI,CAACZ,eAAe,CAACY,GAAG,CAAC,GACzB,IAAI,CAACyH,OAAO,CAACzH,GAAG,CAAC;IACrB;IAEA,IAAM0H,KAAK,GAAG,CAAC,CAAC;IAEhB,IAAM3G,IAAI,GAAGhC,eAAC,CAAC4I,IAAI,CAClB5I,eAAC,CAACoD,MAAM,CACPpD,eAAC,CAACoD,MAAM,CACPrB,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC7B,cAAc,CAAC,EAChC4B,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC5B,iBAAiB,CACnC,CAAC,EACD2B,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC0G,OAAO,CACzB,CACD,CAAC;IAED1G,IAAI,CAACyF,OAAO,CAAC,UAACxG,GAAG,EAAK;MACrB,IAAI,CAACjB,eAAC,CAACyI,WAAW,CAACD,MAAI,CAACE,OAAO,CAACzH,GAAG,CAAC,CAAC,EAAE;QACtC0H,KAAK,CAAC1H,GAAG,CAAC,GAAGuH,MAAI,CAACE,OAAO,CAACzH,GAAG,CAAC;MAC/B;IACD,CAAC,CAAC;IAEFc,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC3B,eAAe,CAAC,CAACoH,OAAO,CAAC,UAACxG,GAAG,EAAK;MAClD0H,KAAK,CAAC1H,GAAG,CAAC,GAAGuH,MAAI,CAACvH,GAAG,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO0H,KAAK;EACb,CAAC;EAED;EACA;EACAnH,gBAAgB,WAAhBA,gBAAgBA,CAAA,EAAG;IAAA,IAAAqH,MAAA;IAClB9G,MAAM,CAACC,IAAI,CAAC,IAAI,CAACnB,SAAS,CAAC,CAAC4G,OAAO,CAAC,UAACxG,GAAG,EAAK;MAC5C4H,MAAI,CAAC7H,WAAW,CAACC,GAAG,CAAC,GAAG;QAAEgC,IAAI,EAAE;MAAM,CAAC;MACvC4F,MAAI,CAAC1I,cAAc,CAACc,GAAG,CAAC,GAAG4H,MAAI,CAAChI,SAAS,CAACI,GAAG,CAAC;MAC9C,OAAO4H,MAAI,CAAChI,SAAS,CAACI,GAAG,CAAC;IAC3B,CAAC,CAAC;IAEFc,MAAM,CAACC,IAAI,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC0G,OAAO,CAAC,UAACxG,GAAG,EAAK;MAC/C4H,MAAI,CAAC7H,WAAW,CAACC,GAAG,CAAC,GAAG;QAAEgC,IAAI,EAAE;MAAM,CAAC;MACvC4F,MAAI,CAACzI,iBAAiB,CAACa,GAAG,CAAC,GAAG4H,MAAI,CAAC9H,YAAY,CAACE,GAAG,CAAC;MACpD,OAAO4H,MAAI,CAAC9H,YAAY,CAACE,GAAG,CAAC;IAC9B,CAAC,CAAC;EACH,CAAC;EAED;EACA;EACA6H,aAAa,WAAbA,aAAaA,CAAA,EAAG;IACf,IAAIC,KAAK;IACT,IAAI,CAAC,IAAI,CAAClI,SAAS,EAAE;MACpB;IACD;IACA,KAAKkI,KAAK,IAAI,IAAI,CAAClI,SAAS,EAAE;MAC7B,IAAI6C,GAAG,GAAG,IAAI,CAAC/D,KAAK,CAACoJ,KAAK,CAAC;MAC3B,IAAIrF,GAAG,EAAE;QACR;QACA,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;UAC5BA,GAAG,GAAG;YAAElD,GAAG,EAAEkD;UAAI,CAAC;QACnB;MACD;;MAEA;MACA;MACA,IAAI,OAAO,IAAI,CAAC7C,SAAS,CAACkI,KAAK,CAAC,KAAK,UAAU,EAAE;QAChD,IAAI,CAACC,QAAQ,CACZD,KAAK,EACL,IAAI,IAAI,CAAClI,SAAS,CAACkI,KAAK,CAAC,CAACrF,GAAG,EAAE;UAAE0D,MAAM,EAAE;QAAK,CAAC,CAChD,CAAC;QACD,IAAI,CAAC6B,QAAQ,CACZ,IAAI,CAACF,KAAK,CAAC,EACX,KAAK,EACL,IAAI,CAACG,8BAA8B,CAACH,KAAK,CAC1C,CAAC;MACF,CAAC,MAAM;QACN,IAAI,CAACC,QAAQ,CAACD,KAAK,EAAErF,GAAG,CAAC;MAC1B;IACD;EACD,CAAC;EAED;EACAyF,gBAAgB,WAAhBA,gBAAgBA,CAAA,EAAG;IAClB,IAAIC,IAAI;IACR,IAAI,CAAC,IAAI,CAACrI,YAAY,EAAE;MACvB;IACD;IAEA,KAAKqI,IAAI,IAAI,IAAI,CAACrI,YAAY,EAAE;MAC/B,IAAI2C,GAAG,GAAG,IAAI,CAAC/D,KAAK,CAACyJ,IAAI,CAAC;MAC1B,IAAI1F,GAAG,EAAE;QACR,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;UAC5BA,GAAG,GAAG;YAAElD,GAAG,EAAEkD;UAAI,CAAC;QACnB;MACD;;MAEA;MACA;MACA,IAAI,OAAO,IAAI,CAAC3C,YAAY,CAACqI,IAAI,CAAC,KAAK,UAAU,EAAE;QAClD,IAAI,CAACJ,QAAQ,CACZI,IAAI,EACJ,IAAI,IAAI,CAACrI,YAAY,CAACqI,IAAI,CAAC,CAAC1F,GAAG,EAAE;UAAE0D,MAAM,EAAE;QAAK,CAAC,CAClD,CAAC;MACF,CAAC,MAAM;QACN,IAAI,CAAC4B,QAAQ,CAACI,IAAI,EAAE1F,GAAG,CAAC;MACzB;IACD;EACD,CAAC;EAED9B,gBAAgB,WAAhBA,gBAAgBA,CAAA,EAAG;IAAA,IAAAyH,MAAA;IAClBrJ,eAAC,CAACmH,IAAI,CAAC,IAAI,CAAChH,cAAc,EAAE,UAAC4I,KAAK,EAAE9H,GAAG,EAAK;MAC3C,IAAMqI,QAAQ,GAAGD,MAAI,CAACX,OAAO,CAACzH,GAAG,CAAC;MAElCsI,yBAAyB,CAACF,MAAI,EAAEpI,GAAG,CAAC;MAEpCoI,MAAI,CAACpI,GAAG,CAAC,GAAGqI,QAAQ;IACrB,CAAC,CAAC;IAEFtJ,eAAC,CAACmH,IAAI,CAAC,IAAI,CAAC/G,iBAAiB,EAAE,UAAC2I,KAAK,EAAE9H,GAAG,EAAK;MAC9C,IAAMqI,QAAQ,GAAGD,MAAI,CAACX,OAAO,CAACzH,GAAG,CAAC;MAElCsI,yBAAyB,CAACF,MAAI,EAAEpI,GAAG,CAAC;MAEpCoI,MAAI,CAACpI,GAAG,CAAC,GAAGqI,QAAQ;IACrB,CAAC,CAAC;EACH,CAAC;EAED;EACAN,QAAQ,EAAE,SAASQ,OAAOA,CAACC,QAAQ,EAAExL,KAAK,EAAE;IAC3C,IAAI,CAACwL,QAAQ,CAAC,GAAGxL,KAAK;IACtB,OAAO,IAAI;EACZ,CAAC;EAEDwE,OAAO,WAAPA,OAAOA,CAAA,EAAG;IACT,OAAO,IAAI,CAACmC,cAAc,CAAC,CAAC;EAC7B,CAAC;EAED8E,cAAc,WAAdA,cAAcA,CAAC1E,IAAI,EAAE;IACpB,IAAIA,IAAI,KAAK,IAAI,EAAE;MAClB,OAAO,IAAI;IACZ;IAEA,IAAIxE,GAAG,GAAGwE,IAAI;IACd,IAAIxE,GAAG,CAAC5B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI4B,GAAG,CAACmD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;MACrDnD,GAAG,IAAI,GAAG;IACX;IAEA,IAAIuB,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC1C,SAAS,CAAC,CAAC3B,MAAM,EAAE;MACvC6C,GAAG,QAAA4C,MAAA,CAAQuG,WAAE,CAACC,SAAS,CAAC,IAAI,CAACtK,SAAS,EAAE;QAAEuK,WAAW,EAAE;MAAS,CAAC,CAAC,CAAE;IACrE;IACA,OAAOrJ,GAAG;EACX,CAAC;EAED;AACF;AACA;AACA;EACEA,GAAG,WAAHA,GAAGA,CAAA,EAAG;IACL,IAAI,IAAI,CAACxD,IAAI,IAAI,IAAI,CAAC8M,KAAK,CAAC,CAAC,EAAE;MAC9B,OAAO,IAAI,CAACJ,cAAc,CAAC,IAAI,CAAC1M,IAAI,CAAC;IACtC;IACA,OAAO,IAAI,CAAC0M,cAAc,CAAC,IAAI,CAACK,WAAW,CAAC,CAAC,CAAC;EAC/C,CAAC;EAED;EACAA,WAAW,WAAXA,WAAWA,CAAA,EAAG;IACb,IAAI,CAAC,IAAI,CAAC1K,SAAS,EAAE;MACpB,OAAO,IAAI;IACZ;IAEA,IAAI2K,IAAI,GAAG7K,uBAAK,CAACuC,SAAS,CAAClB,GAAG,CAACjC,IAAI,CAAC,IAAI,CAAC;IAEzC,IAAIyL,IAAI,CAACpL,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIoL,IAAI,CAACrG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;MACvDqG,IAAI,IAAI,GAAG;IACZ;IAEA,IAAI,CAACA,IAAI,CAACC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAACD,IAAI,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC/C,OAAOD,IAAI;IACZ;;IAEA;IACA;IACA;IACA;IACA,IAAMxF,EAAE,GAAG,oBAAoB;IAC/B,IAAM0F,OAAO,GAAGF,IAAI,CAAC3E,KAAK,CAACb,EAAE,CAAC,IAAI,EAAE;IAAC,IAAA2F,SAAA,GAAAjN,0BAAA,CACjBgN,OAAO;MAAAE,KAAA;IAAA;MAA3B,KAAAD,SAAA,CAAArM,CAAA,MAAAsM,KAAA,GAAAD,SAAA,CAAApM,CAAA,IAAAC,IAAA,GAA6B;QAAA,IAAlBqH,KAAK,GAAA+E,KAAA,CAAAnM,KAAA;QACf,IAAM+G,IAAI,GAAGK,KAAK,CAACzG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAMyL,WAAW,GAAGrK,eAAC,CAACoG,GAAG,CAAC,IAAI,EAAEpB,IAAI,CAAC;QACrC,IAAIqF,WAAW,EAAE;UAChBL,IAAI,GAAGA,IAAI,CAAC9G,OAAO,CAACmC,KAAK,EAAEgF,WAAW,CAAC;QACxC,CAAC,MAAM,IAAI,CAAC,IAAI,CAACP,KAAK,CAAC,CAAC,EAAE;UACzB5F,YAAG,CAACC,KAAK,UAAAf,MAAA,CAAU,IAAI,CAAC/D,SAAS,wBAAA+D,MAAA,CAAqB4B,IAAI,CAAE,CAAC;QAC9D;MACD;IAAC,SAAAsF,GAAA;MAAAH,SAAA,CAAA/M,CAAA,CAAAkN,GAAA;IAAA;MAAAH,SAAA,CAAAjM,CAAA;IAAA;IAED,OAAO8L,IAAI;EACZ,CAAC;EAEDpF,cAAc,WAAdA,cAAcA,CAAA,EAAG;IAChB,IAAI,IAAI,CAACvF,SAAS,KAAK,IAAI,IAAI,CAAC0C,MAAM,CAACC,IAAI,CAACU,QAAG,CAAC6H,SAAS,CAAC,CAAC5M,MAAM,EAAE;MAClE,OAAO,IAAI;IACZ;IAEA,IAAI,CAACoE,MAAM,CAACC,IAAI,CAACU,QAAG,CAAC6H,SAAS,CAAC,CAAC5M,MAAM,EAAE;MACvC,WAAAyF,MAAA,CAAW,IAAI,CAAC/D,SAAS;IAC1B;IAEA,IAAI,IAAI,CAACA,SAAS,KAAK,IAAI,EAAE;MAC5B,OAAOqD,QAAG,CAACC,MAAM,CAAC,CAAC;IACpB;IACA,OAAOD,QAAG,CAACkC,cAAc,CAAC,IAAI,CAACvF,SAAS,CAAC;EAC1C,CAAC;EAEKmL,YAAY,WAAZA,YAAYA,CAAA,EAA2B;IAAA,IAAAC,UAAA,GAAA7K,SAAA;MAAA8K,MAAA;IAAA,WAAAC,kBAAA,CAAArG,OAAA,eAAAsG,YAAA,CAAAtG,OAAA,CAAAuG,IAAA,UAAAC,QAAA;MAAA,IAAAhL,IAAA,EAAAiL,QAAA;MAAA,OAAAH,YAAA,CAAAtG,OAAA,CAAA0G,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAA1M,IAAA;UAAA;YAA1BsB,IAAI,GAAA2K,UAAA,CAAA9M,MAAA,QAAA8M,UAAA,QAAA5K,SAAA,GAAA4K,UAAA,MAAG,CAAC,CAAC;YAAEM,QAAQ,GAAAN,UAAA,CAAA9M,MAAA,QAAA8M,UAAA,QAAA5K,SAAA,GAAA4K,UAAA,MAAG,EAAE;YAAA,MACtCM,QAAQ,KAAK,CAAC;cAAAG,QAAA,CAAA1M,IAAA;cAAA;YAAA;YAAA,OAAA0M,QAAA,CAAAE,MAAA,WACVC,iBAAO,CAACC,MAAM,CAAC,CAAC;UAAA;YAAA,OAAAJ,QAAA,CAAAE,MAAA,WAEjBV,MAAI,CAAC5C,KAAK,CAAChI,IAAI,CAAC,CAACqI,IAAI,CAAC,YAAM;cAClC,IAAI,CAACuC,MAAI,CAACa,eAAe,EAAE;gBAC1B,OAAOF,iBAAO,CAACC,MAAM,CAAC,IAAInI,KAAK,CAAC,8BAA8B,CAAC,CAAC;cACjE;cAEA,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAACQ,OAAO,CAAC+G,MAAI,CAACa,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC3D,OAAOF,iBAAO,CAACG,OAAO,CAAC,CAAC;cACzB;cACA,OAAOH,iBAAO,CAACI,KAAK,CAAC,IAAI,CAAC,CAACtD,IAAI,CAAC;gBAAA,OAC/BuC,MAAI,CAACF,YAAY,CAAC1K,IAAI,EAAEiL,QAAQ,GAAG,CAAC,CAAC;cAAA,CACtC,CAAC;YACF,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAQ,IAAA;QAAA;MAAA,GAAAZ,OAAA;IAAA;EACH,CAAC;EAEDa,IAAI,WAAJA,IAAIA,CAAA,EAAG;IACN,OAAOA,WAAI,CAAC/D,KAAK,CAAC,IAAI,EAAEhI,SAAS,CAAC;EACnC,CAAC;EAED6G,SAAS,WAATA,SAASA,CAAA,EAA2B;IAAA,IAA1B3G,IAAI,GAAAF,SAAA,CAAAjC,MAAA,QAAAiC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG;MAAEgM,OAAO,EAAE;IAAK,CAAC;IACjC;IACA;IACA,IAAI,CAAC,IAAI,CAACjM,KAAK,EAAE;MAChB,OAAO,CAAC,CAAC;IACV;;IAEA;IACA;IACA,IAAAkM,IAAA,GAA6B/L,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,CAAC,CAAC;MAAAgM,aAAA,GAAAD,IAAA,CAA/BE,QAAQ;MAARA,QAAQ,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;IAExB,IAAM5L,IAAI,GAAGf,uBAAK,CAACuC,SAAS,CAAC+E,SAAS,CAACmB,KAAK,CAAC,IAAI,EAAEhI,SAAS,CAAC;IAC7DM,IAAI,CAACM,GAAG,GAAG,IAAI,CAACA,GAAG,CAAC,CAAC;IAErB,IAAIoL,OAAO,GAAG,IAAI,CAACI,aAAa,CAAClM,IAAI,CAAC;IACtC8L,OAAO,GAAG7J,MAAM,CAACC,IAAI,CAAC4J,OAAO,CAAC,CAAC7I,MAAM,CAAC,UAACkJ,MAAM,EAAEhL,GAAG,EAAK;MACtD,IAAIhD,KAAK,GAAG2N,OAAO,CAAC3K,GAAG,CAAC;MACxB,IAAIhD,KAAK,YAAYmD,gCAAU,IAAInD,KAAK,YAAYkB,uBAAK,EAAE;QAC1DlB,KAAK,GAAGA,KAAK,CAACqC,MAAM,CAAC,CAAC;MACvB;MACA2L,MAAM,CAAChL,GAAG,CAAC,GAAGhD,KAAK;MACnB,OAAOgO,MAAM;IACd,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,IAAMC,iBAAiB,MAAA9I,MAAA,KAAA+I,mBAAA,CAAA7H,OAAA,EACnBvC,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC5B,iBAAiB,CAAC,OAAA+L,mBAAA,CAAA7H,OAAA,EACnCvC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACjB,YAAY,CAAC,EACjC;IAAC,IAAAqL,UAAA,GAAAlP,0BAAA,CAEgBgP,iBAAiB;MAAAG,MAAA;IAAA;MAAnC,KAAAD,UAAA,CAAAtO,CAAA,MAAAuO,MAAA,GAAAD,UAAA,CAAArO,CAAA,IAAAC,IAAA,GAAqC;QAAA,IAA1BiD,GAAG,GAAAoL,MAAA,CAAApO,KAAA;QACb,IAAMY,WAAW,GAAG,IAAI,CAACuB,iBAAiB,CAACa,GAAG,CAAC;QAE/C,IAAI8K,QAAQ,IAAI,IAAI,CAAC9K,GAAG,CAAC,EAAE;UAC1B,IAAI,OAAO,IAAI,CAACyH,OAAO,CAACzH,GAAG,CAAC,KAAK,QAAQ,EAAE;YAC1C2K,OAAO,CAAC3K,GAAG,CAAC,GAAG,IAAI,CAACyH,OAAO,CAACzH,GAAG,CAAC;UACjC,CAAC,MAAM;YACN2K,OAAO,CAAC3K,GAAG,CAAC,GAAG,IAAI,CAACA,GAAG,CAAC,CAACI,GAAG,CAAC,UAACiL,CAAC;cAAA,OAAKA,CAAC,CAAC9L,GAAG,CAAC,CAAC;YAAA,EAAC;UAC7C;QACD,CAAC,MAAM,IAAI,CAAC3B,WAAW,EAAE;UACxB;QACD,CAAC,MAAM,IAAIA,WAAW,CAAC0N,UAAU,IAAI,CAAC,IAAI,CAAC7D,OAAO,CAACzH,GAAG,CAAC,EAAE;UACxD2K,OAAO,CAAC3K,GAAG,CAAC,GAAG,EAAE;QAClB;MACD;IAAC,SAAAqJ,GAAA;MAAA8B,UAAA,CAAAhP,CAAA,CAAAkN,GAAA;IAAA;MAAA8B,UAAA,CAAAlO,CAAA;IAAA;IAED,IAAMsO,eAAe,MAAApJ,MAAA,KAAA+I,mBAAA,CAAA7H,OAAA,EACjBvC,MAAM,CAACC,IAAI,CAAC,IAAI,CAAC7B,cAAc,CAAC,OAAAgM,mBAAA,CAAA7H,OAAA,EAC/ByH,QAAQ,GAAGhK,MAAM,CAACC,IAAI,CAAC,IAAI,CAACnB,SAAS,CAAC,GAAG,EAAE,EAC/C;IAAC,IAAA4L,UAAA,GAAAvP,0BAAA,CAEgBsP,eAAe;MAAAE,MAAA;IAAA;MAAjC,KAAAD,UAAA,CAAA3O,CAAA,MAAA4O,MAAA,GAAAD,UAAA,CAAA1O,CAAA,IAAAC,IAAA,GAAmC;QAAA,IAAxBiD,IAAG,GAAAyL,MAAA,CAAAzO,KAAA;QACb,IAAMY,YAAW,GAAG,IAAI,CAACsB,cAAc,CAACc,IAAG,CAAC;QAE5C,IAAI8K,QAAQ,IAAI,IAAI,CAAC9K,IAAG,CAAC,EAAE;UAC1B2K,OAAO,CAAC3K,IAAG,CAAC,GAAG,IAAI,CAACA,IAAG,CAAC,CAACT,GAAG,CAAC,CAAC;QAC/B,CAAC,MAAM,IAAI,CAAC3B,YAAW,EAAE;UACxB;QACD,CAAC,MAAM,IAAIA,YAAW,CAAC0N,UAAU,IAAI,CAAC,IAAI,CAAC7D,OAAO,CAACzH,IAAG,CAAC,IAAI,IAAI,CAACA,IAAG,CAAC,EAAE;UACrE2K,OAAO,CAAC3K,IAAG,CAAC,GAAG,IAAI,CAACA,IAAG,CAAC,CAACT,GAAG,CAAC,CAAC;QAC/B;MACD;IAAC,SAAA8J,GAAA;MAAAmC,UAAA,CAAArP,CAAA,CAAAkN,GAAA;IAAA;MAAAmC,UAAA,CAAAvO,CAAA;IAAA;IAED,OAAO8B,eAAC,CAACZ,MAAM,CAACc,IAAI,EAAE0L,OAAO,CAAC;EAC/B,CAAC;EAED;EACA;EACAe,YAAY,WAAZA,YAAYA,CAACC,IAAI,EAAE;IAAA,IAAAC,MAAA;IAClB,IAAI7M,eAAC,CAACyI,WAAW,CAACmE,IAAI,CAAC,IAAIA,IAAI,KAAK,IAAI,EAAE;MACzC,OAAOA,IAAI;IACZ,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MACpC;MACA,OAAOA,IAAI;IACZ,CAAC,MAAM,IAAIA,IAAI,YAAYzN,uBAAK,EAAE;MACjC,OAAOyN,IAAI,CAAC9C,KAAK,CAAC,CAAC,IAAI,CAAC8C,IAAI,CAAC5P,IAAI,GAAG,IAAI,GAAG4P,IAAI,CAACpM,GAAG,CAAC,CAAC;IACtD,CAAC,MAAM,IAAIoM,IAAI,YAAYxL,gCAAU,EAAE;MACtC,OAAOpB,eAAC,CAACqB,GAAG,CAACuL,IAAI,CAACtM,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IACnC,CAAC,MAAM,IAAIN,eAAC,CAACvC,OAAO,CAACmP,IAAI,CAAC,EAAE;MAC3B;MACA,OAAOA,IAAI,CAACvL,GAAG,CAAC,UAAC0H,KAAK,EAAK;QAC1B,OAAO8D,MAAI,CAACF,YAAY,CAAC5D,KAAK,CAAC;MAChC,CAAC,CAAC;IACH,CAAC,MAAM,IAAI,IAAA+D,QAAA,CAAAxI,OAAA,EAAOsI,IAAI,MAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;MACrD,OAAO,OAAOA,IAAI,CAACpM,GAAG,KAAK,UAAU,GAAGoM,IAAI,CAACpM,GAAG,CAAC,CAAC,GAAGoM,IAAI,CAACpM,GAAG;IAC9D;IAEA,OAAO,IAAI;EACZ;AACD,CACD,CAAC;AAED,SAAS+I,yBAAyBA,CAAC0C,MAAM,EAAEnN,IAAI,EAAE;EAChD,SAASiO,aAAaA,CAAC9O,KAAK,EAAE;IAC7B,IAAMiC,IAAI,GAAG,OAAOjC,KAAK,KAAK,QAAQ,GAAG;MAAEuC,GAAG,EAAEvC;IAAM,CAAC,GAAGA,KAAK;IAE/D,IAAMgJ,UAAU,GAAG,IAAIgF,MAAM,CAAClL,YAAY,CAACjC,IAAI,CAAC,CAACoB,IAAI,EAAE;MAAEkH,MAAM,EAAE6E;IAAO,CAAC,CAAC;IAC1EA,MAAM,CAAC5L,eAAe,CAACvB,IAAI,CAAC,GAAGmI,UAAU;IAEzC,OAAOgF,MAAM,CAAC5L,eAAe,CAACvB,IAAI,CAAC;EACpC;EAEA,SAASkO,QAAQA,CAAC/O,KAAK,EAAE;IACxB,IAAMiC,IAAI,GAAG,OAAOjC,KAAK,KAAK,QAAQ,GAAG;MAAEuC,GAAG,EAAEvC;IAAM,CAAC,GAAGA,KAAK;IAE/D,IAAM8K,KAAK,GAAG,IAAIkD,MAAM,CAACpL,SAAS,CAAC/B,IAAI,CAAC,CAACoB,IAAI,EAAE;MAAEkH,MAAM,EAAE6E;IAAO,CAAC,CAAC;IAClEA,MAAM,CAAC5L,eAAe,CAACvB,IAAI,CAAC,GAAGiK,KAAK;IAEpC,OAAOkD,MAAM,CAAC5L,eAAe,CAACvB,IAAI,CAAC;EACpC;EAEA,SAASmO,gBAAgBA,CAAChP,KAAK,EAAE;IAChCgO,MAAM,CAAClL,YAAY,CAACjC,IAAI,CAAC,GAAGmN,MAAM,CAAC7L,iBAAiB,CAACtB,IAAI,CAAC;IAC1D,OAAOmN,MAAM,CAAC7L,iBAAiB,CAACtB,IAAI,CAAC;IAErC,OAAOiO,aAAa,CAAC9O,KAAK,CAAC;EAC5B;EAEA,SAASiP,WAAWA,CAACjP,KAAK,EAAE;IAC3BgO,MAAM,CAACpL,SAAS,CAAC/B,IAAI,CAAC,GAAGmN,MAAM,CAAC9L,cAAc,CAACrB,IAAI,CAAC;IACpD,OAAOmN,MAAM,CAAC9L,cAAc,CAACrB,IAAI,CAAC;IAElC,OAAOkO,QAAQ,CAAC/O,KAAK,CAAC;EACvB;EAEA8D,MAAM,CAACoL,cAAc,CAAClB,MAAM,EAAEnN,IAAI,EAAE;IACnCwD,GAAG,WAAHA,GAAGA,CAACoB,GAAG,EAAE;MACR,IAAI1D,eAAC,CAACiK,QAAQ,CAAClI,MAAM,CAACC,IAAI,CAACiK,MAAM,CAACpL,SAAS,CAAC,EAAE/B,IAAI,CAAC,EAAE;QACpD,IAAI4E,GAAG,YAAYvE,uBAAK,EAAE;UACzB8M,MAAM,CAAC5L,eAAe,CAACvB,IAAI,CAAC,GAAG4E,GAAG;QACnC,CAAC,MAAM,IAAIA,GAAG,KAAK,IAAI,CAAC5E,IAAI,CAAC,CAAC0B,GAAG,CAAC,CAAC,EAAE;UACpCwM,QAAQ,CAACtJ,GAAG,CAAC;QACd;MACD,CAAC,MAAM,IAAI1D,eAAC,CAACiK,QAAQ,CAAClI,MAAM,CAACC,IAAI,CAACiK,MAAM,CAAClL,YAAY,CAAC,EAAEjC,IAAI,CAAC,EAAE;QAC9D,IAAI4E,GAAG,YAAYtC,gCAAU,EAAE;UAC9B6K,MAAM,CAAC5L,eAAe,CAACvB,IAAI,CAAC,GAAG4E,GAAG;QACnC,CAAC,MAAM,IAAI,IAAI,CAAC5E,IAAI,CAAC,CAACnB,MAAM,IAAI+F,GAAG,KAAK,IAAI,CAAC5E,IAAI,CAAC,CAAC0B,GAAG,CAAC,CAAC,EAAE;UACzDuM,aAAa,CAACrJ,GAAG,CAAC;QACnB;MACD,CAAC,MAAM,IACNA,GAAG,IACHA,GAAG,YAAYvE,uBAAK,IACpBa,eAAC,CAACiK,QAAQ,CAAClI,MAAM,CAACC,IAAI,CAACiK,MAAM,CAAC9L,cAAc,CAAC,EAAErB,IAAI,CAAC,EACnD;QACDmN,MAAM,CAAC5L,eAAe,CAACvB,IAAI,CAAC,GAAGoO,WAAW,CAACxJ,GAAG,CAACpD,MAAM,CAAC,CAAC,CAAC;MACzD,CAAC,MAAM,IACNoD,GAAG,IACHA,GAAG,YAAYtC,gCAAU,IACzBpB,eAAC,CAACiK,QAAQ,CAAClI,MAAM,CAACC,IAAI,CAACiK,MAAM,CAAC7L,iBAAiB,CAAC,EAAEtB,IAAI,CAAC,EACtD;QACDmN,MAAM,CAAC5L,eAAe,CAACvB,IAAI,CAAC,GAAGmO,gBAAgB,CAACvJ,GAAG,CAACpD,MAAM,CAAC,CAAC,CAAC;MAC9D,CAAC,MAAM;QACN2L,MAAM,CAACvD,OAAO,CAAC5J,IAAI,CAAC,GAAG4E,GAAG;MAC3B;IACD,CAAC;IACD0C,GAAG,WAAHA,GAAGA,CAAA,EAAG;MACL,IAAI,CAAC,IAAI,CAACsC,OAAO,EAAE;QAClB,MAAM,IAAIvF,KAAK,6BAAAC,MAAA,CACctE,IAAI,gBAAAsE,MAAA,CAAa6I,MAAM,CAAC5M,SAAS,wBAC9D,CAAC;MACF;MAEA,IACC,CAACW,eAAC,CAACiK,QAAQ,CAAClI,MAAM,CAACC,IAAI,CAACiK,MAAM,CAAClL,YAAY,CAAC,EAAEjC,IAAI,CAAC,IAClDkB,eAAC,CAACiK,QAAQ,CAAClI,MAAM,CAACC,IAAI,CAACiK,MAAM,CAACpL,SAAS,CAAC,EAAE/B,IAAI,CAAC,KAChDkB,eAAC,CAACiK,QAAQ,CAAClI,MAAM,CAACC,IAAI,CAACiK,MAAM,CAAC5L,eAAe,CAAC,EAAEvB,IAAI,CAAC,EACpD;QACD,OAAOmN,MAAM,CAAC5L,eAAe,CAACvB,IAAI,CAAC;MACpC;MAEA,IAAMb,KAAK,GAAGgO,MAAM,CAACvD,OAAO,CAAC5J,IAAI,CAAC;MAElC,IAAI,IAAI,CAACU,UAAU,EAAE;QACpB,OAAOvB,KAAK;MACb;MAEA,IACC,CAAC+B,eAAC,CAACyI,WAAW,CAACxK,KAAK,CAAC,IAAIA,KAAK,KAAK,IAAI,KACvC,EACCgO,MAAM,CAAC9L,cAAc,CAACrB,IAAI,CAAC,IAAImN,MAAM,CAAC9L,cAAc,CAACrB,IAAI,CAAC,CAACyN,UAAU,CACrE,IACD,EACCN,MAAM,CAAC7L,iBAAiB,CAACtB,IAAI,CAAC,IAC9BmN,MAAM,CAAC7L,iBAAiB,CAACtB,IAAI,CAAC,CAACyN,UAAU,CACzC,EACA;QACD,OAAOtO,KAAK;MACb;MAEA,IAAI+B,eAAC,CAACiK,QAAQ,CAAClI,MAAM,CAACC,IAAI,CAACiK,MAAM,CAAC7L,iBAAiB,CAAC,EAAEtB,IAAI,CAAC,EAAE;QAC5D,OAAOmO,gBAAgB,CAAChP,KAAK,CAAC;MAC/B,CAAC,MAAM,IAAI+B,eAAC,CAACiK,QAAQ,CAAClI,MAAM,CAACC,IAAI,CAACiK,MAAM,CAAC9L,cAAc,CAAC,EAAErB,IAAI,CAAC,EAAE;QAChE,OAAOoO,WAAW,CAACjP,KAAK,CAAC;MAC1B;MAEA,OAAOA,KAAK;IACb,CAAC;IACDmP,YAAY,EAAE;EACf,CAAC,CAAC;AACH;;AAEA;AACAnO,SAAS,CAACsG,UAAU,GAAG,UAAU/E,GAAG,EAAE;EACrC,OAAO,IAAI,CAACkB,SAAS,CAAC6D,UAAU,CAAC/E,GAAG,CAAC;AACtC,CAAC;AAEDvB,SAAS,CAACwC,YAAY,GAAG,YAAmB;EAAA,IAAA4L,eAAA;EAC3C,OAAO,CAAAA,eAAA,OAAI,CAAC3L,SAAS,EAACD,YAAY,CAAAmG,KAAA,CAAAyF,eAAA,EAAAzN,SAAQ,CAAC;AAC5C,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"base.js","names":["_utils","require","_api","_ampersandRestCollection","_interopRequireDefault","_ampersandModel","_bluebird","_superagentBluebirdPromise","_lodash","_dedentJs","_log","_moment","_qs","_stateRegister","_sync2","_url","_templateObject","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","from","test","BaseModel","exports","Model","extend","modelName","queryData","detailType","isFetching","_isFetched","urlMatchKeys","_data","arguments","undefined","opts","options","_","defaults","data","_unsetChildren","_unsetCollections","_expandedValues","toJSON","isString","url","isNumber","id","dataCopy","_options","_children","clone","_collections","_definition","key","def","isState","Collection","map","obj","registerStates","_convertToValues","getIDFromURL","prototype","_setDerived","_initUnsetValues","_i","_Object$keys","Object","keys","_derived","derivedKey","_i2","_Object$keys2","derivedProp","set","_matchesURL","matchesDetail","urlRoot","Api","getURL","replacements","detailKey","regexes","reduce","result","type","replace","Error","concat","urlWithoutRoot","urlStructure","split","argIndex","findIndex","val","indexOf","attemptedURLWithoutRoot","partial","join","interpolatedString","template","interpolate","log","error","dedent","_taggedTemplateLiteral2","default","baseString","re","RegExp","resource","resourceURL","getResourceURL","urlPath","url2","parse","path","resourceURLPath","resourceEnd","urlEnd","idStr","match","parseInt","matchesURL","dataTypes","date","newVal","moment","utc","format","DATE_FORMAT_T","compare","currentVal","isSame","stringSanitized","removeMultiByteChars","get","any","props","required","toServer","serialize","_registerChildModel","states","prop","model","registeredStates","_registerCollection","state","collection","_this","each","parent","_registerName","_updateResponse","response","_this2","forEach","save","_this3","apply","tap","fetch","_this4","SuperAgentRequest","Auth","headers","then","res","body","isFetched","getSafeAttrs","_this5","isUndefined","_values","attrs","uniq","_this6","_initChildren","child","_safeSet","listenTo","_getCachedEventBubblingHandler","_initCollections","coll","_this7","tmpValue","replacePropertyDefinition","safeSet","property","getFullURLPath","qs","stringify","arrayFormat","isNew","getPlainURL","resp","includes","matches","_iterator","_step","replacement","err","resources","waitForReady","_arguments","_this8","_asyncToGenerator2","_regenerator","mark","_callee","attempts","wrap","_callee$","_context","prev","abrupt","Promise","reject","creation_status","resolve","delay","stop","sync","derived","_ref","_ref$urlsOnly","urlsOnly","getAttributes","object","allCollectionKeys","_toConsumableArray2","_iterator2","_step2","m","canBeEmpty","allChildrenKeys","_iterator3","_step3","_retrieveURL","item","_this9","_typeof2","addCollection","addChild","expandCollection","expandChild","defineProperty","configurable","_this$prototype"],"sources":["../../src/models/base.js"],"sourcesContent":["import { DATE_FORMAT_T, removeMultiByteChars } from \"../utils.js\";\n\nimport { Api } from \"../api.js\";\nimport Collection from \"ampersand-rest-collection\";\nimport Model from \"ampersand-model\";\nimport Promise from \"bluebird\";\nimport SuperAgentRequest from \"superagent-bluebird-promise\";\nimport _ from \"lodash\";\nimport dedent from \"dedent-js\";\nimport log from \"../log.js\";\nimport moment from \"moment\";\nimport qs from \"qs\";\nimport { registeredStates } from \"../state-register.js\";\nimport { sync } from \"../sync.js\";\nimport url2 from \"url\";\n\n/**\n * @constructor\n * @alias models.BaseModel\n */\nexport const BaseModel = Model.extend(\n\t/** @lends models.BaseModel# */ {\n\t\tmodelName: null,\n\t\tqueryData: {},\n\t\tdetailType: \"number\",\n\n\t\t// This is unfortunately necessary to avoid the default ampersand model/state\n\t\t// behaviour from automatically hydrating all children and collections on a fetch.\n\t\tisFetching: false,\n\n\t\t// Useful to figure out whether the model is just a URL (unfetched), or has been\n\t\t// fetched from the server (an object).\n\t\t_isFetched: true,\n\n\t\t// Object of regexes that should be used to match a url in `matchesURL`\n\t\t// For example the URL: /api/foo/{pk}/bar/ might have the following:\n\t\t//\n\t\t// Example:\n\t\t//\n\t\t// ```\n\t\t// {\n\t\t// pk: \"number\"\n\t\t// }\n\t\t// ```\n\t\turlMatchKeys: {},\n\n\t\tconstructor(_data = {}, opts = {}) {\n\t\t\tconst options = _.defaults(opts, {\n\t\t\t\tdata: {},\n\t\t\t});\n\n\t\t\tlet data = _data;\n\n\t\t\tthis._unsetChildren = {};\n\t\t\tthis._unsetCollections = {};\n\t\t\tthis._expandedValues = {};\n\n\t\t\tif (data === null) {\n\t\t\t\tdata = {};\n\t\t\t}\n\n\t\t\t// Allow passing in models\n\t\t\tif (data instanceof Model) {\n\t\t\t\tdata = data.toJSON();\n\t\t\t}\n\n\t\t\tthis.queryData = options.data;\n\n\t\t\t// Convert any strings into a url format we can understand\n\t\t\tif (_.isString(data)) {\n\t\t\t\tdata = { url: data };\n\t\t\t\tthis._isFetched = false;\n\t\t\t}\n\n\t\t\t// Convert model ids into a format we can understand\n\t\t\tif (_.isNumber(data)) {\n\t\t\t\tdata = { id: data };\n\t\t\t\tthis._isFetched = false;\n\t\t\t}\n\n\t\t\tconst dataCopy = _.extend({}, data);\n\n\t\t\tthis._data = dataCopy;\n\t\t\tthis._options = options;\n\n\t\t\t// Stop making edits to these affect other models\n\t\t\tthis._children = _.clone(this._children);\n\t\t\tthis._collections = _.clone(this._collections);\n\t\t\tthis._definition = _.clone(this._definition);\n\n\t\t\t// Check for specialized url returns from the server. This is for when the\n\t\t\t// server responds with an array of urls rather than object data.\n\t\t\tif (dataCopy && typeof dataCopy.url === \"string\") {\n\t\t\t\tthis._url = dataCopy.url;\n\t\t\t}\n\n\t\t\tfor (const key in dataCopy) {\n\t\t\t\tconst def = dataCopy[key];\n\t\t\t\t// Any models/collections passed into the constructor should be\n\t\t\t\t// converted to JSON so that it can be parsed\n\t\t\t\tif (def && (def.isState || def instanceof Collection)) {\n\t\t\t\t\tdataCopy[key] = def.toJSON();\n\t\t\t\t}\n\n\t\t\t\tif (def && Array.isArray(def)) {\n\t\t\t\t\tdataCopy[key] = def.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof Model) {\n\t\t\t\t\t\t\treturn obj.toJSON();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn obj;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.registerStates();\n\n\t\t\tthis._convertToValues();\n\n\t\t\tconst id = this.getIDFromURL(this._url);\n\n\t\t\tif (!dataCopy.id && id) {\n\t\t\t\tdataCopy.id = id;\n\t\t\t}\n\n\t\t\tModel.prototype.constructor.call(this, dataCopy, options);\n\n\t\t\tthis._setDerived();\n\n\t\t\t// Re-set the values that were previously children or collections\n\t\t\tthis._initUnsetValues();\n\t\t},\n\n\t\t// If there is a model returned from a derived property, and the model\n\t\t// has been initialzied with model data, we manually set the values on it.\n\t\t_setDerived() {\n\t\t\tfor (const derivedKey of Object.keys(this._derived)) {\n\t\t\t\tif (!this._data[derivedKey]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (this[derivedKey] instanceof Model) {\n\t\t\t\t\tfor (const derivedProp of Object.keys(this._data[derivedKey])) {\n\t\t\t\t\t\tthis[derivedKey].set(\n\t\t\t\t\t\t\tderivedProp,\n\t\t\t\t\t\t\tthis._data[derivedKey][derivedProp],\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If it's a collection, we can just pass the data straight in\n\t\t\t\tif (this[derivedKey] instanceof Collection) {\n\t\t\t\t\tthis[derivedKey].set(this._data[derivedKey]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Internal function. Used by collection as well.\n\t\t_matchesURL(url, matchesDetail = true) {\n\t\t\tif (!this.modelName || this.urlRoot() === Api.getURL()) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst replacements = _.extend(\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\tdetailKey: this.detailType,\n\t\t\t\t},\n\t\t\t\tthis.urlMatchKeys,\n\t\t\t);\n\n\t\t\tconst regexes = Object.keys(replacements).reduce((result, key) => {\n\t\t\t\tconst type = replacements[key];\n\t\t\t\tconst name = key.replace(/\\./g, \"_\");\n\t\t\t\tif (type === \"number\") {\n\t\t\t\t\tresult[name] = \"\\\\d+\";\n\t\t\t\t} else if (type === \"uuid\") {\n\t\t\t\t\tresult[name] = \"([a-z]|[0-9]|-)+\";\n\t\t\t\t} else if (type === \"string\") {\n\t\t\t\t\tresult[name] = \"\\\\w+\";\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Unknown regex type '${type}'.`);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}, {});\n\n\t\t\t// Create a starting regex string with variables. Strips the root url so that it could\n\t\t\t// be read from any server.\n\t\t\tconst urlWithoutRoot = this.urlRoot().replace(Api.getURL(), \"\");\n\t\t\tlet urlStructure = urlWithoutRoot.slice();\n\t\t\tif (matchesDetail) {\n\t\t\t\turlStructure += \"{detailKey}/\";\n\t\t\t}\n\n\t\t\t// Let's test if the url has even a remote chance of matching\n\t\t\t// the url (like a partial match, any part without variables).\n\t\t\t// If that doesn't match, we can sometimes prevent a nasty log\n\t\t\t// error from being thrown.\n\t\t\tconst split = urlStructure.split(\"/\");\n\t\t\tconst argIndex = split.findIndex((val) => {\n\t\t\t\treturn val.indexOf(\"{\") === 0;\n\t\t\t});\n\n\t\t\tif (argIndex >= 0) {\n\t\t\t\tconst attemptedURLWithoutRoot = url.replace(Api.getURL(), \"\");\n\n\t\t\t\tconst partial = split.slice(0, argIndex).join(\"/\");\n\t\t\t\tif (attemptedURLWithoutRoot.indexOf(partial) !== 0) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Replace keys with regexes\n\t\t\tlet interpolatedString;\n\t\t\ttry {\n\t\t\t\tinterpolatedString = _.template(urlStructure.replace(/\\./g, \"_\"), {\n\t\t\t\t\tinterpolate: /{([\\s\\S\\.]+?)}/g,\n\t\t\t\t})(regexes);\n\t\t\t} catch (e) {\n\t\t\t\tlog.error(\n\t\t\t\t\tdedent`\n\t\t\t\tFailed to match URL '${url}' for model '${this.modelName}'.\n\t\t\t\tThis is usually because the regex type for a key hasn't been set.\n\t\t\t\tError: `,\n\t\t\t\t\te,\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Convert into a regex and test if url matches\n\t\t\tconst baseString = `.*${interpolatedString.replace(/\\//m, \"/\")}$`;\n\t\t\tconst re = new RegExp(baseString);\n\t\t\treturn re.test(url);\n\t\t},\n\n\t\t// Retrieve the id from the url (if present) without caring about\n\t\t// the hostname.\n\t\t// The url will have a structure like\n\t\t// https://staging-demo.salespreso.com/api/users/1/\n\t\t// and we want to ignore the hostname (https://staging-demo.salespreso.com)\n\t\t// and strip out the '/api' from both the resource url and the variable url\n\t\t// so that we can use the remaining part to isolate the id\n\t\tgetIDFromURL(url, resource = \"\") {\n\t\t\tconst resourceURL = resource || this.getResourceURL();\n\n\t\t\tif (typeof url !== \"string\" || !resourceURL) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst urlPath = url2.parse(url).path;\n\t\t\tconst resourceURLPath = url2.parse(resourceURL).path;\n\n\t\t\t// Remove the '/api' if present\n\t\t\tconst resourceEnd = resourceURLPath.split(\"/api\").join(\"\");\n\t\t\tconst urlEnd = urlPath.split(\"/api\").join(\"\");\n\n\t\t\t// If they are the same, there is no id at the end\n\t\t\tif (!urlEnd || urlEnd === resourceEnd) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst idStr = urlEnd.split(resourceEnd).join(\"\");\n\t\t\tif (this.detailType === \"uuid\") {\n\t\t\t\treturn idStr.slice(0, -1);\n\t\t\t} else if ((idStr.match(/\\//g) || []).length === 1) {\n\t\t\t\treturn parseInt(idStr.slice(0, -1), 10);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\n\t\t// Public version for details only\n\t\tmatchesURL(url) {\n\t\t\treturn this._matchesURL(url, true);\n\t\t},\n\n\t\tdataTypes: {\n\t\t\tdate: {\n\t\t\t\tset: (newVal) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tval: newVal ? moment.utc(newVal).format(DATE_FORMAT_T) : null,\n\t\t\t\t\t\ttype: \"date\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcompare: (currentVal, newVal) => {\n\t\t\t\t\tif (typeof currentVal === \"undefined\") {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (currentVal || newVal) {\n\t\t\t\t\t\treturn moment(currentVal).isSame(moment(newVal));\n\t\t\t\t\t}\n\t\t\t\t\treturn currentVal !== newVal;\n\t\t\t\t},\n\t\t\t},\n\t\t\tstringSanitized: {\n\t\t\t\tset: (newVal) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tval: newVal ? removeMultiByteChars(newVal) : newVal,\n\t\t\t\t\t\ttype: \"stringSanitized\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcompare: (currentVal, newVal) => {\n\t\t\t\t\treturn currentVal === newVal;\n\t\t\t\t},\n\t\t\t\tget: (val) => {\n\t\t\t\t\treturn val;\n\t\t\t\t},\n\t\t\t},\n\t\t\tany: {\n\t\t\t\tdefault: () => {\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * @property {number} [id]\n\t\t */\n\t\tprops: {\n\t\t\tid: { type: \"any\", required: false },\n\t\t},\n\n\t\t/*\n\t\t * Overridable serialization for sending data to\n\t\t * the server\n\t\t */\n\t\ttoServer() {\n\t\t\treturn this.serialize();\n\t\t},\n\n\t\t_registerChildModel(states, prop, model) {\n\t\t\tconst Model = registeredStates[model];\n\t\t\tif (!Model) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`'${model}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._children[prop] = Model;\n\t\t},\n\n\t\t_registerCollection(state, prop, collection) {\n\t\t\tconst Collection = state[collection];\n\t\t\tif (!Collection) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`'${collection}' not found! Did you forget to import it on the '${this.modelName}' model?`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._collections[prop] = Collection;\n\t\t},\n\n\t\t/*\n\t\t * Replace strings respresenting a registered model/collection the function\n\t\t */\n\t\tregisterStates() {\n\t\t\t// Loop through children and replace any parent objects directly to stop\n\t\t\t// maximum stack overflows\n\t\t\t_.each(\n\t\t\t\tthis._children,\n\t\t\t\t(model, prop) => {\n\t\t\t\t\tif (typeof model === \"string\") {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthis._options.parent &&\n\t\t\t\t\t\t\tmodel === this._options.parent._registerName\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// This part is important, if the link stays when there's a circular dependency,\n\t\t\t\t\t\t\t// this will continue forever.\n\t\t\t\t\t\t\tdelete this._children[prop];\n\n\t\t\t\t\t\t\t// Can be a string or an object so we use \"any\". We add the definition\n\t\t\t\t\t\t\t// so that we can retrieve this value later.\n\t\t\t\t\t\t\tthis._definition[prop] = { type: \"any\" };\n\n\t\t\t\t\t\t\tthis[prop] = this._options.parent;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._registerChildModel(registeredStates, prop, model);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\n\t\t\t// Loop throught the collections and replace with the registered collection\n\t\t\t_.each(\n\t\t\t\tthis._collections,\n\t\t\t\t(collection, prop) => {\n\t\t\t\t\tif (typeof collection === \"string\") {\n\t\t\t\t\t\tthis._registerCollection(registeredStates, prop, collection);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis,\n\t\t\t);\n\t\t},\n\n\t\t_updateResponse(response) {\n\t\t\tthis._data = response || {};\n\n\t\t\tif (!response) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set previously-initialised children & collections with new\n\t\t\t// data retrieved during the fetch\n\n\t\t\tObject.keys(this._children).forEach((key) => {\n\t\t\t\tif (response[key]) {\n\t\t\t\t\tthis[key] = response[key];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tObject.keys(this._collections).forEach((key) => {\n\t\t\t\tif (response[key]) {\n\t\t\t\t\tthis[key] = response[key];\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tsave() {\n\t\t\treturn Model.prototype.save.apply(this, arguments).tap((response) => {\n\t\t\t\tthis._updateResponse(response);\n\t\t\t});\n\t\t},\n\n\t\tfetch(options = {}) {\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\n\t\t\tthis._options = _.extend({}, this._options, options);\n\n\t\t\tthis.isFetching = true;\n\t\t\treturn Model.prototype.fetch.apply(this, arguments).tap((response) => {\n\t\t\t\tthis._isFetched = true;\n\t\t\t\tthis.isFetching = false;\n\t\t\t\tthis._updateResponse(response);\n\t\t\t});\n\t\t},\n\n\t\toptions(options = {}) {\n\t\t\tif (options.url) {\n\t\t\t\tthis._url = options.url;\n\t\t\t}\n\t\t\treturn SuperAgentRequest(\"OPTIONS\", this.url())\n\t\t\t\t.set(BaseModel.Auth.headers)\n\t\t\t\t.then((res) => {\n\t\t\t\t\treturn res.body;\n\t\t\t\t});\n\t\t},\n\n\t\tisFetched() {\n\t\t\treturn this._isFetched;\n\t\t},\n\n\t\tgetSafeAttrs(key) {\n\t\t\tif (!_.isUndefined(key)) {\n\t\t\t\treturn !_.isUndefined(this._expandedValues[key])\n\t\t\t\t\t? this._expandedValues[key]\n\t\t\t\t\t: this._values[key];\n\t\t\t}\n\n\t\t\tconst attrs = {};\n\n\t\t\tconst keys = _.uniq(\n\t\t\t\t_.concat(\n\t\t\t\t\t_.concat(\n\t\t\t\t\t\tObject.keys(this._unsetChildren),\n\t\t\t\t\t\tObject.keys(this._unsetCollections),\n\t\t\t\t\t),\n\t\t\t\t\tObject.keys(this._values),\n\t\t\t\t),\n\t\t\t);\n\n\t\t\tkeys.forEach((key) => {\n\t\t\t\tif (!_.isUndefined(this._values[key])) {\n\t\t\t\t\tattrs[key] = this._values[key];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tObject.keys(this._expandedValues).forEach((key) => {\n\t\t\t\tattrs[key] = this[key];\n\t\t\t});\n\n\t\t\treturn attrs;\n\t\t},\n\n\t\t// Unset all specified children and collection constructors and insert value\n\t\t// definitions for them (necessary for Ampersand State to treat them as values)\n\t\t_convertToValues() {\n\t\t\tObject.keys(this._children).forEach((key) => {\n\t\t\t\tthis._definition[key] = { type: \"any\" };\n\t\t\t\tthis._unsetChildren[key] = this._children[key];\n\t\t\t\tdelete this._children[key];\n\t\t\t});\n\n\t\t\tObject.keys(this._collections).forEach((key) => {\n\t\t\t\tthis._definition[key] = { type: \"any\" };\n\t\t\t\tthis._unsetCollections[key] = this._collections[key];\n\t\t\t\tdelete this._collections[key];\n\t\t\t});\n\t\t},\n\n\t\t// Override the initialization of children to pass in data to the constructor.\n\t\t// The default version always creates an empty model\n\t\t_initChildren() {\n\t\t\tlet child;\n\t\t\tif (!this._children) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfor (child in this._children) {\n\t\t\t\tlet val = this._data[child];\n\t\t\t\tif (val) {\n\t\t\t\t\t// Assume here that if it's a string, it's a url.\n\t\t\t\t\tif (typeof val === \"string\") {\n\t\t\t\t\t\tval = { url: val };\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If hydrate is set to false, this will be the name of the child and\n\t\t\t\t// not the constructor. We want to add the non-hydrated url if so.\n\t\t\t\tif (typeof this._children[child] === \"function\") {\n\t\t\t\t\tthis._safeSet(\n\t\t\t\t\t\tchild,\n\t\t\t\t\t\tnew this._children[child](val, { parent: this }),\n\t\t\t\t\t);\n\t\t\t\t\tthis.listenTo(\n\t\t\t\t\t\tthis[child],\n\t\t\t\t\t\t\"all\",\n\t\t\t\t\t\tthis._getCachedEventBubblingHandler(child),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis._safeSet(child, val);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Override the initialization of collections to pass in data to the constructor.\n\t\t_initCollections() {\n\t\t\tlet coll;\n\t\t\tif (!this._collections) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (coll in this._collections) {\n\t\t\t\tlet val = this._data[coll];\n\t\t\t\tif (val) {\n\t\t\t\t\tif (typeof val === \"string\") {\n\t\t\t\t\t\tval = { url: val };\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If hydrate is set to false, this will be the name of the collection and\n\t\t\t\t// not the constructor. We want to add the non-hydrated array if so.\n\t\t\t\tif (typeof this._collections[coll] === \"function\") {\n\t\t\t\t\tthis._safeSet(\n\t\t\t\t\t\tcoll,\n\t\t\t\t\t\tnew this._collections[coll](val, { parent: this }),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis._safeSet(coll, val);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_initUnsetValues() {\n\t\t\t_.each(this._unsetChildren, (child, key) => {\n\t\t\t\tconst tmpValue = this._values[key];\n\n\t\t\t\treplacePropertyDefinition(this, key);\n\n\t\t\t\tthis[key] = tmpValue;\n\t\t\t});\n\n\t\t\t_.each(this._unsetCollections, (child, key) => {\n\t\t\t\tconst tmpValue = this._values[key];\n\n\t\t\t\treplacePropertyDefinition(this, key);\n\n\t\t\t\tthis[key] = tmpValue;\n\t\t\t});\n\t\t},\n\n\t\t// Make safeSet less safe... as we do need to run this twice\n\t\t_safeSet: function safeSet(property, value) {\n\t\t\tthis[property] = value;\n\t\t\treturn this;\n\t\t},\n\n\t\turlRoot() {\n\t\t\treturn this.getResourceURL();\n\t\t},\n\n\t\tgetFullURLPath(path) {\n\t\t\tif (path === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet url = path;\n\t\t\tif (url.slice(-1) !== \"/\" && url.indexOf(\"?\") === -1) {\n\t\t\t\turl += \"/\";\n\t\t\t}\n\n\t\t\tif (Object.keys(this.queryData).length) {\n\t\t\t\turl += `?${qs.stringify(this.queryData, { arrayFormat: \"repeat\" })}`;\n\t\t\t}\n\t\t\treturn url;\n\t\t},\n\n\t\t/*\n\t\t * Get url\n\t\t * @return {String}\n\t\t */\n\t\turl() {\n\t\t\tif (this._url && this.isNew()) {\n\t\t\t\treturn this.getFullURLPath(this._url);\n\t\t\t}\n\t\t\treturn this.getFullURLPath(this.getPlainURL());\n\t\t},\n\n\t\t// Returns url without query data\n\t\tgetPlainURL() {\n\t\t\tif (!this.modelName) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet resp = Model.prototype.url.call(this);\n\n\t\t\tif (resp.slice(-1) !== \"/\" && resp.indexOf(\"?\") === -1) {\n\t\t\t\tresp += \"/\";\n\t\t\t}\n\n\t\t\tif (!resp.includes(\"{\") || !resp.includes(\"}\")) {\n\t\t\t\treturn resp;\n\t\t\t}\n\n\t\t\t// Replace any values in a url with one from the model.\n\t\t\t// So if you have /path/to/{model.id}/\n\t\t\t// It will check the model from \"this.model.id\" and replace\n\t\t\t// it in the url\n\t\t\tconst re = /(\\{(?:\\w+\\.?)+\\})/g;\n\t\t\tconst matches = resp.match(re) || [];\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst path = match.slice(1, -1);\n\t\t\t\tconst replacement = _.get(this, path);\n\t\t\t\tif (replacement) {\n\t\t\t\t\tresp = resp.replace(match, replacement);\n\t\t\t\t} else if (!this.isNew()) {\n\t\t\t\t\tlog.error(`Model ${this.modelName} is missing value ${path}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn resp;\n\t\t},\n\n\t\tgetResourceURL() {\n\t\t\tif (this.modelName === null && !Object.keys(Api.resources).length) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (!Object.keys(Api.resources).length) {\n\t\t\t\treturn `/${this.modelName}/`;\n\t\t\t}\n\n\t\t\tif (this.modelName === null) {\n\t\t\t\treturn Api.getURL();\n\t\t\t}\n\t\t\treturn Api.getResourceURL(this.modelName);\n\t\t},\n\n\t\tasync waitForReady(opts = {}, attempts = 20) {\n\t\t\tif (attempts === 0) {\n\t\t\t\treturn Promise.reject();\n\t\t\t}\n\t\t\treturn this.fetch(opts).then(() => {\n\t\t\t\tif (!this.creation_status) {\n\t\t\t\t\treturn Promise.reject(new Error(\"No creation_status key found\"));\n\t\t\t\t}\n\n\t\t\t\tif ([\"ready\", \"failed\"].indexOf(this.creation_status) > -1) {\n\t\t\t\t\treturn Promise.resolve();\n\t\t\t\t}\n\t\t\t\treturn Promise.delay(1000).then(() =>\n\t\t\t\t\tthis.waitForReady(opts, attempts - 1),\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\n\t\tsync() {\n\t\t\treturn sync.apply(this, arguments);\n\t\t},\n\n\t\tserialize(opts = { derived: true }) {\n\t\t\t// Return nothing if data passed is falsy. More than likely this is\n\t\t\t// a null value\n\t\t\tif (!this._data) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\t// Urls only will build a model without its children/collections expanded -\n\t\t\t// it will return urls instead of the full model.\n\t\t\tconst { urlsOnly = false } = opts ?? {};\n\n\t\t\tconst data = Model.prototype.serialize.apply(this, arguments);\n\t\t\tdata.url = this.url();\n\n\t\t\tlet derived = this.getAttributes(opts);\n\t\t\tderived = Object.keys(derived).reduce((object, key) => {\n\t\t\t\tlet value = derived[key];\n\t\t\t\tif (value instanceof Collection || value instanceof Model) {\n\t\t\t\t\tvalue = value.toJSON();\n\t\t\t\t}\n\t\t\t\tobject[key] = value;\n\t\t\t\treturn object;\n\t\t\t}, {});\n\n\t\t\tconst allCollectionKeys = [\n\t\t\t\t...Object.keys(this._unsetCollections),\n\t\t\t\t...Object.keys(this._collections),\n\t\t\t];\n\n\t\t\tfor (const key of allCollectionKeys) {\n\t\t\t\tconst constructor = this._unsetCollections[key];\n\n\t\t\t\tif (urlsOnly && this[key]) {\n\t\t\t\t\tif (typeof this._values[key] === \"string\") {\n\t\t\t\t\t\tderived[key] = this._values[key];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tderived[key] = this[key].map((m) => m.url());\n\t\t\t\t\t}\n\t\t\t\t} else if (!constructor) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (constructor.canBeEmpty && !this._values[key]) {\n\t\t\t\t\tderived[key] = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst allChildrenKeys = [\n\t\t\t\t...Object.keys(this._unsetChildren),\n\t\t\t\t...(urlsOnly ? Object.keys(this._children) : []),\n\t\t\t];\n\n\t\t\tfor (const key of allChildrenKeys) {\n\t\t\t\tconst constructor = this._unsetChildren[key];\n\n\t\t\t\tif (urlsOnly && this[key]) {\n\t\t\t\t\tderived[key] = this[key].url();\n\t\t\t\t} else if (!constructor) {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (constructor.canBeEmpty && !this._values[key] && this[key]) {\n\t\t\t\t\tderived[key] = this[key].url();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn _.extend(data, derived);\n\t\t},\n\n\t\t// Safely retrieve the url from a child or collection that may or may not\n\t\t// be hydrated\n\t\t_retrieveURL(item) {\n\t\t\tif (_.isUndefined(item) || item === null) {\n\t\t\t\treturn item;\n\t\t\t} else if (typeof item === \"string\") {\n\t\t\t\t// It's just a url string\n\t\t\t\treturn item;\n\t\t\t} else if (item instanceof Model) {\n\t\t\t\treturn item.isNew() && !item._url ? null : item.url();\n\t\t\t} else if (item instanceof Collection) {\n\t\t\t\treturn _.map(item.toJSON(), \"url\");\n\t\t\t} else if (_.isArray(item)) {\n\t\t\t\t// It's an array of urls or objects\n\t\t\t\treturn item.map((child) => {\n\t\t\t\t\treturn this._retrieveURL(child);\n\t\t\t\t});\n\t\t\t} else if (typeof item === \"object\" && item !== null) {\n\t\t\t\treturn typeof item.url === \"function\" ? item.url() : item.url;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t},\n);\n\nfunction replacePropertyDefinition(object, name) {\n\tfunction addCollection(value) {\n\t\tconst data = typeof value === \"string\" ? { url: value } : value;\n\n\t\tconst collection = new object._collections[name](data, { parent: object });\n\t\tobject._expandedValues[name] = collection;\n\n\t\treturn object._expandedValues[name];\n\t}\n\n\tfunction addChild(value) {\n\t\tconst data = typeof value === \"string\" ? { url: value } : value;\n\n\t\tconst child = new object._children[name](data, { parent: object });\n\t\tobject._expandedValues[name] = child;\n\n\t\treturn object._expandedValues[name];\n\t}\n\n\tfunction expandCollection(value) {\n\t\tobject._collections[name] = object._unsetCollections[name];\n\t\tdelete object._unsetCollections[name];\n\n\t\treturn addCollection(value);\n\t}\n\n\tfunction expandChild(value) {\n\t\tobject._children[name] = object._unsetChildren[name];\n\t\tdelete object._unsetChildren[name];\n\n\t\treturn addChild(value);\n\t}\n\n\tObject.defineProperty(object, name, {\n\t\tset(val) {\n\t\t\tif (_.includes(Object.keys(object._children), name)) {\n\t\t\t\tif (val instanceof Model) {\n\t\t\t\t\tobject._expandedValues[name] = val;\n\t\t\t\t} else if (val !== this[name].url()) {\n\t\t\t\t\taddChild(val);\n\t\t\t\t}\n\t\t\t} else if (_.includes(Object.keys(object._collections), name)) {\n\t\t\t\tif (val instanceof Collection) {\n\t\t\t\t\tobject._expandedValues[name] = val;\n\t\t\t\t} else if (this[name].length || val !== this[name].url()) {\n\t\t\t\t\taddCollection(val);\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tval &&\n\t\t\t\tval instanceof Model &&\n\t\t\t\t_.includes(Object.keys(object._unsetChildren), name)\n\t\t\t) {\n\t\t\t\tobject._expandedValues[name] = expandChild(val.toJSON());\n\t\t\t} else if (\n\t\t\t\tval &&\n\t\t\t\tval instanceof Collection &&\n\t\t\t\t_.includes(Object.keys(object._unsetCollections), name)\n\t\t\t) {\n\t\t\t\tobject._expandedValues[name] = expandCollection(val.toJSON());\n\t\t\t} else {\n\t\t\t\tobject._values[name] = val;\n\t\t\t}\n\t\t},\n\t\tget() {\n\t\t\tif (!this._values) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Trying to retrieve value ${name} of model ${object.modelName} during constructor`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(_.includes(Object.keys(object._collections), name) ||\n\t\t\t\t\t_.includes(Object.keys(object._children), name)) &&\n\t\t\t\t_.includes(Object.keys(object._expandedValues), name)\n\t\t\t) {\n\t\t\t\treturn object._expandedValues[name];\n\t\t\t}\n\n\t\t\tconst value = object._values[name];\n\n\t\t\tif (this.isFetching) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(_.isUndefined(value) || value === null) &&\n\t\t\t\t!(\n\t\t\t\t\tobject._unsetChildren[name] && object._unsetChildren[name].canBeEmpty\n\t\t\t\t) &&\n\t\t\t\t!(\n\t\t\t\t\tobject._unsetCollections[name] &&\n\t\t\t\t\tobject._unsetCollections[name].canBeEmpty\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tif (_.includes(Object.keys(object._unsetCollections), name)) {\n\t\t\t\treturn expandCollection(value);\n\t\t\t} else if (_.includes(Object.keys(object._unsetChildren), name)) {\n\t\t\t\treturn expandChild(value);\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tconfigurable: true,\n\t});\n}\n\n// Make matchesURL available as a static method\nBaseModel.matchesURL = function (url) {\n\treturn this.prototype.matchesURL(url);\n};\n\nBaseModel.getIDFromURL = function (...args) {\n\treturn this.prototype.getIDFromURL(...args);\n};\n"],"mappings":"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","ignoreList":[]}