{
  "schema_version": "1.0.0",
  "elements": [
    {
      "description": "`overlay-element`\nA helper-element, that creates an overlay using `iron-overlay-behavior` of Polymer.",
      "summary": "",
      "path": "overlay-element.js",
      "properties": [],
      "methods": [
        {
          "name": "_fitIntoChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 32,
              "column": 2
            },
            "end": {
              "line": 36,
              "column": 3
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "fitInto"
            },
            {
              "name": "positionTarget"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_attachDom",
          "description": "attach dom with `delegatesFocus: true` so that the element is also focussed while its's children are too, and to autofocus to first tabable",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 41,
              "column": 2
            },
            "end": {
              "line": 50,
              "column": 3
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "dom"
            }
          ]
        }
      ],
      "staticMethods": [],
      "demos": [],
      "metadata": {},
      "sourceRange": {
        "start": {
          "line": 14,
          "column": 7
        },
        "end": {
          "line": 51,
          "column": 1
        }
      },
      "privacy": "public",
      "superclass": "HTMLElement",
      "name": "OverlayElement",
      "attributes": [],
      "events": [],
      "styling": {
        "cssVariables": [],
        "selectors": []
      },
      "slots": [],
      "tagname": "overlay-element",
      "mixins": [
        "Polymer.IronOverlayBehavior"
      ]
    }
  ],
  "mixins": [
    {
      "description": "mixin to extend an element, to be compatible with iron-form",
      "summary": "",
      "path": "form-element-mixin.js",
      "properties": [
        {
          "name": "name",
          "type": "string | null | undefined",
          "description": "name of the input",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 46,
              "column": 8
            },
            "end": {
              "line": 48,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          }
        },
        {
          "name": "title",
          "type": "string | null | undefined",
          "description": "description for the element and can be used as a hint for invalid values",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 53,
              "column": 8
            },
            "end": {
              "line": 56,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          }
        },
        {
          "name": "propertyForValue",
          "type": "string | null | undefined",
          "description": "defines the property that should be used for the value",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 61,
              "column": 8
            },
            "end": {
              "line": 64,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_createReflectPropertyToValueObserver\"",
              "attributeType": "String"
            }
          }
        },
        {
          "name": "value",
          "type": "Object | null | undefined",
          "description": "value of the input",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 69,
              "column": 8
            },
            "end": {
              "line": 73,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "observer": "\"_valueChanged\"",
              "attributeType": "Object"
            }
          }
        },
        {
          "name": "default",
          "type": "Object | null | undefined",
          "description": "default value of the value, when it does not validate",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 78,
              "column": 8
            },
            "end": {
              "line": 81,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_defaultChanged\"",
              "attributeType": "Object"
            }
          }
        },
        {
          "name": "disabled",
          "type": "boolean | null | undefined",
          "description": "disables the input",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 86,
              "column": 8
            },
            "end": {
              "line": 90,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "attributeType": "Boolean"
            }
          }
        },
        {
          "name": "invalid",
          "type": "boolean | null | undefined",
          "description": "required attribute",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 95,
              "column": 8
            },
            "end": {
              "line": 100,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "readOnly": true,
              "attributeType": "Boolean"
            }
          }
        },
        {
          "name": "required",
          "type": "boolean | null | undefined",
          "description": "required attribute",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 105,
              "column": 8
            },
            "end": {
              "line": 110,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "valueIsSet",
          "type": "boolean | null | undefined",
          "description": "is true when the value is set",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 115,
              "column": 8
            },
            "end": {
              "line": 119,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "readOnly": true,
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "_isSet",
          "type": "Function | null | undefined",
          "description": "defines whether the value is set",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 124,
              "column": 8
            },
            "end": {
              "line": 126,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Function"
            }
          }
        },
        {
          "name": "_validate",
          "type": "Function | null | undefined",
          "description": "validates the value (when required)",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 131,
              "column": 8
            },
            "end": {
              "line": 133,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Function"
            }
          }
        }
      ],
      "methods": [
        {
          "name": "_attachDom",
          "description": "attach dom with `delegatesFocus: true` so that the element is also focussed while its's children are too, and to autofocus to first tabable",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 30,
              "column": 4
            },
            "end": {
              "line": 39,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "dom"
            }
          ]
        },
        {
          "name": "connectedCallback",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 144,
              "column": 4
            },
            "end": {
              "line": 147,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_defaultIsSet",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 155,
              "column": 4
            },
            "end": {
              "line": 157,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value",
              "type": "Object",
              "description": "value to test"
            }
          ],
          "return": {
            "type": "Boolean",
            "desc": "true, if the value is set"
          }
        },
        {
          "name": "_defaultValidate",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 167,
              "column": 4
            },
            "end": {
              "line": 169,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "isSet",
              "type": "Function",
              "description": "The function that defines if the value is set"
            },
            {
              "name": "value",
              "type": "Object",
              "description": "value to validate"
            },
            {
              "name": "required",
              "type": "Boolean",
              "description": "if true, the value is required"
            }
          ],
          "return": {
            "type": "Boolean",
            "desc": "true, if the value is valid"
          }
        },
        {
          "name": "_computeInvalid",
          "description": "defines whether the value is set",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 178,
              "column": 4
            },
            "end": {
              "line": 180,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "validate"
            },
            {
              "name": "isSet"
            },
            {
              "name": "value"
            },
            {
              "name": "required"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_computeValueIsSet",
          "description": "defines whether the value is set",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 187,
              "column": 4
            },
            "end": {
              "line": 189,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "isSet"
            },
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_valueChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 191,
              "column": 4
            },
            "end": {
              "line": 196,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_defaultChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 198,
              "column": 4
            },
            "end": {
              "line": 206,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "def"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_createReflectPropertyToValueObserver",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 208,
              "column": 4
            },
            "end": {
              "line": 218,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "prop"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_reflectPropertyToValue",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 220,
              "column": 4
            },
            "end": {
              "line": 222,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_reflectValueToProperty",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 224,
              "column": 4
            },
            "end": {
              "line": 226,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "validate",
          "description": "validates the input for iron-form",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 231,
              "column": 4
            },
            "end": {
              "line": 233,
              "column": 5
            }
          },
          "metadata": {},
          "params": []
        },
        {
          "name": "reset",
          "description": "reset the value",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 238,
              "column": 4
            },
            "end": {
              "line": 244,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          }
        }
      ],
      "staticMethods": [],
      "demos": [],
      "metadata": {},
      "sourceRange": {
        "start": {
          "line": 16,
          "column": 7
        },
        "end": {
          "line": 246,
          "column": 3
        }
      },
      "privacy": "public",
      "name": "FormElementMixin",
      "attributes": [
        {
          "name": "name",
          "description": "name of the input",
          "sourceRange": {
            "start": {
              "line": 46,
              "column": 8
            },
            "end": {
              "line": 48,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "title",
          "description": "description for the element and can be used as a hint for invalid values",
          "sourceRange": {
            "start": {
              "line": 53,
              "column": 8
            },
            "end": {
              "line": 56,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "property-for-value",
          "description": "defines the property that should be used for the value",
          "sourceRange": {
            "start": {
              "line": 61,
              "column": 8
            },
            "end": {
              "line": 64,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "value",
          "description": "value of the input",
          "sourceRange": {
            "start": {
              "line": 69,
              "column": 8
            },
            "end": {
              "line": 73,
              "column": 9
            }
          },
          "metadata": {},
          "type": "Object | null | undefined"
        },
        {
          "name": "default",
          "description": "default value of the value, when it does not validate",
          "sourceRange": {
            "start": {
              "line": 78,
              "column": 8
            },
            "end": {
              "line": 81,
              "column": 9
            }
          },
          "metadata": {},
          "type": "Object | null | undefined"
        },
        {
          "name": "disabled",
          "description": "disables the input",
          "sourceRange": {
            "start": {
              "line": 86,
              "column": 8
            },
            "end": {
              "line": 90,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "invalid",
          "description": "required attribute",
          "sourceRange": {
            "start": {
              "line": 95,
              "column": 8
            },
            "end": {
              "line": 100,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "required",
          "description": "required attribute",
          "sourceRange": {
            "start": {
              "line": 105,
              "column": 8
            },
            "end": {
              "line": 110,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "value-is-set",
          "description": "is true when the value is set",
          "sourceRange": {
            "start": {
              "line": 115,
              "column": 8
            },
            "end": {
              "line": 119,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        }
      ],
      "events": [],
      "styling": {
        "cssVariables": [],
        "selectors": []
      },
      "slots": []
    },
    {
      "description": "Mixin to extend an element that includes a native input to be wrapped to enable content-based resizing and validation. The pattern is using `input-shared-style` to unify the style between different inputs and should resize according to its properties and input.",
      "summary": "",
      "path": "input-pattern.js",
      "properties": [
        {
          "name": "name",
          "type": "string | null | undefined",
          "description": "name of the input",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 46,
              "column": 8
            },
            "end": {
              "line": 48,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "title",
          "type": "string | null | undefined",
          "description": "description for the element and can be used as a hint for invalid values",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 53,
              "column": 8
            },
            "end": {
              "line": 56,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "propertyForValue",
          "type": "string | null | undefined",
          "description": "defines the property that should be used for the value",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 61,
              "column": 8
            },
            "end": {
              "line": 64,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_createReflectPropertyToValueObserver\"",
              "attributeType": "String"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "value",
          "type": "Object | null | undefined",
          "description": "value of the input",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 69,
              "column": 8
            },
            "end": {
              "line": 73,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "observer": "\"_valueChanged\"",
              "attributeType": "Object"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "default",
          "type": "Object | null | undefined",
          "description": "default value of the value, when it does not validate",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 78,
              "column": 8
            },
            "end": {
              "line": 81,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_defaultChanged\"",
              "attributeType": "Object"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "disabled",
          "type": "boolean | null | undefined",
          "description": "disables the input",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 86,
              "column": 8
            },
            "end": {
              "line": 90,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "attributeType": "Boolean"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "invalid",
          "type": "boolean | null | undefined",
          "description": "required attribute",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 95,
              "column": 8
            },
            "end": {
              "line": 100,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "readOnly": true,
              "attributeType": "Boolean"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "required",
          "type": "boolean | null | undefined",
          "description": "required attribute",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 105,
              "column": 8
            },
            "end": {
              "line": 110,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "valueIsSet",
          "type": "boolean | null | undefined",
          "description": "is true when the value is set",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 115,
              "column": 8
            },
            "end": {
              "line": 119,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "readOnly": true,
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_isSet",
          "type": "Function | null | undefined",
          "description": "defines whether the value is set",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 124,
              "column": 8
            },
            "end": {
              "line": 126,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Function"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_validate",
          "type": "Function | null | undefined",
          "description": "validates the value (when required)",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 131,
              "column": 8
            },
            "end": {
              "line": 133,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Function"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "type",
          "type": "string | null | undefined",
          "description": "the type of the native input",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 122,
              "column": 8
            },
            "end": {
              "line": 125,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "defaultValue": "\"text\""
        },
        {
          "name": "input",
          "type": "string | null | undefined",
          "description": "the immediate input string",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 130,
              "column": 8
            },
            "end": {
              "line": 134,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "observer": "\"_inputChanged\"",
              "attributeType": "String"
            }
          }
        },
        {
          "name": "validationMessage",
          "type": "string | null | undefined",
          "description": "message to set on the input to show if the input does not validate",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 139,
              "column": 8
            },
            "end": {
              "line": 142,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"setCustomValidity\"",
              "attributeType": "String"
            }
          }
        },
        {
          "name": "placeholder",
          "type": "string | null | undefined",
          "description": "the placeholder string",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 147,
              "column": 8
            },
            "end": {
              "line": 149,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          }
        },
        {
          "name": "minlength",
          "type": "number | null | undefined",
          "description": "the minlength of the input",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 154,
              "column": 8
            },
            "end": {
              "line": 156,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Number"
            }
          }
        },
        {
          "name": "autoResize",
          "type": "boolean | null | undefined",
          "description": "if true, the width will change when typing",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 161,
              "column": 8
            },
            "end": {
              "line": 164,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_debouncedResizeWidth\"",
              "attributeType": "Boolean"
            }
          }
        },
        {
          "name": "_minlengthString",
          "type": "string | null | undefined",
          "description": "string that is used to compute the minimal width of the input",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 169,
              "column": 8
            },
            "end": {
              "line": 171,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          }
        }
      ],
      "methods": [
        {
          "name": "_attachDom",
          "description": "attach dom with `delegatesFocus: true` so that the element is also focussed while its's children are too, and to autofocus to first tabable",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 30,
              "column": 4
            },
            "end": {
              "line": 39,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "dom"
            }
          ],
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "connectedCallback",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 182,
              "column": 4
            },
            "end": {
              "line": 188,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_defaultIsSet",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 155,
              "column": 4
            },
            "end": {
              "line": 157,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value",
              "type": "Object",
              "description": "value to test"
            }
          ],
          "return": {
            "type": "Boolean",
            "desc": "true, if the value is set"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_defaultValidate",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 167,
              "column": 4
            },
            "end": {
              "line": 169,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "isSet",
              "type": "Function",
              "description": "The function that defines if the value is set"
            },
            {
              "name": "value",
              "type": "Object",
              "description": "value to validate"
            },
            {
              "name": "required",
              "type": "Boolean",
              "description": "if true, the value is required"
            }
          ],
          "return": {
            "type": "Boolean",
            "desc": "true, if the value is valid"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_computeInvalid",
          "description": "defines whether the value is set",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 178,
              "column": 4
            },
            "end": {
              "line": 180,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "validate"
            },
            {
              "name": "isSet"
            },
            {
              "name": "value"
            },
            {
              "name": "required"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_computeValueIsSet",
          "description": "defines whether the value is set",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 187,
              "column": 4
            },
            "end": {
              "line": 189,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "isSet"
            },
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_valueChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 255,
              "column": 4
            },
            "end": {
              "line": 259,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_defaultChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 198,
              "column": 4
            },
            "end": {
              "line": 206,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "def"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_createReflectPropertyToValueObserver",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 208,
              "column": 4
            },
            "end": {
              "line": 218,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "prop"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_reflectPropertyToValue",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 220,
              "column": 4
            },
            "end": {
              "line": 222,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_reflectValueToProperty",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 224,
              "column": 4
            },
            "end": {
              "line": 226,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "validate",
          "description": "validates the input for iron-form",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 358,
              "column": 4
            },
            "end": {
              "line": 361,
              "column": 5
            }
          },
          "metadata": {},
          "params": []
        },
        {
          "name": "reset",
          "description": "reset the value",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 238,
              "column": 4
            },
            "end": {
              "line": 244,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "disconnectedCallback",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 190,
              "column": 4
            },
            "end": {
              "line": 193,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_delayedAddEventListeners",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 195,
              "column": 4
            },
            "end": {
              "line": 210,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_addEventListeners",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 212,
              "column": 4
            },
            "end": {
              "line": 219,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_removeEventListeners",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 221,
              "column": 4
            },
            "end": {
              "line": 228,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_checkKeycode",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 230,
              "column": 4
            },
            "end": {
              "line": 242,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_inputChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 244,
              "column": 4
            },
            "end": {
              "line": 253,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "input"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_confirmInput",
          "description": "update manually the value with the native input",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 264,
              "column": 4
            },
            "end": {
              "line": 274,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_updateInput",
          "description": "update manually the native input with the given value",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 279,
              "column": 4
            },
            "end": {
              "line": 287,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_computeMinlengthString",
          "description": "compute the minimal string the input is sized for",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 292,
              "column": 4
            },
            "end": {
              "line": 304,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "resize",
          "description": "called automatically when static `_minlengthString` or visibilityState changes, but can be called manually to resize the minwidth of the input, when the input is for example initially hidden",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 309,
              "column": 4
            },
            "end": {
              "line": 324,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_debouncedResizeWidth",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 326,
              "column": 4
            },
            "end": {
              "line": 332,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_resizeWidth",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 334,
              "column": 4
            },
            "end": {
              "line": 336,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "focus",
          "description": "focus the input element",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 341,
              "column": 4
            },
            "end": {
              "line": 345,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "blur",
          "description": "removes focus from input",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 350,
              "column": 4
            },
            "end": {
              "line": 353,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "select",
          "description": "selects the input text in the element, and focuses it so the user can subsequently replace the whole entry",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 366,
              "column": 4
            },
            "end": {
              "line": 368,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "click",
          "description": "simulates a click on the element",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 373,
              "column": 4
            },
            "end": {
              "line": 375,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "setCustomValidity",
          "description": "sets on the native input a validity message",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 381,
              "column": 4
            },
            "end": {
              "line": 383,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "msg",
              "type": "String",
              "description": "the message to set"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "reportValidity",
          "description": "reports the validity state of the native input",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 389,
              "column": 4
            },
            "end": {
              "line": 391,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "Boolean",
            "desc": "validity state"
          }
        }
      ],
      "staticMethods": [],
      "demos": [],
      "metadata": {},
      "sourceRange": {
        "start": {
          "line": 46,
          "column": 7
        },
        "end": {
          "line": 393,
          "column": 3
        }
      },
      "privacy": "public",
      "name": "InputPattern",
      "attributes": [
        {
          "name": "name",
          "description": "name of the input",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 46,
              "column": 8
            },
            "end": {
              "line": 48,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "title",
          "description": "description for the element and can be used as a hint for invalid values",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 53,
              "column": 8
            },
            "end": {
              "line": 56,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "property-for-value",
          "description": "defines the property that should be used for the value",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 61,
              "column": 8
            },
            "end": {
              "line": 64,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "value",
          "description": "value of the input",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 69,
              "column": 8
            },
            "end": {
              "line": 73,
              "column": 9
            }
          },
          "metadata": {},
          "type": "Object | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "default",
          "description": "default value of the value, when it does not validate",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 78,
              "column": 8
            },
            "end": {
              "line": 81,
              "column": 9
            }
          },
          "metadata": {},
          "type": "Object | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "disabled",
          "description": "disables the input",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 86,
              "column": 8
            },
            "end": {
              "line": 90,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "invalid",
          "description": "required attribute",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 95,
              "column": 8
            },
            "end": {
              "line": 100,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "required",
          "description": "required attribute",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 105,
              "column": 8
            },
            "end": {
              "line": 110,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "value-is-set",
          "description": "is true when the value is set",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 115,
              "column": 8
            },
            "end": {
              "line": 119,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "type",
          "description": "the type of the native input",
          "sourceRange": {
            "start": {
              "line": 122,
              "column": 8
            },
            "end": {
              "line": 125,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "input",
          "description": "the immediate input string",
          "sourceRange": {
            "start": {
              "line": 130,
              "column": 8
            },
            "end": {
              "line": 134,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "validation-message",
          "description": "message to set on the input to show if the input does not validate",
          "sourceRange": {
            "start": {
              "line": 139,
              "column": 8
            },
            "end": {
              "line": 142,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "placeholder",
          "description": "the placeholder string",
          "sourceRange": {
            "start": {
              "line": 147,
              "column": 8
            },
            "end": {
              "line": 149,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "minlength",
          "description": "the minlength of the input",
          "sourceRange": {
            "start": {
              "line": 154,
              "column": 8
            },
            "end": {
              "line": 156,
              "column": 9
            }
          },
          "metadata": {},
          "type": "number | null | undefined"
        },
        {
          "name": "auto-resize",
          "description": "if true, the width will change when typing",
          "sourceRange": {
            "start": {
              "line": 161,
              "column": 8
            },
            "end": {
              "line": 164,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        }
      ],
      "events": [],
      "styling": {
        "cssVariables": [],
        "selectors": []
      },
      "slots": [],
      "mixins": [
        "FormElementMixin"
      ]
    },
    {
      "description": "mixin to extend an element with a test for an expected input type and implement a polyfill, when wanted or needed",
      "summary": "",
      "path": "input-picker-pattern.js",
      "properties": [
        {
          "name": "name",
          "type": "string | null | undefined",
          "description": "name of the input",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 46,
              "column": 8
            },
            "end": {
              "line": 48,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "title",
          "type": "string | null | undefined",
          "description": "description for the element and can be used as a hint for invalid values",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 53,
              "column": 8
            },
            "end": {
              "line": 56,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "propertyForValue",
          "type": "string | null | undefined",
          "description": "defines the property that should be used for the value",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 61,
              "column": 8
            },
            "end": {
              "line": 64,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_createReflectPropertyToValueObserver\"",
              "attributeType": "String"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "value",
          "type": "Object | null | undefined",
          "description": "value of the input",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 69,
              "column": 8
            },
            "end": {
              "line": 73,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "observer": "\"_valueChanged\"",
              "attributeType": "Object"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "default",
          "type": "Object | null | undefined",
          "description": "default value of the value, when it does not validate",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 78,
              "column": 8
            },
            "end": {
              "line": 81,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_defaultChanged\"",
              "attributeType": "Object"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "disabled",
          "type": "boolean | null | undefined",
          "description": "disables the input",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 86,
              "column": 8
            },
            "end": {
              "line": 90,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "attributeType": "Boolean"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "invalid",
          "type": "boolean | null | undefined",
          "description": "required attribute",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 95,
              "column": 8
            },
            "end": {
              "line": 100,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "readOnly": true,
              "attributeType": "Boolean"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "required",
          "type": "boolean | null | undefined",
          "description": "required attribute",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 105,
              "column": 8
            },
            "end": {
              "line": 110,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "valueIsSet",
          "type": "boolean | null | undefined",
          "description": "is true when the value is set",
          "privacy": "public",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 115,
              "column": 8
            },
            "end": {
              "line": 119,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "readOnly": true,
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_isSet",
          "type": "Function | null | undefined",
          "description": "defines whether the value is set",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 124,
              "column": 8
            },
            "end": {
              "line": 126,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Function"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_validate",
          "type": "Function | null | undefined",
          "description": "validates the value (when required)",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 131,
              "column": 8
            },
            "end": {
              "line": 133,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Function"
            }
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "native",
          "type": "boolean | null | undefined",
          "description": "Set to `true` to use the native input, if it available",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 159,
              "column": 8
            },
            "end": {
              "line": 162,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "nativeOnMobile",
          "type": "boolean | null | undefined",
          "description": "Set to `true` to use the native input automatically on mobile devices, if it available",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 167,
              "column": 8
            },
            "end": {
              "line": 170,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_nativeOnMobileChanged\"",
              "attributeType": "Boolean"
            }
          }
        },
        {
          "name": "mobileUserAgentTestString",
          "type": "string | null | undefined",
          "description": "When `nativeOnMobile` is set to `true` this string is used to test the userAgent for a mobile device",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 175,
              "column": 8
            },
            "end": {
              "line": 179,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_nativeOnMobileChanged\"",
              "attributeType": "String"
            }
          },
          "defaultValue": "\"mM]obi|[tT]ablet|[aA]ndroid\""
        },
        {
          "name": "opened",
          "type": "boolean | null | undefined",
          "description": "if `true` the picker is opened",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 184,
              "column": 8
            },
            "end": {
              "line": 189,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "horizontalAlign",
          "type": "string | null | undefined",
          "description": "The orientation against which to align the element horizontally\nrelative to the related input element. Possible values are \"left\", \"right\", \"center\", \"auto\". (comparable to `iron-fit-behavior` and its `no-overlap`-attribute)",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 195,
              "column": 8
            },
            "end": {
              "line": 199,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "defaultValue": "\"auto\""
        },
        {
          "name": "verticalAlign",
          "type": "string | null | undefined",
          "description": "The orientation against which to align the element vertically\nrelative to the related input element. Possible values are \"top\", \"bottom\", \"middle\", \"auto\". (comparable to `iron-fit-behavior` and its `no-overlap`-attribute)",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 205,
              "column": 8
            },
            "end": {
              "line": 209,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "defaultValue": "\"auto\""
        },
        {
          "name": "autoConfirm",
          "type": "boolean | null | undefined",
          "description": "Set to `true` to make the input auto-confirming",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 214,
              "column": 8
            },
            "end": {
              "line": 217,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_autoConfirmChanged\"",
              "attributeType": "Boolean"
            }
          }
        },
        {
          "name": "noCancelOnEscKey",
          "type": "boolean | null | undefined",
          "description": "Set to `true` to disable canceling the overlay with the ESC key.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 222,
              "column": 8
            },
            "end": {
              "line": 225,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "noCancelOnOutsideClick",
          "type": "boolean | null | undefined",
          "description": "Set to `true` to disable canceling the dropdown by clicking outside the picker.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 230,
              "column": 8
            },
            "end": {
              "line": 233,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "noCloseOnPickerOpened",
          "type": "boolean | null | undefined",
          "description": "Set to `true` to disable closing the dropdown when opening another picker.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 238,
              "column": 8
            },
            "end": {
              "line": 241,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "noTip",
          "type": "boolean | null | undefined",
          "description": "Set to `true` to disable the tip of the picker",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 246,
              "column": 8
            },
            "end": {
              "line": 249,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          }
        },
        {
          "name": "confirmedValue",
          "type": "Object | null | undefined",
          "description": "The confirmed value. When `auto-confirm` is not set, the value will only change, when you confirm.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 254,
              "column": 8
            },
            "end": {
              "line": 257,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "notify": true,
              "attributeType": "Object"
            }
          }
        }
      ],
      "methods": [
        {
          "name": "_attachDom",
          "description": "attach dom with `delegatesFocus: true` so that the element is also focussed while its's children are too, and to autofocus to first tabable",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 30,
              "column": 4
            },
            "end": {
              "line": 39,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "dom"
            }
          ],
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "connectedCallback",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 278,
              "column": 4
            },
            "end": {
              "line": 285,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_defaultIsSet",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 155,
              "column": 4
            },
            "end": {
              "line": 157,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value",
              "type": "Object",
              "description": "value to test"
            }
          ],
          "return": {
            "type": "Boolean",
            "desc": "true, if the value is set"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_defaultValidate",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 167,
              "column": 4
            },
            "end": {
              "line": 169,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "isSet",
              "type": "Function",
              "description": "The function that defines if the value is set"
            },
            {
              "name": "value",
              "type": "Object",
              "description": "value to validate"
            },
            {
              "name": "required",
              "type": "Boolean",
              "description": "if true, the value is required"
            }
          ],
          "return": {
            "type": "Boolean",
            "desc": "true, if the value is valid"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_computeInvalid",
          "description": "defines whether the value is set",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 178,
              "column": 4
            },
            "end": {
              "line": 180,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "validate"
            },
            {
              "name": "isSet"
            },
            {
              "name": "value"
            },
            {
              "name": "required"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_computeValueIsSet",
          "description": "defines whether the value is set",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 187,
              "column": 4
            },
            "end": {
              "line": 189,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "isSet"
            },
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_valueChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 474,
              "column": 4
            },
            "end": {
              "line": 479,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_defaultChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 514,
              "column": 4
            },
            "end": {
              "line": 519,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "def"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_createReflectPropertyToValueObserver",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 208,
              "column": 4
            },
            "end": {
              "line": 218,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "prop"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_reflectPropertyToValue",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 220,
              "column": 4
            },
            "end": {
              "line": 222,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "_reflectValueToProperty",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 224,
              "column": 4
            },
            "end": {
              "line": 226,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value"
            }
          ],
          "return": {
            "type": "void"
          },
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "validate",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 417,
              "column": 4
            },
            "end": {
              "line": 424,
              "column": 5
            }
          },
          "metadata": {},
          "params": []
        },
        {
          "name": "reset",
          "description": "reset confirmedValue and value",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 493,
              "column": 4
            },
            "end": {
              "line": 498,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "value",
              "type": "Number",
              "description": "value to set"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "disconnectedCallback",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 287,
              "column": 4
            },
            "end": {
              "line": 291,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_computeShouldNative",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 293,
              "column": 4
            },
            "end": {
              "line": 295,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "native"
            }
          ]
        },
        {
          "name": "_addPickerTransitionEndListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 297,
              "column": 4
            },
            "end": {
              "line": 304,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_removePickerTransitionEndListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 306,
              "column": 4
            },
            "end": {
              "line": 308,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_onPickerTransitionEnd",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 310,
              "column": 4
            },
            "end": {
              "line": 319,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_addCancelOnClickListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 321,
              "column": 4
            },
            "end": {
              "line": 326,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_removeCancelOnClickListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 328,
              "column": 4
            },
            "end": {
              "line": 331,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_addCloseOnPickerOpenedListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 333,
              "column": 4
            },
            "end": {
              "line": 335,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_removeCloseOnPickerOpenedListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 337,
              "column": 4
            },
            "end": {
              "line": 339,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_stopPropagation",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 341,
              "column": 4
            },
            "end": {
              "line": 344,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_addKeyListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 346,
              "column": 4
            },
            "end": {
              "line": 348,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_removeKeyListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 350,
              "column": 4
            },
            "end": {
              "line": 352,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_nativeOnMobileChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 354,
              "column": 4
            },
            "end": {
              "line": 367,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_checkKeycode",
          "description": "key press event handler",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 373,
              "column": 4
            },
            "end": {
              "line": 389,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e",
              "type": "[type]",
              "description": "Event"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_openedChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 391,
              "column": 4
            },
            "end": {
              "line": 415,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "opened"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "open",
          "description": "open the picker",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 429,
              "column": 4
            },
            "end": {
              "line": 432,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "close",
          "description": "close the picker",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 437,
              "column": 4
            },
            "end": {
              "line": 439,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "toggle",
          "description": "toggle the picker",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 444,
              "column": 4
            },
            "end": {
              "line": 446,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "confirm",
          "description": "confirms the input",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 451,
              "column": 4
            },
            "end": {
              "line": 457,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "cancel",
          "description": "cancels the input",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 463,
              "column": 4
            },
            "end": {
              "line": 472,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_confirmedValueChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 481,
              "column": 4
            },
            "end": {
              "line": 487,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "confirmedValue"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_setConfirmedValue",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 500,
              "column": 4
            },
            "end": {
              "line": 502,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_resetValue",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 504,
              "column": 4
            },
            "end": {
              "line": 506,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_autoConfirmChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 508,
              "column": 4
            },
            "end": {
              "line": 512,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "autoConfirm"
            }
          ],
          "return": {
            "type": "void"
          }
        }
      ],
      "staticMethods": [],
      "demos": [],
      "metadata": {},
      "sourceRange": {
        "start": {
          "line": 17,
          "column": 7
        },
        "end": {
          "line": 521,
          "column": 3
        }
      },
      "privacy": "public",
      "name": "InputPickerPattern",
      "attributes": [
        {
          "name": "name",
          "description": "name of the input",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 46,
              "column": 8
            },
            "end": {
              "line": 48,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "title",
          "description": "description for the element and can be used as a hint for invalid values",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 53,
              "column": 8
            },
            "end": {
              "line": 56,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "property-for-value",
          "description": "defines the property that should be used for the value",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 61,
              "column": 8
            },
            "end": {
              "line": 64,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "value",
          "description": "value of the input",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 69,
              "column": 8
            },
            "end": {
              "line": 73,
              "column": 9
            }
          },
          "metadata": {},
          "type": "Object | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "default",
          "description": "default value of the value, when it does not validate",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 78,
              "column": 8
            },
            "end": {
              "line": 81,
              "column": 9
            }
          },
          "metadata": {},
          "type": "Object | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "disabled",
          "description": "disables the input",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 86,
              "column": 8
            },
            "end": {
              "line": 90,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "invalid",
          "description": "required attribute",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 95,
              "column": 8
            },
            "end": {
              "line": 100,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "required",
          "description": "required attribute",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 105,
              "column": 8
            },
            "end": {
              "line": 110,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "value-is-set",
          "description": "is true when the value is set",
          "sourceRange": {
            "file": "form-element-mixin.js",
            "start": {
              "line": 115,
              "column": 8
            },
            "end": {
              "line": 119,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined",
          "inheritedFrom": "FormElementMixin"
        },
        {
          "name": "native",
          "description": "Set to `true` to use the native input, if it available",
          "sourceRange": {
            "start": {
              "line": 159,
              "column": 8
            },
            "end": {
              "line": 162,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "native-on-mobile",
          "description": "Set to `true` to use the native input automatically on mobile devices, if it available",
          "sourceRange": {
            "start": {
              "line": 167,
              "column": 8
            },
            "end": {
              "line": 170,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "mobile-user-agent-test-string",
          "description": "When `nativeOnMobile` is set to `true` this string is used to test the userAgent for a mobile device",
          "sourceRange": {
            "start": {
              "line": 175,
              "column": 8
            },
            "end": {
              "line": 179,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "opened",
          "description": "if `true` the picker is opened",
          "sourceRange": {
            "start": {
              "line": 184,
              "column": 8
            },
            "end": {
              "line": 189,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "horizontal-align",
          "description": "The orientation against which to align the element horizontally\nrelative to the related input element. Possible values are \"left\", \"right\", \"center\", \"auto\". (comparable to `iron-fit-behavior` and its `no-overlap`-attribute)",
          "sourceRange": {
            "start": {
              "line": 195,
              "column": 8
            },
            "end": {
              "line": 199,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "vertical-align",
          "description": "The orientation against which to align the element vertically\nrelative to the related input element. Possible values are \"top\", \"bottom\", \"middle\", \"auto\". (comparable to `iron-fit-behavior` and its `no-overlap`-attribute)",
          "sourceRange": {
            "start": {
              "line": 205,
              "column": 8
            },
            "end": {
              "line": 209,
              "column": 9
            }
          },
          "metadata": {},
          "type": "string | null | undefined"
        },
        {
          "name": "auto-confirm",
          "description": "Set to `true` to make the input auto-confirming",
          "sourceRange": {
            "start": {
              "line": 214,
              "column": 8
            },
            "end": {
              "line": 217,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "no-cancel-on-esc-key",
          "description": "Set to `true` to disable canceling the overlay with the ESC key.",
          "sourceRange": {
            "start": {
              "line": 222,
              "column": 8
            },
            "end": {
              "line": 225,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "no-cancel-on-outside-click",
          "description": "Set to `true` to disable canceling the dropdown by clicking outside the picker.",
          "sourceRange": {
            "start": {
              "line": 230,
              "column": 8
            },
            "end": {
              "line": 233,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "no-close-on-picker-opened",
          "description": "Set to `true` to disable closing the dropdown when opening another picker.",
          "sourceRange": {
            "start": {
              "line": 238,
              "column": 8
            },
            "end": {
              "line": 241,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "no-tip",
          "description": "Set to `true` to disable the tip of the picker",
          "sourceRange": {
            "start": {
              "line": 246,
              "column": 8
            },
            "end": {
              "line": 249,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "confirmed-value",
          "description": "The confirmed value. When `auto-confirm` is not set, the value will only change, when you confirm.",
          "sourceRange": {
            "start": {
              "line": 254,
              "column": 8
            },
            "end": {
              "line": 257,
              "column": 9
            }
          },
          "metadata": {},
          "type": "Object | null | undefined"
        }
      ],
      "events": [
        {
          "type": "CustomEvent",
          "name": "input-picker-closed",
          "description": "input-picker-closed\nFired after a picker has been closed.",
          "metadata": {}
        },
        {
          "type": "CustomEvent",
          "name": "input-picker-opened",
          "description": "input-picker-opened\nFired when a picker has been opened.",
          "metadata": {}
        }
      ],
      "styling": {
        "cssVariables": [],
        "selectors": []
      },
      "slots": [],
      "mixins": [
        "Polymer.GestureEventListeners",
        "FormElementMixin"
      ]
    },
    {
      "description": "mixin to extend an picker with an `overlay-element`",
      "summary": "",
      "path": "overlay-picker-mixin.js",
      "properties": [
        {
          "name": "alwaysOnTop",
          "type": "boolean | null | undefined",
          "description": "Set to true to keep overlay always on top.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 19,
              "column": 8
            },
            "end": {
              "line": 21,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          }
        },
        {
          "name": "noOverlap",
          "type": "boolean | null | undefined",
          "description": "Will position the element around the positionTarget without overlapping it.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 25,
              "column": 8
            },
            "end": {
              "line": 28,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "withBackdrop",
          "type": "boolean | null | undefined",
          "description": "Set to true to display a backdrop behind the overlay. It traps the focus\nwithin the light DOM of the overlay.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 33,
              "column": 8
            },
            "end": {
              "line": 36,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "noCancelOnOutsideClick",
          "type": "boolean | null | undefined",
          "description": "Set to true to disable canceling the overlay by clicking outside it.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 40,
              "column": 8
            },
            "end": {
              "line": 43,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "dynamicAlign",
          "type": "boolean | null | undefined",
          "description": "If true, it will use `horizontalAlign` and `verticalAlign` values as preferred alignment\nand if there's not enough space, it will pick the values which minimize the cropping.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 49,
              "column": 8
            },
            "end": {
              "line": 52,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          }
        },
        {
          "name": "autoFitOnAttach",
          "type": "boolean | null | undefined",
          "description": "Set to true to auto-fit on attach.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 57,
              "column": 8
            },
            "end": {
              "line": 60,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Boolean"
            }
          },
          "defaultValue": "false"
        },
        {
          "name": "fitInto",
          "type": "Object | null | undefined",
          "description": "The element to fit the overlay into. By default it is the window.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 65,
              "column": 8
            },
            "end": {
              "line": 67,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Object"
            }
          }
        },
        {
          "name": "positionTarget",
          "type": "Element | null | undefined",
          "description": "The element that should be used to position the overlay. If not set, it will\ndefault to the polyfill node.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 73,
              "column": 8
            },
            "end": {
              "line": 75,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "Element"
            }
          }
        },
        {
          "name": "_sizingTarget",
          "type": "Element | null | undefined",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 77,
              "column": 8
            },
            "end": {
              "line": 80,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "readOnly": true,
              "attributeType": "Element"
            }
          }
        }
      ],
      "methods": [
        {
          "name": "connectedCallback",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 118,
              "column": 4
            },
            "end": {
              "line": 123,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "fit",
          "description": "Positions and fits the overlay into the `fitInto` element.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 128,
              "column": 4
            },
            "end": {
              "line": 130,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "open",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 132,
              "column": 4
            },
            "end": {
              "line": 135,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "notifyResize",
          "description": "notify manually the overlay to resize",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 140,
              "column": 4
            },
            "end": {
              "line": 142,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        }
      ],
      "staticMethods": [],
      "demos": [],
      "metadata": {},
      "sourceRange": {
        "start": {
          "line": 10,
          "column": 7
        },
        "end": {
          "line": 144,
          "column": 3
        }
      },
      "privacy": "public",
      "name": "OverlayPickerMixin",
      "attributes": [
        {
          "name": "always-on-top",
          "description": "Set to true to keep overlay always on top.",
          "sourceRange": {
            "start": {
              "line": 19,
              "column": 8
            },
            "end": {
              "line": 21,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "no-overlap",
          "description": "Will position the element around the positionTarget without overlapping it.",
          "sourceRange": {
            "start": {
              "line": 25,
              "column": 8
            },
            "end": {
              "line": 28,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "with-backdrop",
          "description": "Set to true to display a backdrop behind the overlay. It traps the focus\nwithin the light DOM of the overlay.",
          "sourceRange": {
            "start": {
              "line": 33,
              "column": 8
            },
            "end": {
              "line": 36,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "no-cancel-on-outside-click",
          "description": "Set to true to disable canceling the overlay by clicking outside it.",
          "sourceRange": {
            "start": {
              "line": 40,
              "column": 8
            },
            "end": {
              "line": 43,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "dynamic-align",
          "description": "If true, it will use `horizontalAlign` and `verticalAlign` values as preferred alignment\nand if there's not enough space, it will pick the values which minimize the cropping.",
          "sourceRange": {
            "start": {
              "line": 49,
              "column": 8
            },
            "end": {
              "line": 52,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "auto-fit-on-attach",
          "description": "Set to true to auto-fit on attach.",
          "sourceRange": {
            "start": {
              "line": 57,
              "column": 8
            },
            "end": {
              "line": 60,
              "column": 9
            }
          },
          "metadata": {},
          "type": "boolean | null | undefined"
        },
        {
          "name": "fit-into",
          "description": "The element to fit the overlay into. By default it is the window.",
          "sourceRange": {
            "start": {
              "line": 65,
              "column": 8
            },
            "end": {
              "line": 67,
              "column": 9
            }
          },
          "metadata": {},
          "type": "Object | null | undefined"
        },
        {
          "name": "position-target",
          "description": "The element that should be used to position the overlay. If not set, it will\ndefault to the polyfill node.",
          "sourceRange": {
            "start": {
              "line": 73,
              "column": 8
            },
            "end": {
              "line": 75,
              "column": 9
            }
          },
          "metadata": {},
          "type": "Element | null | undefined"
        }
      ],
      "events": [],
      "styling": {
        "cssVariables": [],
        "selectors": []
      },
      "slots": []
    },
    {
      "description": "Mixin to extend an element for binding switch button to increment properties. Button-switches should be of class `switch` and have the attributes `prop` and `step` that define the property to increment in the given step.\nThe element is required to be extended with `Polymer.GestureEventListeners`.",
      "summary": "",
      "path": "switch-mixin.js",
      "properties": [
        {
          "name": "dwellTime",
          "type": "number",
          "description": "dwell time of incrementing inputs by the buttons in milliseconds. It is minimal 15 milliseconds.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 32,
              "column": 8
            },
            "end": {
              "line": 36,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_dwellTimeChanged\"",
              "attributeType": "Number"
            }
          },
          "defaultValue": "50"
        },
        {
          "name": "dwellDelay",
          "type": "number",
          "description": "delay when incrementing inputs by the buttons in milliseconds. It is minimal 15 milliseconds.",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 42,
              "column": 8
            },
            "end": {
              "line": 46,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "observer": "\"_dwellTimeChanged\"",
              "attributeType": "Number"
            }
          },
          "defaultValue": "500"
        },
        {
          "name": "_switchClassSelector",
          "type": "string | null | undefined",
          "description": "class property of switches",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 51,
              "column": 8
            },
            "end": {
              "line": 54,
              "column": 9
            }
          },
          "metadata": {
            "polymer": {
              "attributeType": "String"
            }
          },
          "defaultValue": "\"switch\""
        }
      ],
      "methods": [
        {
          "name": "connectedCallback",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 74,
              "column": 4
            },
            "end": {
              "line": 79,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "disconnectedCallback",
          "description": "",
          "privacy": "public",
          "sourceRange": {
            "start": {
              "line": 81,
              "column": 4
            },
            "end": {
              "line": 86,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_addSwitchListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 88,
              "column": 4
            },
            "end": {
              "line": 103,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_removeSwitchListener",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 105,
              "column": 4
            },
            "end": {
              "line": 115,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_checkKeycodeSwitch",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 117,
              "column": 4
            },
            "end": {
              "line": 125,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "__getEventTarget",
          "description": "",
          "privacy": "private",
          "sourceRange": {
            "start": {
              "line": 127,
              "column": 4
            },
            "end": {
              "line": 141,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e"
            },
            {
              "name": "classSelector"
            }
          ]
        },
        {
          "name": "__increm",
          "description": "increment property by being called by an Event on an `switch`-Node",
          "privacy": "private",
          "sourceRange": {
            "start": {
              "line": 148,
              "column": 4
            },
            "end": {
              "line": 175,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "e",
              "type": "Event",
              "description": "Event it was called on"
            },
            {
              "name": "once",
              "type": "Boolean",
              "description": "if true, it doesn't setup an intervall to continue incrementing (e.g. keyPressEvents are fired itself repeatedly while the key is pressed)"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "__incremProp",
          "description": "",
          "privacy": "private",
          "sourceRange": {
            "start": {
              "line": 177,
              "column": 4
            },
            "end": {
              "line": 179,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "prop"
            },
            {
              "name": "step"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_getDefaultForProp",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 181,
              "column": 4
            },
            "end": {
              "line": 183,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "prop"
            }
          ]
        },
        {
          "name": "_stopActiveIncremJob",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 185,
              "column": 4
            },
            "end": {
              "line": 198,
              "column": 5
            }
          },
          "metadata": {},
          "params": [],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_dwellTimeChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 200,
              "column": 4
            },
            "end": {
              "line": 206,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "dwellTime"
            }
          ],
          "return": {
            "type": "void"
          }
        },
        {
          "name": "_dwellDelayChanged",
          "description": "",
          "privacy": "protected",
          "sourceRange": {
            "start": {
              "line": 208,
              "column": 4
            },
            "end": {
              "line": 214,
              "column": 5
            }
          },
          "metadata": {},
          "params": [
            {
              "name": "dwellDelay"
            }
          ],
          "return": {
            "type": "void"
          }
        }
      ],
      "staticMethods": [],
      "demos": [],
      "metadata": {},
      "sourceRange": {
        "start": {
          "line": 13,
          "column": 7
        },
        "end": {
          "line": 216,
          "column": 3
        }
      },
      "privacy": "public",
      "name": "SwitchMixin",
      "attributes": [
        {
          "name": "dwell-time",
          "description": "dwell time of incrementing inputs by the buttons in milliseconds. It is minimal 15 milliseconds.",
          "sourceRange": {
            "start": {
              "line": 32,
              "column": 8
            },
            "end": {
              "line": 36,
              "column": 9
            }
          },
          "metadata": {},
          "type": "number"
        },
        {
          "name": "dwell-delay",
          "description": "delay when incrementing inputs by the buttons in milliseconds. It is minimal 15 milliseconds.",
          "sourceRange": {
            "start": {
              "line": 42,
              "column": 8
            },
            "end": {
              "line": 46,
              "column": 9
            }
          },
          "metadata": {},
          "type": "number"
        }
      ],
      "events": [],
      "styling": {
        "cssVariables": [],
        "selectors": []
      },
      "slots": []
    }
  ],
  "functions": [
    {
      "name": "getBoundingClientRectByRelative",
      "description": "get bounding client rect by a relative node that could be hidden by its context",
      "summary": "",
      "sourceRange": {
        "file": "input-pattern.js",
        "start": {
          "line": 10,
          "column": 47
        },
        "end": {
          "line": 36,
          "column": 1
        }
      },
      "privacy": "public",
      "params": [
        {
          "type": "Node",
          "desc": "the node to get the sizing information from",
          "name": "relative"
        },
        {
          "type": "Boolean",
          "desc": "force to clone the relative (e.g. initial loading)",
          "name": "forceClone"
        }
      ]
    }
  ]
}
