@livepreso/api 6.53.1 → 6.54.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 (126) hide show
  1. package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
  2. package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +10 -0
  3. package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +10 -0
  4. package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +10 -0
  5. package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
  6. package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +10 -0
  7. package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
  8. package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +10 -0
  9. package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +10 -0
  10. package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +10 -0
  11. package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +10 -0
  12. package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +10 -0
  13. package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +10 -0
  14. package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +10 -0
  15. package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +10 -0
  16. package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
  17. package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
  18. package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +10 -0
  19. package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +10 -0
  20. package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +10 -0
  21. package/.rush/temp/build-cache-tar.log +7 -0
  22. package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +10 -0
  23. package/.rush/temp/chunked-rush-logs/api.build.chunks.jsonl +2 -5
  24. package/.rush/temp/chunked-rush-logs/api.test.chunks.jsonl +21 -0
  25. package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +10 -0
  26. package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +10 -0
  27. package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +10 -0
  28. package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +10 -0
  29. package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +10 -0
  30. package/.rush/temp/operation/build/all.log +2 -5
  31. package/.rush/temp/operation/build/log-chunks.jsonl +2 -5
  32. package/.rush/temp/operation/build/state.json +1 -1
  33. package/.rush/temp/operation/test/all.log +21 -0
  34. package/.rush/temp/operation/test/log-chunks.jsonl +21 -0
  35. package/.rush/temp/operation/test/state.json +3 -0
  36. package/.rush/temp/package-deps_build.json +185 -0
  37. package/.rush/temp/shrinkwrap-deps.json +65 -16
  38. package/CHANGELOG.json +20 -0
  39. package/CHANGELOG.md +13 -1
  40. package/api.build.log +9 -0
  41. package/api.test.cache.log +1 -0
  42. package/api.test.log +19 -0
  43. package/cjs/api.js +1 -1
  44. package/cjs/api.js.map +1 -1
  45. package/cjs/collections/auto-adjuncts.js +0 -22
  46. package/cjs/collections/auto-adjuncts.js.map +1 -1
  47. package/cjs/collections/cms-vals.js +25 -0
  48. package/cjs/collections/cms-vals.js.map +1 -1
  49. package/cjs/collections/cms-vals.spec.js +73 -0
  50. package/cjs/collections/cms-vals.spec.js.map +1 -0
  51. package/cjs/collections/deck-version-screenshots.js +0 -23
  52. package/cjs/collections/deck-version-screenshots.js.map +1 -1
  53. package/cjs/collections/scenarios.js +20 -0
  54. package/cjs/collections/scenarios.js.map +1 -0
  55. package/cjs/collections.js +11 -0
  56. package/cjs/collections.js.map +1 -1
  57. package/cjs/fixtures.js +18 -1
  58. package/cjs/fixtures.js.map +1 -1
  59. package/cjs/models/appointment.js +29 -8
  60. package/cjs/models/appointment.js.map +1 -1
  61. package/cjs/models/auto-adjunct.js +3 -2
  62. package/cjs/models/auto-adjunct.js.map +1 -1
  63. package/cjs/models/base.js +3 -1
  64. package/cjs/models/base.js.map +1 -1
  65. package/cjs/models/cms-val.js +3 -3
  66. package/cjs/models/cms-val.js.map +1 -1
  67. package/cjs/models/deck-version-screenshot.js +2 -2
  68. package/cjs/models/deck-version-screenshot.js.map +1 -1
  69. package/cjs/models/deck-version.js +3 -3
  70. package/cjs/models/deck-version.js.map +1 -1
  71. package/cjs/models/preset.js +8 -6
  72. package/cjs/models/preset.js.map +1 -1
  73. package/cjs/models/scenario.js +41 -0
  74. package/cjs/models/scenario.js.map +1 -0
  75. package/cjs/models.js +11 -0
  76. package/cjs/models.js.map +1 -1
  77. package/cjs/presentation/appointment-presentation.js +2 -2
  78. package/cjs/presentation/appointment-presentation.js.map +1 -1
  79. package/cjs/presentation/base-presentation-model.js +26 -23
  80. package/cjs/presentation/base-presentation-model.js.map +1 -1
  81. package/cjs/presentation/base-presentation-model.spec.js +21 -21
  82. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  83. package/cjs/presentation/presentation-section.js +28 -3
  84. package/cjs/presentation/presentation-section.js.map +1 -1
  85. package/cjs/presentation/presentation-section.spec.js +16 -3
  86. package/cjs/presentation/presentation-section.spec.js.map +1 -1
  87. package/cjs/presentation/presentation-slide.js +25 -1
  88. package/cjs/presentation/presentation-slide.js.map +1 -1
  89. package/cjs/presentation/presentation-slide.spec.js +8 -1
  90. package/cjs/presentation/presentation-slide.spec.js.map +1 -1
  91. package/cjs/utils.js +12 -3
  92. package/cjs/utils.js.map +1 -1
  93. package/cjs/utils.spec.js +22 -0
  94. package/cjs/utils.spec.js.map +1 -1
  95. package/package.json +3 -3
  96. package/rush-logs/api.build.log +2 -5
  97. package/rush-logs/api.test.cache.log +1 -0
  98. package/rush-logs/api.test.log +21 -0
  99. package/src/api.js +1 -1
  100. package/src/collections/auto-adjuncts.js +0 -22
  101. package/src/collections/cms-vals.js +28 -0
  102. package/src/collections/cms-vals.spec.js +66 -0
  103. package/src/collections/deck-version-screenshots.js +0 -22
  104. package/src/collections/scenarios.js +18 -0
  105. package/src/collections.js +1 -0
  106. package/src/fixtures.js +17 -1
  107. package/src/models/appointment.js +32 -6
  108. package/src/models/auto-adjunct.js +3 -2
  109. package/src/models/base.js +3 -2
  110. package/src/models/cms-val.js +3 -3
  111. package/src/models/deck-version-screenshot.js +2 -2
  112. package/src/models/deck-version.js +3 -3
  113. package/src/models/preset.js +8 -6
  114. package/src/models/scenario.js +39 -0
  115. package/src/models.js +1 -0
  116. package/src/presentation/appointment-presentation.js +6 -4
  117. package/src/presentation/base-presentation-model.js +29 -23
  118. package/src/presentation/base-presentation-model.spec.js +22 -22
  119. package/src/presentation/presentation-section.js +26 -1
  120. package/src/presentation/presentation-section.spec.js +14 -1
  121. package/src/presentation/presentation-slide.js +24 -0
  122. package/src/presentation/presentation-slide.spec.js +7 -0
  123. package/src/utils.js +13 -3
  124. package/src/utils.spec.js +27 -0
  125. package/.rush/temp/operation/build/error.log +0 -3
  126. package/rush-logs/api.build.error.log +0 -3
@@ -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":[]}
@@ -8,7 +8,7 @@ exports.CMSValModel = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  require("./user.js");
11
- require("./team.js");
11
+ require("./scenario.js");
12
12
  require("./deck.js");
13
13
  var _base = require("../models/base.js");
14
14
  var _stateRegister = require("../state-register.js");
