| Index: third_party/polymer/v0_8/components-chromium/iron-ajax/iron-ajax-extracted.js
|
| diff --git a/third_party/polymer/v0_8/components-chromium/iron-ajax/iron-ajax-extracted.js b/third_party/polymer/v0_8/components-chromium/iron-ajax/iron-ajax-extracted.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..07a388277ddb997b32770ed68fb6d0d458c8704a
|
| --- /dev/null
|
| +++ b/third_party/polymer/v0_8/components-chromium/iron-ajax/iron-ajax-extracted.js
|
| @@ -0,0 +1,363 @@
|
| +
|
| +
|
| + Polymer({
|
| +
|
| + is: 'iron-ajax',
|
| +
|
| + /**
|
| + * Fired when a request is sent.
|
| + *
|
| + * @event request
|
| + */
|
| +
|
| + /**
|
| + * Fired when a response is received.
|
| + *
|
| + * @event response
|
| + */
|
| +
|
| + /**
|
| + * Fired when an error is received.
|
| + *
|
| + * @event error
|
| + */
|
| +
|
| + properties: {
|
| + /**
|
| + * The URL target of the request.
|
| + */
|
| + url: {
|
| + type: String,
|
| + value: ''
|
| + },
|
| +
|
| + /**
|
| + * An object that contains query parameters to be appended to the
|
| + * specified `url` when generating a request.
|
| + */
|
| + params: {
|
| + type: Object,
|
| + value: function() {
|
| + return {};
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * The HTTP method to use such as 'GET', 'POST', 'PUT', or 'DELETE'.
|
| + * Default is 'GET'.
|
| + */
|
| + method: {
|
| + type: String,
|
| + value: 'GET'
|
| + },
|
| +
|
| + /**
|
| + * HTTP request headers to send.
|
| + *
|
| + * Example:
|
| + *
|
| + * <iron-ajax
|
| + * auto
|
| + * url="http://somesite.com"
|
| + * headers='{"X-Requested-With": "XMLHttpRequest"}'
|
| + * handle-as="json"
|
| + * last-response-changed="{{handleResponse}}"></iron-ajax>
|
| + */
|
| + headers: {
|
| + type: Object,
|
| + value: function() {
|
| + return {};
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * Content type to use when sending data. If the contenttype is set
|
| + * and a `Content-Type` header is specified in the `headers` attribute,
|
| + * the `headers` attribute value will take precedence.
|
| + */
|
| + contentType: {
|
| + type: String,
|
| + value: 'application/x-www-form-urlencoded'
|
| + },
|
| +
|
| + /**
|
| + * Optional raw body content to send when method === "POST".
|
| + *
|
| + * Example:
|
| + *
|
| + * <iron-ajax method="POST" auto url="http://somesite.com"
|
| + * body='{"foo":1, "bar":2}'>
|
| + * </iron-ajax>
|
| + */
|
| + body: {
|
| + type: String,
|
| + value: ''
|
| + },
|
| +
|
| + /**
|
| + * Toggle whether XHR is synchronous or asynchronous. Don't change this
|
| + * to true unless You Know What You Are Doing™.
|
| + */
|
| + sync: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * Specifies what data to store in the `response` property, and
|
| + * to deliver as `event.response` in `response` events.
|
| + *
|
| + * One of:
|
| + *
|
| + * `text`: uses `XHR.responseText`.
|
| + *
|
| + * `xml`: uses `XHR.responseXML`.
|
| + *
|
| + * `json`: uses `XHR.responseText` parsed as JSON.
|
| + *
|
| + * `arraybuffer`: uses `XHR.response`.
|
| + *
|
| + * `blob`: uses `XHR.response`.
|
| + *
|
| + * `document`: uses `XHR.response`.
|
| + */
|
| + handleAs: {
|
| + type: String,
|
| + value: 'json'
|
| + },
|
| +
|
| + /**
|
| + * Set the withCredentials flag on the request.
|
| + */
|
| + withCredentials: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * If true, automatically performs an Ajax request when either `url` or
|
| + * `params` changes.
|
| + */
|
| + auto: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * If true, error messages will automatically be logged to the console.
|
| + */
|
| + verbose: {
|
| + type: Boolean,
|
| + value: false
|
| + },
|
| +
|
| + /**
|
| + * Will be set to true if there is at least one in-flight request
|
| + * associated with this iron-ajax element.
|
| + */
|
| + loading: {
|
| + type: Boolean,
|
| + notify: true,
|
| + readOnly: true
|
| + },
|
| +
|
| + /**
|
| + * Will be set to the most recent request made by this iron-ajax element.
|
| + */
|
| + lastRequest: {
|
| + type: Object,
|
| + notify: true,
|
| + readOnly: true
|
| + },
|
| +
|
| + /**
|
| + * Will be set to the most recent response received by a request
|
| + * that originated from this iron-ajax element. The type of the response
|
| + * is determined by the value of `handleas` at the time that the request
|
| + * was generated.
|
| + */
|
| + lastResponse: {
|
| + type: Object,
|
| + notify: true,
|
| + readOnly: true
|
| + },
|
| +
|
| + /**
|
| + * Will be set to the most recent error that resulted from a request
|
| + * that originated from this iron-ajax element.
|
| + */
|
| + lastError: {
|
| + type: Object,
|
| + notify: true,
|
| + readOnly: true
|
| + },
|
| +
|
| + /**
|
| + * An Array of all in-flight requests originating from this iron-ajax
|
| + * element.
|
| + */
|
| + activeRequests: {
|
| + type: Array,
|
| + notify: true,
|
| + readOnly: true,
|
| + value: function() {
|
| + this._setActiveRequests([]);
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * Length of time in milliseconds to debounce multiple requests.
|
| + */
|
| + debounceDuration: {
|
| + type: Number,
|
| + value: 0,
|
| + notify: true
|
| + },
|
| +
|
| + _boundHandleResponse: {
|
| + type: Function,
|
| + value: function() {
|
| + return this.handleResponse.bind(this);
|
| + }
|
| + },
|
| +
|
| + _boundDiscardRequest: {
|
| + type: Function,
|
| + value: function() {
|
| + return this.discardRequest.bind(this);
|
| + }
|
| + }
|
| + },
|
| +
|
| + observers: [
|
| + 'requestOptionsChanged(url, method, params, headers,' +
|
| + 'contentType, body, sync, handleAs, withCredentials, auto)'
|
| + ],
|
| +
|
| + get queryString () {
|
| + var queryParts = [];
|
| + var param;
|
| + var value;
|
| +
|
| + for (param in this.params) {
|
| + value = this.params[param];
|
| + param = window.encodeURIComponent(param);
|
| +
|
| + if (value !== null) {
|
| + param += '=' + window.encodeURIComponent(value);
|
| + }
|
| +
|
| + queryParts.push(param);
|
| + }
|
| +
|
| + return queryParts.join('&');
|
| + },
|
| +
|
| + get requestUrl() {
|
| + var queryString = this.queryString;
|
| +
|
| + if (queryString) {
|
| + return this.url + '?' + queryString;
|
| + }
|
| +
|
| + return this.url;
|
| + },
|
| +
|
| + get requestHeaders() {
|
| + var headers = {
|
| + 'content-type': this.contentType
|
| + };
|
| + var header;
|
| +
|
| + if (this.headers instanceof Object) {
|
| + for (header in this.headers) {
|
| + headers[header] = this.headers[header].toString();
|
| + }
|
| + }
|
| +
|
| + return headers;
|
| + },
|
| +
|
| + toRequestOptions: function() {
|
| + return {
|
| + url: this.requestUrl,
|
| + method: this.method,
|
| + headers: this.requestHeaders,
|
| + body: this.body,
|
| + async: !this.sync,
|
| + handleAs: this.handleAs,
|
| + withCredentials: this.withCredentials
|
| + };
|
| + },
|
| +
|
| + requestOptionsChanged: function() {
|
| + this.debounce('generate-request', function() {
|
| + if (!this.url && this.url !== '') {
|
| + return;
|
| + }
|
| +
|
| + if (this.auto) {
|
| + this.generateRequest();
|
| + }
|
| + }, this.debounceDuration);
|
| + },
|
| +
|
| + /**
|
| + * Performs an AJAX request to the specified URL.
|
| + *
|
| + * @method generateRequest
|
| + */
|
| + generateRequest: function() {
|
| + var request = document.createElement('iron-request');
|
| + var requestOptions = this.toRequestOptions();
|
| +
|
| + this.activeRequests.push(request);
|
| +
|
| + request.completes.then(
|
| + this._boundHandleResponse
|
| + ).catch(
|
| + this.handleError.bind(this, request)
|
| + ).then(
|
| + this._boundDiscardRequest
|
| + );
|
| +
|
| + request.send(requestOptions);
|
| +
|
| + this._setLastRequest(request);
|
| +
|
| + this.fire('request', {
|
| + request: request,
|
| + options: requestOptions
|
| + });
|
| +
|
| + return request;
|
| + },
|
| +
|
| + handleResponse: function(request) {
|
| + this._setLastResponse(request.response);
|
| + this.fire('response', request);
|
| + },
|
| +
|
| + handleError: function(request, error) {
|
| + if (this.verbose) {
|
| + console.error(error);
|
| + }
|
| +
|
| + this._setLastError({
|
| + request: request,
|
| + error: error
|
| + });
|
| + this.fire('error', {
|
| + request: request,
|
| + error: error
|
| + });
|
| + },
|
| +
|
| + discardRequest: function(request) {
|
| + var requestIndex = this.activeRequests.indexOf(request);
|
| +
|
| + if (requestIndex > 0) {
|
| + this.activeRequests.splice(requestIndex, 1);
|
| + }
|
| + }
|
| + });
|
|
|