From 32fd6a3cd458e42f8df1e6b8072dac09c6111130 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Wed, 10 Jun 2015 21:06:50 -0400 Subject: [PATCH 01/51] Remove moot `version` property from bower.json dev branch Per bower/bower.json-spec@a325da3 --- bower.json | 1 - 1 file changed, 1 deletion(-) diff --git a/bower.json b/bower.json index da275f56..a8c047b8 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,6 @@ { "name": "swagger-ui", "main": "dist/index.html", - "version": "2.1.0", "authors": [ "Mohsen Azimi " ], From 695dcc16b1b1245ac12d14b36c4e0b3ead170161 Mon Sep 17 00:00:00 2001 From: Vladimir L Date: Thu, 11 Jun 2015 21:14:15 +0200 Subject: [PATCH 02/51] fixed issue with OAuth hint --- lib/swagger-oauth.js | 6 +-- src/main/html/css/screen.css | 30 +++++++----- src/main/javascript/view/OperationView.js | 6 +-- src/main/less/screen.less | 58 +++++++++++++---------- src/main/template/operation.handlebars | 6 +-- 5 files changed, 60 insertions(+), 46 deletions(-) diff --git a/lib/swagger-oauth.js b/lib/swagger-oauth.js index fed588c6..1d4e4899 100644 --- a/lib/swagger-oauth.js +++ b/lib/swagger-oauth.js @@ -240,7 +240,7 @@ window.onOAuthComplete = function onOAuthComplete(token) { if(b){ // if all roles are satisfied var o = null; - $.each($('.auth #api_information_panel'), function(k, v) { + $.each($('.auth .api-ic .api_information_panel'), function(k, v) { var children = v; if(children && children.childNodes) { var requiredScopes = []; @@ -257,7 +257,7 @@ window.onOAuthComplete = function onOAuthComplete(token) { } } if(diff.length > 0){ - o = v.parentNode; + o = v.parentNode.parentNode; $(o.parentNode).find('.api-ic.ic-on').addClass('ic-off'); $(o.parentNode).find('.api-ic.ic-on').removeClass('ic-on'); @@ -266,7 +266,7 @@ window.onOAuthComplete = function onOAuthComplete(token) { $(o).find('.api-ic').removeClass('ic-error'); } else { - o = v.parentNode; + o = v.parentNode.parentNode; $(o.parentNode).find('.api-ic.ic-off').addClass('ic-on'); $(o.parentNode).find('.api-ic.ic-off').removeClass('ic-off'); diff --git a/src/main/html/css/screen.css b/src/main/html/css/screen.css index d6ed90bb..436cc28e 100644 --- a/src/main/html/css/screen.css +++ b/src/main/html/css/screen.css @@ -1155,8 +1155,16 @@ .swagger-section .auth { float: right; } -.swagger-section #api_information_panel { - position: absolute; +.swagger-section .api-ic { + height: 18px; + vertical-align: middle; + display: inline-block; + background: url(../images/explorer_icons.png) no-repeat; +} +.swagger-section .api-ic .api_information_panel { + position: relative; + margin-top: 20px; + margin-left: -5px; background: #FFF; border: 1px solid #ccc; border-radius: 5px; @@ -1167,34 +1175,32 @@ color: black; padding: 5px; } -.swagger-section #api_information_panel p .api-msg-enabled { +.swagger-section .api-ic .api_information_panel p .api-msg-enabled { color: green; } -.swagger-section #api_information_panel p .api-msg-disabled { +.swagger-section .api-ic .api_information_panel p .api-msg-disabled { color: red; } -.swagger-section .api-ic { - height: 18px; - vertical-align: middle; - display: inline-block; - background: url(../images/explorer_icons.png) no-repeat; +.swagger-section .api-ic:hover .api_information_panel { + position: absolute; + display: block; } .swagger-section .ic-info { background-position: 0 0; width: 18px; - margin-top: -7px; + margin-top: -6px; margin-left: 4px; } .swagger-section .ic-warning { background-position: -60px 0; width: 18px; - margin-top: -7px; + margin-top: -6px; margin-left: 4px; } .swagger-section .ic-error { background-position: -30px 0; width: 18px; - margin-top: -7px; + margin-top: -6px; margin-left: 4px; } .swagger-section .ic-off { diff --git a/src/main/javascript/view/OperationView.js b/src/main/javascript/view/OperationView.js index d58e87e8..196228ab 100644 --- a/src/main/javascript/view/OperationView.js +++ b/src/main/javascript/view/OperationView.js @@ -33,7 +33,7 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({ range.moveToElementText(text); range.select(); } else if (window.getSelection) { - selection = window.getSelection(); + selection = window.getSelection(); range = document.createRange(); range.selectNodeContents(text); selection.removeAllRanges(); @@ -72,11 +72,11 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({ pos.top = y; pos.left = x; elem.css(pos); - $(e.currentTarget.parentNode).find('#api_information_panel').show(); + // $(e.currentTarget.parentNode).find('#api_information_panel').show(); }, mouseExit: function(e) { - $(e.currentTarget.parentNode).find('#api_information_panel').hide(); + // $(e.currentTarget.parentNode).find('#api_information_panel').hide(); }, // Note: copied from CoffeeScript compiled file diff --git a/src/main/less/screen.less b/src/main/less/screen.less index 4867dcc7..356fbb9a 100644 --- a/src/main/less/screen.less +++ b/src/main/less/screen.less @@ -12,50 +12,58 @@ float: right; } -#api_information_panel { - position: absolute; - background: #FFF; - border: 1px solid #ccc; - border-radius: 5px; - display: none; - font-size: 13px; - max-width: 300px; - line-height: 30px; - color: black; - padding: 5px; - p { - .api-msg-enabled { - color: green; - } - .api-msg-disabled { - color: red; - } - } -} - .api-ic { height: 18px; vertical-align: middle; display: inline-block; background: url(../images/explorer_icons.png) no-repeat; + .api_information_panel { + position: relative; + margin-top: 20px; + margin-left: -5px; + background: #FFF; + border: 1px solid #ccc; + border-radius: 5px; + display: none; + font-size: 13px; + max-width: 300px; + line-height: 30px; + color: black; + padding: 5px; + p { + .api-msg-enabled { + color: green; + } + .api-msg-disabled { + color: red; + } + } + } +} + +.api-ic:hover { + .api_information_panel { + position: absolute; + display: block; + } } .ic-info { background-position: 0 0; width: 18px; - margin-top: -7px; + margin-top: -6px; margin-left: 4px; } .ic-warning { background-position: -60px 0; width: 18px; - margin-top: -7px; + margin-top: -6px; margin-left: 4px; } .ic-error { background-position: -30px 0; width: 18px; - margin-top: -7px; + margin-top: -6px; margin-left: 4px; } .ic-off { @@ -136,4 +144,4 @@ padding-top: 10px; } -} \ No newline at end of file +} diff --git a/src/main/template/operation.handlebars b/src/main/template/operation.handlebars index 832e1359..4d50312b 100644 --- a/src/main/template/operation.handlebars +++ b/src/main/template/operation.handlebars @@ -26,15 +26,15 @@ {{/if}} {{#oauth}}
- {{/oauth}} + {{/oauth}} {{#each oauth}} - {{/oauth}} + {{#oauth}}
{{/oauth}} {{#oauth}}
From eaaf62a01ea37781d96d53ebe93e2a3abab8b864 Mon Sep 17 00:00:00 2001 From: Vladimir L Date: Thu, 11 Jun 2015 21:26:30 +0200 Subject: [PATCH 03/51] removed unnesessary logic, replaced by CSS style --- src/main/javascript/view/OperationView.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/main/javascript/view/OperationView.js b/src/main/javascript/view/OperationView.js index 196228ab..befbb260 100644 --- a/src/main/javascript/view/OperationView.js +++ b/src/main/javascript/view/OperationView.js @@ -9,7 +9,6 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({ 'click .response_hider' : 'hideResponse', 'click .toggleOperation' : 'toggleOperationContent', 'mouseenter .api-ic' : 'mouseEnter', - 'mouseout .api-ic' : 'mouseExit', 'dblclick .curl' : 'selectText', }, @@ -72,11 +71,6 @@ SwaggerUi.Views.OperationView = Backbone.View.extend({ pos.top = y; pos.left = x; elem.css(pos); - // $(e.currentTarget.parentNode).find('#api_information_panel').show(); - }, - - mouseExit: function(e) { - // $(e.currentTarget.parentNode).find('#api_information_panel').hide(); }, // Note: copied from CoffeeScript compiled file From 9702e3c2801c0622ef8b1ed82dec684203dff8ce Mon Sep 17 00:00:00 2001 From: ipeluffo Date: Sat, 13 Jun 2015 15:19:11 -0300 Subject: [PATCH 04/51] Spanish translation added --- lang/es.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lang/es.js diff --git a/lang/es.js b/lang/es.js new file mode 100644 index 00000000..e69de29b From f0f71dc3431735ef92fa7b592bebaea2e4545fe9 Mon Sep 17 00:00:00 2001 From: ipeluffo Date: Sat, 13 Jun 2015 15:22:29 -0300 Subject: [PATCH 05/51] Some words translation added --- lang/es.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/lang/es.js b/lang/es.js index e69de29b..4a2f8d05 100644 --- a/lang/es.js +++ b/lang/es.js @@ -0,0 +1,52 @@ +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Advertencia: Obsoleto", + "Implementation Notes":"Notas de implementación", + "Response Class":"Clase de la Respuesta", + "Status":"Status", + "Parameters":"Parámetros", + "Parameter":"Parámetro", + "Value":"Valor", + "Description":"Descripción", + "Parameter Type":"Tipo del Parámetro", + "Data Type":"Tipo del Dato", + "Response Messages":"Mensajes de la Respuesta", + "HTTP Status Code":"Código de Status HTTP", + "Reason":"Razón", + "Response Model":"Modelo de la Respuesta", + "Request URL":"URL de la Solicitud", + "Response Body":"Cuerpo de la Respuesta", + "Response Code":"Código de la Respuesta", + "Response Headers":"Encabezados de la Respuesta", + "Hide Response":"Hide Response", + "Try it out!":"Try it out!", + "Show/Hide":"Show/Hide", + "List Operations":"List Operations", + "Expand Operations":"Expand Operations", + "Raw":"Raw", + "can't parse JSON. Raw result":"can't parse JSON. Raw result", + "Model Schema":"Model Schema", + "Model":"Model", + "apply":"apply", + "Username":"Username", + "Password":"Password", + "Terms of service":"Terms of service", + "Created by":"Created by", + "See more at":"See more at", + "Contact the developer":"Contact the developer", + "api version":"api version", + "Response Content Type":"Response Content Type", + "fetching resource":"fetching resource", + "fetching resource list":"fetching resource list", + "Explore":"Explore", + "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"Can't read from server. It may not have the appropriate access-control-origin settings.", + "Please specify the protocol for":"Please specify the protocol for", + "Can't read swagger JSON from":"Can't read swagger JSON from", + "Finished Loading Resource Information. Rendering Swagger UI":"Finished Loading Resource Information. Rendering Swagger UI", + "Unable to read api":"Unable to read api", + "from path":"from path", + "server returned":"server returned" +}); From e7d179432fc0da8f62aa63ada511578e1742f88c Mon Sep 17 00:00:00 2001 From: Ignacio Peluffo Date: Sat, 13 Jun 2015 15:33:01 -0300 Subject: [PATCH 06/51] Translation to Spanish finished --- lang/es.js | 58 +++++++++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/lang/es.js b/lang/es.js index 4a2f8d05..a8dff60b 100644 --- a/lang/es.js +++ b/lang/es.js @@ -20,33 +20,33 @@ window.SwaggerTranslator.learn({ "Response Body":"Cuerpo de la Respuesta", "Response Code":"Código de la Respuesta", "Response Headers":"Encabezados de la Respuesta", - "Hide Response":"Hide Response", - "Try it out!":"Try it out!", - "Show/Hide":"Show/Hide", - "List Operations":"List Operations", - "Expand Operations":"Expand Operations", - "Raw":"Raw", - "can't parse JSON. Raw result":"can't parse JSON. Raw result", - "Model Schema":"Model Schema", - "Model":"Model", - "apply":"apply", - "Username":"Username", - "Password":"Password", - "Terms of service":"Terms of service", - "Created by":"Created by", - "See more at":"See more at", - "Contact the developer":"Contact the developer", - "api version":"api version", - "Response Content Type":"Response Content Type", - "fetching resource":"fetching resource", - "fetching resource list":"fetching resource list", - "Explore":"Explore", - "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Can't read from server. It may not have the appropriate access-control-origin settings.", - "Please specify the protocol for":"Please specify the protocol for", - "Can't read swagger JSON from":"Can't read swagger JSON from", - "Finished Loading Resource Information. Rendering Swagger UI":"Finished Loading Resource Information. Rendering Swagger UI", - "Unable to read api":"Unable to read api", - "from path":"from path", - "server returned":"server returned" + "Hide Response":"Ocultar Respuesta", + "Try it out!":"Pruébalo!", + "Show/Hide":"Mostrar/Ocultar", + "List Operations":"Listar Operaciones", + "Expand Operations":"Expandir Operaciones", + "Raw":"Crudo", + "can't parse JSON. Raw result":"no puede parsear el JSON. Resultado crudo", + "Model Schema":"Esquema del Modelo", + "Model":"Modelo", + "apply":"aplicar", + "Username":"Nombre de usuario", + "Password":"Contraseña", + "Terms of service":"Términos de Servicio", + "Created by":"Creado por", + "See more at":"Ver más en", + "Contact the developer":"Contactar al desarrollador", + "api version":"versión de la api", + "Response Content Type":"Tipo de Contenido (Content Type) de la Respuesta", + "fetching resource":"buscando recurso", + "fetching resource list":"buscando lista del recurso", + "Explore":"Explorar", + "Show Swagger Petstore Example Apis":"Mostrar Api Ejemplo de Swagger Petstore", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"No se puede leer del servidor. Tal vez no tiene la configuración de control de acceso de origen (access-control-origin) apropiado.", + "Please specify the protocol for":"Por favor, especificar el protocola para", + "Can't read swagger JSON from":"No se puede leer el JSON de swagger desde", + "Finished Loading Resource Information. Rendering Swagger UI":"Finalizada la carga del recurso de Información. Mostrando Swagger UI", + "Unable to read api":"No se puede leer la api", + "from path":"desde ruta", + "server returned":"el servidor retornó" }); From 372723b82d10a43b4c4c5f01ee6c6371a9229e80 Mon Sep 17 00:00:00 2001 From: Josh Ponelat Date: Tue, 16 Jun 2015 11:31:53 +0200 Subject: [PATCH 07/51] add data-sw-translate to templates --- lang/translator.js | 5 +++-- src/main/html/index.html | 18 ++++++++++++++++-- src/main/javascript/SwaggerUi.js | 10 +++++++--- .../template/apikey_button_view.handlebars | 6 +++--- .../template/basic_auth_button_view.handlebars | 4 ++-- src/main/template/main.handlebars | 10 +++++----- src/main/template/operation.handlebars | 10 +++++----- src/main/template/resource.handlebars | 8 ++++---- src/main/template/signature.handlebars | 4 ++-- 9 files changed, 47 insertions(+), 28 deletions(-) diff --git a/lang/translator.js b/lang/translator.js index 8a38b687..190f3284 100644 --- a/lang/translator.js +++ b/lang/translator.js @@ -17,10 +17,11 @@ window.SwaggerTranslator = { _words:[], - translate: function() { + translate: function(sel) { var $this = this; + var sel = sel || '[data-sw-translate]'; - $('[data-sw-translate]').each(function() { + $(sel).each(function() { $(this).html($this._tryTranslate($(this).html())); $(this).val($this._tryTranslate($(this).val())); diff --git a/src/main/html/index.html b/src/main/html/index.html index a6904d0f..8fe50d02 100644 --- a/src/main/html/index.html +++ b/src/main/html/index.html @@ -21,6 +21,11 @@ + + + + + + + + + + . + * For example - + * + * If you wish to translate some new texsts you should do two things: + * 1. Add a new phrase pair ("New Phrase": "New Translation") into your language file (for example lang/ru.js). It will be great if you add it in other language files too. + * 2. Mark that text it templates this way New Phrase or . + * The main thing here is attribute data-sw-translate. Only inner html, title-attribute and value-attribute are going to translate. + * + */ +window.SwaggerTranslator = { + + _words:[], + + translate: function(sel) { + var $this = this; + var sel = sel || '[data-sw-translate]'; + + $(sel).each(function() { + $(this).html($this._tryTranslate($(this).html())); + + $(this).val($this._tryTranslate($(this).val())); + $(this).attr('title', $this._tryTranslate($(this).attr('title'))); + }); + }, + + _tryTranslate: function(word) { + return this._words[$.trim(word)] !== undefined ? this._words[$.trim(word)] : word; + }, + + learn: function(wordsMap) { + this._words = wordsMap; + } +}; diff --git a/dist/swagger-ui.js b/dist/swagger-ui.js index cb460bbb..7b4c86ce 100644 --- a/dist/swagger-ui.js +++ b/dist/swagger-ui.js @@ -8,12 +8,12 @@ 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
\n
\n
\n \n \n
\n
\n\n"; },"useData":true}); this["Handlebars"]["templates"]["basic_auth_button_view"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { - return "
\n
\n
\n
\n \n
\n \n \n
\n
\n\n"; + return "
\n
\n
\n
\n \n
\n \n \n
\n
\n\n"; },"useData":true}); this["Handlebars"]["templates"]["content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { var stack1, buffer = ""; @@ -319,15 +319,15 @@ this["Handlebars"]["templates"]["main"] = Handlebars.template({"1":function(dept var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; return ""; + + "\" data-sw-translate>Terms of service
"; },"6":function(depth0,helpers,partials,data) { var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; - return ""; },"12":function(depth0,helpers,partials,data) { var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; return "\n"; },"16":function(depth0,helpers,partials,data) { var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; - return "

Response Class (Status " + return "

Response Class (Status " + escapeExpression(((helper = (helper = helpers.successCode || (depth0 != null ? depth0.successCode : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"successCode","hash":{},"data":data}) : helper))) + ")

\n

\n
\n
\n"; },"18":function(depth0,helpers,partials,data) { @@ -417,7 +417,7 @@ this["Handlebars"]["templates"]["operation"] = Handlebars.template({"1":function },"24":function(depth0,helpers,partials,data) { return " \n"; },"26":function(depth0,helpers,partials,data) { - return "

Request Headers

\n
\n"; + return "

Request Headers

\n
\n"; },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { var stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, blockHelperMissing=helpers.blockHelperMissing, buffer = "\n
    \n
  • Response Body\n
    \n

    Response Code

    \n
    \n

    Response Headers

    \n
    \n
\n \n \n \n"; + return buffer + "

Response Body

\n
\n

Response Code

\n
\n

Response Headers

\n
\n \n \n \n \n"; },"useData":true}); this["Handlebars"]["templates"]["param_list"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { return " required"; @@ -787,7 +787,7 @@ this["Handlebars"]["templates"]["resource"] = Handlebars.template({"1":function( var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; return "
  • \n Raw\n
  • \n"; + + "' data-sw-translate>Raw\n \n"; },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { var stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, blockHelperMissing=helpers.blockHelperMissing, buffer = "
    \n

    \n Show/Hide\n \n
  • \n Show/Hide\n
  • \n
  • \n \n List Operations\n \n
  • \n
  • \n \n List Operations\n \n
  • \n
  • \n \n Expand Operations\n \n
  • \n"; + + "\" data-sw-translate>\n Expand Operations\n \n \n"; stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.url : depth0), {"name":"if","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data}); if (stack1 != null) { buffer += stack1; } return buffer + " \n

    \n
      = 2.0.0-beta.1"],main:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return"\n
      \n
      \n
      \n \n \n
      \n
      \n\n"},useData:!0}),this.Handlebars.templates.basic_auth_button_view=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){return'
      \n
      \n
      \n
      \n \n
      \n \n \n
      \n
      \n\n'},useData:!0}),this.Handlebars.templates.content_type=Handlebars.template({1:function(e,t,n,r){var i,a="";return i=t.each.call(e,null!=e?e.produces:e,{name:"each",hash:{},fn:this.program(2,r),inverse:this.noop,data:r}),null!=i&&(a+=i),a},2:function(e,t,n,r){var i,a=this.lambda,o=' \n"},4:function(e,t,n,r){return' \n'},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u='\n\n"},useData:!0}),$(function(){$.fn.vAlign=function(){return this.each(function(){var e=$(this).height(),t=$(this).parent().height(),n=(t-e)/2;$(this).css("margin-top",n)})},$.fn.stretchFormtasticInputWidthToParent=function(){return this.each(function(){var e=$(this).closest("form").innerWidth(),t=parseInt($(this).closest("form").css("padding-left"),10)+parseInt($(this).closest("form").css("padding-right"),10),n=parseInt($(this).css("padding-left"),10)+parseInt($(this).css("padding-right"),10);$(this).css("width",e-t-n)})},$("form.formtastic li.string input, form.formtastic textarea").stretchFormtasticInputWidthToParent(),$("ul.downplayed li div.content p").vAlign(),$("form.sandbox").submit(function(){var e=!0;return $(this).find("input.required").each(function(){$(this).removeClass("error"),""===$(this).val()&&($(this).addClass("error"),$(this).wiggle(),e=!1)}),e})}),Function.prototype.bind&&console&&"object"==typeof console.log&&["log","info","warn","error","assert","dir","clear","profile","profileEnd"].forEach(function(e){console[e]=this.bind(console[e],console)},Function.prototype.call),window.Docs={shebang:function(){var e=$.param.fragment().split("/");switch(e.shift(),e.length){case 1:if(e[0].length>0){var t="resource_"+e[0];Docs.expandEndpointListForResource(e[0]),$("#"+t).slideto({highlight:!1})}break;case 2:Docs.expandEndpointListForResource(e[0]),$("#"+t).slideto({highlight:!1});var n=e.join("_"),r=n+"_content";Docs.expandOperation($("#"+r)),$("#"+n).slideto({highlight:!1})}},toggleEndpointListForResource:function(e){var t=$("li#resource_"+Docs.escapeResourceName(e)+" ul.endpoints");t.is(":visible")?Docs.collapseEndpointListForResource(e):Docs.expandEndpointListForResource(e)},expandEndpointListForResource:function(e){var e=Docs.escapeResourceName(e);if(""==e)return void $(".resource ul.endpoints").slideDown();$("li#resource_"+e).addClass("active");var t=$("li#resource_"+e+" ul.endpoints");t.slideDown()},collapseEndpointListForResource:function(e){var e=Docs.escapeResourceName(e);if(""==e)return void $(".resource ul.endpoints").slideUp();$("li#resource_"+e).removeClass("active");var t=$("li#resource_"+e+" ul.endpoints");t.slideUp()},expandOperationsForResource:function(e){return Docs.expandEndpointListForResource(e),""==e?void $(".resource ul.endpoints li.operation div.content").slideDown():void $("li#resource_"+Docs.escapeResourceName(e)+" li.operation div.content").each(function(){Docs.expandOperation($(this))})},collapseOperationsForResource:function(e){return Docs.expandEndpointListForResource(e),""==e?void $(".resource ul.endpoints li.operation div.content").slideUp():void $("li#resource_"+Docs.escapeResourceName(e)+" li.operation div.content").each(function(){Docs.collapseOperation($(this))})},escapeResourceName:function(e){return e.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g,"\\$&")},expandOperation:function(e){e.slideDown()},collapseOperation:function(e){e.slideUp()}},Handlebars.registerHelper("sanitize",function(e){return e=e.replace(/)<[^<]*)*<\/script>/gi,""),new Handlebars.SafeString(e)}),Handlebars.registerHelper("renderTextParam",function(e){var t,n="text",r="",i="array"===e.type.toLowerCase()||e.allowMultiple,a=i&&Array.isArray(e["default"])?e["default"].join("\n"):e["default"];if("undefined"==typeof a&&(a=""),e.format&&"password"===e.format&&(n="password"),e.valueId&&(r=" id='"+e.valueId+"'"),i)t="";else{var o="parameter";e.required&&(o+=" required"),t=""}return new Handlebars.SafeString(t)}),this.Handlebars.templates.main=Handlebars.template({1:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression,s='
      '+o(a(null!=(i=null!=e?e.info:e)?i.title:i,e))+'
      \n
      ';return i=a(null!=(i=null!=e?e.info:e)?i.description:i,e),null!=i&&(s+=i),s+="
      \n",i=t["if"].call(e,null!=e?e.externalDocs:e,{name:"if",hash:{},fn:this.program(2,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+=" ",i=t["if"].call(e,null!=(i=null!=e?e.info:e)?i.termsOfServiceUrl:i,{name:"if",hash:{},fn:this.program(4,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+="\n ",i=t["if"].call(e,null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.name:i,{name:"if",hash:{},fn:this.program(6,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+="\n ",i=t["if"].call(e,null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.url:i,{name:"if",hash:{},fn:this.program(8,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+="\n ",i=t["if"].call(e,null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.email:i,{name:"if",hash:{},fn:this.program(10,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+="\n ",i=t["if"].call(e,null!=(i=null!=e?e.info:e)?i.license:i,{name:"if",hash:{},fn:this.program(12,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+"\n"},2:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return"

      "+o(a(null!=(i=null!=e?e.externalDocs:e)?i.description:i,e))+'

      \n '+o(a(null!=(i=null!=e?e.externalDocs:e)?i.url:i,e))+"\n"},4:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return''},6:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return"
      Created by "+o(a(null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.name:i,e))+"
      "},8:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return""},10:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return"'},12:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return""},14:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return' , api version: '+o(a(null!=(i=null!=e?e.info:e)?i.version:i,e))+"\n "},16:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return' \n \n'},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="
      \n";return i=t["if"].call(e,null!=e?e.info:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+="
      \n
      \n
        \n\n
        \n

        [ base url: "+l((a=null!=(a=t.basePath||(null!=e?e.basePath:e))?a:s,typeof a===o?a.call(e,{name:"basePath",hash:{},data:r}):a))+"\n",i=t["if"].call(e,null!=(i=null!=e?e.info:e)?i.version:i,{name:"if",hash:{},fn:this.program(14,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+="]\n",i=t["if"].call(e,null!=e?e.validatorUrl:e,{name:"if",hash:{},fn:this.program(16,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+"

        \n
        \n
        \n"},useData:!0}),this.Handlebars.templates.operation=Handlebars.template({1:function(e,t,n,r){return"deprecated"},3:function(e,t,n,r){return"

        Warning: Deprecated

        \n"},5:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l='

        Implementation Notes

        \n
        ';return a=null!=(a=t.description||(null!=e?e.description:e))?a:s,i=typeof a===o?a.call(e,{name:"description",hash:{},data:r}):a,null!=i&&(l+=i),l+"
        \n"},7:function(e,t,n,r){return'
        \n '},9:function(e,t,n,r){var i,a=' \n"},10:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression,s="
        "+o(a(null!=e?e.scope:e,e))+"
        \n"},12:function(e,t,n,r){return"
        "},14:function(e,t,n,r){return'
        \n \n
        \n'},16:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return"

        Response Class (Status "+s((i=null!=(i=t.successCode||(null!=e?e.successCode:e))?i:o,typeof i===a?i.call(e,{name:"successCode",hash:{},data:r}):i))+')

        \n

        \n
        \n
        \n'},18:function(e,t,n,r){return'

        Parameters

        \n \n \n \n \n \n \n \n \n \n \n \n\n \n
        ParameterValueDescriptionParameter TypeData Type
        \n'},20:function(e,t,n,r){return"
        \n

        Response Messages

        \n \n \n \n \n \n \n \n \n \n \n\n \n
        HTTP Status CodeReasonResponse ModelHeaders
        \n"},22:function(e,t,n,r){return""},24:function(e,t,n,r){return"
        \n \n \n \n
        \n"},26:function(e,t,n,r){return"

        Request Headers

        \n
        \n"},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o,s="function",l=t.helperMissing,u=this.escapeExpression,c=t.blockHelperMissing,p="\n
          \n
        • \n \n \n
        • \n
        \n"},useData:!0}),this.Handlebars.templates.param_list=Handlebars.template({1:function(e,t,n,r){return" required"},3:function(e,t,n,r){return' multiple="multiple"'},5:function(e,t,n,r){return" required "},7:function(e,t,n,r){var i,a=" \n"},8:function(e,t,n,r){return' selected="" '},10:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="\n \n\n"},11:function(e,t,n,r){return' selected="" '},13:function(e,t,n,r){return" (default) "},15:function(e,t,n,r){return""},17:function(e,t,n,r){return""},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="