From: Andrea Bianco Date: Wed, 30 Oct 2019 11:28:35 +0000 (+0100) Subject: Built motion from commit (unavailable).|2.3.9 X-Git-Tag: 2.3.9 X-Git-Url: http://repos.xcallymotion.com/?a=commitdiff_plain;h=d28501e245cc5092067a646892769ce1a3f5a342;p=motion2.git Built motion from commit (unavailable).|2.3.9 --- diff --git a/apidoc/api_project.js b/apidoc/api_project.js index e2fed69..cd0aa75 100644 --- a/apidoc/api_project.js +++ b/apidoc/api_project.js @@ -1 +1 @@ -define({ "name": "xCALLY Motion API", "version": "2.3.8", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token or API Key.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or API Key.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

API Key

\n

In your request, specify the API Key in apikey query parameter

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users?apikey=eyJhbGciOiJIUzUxMiIsInR5cC...\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2019-10-25T14:53:32.752Z", "url": "http://apidocjs.com", "version": "0.17.7" } }); +define({ "name": "xCALLY Motion API", "version": "2.3.9", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token or API Key.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or API Key.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

API Key

\n

In your request, specify the API Key in apikey query parameter

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users?apikey=eyJhbGciOiJIUzUxMiIsInR5cC...\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2019-10-30T11:21:27.209Z", "url": "http://apidocjs.com", "version": "0.17.7" } }); diff --git a/apidoc/api_project.json b/apidoc/api_project.json index ac786aa..a0607d0 100644 --- a/apidoc/api_project.json +++ b/apidoc/api_project.json @@ -1 +1 @@ -{ "name": "xCALLY Motion API", "version": "2.3.8", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token or API Key.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or API Key.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

API Key

\n

In your request, specify the API Key in apikey query parameter

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users?apikey=eyJhbGciOiJIUzUxMiIsInR5cC...\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2019-10-25T14:53:32.752Z", "url": "http://apidocjs.com", "version": "0.17.7" } } +{ "name": "xCALLY Motion API", "version": "2.3.9", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token or API Key.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or API Key.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

API Key

\n

