Subversion Repository Public Repository

Nextrek

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
    "uid": "7F1D60F1K265BA40B5SA78EEAB249F02B709",
    "isLoaded": true,
    "lastModificationTime": 1421095528911,
    "items": {
        "name": "DataManager",
        "type": "game_script",
        "order": 6,
        "content": "# ===================================================================\n#\n#   Script: DataManager\n#\n#   $$COPYRIGHT$$\n#\n# ===================================================================\nclass DataManager\n    ###*\n    * Manages the game's data like loading documents. Documents are stored\n    * in the data folder of the game in JSON format. The UID is used as the file-name.\n    * A document has the following structure:<br>\n    * <br>\n    * UID - Unique Identifier<br>\n    * Items -> An object containing all the items/fields of the document.<br>\n    * Items.Type -> The type of the document<br>\n    * Items.Name -> The name of the document<br>\n    * <br>\n    * @module gs\n    * @class DataManager\n    * @memberof gs\n    * @constructor\n    ###\n    constructor: ->\n        ###*\n        * Stores all documents by UID.\n        * @property documentsByUid\n        * @type gs.Document[]\n        ### \n        @documentsByUid = {}\n        \n        ###*\n        * Stores all documents.\n        * @property documents\n        * @type gs.Document[]\n        ###\n        @documents = []\n        \n        ###*\n        * Indiciates if all requested documents are loaded.\n        * @property documentsLoaded\n        * @type boolean\n        ###\n        @documentsLoaded = true\n        \n        ###*\n        * @property events\n        * @type gs.EventEmitter\n        ###\n        @events = new gs.EventEmitter()\n        \n\n    ###*\n    * Unloads all documents with a specified type.\n    *\n    * @method disposeDocumentsByType\n    * @param {String} type - The document type.\n    ###  \n    disposeDocumentsByType: (type) ->\n        i = 0\n        \n        while i < @documents.length\n            d = @documents[i]\n            if d && d.items && d.items.type == type\n            \t@documents.remove(d)\n            \t@documentsByUid[d.uid] = null\n            \tGS.dataCache[d.uid] = null\n            \tdelete @documentsByUid[d.uid]\n            \tdelete GS.dataCache[d.uid]\n            \ti--;\n            i++\n            \n        return null\n    \t\t\n\t\n    ###*\n    * Gets all documents with a specified type.\n    *\n    * @method getDocumentsByType\n    * @param {String} type - The document type.\n    * @return {gs.Document[]} The documents.\n    ###  \n    getDocumentsByType: (type) ->\n        result = []\n        \n        for uid of @summaries.items\n            summary = @summaries.items[uid]\n            if summary.items? and summary.items.type == type\n                result.push(@getDocument(uid))\n\n        return result\n        \n    ###*\n    * Gets the first document with the specified type.\n    *\n    * @method getDocumentByType\n    * @param {String} type - The document type.\n    * @return {gs.Document} The document or <b>null</b> if a document with the specified type doesn't exist.\n    ###  \n    getDocumentByType: (type) ->\n        result = null\n        \n        for uid of @summaries.items\n            summary = @summaries.items[uid]\n            if summary.items? and summary.items.type == type\n                result = @getDocument(uid)\n                break\n\n        return result\n        \n    ###*\n    * Gets a document by its UID.\n    *\n    * @method getDocument\n    * @param {String} uid - The UID of the document to get.\n    * @return {gs.Document} The document or <b>null</b> if a document with the specified UID doesn't exist.\n    ###  \n    getDocument: (uid) ->\n        result = @documentsByUid[uid]\n    \n        if not result?\n            gs.Data.load(uid, (dataObject, error) =>\n                if !error\n                    r = @documentsByUid[dataObject.uid]\n                    r.items = dataObject.items;\n                    r.loaded = true;\n            )\n            \n            if @summaries and @summaries.items\n                summary = @summaries.items[uid]\n                if summary\n                    result = { uid: uid, items: summary.items, loaded: false }\n            else\n                result = { uid: uid, loaded: false }\n            \n            if result\n                @documentsByUid[uid] = result\n                @documents.push(result)\n                @documentsLoaded = false\n            \n            if uid == \"SUMMARIES\" then @summaries = result\n    \n        return result\n        \n    \n    ###*\n    * Gets a document by its UID. If the document isn't already loaded this method\n    * only returned document only contains summary data.\n    *\n    * @method getDocumentSummary\n    * @param {String} uid - The UID of the document to get.\n    * @return {gs.Document} The document or <b>null</b> if a document with the specified UID doesn't exist.\n    ### \n    getDocumentSummary: (uid) -> @summaries.items[uid]\n    \n    ###*\n    * Updates the loading process of documents.\n    *\n    * @method update\n    ### \n    update: ->\n        if not @documentsLoaded\n            @documentsLoaded = true\n    \n            for i in [0...@documents.length]\n                if not @documents[i].loaded\n                    @documentsLoaded = false\n                    break\n                    \n            if @documentsLoaded\n                @events.emit(\"loaded\", this)\n        \n        return null\n\nwindow.DataManager = DataManager\ngs.DataManager = DataManager",
        "compiledContent": "var DataManager;\n\nDataManager = (function() {\n\n  /**\n  * Manages the game's data like loading documents. Documents are stored\n  * in the data folder of the game in JSON format. The UID is used as the file-name.\n  * A document has the following structure:<br>\n  * <br>\n  * UID - Unique Identifier<br>\n  * Items -> An object containing all the items/fields of the document.<br>\n  * Items.Type -> The type of the document<br>\n  * Items.Name -> The name of the document<br>\n  * <br>\n  * @module gs\n  * @class DataManager\n  * @memberof gs\n  * @constructor\n   */\n  function DataManager() {\n\n    /**\n    * Stores all documents by UID.\n    * @property documentsByUid\n    * @type gs.Document[]\n     */\n    this.documentsByUid = {};\n\n    /**\n    * Stores all documents.\n    * @property documents\n    * @type gs.Document[]\n     */\n    this.documents = [];\n\n    /**\n    * Indiciates if all requested documents are loaded.\n    * @property documentsLoaded\n    * @type boolean\n     */\n    this.documentsLoaded = true;\n\n    /**\n    * @property events\n    * @type gs.EventEmitter\n     */\n    this.events = new gs.EventEmitter();\n  }\n\n\n  /**\n  * Unloads all documents with a specified type.\n  *\n  * @method disposeDocumentsByType\n  * @param {String} type - The document type.\n   */\n\n  DataManager.prototype.disposeDocumentsByType = function(type) {\n    var d, i;\n    i = 0;\n    while (i < this.documents.length) {\n      d = this.documents[i];\n      if (d && d.items && d.items.type === type) {\n        this.documents.remove(d);\n        this.documentsByUid[d.uid] = null;\n        GS.dataCache[d.uid] = null;\n        delete this.documentsByUid[d.uid];\n        delete GS.dataCache[d.uid];\n        i--;\n      }\n      i++;\n    }\n    return null;\n  };\n\n\n  /**\n  * Gets all documents with a specified type.\n  *\n  * @method getDocumentsByType\n  * @param {String} type - The document type.\n  * @return {gs.Document[]} The documents.\n   */\n\n  DataManager.prototype.getDocumentsByType = function(type) {\n    var result, summary, uid;\n    result = [];\n    for (uid in this.summaries.items) {\n      summary = this.summaries.items[uid];\n      if ((summary.items != null) && summary.items.type === type) {\n        result.push(this.getDocument(uid));\n      }\n    }\n    return result;\n  };\n\n\n  /**\n  * Gets the first document with the specified type.\n  *\n  * @method getDocumentByType\n  * @param {String} type - The document type.\n  * @return {gs.Document} The document or <b>null</b> if a document with the specified type doesn't exist.\n   */\n\n  DataManager.prototype.getDocumentByType = function(type) {\n    var result, summary, uid;\n    result = null;\n    for (uid in this.summaries.items) {\n      summary = this.summaries.items[uid];\n      if ((summary.items != null) && summary.items.type === type) {\n        result = this.getDocument(uid);\n        break;\n      }\n    }\n    return result;\n  };\n\n\n  /**\n  * Gets a document by its UID.\n  *\n  * @method getDocument\n  * @param {String} uid - The UID of the document to get.\n  * @return {gs.Document} The document or <b>null</b> if a document with the specified UID doesn't exist.\n   */\n\n  DataManager.prototype.getDocument = function(uid) {\n    var result, summary;\n    result = this.documentsByUid[uid];\n    if (result == null) {\n      gs.Data.load(uid, (function(_this) {\n        return function(dataObject, error) {\n          var r;\n          if (!error) {\n            r = _this.documentsByUid[dataObject.uid];\n            r.items = dataObject.items;\n            return r.loaded = true;\n          }\n        };\n      })(this));\n      if (this.summaries && this.summaries.items) {\n        summary = this.summaries.items[uid];\n        if (summary) {\n          result = {\n            uid: uid,\n            items: summary.items,\n            loaded: false\n          };\n        }\n      } else {\n        result = {\n          uid: uid,\n          loaded: false\n        };\n      }\n      if (result) {\n        this.documentsByUid[uid] = result;\n        this.documents.push(result);\n        this.documentsLoaded = false;\n      }\n      if (uid === \"SUMMARIES\") {\n        this.summaries = result;\n      }\n    }\n    return result;\n  };\n\n\n  /**\n  * Gets a document by its UID. If the document isn't already loaded this method\n  * only returned document only contains summary data.\n  *\n  * @method getDocumentSummary\n  * @param {String} uid - The UID of the document to get.\n  * @return {gs.Document} The document or <b>null</b> if a document with the specified UID doesn't exist.\n   */\n\n  DataManager.prototype.getDocumentSummary = function(uid) {\n    return this.summaries.items[uid];\n  };\n\n\n  /**\n  * Updates the loading process of documents.\n  *\n  * @method update\n   */\n\n  DataManager.prototype.update = function() {\n    var i, j, ref;\n    if (!this.documentsLoaded) {\n      this.documentsLoaded = true;\n      for (i = j = 0, ref = this.documents.length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {\n        if (!this.documents[i].loaded) {\n          this.documentsLoaded = false;\n          break;\n        }\n      }\n      if (this.documentsLoaded) {\n        this.events.emit(\"loaded\", this);\n      }\n    }\n    return null;\n  };\n\n  return DataManager;\n\n})();\n\nwindow.DataManager = DataManager;\n\ngs.DataManager = DataManager;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUE7O0FBQU07O0FBQ0Y7Ozs7Ozs7Ozs7Ozs7OztFQWVhLHFCQUFBOztBQUNUOzs7OztJQUtBLElBQUMsQ0FBQSxjQUFELEdBQWtCOztBQUVsQjs7Ozs7SUFLQSxJQUFDLENBQUEsU0FBRCxHQUFhOztBQUViOzs7OztJQUtBLElBQUMsQ0FBQSxlQUFELEdBQW1COztBQUVuQjs7OztJQUlBLElBQUMsQ0FBQSxNQUFELEdBQWMsSUFBQSxFQUFFLENBQUMsWUFBSCxDQUFBO0VBMUJMOzs7QUE2QmI7Ozs7Ozs7d0JBTUEsc0JBQUEsR0FBd0IsU0FBQyxJQUFEO0FBQ3BCLFFBQUE7SUFBQSxDQUFBLEdBQUk7QUFFSixXQUFNLENBQUEsR0FBSSxJQUFDLENBQUEsU0FBUyxDQUFDLE1BQXJCO01BQ0ksQ0FBQSxHQUFJLElBQUMsQ0FBQSxTQUFVLENBQUEsQ0FBQTtNQUNmLElBQUcsQ0FBQSxJQUFLLENBQUMsQ0FBQyxLQUFQLElBQWdCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBUixLQUFnQixJQUFuQztRQUNDLElBQUMsQ0FBQSxTQUFTLENBQUMsTUFBWCxDQUFrQixDQUFsQjtRQUNBLElBQUMsQ0FBQSxjQUFlLENBQUEsQ0FBQyxDQUFDLEdBQUYsQ0FBaEIsR0FBeUI7UUFDekIsRUFBRSxDQUFDLFNBQVUsQ0FBQSxDQUFDLENBQUMsR0FBRixDQUFiLEdBQXNCO1FBQ3RCLE9BQU8sSUFBQyxDQUFBLGNBQWUsQ0FBQSxDQUFDLENBQUMsR0FBRjtRQUN2QixPQUFPLEVBQUUsQ0FBQyxTQUFVLENBQUEsQ0FBQyxDQUFDLEdBQUY7UUFDcEIsQ0FBQSxHQU5EOztNQU9BLENBQUE7SUFUSjtBQVdBLFdBQU87RUFkYTs7O0FBaUJ4Qjs7Ozs7Ozs7d0JBT0Esa0JBQUEsR0FBb0IsU0FBQyxJQUFEO0FBQ2hCLFFBQUE7SUFBQSxNQUFBLEdBQVM7QUFFVCxTQUFBLDJCQUFBO01BQ0ksT0FBQSxHQUFVLElBQUMsQ0FBQSxTQUFTLENBQUMsS0FBTSxDQUFBLEdBQUE7TUFDM0IsSUFBRyx1QkFBQSxJQUFtQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQWQsS0FBc0IsSUFBNUM7UUFDSSxNQUFNLENBQUMsSUFBUCxDQUFZLElBQUMsQ0FBQSxXQUFELENBQWEsR0FBYixDQUFaLEVBREo7O0FBRko7QUFLQSxXQUFPO0VBUlM7OztBQVVwQjs7Ozs7Ozs7d0JBT0EsaUJBQUEsR0FBbUIsU0FBQyxJQUFEO0FBQ2YsUUFBQTtJQUFBLE1BQUEsR0FBUztBQUVULFNBQUEsMkJBQUE7TUFDSSxPQUFBLEdBQVUsSUFBQyxDQUFBLFNBQVMsQ0FBQyxLQUFNLENBQUEsR0FBQTtNQUMzQixJQUFHLHVCQUFBLElBQW1CLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBZCxLQUFzQixJQUE1QztRQUNJLE1BQUEsR0FBUyxJQUFDLENBQUEsV0FBRCxDQUFhLEdBQWI7QUFDVCxjQUZKOztBQUZKO0FBTUEsV0FBTztFQVRROzs7QUFXbkI7Ozs7Ozs7O3dCQU9BLFdBQUEsR0FBYSxTQUFDLEdBQUQ7QUFDVCxRQUFBO0lBQUEsTUFBQSxHQUFTLElBQUMsQ0FBQSxjQUFlLENBQUEsR0FBQTtJQUV6QixJQUFPLGNBQVA7TUFDSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQVIsQ0FBYSxHQUFiLEVBQWtCLENBQUEsU0FBQSxLQUFBO2VBQUEsU0FBQyxVQUFELEVBQWEsS0FBYjtBQUNkLGNBQUE7VUFBQSxJQUFHLENBQUMsS0FBSjtZQUNJLENBQUEsR0FBSSxLQUFDLENBQUEsY0FBZSxDQUFBLFVBQVUsQ0FBQyxHQUFYO1lBQ3BCLENBQUMsQ0FBQyxLQUFGLEdBQVUsVUFBVSxDQUFDO21CQUNyQixDQUFDLENBQUMsTUFBRixHQUFXLEtBSGY7O1FBRGM7TUFBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLENBQWxCO01BT0EsSUFBRyxJQUFDLENBQUEsU0FBRCxJQUFlLElBQUMsQ0FBQSxTQUFTLENBQUMsS0FBN0I7UUFDSSxPQUFBLEdBQVUsSUFBQyxDQUFBLFNBQVMsQ0FBQyxLQUFNLENBQUEsR0FBQTtRQUMzQixJQUFHLE9BQUg7VUFDSSxNQUFBLEdBQVM7WUFBRSxHQUFBLEVBQUssR0FBUDtZQUFZLEtBQUEsRUFBTyxPQUFPLENBQUMsS0FBM0I7WUFBa0MsTUFBQSxFQUFRLEtBQTFDO1lBRGI7U0FGSjtPQUFBLE1BQUE7UUFLSSxNQUFBLEdBQVM7VUFBRSxHQUFBLEVBQUssR0FBUDtVQUFZLE1BQUEsRUFBUSxLQUFwQjtVQUxiOztNQU9BLElBQUcsTUFBSDtRQUNJLElBQUMsQ0FBQSxjQUFlLENBQUEsR0FBQSxDQUFoQixHQUF1QjtRQUN2QixJQUFDLENBQUEsU0FBUyxDQUFDLElBQVgsQ0FBZ0IsTUFBaEI7UUFDQSxJQUFDLENBQUEsZUFBRCxHQUFtQixNQUh2Qjs7TUFLQSxJQUFHLEdBQUEsS0FBTyxXQUFWO1FBQTJCLElBQUMsQ0FBQSxTQUFELEdBQWEsT0FBeEM7T0FwQko7O0FBc0JBLFdBQU87RUF6QkU7OztBQTRCYjs7Ozs7Ozs7O3dCQVFBLGtCQUFBLEdBQW9CLFNBQUMsR0FBRDtXQUFTLElBQUMsQ0FBQSxTQUFTLENBQUMsS0FBTSxDQUFBLEdBQUE7RUFBMUI7OztBQUVwQjs7Ozs7O3dCQUtBLE1BQUEsR0FBUSxTQUFBO0FBQ0osUUFBQTtJQUFBLElBQUcsQ0FBSSxJQUFDLENBQUEsZUFBUjtNQUNJLElBQUMsQ0FBQSxlQUFELEdBQW1CO0FBRW5CLFdBQVMsOEZBQVQ7UUFDSSxJQUFHLENBQUksSUFBQyxDQUFBLFNBQVUsQ0FBQSxDQUFBLENBQUUsQ0FBQyxNQUFyQjtVQUNJLElBQUMsQ0FBQSxlQUFELEdBQW1CO0FBQ25CLGdCQUZKOztBQURKO01BS0EsSUFBRyxJQUFDLENBQUEsZUFBSjtRQUNJLElBQUMsQ0FBQSxNQUFNLENBQUMsSUFBUixDQUFhLFFBQWIsRUFBdUIsSUFBdkIsRUFESjtPQVJKOztBQVdBLFdBQU87RUFaSDs7Ozs7O0FBY1osTUFBTSxDQUFDLFdBQVAsR0FBcUI7O0FBQ3JCLEVBQUUsQ0FBQyxXQUFILEdBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4jXG4jICAgU2NyaXB0OiBEYXRhTWFuYWdlclxuI1xuIyAgICQkQ09QWVJJR0hUJCRcbiNcbiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuY2xhc3MgRGF0YU1hbmFnZXJcbiAgICAjIyMqXG4gICAgKiBNYW5hZ2VzIHRoZSBnYW1lJ3MgZGF0YSBsaWtlIGxvYWRpbmcgZG9jdW1lbnRzLiBEb2N1bWVudHMgYXJlIHN0b3JlZFxuICAgICogaW4gdGhlIGRhdGEgZm9sZGVyIG9mIHRoZSBnYW1lIGluIEpTT04gZm9ybWF0LiBUaGUgVUlEIGlzIHVzZWQgYXMgdGhlIGZpbGUtbmFtZS5cbiAgICAqIEEgZG9jdW1lbnQgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOjxicj5cbiAgICAqIDxicj5cbiAgICAqIFVJRCAtIFVuaXF1ZSBJZGVudGlmaWVyPGJyPlxuICAgICogSXRlbXMgLT4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIHRoZSBpdGVtcy9maWVsZHMgb2YgdGhlIGRvY3VtZW50Ljxicj5cbiAgICAqIEl0ZW1zLlR5cGUgLT4gVGhlIHR5cGUgb2YgdGhlIGRvY3VtZW50PGJyPlxuICAgICogSXRlbXMuTmFtZSAtPiBUaGUgbmFtZSBvZiB0aGUgZG9jdW1lbnQ8YnI+XG4gICAgKiA8YnI+XG4gICAgKiBAbW9kdWxlIGdzXG4gICAgKiBAY2xhc3MgRGF0YU1hbmFnZXJcbiAgICAqIEBtZW1iZXJvZiBnc1xuICAgICogQGNvbnN0cnVjdG9yXG4gICAgIyMjXG4gICAgY29uc3RydWN0b3I6IC0+XG4gICAgICAgICMjIypcbiAgICAgICAgKiBTdG9yZXMgYWxsIGRvY3VtZW50cyBieSBVSUQuXG4gICAgICAgICogQHByb3BlcnR5IGRvY3VtZW50c0J5VWlkXG4gICAgICAgICogQHR5cGUgZ3MuRG9jdW1lbnRbXVxuICAgICAgICAjIyMgXG4gICAgICAgIEBkb2N1bWVudHNCeVVpZCA9IHt9XG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogU3RvcmVzIGFsbCBkb2N1bWVudHMuXG4gICAgICAgICogQHByb3BlcnR5IGRvY3VtZW50c1xuICAgICAgICAqIEB0eXBlIGdzLkRvY3VtZW50W11cbiAgICAgICAgIyMjXG4gICAgICAgIEBkb2N1bWVudHMgPSBbXVxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEluZGljaWF0ZXMgaWYgYWxsIHJlcXVlc3RlZCBkb2N1bWVudHMgYXJlIGxvYWRlZC5cbiAgICAgICAgKiBAcHJvcGVydHkgZG9jdW1lbnRzTG9hZGVkXG4gICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICAjIyNcbiAgICAgICAgQGRvY3VtZW50c0xvYWRlZCA9IHRydWVcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBAcHJvcGVydHkgZXZlbnRzXG4gICAgICAgICogQHR5cGUgZ3MuRXZlbnRFbWl0dGVyXG4gICAgICAgICMjI1xuICAgICAgICBAZXZlbnRzID0gbmV3IGdzLkV2ZW50RW1pdHRlcigpXG4gICAgICAgIFxuXG4gICAgIyMjKlxuICAgICogVW5sb2FkcyBhbGwgZG9jdW1lbnRzIHdpdGggYSBzcGVjaWZpZWQgdHlwZS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIGRpc3Bvc2VEb2N1bWVudHNCeVR5cGVcbiAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlIC0gVGhlIGRvY3VtZW50IHR5cGUuXG4gICAgIyMjICBcbiAgICBkaXNwb3NlRG9jdW1lbnRzQnlUeXBlOiAodHlwZSkgLT5cbiAgICAgICAgaSA9IDBcbiAgICAgICAgXG4gICAgICAgIHdoaWxlIGkgPCBAZG9jdW1lbnRzLmxlbmd0aFxuICAgICAgICAgICAgZCA9IEBkb2N1bWVudHNbaV1cbiAgICAgICAgICAgIGlmIGQgJiYgZC5pdGVtcyAmJiBkLml0ZW1zLnR5cGUgPT0gdHlwZVxuICAgICAgICAgICAgXHRAZG9jdW1lbnRzLnJlbW92ZShkKVxuICAgICAgICAgICAgXHRAZG9jdW1lbnRzQnlVaWRbZC51aWRdID0gbnVsbFxuICAgICAgICAgICAgXHRHUy5kYXRhQ2FjaGVbZC51aWRdID0gbnVsbFxuICAgICAgICAgICAgXHRkZWxldGUgQGRvY3VtZW50c0J5VWlkW2QudWlkXVxuICAgICAgICAgICAgXHRkZWxldGUgR1MuZGF0YUNhY2hlW2QudWlkXVxuICAgICAgICAgICAgXHRpLS07XG4gICAgICAgICAgICBpKytcbiAgICAgICAgICAgIFxuICAgICAgICByZXR1cm4gbnVsbFxuICAgIFx0XHRcblx0XG4gICAgIyMjKlxuICAgICogR2V0cyBhbGwgZG9jdW1lbnRzIHdpdGggYSBzcGVjaWZpZWQgdHlwZS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIGdldERvY3VtZW50c0J5VHlwZVxuICAgICogQHBhcmFtIHtTdHJpbmd9IHR5cGUgLSBUaGUgZG9jdW1lbnQgdHlwZS5cbiAgICAqIEByZXR1cm4ge2dzLkRvY3VtZW50W119IFRoZSBkb2N1bWVudHMuXG4gICAgIyMjICBcbiAgICBnZXREb2N1bWVudHNCeVR5cGU6ICh0eXBlKSAtPlxuICAgICAgICByZXN1bHQgPSBbXVxuICAgICAgICBcbiAgICAgICAgZm9yIHVpZCBvZiBAc3VtbWFyaWVzLml0ZW1zXG4gICAgICAgICAgICBzdW1tYXJ5ID0gQHN1bW1hcmllcy5pdGVtc1t1aWRdXG4gICAgICAgICAgICBpZiBzdW1tYXJ5Lml0ZW1zPyBhbmQgc3VtbWFyeS5pdGVtcy50eXBlID09IHR5cGVcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChAZ2V0RG9jdW1lbnQodWlkKSlcblxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIFxuICAgICMjIypcbiAgICAqIEdldHMgdGhlIGZpcnN0IGRvY3VtZW50IHdpdGggdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgICpcbiAgICAqIEBtZXRob2QgZ2V0RG9jdW1lbnRCeVR5cGVcbiAgICAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlIC0gVGhlIGRvY3VtZW50IHR5cGUuXG4gICAgKiBAcmV0dXJuIHtncy5Eb2N1bWVudH0gVGhlIGRvY3VtZW50IG9yIDxiPm51bGw8L2I+IGlmIGEgZG9jdW1lbnQgd2l0aCB0aGUgc3BlY2lmaWVkIHR5cGUgZG9lc24ndCBleGlzdC5cbiAgICAjIyMgIFxuICAgIGdldERvY3VtZW50QnlUeXBlOiAodHlwZSkgLT5cbiAgICAgICAgcmVzdWx0ID0gbnVsbFxuICAgICAgICBcbiAgICAgICAgZm9yIHVpZCBvZiBAc3VtbWFyaWVzLml0ZW1zXG4gICAgICAgICAgICBzdW1tYXJ5ID0gQHN1bW1hcmllcy5pdGVtc1t1aWRdXG4gICAgICAgICAgICBpZiBzdW1tYXJ5Lml0ZW1zPyBhbmQgc3VtbWFyeS5pdGVtcy50eXBlID09IHR5cGVcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBAZ2V0RG9jdW1lbnQodWlkKVxuICAgICAgICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBHZXRzIGEgZG9jdW1lbnQgYnkgaXRzIFVJRC5cbiAgICAqXG4gICAgKiBAbWV0aG9kIGdldERvY3VtZW50XG4gICAgKiBAcGFyYW0ge1N0cmluZ30gdWlkIC0gVGhlIFVJRCBvZiB0aGUgZG9jdW1lbnQgdG8gZ2V0LlxuICAgICogQHJldHVybiB7Z3MuRG9jdW1lbnR9IFRoZSBkb2N1bWVudCBvciA8Yj5udWxsPC9iPiBpZiBhIGRvY3VtZW50IHdpdGggdGhlIHNwZWNpZmllZCBVSUQgZG9lc24ndCBleGlzdC5cbiAgICAjIyMgIFxuICAgIGdldERvY3VtZW50OiAodWlkKSAtPlxuICAgICAgICByZXN1bHQgPSBAZG9jdW1lbnRzQnlVaWRbdWlkXVxuICAgIFxuICAgICAgICBpZiBub3QgcmVzdWx0P1xuICAgICAgICAgICAgZ3MuRGF0YS5sb2FkKHVpZCwgKGRhdGFPYmplY3QsIGVycm9yKSA9PlxuICAgICAgICAgICAgICAgIGlmICFlcnJvclxuICAgICAgICAgICAgICAgICAgICByID0gQGRvY3VtZW50c0J5VWlkW2RhdGFPYmplY3QudWlkXVxuICAgICAgICAgICAgICAgICAgICByLml0ZW1zID0gZGF0YU9iamVjdC5pdGVtcztcbiAgICAgICAgICAgICAgICAgICAgci5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiBAc3VtbWFyaWVzIGFuZCBAc3VtbWFyaWVzLml0ZW1zXG4gICAgICAgICAgICAgICAgc3VtbWFyeSA9IEBzdW1tYXJpZXMuaXRlbXNbdWlkXVxuICAgICAgICAgICAgICAgIGlmIHN1bW1hcnlcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0geyB1aWQ6IHVpZCwgaXRlbXM6IHN1bW1hcnkuaXRlbXMsIGxvYWRlZDogZmFsc2UgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHsgdWlkOiB1aWQsIGxvYWRlZDogZmFsc2UgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiByZXN1bHRcbiAgICAgICAgICAgICAgICBAZG9jdW1lbnRzQnlVaWRbdWlkXSA9IHJlc3VsdFxuICAgICAgICAgICAgICAgIEBkb2N1bWVudHMucHVzaChyZXN1bHQpXG4gICAgICAgICAgICAgICAgQGRvY3VtZW50c0xvYWRlZCA9IGZhbHNlXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIHVpZCA9PSBcIlNVTU1BUklFU1wiIHRoZW4gQHN1bW1hcmllcyA9IHJlc3VsdFxuICAgIFxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIFxuICAgIFxuICAgICMjIypcbiAgICAqIEdldHMgYSBkb2N1bWVudCBieSBpdHMgVUlELiBJZiB0aGUgZG9jdW1lbnQgaXNuJ3QgYWxyZWFkeSBsb2FkZWQgdGhpcyBtZXRob2RcbiAgICAqIG9ubHkgcmV0dXJuZWQgZG9jdW1lbnQgb25seSBjb250YWlucyBzdW1tYXJ5IGRhdGEuXG4gICAgKlxuICAgICogQG1ldGhvZCBnZXREb2N1bWVudFN1bW1hcnlcbiAgICAqIEBwYXJhbSB7U3RyaW5nfSB1aWQgLSBUaGUgVUlEIG9mIHRoZSBkb2N1bWVudCB0byBnZXQuXG4gICAgKiBAcmV0dXJuIHtncy5Eb2N1bWVudH0gVGhlIGRvY3VtZW50IG9yIDxiPm51bGw8L2I+IGlmIGEgZG9jdW1lbnQgd2l0aCB0aGUgc3BlY2lmaWVkIFVJRCBkb2Vzbid0IGV4aXN0LlxuICAgICMjIyBcbiAgICBnZXREb2N1bWVudFN1bW1hcnk6ICh1aWQpIC0+IEBzdW1tYXJpZXMuaXRlbXNbdWlkXVxuICAgIFxuICAgICMjIypcbiAgICAqIFVwZGF0ZXMgdGhlIGxvYWRpbmcgcHJvY2VzcyBvZiBkb2N1bWVudHMuXG4gICAgKlxuICAgICogQG1ldGhvZCB1cGRhdGVcbiAgICAjIyMgXG4gICAgdXBkYXRlOiAtPlxuICAgICAgICBpZiBub3QgQGRvY3VtZW50c0xvYWRlZFxuICAgICAgICAgICAgQGRvY3VtZW50c0xvYWRlZCA9IHRydWVcbiAgICBcbiAgICAgICAgICAgIGZvciBpIGluIFswLi4uQGRvY3VtZW50cy5sZW5ndGhdXG4gICAgICAgICAgICAgICAgaWYgbm90IEBkb2N1bWVudHNbaV0ubG9hZGVkXG4gICAgICAgICAgICAgICAgICAgIEBkb2N1bWVudHNMb2FkZWQgPSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIEBkb2N1bWVudHNMb2FkZWRcbiAgICAgICAgICAgICAgICBAZXZlbnRzLmVtaXQoXCJsb2FkZWRcIiwgdGhpcylcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBudWxsXG5cbndpbmRvdy5EYXRhTWFuYWdlciA9IERhdGFNYW5hZ2VyXG5ncy5EYXRhTWFuYWdlciA9IERhdGFNYW5hZ2VyIl19\n//# sourceURL=DataManager_77.js",
        "parentId": "C0268943K60B3A42B7SA6F1EDDCF2F642FD7"
    },
    "summary": [
        "name",
        "type",
        "order"
    ]
}

Commits for Nextrek/s2s/data/7F1D60F1K265BA40B5SA78EEAB249F02B709.json

Diff revisions: vs.
Revision Author Commited Message
1084 MOliva picture MOliva Fri 11 May, 2018 12:41:55 +0000