@@ -34,12 +34,12 @@ var CMSValModel = exports.CMSValModel = _base.BaseModel.extend(/** @lends models
34
34
  /**
35
35
  * @property {models.UserModel} user
36
36
  * @property {models.DeckModel} deck
37
- * @property {models.TeamModel} team
37
+ * @property {models.ScenarioModel} scenario
38
38
  */
39
39
  children: {
40
40
  user: "UserModel",
41
41
  deck: "DeckModel",
42
- team: "TeamModel"
42
+ scenario: "ScenarioModel"
43
43
  },
44
44
  url: function url() {
45
45
  if (!this._url) {
@@ -1 +1 @@
1
- {"version":3,"file":"cms-val.js","names":["require","_base","_stateRegister","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","CMSValModel","exports","BaseModel","extend","modelName","props","modified_date","created_date","key","scope","mime","value","_tenancy","children","user","deck","team","url","_url","id","model","baseURL","concat","prototype","toJSON","data","undefined","toServer","obj","call","sanitizeBase64","toCompactJSON","json","wanted","compact","fromEntries","entries","_ref","_ref2","_slicedToArray2","val","includes","register"],"sources":["../../src/models/cms-val.js"],"sourcesContent":["import \"./user.js\";\nimport \"./team.js\";\nimport \"./deck.js\";\n\nimport { BaseModel } from \"../models/base.js\";\nimport { register } from \"../state-register.js\";\nimport { sanitizeBase64 } from \"../utils.js\";\n\n/**\n * @constructor\n * @alias models.CMSValModel\n * @extends models.BaseModel\n */\nexport const CMSValModel = BaseModel.extend(\n\t/** @lends models.CMSValModel# */ {\n\t\tmodelName: \"cmsvals\",\n\n\t\tprops: {\n\t\t\tmodified_date: \"date\",\n\t\t\tcreated_date: \"date\",\n\t\t\tkey: \"string\",\n\t\t\tscope: \"string\",\n\t\t\tmime: \"string\",\n\t\t\tvalue: \"string\",\n\t\t\t_tenancy: \"object\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.UserModel} user\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.TeamModel} team\n\t\t */\n\t\tchildren: {\n\t\t\tuser: \"UserModel\",\n\t\t\tdeck: \"DeckModel\",\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tif (this.id && this.key) {\n\t\t\t\t\tconst model = new CMSValModel({ key: this.key });\n\t\t\t\t\tconst baseURL = model.url();\n\t\t\t\t\tthis._url = `${baseURL}${this.key}/`;\n\t\t\t\t} else {\n\t\t\t\t\tthis._url = BaseModel.prototype.url.apply(this, arguments);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this._url;\n\t\t},\n\n\t\ttoJSON() {\n\t\t\tconst data = BaseModel.prototype.toJSON.apply(this, arguments);\n\n\t\t\tdata.user = this.user ? this.user.url() : undefined;\n\n\t\t\treturn data;\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst obj = BaseModel.prototype.toServer.call(this);\n\t\t\treturn {\n\t\t\t\t...obj,\n\t\t\t\t// We shouldn't allow any base64 to get in here, otherwise it can\n\t\t\t\t// KO all users appointments.\n\t\t\t\tvalue: sanitizeBase64(obj.value),\n\t\t\t};\n\t\t},\n\n\t\ttoCompactJSON() {\n\t\t\tconst json = this.toJSON();\n\t\t\tconst wanted = [\"key\", \"value\", \"mime\", \"scope\"];\n\n\t\t\tconst compact = Object.fromEntries(\n\t\t\t\tObject.entries(json).filter(([key, val]) => wanted.includes(key)),\n\t\t\t);\n\n\t\t\treturn compact;\n\t\t},\n\t},\n);\n\nregister(\"CMSValModel\", CMSValModel);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"cms-val.js","names":["require","_base","_stateRegister","_utils","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","CMSValModel","exports","BaseModel","extend","modelName","props","modified_date","created_date","key","scope","mime","value","_tenancy","children","user","deck","scenario","url","_url","id","model","baseURL","concat","prototype","toJSON","data","undefined","toServer","obj","call","sanitizeBase64","toCompactJSON","json","wanted","compact","fromEntries","entries","_ref","_ref2","_slicedToArray2","val","includes","register"],"sources":["../../src/models/cms-val.js"],"sourcesContent":["import \"./user.js\";\nimport \"./scenario.js\";\nimport \"./deck.js\";\n\nimport { BaseModel } from \"../models/base.js\";\nimport { register } from \"../state-register.js\";\nimport { sanitizeBase64 } from \"../utils.js\";\n\n/**\n * @constructor\n * @alias models.CMSValModel\n * @extends models.BaseModel\n */\nexport const CMSValModel = BaseModel.extend(\n\t/** @lends models.CMSValModel# */ {\n\t\tmodelName: \"cmsvals\",\n\n\t\tprops: {\n\t\t\tmodified_date: \"date\",\n\t\t\tcreated_date: \"date\",\n\t\t\tkey: \"string\",\n\t\t\tscope: \"string\",\n\t\t\tmime: \"string\",\n\t\t\tvalue: \"string\",\n\t\t\t_tenancy: \"object\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.UserModel} user\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.ScenarioModel} scenario\n\t\t */\n\t\tchildren: {\n\t\t\tuser: \"UserModel\",\n\t\t\tdeck: \"DeckModel\",\n\t\t\tscenario: \"ScenarioModel\",\n\t\t},\n\n\t\turl() {\n\t\t\tif (!this._url) {\n\t\t\t\tif (this.id && this.key) {\n\t\t\t\t\tconst model = new CMSValModel({ key: this.key });\n\t\t\t\t\tconst baseURL = model.url();\n\t\t\t\t\tthis._url = `${baseURL}${this.key}/`;\n\t\t\t\t} else {\n\t\t\t\t\tthis._url = BaseModel.prototype.url.apply(this, arguments);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this._url;\n\t\t},\n\n\t\ttoJSON() {\n\t\t\tconst data = BaseModel.prototype.toJSON.apply(this, arguments);\n\n\t\t\tdata.user = this.user ? this.user.url() : undefined;\n\n\t\t\treturn data;\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst obj = BaseModel.prototype.toServer.call(this);\n\t\t\treturn {\n\t\t\t\t...obj,\n\t\t\t\t// We shouldn't allow any base64 to get in here, otherwise it can\n\t\t\t\t// KO all users appointments.\n\t\t\t\tvalue: sanitizeBase64(obj.value),\n\t\t\t};\n\t\t},\n\n\t\ttoCompactJSON() {\n\t\t\tconst json = this.toJSON();\n\t\t\tconst wanted = [\"key\", \"value\", \"mime\", \"scope\"];\n\n\t\t\tconst compact = Object.fromEntries(\n\t\t\t\tObject.entries(json).filter(([key, val]) => wanted.includes(key)),\n\t\t\t);\n\n\t\t\treturn compact;\n\t\t},\n\t},\n);\n\nregister(\"CMSValModel\", CMSValModel);\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.DeckVersionScreenshotModel = void 0;
8
- require("./team.js");
8
+ require("./scenario.js");
9
9
  var _base = require("./base.js");
10
10
  var _lodash = _interopRequireDefault(require("lodash"));
11
11
  var _stateRegister = require("../state-register.js");
@@ -36,7 +36,7 @@ var DeckVersionScreenshotModel = exports.DeckVersionScreenshotModel = _base.Base
36
36
  subject: "string"
37
37
  },
38
38
  children: {
39
- team: "TeamModel"
39
+ scenario: "ScenarioModel"
40
40
  },
41
41
  serialize: function serialize() {
42
42
  var data = _base.BaseModel.prototype.serialize.call(this);
@@ -1 +1 @@
1
- {"version":3,"file":"deck-version-screenshot.js","names":["require","_base","_lodash","_interopRequireDefault","_stateRegister","DeckVersionScreenshotModel","exports","BaseModel","extend","modelName","urlMatchKeys","props","created_date","modified_date","image_128","image_256","image_512","subject","children","team","serialize","data","prototype","call","_","omit","register"],"sources":["../../src/models/deck-version-screenshot.js"],"sourcesContent":["import \"./team.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport _ from \"lodash\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckVersionScreenshotModel\n * @extends models.BaseModel\n */\nexport const DeckVersionScreenshotModel = BaseModel.extend(\n\t/** @lends models.DeckVersionScreenshotModel# */ {\n\t\tmodelName: \"deckversion-screenshots\",\n\n\t\turlMatchKeys: {\n\t\t\t\"deckversion.id\": \"number\",\n\t\t},\n\n\t\t/**\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\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} subject - A url for a screenshotted model (section, slide, etc.)\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\timage_128: \"string\",\n\t\t\timage_256: \"string\",\n\t\t\timage_512: \"string\",\n\t\t\tsubject: \"string\",\n\t\t},\n\n\t\tchildren: {\n\t\t\tteam: \"TeamModel\",\n\t\t},\n\n\t\tserialize() {\n\t\t\tconst data = BaseModel.prototype.serialize.call(this);\n\t\t\treturn _.omit(data, [\"url\"]);\n\t\t},\n\t},\n);\n\nregister(\"DeckVersionScreenshotModel\", DeckVersionScreenshotModel);\n"],"mappings":";;;;;;;AAAAA,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMK,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAGE,eAAS,CAACC,MAAM,CACzD,gDAAiD;EAChDC,SAAS,EAAE,yBAAyB;EAEpCC,YAAY,EAAE;IACb,gBAAgB,EAAE;EACnB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,YAAY,EAAE,MAAM;IACpBC,aAAa,EAAE,MAAM;IACrBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,OAAO,EAAE;EACV,CAAC;EAEDC,QAAQ,EAAE;IACTC,IAAI,EAAE;EACP,CAAC;EAEDC,SAAS,WAATA,SAASA,CAAA,EAAG;IACX,IAAMC,IAAI,GAAGd,eAAS,CAACe,SAAS,CAACF,SAAS,CAACG,IAAI,CAAC,IAAI,CAAC;IACrD,OAAOC,eAAC,CAACC,IAAI,CAACJ,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;EAC7B;AACD,CACD,CAAC;AAED,IAAAK,uBAAQ,EAAC,4BAA4B,EAAErB,0BAA0B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"deck-version-screenshot.js","names":["require","_base","_lodash","_interopRequireDefault","_stateRegister","DeckVersionScreenshotModel","exports","BaseModel","extend","modelName","urlMatchKeys","props","created_date","modified_date","image_128","image_256","image_512","subject","children","scenario","serialize","data","prototype","call","_","omit","register"],"sources":["../../src/models/deck-version-screenshot.js"],"sourcesContent":["import \"./scenario.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport _ from \"lodash\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.DeckVersionScreenshotModel\n * @extends models.BaseModel\n */\nexport const DeckVersionScreenshotModel = BaseModel.extend(\n\t/** @lends models.DeckVersionScreenshotModel# */ {\n\t\tmodelName: \"deckversion-screenshots\",\n\n\t\turlMatchKeys: {\n\t\t\t\"deckversion.id\": \"number\",\n\t\t},\n\n\t\t/**\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\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} subject - A url for a screenshotted model (section, slide, etc.)\n\t\t */\n\t\tprops: {\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\timage_128: \"string\",\n\t\t\timage_256: \"string\",\n\t\t\timage_512: \"string\",\n\t\t\tsubject: \"string\",\n\t\t},\n\n\t\tchildren: {\n\t\t\tscenario: \"ScenarioModel\",\n\t\t},\n\n\t\tserialize() {\n\t\t\tconst data = BaseModel.prototype.serialize.call(this);\n\t\t\treturn _.omit(data, [\"url\"]);\n\t\t},\n\t},\n);\n\nregister(\"DeckVersionScreenshotModel\", DeckVersionScreenshotModel);\n"],"mappings":";;;;;;;AAAAA,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMK,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAGE,eAAS,CAACC,MAAM,CACzD,gDAAiD;EAChDC,SAAS,EAAE,yBAAyB;EAEpCC,YAAY,EAAE;IACb,gBAAgB,EAAE;EACnB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,YAAY,EAAE,MAAM;IACpBC,aAAa,EAAE,MAAM;IACrBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,OAAO,EAAE;EACV,CAAC;EAEDC,QAAQ,EAAE;IACTC,QAAQ,EAAE;EACX,CAAC;EAEDC,SAAS,WAATA,SAASA,CAAA,EAAG;IACX,IAAMC,IAAI,GAAGd,eAAS,CAACe,SAAS,CAACF,SAAS,CAACG,IAAI,CAAC,IAAI,CAAC;IACrD,OAAOC,eAAC,CAACC,IAAI,CAACJ,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;EAC7B;AACD,CACD,CAAC;AAED,IAAAK,uBAAQ,EAAC,4BAA4B,EAAErB,0BAA0B,CAAC","ignoreList":[]}
@@ -208,15 +208,15 @@ var DeckVersionModel = exports.DeckVersionModel = _base.BaseModel.extend(/** @le
208
208
  // this port), causing havoc. If we see it, strip it.
209
209
  .replace(":443", "");
210
210
  },
211
- fetchLayout: function fetchLayout(presetId, teamIds) {
211
+ fetchLayout: function fetchLayout(presetId, scenarioID) {
212
212
  var queryParams = {
213
213
  version: this.version
214
214
  };
215
215
  if (presetId) {
216
216
  queryParams.preset_id = presetId;
217
217
  }
218
- if (teamIds) {
219
- queryParams.team_id = teamIds;
218
+ if (scenarioID) {
219
+ queryParams.scenario_id = scenarioID;
220
220
  }
221
221
  if (!this.id) {
222
222
  return _bluebird.default.reject(new Error("DeckVersion has no ID."));
@@ -1 +1 @@
1
- {"version":3,"file":"deck-version.js","names":["require","_auth","_base","_deckVersionScreenshots","_bluebird","_interopRequireDefault","_collections","_lodash","_stateRegister","_superagent","DeckVersionModel","exports","BaseModel","extend","modelName","props","image_128","image_256","image_512","image_128_archive","image_256_archive","image_512_archive","namespaced_key","creation_status","creation_percent","update_description","version","approved","approval","pack_root_url","upgrade_description","friendly_release_notes","has_editable_share_support","has_signing_support","point_in_time_share_policy","tags","cmsvalkey_set","children","deck","index_asset","pack","manifest_json","collections","section_set","note_set","derived","screenshots","deps","fn","DeckVersionScreenshotCollection","deckversion","template_set","templates","TemplateCollection","data","id","scope","getHooksPath","_this","_ref","arguments","length","undefined","_ref$rootAssetPath","rootAssetPath","isNew","Error","Promise","resolve","concat","hooks","then","Object","keys","getSafeAttrs","fetch","fetchTemplates","rootAssetUrl","getRootAssetUrl","getHooks","_ref2","_ref2$rootAssetPath","hooksPath","SystemJS","import","default","getFixtures","fixtures","fixturePaths","imports","_","map","fixture","key","path","superagent","get","response","text","JSON","parse","body","catch","SuperagentPromiseError","e","all","opts","_opts$fetchTemplates","_this2","_len","other","Array","_key","prototype","apply","shouldFetchTemplates","tap","indexAsset","_retrieveURL","split","slice","join","replace","fetchLayout","presetId","teamIds","queryParams","preset_id","team_id","reject","url","set","Auth","headers","query","res","ok","toServer","register"],"sources":["../../src/models/deck-version.js"],"sourcesContent":["import \"../collections/sections.js\";\nimport \"../collections/deck-notes.js\";\nimport \"./pack.js\";\nimport \"./deck.js\";\nimport \"./asset.js\";\nimport \"./manifest-json.js\";\n\nimport { Auth } from \"../auth.js\";\nimport { BaseModel } from \"./base.js\";\nimport { DeckVersionScreenshotCollection } from \"../collections/deck-version-screenshots.js\";\nimport Promise from \"bluebird\";\nimport { TemplateCollection } from \"../collections.js\";\nimport _ from \"lodash\";\nimport { register } from \"../state-register.js\";\nimport superagent from \"superagent\";\n\n/**\n * @constructor\n * @alias models.DeckVersionModel\n * @extends models.BaseModel\n */\nexport const DeckVersionModel = BaseModel.extend(\n\t/** @lends models.DeckVersionModel# */ {\n\t\tmodelName: \"deckversions\",\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_128_archive\n\t\t * @property {string} image_256_archive\n\t\t * @property {string} image_512_archive\n\t\t * @property {string} namespaced_key\n\t\t * @property {string} creation_status\n\t\t * @property {string} update_description\n\t\t * @property {version} version\n\t\t * @property {boolean} approved\n\t\t * @property {string} approval\n\t\t * @property {string} pack_root_url\n\t\t * @property {string} upgrade_description\n\t\t * @property {string} friendly_release_notes\n\t\t * @property {boolean} has_editable_share_support\n\t\t * @property {string} point_in_time_share_policy\n\t\t * @property {string[]} tags\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_128_archive: \"string\",\n\t\t\timage_256_archive: \"string\",\n\t\t\timage_512_archive: \"string\",\n\t\t\tnamespaced_key: \"string\",\n\t\t\tcreation_status: \"string\",\n\t\t\tcreation_percent: \"number\",\n\t\t\tupdate_description: \"string\",\n\t\t\tversion: \"number\",\n\t\t\tapproved: \"boolean\",\n\t\t\tapproval: \"string\",\n\t\t\tpack_root_url: \"string\",\n\t\t\tupgrade_description: \"string\",\n\t\t\tfriendly_release_notes: \"string\",\n\t\t\thas_editable_share_support: \"boolean\",\n\t\t\thas_signing_support: \"boolean\",\n\t\t\tpoint_in_time_share_policy: \"string\",\n\t\t\ttags: \"array\",\n\t\t\tcmsvalkey_set: \"array\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.AssetModel} index_asset\n\t\t * @property {models.PackModel} pack\n\t\t * @property {models.ManifestJSONModel} manifest_json\n\t\t */\n\t\tchildren: {\n\t\t\tdeck: \"DeckModel\",\n\t\t\tindex_asset: \"AssetModel\",\n\t\t\tpack: \"PackModel\",\n\t\t\tmanifest_json: \"ManifestJSONModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.SectionCollection} section_set\n\t\t * @property {models.DeckNoteCollection} note_set\n\t\t */\n\t\tcollections: {\n\t\t\tsection_set: \"SectionCollection\",\n\t\t\tnote_set: \"DeckNoteCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.DeckVersionScreenshotCollection} screenshots\n\t\t */\n\t\tderived: {\n\t\t\tscreenshots: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst screenshots = new DeckVersionScreenshotCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdeckversion: this,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t\treturn screenshots;\n\t\t\t\t},\n\t\t\t},\n\n\t\t\ttemplate_set: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst templates = new TemplateCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tdeckversion: this.id,\n\t\t\t\t\t\t\t\tscope: \"global\",\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\treturn templates;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tgetHooksPath({ rootAssetPath = null } = {}) {\n\t\t\tif (this.isNew()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Can only get hooks from a fetched deckversion or at least have an ID\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (rootAssetPath) {\n\t\t\t\treturn Promise.resolve(`${rootAssetPath}${this.manifest_json.hooks}`);\n\t\t\t}\n\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tObject.keys(this.getSafeAttrs()).length === 1 ||\n\t\t\t\t\t\t!this.index_asset\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn this.fetch({ fetchTemplates: false });\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (this.manifest_json.isNew()) {\n\t\t\t\t\t\treturn this.manifest_json.fetch();\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst rootAssetUrl = this.getRootAssetUrl();\n\t\t\t\t\tif (!this.manifest_json.hooks) {\n\t\t\t\t\t\tthrow new Error(\"Manifest does not contain a hooks entry\");\n\t\t\t\t\t}\n\t\t\t\t\treturn `${rootAssetUrl}${this.manifest_json.hooks}`;\n\t\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @todo This should eventually return a hooks interface\n\t\t * @returns {object}\n\t\t */\n\t\tgetHooks({ rootAssetPath = null } = {}) {\n\t\t\treturn this.getHooksPath({ rootAssetPath })\n\t\t\t\t.then((hooksPath) => {\n\t\t\t\t\treturn SystemJS.import(hooksPath);\n\t\t\t\t})\n\t\t\t\t.then((hooks) => {\n\t\t\t\t\tif (hooks.default) {\n\t\t\t\t\t\treturn hooks.default;\n\t\t\t\t\t}\n\t\t\t\t\treturn hooks;\n\t\t\t\t});\n\t\t},\n\n\t\tgetFixtures(fixtures = {}, rootAssetUrl = this.getRootAssetUrl()) {\n\t\t\tconst fixturePaths = this.manifest_json.fixtures || {};\n\n\t\t\tconst imports = _.map(fixturePaths, (fixture, key) => {\n\t\t\t\tconst path = `${rootAssetUrl}${fixture}`;\n\n\t\t\t\treturn superagent\n\t\t\t\t\t.get(path)\n\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\tif (response.text) {\n\t\t\t\t\t\t\tfixtures[key] = JSON.parse(response.text);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfixtures[key] = response.body || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(superagent.SuperagentPromiseError, (e) => {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn Promise.all(imports);\n\t\t},\n\n\t\tfetch(opts, ...other) {\n\t\t\tconst fetch = BaseModel.prototype.fetch.apply(this, [opts, ...other]);\n\t\t\tconst shouldFetchTemplates = opts?.fetchTemplates ?? true;\n\n\t\t\treturn Promise.resolve(fetch).tap(() => {\n\t\t\t\t// `template_set` used to come on the deckversion response, but we have since\n\t\t\t\t// decided to request it separately (this helps with caching). To keep the app\n\t\t\t\t// working with minimal changes, we're making the extra request here.\n\t\t\t\tif (shouldFetchTemplates) {\n\t\t\t\t\treturn this.template_set.fetch();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tgetRootAssetUrl() {\n\t\t\tconst indexAsset = this._retrieveURL(this.index_asset);\n\t\t\treturn (\n\t\t\t\t`${indexAsset.split(\"/\").slice(0, -1).join(\"/\")}/`\n\t\t\t\t\t// HACK: We've got instances (see: myob) that are returning ports in their urls.\n\t\t\t\t\t// SystemJS gets confused and starts caching multiple versions (one with and without\n\t\t\t\t\t// this port), causing havoc. If we see it, strip it.\n\t\t\t\t\t.replace(\":443\", \"\")\n\t\t\t);\n\t\t},\n\n\t\tfetchLayout: function (presetId, teamIds) {\n\t\t\tlet queryParams = { version: this.version };\n\t\t\tif (presetId) {\n\t\t\t\tqueryParams.preset_id = presetId;\n\t\t\t}\n\t\t\tif (teamIds) {\n\t\t\t\tqueryParams.team_id = teamIds;\n\t\t\t}\n\n\t\t\tif (!this.id) {\n\t\t\t\treturn Promise.reject(new Error(\"DeckVersion has no ID.\"));\n\t\t\t}\n\n\t\t\tconst path = `${this.deck.url()}layout/`;\n\n\t\t\treturn superagent\n\t\t\t\t.get(path)\n\t\t\t\t.set(Auth.headers)\n\t\t\t\t.query(queryParams)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (!res.ok) {\n\t\t\t\t\t\treturn Promise.reject(res);\n\t\t\t\t\t}\n\t\t\t\t\treturn res.body;\n\t\t\t\t});\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn {\n\t\t\t\tapproval: this.approval,\n\t\t\t\tupgrade_description: this.upgrade_description,\n\t\t\t};\n\t\t},\n\t},\n);\n\nregister(\"DeckVersionModel\", DeckVersionModel);\n"],"mappings":";;;;;;;AAAAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAF,sBAAA,CAAAL,OAAA;AACA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAJ,sBAAA,CAAAL,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMU,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,iBAAiB,EAAE,QAAQ;IAC3BC,iBAAiB,EAAE,QAAQ;IAC3BC,iBAAiB,EAAE,QAAQ;IAC3BC,cAAc,EAAE,QAAQ;IACxBC,eAAe,EAAE,QAAQ;IACzBC,gBAAgB,EAAE,QAAQ;IAC1BC,kBAAkB,EAAE,QAAQ;IAC5BC,OAAO,EAAE,QAAQ;IACjBC,QAAQ,EAAE,SAAS;IACnBC,QAAQ,EAAE,QAAQ;IAClBC,aAAa,EAAE,QAAQ;IACvBC,mBAAmB,EAAE,QAAQ;IAC7BC,sBAAsB,EAAE,QAAQ;IAChCC,0BAA0B,EAAE,SAAS;IACrCC,mBAAmB,EAAE,SAAS;IAC9BC,0BAA0B,EAAE,QAAQ;IACpCC,IAAI,EAAE,OAAO;IACbC,aAAa,EAAE;EAChB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,QAAQ,EAAE;IACTC,IAAI,EAAE,WAAW;IACjBC,WAAW,EAAE,YAAY;IACzBC,IAAI,EAAE,WAAW;IACjBC,aAAa,EAAE;EAChB,CAAC;EAED;AACF;AACA;AACA;EACEC,WAAW,EAAE;IACZC,WAAW,EAAE,mBAAmB;IAChCC,QAAQ,EAAE;EACX,CAAC;EAED;AACF;AACA;EACEC,OAAO,EAAE;IACRC,WAAW,EAAE;MACZC,IAAI,EAAE,CAAC,IAAI,CAAC;MACZC,EAAE,EAAE,SAAJA,EAAEA,CAAA,EAAc;QACf,IAAMF,WAAW,GAAG,IAAIG,uDAA+B,CACtD,CAAC,CAAC,EACF;UACCC,WAAW,EAAE;QACd,CACD,CAAC;QACD,OAAOJ,WAAW;MACnB;IACD,CAAC;IAEDK,YAAY,EAAE;MACbJ,IAAI,EAAE,CAAC,IAAI,CAAC;MACZC,EAAE,EAAE,SAAJA,EAAEA,CAAA,EAAc;QACf,IAAMI,SAAS,GAAG,IAAIC,+BAAkB,CACvC,CAAC,CAAC,EACF;UACCC,IAAI,EAAE;YACLJ,WAAW,EAAE,IAAI,CAACK,EAAE;YACpBC,KAAK,EAAE;UACR;QACD,CACD,CAAC;QACD,OAAOJ,SAAS;MACjB;IACD;EACD,CAAC;EAEDK,YAAY,WAAZA,YAAYA,CAAA,EAAgC;IAAA,IAAAC,KAAA;IAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAJ,CAAC,CAAC;MAAAG,kBAAA,GAAAJ,IAAA,CAA3BK,aAAa;MAAbA,aAAa,GAAAD,kBAAA,cAAG,IAAI,GAAAA,kBAAA;IAClC,IAAI,IAAI,CAACE,KAAK,CAAC,CAAC,EAAE;MACjB,MAAM,IAAIC,KAAK,CACd,sEACD,CAAC;IACF;IAEA,IAAIF,aAAa,EAAE;MAClB,OAAOG,iBAAO,CAACC,OAAO,IAAAC,MAAA,CAAIL,aAAa,EAAAK,MAAA,CAAG,IAAI,CAAC5B,aAAa,CAAC6B,KAAK,CAAE,CAAC;IACtE;IAEA,OAAOH,iBAAO,CAACC,OAAO,CAAC,CAAC,CACtBG,IAAI,CAAC,YAAM;MACX,IACCC,MAAM,CAACC,IAAI,CAACf,KAAI,CAACgB,YAAY,CAAC,CAAC,CAAC,CAACb,MAAM,KAAK,CAAC,IAC7C,CAACH,KAAI,CAACnB,WAAW,EAChB;QACD,OAAOmB,KAAI,CAACiB,KAAK,CAAC;UAAEC,cAAc,EAAE;QAAM,CAAC,CAAC;MAC7C;MACA,OAAO,IAAI;IACZ,CAAC,CAAC,CACDL,IAAI,CAAC,YAAM;MACX,IAAIb,KAAI,CAACjB,aAAa,CAACwB,KAAK,CAAC,CAAC,EAAE;QAC/B,OAAOP,KAAI,CAACjB,aAAa,CAACkC,KAAK,CAAC,CAAC;MAClC;MACA,OAAO,IAAI;IACZ,CAAC,CAAC,CACDJ,IAAI,CAAC,YAAM;MACX,IAAMM,YAAY,GAAGnB,KAAI,CAACoB,eAAe,CAAC,CAAC;MAC3C,IAAI,CAACpB,KAAI,CAACjB,aAAa,CAAC6B,KAAK,EAAE;QAC9B,MAAM,IAAIJ,KAAK,CAAC,yCAAyC,CAAC;MAC3D;MACA,UAAAG,MAAA,CAAUQ,YAAY,EAAAR,MAAA,CAAGX,KAAI,CAACjB,aAAa,CAAC6B,KAAK;IAClD,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;EACES,QAAQ,WAARA,QAAQA,CAAA,EAAgC;IAAA,IAAAC,KAAA,GAAApB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAJ,CAAC,CAAC;MAAAqB,mBAAA,GAAAD,KAAA,CAA3BhB,aAAa;MAAbA,aAAa,GAAAiB,mBAAA,cAAG,IAAI,GAAAA,mBAAA;IAC9B,OAAO,IAAI,CAACxB,YAAY,CAAC;MAAEO,aAAa,EAAbA;IAAc,CAAC,CAAC,CACzCO,IAAI,CAAC,UAACW,SAAS,EAAK;MACpB,OAAOC,QAAQ,CAACC,MAAM,CAACF,SAAS,CAAC;IAClC,CAAC,CAAC,CACDX,IAAI,CAAC,UAACD,KAAK,EAAK;MAChB,IAAIA,KAAK,CAACe,OAAO,EAAE;QAClB,OAAOf,KAAK,CAACe,OAAO;MACrB;MACA,OAAOf,KAAK;IACb,CAAC,CAAC;EACJ,CAAC;EAEDgB,WAAW,WAAXA,WAAWA,CAAA,EAAuD;IAAA,IAAtDC,QAAQ,GAAA3B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,IAAEiB,YAAY,GAAAjB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI,CAACkB,eAAe,CAAC,CAAC;IAC/D,IAAMU,YAAY,GAAG,IAAI,CAAC/C,aAAa,CAAC8C,QAAQ,IAAI,CAAC,CAAC;IAEtD,IAAME,OAAO,GAAGC,eAAC,CAACC,GAAG,CAACH,YAAY,EAAE,UAACI,OAAO,EAAEC,GAAG,EAAK;MACrD,IAAMC,IAAI,MAAAzB,MAAA,CAAMQ,YAAY,EAAAR,MAAA,CAAGuB,OAAO,CAAE;MAExC,OAAOG,mBAAU,CACfC,GAAG,CAACF,IAAI,CAAC,CACTvB,IAAI,CAAC,UAAC0B,QAAQ,EAAK;QACnB,IAAIA,QAAQ,CAACC,IAAI,EAAE;UAClBX,QAAQ,CAACM,GAAG,CAAC,GAAGM,IAAI,CAACC,KAAK,CAACH,QAAQ,CAACC,IAAI,CAAC;QAC1C,CAAC,MAAM;UACNX,QAAQ,CAACM,GAAG,CAAC,GAAGI,QAAQ,CAACI,IAAI,IAAI,CAAC,CAAC;QACpC;MACD,CAAC,CAAC,CACDC,KAAK,CAACP,mBAAU,CAACQ,sBAAsB,EAAE,UAACC,CAAC,EAAK;QAChD,MAAMA,CAAC;MACR,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAOrC,iBAAO,CAACsC,GAAG,CAAChB,OAAO,CAAC;EAC5B,CAAC;EAEDd,KAAK,WAALA,KAAKA,CAAC+B,IAAI,EAAY;IAAA,IAAAC,oBAAA;MAAAC,MAAA;IAAA,SAAAC,IAAA,GAAAjD,SAAA,CAAAC,MAAA,EAAPiD,KAAK,OAAAC,KAAA,CAAAF,IAAA,OAAAA,IAAA,WAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAALF,KAAK,CAAAE,IAAA,QAAApD,SAAA,CAAAoD,IAAA;IAAA;IACnB,IAAMrC,KAAK,GAAG/D,eAAS,CAACqG,SAAS,CAACtC,KAAK,CAACuC,KAAK,CAAC,IAAI,GAAGR,IAAI,EAAArC,MAAA,CAAKyC,KAAK,CAAC,CAAC;IACrE,IAAMK,oBAAoB,IAAAR,oBAAA,GAAGD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE9B,cAAc,cAAA+B,oBAAA,cAAAA,oBAAA,GAAI,IAAI;IAEzD,OAAOxC,iBAAO,CAACC,OAAO,CAACO,KAAK,CAAC,CAACyC,GAAG,CAAC,YAAM;MACvC;MACA;MACA;MACA,IAAID,oBAAoB,EAAE;QACzB,OAAOP,MAAI,CAACzD,YAAY,CAACwB,KAAK,CAAC,CAAC;MACjC;IACD,CAAC,CAAC;EACH,CAAC;EAEDG,eAAe,WAAfA,eAAeA,CAAA,EAAG;IACjB,IAAMuC,UAAU,GAAG,IAAI,CAACC,YAAY,CAAC,IAAI,CAAC/E,WAAW,CAAC;IACtD,OACC,GAAA8B,MAAA,CAAGgD,UAAU,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,OAC9C;IACA;IACA;IAAA,CACCC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EAEvB,CAAC;EAEDC,WAAW,EAAE,SAAbA,WAAWA,CAAYC,QAAQ,EAAEC,OAAO,EAAE;IACzC,IAAIC,WAAW,GAAG;MAAEpG,OAAO,EAAE,IAAI,CAACA;IAAQ,CAAC;IAC3C,IAAIkG,QAAQ,EAAE;MACbE,WAAW,CAACC,SAAS,GAAGH,QAAQ;IACjC;IACA,IAAIC,OAAO,EAAE;MACZC,WAAW,CAACE,OAAO,GAAGH,OAAO;IAC9B;IAEA,IAAI,CAAC,IAAI,CAACtE,EAAE,EAAE;MACb,OAAOY,iBAAO,CAAC8D,MAAM,CAAC,IAAI/D,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC3D;IAEA,IAAM4B,IAAI,MAAAzB,MAAA,CAAM,IAAI,CAAC/B,IAAI,CAAC4F,GAAG,CAAC,CAAC,YAAS;IAExC,OAAOnC,mBAAU,CACfC,GAAG,CAACF,IAAI,CAAC,CACTqC,GAAG,CAACC,UAAI,CAACC,OAAO,CAAC,CACjBC,KAAK,CAACR,WAAW,CAAC,CAClBvD,IAAI,CAAC,UAACgE,GAAG,EAAK;MACd,IAAI,CAACA,GAAG,CAACC,EAAE,EAAE;QACZ,OAAOrE,iBAAO,CAAC8D,MAAM,CAACM,GAAG,CAAC;MAC3B;MACA,OAAOA,GAAG,CAAClC,IAAI;IAChB,CAAC,CAAC;EACJ,CAAC;EAEDoC,QAAQ,WAARA,QAAQA,CAAA,EAAG;IACV,OAAO;MACN7G,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBE,mBAAmB,EAAE,IAAI,CAACA;IAC3B,CAAC;EACF;AACD,CACD,CAAC;AAED,IAAA4G,uBAAQ,EAAC,kBAAkB,EAAEhI,gBAAgB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"deck-version.js","names":["require","_auth","_base","_deckVersionScreenshots","_bluebird","_interopRequireDefault","_collections","_lodash","_stateRegister","_superagent","DeckVersionModel","exports","BaseModel","extend","modelName","props","image_128","image_256","image_512","image_128_archive","image_256_archive","image_512_archive","namespaced_key","creation_status","creation_percent","update_description","version","approved","approval","pack_root_url","upgrade_description","friendly_release_notes","has_editable_share_support","has_signing_support","point_in_time_share_policy","tags","cmsvalkey_set","children","deck","index_asset","pack","manifest_json","collections","section_set","note_set","derived","screenshots","deps","fn","DeckVersionScreenshotCollection","deckversion","template_set","templates","TemplateCollection","data","id","scope","getHooksPath","_this","_ref","arguments","length","undefined","_ref$rootAssetPath","rootAssetPath","isNew","Error","Promise","resolve","concat","hooks","then","Object","keys","getSafeAttrs","fetch","fetchTemplates","rootAssetUrl","getRootAssetUrl","getHooks","_ref2","_ref2$rootAssetPath","hooksPath","SystemJS","import","default","getFixtures","fixtures","fixturePaths","imports","_","map","fixture","key","path","superagent","get","response","text","JSON","parse","body","catch","SuperagentPromiseError","e","all","opts","_opts$fetchTemplates","_this2","_len","other","Array","_key","prototype","apply","shouldFetchTemplates","tap","indexAsset","_retrieveURL","split","slice","join","replace","fetchLayout","presetId","scenarioID","queryParams","preset_id","scenario_id","reject","url","set","Auth","headers","query","res","ok","toServer","register"],"sources":["../../src/models/deck-version.js"],"sourcesContent":["import \"../collections/sections.js\";\nimport \"../collections/deck-notes.js\";\nimport \"./pack.js\";\nimport \"./deck.js\";\nimport \"./asset.js\";\nimport \"./manifest-json.js\";\n\nimport { Auth } from \"../auth.js\";\nimport { BaseModel } from \"./base.js\";\nimport { DeckVersionScreenshotCollection } from \"../collections/deck-version-screenshots.js\";\nimport Promise from \"bluebird\";\nimport { TemplateCollection } from \"../collections.js\";\nimport _ from \"lodash\";\nimport { register } from \"../state-register.js\";\nimport superagent from \"superagent\";\n\n/**\n * @constructor\n * @alias models.DeckVersionModel\n * @extends models.BaseModel\n */\nexport const DeckVersionModel = BaseModel.extend(\n\t/** @lends models.DeckVersionModel# */ {\n\t\tmodelName: \"deckversions\",\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_128_archive\n\t\t * @property {string} image_256_archive\n\t\t * @property {string} image_512_archive\n\t\t * @property {string} namespaced_key\n\t\t * @property {string} creation_status\n\t\t * @property {string} update_description\n\t\t * @property {version} version\n\t\t * @property {boolean} approved\n\t\t * @property {string} approval\n\t\t * @property {string} pack_root_url\n\t\t * @property {string} upgrade_description\n\t\t * @property {string} friendly_release_notes\n\t\t * @property {boolean} has_editable_share_support\n\t\t * @property {string} point_in_time_share_policy\n\t\t * @property {string[]} tags\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_128_archive: \"string\",\n\t\t\timage_256_archive: \"string\",\n\t\t\timage_512_archive: \"string\",\n\t\t\tnamespaced_key: \"string\",\n\t\t\tcreation_status: \"string\",\n\t\t\tcreation_percent: \"number\",\n\t\t\tupdate_description: \"string\",\n\t\t\tversion: \"number\",\n\t\t\tapproved: \"boolean\",\n\t\t\tapproval: \"string\",\n\t\t\tpack_root_url: \"string\",\n\t\t\tupgrade_description: \"string\",\n\t\t\tfriendly_release_notes: \"string\",\n\t\t\thas_editable_share_support: \"boolean\",\n\t\t\thas_signing_support: \"boolean\",\n\t\t\tpoint_in_time_share_policy: \"string\",\n\t\t\ttags: \"array\",\n\t\t\tcmsvalkey_set: \"array\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.AssetModel} index_asset\n\t\t * @property {models.PackModel} pack\n\t\t * @property {models.ManifestJSONModel} manifest_json\n\t\t */\n\t\tchildren: {\n\t\t\tdeck: \"DeckModel\",\n\t\t\tindex_asset: \"AssetModel\",\n\t\t\tpack: \"PackModel\",\n\t\t\tmanifest_json: \"ManifestJSONModel\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.SectionCollection} section_set\n\t\t * @property {models.DeckNoteCollection} note_set\n\t\t */\n\t\tcollections: {\n\t\t\tsection_set: \"SectionCollection\",\n\t\t\tnote_set: \"DeckNoteCollection\",\n\t\t},\n\n\t\t/**\n\t\t * @property {collections.DeckVersionScreenshotCollection} screenshots\n\t\t */\n\t\tderived: {\n\t\t\tscreenshots: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst screenshots = new DeckVersionScreenshotCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdeckversion: this,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t\treturn screenshots;\n\t\t\t\t},\n\t\t\t},\n\n\t\t\ttemplate_set: {\n\t\t\t\tdeps: [\"id\"],\n\t\t\t\tfn: function () {\n\t\t\t\t\tconst templates = new TemplateCollection(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tdeckversion: this.id,\n\t\t\t\t\t\t\t\tscope: \"global\",\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\treturn templates;\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\tgetHooksPath({ rootAssetPath = null } = {}) {\n\t\t\tif (this.isNew()) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Can only get hooks from a fetched deckversion or at least have an ID\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (rootAssetPath) {\n\t\t\t\treturn Promise.resolve(`${rootAssetPath}${this.manifest_json.hooks}`);\n\t\t\t}\n\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tObject.keys(this.getSafeAttrs()).length === 1 ||\n\t\t\t\t\t\t!this.index_asset\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn this.fetch({ fetchTemplates: false });\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (this.manifest_json.isNew()) {\n\t\t\t\t\t\treturn this.manifest_json.fetch();\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tconst rootAssetUrl = this.getRootAssetUrl();\n\t\t\t\t\tif (!this.manifest_json.hooks) {\n\t\t\t\t\t\tthrow new Error(\"Manifest does not contain a hooks entry\");\n\t\t\t\t\t}\n\t\t\t\t\treturn `${rootAssetUrl}${this.manifest_json.hooks}`;\n\t\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @todo This should eventually return a hooks interface\n\t\t * @returns {object}\n\t\t */\n\t\tgetHooks({ rootAssetPath = null } = {}) {\n\t\t\treturn this.getHooksPath({ rootAssetPath })\n\t\t\t\t.then((hooksPath) => {\n\t\t\t\t\treturn SystemJS.import(hooksPath);\n\t\t\t\t})\n\t\t\t\t.then((hooks) => {\n\t\t\t\t\tif (hooks.default) {\n\t\t\t\t\t\treturn hooks.default;\n\t\t\t\t\t}\n\t\t\t\t\treturn hooks;\n\t\t\t\t});\n\t\t},\n\n\t\tgetFixtures(fixtures = {}, rootAssetUrl = this.getRootAssetUrl()) {\n\t\t\tconst fixturePaths = this.manifest_json.fixtures || {};\n\n\t\t\tconst imports = _.map(fixturePaths, (fixture, key) => {\n\t\t\t\tconst path = `${rootAssetUrl}${fixture}`;\n\n\t\t\t\treturn superagent\n\t\t\t\t\t.get(path)\n\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\tif (response.text) {\n\t\t\t\t\t\t\tfixtures[key] = JSON.parse(response.text);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfixtures[key] = response.body || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(superagent.SuperagentPromiseError, (e) => {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t});\n\t\t\t});\n\n\t\t\treturn Promise.all(imports);\n\t\t},\n\n\t\tfetch(opts, ...other) {\n\t\t\tconst fetch = BaseModel.prototype.fetch.apply(this, [opts, ...other]);\n\t\t\tconst shouldFetchTemplates = opts?.fetchTemplates ?? true;\n\n\t\t\treturn Promise.resolve(fetch).tap(() => {\n\t\t\t\t// `template_set` used to come on the deckversion response, but we have since\n\t\t\t\t// decided to request it separately (this helps with caching). To keep the app\n\t\t\t\t// working with minimal changes, we're making the extra request here.\n\t\t\t\tif (shouldFetchTemplates) {\n\t\t\t\t\treturn this.template_set.fetch();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tgetRootAssetUrl() {\n\t\t\tconst indexAsset = this._retrieveURL(this.index_asset);\n\t\t\treturn (\n\t\t\t\t`${indexAsset.split(\"/\").slice(0, -1).join(\"/\")}/`\n\t\t\t\t\t// HACK: We've got instances (see: myob) that are returning ports in their urls.\n\t\t\t\t\t// SystemJS gets confused and starts caching multiple versions (one with and without\n\t\t\t\t\t// this port), causing havoc. If we see it, strip it.\n\t\t\t\t\t.replace(\":443\", \"\")\n\t\t\t);\n\t\t},\n\n\t\tfetchLayout: function (presetId, scenarioID) {\n\t\t\tlet queryParams = { version: this.version };\n\t\t\tif (presetId) {\n\t\t\t\tqueryParams.preset_id = presetId;\n\t\t\t}\n\t\t\tif (scenarioID) {\n\t\t\t\tqueryParams.scenario_id = scenarioID;\n\t\t\t}\n\n\t\t\tif (!this.id) {\n\t\t\t\treturn Promise.reject(new Error(\"DeckVersion has no ID.\"));\n\t\t\t}\n\n\t\t\tconst path = `${this.deck.url()}layout/`;\n\n\t\t\treturn superagent\n\t\t\t\t.get(path)\n\t\t\t\t.set(Auth.headers)\n\t\t\t\t.query(queryParams)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (!res.ok) {\n\t\t\t\t\t\treturn Promise.reject(res);\n\t\t\t\t\t}\n\t\t\t\t\treturn res.body;\n\t\t\t\t});\n\t\t},\n\n\t\ttoServer() {\n\t\t\treturn {\n\t\t\t\tapproval: this.approval,\n\t\t\t\tupgrade_description: this.upgrade_description,\n\t\t\t};\n\t\t},\n\t},\n);\n\nregister(\"DeckVersionModel\", DeckVersionModel);\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.PresetModel = void 0;
7
7
  require("./user.js");
8
8
  require("./deck.js");
9
9
  require("./team.js");
10
+ require("./scenario.js");
10
11
  var _base = require("./base.js");
11
12
  var _stateRegister = require("../state-register.js");
12
13
  /**
@@ -37,13 +38,14 @@ var PresetModel = exports.PresetModel = _base.BaseModel.extend(/** @lends models
37
38
  /**
38
39
  * @property {models.UserModel} user
39
40
  * @property {models.DeckModel} deck
40
- * @property {models.TeamModel} team
41
+ * @property {models.TeamMode} team
42
+ * @property {models.ScenarioMode} keylist_scenario
41
43
  */
42
44
  children: {
43
45
  user: "UserModel",
44
46
  deck: "DeckModel",
45
47
  team: "TeamModel",
46
- keylist_team: "TeamModel"
48
+ keylist_scenario: "ScenarioModel"
47
49
  },
48
50
  toServer: function toServer() {
49
51
  var data = {
@@ -63,15 +65,15 @@ var PresetModel = exports.PresetModel = _base.BaseModel.extend(/** @lends models
63
65
  if (teamURL) {
64
66
  data.team = teamURL;
65
67
  }
66
- var keylistTeamURL = this._retrieveURL(this.keylist_team);
67
- if (keylistTeamURL) {
68
- data.keylist_team = keylistTeamURL;
68
+ var keylistScenarioURL = this._retrieveURL(this.keylist_scenario);
69
+ if (keylistScenarioURL) {
70
+ data.keylist_scenario = keylistScenarioURL;
69
71
  }
70
72
  return data;
71
73
  }
72
74
  });
73
75
  PresetModel.USER_VISIBILITY = "__user__";
74
76
  PresetModel.GLOBAL_VISIBILITY = "__global__";
75
- PresetModel.STANDARD_SLIDE_SOURCE = "__standard__";
77
+ PresetModel.STANDARD_DECK = "__standard__";
76
78
  (0, _stateRegister.register)("PresetModel", PresetModel);
77
79
  //# sourceMappingURL=preset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preset.js","names":["require","_base","_stateRegister","PresetModel","exports","BaseModel","extend","modelName","props","scope","keylist","created_date","modified_date","name","context","hash_id","_tenancy","children","user","deck","team","keylist_team","toServer","data","_retrieveURL","id","teamURL","keylistTeamURL","USER_VISIBILITY","GLOBAL_VISIBILITY","STANDARD_SLIDE_SOURCE","register"],"sources":["../../src/models/preset.js"],"sourcesContent":["import \"./user.js\";\nimport \"./deck.js\";\nimport \"./team.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.PresetModel\n * @extends models.BaseModel\n */\nexport const PresetModel = BaseModel.extend(\n\t/** @lends models.PresetModel# */ {\n\t\tmodelName: \"presets\",\n\n\t\t/**\n\t\t * @property {string} scope\n\t\t * @property {string[]} keylist\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\n\t\t * @property {string} name\n\t\t * @property {string} hash_id\n\t\t */\n\t\tprops: {\n\t\t\tscope: \"string\",\n\t\t\tkeylist: \"array\",\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\tname: \"stringSanitized\",\n\t\t\tcontext: \"object\",\n\t\t\thash_id: \"string\",\n\t\t\t_tenancy: \"object\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.UserModel} user\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.TeamModel} team\n\t\t */\n\t\tchildren: {\n\t\t\tuser: \"UserModel\",\n\t\t\tdeck: \"DeckModel\",\n\t\t\tteam: \"TeamModel\",\n\t\t\tkeylist_team: \"TeamModel\",\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = {\n\t\t\t\tscope: this.scope,\n\t\t\t\tkeylist: this.keylist,\n\t\t\t\tcreated_date: this.created_date,\n\t\t\t\tmodified_date: this.modified_date,\n\t\t\t\tname: this.name,\n\t\t\t\tcontext: this.context || {},\n\t\t\t\t// user: this._retrieveURL(this.user),\n\t\t\t\tdeck: this._retrieveURL(this.deck),\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\tconst teamURL = this._retrieveURL(this.team);\n\n\t\t\tif (teamURL) {\n\t\t\t\tdata.team = teamURL;\n\t\t\t}\n\t\t\tconst keylistTeamURL = this._retrieveURL(this.keylist_team);\n\n\t\t\tif (keylistTeamURL) {\n\t\t\t\tdata.keylist_team = keylistTeamURL;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nPresetModel.USER_VISIBILITY = \"__user__\";\nPresetModel.GLOBAL_VISIBILITY = \"__global__\";\nPresetModel.STANDARD_SLIDE_SOURCE = \"__standard__\";\n\nregister(\"PresetModel\", PresetModel);\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,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGE,eAAS,CAACC,MAAM,CAC1C,iCAAkC;EACjCC,SAAS,EAAE,SAAS;EAEpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,KAAK,EAAE,QAAQ;IACfC,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE,MAAM;IACpBC,aAAa,EAAE,MAAM;IACrBC,IAAI,EAAE,iBAAiB;IACvBC,OAAO,EAAE,QAAQ;IACjBC,OAAO,EAAE,QAAQ;IACjBC,QAAQ,EAAE;EACX,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,QAAQ,EAAE;IACTC,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,YAAY,EAAE;EACf,CAAC;EAEDC,QAAQ,WAARA,QAAQA,CAAA,EAAG;IACV,IAAMC,IAAI,GAAG;MACZd,KAAK,EAAE,IAAI,CAACA,KAAK;MACjBC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBC,YAAY,EAAE,IAAI,CAACA,YAAY;MAC/BC,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCC,IAAI,EAAE,IAAI,CAACA,IAAI;MACfC,OAAO,EAAE,IAAI,CAACA,OAAO,IAAI,CAAC,CAAC;MAC3B;MACAK,IAAI,EAAE,IAAI,CAACK,YAAY,CAAC,IAAI,CAACL,IAAI;IAClC,CAAC;IAED,IAAI,IAAI,CAACM,EAAE,EAAE;MACZF,IAAI,CAACE,EAAE,GAAG,IAAI,CAACA,EAAE;IAClB;IAEA,IAAMC,OAAO,GAAG,IAAI,CAACF,YAAY,CAAC,IAAI,CAACJ,IAAI,CAAC;IAE5C,IAAIM,OAAO,EAAE;MACZH,IAAI,CAACH,IAAI,GAAGM,OAAO;IACpB;IACA,IAAMC,cAAc,GAAG,IAAI,CAACH,YAAY,CAAC,IAAI,CAACH,YAAY,CAAC;IAE3D,IAAIM,cAAc,EAAE;MACnBJ,IAAI,CAACF,YAAY,GAAGM,cAAc;IACnC;IAEA,OAAOJ,IAAI;EACZ;AACD,CACD,CAAC;AAEDpB,WAAW,CAACyB,eAAe,GAAG,UAAU;AACxCzB,WAAW,CAAC0B,iBAAiB,GAAG,YAAY;AAC5C1B,WAAW,CAAC2B,qBAAqB,GAAG,cAAc;AAElD,IAAAC,uBAAQ,EAAC,aAAa,EAAE5B,WAAW,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"preset.js","names":["require","_base","_stateRegister","PresetModel","exports","BaseModel","extend","modelName","props","scope","keylist","created_date","modified_date","name","context","hash_id","_tenancy","children","user","deck","team","keylist_scenario","toServer","data","_retrieveURL","id","teamURL","keylistScenarioURL","USER_VISIBILITY","GLOBAL_VISIBILITY","STANDARD_DECK","register"],"sources":["../../src/models/preset.js"],"sourcesContent":["import \"./user.js\";\nimport \"./deck.js\";\nimport \"./team.js\";\nimport \"./scenario.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\n\n/**\n * @constructor\n * @alias models.PresetModel\n * @extends models.BaseModel\n */\nexport const PresetModel = BaseModel.extend(\n\t/** @lends models.PresetModel# */ {\n\t\tmodelName: \"presets\",\n\n\t\t/**\n\t\t * @property {string} scope\n\t\t * @property {string[]} keylist\n\t\t * @property {date} created_date\n\t\t * @property {date} modified_date\n\t\t * @property {string} name\n\t\t * @property {string} hash_id\n\t\t */\n\t\tprops: {\n\t\t\tscope: \"string\",\n\t\t\tkeylist: \"array\",\n\t\t\tcreated_date: \"date\",\n\t\t\tmodified_date: \"date\",\n\t\t\tname: \"stringSanitized\",\n\t\t\tcontext: \"object\",\n\t\t\thash_id: \"string\",\n\t\t\t_tenancy: \"object\",\n\t\t},\n\n\t\t/**\n\t\t * @property {models.UserModel} user\n\t\t * @property {models.DeckModel} deck\n\t\t * @property {models.TeamMode} team\n\t\t * @property {models.ScenarioMode} keylist_scenario\n\t\t */\n\t\tchildren: {\n\t\t\tuser: \"UserModel\",\n\t\t\tdeck: \"DeckModel\",\n\t\t\tteam: \"TeamModel\",\n\t\t\tkeylist_scenario: \"ScenarioModel\",\n\t\t},\n\n\t\ttoServer() {\n\t\t\tconst data = {\n\t\t\t\tscope: this.scope,\n\t\t\t\tkeylist: this.keylist,\n\t\t\t\tcreated_date: this.created_date,\n\t\t\t\tmodified_date: this.modified_date,\n\t\t\t\tname: this.name,\n\t\t\t\tcontext: this.context || {},\n\t\t\t\t// user: this._retrieveURL(this.user),\n\t\t\t\tdeck: this._retrieveURL(this.deck),\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\tconst teamURL = this._retrieveURL(this.team);\n\n\t\t\tif (teamURL) {\n\t\t\t\tdata.team = teamURL;\n\t\t\t}\n\t\t\tconst keylistScenarioURL = this._retrieveURL(this.keylist_scenario);\n\n\t\t\tif (keylistScenarioURL) {\n\t\t\t\tdata.keylist_scenario = keylistScenarioURL;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\t},\n);\n\nPresetModel.USER_VISIBILITY = \"__user__\";\nPresetModel.GLOBAL_VISIBILITY = \"__global__\";\nPresetModel.STANDARD_DECK = \"__standard__\";\n\nregister(\"PresetModel\", PresetModel);\n"],"mappings":";;;;;;AAAAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGE,eAAS,CAACC,MAAM,CAC1C,iCAAkC;EACjCC,SAAS,EAAE,SAAS;EAEpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,EAAE;IACNC,KAAK,EAAE,QAAQ;IACfC,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE,MAAM;IACpBC,aAAa,EAAE,MAAM;IACrBC,IAAI,EAAE,iBAAiB;IACvBC,OAAO,EAAE,QAAQ;IACjBC,OAAO,EAAE,QAAQ;IACjBC,QAAQ,EAAE;EACX,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,QAAQ,EAAE;IACTC,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,IAAI,EAAE,WAAW;IACjBC,gBAAgB,EAAE;EACnB,CAAC;EAEDC,QAAQ,WAARA,QAAQA,CAAA,EAAG;IACV,IAAMC,IAAI,GAAG;MACZd,KAAK,EAAE,IAAI,CAACA,KAAK;MACjBC,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBC,YAAY,EAAE,IAAI,CAACA,YAAY;MAC/BC,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCC,IAAI,EAAE,IAAI,CAACA,IAAI;MACfC,OAAO,EAAE,IAAI,CAACA,OAAO,IAAI,CAAC,CAAC;MAC3B;MACAK,IAAI,EAAE,IAAI,CAACK,YAAY,CAAC,IAAI,CAACL,IAAI;IAClC,CAAC;IAED,IAAI,IAAI,CAACM,EAAE,EAAE;MACZF,IAAI,CAACE,EAAE,GAAG,IAAI,CAACA,EAAE;IAClB;IAEA,IAAMC,OAAO,GAAG,IAAI,CAACF,YAAY,CAAC,IAAI,CAACJ,IAAI,CAAC;IAE5C,IAAIM,OAAO,EAAE;MACZH,IAAI,CAACH,IAAI,GAAGM,OAAO;IACpB;IACA,IAAMC,kBAAkB,GAAG,IAAI,CAACH,YAAY,CAAC,IAAI,CAACH,gBAAgB,CAAC;IAEnE,IAAIM,kBAAkB,EAAE;MACvBJ,IAAI,CAACF,gBAAgB,GAAGM,kBAAkB;IAC3C;IAEA,OAAOJ,IAAI;EACZ;AACD,CACD,CAAC;AAEDpB,WAAW,CAACyB,eAAe,GAAG,UAAU;AACxCzB,WAAW,CAAC0B,iBAAiB,GAAG,YAAY;AAC5C1B,WAAW,CAAC2B,aAAa,GAAG,cAAc;AAE1C,IAAAC,uBAAQ,EAAC,aAAa,EAAE5B,WAAW,CAAC","ignoreList":[]}