In your request, specify the API Key in apikey query parameter

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users?apikey=eyJhbGciOiJIUzUxMiIsInR5cC...\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2019-10-30T11:21:27.209Z", "url": "http://apidocjs.com", "version": "0.17.7" } } diff --git a/package.json b/package.json index a61a66a..857ec21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "motion", - "version": "2.3.8", + "version": "2.3.9", "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.", "main": "server/app.js", "engines": { diff --git a/public/index.html b/public/index.html index 985d340..4abec80 100644 --- a/public/index.html +++ b/public/index.html @@ -56,7 +56,7 @@ - + diff --git a/public/scripts/vendor.d7c1518f.js b/public/scripts/vendor.8e8c1faf.js similarity index 84% rename from public/scripts/vendor.d7c1518f.js rename to public/scripts/vendor.8e8c1faf.js index 104f2be..7a4c93b 100644 --- a/public/scripts/vendor.d7c1518f.js +++ b/public/scripts/vendor.8e8c1faf.js @@ -1 +1 @@ -if(function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(A,e){var t=[],S=A.document,u=t.slice,m=t.concat,s=t.push,i=t.indexOf,n={},r=n.toString,p=n.hasOwnProperty,g={},a="2.2.4",x=function(e,t){return new x.fn.init(e,t)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,l=/^-ms-/,c=/-([\da-z])/gi,f=function(e,t){return t.toUpperCase()};function d(e){var t=!!e&&"length"in e&&e.length,n=x.type(e);return"function"!==n&&!x.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+R+")"+R+"*"),W=new RegExp("="+R+"*([^\\]'\"]*?)"+R+"*\\]","g"),q=new RegExp(G),z=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+F),PSEUDO:new RegExp("^"+G),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+R+"*(even|odd|(([+-]|)(\\d*)n|)"+R+"*(?:([+-]|)"+R+"*(\\d+)|))"+R+"*\\)|)","i"),bool:new RegExp("^(?:"+N+")$","i"),needsContext:new RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,X=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/[+~]/,J=/'|\\/g,ee=new RegExp("\\\\([\\da-f]{1,6}"+R+"?|("+R+")|.)","ig"),te=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},ne=function(){C()};try{M.apply(t=$.call(v.childNodes),v.childNodes),t[v.childNodes.length].nodeType}catch(e){M={apply:t.length?function(e,t){P.apply(e,$.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function re(e,t,n,r){var i,a,o,s,l,c,u,f,d=t&&t.ownerDocument,h=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==h&&9!==h&&11!==h)return n;if(!r&&((t?t.ownerDocument||t:v)!==A&&C(t),t=t||A,S)){if(11!==h&&(c=X.exec(e)))if(i=c[1]){if(9===h){if(!(o=t.getElementById(i)))return n;if(o.id===i)return n.push(o),n}else if(d&&(o=d.getElementById(i))&&b(t,o)&&o.id===i)return n.push(o),n}else{if(c[2])return M.apply(n,t.getElementsByTagName(e)),n;if((i=c[3])&&p.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(i)),n}if(p.qsa&&!k[e+" "]&&(!_||!_.test(e))){if(1!==h)d=t,f=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(J,"\\$&"):t.setAttribute("id",s=x),a=(u=m(e)).length,l=z.test(s)?"#"+s:"[id='"+s+"']";a--;)u[a]=l+" "+pe(u[a]);f=u.join(","),d=Z.test(e)&&de(t.parentNode)||t}if(f)try{return M.apply(n,d.querySelectorAll(f)),n}catch(e){}finally{s===x&&t.removeAttribute("id")}}}return g(e.replace(B,"$1"),t,n,r)}function ie(){var r=[];return function e(t,n){return r.push(t+" ")>y.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function ae(e){return e[x]=!0,e}function oe(e){var t=A.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function se(e,t){for(var n=e.split("|"),r=n.length;r--;)y.attrHandle[n[r]]=t}function le(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ce(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function ue(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function fe(o){return ae(function(a){return a=+a,ae(function(e,t){for(var n,r=o([],e.length,a),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function de(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=re.support={},i=re.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},C=re.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:v;return r!==A&&9===r.nodeType&&r.documentElement&&(o=(A=r).documentElement,S=!i(A),(n=A.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",ne,!1):n.attachEvent&&n.attachEvent("onunload",ne)),p.attributes=oe(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=oe(function(e){return e.appendChild(A.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=Q.test(A.getElementsByClassName),p.getById=oe(function(e){return o.appendChild(e).id=x,!A.getElementsByName||!A.getElementsByName(x).length}),p.getById?(y.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}},y.filter.ID=function(e){var t=e.replace(ee,te);return function(e){return e.getAttribute("id")===t}}):(delete y.find.ID,y.filter.ID=function(e){var n=e.replace(ee,te);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}}),y.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,a=t.getElementsByTagName(e);if("*"!==e)return a;for(;n=a[i++];)1===n.nodeType&&r.push(n);return r},y.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&S)return t.getElementsByClassName(e)},s=[],_=[],(p.qsa=Q.test(A.querySelectorAll))&&(oe(function(e){o.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&_.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||_.push("\\["+R+"*(?:value|"+N+")"),e.querySelectorAll("[id~="+x+"-]").length||_.push("~="),e.querySelectorAll(":checked").length||_.push(":checked"),e.querySelectorAll("a#"+x+"+*").length||_.push(".#.+[+~]")}),oe(function(e){var t=A.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&_.push("name"+R+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||_.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),_.push(",.*:")})),(p.matchesSelector=Q.test(u=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&oe(function(e){p.disconnectedMatch=u.call(e,"div"),u.call(e,"[s!='']:x"),s.push("!=",G)}),_=_.length&&new RegExp(_.join("|")),s=s.length&&new RegExp(s.join("|")),t=Q.test(o.compareDocumentPosition),b=t||Q.test(o.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},E=t?function(e,t){if(e===t)return c=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===A||e.ownerDocument===v&&b(v,e)?-1:t===A||t.ownerDocument===v&&b(v,t)?1:l?O(l,e)-O(l,t):0:4&n?-1:1)}:function(e,t){if(e===t)return c=!0,0;var n,r=0,i=e.parentNode,a=t.parentNode,o=[e],s=[t];if(!i||!a)return e===A?-1:t===A?1:i?-1:a?1:l?O(l,e)-O(l,t):0;if(i===a)return le(e,t);for(n=e;n=n.parentNode;)o.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;o[r]===s[r];)r++;return r?le(o[r],s[r]):o[r]===v?-1:s[r]===v?1:0}),A},re.matches=function(e,t){return re(e,null,null,t)},re.matchesSelector=function(e,t){if((e.ownerDocument||e)!==A&&C(e),t=t.replace(W,"='$1']"),p.matchesSelector&&S&&!k[t+" "]&&(!s||!s.test(t))&&(!_||!_.test(t)))try{var n=u.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ee,te),e[3]=(e[3]||e[4]||e[5]||"").replace(ee,te),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||re.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&re.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&q.test(n)&&(t=m(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ee,te).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=d[e+" "];return t||(t=new RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&d(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=re.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function C(e,n,r){if(x.isFunction(n))return x.grep(e,function(e,t){return!!n.call(e,t,e)!==r});if(n.nodeType)return x.grep(e,function(e){return e===n!==r});if("string"==typeof n){if(w.test(n))return x.filter(n,e,r);n=x.filter(n,e)}return x.grep(e,function(e){return-1)[^>]*|#([\w-]*))$/;(x.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||T,"string"!=typeof e)return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?void 0!==n.ready?n.ready(e):e(x):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this));if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:k.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),y.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=S.getElementById(r[2]))&&i.parentNode&&(this.length=1,this[0]=i),this.context=S,this.selector=e,this}).prototype=x.fn,T=x(S);var E=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};function D(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}x.fn.extend({has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){for(var e=0;e",""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function X(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&x.nodeName(e,t)?x.merge([e],n):n}function Z(e,t){for(var n=0,r=e.length;nx",g.noCloneChecked=!!J.cloneNode(!0).lastChild.defaultValue;var re=/^key/,ie=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ae=/^([^.]*)(?:\.(.+)|)/;function oe(){return!0}function se(){return!1}function le(){try{return S.activeElement}catch(e){}}function ce(e,t,n,r,i,a){var o,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ce(e,s,n,r,t[s],a);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=se;else if(!i)return e;return 1===a&&(o=i,(i=function(e){return x().off(e),o.apply(this,arguments)}).guid=o.guid||(o.guid=x.guid++)),e.each(function(){x.event.add(this,t,i,r,n)})}x.event={global:{},add:function(t,e,n,r,i){var a,o,s,l,c,u,f,d,h,p,m,g=L.get(t);if(g)for(n.handler&&(n=(a=n).handler,i=a.selector),n.guid||(n.guid=x.guid++),(l=g.events)||(l=g.events={}),(o=g.handle)||(o=g.handle=function(e){return void 0!==x&&x.event.triggered!==e.type?x.event.dispatch.apply(t,arguments):void 0}),c=(e=(e||"").match(M)||[""]).length;c--;)h=m=(s=ae.exec(e[c])||[])[1],p=(s[2]||"").split(".").sort(),h&&(f=x.event.special[h]||{},h=(i?f.delegateType:f.bindType)||h,f=x.event.special[h]||{},u=x.extend({type:h,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&x.expr.match.needsContext.test(i),namespace:p.join(".")},a),(d=l[h])||((d=l[h]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,p,o)||t.addEventListener&&t.addEventListener(h,o)),f.add&&(f.add.call(t,u),u.handler.guid||(u.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,u):d.push(u),x.event.global[h]=!0)},remove:function(e,t,n,r,i){var a,o,s,l,c,u,f,d,h,p,m,g=L.hasData(e)&&L.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(M)||[""]).length;c--;)if(h=m=(s=ae.exec(t[c])||[])[1],p=(s[2]||"").split(".").sort(),h){for(f=x.event.special[h]||{},d=l[h=(r?f.delegateType:f.bindType)||h]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=a=d.length;a--;)u=d[a],!i&&m!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(d.splice(a,1),u.selector&&d.delegateCount--,f.remove&&f.remove.call(e,u));o&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,p,g.handle)||x.removeEvent(e,h,g.handle),delete l[h])}else for(h in l)x.event.remove(e,h+t[c],n,r,!0);x.isEmptyObject(l)&&L.remove(e,"handle events")}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,a,o,s=u.call(arguments),l=(L.get(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if((s[0]=e).delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,e)){for(o=x.event.handlers.call(this,e,l),t=0;(i=o[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(a=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(a.namespace)||(e.handleObj=a,e.data=a.data,void 0!==(r=((x.event.special[a.origType]||{}).handle||a.handler).apply(i.elem,s))&&!1===(e.result=r)&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,a,o=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(!0!==l.disabled||"click"!==e.type)){for(r=[],n=0;n]*)\/>/gi,fe=/\s*$/g;function me(e,t){return x.nodeName(e,"table")&&x.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ge(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function _e(e){var t=he.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function be(e,t){var n,r,i,a,o,s,l,c;if(1===t.nodeType){if(L.hasData(e)&&(a=L.access(e),o=L.set(t,a),c=a.events))for(i in delete o.handle,o.events={},c)for(n=0,r=c[i].length;n")},clone:function(e,t,n){var r,i,a,o,s,l,c,u=e.cloneNode(!0),f=x.contains(e.ownerDocument,e);if(!(g.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(o=X(u),r=0,i=(a=X(e)).length;r")).appendTo(t.documentElement))[0].contentDocument).write(),t.close(),n=Ae(e,t),we.detach()),Ce[e]=n),n}var xe=/^margin/,Te=new RegExp("^("+U+")(?!px)[a-z%]+$","i"),ke=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=A),t.getComputedStyle(e)},Ee=function(e,t,n,r){var i,a,o={};for(a in t)o[a]=e.style[a],e.style[a]=t[a];for(a in i=n.apply(e,r||[]),t)e.style[a]=o[a];return i},Ie=S.documentElement;function De(e,t,n){var r,i,a,o,s=e.style;return""!==(o=(n=n||ke(e))?n.getPropertyValue(t)||n[t]:void 0)&&void 0!==o||x.contains(e.ownerDocument,e)||(o=x.style(e,t)),n&&!g.pixelMarginRight()&&Te.test(o)&&xe.test(t)&&(r=s.width,i=s.minWidth,a=s.maxWidth,s.minWidth=s.maxWidth=s.width=o,o=n.width,s.width=r,s.minWidth=i,s.maxWidth=a),void 0!==o?o+"":o}function Pe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){var t,n,r,i,a=S.createElement("div"),o=S.createElement("div");function e(){o.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",o.innerHTML="",Ie.appendChild(a);var e=A.getComputedStyle(o);t="1%"!==e.top,i="2px"===e.marginLeft,n="4px"===e.width,o.style.marginRight="50%",r="4px"===e.marginRight,Ie.removeChild(a)}o.style&&(o.style.backgroundClip="content-box",o.cloneNode(!0).style.backgroundClip="",g.clearCloneStyle="content-box"===o.style.backgroundClip,a.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",a.appendChild(o),x.extend(g,{pixelPosition:function(){return e(),t},boxSizingReliable:function(){return null==n&&e(),n},pixelMarginRight:function(){return null==n&&e(),r},reliableMarginLeft:function(){return null==n&&e(),i},reliableMarginRight:function(){var e,t=o.appendChild(S.createElement("div"));return t.style.cssText=o.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",t.style.marginRight=t.style.width="0",o.style.width="1px",Ie.appendChild(a),e=!parseFloat(A.getComputedStyle(t).marginRight),Ie.removeChild(a),o.removeChild(t),e}}))}();var Me=/^(none|table(?!-c[ea]).+)/,$e={position:"absolute",visibility:"hidden",display:"block"},Oe={letterSpacing:"0",fontWeight:"400"},Ne=["Webkit","O","Moz","ms"],Re=S.createElement("div").style;function Le(e){if(e in Re)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=Ne.length;n--;)if((e=Ne[n]+t)in Re)return e}function Fe(e,t,n){var r=H.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ge(e,t,n,r,i){for(var a=n===(r?"border":"content")?4:"width"===t?1:0,o=0;a<4;a+=2)"margin"===n&&(o+=x.css(e,n+W[a],!0,i)),r?("content"===n&&(o-=x.css(e,"padding"+W[a],!0,i)),"margin"!==n&&(o-=x.css(e,"border"+W[a]+"Width",!0,i))):(o+=x.css(e,"padding"+W[a],!0,i),"padding"!==n&&(o+=x.css(e,"border"+W[a]+"Width",!0,i)));return o}function je(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,a=ke(e),o="border-box"===x.css(e,"boxSizing",!1,a);if(i<=0||null==i){if(((i=De(e,t,a))<0||null==i)&&(i=e.style[t]),Te.test(i))return i;r=o&&(g.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+Ge(e,t,n||(o?"border":"content"),r,a)+"px"}function Be(e,t){for(var n,r,i,a=[],o=0,s=e.length;o").prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){i&&i()}}});var Mt=[],$t=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mt.pop()||x.expando+"_"+ut++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,a,o=!1!==e.jsonp&&($t.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&$t.test(e.data)&&"data");if(o||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=x.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,o?e[o]=e[o].replace($t,"$1"+r):!1!==e.jsonp&&(e.url+=(ft.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return a||x.error(r+" was not called"),a[0]},e.dataTypes[0]="json",i=A[r],A[r]=function(){a=arguments},n.always(function(){void 0===i?x(A).removeProp(r):A[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Mt.push(r)),a&&x.isFunction(i)&&i(a[0]),a=i=void 0}),"script"}),x.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||S;var r=y.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=ne([e],t,i),i&&i.length&&x(i).remove(),x.merge([],r.childNodes))};var Ot=x.fn.load;function Nt(e){return x.isWindow(e)?e:9===e.nodeType&&e.defaultView}x.fn.load=function(e,t,n){if("string"!=typeof e&&Ot)return Ot.apply(this,arguments);var r,i,a,o=this,s=e.indexOf(" ");return-1").append(x.parseHTML(e)).find(r):e)}).always(n&&function(e,t){o.each(function(){n.apply(this,a||[e.responseText,t,e])})}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.expr.filters.animated=function(t){return x.grep(x.timers,function(e){return t===e.elem}).length},x.offset={setOffset:function(e,t,n){var r,i,a,o,s,l,c=x.css(e,"position"),u=x(e),f={};"static"===c&&(e.style.position="relative"),s=u.offset(),a=x.css(e,"top"),l=x.css(e,"left"),i=("absolute"===c||"fixed"===c)&&-1<(a+l).indexOf("auto")?(o=(r=u.position()).top,r.left):(o=parseFloat(a)||0,parseFloat(l)||0),x.isFunction(t)&&(t=t.call(e,n,x.extend({},s))),null!=t.top&&(f.top=t.top-s.top+o),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):u.css(f)}},x.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){x.offset.setOffset(this,t,e)});var e,n,r=this[0],i={top:0,left:0},a=r&&r.ownerDocument;return a?(e=a.documentElement,x.contains(e,r)?(i=r.getBoundingClientRect(),n=Nt(a),{top:i.top+n.pageYOffset-e.clientTop,left:i.left+n.pageXOffset-e.clientLeft}):i):void 0},position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===x.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(r=e.offset()),r.top+=x.css(e[0],"borderTopWidth",!0),r.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-x.css(n,"marginTop",!0),left:t.left-r.left-x.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===x.css(e,"position");)e=e.offsetParent;return e||Ie})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var a="pageYOffset"===i;x.fn[t]=function(e){return O(this,function(e,t,n){var r=Nt(e);if(void 0===n)return r?r[i]:e[t];r?r.scrollTo(a?r.pageXOffset:n,a?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),x.each(["top","left"],function(e,n){x.cssHooks[n]=Pe(g.pixelPosition,function(e,t){if(t)return t=De(e,n),Te.test(t)?x(e).position()[n]+"px":t})}),x.each({Height:"height",Width:"width"},function(a,o){x.each({padding:"inner"+a,content:o,"":"outer"+a},function(r,e){x.fn[e]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return O(this,function(e,t,n){var r;return x.isWindow(e)?e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?x.css(e,t,i):x.style(e,t,n,i)},o,n?e:void 0,n,null)}})}),x.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},size:function(){return this.length}}),x.fn.andSelf=x.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x});var Rt=A.jQuery,Lt=A.$;return x.noConflict=function(e){return A.$===x&&(A.$=Lt),e&&A.jQuery===x&&(A.jQuery=Rt),x},e||(A.jQuery=A.$=x),x}),function(j){"use strict";function w(a,o){return o=o||Error,function(){var e,t,n=arguments,r=n[0],i="["+(a?a+":":"")+r+"] ";for(i+=n[1].replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1)+2;return t").append(e).html();try{return e[0].nodeType===Re?S(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(e,t){return"<"+S(t)})}catch(e){return S(t)}}function Y(e){try{return decodeURIComponent(e)}catch(e){}}function K(e){var i={};return fe((e||"").split("&"),function(e){var t,n,r;e&&(n=e=e.replace(/\+/g,"%20"),-1!==(t=e.indexOf("="))&&(n=e.substring(0,t),r=e.substring(t+1)),_e(n=Y(n))&&(r=!_e(r)||Y(r),B.call(i,n)?ye(i[n])?i[n].push(r):i[n]=[i[n],r]:i[n]=r))}),i}function Q(e){var n=[];return fe(e,function(e,t){ye(e)?fe(e,function(e){n.push(Z(t,!0)+(!0===e?"":"="+Z(e,!0)))}):n.push(Z(t,!0)+(!0===e?"":"="+Z(e,!0)))}),n.length?n.join("&"):""}function X(e){return Z(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Z(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}var J=["ng-","data-ng-","ng:","x-ng-"];var ee=function(e){if(!e.currentScript)return!0;var t=e.currentScript.getAttribute("src"),n=e.createElement("a");if(n.href=t,e.location.origin===n.origin)return!0;switch(n.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}}(j.document);function te(r,e){var i,a,t={};if(fe(J,function(e){var t=e+"app";!i&&r.hasAttribute&&r.hasAttribute(t)&&(a=(i=r).getAttribute(t))}),fe(J,function(e){var t,n=e+"app";!i&&(t=r.querySelector("["+n.replace(":","\\:")+"]"))&&(a=(i=t).getAttribute(n))}),i){if(!ee)return void j.console.error("Angular: disabling automatic bootstrap. - + - + @@ -20,11 +20,6 @@
-
- - CHAT -
-
@@ -33,7 +28,7 @@ - +
logo @@ -63,17 +58,13 @@
-
- - CHAT -
- + - + diff --git a/snippet/1.0.11/scripts/app.js b/snippet/1.0.12/scripts/app.js similarity index 98% rename from snippet/1.0.11/scripts/app.js rename to snippet/1.0.12/scripts/app.js index ca4dae9..768895d 100644 --- a/snippet/1.0.11/scripts/app.js +++ b/snippet/1.0.12/scripts/app.js @@ -243,43 +243,47 @@ function() { function() { "use strict"; - function e(a, n, r, i, o, l, s, c, d) { + function e(a, r, l, n, i, c, o, d, m) { var e = this; - function m(e, t, n) { - var i = l.get(e) || {}; - n ? delete i[a.location] : i[a.location] = t, l.set(e, i) + function s(e, t, n) { + var i = c.get(e) || {}; + n ? delete i[a.location] : i[a.location] = t, c.set(e, i) } function g(e) { var t; - a.layout.up = e, m(c, a.layout), t = e ? "show" : "hide", n.parent.postMessage({ + a.layout.up = e, s(d, a.layout), t = e ? "show" : "hide", r.parent.postMessage({ cmd: t }, "*") } a.location = a.settings.location, e.$onInit = function() { a.status = "init"; var e = !1, - t = l.get(d) || {}, - n = l.get(c) || {}; + t = c.get(m) || {}, + n = c.get(d) || {}; a.visitor = t[a.location] ? t[a.location] : {}, a.layout = n[a.location] ? n[a.location] : {}, a.visitor.interaction && a.layout.up ? e = !0 : a.layout.up = !1; - g(e), r.go((i = a.settings.online, o = !!(a.visitor && a.visitor.interaction && a.visitor.interaction.id), s = Number(a.settings.maxInteractions) && Number(a.settings.openedInteractions) >= Number(a.settings.maxInteractions), o || !s && i ? "app.online" : "app.offline"), null, { + g(e), l.go((i = a.settings.online, o = !!(a.visitor && a.visitor.interaction && a.visitor.interaction.id), s = Number(a.settings.maxInteractions) && Number(a.settings.openedInteractions) >= Number(a.settings.maxInteractions), o || !s && i ? "app.online" : "app.offline"), null, { location: "replace" - }); + }), r.parent.postMessage({ + cmd: "init", + div_color: a.settings.color, + text_color: a.settings.textColor + }, "*"); var i, o, s }, e.close = function() { var e = a.visitor.interaction; if (e && e.id) { - var t = i.confirm().parent(angular.element(document.querySelector("#chat-app"))).clickOutsideToClose(!0).title(a.settings.closingQuestion || "Do you want to close the interaction?").ok("Ok").cancel("Cancel"); - i.show(t).then(function() { - return s.chatInteraction.customUpdate({ + var t = n.confirm().parent(angular.element(document.querySelector("#chat-app"))).clickOutsideToClose(!0).title(a.settings.closingQuestion || "Do you want to close the interaction?").ok("Ok").cancel("Cancel"); + n.show(t).then(function() { + return o.chatInteraction.customUpdate({ id: e.id, closed: !0, closeReason: "contact", closedAt: moment().format("YYYY-MM-DD HH:mm:ss") }).$promise }).then(function() { - r.go("app.closing", null, { + l.go("app.closing", null, { location: "replace" }) }).catch(function(e) { @@ -287,9 +291,9 @@ function() { }) } }, e.toggle = g, e.download = function(e) { - var t = o.defer(), + var t = i.defer(), n = a.visitor.interaction; - n && n.id && s.chatInteraction.getMessages({ + n && n.id && o.chatInteraction.getMessages({ intid: n.id, includeAll: !0 }).$promise.then(function(e) { @@ -320,7 +324,7 @@ function() { return t.promise }, e.getHeaderShape = function() { return "rounded" === a.settings.header_shape ? "15px" : "0px" - }, a.updateStorage = m, window.addEventListener("message", function(e) { + }, a.updateStorage = s, window.addEventListener("message", function(e) { g("show" === e.data.evt) }, !1) } diff --git a/snippet/1.0.11/scripts/vendor.js b/snippet/1.0.12/scripts/vendor.js similarity index 100% rename from snippet/1.0.11/scripts/vendor.js rename to snippet/1.0.12/scripts/vendor.js diff --git a/snippet/1.0.11/styles/app.css b/snippet/1.0.12/styles/app.css similarity index 100% rename from snippet/1.0.11/styles/app.css rename to snippet/1.0.12/styles/app.css diff --git a/snippet/1.0.11/styles/vendor.css b/snippet/1.0.12/styles/vendor.css similarity index 100% rename from snippet/1.0.11/styles/vendor.css rename to snippet/1.0.12/styles/vendor.css