{
  "schema_version": "1.0.0",
  "elements": [
    {
      "description": "# oe-ajax\n\nThe `oe-ajax` element exposes network request functionality.\n\n```\n<oe-ajax auto url=\"http://gdata.youtube.com/feeds/api/videos/\"\n        params='{\"alt\":\"json\", \"q\":\"chrome\"}'\n        handle-as=\"json\" on-response=\"handleResponse\"\n        debounce-duration=\"300\"></oe-ajax>\n```\n\nWith `auto` set to `true`, the element performs a request whenever\nits `url`, `params` or `body` properties are changed. Automatically generated\nrequests will be debounced in the case that multiple attributes are changed\nsequentially.\n\nNote: The `params` attribute must be double quoted JSON.\n\nYou can trigger a request explicitly by calling `generateRequest` on the\nelement.\n\nDefault settings to oe-ajax can be provided from in the `window.OEUtils.componentDefaults[\"oe-ajax\"]` object\n```javascript\n window.OEUtils = window.OEUtils || {};\n OEUtils.componentDefaults = OEUtils.componentDefaults || {};\n OEUtils.componentDefaults[\"oe-ajax\"] = {\n   headers: {                // default headers added to all ajax calls ,can be overriden by element level 'headers' property\n       \"custom-auth\":\"dev-token\"\n   },\n   timeout : 10000,\n   presendHook : function (detail , ?next){\n     //Allows modification of request calls\n     //detail object contains request , options , element\n     //optional parameter next is a callback function, should be called in case of async operations\n   },\n   postreceiveHook:function(detail, ?next){\n     //Allows modification of response of request calls. Will be called in case of both successful response or error scenarios.\n     //detail object contains request , error , and element from which response can be obtained\n     //optional parameter next is a callback function, should be called in case of async operations\n   }\n}\n\n```",
      "summary": "",
      "path": "oe-ajax.js",
      "properties": [
        {
          "name": "queryString",
          "type": "string",
          "description": "The query string that should be appended to the `url`, serialized from\nthe current value of `params`.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 407,
              "column": 2
            },
            "end": {
              "line": 428,
              "column": 3
            }
          },
          "metadata": {
            "polymer": {
              "readOnly": true
            }
          }
        },
        {
          "name": "requestUrl",
          "type": "string",
          "description": "The `url` with query string (if `params` are specified), suitable for\nproviding to an `iron-request` instance.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 436,
              "column": 2
            },
            "end": {
              "line": 446,
              "column": 3
            }
          },
          "metadata": {
            "polymer": {
              "readOnly": true
            }
          }
        },
        {
          "name": "requestHeaders",
          "type": "Object",
          "description": "An object that maps header names to header values, first applying the\nthe value of `Content-Type` and then overlaying the headers specified\nin the `headers` property.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 455,
              "column": 2
            },
            "end": {
              "line": 484,
              "column": 3
            }
          },
          "metadata": {
            "polymer": {
              "readOnly": true
            }
          }
        },
        {
          "name": "url",
          "type": "string | null | undefined",
          "description": "The URL target of the request.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 117,
              "column": 6
            },
            "end": {
              "line": 119,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          }
        },
        {
          "name": "params",
          "type": "Object | null | undefined",
          "description": "An object that contains query parameters to be appended to the\nspecified `url` when generating a request. If you wish to set the body\ncontent when making a POST request, you should use the `body` property\ninstead.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 127,
              "column": 6
            },
            "end": {
              "line": 132,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Object"
            }
          },
          "defaultValue": "{}"
        },
        {
          "name": "method",
          "type": "string | null | undefined",
          "description": "The HTTP method to use such as 'GET', 'POST', 'PUT', or 'DELETE'.\nDefault is 'GET'.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 138,
              "column": 6
            },
            "end": {
              "line": 141,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "defaultValue": "\"GET\""
        },
        {
          "name": "headers",
          "type": "Object | null | undefined",
          "description": "HTTP request headers to send.\n\nExample:\n\n    <oe-ajax\n        auto\n        url=\"http://somesite.com\"\n        headers='{\"X-Requested-With\": \"XMLHttpRequest\"}'\n        handle-as=\"json\"></oe-ajax>\n\nNote: setting a `Content-Type` header here will override the value\nspecified by the `contentType` property of this element.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 157,
              "column": 6
            },
            "end": {
              "line": 162,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Object"
            }
          },
          "defaultValue": "{}"
        },
        {
          "name": "contentType",
          "type": "string | null | undefined",
          "description": "Content type to use when sending data. If the `contentType` property\nis set and a `Content-Type` header is specified in the `headers`\nproperty, the `headers` property value will take precedence.\n\nVaries the handling of the `body` param.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 171,
              "column": 6
            },
            "end": {
              "line": 174,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "defaultValue": "null"
        },
        {
          "name": "body",
          "type": "Object | null | undefined",
          "description": "Body content to send with the request, typically used with \"POST\"\nrequests.\n\nIf body is a string it will be sent unmodified.\n\nIf Content-Type is set to a value listed below, then\nthe body will be encoded accordingly.\n\n   * `content-type=\"application/json\"`\n     * body is encoded like `{\"foo\":\"bar baz\",\"x\":1}`\n   * `content-type=\"application/x-www-form-urlencoded\"`\n     * body is encoded like `foo=bar+baz&x=1`\n\nOtherwise the body will be passed to the browser unmodified, and it\nwill handle any encoding (e.g. for FormData, Blob, ArrayBuffer).",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 195,
              "column": 6
            },
            "end": {
              "line": 198,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Object"
            }
          },
          "defaultValue": "null"
        },
        {
          "name": "sync",
          "type": "boolean | null | undefined",
          "description": "Toggle whether XHR is synchronous or asynchronous. Don't change this\nto true unless You Know What You Are Doing™.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 204,
              "column": 6
            },
            "end": {
              "line": 207,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "handleAs",
          "type": "string | null | undefined",
          "description": "Specifies what data to store in the `response` property, and\nto deliver as `event.detail.response` in `response` events.\n\nOne of:\n\n   `text`: uses `XHR.responseText`.\n\n   `xml`: uses `XHR.responseXML`.\n\n   `json`: uses `XHR.responseText` parsed as JSON.\n\n   `arraybuffer`: uses `XHR.response`.\n\n   `blob`: uses `XHR.response`.\n\n   `document`: uses `XHR.response`.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 227,
              "column": 6
            },
            "end": {
              "line": 230,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "defaultValue": "\"json\""
        },
        {
          "name": "withCredentials",
          "type": "boolean | null | undefined",
          "description": "Set the withCredentials flag on the request.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 235,
              "column": 6
            },
            "end": {
              "line": 238,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "timeout",
          "type": "number | null | undefined",
          "description": "Set the timeout flag on the request.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 243,
              "column": 6
            },
            "end": {
              "line": 246,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Number"
            }
          },
          "defaultValue": "0"
        },
        {
          "name": "auto",
          "type": "boolean | null | undefined",
          "description": "If true, automatically performs an Ajax request when either `url` or\n`params` changes.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 252,
              "column": 6
            },
            "end": {
              "line": 255,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "verbose",
          "type": "boolean | null | undefined",
          "description": "If true, error messages will automatically be logged to the console.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 260,
              "column": 6
            },
            "end": {
              "line": 263,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "lastRequest",
          "type": "(Object | undefined)",
          "description": "The most recent request made by this oe-ajax element.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 270,
              "column": 6
            },
            "end": {
              "line": 274,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "readOnly": true,
              "attributeType": "Object"
            }
          }
        },
        {
          "name": "lastProgress",
          "type": "(Object | undefined)",
          "description": "The `progress` property of this element's `lastRequest`.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 281,
              "column": 6
            },
            "end": {
              "line": 285,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "readOnly": true,
              "attributeType": "Object"
            }
          }
        },
        {
          "name": "loading",
          "type": "boolean | null | undefined",
          "description": "True while lastRequest is in flight.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 290,
              "column": 6
            },
            "end": {
              "line": 294,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "readOnly": true,
              "attributeType": "Boolean"
            }
          }
        },
        {
          "name": "lastResponse",
          "type": "Object",
          "description": "lastRequest's response.\n\nNote that lastResponse and lastError are set when lastRequest finishes,\nso if loading is true, then lastResponse and lastError will correspond\nto the result of the previous request.\n\nThe type of the response is determined by the value of `handleAs` at\nthe time that the request was generated.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 308,
              "column": 6
            },
            "end": {
              "line": 312,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "readOnly": true,
              "attributeType": "Object"
            }
          }
        },
        {
          "name": "lastError",
          "type": "Object",
          "description": "lastRequest's error, if any.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 319,
              "column": 6
            },
            "end": {
              "line": 323,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "readOnly": true,
              "attributeType": "Object"
            }
          }
        },
        {
          "name": "activeRequests",
          "type": "Array | null | undefined",
          "description": "An Array of all in-flight requests originating from this oe-ajax\nelement.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 329,
              "column": 6
            },
            "end": {
              "line": 336,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "readOnly": true,
              "attributeType": "Array"
            }
          },
          "defaultValue": "[]"
        },
        {
          "name": "debounceDuration",
          "type": "number | null | undefined",
          "description": "Length of time in milliseconds to debounce multiple automatically generated requests.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 341,
              "column": 6
            },
            "end": {
              "line": 345,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "attributeType": "Number"
            }
          },
          "defaultValue": "0"
        },
        {
          "name": "jsonPrefix",
          "type": "string | null | undefined",
          "description": "Prefix to be stripped from a JSON response before parsing it.\n\nIn order to prevent an attack using CSRF with Array responses\n(http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx/)\nmany backends will mitigate this by prefixing all JSON response bodies\nwith a string that would be nonsensical to a JavaScript parser.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 356,
              "column": 6
            },
            "end": {
              "line": 359,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "defaultValue": "\"\""
        },
        {
          "name": "bubbles",
          "type": "boolean | null | undefined",
          "description": "By default, oe-ajax's events do not bubble. Setting this attribute will cause its\nrequest and response events as well as its oe-ajax-request, -response,  and -error\nevents to bubble to the window object. The vanilla error event never bubbles when\nusing shadow dom even if this.bubbles is true because a scoped flag is not passed\nit (first link) and because       * the shadow dom spec did not used to allow certain events, including\nevents named error, to leak outside of shadow trees (second link).\nhttps://www.w3.org/TR/shadow-dom/#scoped-flag\nhttps://www.w3.org/TR/2015/WD-shadow-dom-20151215/#events-that-are-not-leaked-into-ancestor-trees",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 371,
              "column": 6
            },
            "end": {
              "line": 374,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "rejectWithRequest",
          "type": "boolean | null | undefined",
          "description": "Changes the [`completes`](iron-request#property-completes) promise chain\nfrom `generateRequest` to reject with an object\ncontaining the original request, as well an error message.\nIf false (default), the promise rejects with an error message only.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 382,
              "column": 6
            },
            "end": {
              "line": 385,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "_boundHandleResponse",
          "type": "Function | null | undefined",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 387,
              "column": 6
            },
            "end": {
              "line": 392,
              "column": 7
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Function"
            }
          }
        }
      ],
      "methods": [
        {
          "name": "_deepValue",
          "description": "Get the value from the 'obj' based on the 'path'.",
          "privacy": "protected",
          "sourceRange": {
            "file": "../oe-mixins/oe-common-mixin.js",
            "start": {
              "line": 37,
              "column": 4
            },
            "end": {
              "line": 43,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "obj",
              "type": "Object",
              "description": "object to navigate"
            },
            {
              "name": "path",
              "type": "string",
              "description": "path for navigation"
            }
          ],
          "return": {
            "type": "Any",
            "desc": "value present in the given path of the obj."
          },
          "inheritedFrom": "OECommonMixin"
        },
        {
          "name": "_deepSet",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "../oe-mixins/oe-common-mixin.js",
            "start": {
              "line": 45,
              "column": 4
            },
            "end": {
              "line": 62,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "obj"
            },
            {
              "name": "path"
            },
            {
              "name": "value"
            }
          ],
          "inheritedFrom": "OECommonMixin"
        },
        {
          "name": "debounce",
          "description": "Call `debounce` to collapse multiple requests for a named task into\none invocation which is made after the wait time has elapsed with\nno new request.  If no wait time is given, the callback will be called\nat microtask timing (guaranteed before paint).\n\n    debouncedClickAction(e) {\n      // will not call `processClick` more than once per 100ms\n      this.debounce('click', function() {\n       this.processClick();\n      } 100);\n    }",
          "privacy": "public",
          "sourceRange": {
            "file": "../oe-mixins/oe-common-mixin.js",
            "start": {
              "line": 88,
              "column": 4
            },
            "end": {
              "line": 92,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "jobName",
              "type": "string",
              "description": "String to identify the debounce job."
            },
            {
              "name": "callback",
              "type": "function (): void",
              "description": "Function that is called (with `this`\n  context) when the wait time elapses."
            },
            {
              "name": "wait",
              "type": "number",
              "description": "Optional wait time in milliseconds (ms) after the\n  last signal that must elapse before invoking `callback`"
            }
          ],
          "return": {
            "type": "!Object",
            "desc": "Returns a debouncer object on which exists the\nfollowing methods: `isActive()` returns true if the debouncer is\nactive; `cancel()` cancels the debouncer if it is active;\n`flush()` immediately invokes the debounced callback if the debouncer\nis active."
          },
          "inheritedFrom": "OECommonMixin"
        },
        {
          "name": "async",
          "description": "Runs a callback function asynchronously.\n\nBy default (if no waitTime is specified), async callbacks are run at\nmicrotask timing, which will occur before paint.",
          "privacy": "public",
          "sourceRange": {
            "file": "../oe-mixins/oe-common-mixin.js",
            "start": {
              "line": 106,
              "column": 4
            },
            "end": {
              "line": 109,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "callback",
              "type": "!Function",
              "description": "The callback function to run, bound to `this`."
            },
            {
              "name": "waitTime",
              "type": "number=",
              "description": "Time to wait before calling the\n  `callback`.  If unspecified or 0, the callback will be run at microtask\n  timing (before paint)."
            }
          ],
          "return": {
            "type": "number",
            "desc": "Handle that may be used to cancel the async job."
          },
          "inheritedFrom": "OECommonMixin"
        },
        {
          "name": "cancelAsync",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "file": "../oe-mixins/oe-common-mixin.js",
            "start": {
              "line": 120,
              "column": 4
            },
            "end": {
              "line": 122,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "handle"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "OECommonMixin"
        },
        {
          "name": "fire",
          "description": "Polymer fire function used to dispatch custom events",
          "privacy": "public",
          "sourceRange": {
            "file": "../oe-mixins/oe-common-mixin.js",
            "start": {
              "line": 131,
              "column": 4
            },
            "end": {
              "line": 143,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "type",
              "type": "string",
              "description": "event name"
            },
            {
              "name": "detail",
              "type": "Object",
              "description": "data to be sent in the event"
            },
            {
              "name": "options",
              "type": "Object",
              "description": "optionals options for the event {bubbles:Boolean,cancelable:Boolean,composed:Boolean,node:HTML Element}"
            }
          ],
          "return": {
            "type": "Event",
            "desc": "Custom event created based on the parameters"
          },
          "inheritedFrom": "OECommonMixin"
        },
        {
          "name": "toRequestOptions",
          "description": "Request options suitable for generating an `iron-request` instance based\non the current state of the `oe-ajax` instance's properties.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 501,
              "column": 2
            },
            "end": {
              "line": 521,
              "column": 3
            }
          },
          "metadata": {},
          "params": []
        },
        {
          "name": "generateRequest",
          "description": "Performs an AJAX request to the specified URL.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 528,
              "column": 2
            },
            "end": {
              "line": 600,
              "column": 3
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "!IronRequestElement"
          }
        },
        {
          "name": "_handleResponse",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 602,
              "column": 2
            },
            "end": {
              "line": 639,
              "column": 3
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "request"
            }
          ]
        },
        {
          "name": "_handleError",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 641,
              "column": 2
            },
            "end": {
              "line": 700,
              "column": 3
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "request"
            },
            {
              "name": "error"
            }
          ]
        },
        {
          "name": "_discardRequest",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 702,
              "column": 2
            },
            "end": {
              "line": 708,
              "column": 3
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "request"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_requestOptionsChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 710,
              "column": 2
            },
            "end": {
              "line": 720,
              "column": 3
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "__enableCertificatePinning",
          "description": "In case of certificate pinning, the request is diverted through a cordova plugin(cordova-plugin-advanced-http) to\nperform the necessary certificate verification.\n\nwindow.CERTIFICATE_PINNED - This is a flag used to control certificate pinning check.\nwindow.CERTIFICATE_PINNED = true;\n\nFollow the example below to call the plugin and pass the window.CERTIFICATE_PINNED  status\n   cordova.plugin.http.enableSSLPinning(window.CERTIFICATE_PINNED, function () {\n       console.log(\"Enabled certificate pinning.\");\n   }, function () {\n       console.log(\"Error occured while enabling certificate pinning.\");\n   });\n\nThe handling of the `body` parameter will vary based on the Content-Type",
          "privacy": "private",
          "sourceRange": {
            "start": {
              "line": 759,
              "column": 2
            },
            "end": {
              "line": 831,
              "column": 3
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "options",
              "type": "{url: string, method: (string | undefined), async: (boolean | undefined), body: (ArrayBuffer | ArrayBufferView | Blob | Document | FormData | null | string | undefined | Object), headers: (Object | undefined), handleAs: (string | undefined), jsonPrefix: (string | undefined), withCredentials: (boolean | undefined)}",
              "description": "    url The url to which the request is sent.\n    method The HTTP method to use, default is GET.\n    async By default, all requests are sent asynchronously. To send synchronous requests,\n        set to false.\n    body The content for the request body for POST method.\n    headers HTTP request headers.All keys must be lower case.\n    handleAs The response type. Default is 'text'.\n    withCredentials Whether or not to send credentials on the request. Default is false.\n  timeout: (Number|undefined)"
            }
          ],
          "return": {
            "type": "Promise"
          }
        }
      ],
      "staticMethods": [],
      "demos": [
        {
          "url": "/demo/index.html",
          "description": ""
        }
      ],
      "metadata": {},
      "sourceRange": {
        "start": {
          "line": 62,
          "column": 0
        },
        "end": {
          "line": 832,
          "column": 1
        }
      },
      "privacy": "public",
      "superclass": "HTMLElement",
      "name": "OeAjax",
      "attributes": [
        {
          "name": "url",
          "description": "The URL target of the request.",
          "sourceRange": {
            "start": {
              "line": 117,
              "column": 6
            },
            "end": {
              "line": 119,
              "column": 7
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "params",
          "description": "An object that contains query parameters to be appended to the\nspecified `url` when generating a request. If you wish to set the body\ncontent when making a POST request, you should use the `body` property\ninstead.",
          "sourceRange": {
            "start": {
              "line": 127,
              "column": 6
            },
            "end": {
              "line": 132,
              "column": 7
            }
          },
          "metadata": {},
          "type": "Object | null | undefined"
        },
        {
          "name": "method",
          "description": "The HTTP method to use such as 'GET', 'POST', 'PUT', or 'DELETE'.\nDefault is 'GET'.",
          "sourceRange": {
            "start": {
              "line": 138,
              "column": 6
            },
            "end": {
              "line": 141,
              "column": 7
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "headers",
          "description": "HTTP request headers to send.\n\nExample:\n\n    <oe-ajax\n        auto\n        url=\"http://somesite.com\"\n        headers='{\"X-Requested-With\": \"XMLHttpRequest\"}'\n        handle-as=\"json\"></oe-ajax>\n\nNote: setting a `Content-Type` header here will override the value\nspecified by the `contentType` property of this element.",
          "sourceRange": {
            "start": {
              "line": 157,
              "column": 6
            },
            "end": {
              "line": 162,
              "column": 7
            }
          },
          "metadata": {},
          "type": "Object | null | undefined"
        },
        {
          "name": "content-type",
          "description": "Content type to use when sending data. If the `contentType` property\nis set and a `Content-Type` header is specified in the `headers`\nproperty, the `headers` property value will take precedence.\n\nVaries the handling of the `body` param.",
          "sourceRange": {
            "start": {
              "line": 171,
              "column": 6
            },
            "end": {
              "line": 174,
              "column": 7
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "body",
          "description": "Body content to send with the request, typically used with \"POST\"\nrequests.\n\nIf body is a string it will be sent unmodified.\n\nIf Content-Type is set to a value listed below, then\nthe body will be encoded accordingly.\n\n   * `content-type=\"application/json\"`\n     * body is encoded like `{\"foo\":\"bar baz\",\"x\":1}`\n   * `content-type=\"application/x-www-form-urlencoded\"`\n     * body is encoded like `foo=bar+baz&x=1`\n\nOtherwise the body will be passed to the browser unmodified, and it\nwill handle any encoding (e.g. for FormData, Blob, ArrayBuffer).",
          "sourceRange": {
            "start": {
              "line": 195,
              "column": 6
            },
            "end": {
              "line": 198,
              "column": 7
            }
          },
          "metadata": {},
          "type": "Object | null | undefined"
        },
        {
          "name": "sync",
          "description": "Toggle whether XHR is synchronous or asynchronous. Don't change this\nto true unless You Know What You Are Doing™.",
          "sourceRange": {
            "start": {
              "line": 204,
              "column": 6
            },
            "end": {
              "line": 207,
              "column": 7
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "handle-as",
          "description": "Specifies what data to store in the `response` property, and\nto deliver as `event.detail.response` in `response` events.\n\nOne of:\n\n   `text`: uses `XHR.responseText`.\n\n   `xml`: uses `XHR.responseXML`.\n\n   `json`: uses `XHR.responseText` parsed as JSON.\n\n   `arraybuffer`: uses `XHR.response`.\n\n   `blob`: uses `XHR.response`.\n\n   `document`: uses `XHR.response`.",
          "sourceRange": {
            "start": {
              "line": 227,
              "column": 6
            },
            "end": {
              "line": 230,
              "column": 7
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "with-credentials",
          "description": "Set the withCredentials flag on the request.",
          "sourceRange": {
            "start": {
              "line": 235,
              "column": 6
            },
            "end": {
              "line": 238,
              "column": 7
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "timeout",
          "description": "Set the timeout flag on the request.",
          "sourceRange": {
            "start": {
              "line": 243,
              "column": 6
            },
            "end": {
              "line": 246,
              "column": 7
            }
          },
          "metadata": {},
          "type": "number | null | undefined"
        },
        {
          "name": "auto",
          "description": "If true, automatically performs an Ajax request when either `url` or\n`params` changes.",
          "sourceRange": {
            "start": {
              "line": 252,
              "column": 6
            },
            "end": {
              "line": 255,
              "column": 7
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "verbose",
          "description": "If true, error messages will automatically be logged to the console.",
          "sourceRange": {
            "start": {
              "line": 260,
              "column": 6
            },
            "end": {
              "line": 263,
              "column": 7
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "last-request",
          "description": "The most recent request made by this oe-ajax element.",
          "sourceRange": {
            "start": {
              "line": 270,
              "column": 6
            },
            "end": {
              "line": 274,
              "column": 7
            }
          },
          "metadata": {},
          "type": "(Object | undefined)"
        },
        {
          "name": "last-progress",
          "description": "The `progress` property of this element's `lastRequest`.",
          "sourceRange": {
            "start": {
              "line": 281,
              "column": 6
            },
            "end": {
              "line": 285,
              "column": 7
            }
          },
          "metadata": {},
          "type": "(Object | undefined)"
        },
        {
          "name": "loading",
          "description": "True while lastRequest is in flight.",
          "sourceRange": {
            "start": {
              "line": 290,
              "column": 6
            },
            "end": {
              "line": 294,
              "column": 7
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "last-response",
          "description": "lastRequest's response.\n\nNote that lastResponse and lastError are set when lastRequest finishes,\nso if loading is true, then lastResponse and lastError will correspond\nto the result of the previous request.\n\nThe type of the response is determined by the value of `handleAs` at\nthe time that the request was generated.",
          "sourceRange": {
            "start": {
              "line": 308,
              "column": 6
            },
            "end": {
              "line": 312,
              "column": 7
            }
          },
          "metadata": {},
          "type": "Object"
        },
        {
          "name": "last-error",
          "description": "lastRequest's error, if any.",
          "sourceRange": {
            "start": {
              "line": 319,
              "column": 6
            },
            "end": {
              "line": 323,
              "column": 7
            }
          },
          "metadata": {},
          "type": "Object"
        },
        {
          "name": "active-requests",
          "description": "An Array of all in-flight requests originating from this oe-ajax\nelement.",
          "sourceRange": {
            "start": {
              "line": 329,
              "column": 6
            },
            "end": {
              "line": 336,
              "column": 7
            }
          },
          "metadata": {},
          "type": "Array | null | undefined"
        },
        {
          "name": "debounce-duration",
          "description": "Length of time in milliseconds to debounce multiple automatically generated requests.",
          "sourceRange": {
            "start": {
              "line": 341,
              "column": 6
            },
            "end": {
              "line": 345,
              "column": 7
            }
          },
          "metadata": {},
          "type": "number | null | undefined"
        },
        {
          "name": "json-prefix",
          "description": "Prefix to be stripped from a JSON response before parsing it.\n\nIn order to prevent an attack using CSRF with Array responses\n(http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx/)\nmany backends will mitigate this by prefixing all JSON response bodies\nwith a string that would be nonsensical to a JavaScript parser.",
          "sourceRange": {
            "start": {
              "line": 356,
              "column": 6
            },
            "end": {
              "line": 359,
              "column": 7
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "bubbles",
          "description": "By default, oe-ajax's events do not bubble. Setting this attribute will cause its\nrequest and response events as well as its oe-ajax-request, -response,  and -error\nevents to bubble to the window object. The vanilla error event never bubbles when\nusing shadow dom even if this.bubbles is true because a scoped flag is not passed\nit (first link) and because       * the shadow dom spec did not used to allow certain events, including\nevents named error, to leak outside of shadow trees (second link).\nhttps://www.w3.org/TR/shadow-dom/#scoped-flag\nhttps://www.w3.org/TR/2015/WD-shadow-dom-20151215/#events-that-are-not-leaked-into-ancestor-trees",
          "sourceRange": {
            "start": {
              "line": 371,
              "column": 6
            },
            "end": {
              "line": 374,
              "column": 7
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "reject-with-request",
          "description": "Changes the [`completes`](iron-request#property-completes) promise chain\nfrom `generateRequest` to reject with an object\ncontaining the original request, as well an error message.\nIf false (default), the promise rejects with an error message only.",
          "sourceRange": {
            "start": {
              "line": 382,
              "column": 6
            },
            "end": {
              "line": 385,
              "column": 7
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        }
      ],
      "events": [
        {
          "type": "CustomEvent",
          "name": "error",
          "description": "Fired when an error is received.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "oe-ajax-error",
          "description": "Fired when an error is received.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "oe-ajax-request",
          "description": "Fired when a request is sent.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "oe-ajax-response",
          "description": "Fired when a response is received.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "request",
          "description": "Fired when a request is sent.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "response",
          "description": "Fired when a response is received.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "last-request-changed",
          "description": "Fired when the `lastRequest` property changes.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "last-progress-changed",
          "description": "Fired when the `lastProgress` property changes.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "loading-changed",
          "description": "Fired when the `loading` property changes.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "last-response-changed",
          "description": "Fired when the `lastResponse` property changes.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "last-error-changed",
          "description": "Fired when the `lastError` property changes.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "active-requests-changed",
          "description": "Fired when the `activeRequests` property changes.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "debounce-duration-changed",
          "description": "Fired when the `debounceDuration` property changes.",
          "metadata": {}
        }
      ],
      "styling": {
        "cssVariables": [],
        "selectors": []
      },
      "slots": [],
      "tagname": "oe-ajax",
      "mixins": [
        "OECommonMixin"
      ]
    }
  ]
}
