/** * swagger-ui - Swagger UI is a dependency-free collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API * @version v2.1.1-M1 * @link http://swagger.io * @license Apache 2.0 */ $(function() { // Helper function for vertically aligning DOM elements // http://www.seodenver.com/simple-vertical-align-plugin-for-jquery/ $.fn.vAlign = function() { return this.each(function(i){ var ah = $(this).height(); var ph = $(this).parent().height(); var mh = (ph - ah) / 2; $(this).css('margin-top', mh); }); }; $.fn.stretchFormtasticInputWidthToParent = function() { return this.each(function(i){ var p_width = $(this).closest("form").innerWidth(); var p_padding = parseInt($(this).closest("form").css('padding-left') ,10) + parseInt($(this).closest("form").css('padding-right'), 10); var this_padding = parseInt($(this).css('padding-left'), 10) + parseInt($(this).css('padding-right'), 10); $(this).css('width', p_width - p_padding - this_padding); }); }; $('form.formtastic li.string input, form.formtastic textarea').stretchFormtasticInputWidthToParent(); // Vertically center these paragraphs // Parent may need a min-height for this to work.. $('ul.downplayed li div.content p').vAlign(); // When a sandbox form is submitted.. $("form.sandbox").submit(function(){ var error_free = true; // Cycle through the forms required inputs $(this).find("input.required").each(function() { // Remove any existing error styles from the input $(this).removeClass('error'); // Tack the error style on if the input is empty.. if ($(this).val() == '') { $(this).addClass('error'); $(this).wiggle(); error_free = false; } }); return error_free; }); }); function clippyCopiedCallback(a) { $('#api_key_copied').fadeIn().delay(1000).fadeOut(); // var b = $("#clippy_tooltip_" + a); // b.length != 0 && (b.attr("title", "copied!").trigger("tipsy.reload"), setTimeout(function() { // b.attr("title", "copy to clipboard") // }, // 500)) } // Logging function that accounts for browsers that don't have window.console log = function(){ log.history = log.history || []; log.history.push(arguments); if(this.console){ console.log( Array.prototype.slice.call(arguments)[0] ); } }; // Handle browsers that do console incorrectly (IE9 and below, see http://stackoverflow.com/a/5539378/7913) if (Function.prototype.bind && console && typeof console.log == "object") { [ "log","info","warn","error","assert","dir","clear","profile","profileEnd" ].forEach(function (method) { console[method] = this.bind(console[method], console); }, Function.prototype.call); } var Docs = { shebang: function() { // If shebang has an operation nickname in it.. // e.g. /docs/#!/words/get_search var fragments = $.param.fragment().split('/'); fragments.shift(); // get rid of the bang switch (fragments.length) { case 1: // Expand all operations for the resource and scroll to it var dom_id = 'resource_' + fragments[0]; Docs.expandEndpointListForResource(fragments[0]); $("#"+dom_id).slideto({highlight: false}); break; case 2: // Refer to the endpoint DOM element, e.g. #words_get_search // Expand Resource Docs.expandEndpointListForResource(fragments[0]); $("#"+dom_id).slideto({highlight: false}); // Expand operation var li_dom_id = fragments.join('_'); var li_content_dom_id = li_dom_id + "_content"; Docs.expandOperation($('#'+li_content_dom_id)); $('#'+li_dom_id).slideto({highlight: false}); break; } }, toggleEndpointListForResource: function(resource) { var elem = $('li#resource_' + Docs.escapeResourceName(resource) + ' ul.endpoints'); if (elem.is(':visible')) { Docs.collapseEndpointListForResource(resource); } else { Docs.expandEndpointListForResource(resource); } }, // Expand resource expandEndpointListForResource: function(resource) { var resource = Docs.escapeResourceName(resource); if (resource == '') { $('.resource ul.endpoints').slideDown(); return; } $('li#resource_' + resource).addClass('active'); var elem = $('li#resource_' + resource + ' ul.endpoints'); elem.slideDown(); }, // Collapse resource and mark as explicitly closed collapseEndpointListForResource: function(resource) { var resource = Docs.escapeResourceName(resource); if (resource == '') { $('.resource ul.endpoints').slideUp(); return; } $('li#resource_' + resource).removeClass('active'); var elem = $('li#resource_' + resource + ' ul.endpoints'); elem.slideUp(); }, expandOperationsForResource: function(resource) { // Make sure the resource container is open.. Docs.expandEndpointListForResource(resource); if (resource == '') { $('.resource ul.endpoints li.operation div.content').slideDown(); return; } $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() { Docs.expandOperation($(this)); }); }, collapseOperationsForResource: function(resource) { // Make sure the resource container is open.. Docs.expandEndpointListForResource(resource); if (resource == '') { $('.resource ul.endpoints li.operation div.content').slideUp(); return; } $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() { Docs.collapseOperation($(this)); }); }, escapeResourceName: function(resource) { return resource.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g, "\\$&"); }, expandOperation: function(elem) { elem.slideDown(); }, collapseOperation: function(elem) { elem.slideUp(); } }; var SwaggerUi, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, __hasProp = {}.hasOwnProperty; SwaggerUi = (function(_super) { __extends(SwaggerUi, _super); function SwaggerUi() { return SwaggerUi.__super__.constructor.apply(this, arguments); } SwaggerUi.prototype.dom_id = "swagger_ui"; SwaggerUi.prototype.options = null; SwaggerUi.prototype.api = null; SwaggerUi.prototype.headerView = null; SwaggerUi.prototype.mainView = null; SwaggerUi.prototype.initialize = function(options) { if (options == null) { options = {}; } if (options.dom_id != null) { this.dom_id = options.dom_id; delete options.dom_id; } if (options.supportedSubmitMethods == null) { options.supportedSubmitMethods = ['get', 'put', 'post', 'delete', 'head', 'options', 'patch']; } if ($('#' + this.dom_id) == null) { $('body').append('
'); } this.options = options; this.options.success = (function(_this) { return function() { return _this.render(); }; })(this); this.options.progress = (function(_this) { return function(d) { return _this.showMessage(d); }; })(this); this.options.failure = (function(_this) { return function(d) { return _this.onLoadFailure(d); }; })(this); this.headerView = new HeaderView({ el: $('#header') }); return this.headerView.on('update-swagger-ui', (function(_this) { return function(data) { return _this.updateSwaggerUi(data); }; })(this)); }; SwaggerUi.prototype.setOption = function(option, value) { return this.options[option] = value; }; SwaggerUi.prototype.getOption = function(option) { return this.options[option]; }; SwaggerUi.prototype.updateSwaggerUi = function(data) { this.options.url = data.url; return this.load(); }; SwaggerUi.prototype.load = function() { var url, _ref; if ((_ref = this.mainView) != null) { _ref.clear(); } url = this.options.url; if (url && url.indexOf("http") !== 0) { url = this.buildUrl(window.location.href.toString(), url); } this.options.url = url; this.headerView.update(url); this.api = new SwaggerClient(this.options); return this.api.build(); }; SwaggerUi.prototype.collapseAll = function() { return Docs.collapseEndpointListForResource(''); }; SwaggerUi.prototype.listAll = function() { return Docs.collapseOperationsForResource(''); }; SwaggerUi.prototype.expandAll = function() { return Docs.expandOperationsForResource(''); }; SwaggerUi.prototype.render = function() { this.showMessage('Finished Loading Resource Information. Rendering Swagger UI...'); this.mainView = new MainView({ model: this.api, el: $('#' + this.dom_id), swaggerOptions: this.options }).render(); this.showMessage(); switch (this.options.docExpansion) { case "full": this.expandAll(); break; case "list": this.listAll(); } this.renderGFM(); if (this.options.onComplete) { this.options.onComplete(this.api, this); } return setTimeout((function(_this) { return function() { return Docs.shebang(); }; })(this), 400); }; SwaggerUi.prototype.buildUrl = function(base, url) { var endOfPath, parts; if (url.indexOf("/") === 0) { parts = base.split("/"); base = parts[0] + "//" + parts[2]; return base + url; } else { endOfPath = base.length; if (base.indexOf("?") > -1) { endOfPath = Math.min(endOfPath, base.indexOf("?")); } if (base.indexOf("#") > -1) { endOfPath = Math.min(endOfPath, base.indexOf("#")); } base = base.substring(0, endOfPath); if (base.indexOf("/", base.length - 1) !== -1) { return base + url; } return base + "/" + url; } }; SwaggerUi.prototype.showMessage = function(data) { if (data == null) { data = ''; } $('#message-bar').removeClass('message-fail'); $('#message-bar').addClass('message-success'); return $('#message-bar').html(data); }; SwaggerUi.prototype.onLoadFailure = function(data) { var val; if (data == null) { data = ''; } $('#message-bar').removeClass('message-success'); $('#message-bar').addClass('message-fail'); val = $('#message-bar').html(data); if (this.options.onFailure != null) { this.options.onFailure(data); } return val; }; SwaggerUi.prototype.renderGFM = function(data) { if (data == null) { data = ''; } return $('.markdown').each(function(index) { return $(this).html(marked($(this).html())); }); }; return SwaggerUi; })(Backbone.Router); window.SwaggerUi = SwaggerUi; this["Handlebars"] = this["Handlebars"] || {}; this["Handlebars"]["templates"] = this["Handlebars"]["templates"] || {}; this["Handlebars"]["templates"]["apikey_button_view"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; return "\n