Home Start Get started Build an element 1. Get set up 2. Add local DOM 3. Data binding & properties 4. React to input 5. Theming with custom properties Build an app 1. Get set up 2. Create a new page 3. Add some elements 4. Deploy Polymer Feature overview Quick tour Define elements Register an element Declare properties Instance methods Behaviors Local DOM & styling Local DOM Styling Events Handle and fire events Gesture events Data system Data system concepts Work with object and array data Observers and computed properties Data binding Helper elements Tools Tools overview Polymer CLI Document your elements Test your elements Optimize for production Publish an element Advanced tools Services What's new Release notes 1.0 Migration guide About Polymer 1.0 Resources Community Browser compatibility API Reference Polymer.Base array-selector custom-style dom-bind dom-if dom-repeat dom-template Polymer.Templatizer Global settings 2.0 Preview About Polymer 2.0 Upgrade guide App Toolbox What's in the box? Using the Toolbox App templates Responsive app layout Routing Localization App storage Service worker Serve your app Case study Shop Elements News Feature overview Quick tour
Define elements
Register an element Declare properties Instance methods Behaviors
Local DOM & styling
Local DOM Styling
Events
Handle and fire events Gesture events
Data system
Data system concepts Work with object and array data Observers and computed properties Data binding Helper elements
Tools
Tools overview Polymer CLI Document your elements Test your elements Optimize for production Publish an element Advanced tools Services
What's new
Release notes 1.0 Migration guide About Polymer 1.0
Resources
Community Browser compatibility
API Reference
Polymer.Base array-selector custom-style dom-bind dom-if dom-repeat dom-template Polymer.Templatizer Global settings
{"type":"element","is":"Polymer.Base","abstract":true,"properties":[{"name":"$$","type":"Function","desc":"\nConvenience method to run `querySelector` on this local DOM scope.\n\nThis function calls `Polymer.dom(this.root).querySelector(slctr)`.\n\n","params":[{"name":"slctr","type":"string","desc":"Selector to run on this local DOM scope"}],"jsdoc":{"description":"\nConvenience method to run `querySelector` on this local DOM scope.\n\nThis function calls `Polymer.dom(this.root).querySelector(slctr)`.\n\n","tags":[{"tag":"method","type":null,"name":"$$","description":null},{"tag":"param","type":"string","name":"slctr","description":"Selector to run on this local DOM scope"},{"tag":"return","type":"Element","description":"Element found by the selector, or null if not found."}],"orig":"*\n * Convenience method to run `querySelector` on this local DOM scope.\n *\n * This function calls `Polymer.dom(this.root).querySelector(slctr)`.\n *\n * @method $$\n * @param {string} slctr Selector to run on this local DOM scope\n * @return {Element} Element found by the selector, or null if not found.\n "},"function":true,"return":{"type":"Element","desc":"Element found by the selector, or null if not found."}},{"name":"arrayDelete","type":"Function","desc":"\nRemoves an item from an array, if it exists.\n\nIf the array is specified by path, a change notification is\ngenerated, so that observers, data bindings and computed\nproperties watching that path can update.\n\nIf the array is passed directly, **no change\nnotification is generated**.\n\n","params":[{"name":"path","type":"(String|Array)","desc":"Path to array from which to remove the item\n (or the array itself)."},{"name":"item","type":"any","desc":"Item to remove."}],"jsdoc":{"description":"\nRemoves an item from an array, if it exists.\n\nIf the array is specified by path, a change notification is\ngenerated, so that observers, data bindings and computed\nproperties watching that path can update.\n\nIf the array is passed directly, **no change\nnotification is generated**.\n\n","tags":[{"tag":"method","type":null,"name":"arrayDelete","description":null},{"tag":"param","type":"(String|Array)","name":"path","description":"Path to array from which to remove the item\n (or the array itself)."},{"tag":"param","type":"any","name":"item","description":"Item to remove."},{"tag":"return","type":"Array","description":"Array containing item removed."}],"orig":"*\n * Removes an item from an array, if it exists.\n *\n * If the array is specified by path, a change notification is\n * generated, so that observers, data bindings and computed\n * properties watching that path can update.\n *\n * If the array is passed directly, **no change\n * notification is generated**.\n *\n * @method arrayDelete\n * @param {String|Array} path Path to array from which to remove the item\n * (or the array itself).\n * @param {any} item Item to remove.\n * @return {Array} Array containing item removed.\n "},"function":true,"return":{"type":"Array","desc":"Array containing item removed."}},{"name":"async","type":"Function","desc":"\nRuns a callback function asyncronously.\n\nBy default (if no waitTime is specified), async callbacks are run at\nmicrotask timing, which will occur before paint.\n\n","params":[{"name":"callback","type":"Function","desc":"The callback function to run, bound to `this`."},{"name":"waitTime","type":"number=","desc":"Time to wait before calling the\n `callback`. If unspecified or 0, the callback will be run at microtask\n timing (before paint)."}],"jsdoc":{"description":"\nRuns a callback function asyncronously.\n\nBy default (if no waitTime is specified), async callbacks are run at\nmicrotask timing, which will occur before paint.\n\n","tags":[{"tag":"method","type":null,"name":"async","description":null},{"tag":"param","type":"Function","name":"callback","description":"The callback function to run, bound to `this`."},{"tag":"param","type":"number=","name":"waitTime","description":"Time to wait before calling the\n `callback`. If unspecified or 0, the callback will be run at microtask\n timing (before paint)."},{"tag":"return","type":"number","description":"Handle that may be used to cancel the async job."}],"orig":"*\n * Runs a callback function asyncronously.\n *\n * By default (if no waitTime is specified), async callbacks are run at\n * microtask timing, which will occur before paint.\n *\n * @method async\n * @param {Function} callback The callback function to run, bound to `this`.\n * @param {number=} waitTime Time to wait before calling the\n * `callback`. If unspecified or 0, the callback will be run at microtask\n * timing (before paint).\n * @return {number} Handle that may be used to cancel the async job.\n "},"function":true,"return":{"type":"number","desc":"Handle that may be used to cancel the async job."}},{"name":"attachedCallback","type":"Function","desc":"\nPolymer library implementation of the Custom Elements `attachedCallback`.\n\nNote, users should not override `attachedCallback`, and instead should\nimplement the `attached` method on Polymer elements to receive\nattached-time callbacks.\n\n","params":[],"jsdoc":{"description":"\nPolymer library implementation of the Custom Elements `attachedCallback`.\n\nNote, users should not override `attachedCallback`, and instead should\nimplement the `attached` method on Polymer elements to receive\nattached-time callbacks.\n\n","tags":[{"tag":"protected","type":null,"description":null}],"orig":"*\n * Polymer library implementation of the Custom Elements `attachedCallback`.\n *\n * Note, users should not override `attachedCallback`, and instead should\n * implement the `attached` method on Polymer elements to receive\n * attached-time callbacks.\n *\n * @protected\n "},"function":true},{"name":"attributeFollows","type":"Function","desc":"\nRemoves an HTML attribute from one node, and adds it to another.\n\n","params":[{"name":"name","type":"String","desc":"HTML attribute name"},{"name":"toElement","type":"HTMLElement","desc":"New element to add the attribute to."},{"name":"fromElement","type":"HTMLElement","desc":"Old element to remove the attribute from."}],"jsdoc":{"description":"\nRemoves an HTML attribute from one node, and adds it to another.\n\n","tags":[{"tag":"method","type":null,"name":"attributeFollows","description":null},{"tag":"param","type":"String","name":"name","description":"HTML attribute name"},{"tag":"param","type":"HTMLElement","name":"toElement","description":"New element to add the attribute to."},{"tag":"param","type":"HTMLElement","name":"fromElement","description":"Old element to remove the attribute from."}],"orig":"*\n * Removes an HTML attribute from one node, and adds it to another.\n *\n * @method attributeFollows\n * @param {String} name HTML attribute name\n * @param {HTMLElement} toElement New element to add the attribute to.\n * @param {HTMLElement} fromElement Old element to remove the attribute from.\n "},"function":true},{"name":"behaviors","type":"Array","desc":"\nArray of objects to extend this prototype with.\n\nEach entry in the array may specify either a behavior object or array\nof behaviors.\n\nEach behavior object may define lifecycle callbacks, `properties`,\n`hostAttributes`, `observers` and `listeners`.\n\nLifecycle callbacks will be called for each behavior in the order given\nin the `behaviors` array, followed by the callback on the prototype.\nAdditionally, any non-lifecycle functions on the behavior object are\nmixed into the base prototype, such that same-named functions on the\nprototype take precedence, followed by later behaviors over earlier\nbehaviors.\n ","jsdoc":{"description":"\nArray of objects to extend this prototype with.\n\nEach entry in the array may specify either a behavior object or array\nof behaviors.\n\nEach behavior object may define lifecycle callbacks, `properties`,\n`hostAttributes`, `observers` and `listeners`.\n\nLifecycle callbacks will be called for each behavior in the order given\nin the `behaviors` array, followed by the callback on the prototype.\nAdditionally, any non-lifecycle functions on the behavior object are\nmixed into the base prototype, such that same-named functions on the\nprototype take precedence, followed by later behaviors over earlier\nbehaviors.\n ","tags":[],"orig":"*\n * Array of objects to extend this prototype with.\n *\n * Each entry in the array may specify either a behavior object or array\n * of behaviors.\n *\n * Each behavior object may define lifecycle callbacks, `properties`,\n * `hostAttributes`, `observers` and `listeners`.\n *\n * Lifecycle callbacks will be called for each behavior in the order given\n * in the `behaviors` array, followed by the callback on the prototype.\n * Additionally, any non-lifecycle functions on the behavior object are\n * mixed into the base prototype, such that same-named functions on the\n * prototype take precedence, followed by later behaviors over earlier\n * behaviors.\n "}},{"name":"cancelAsync","type":"Function","desc":"\nCancels an async operation started with `async`.\n\n","params":[{"name":"handle","type":"number","desc":"Handle returned from original `async` call to\n cancel."}],"jsdoc":{"description":"\nCancels an async operation started with `async`.\n\n","tags":[{"tag":"method","type":null,"name":"cancelAsync","description":null},{"tag":"param","type":"number","name":"handle","description":"Handle returned from original `async` call to\n cancel."}],"orig":"*\n * Cancels an async operation started with `async`.\n *\n * @method cancelAsync\n * @param {number} handle Handle returned from original `async` call to\n * cancel.\n "},"function":true},{"name":"cancelDebouncer","type":"Function","desc":"\nCancels an active debouncer. The `callback` will not be called.\n\n","params":[{"name":"jobName","type":"String","desc":"The name of the debouncer started with `debounce`"}],"jsdoc":{"description":"\nCancels an active debouncer. The `callback` will not be called.\n\n","tags":[{"tag":"method","type":null,"name":"cancelDebouncer","description":null},{"tag":"param","type":"String","name":"jobName","description":"The name of the debouncer started with `debounce`"}],"orig":"*\n * Cancels an active debouncer. The `callback` will not be called.\n *\n * @method cancelDebouncer\n * @param {String} jobName The name of the debouncer started with `debounce`\n "},"function":true},{"name":"classFollows","type":"Function","desc":"\nRemoves a class from one node, and adds it to another.\n\n","params":[{"name":"name","type":"String","desc":"CSS class name"},{"name":"toElement","type":"HTMLElement","desc":"New element to add the class to."},{"name":"fromElement","type":"HTMLElement","desc":"Old element to remove the class from."}],"jsdoc":{"description":"\nRemoves a class from one node, and adds it to another.\n\n","tags":[{"tag":"method","type":null,"name":"classFollows","description":null},{"tag":"param","type":"String","name":"name","description":"CSS class name"},{"tag":"param","type":"HTMLElement","name":"toElement","description":"New element to add the class to."},{"tag":"param","type":"HTMLElement","name":"fromElement","description":"Old element to remove the class from."}],"orig":"*\n * Removes a class from one node, and adds it to another.\n *\n * @method classFollows\n * @param {String} name CSS class name\n * @param {HTMLElement} toElement New element to add the class to.\n * @param {HTMLElement} fromElement Old element to remove the class from.\n "},"function":true},{"name":"create","type":"Function","desc":"\nConvenience method for creating an element and configuring it.\n\n","params":[{"name":"tag","type":"string","desc":"HTML element tag to create."},{"name":"props","type":"Object","desc":"Object of properties to configure on the\n instance."}],"jsdoc":{"description":"\nConvenience method for creating an element and configuring it.\n\n","tags":[{"tag":"method","type":null,"name":"create","description":null},{"tag":"param","type":"string","name":"tag","description":"HTML element tag to create."},{"tag":"param","type":"Object","name":"props","description":"Object of properties to configure on the\n instance."},{"tag":"return","type":"Element","description":"Newly created and configured element."}],"orig":"*\n * Convenience method for creating an element and configuring it.\n *\n * @method create\n * @param {string} tag HTML element tag to create.\n * @param {Object} props Object of properties to configure on the\n * instance.\n * @return {Element} Newly created and configured element.\n "},"function":true,"return":{"type":"Element","desc":"Newly created and configured element."}},{"name":"customStyle","type":"object","desc":"\nAn element's style properties can be directly modified by\nsetting key-value pairs in `customStyle` on the element\n(analogous to setting `style`) and then calling `updateStyles()`.\n\n ","jsdoc":{"description":"\nAn element's style properties can be directly modified by\nsetting key-value pairs in `customStyle` on the element\n(analogous to setting `style`) and then calling `updateStyles()`.\n\n ","tags":[],"orig":"*\n * An element's style properties can be directly modified by\n * setting key-value pairs in `customStyle` on the element\n * (analogous to setting `style`) and then calling `updateStyles()`.\n *\n "}},{"name":"debounce","type":"Function","desc":"\nCall `debounce` to collapse multiple requests for a named task into\none invocation which is made after the wait time has elapsed with\nno new request. If no wait time is given, the callback will be called\nat microtask timing (guaranteed before paint).\n\n debouncedClickAction: function(e) {\n // will not call `processClick` more than once per 100ms\n this.debounce('click', function() {\n this.processClick();\n }, 100);\n }\n\n","params":[{"name":"jobName","type":"String","desc":"String to indentify the debounce job."},{"name":"callback","type":"Function","desc":"Function that is called (with `this`\n context) when the wait time elapses."},{"name":"wait","type":"number","desc":"Optional wait time in milliseconds (ms) after the\n last signal that must elapse before invoking `callback`"}],"jsdoc":{"description":"\nCall `debounce` to collapse multiple requests for a named task into\none invocation which is made after the wait time has elapsed with\nno new request. If no wait time is given, the callback will be called\nat microtask timing (guaranteed before paint).\n\n debouncedClickAction: function(e) {\n // will not call `processClick` more than once per 100ms\n this.debounce('click', function() {\n this.processClick();\n }, 100);\n }\n\n","tags":[{"tag":"method","type":null,"name":"debounce","description":null},{"tag":"param","type":"String","name":"jobName","description":"String to indentify the debounce job."},{"tag":"param","type":"Function","name":"callback","description":"Function that is called (with `this`\n context) when the wait time elapses."},{"tag":"param","type":"number","name":"wait","description":"Optional wait time in milliseconds (ms) after the\n last signal that must elapse before invoking `callback`"}],"orig":"*\n * Call `debounce` to collapse multiple requests for a named task into\n * one invocation which is made after the wait time has elapsed with\n * no new request. If no wait time is given, the callback will be called\n * at microtask timing (guaranteed before paint).\n *\n * debouncedClickAction: function(e) {\n * // will not call `processClick` more than once per 100ms\n * this.debounce('click', function() {\n * this.processClick();\n * }, 100);\n * }\n *\n * @method debounce\n * @param {String} jobName String to indentify the debounce job.\n * @param {Function} callback Function that is called (with `this`\n * context) when the wait time elapses.\n * @param {number} wait Optional wait time in milliseconds (ms) after the\n * last signal that must elapse before invoking `callback`\n "},"function":true},{"name":"deserialize","type":"Function","desc":"\nConverts a string to a typed value.\n\nThis method is called by Polymer when reading HTML attribute values to\nJS properties. Users may override this method on Polymer element\nprototypes to provide deserialization for custom `type`s. Note,\nthe `type` argument is the value of the `type` field provided in the\n`properties` configuration object for a given property, and is\nby convention the constructor for the type to deserialize.\n\nNote: The return value of `undefined` is used as a sentinel value to\nindicate the attribute should be removed.\n\n","params":[{"name":"value","type":"string","desc":"Attribute value to deserialize."},{"name":"type","type":"*","desc":"Type to deserialize the string to."}],"jsdoc":{"description":"\nConverts a string to a typed value.\n\nThis method is called by Polymer when reading HTML attribute values to\nJS properties. Users may override this method on Polymer element\nprototypes to provide deserialization for custom `type`s. Note,\nthe `type` argument is the value of the `type` field provided in the\n`properties` configuration object for a given property, and is\nby convention the constructor for the type to deserialize.\n\nNote: The return value of `undefined` is used as a sentinel value to\nindicate the attribute should be removed.\n\n","tags":[{"tag":"method","type":null,"name":"deserialize","description":null},{"tag":"param","type":"string","name":"value","description":"Attribute value to deserialize."},{"tag":"param","type":"*","name":"type","description":"Type to deserialize the string to."},{"tag":"return","type":"*","description":"Typed value deserialized from the provided string."}],"orig":"*\n * Converts a string to a typed value.\n *\n * This method is called by Polymer when reading HTML attribute values to\n * JS properties. Users may override this method on Polymer element\n * prototypes to provide deserialization for custom `type`s. Note,\n * the `type` argument is the value of the `type` field provided in the\n * `properties` configuration object for a given property, and is\n * by convention the constructor for the type to deserialize.\n *\n * Note: The return value of `undefined` is used as a sentinel value to\n * indicate the attribute should be removed.\n *\n * @method deserialize\n * @param {string} value Attribute value to deserialize.\n * @param {*} type Type to deserialize the string to.\n * @return {*} Typed value deserialized from the provided string.\n "},"function":true,"return":{"type":"*","desc":"Typed value deserialized from the provided string."}},{"name":"distributeContent","type":"Function","desc":"\nForce this element to distribute its children to its local dom.\nA user should call `distributeContent` if distribution has been\ninvalidated due to changes to selectors on child elements that\neffect distribution that were not made via `Polymer.dom`.\nFor example, if an element contains an insertion point with\n`<content select=\".foo\">` and a `foo` class is added to a child,\nthen `distributeContent` must be called to update\nlocal dom distribution.\n","params":[{"name":"updateInsertionPoints","type":"boolean","desc":"Shady DOM does not detect\n <content> insertion that is nested in a sub-tree being appended.\n Set to true to distribute to newly added nested <content>'s."}],"jsdoc":{"description":"\nForce this element to distribute its children to its local dom.\nA user should call `distributeContent` if distribution has been\ninvalidated due to changes to selectors on child elements that\neffect distribution that were not made via `Polymer.dom`.\nFor example, if an element contains an insertion point with\n`<content select=\".foo\">` and a `foo` class is added to a child,\nthen `distributeContent` must be called to update\nlocal dom distribution.\n","tags":[{"tag":"method","type":null,"name":"distributeContent","description":null},{"tag":"param","type":"boolean","name":"updateInsertionPoints","description":"Shady DOM does not detect\n <content> insertion that is nested in a sub-tree being appended.\n Set to true to distribute to newly added nested <content>'s."}],"orig":"*\n * Force this element to distribute its children to its local dom.\n * A user should call `distributeContent` if distribution has been\n * invalidated due to changes to selectors on child elements that\n * effect distribution that were not made via `Polymer.dom`.\n * For example, if an element contains an insertion point with\n * `<content select=\".foo\">` and a `foo` class is added to a child,\n * then `distributeContent` must be called to update\n * local dom distribution.\n * @method distributeContent\n * @param {boolean} updateInsertionPoints Shady DOM does not detect\n * <content> insertion that is nested in a sub-tree being appended.\n * Set to true to distribute to newly added nested <content>'s.\n "},"function":true},{"name":"distributeContent","type":"Function","params":[],"function":true},{"name":"domHost","type":"","desc":"\nReturn the element whose local dom within which this element\nis contained. This is a shorthand for\n`Polymer.dom(this).getOwnerRoot().host`.\n ","jsdoc":{"description":"\nReturn the element whose local dom within which this element\nis contained. This is a shorthand for\n`Polymer.dom(this).getOwnerRoot().host`.\n ","tags":[],"orig":"*\n * Return the element whose local dom within which this element\n * is contained. This is a shorthand for\n * `Polymer.dom(this).getOwnerRoot().host`.\n "}},{"name":"elementMatches","type":"Function","desc":"\nPolyfill for Element.prototype.matches, which is sometimes still\nprefixed.\n\n","params":[{"name":"selector","type":"string","desc":"Selector to test."},{"name":"node","type":"Element=","desc":"Element to test the selector against."}],"jsdoc":{"description":"\nPolyfill for Element.prototype.matches, which is sometimes still\nprefixed.\n\n","tags":[{"tag":"method","type":null,"name":"elementMatches","description":null},{"tag":"param","type":"string","name":"selector","description":"Selector to test."},{"tag":"param","type":"Element=","name":"node","description":"Element to test the selector against."},{"tag":"return","type":"boolean","description":"Whether the element matches the selector."}],"orig":"*\n * Polyfill for Element.prototype.matches, which is sometimes still\n * prefixed.\n *\n * @method elementMatches\n * @param {string} selector Selector to test.\n * @param {Element=} node Element to test the selector against.\n * @return {boolean} Whether the element matches the selector.\n "},"function":true,"return":{"type":"boolean","desc":"Whether the element matches the selector."}},{"name":"fire","type":"Function","desc":"\nDispatches a custom event with an optional detail value.\n\n","params":[{"name":"type","type":"String","desc":"Name of event type."},{"name":"detail","type":"*=","desc":"Detail value containing event-specific\n payload."},{"name":"options","type":"Object=","desc":"Object specifying options. These may include:\n `bubbles` (boolean, defaults to `true`),\n `cancelable` (boolean, defaults to false), and\n `node` on which to fire the event (HTMLElement, defaults to `this`)."}],"jsdoc":{"description":"\nDispatches a custom event with an optional detail value.\n\n","tags":[{"tag":"method","type":null,"name":"fire","description":null},{"tag":"param","type":"String","name":"type","description":"Name of event type."},{"tag":"param","type":"*=","name":"detail","description":"Detail value containing event-specific\n payload."},{"tag":"param","type":"Object=","name":"options","description":"Object specifying options. These may include:\n `bubbles` (boolean, defaults to `true`),\n `cancelable` (boolean, defaults to false), and\n `node` on which to fire the event (HTMLElement, defaults to `this`)."},{"tag":"return","type":"CustomEvent","description":"The new event that was fired."}],"orig":"*\n * Dispatches a custom event with an optional detail value.\n *\n * @method fire\n * @param {String} type Name of event type.\n * @param {*=} detail Detail value containing event-specific\n * payload.\n * @param {Object=} options Object specifying options. These may include:\n * `bubbles` (boolean, defaults to `true`),\n * `cancelable` (boolean, defaults to false), and\n * `node` on which to fire the event (HTMLElement, defaults to `this`).\n * @return {CustomEvent} The new event that was fired.\n "},"function":true,"return":{"type":"CustomEvent","desc":"The new event that was fired."}},{"name":"flushDebouncer","type":"Function","desc":"\nImmediately calls the debouncer `callback` and inactivates it.\n\n","params":[{"name":"jobName","type":"String","desc":"The name of the debouncer started with `debounce`"}],"jsdoc":{"description":"\nImmediately calls the debouncer `callback` and inactivates it.\n\n","tags":[{"tag":"method","type":null,"name":"flushDebouncer","description":null},{"tag":"param","type":"String","name":"jobName","description":"The name of the debouncer started with `debounce`"}],"orig":"*\n * Immediately calls the debouncer `callback` and inactivates it.\n *\n * @method flushDebouncer\n * @param {String} jobName The name of the debouncer started with `debounce`\n "},"function":true},{"name":"get","type":"Function","desc":"\nConvienence method for reading a value from a path.\n\nNote, if any part in the path is undefined, this method returns\n`undefined` (this method does not throw when dereferencing undefined\npaths).\n\n","params":[{"name":"path","type":"(string|Array.<(string|number)>)","desc":"Path to the value\n to read. The path may be specified as a string (e.g. `foo.bar.baz`)\n or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that\n bracketed expressions are not supported; string-based path parts\n *must* be separated by dots. Note that when dereferencing array\n indices, the index may be used as a dotted part directly\n (e.g. `users.12.name` or `['users', 12, 'name']`)."},{"name":"root","type":"Object=","desc":"Root object from which the path is evaluated."}],"jsdoc":{"description":"\nConvienence method for reading a value from a path.\n\nNote, if any part in the path is undefined, this method returns\n`undefined` (this method does not throw when dereferencing undefined\npaths).\n\n","tags":[{"tag":"method","type":null,"name":"get","description":null},{"tag":"param","type":"(string|Array.<(string|number)>)","name":"path","description":"Path to the value\n to read. The path may be specified as a string (e.g. `foo.bar.baz`)\n or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that\n bracketed expressions are not supported; string-based path parts\n *must* be separated by dots. Note that when dereferencing array\n indices, the index may be used as a dotted part directly\n (e.g. `users.12.name` or `['users', 12, 'name']`)."},{"tag":"param","type":"Object=","name":"root","description":"Root object from which the path is evaluated."},{"tag":"return","type":"*","description":"Value at the path, or `undefined` if any part of the path\n is undefined."}],"orig":"*\n * Convienence method for reading a value from a path.\n *\n * Note, if any part in the path is undefined, this method returns\n * `undefined` (this method does not throw when dereferencing undefined\n * paths).\n *\n * @method get\n * @param {(string|Array<(string|number)>)} path Path to the value\n * to read. The path may be specified as a string (e.g. `foo.bar.baz`)\n * or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that\n * bracketed expressions are not supported; string-based path parts\n * *must* be separated by dots. Note that when dereferencing array\n * indices, the index may be used as a dotted part directly\n * (e.g. `users.12.name` or `['users', 12, 'name']`).\n * @param {Object=} root Root object from which the path is evaluated.\n * @return {*} Value at the path, or `undefined` if any part of the path\n * is undefined.\n "},"function":true,"return":{"type":"*","desc":"Value at the path, or `undefined` if any part of the path\n is undefined."}},{"name":"getComputedStyleValue","type":"Function","desc":"\nReturns the computed style value for the given property.\n","params":[{"name":"property","type":"String","desc":null}],"jsdoc":{"description":"\nReturns the computed style value for the given property.\n","tags":[{"tag":"param","type":"String","name":"property","description":null},{"tag":"return","type":"String","description":"the computed value"}],"orig":"*\n * Returns the computed style value for the given property.\n * @param {String} property\n * @return {String} the computed value\n "},"function":true,"return":{"type":"String","desc":"the computed value"}},{"name":"getContentChildNodes","type":"Function","desc":"\nReturns a list of nodes distributed to this element's `<content>`.\n\nIf this element contains more than one `<content>` in its local DOM,\nan optional selector may be passed to choose the desired content.\n\n","params":[{"name":"slctr","type":"String=","desc":"CSS selector to choose the desired\n `<content>`. Defaults to `content`."}],"jsdoc":{"description":"\nReturns a list of nodes distributed to this element's `<content>`.\n\nIf this element contains more than one `<content>` in its local DOM,\nan optional selector may be passed to choose the desired content.\n\n","tags":[{"tag":"method","type":null,"name":"getContentChildNodes","description":null},{"tag":"param","type":"String=","name":"slctr","description":"CSS selector to choose the desired\n `<content>`. Defaults to `content`."},{"tag":"return","type":"Array.<Node>","description":"List of distributed nodes for the `<content>`."}],"orig":"*\n * Returns a list of nodes distributed to this element's `<content>`.\n *\n * If this element contains more than one `<content>` in its local DOM,\n * an optional selector may be passed to choose the desired content.\n *\n * @method getContentChildNodes\n * @param {String=} slctr CSS selector to choose the desired\n * `<content>`. Defaults to `content`.\n * @return {Array<Node>} List of distributed nodes for the `<content>`.\n "},"function":true,"return":{"type":"Array.<Node>","desc":"List of distributed nodes for the `<content>`."}},{"name":"getContentChildren","type":"Function","desc":"\nReturns a list of element children distributed to this element's\n`<content>`.\n\nIf this element contains more than one `<content>` in its\nlocal DOM, an optional selector may be passed to choose the desired\ncontent. This method differs from `getContentChildNodes` in that only\nelements are returned.\n\n","params":[{"name":"slctr","type":"String=","desc":"CSS selector to choose the desired\n `<content>`. Defaults to `content`."}],"jsdoc":{"description":"\nReturns a list of element children distributed to this element's\n`<content>`.\n\nIf this element contains more than one `<content>` in its\nlocal DOM, an optional selector may be passed to choose the desired\ncontent. This method differs from `getContentChildNodes` in that only\nelements are returned.\n\n","tags":[{"tag":"method","type":null,"name":"getContentChildNodes","description":null},{"tag":"param","type":"String=","name":"slctr","description":"CSS selector to choose the desired\n `<content>`. Defaults to `content`."},{"tag":"return","type":"Array.<HTMLElement>","description":"List of distributed nodes for the\n `<content>`."}],"orig":"*\n * Returns a list of element children distributed to this element's\n * `<content>`.\n *\n * If this element contains more than one `<content>` in its\n * local DOM, an optional selector may be passed to choose the desired\n * content. This method differs from `getContentChildNodes` in that only\n * elements are returned.\n *\n * @method getContentChildNodes\n * @param {String=} slctr CSS selector to choose the desired\n * `<content>`. Defaults to `content`.\n * @return {Array<HTMLElement>} List of distributed nodes for the\n * `<content>`.\n "},"function":true,"return":{"type":"Array.<HTMLElement>","desc":"List of distributed nodes for the\n `<content>`."}},{"name":"getEffectiveChildNodes","type":"Function","desc":"\nReturns a list of nodes that are the effective childNodes. The effective\nchildNodes list is the same as the element's childNodes except that\nany `<content>` elements are replaced with the list of nodes distributed\nto the `<content>`, the result of its `getDistributedNodes` method.\n\n","params":[],"jsdoc":{"description":"\nReturns a list of nodes that are the effective childNodes. The effective\nchildNodes list is the same as the element's childNodes except that\nany `<content>` elements are replaced with the list of nodes distributed\nto the `<content>`, the result of its `getDistributedNodes` method.\n\n","tags":[{"tag":"method","type":null,"name":"getEffectiveChildNodes","description":null},{"tag":"return","type":"Array.<Node>","description":"List of effctive child nodes."}],"orig":"*\n * Returns a list of nodes that are the effective childNodes. The effective\n * childNodes list is the same as the element's childNodes except that\n * any `<content>` elements are replaced with the list of nodes distributed\n * to the `<content>`, the result of its `getDistributedNodes` method.\n *\n * @method getEffectiveChildNodes\n * @return {Array<Node>} List of effctive child nodes.\n "},"function":true,"return":{"type":"Array.<Node>","desc":"List of effctive child nodes."}},{"name":"getEffectiveChildren","type":"Function","desc":"\nReturns a list of elements that are the effective children. The effective\nchildren list is the same as the element's children except that\nany `<content>` elements are replaced with the list of elements\ndistributed to the `<content>`.\n\n","params":[],"jsdoc":{"description":"\nReturns a list of elements that are the effective children. The effective\nchildren list is the same as the element's children except that\nany `<content>` elements are replaced with the list of elements\ndistributed to the `<content>`.\n\n","tags":[{"tag":"method","type":null,"name":"getEffectiveChildren","description":null},{"tag":"return","type":"Array.<Node>","description":"List of effctive children."}],"orig":"*\n * Returns a list of elements that are the effective children. The effective\n * children list is the same as the element's children except that\n * any `<content>` elements are replaced with the list of elements\n * distributed to the `<content>`.\n *\n * @method getEffectiveChildren\n * @return {Array<Node>} List of effctive children.\n "},"function":true,"return":{"type":"Array.<Node>","desc":"List of effctive children."}},{"name":"getEffectiveTextContent","type":"Function","desc":"\nReturns a string of text content that is the concatenation of the\ntext content's of the element's effective childNodes (the elements\nreturned by <a href=\"#getEffectiveChildNodes>getEffectiveChildNodes</a>.\n\n","params":[],"jsdoc":{"description":"\nReturns a string of text content that is the concatenation of the\ntext content's of the element's effective childNodes (the elements\nreturned by <a href=\"#getEffectiveChildNodes>getEffectiveChildNodes</a>.\n\n","tags":[{"tag":"method","type":null,"name":"getEffectiveTextContent","description":null},{"tag":"return","type":"Array.<Node>","description":"List of effctive children."}],"orig":"*\n * Returns a string of text content that is the concatenation of the\n * text content's of the element's effective childNodes (the elements\n * returned by <a href=\"#getEffectiveChildNodes>getEffectiveChildNodes</a>.\n *\n * @method getEffectiveTextContent\n * @return {Array<Node>} List of effctive children.\n "},"function":true,"return":{"type":"Array.<Node>","desc":"List of effctive children."}},{"name":"getNativePrototype","type":"Function","desc":"\nReturns the native element prototype for the tag specified.\n\n","params":[{"name":"tag","type":"string","desc":"HTML tag name."}],"jsdoc":{"description":"\nReturns the native element prototype for the tag specified.\n\n","tags":[{"tag":"method","type":null,"name":"getNativePrototype","description":null},{"tag":"param","type":"string","name":"tag","description":"HTML tag name."},{"tag":"return","type":"Object","description":"Native prototype for specified tag."}],"orig":"*\n * Returns the native element prototype for the tag specified.\n *\n * @method getNativePrototype\n * @param {string} tag HTML tag name.\n * @return {Object} Native prototype for specified tag.\n "},"function":true,"return":{"type":"Object","desc":"Native prototype for specified tag."}},{"name":"getPropertyInfo","type":"Function","desc":" This api should be combined with _propertyInfo.","params":[{"name":"property"}],"jsdoc":{"description":" This api should be combined with _propertyInfo.","tags":[],"orig":" This api should be combined with _propertyInfo."},"function":true},{"name":"importHref","type":"Function","desc":"\nConvenience method for importing an HTML document imperatively.\n\nThis method creates a new `<link rel=\"import\">` element with\nthe provided URL and appends it to the document to start loading.\nIn the `onload` callback, the `import` property of the `link`\nelement will contain the imported document contents.\n\n","params":[{"name":"href","type":"string","desc":"URL to document to load."},{"name":"onload","type":"Function","desc":"Callback to notify when an import successfully\n loaded."},{"name":"onerror","type":"Function","desc":"Callback to notify when an import\n unsuccessfully loaded."},{"name":"optAsync","type":"boolean","desc":"True if the import should be loaded `async`.\n Defaults to `false`."}],"jsdoc":{"description":"\nConvenience method for importing an HTML document imperatively.\n\nThis method creates a new `<link rel=\"import\">` element with\nthe provided URL and appends it to the document to start loading.\nIn the `onload` callback, the `import` property of the `link`\nelement will contain the imported document contents.\n\n","tags":[{"tag":"method","type":null,"name":"importHref","description":null},{"tag":"param","type":"string","name":"href","description":"URL to document to load."},{"tag":"param","type":"Function","name":"onload","description":"Callback to notify when an import successfully\n loaded."},{"tag":"param","type":"Function","name":"onerror","description":"Callback to notify when an import\n unsuccessfully loaded."},{"tag":"param","type":"boolean","name":"optAsync","description":"True if the import should be loaded `async`.\n Defaults to `false`."},{"tag":"return","type":"HTMLLinkElement","description":"The link element for the URL to be loaded."}],"orig":"*\n * Convenience method for importing an HTML document imperatively.\n *\n * This method creates a new `<link rel=\"import\">` element with\n * the provided URL and appends it to the document to start loading.\n * In the `onload` callback, the `import` property of the `link`\n * element will contain the imported document contents.\n *\n * @method importHref\n * @param {string} href URL to document to load.\n * @param {Function} onload Callback to notify when an import successfully\n * loaded.\n * @param {Function} onerror Callback to notify when an import\n * unsuccessfully loaded.\n * @param {boolean} optAsync True if the import should be loaded `async`.\n * Defaults to `false`.\n * @return {HTMLLinkElement} The link element for the URL to be loaded.\n "},"function":true,"return":{"type":"HTMLLinkElement","desc":"The link element for the URL to be loaded."}},{"name":"instanceTemplate","type":"Function","desc":"\nCalls `importNode` on the `content` of the `template` specified and\nreturns a document fragment containing the imported content.\n\n","params":[{"name":"template","type":"HTMLTemplateElement","desc":"HTML template element to instance."}],"jsdoc":{"description":"\nCalls `importNode` on the `content` of the `template` specified and\nreturns a document fragment containing the imported content.\n\n","tags":[{"tag":"method","type":null,"name":"instanceTemplate","description":null},{"tag":"param","type":"HTMLTemplateElement","name":"template","description":"HTML template element to instance."},{"tag":"return","type":"DocumentFragment","description":"Document fragment containing the imported\n template content."}],"orig":"*\n * Calls `importNode` on the `content` of the `template` specified and\n * returns a document fragment containing the imported content.\n *\n * @method instanceTemplate\n * @param {HTMLTemplateElement} template HTML template element to instance.\n * @return {DocumentFragment} Document fragment containing the imported\n * template content.\n "},"function":true,"return":{"type":"DocumentFragment","desc":"Document fragment containing the imported\n template content."}},{"name":"isDebouncerActive","type":"Function","desc":"\nReturns whether a named debouncer is active.\n\n","params":[{"name":"jobName","type":"String","desc":"The name of the debouncer started with `debounce`"}],"jsdoc":{"description":"\nReturns whether a named debouncer is active.\n\n","tags":[{"tag":"method","type":null,"name":"isDebouncerActive","description":null},{"tag":"param","type":"String","name":"jobName","description":"The name of the debouncer started with `debounce`"},{"tag":"return","type":"boolean","description":"Whether the debouncer is active (has not yet fired)."}],"orig":"*\n * Returns whether a named debouncer is active.\n *\n * @method isDebouncerActive\n * @param {String} jobName The name of the debouncer started with `debounce`\n * @return {boolean} Whether the debouncer is active (has not yet fired).\n "},"function":true,"return":{"type":"boolean","desc":"Whether the debouncer is active (has not yet fired)."}},{"name":"isLightDescendant","type":"Function","desc":"\nChecks whether an element is in this element's light DOM tree.\n\n","params":[{"name":"node","type":"?Node","desc":"The element to be checked."}],"jsdoc":{"description":"\nChecks whether an element is in this element's light DOM tree.\n\n","tags":[{"tag":"method","type":null,"name":"isLightDescendant","description":null},{"tag":"param","type":"?Node","name":"node","description":"The element to be checked."},{"tag":"return","type":"Boolean","description":"true if node is in this element's light DOM tree."}],"orig":"*\n * Checks whether an element is in this element's light DOM tree.\n *\n * @method isLightDescendant\n * @param {?Node} node The element to be checked.\n * @return {Boolean} true if node is in this element's light DOM tree.\n "},"function":true,"return":{"type":"Boolean","desc":"true if node is in this element's light DOM tree."}},{"name":"isLocalDescendant","type":"Function","desc":"\nChecks whether an element is in this element's local DOM tree.\n\n","params":[{"name":"node","type":"HTMLElement=","desc":"The element to be checked."}],"jsdoc":{"description":"\nChecks whether an element is in this element's local DOM tree.\n\n","tags":[{"tag":"method","type":null,"name":"isLocalDescendant","description":null},{"tag":"param","type":"HTMLElement=","name":"node","description":"The element to be checked."},{"tag":"return","type":"Boolean","description":"true if node is in this element's local DOM tree."}],"orig":"*\n * Checks whether an element is in this element's local DOM tree.\n *\n * @method isLocalDescendant\n * @param {HTMLElement=} node The element to be checked.\n * @return {Boolean} true if node is in this element's local DOM tree.\n "},"function":true,"return":{"type":"Boolean","desc":"true if node is in this element's local DOM tree."}},{"name":"linkPaths","type":"Function","desc":"\nAliases one data path as another, such that path notifications from one\nare routed to the other.\n\n","params":[{"name":"to","type":"string","desc":"Target path to link."},{"name":"from","type":"string","desc":"Source path to link."}],"jsdoc":{"description":"\nAliases one data path as another, such that path notifications from one\nare routed to the other.\n\n","tags":[{"tag":"method","type":null,"name":"linkPaths","description":null},{"tag":"param","type":"string","name":"to","description":"Target path to link."},{"tag":"param","type":"string","name":"from","description":"Source path to link."}],"orig":"*\n * Aliases one data path as another, such that path notifications from one\n * are routed to the other.\n *\n * @method linkPaths\n * @param {string} to Target path to link.\n * @param {string} from Source path to link.\n "},"function":true},{"name":"listen","type":"Function","desc":"\nConvenience method to add an event listener on a given element,\nlate bound to a named method on this element.\n\n","params":[{"name":"node","type":"Element","desc":"Element to add event listener to."},{"name":"eventName","type":"string","desc":"Name of event to listen for."},{"name":"methodName","type":"string","desc":"Name of handler method on `this` to call."}],"jsdoc":{"description":"\nConvenience method to add an event listener on a given element,\nlate bound to a named method on this element.\n\n","tags":[{"tag":"method","type":null,"name":"listen","description":null},{"tag":"param","type":"Element","name":"node","description":"Element to add event listener to."},{"tag":"param","type":"string","name":"eventName","description":"Name of event to listen for."},{"tag":"param","type":"string","name":"methodName","description":"Name of handler method on `this` to call."}],"orig":"*\n * Convenience method to add an event listener on a given element,\n * late bound to a named method on this element.\n *\n * @method listen\n * @param {Element} node Element to add event listener to.\n * @param {string} eventName Name of event to listen for.\n * @param {string} methodName Name of handler method on `this` to call.\n "},"function":true},{"name":"listeners","type":"Object","desc":"\nObject containing entries specifying event listeners to create on each\ninstance of this element, where keys specify the event name and values\nspecify the name of the handler method to call on this prototype.\n\nExample:\n\n\n Polymer({\n\n listeners: {\n // `click` events on the host are delegated to `clickHandler`\n 'tap': 'tapHandler'\n },\n\n ...\n\n });\n ","jsdoc":{"description":"\nObject containing entries specifying event listeners to create on each\ninstance of this element, where keys specify the event name and values\nspecify the name of the handler method to call on this prototype.\n\nExample:\n\n\n Polymer({\n\n listeners: {\n // `click` events on the host are delegated to `clickHandler`\n 'tap': 'tapHandler'\n },\n\n ...\n\n });\n ","tags":[],"orig":"*\n * Object containing entries specifying event listeners to create on each\n * instance of this element, where keys specify the event name and values\n * specify the name of the handler method to call on this prototype.\n *\n * Example:\n *\n *\n * Polymer({\n *\n * listeners: {\n * // `click` events on the host are delegated to `clickHandler`\n * 'tap': 'tapHandler'\n * },\n *\n * ...\n *\n * });\n "}},{"name":"notifyPath","type":"Function","desc":"\nNotify that a path has changed.\n\nExample:\n\n this.item.user.name = 'Bob';\n this.notifyPath('item.user.name');\n\n","params":[{"name":"path","type":"string","desc":"Path that should be notified."},{"name":"value"},{"name":"fromAbove"}],"jsdoc":{"description":"\nNotify that a path has changed.\n\nExample:\n\n this.item.user.name = 'Bob';\n this.notifyPath('item.user.name');\n\n","tags":[{"tag":"param","type":"string","name":"path","description":"Path that should be notified."}],"orig":"*\n * Notify that a path has changed.\n *\n * Example:\n *\n * this.item.user.name = 'Bob';\n * this.notifyPath('item.user.name');\n *\n * @param {string} path Path that should be notified.\n "},"function":true},{"name":"notifySplices","type":"Function","desc":"\nNotify that an array has changed.\n\nExample:\n\n this.items = [ {name: 'Jim'}, {name: 'Todd'}, {name: 'Bill'} ];\n ...\n this.items.splice(1, 1, {name: 'Sam'});\n this.items.push({name: 'Bob'});\n this.notifySplices('items', [\n { index: 1, removed: [{name: 'Todd'}], addedCount: 1, obect: this.items, type: 'splice' },\n { index: 3, removed: [], addedCount: 1, object: this.items, type: 'splice'}\n ]);\n\n","params":[{"name":"path","type":"string","desc":"Path that should be notified."},{"name":"splices","type":"Array","desc":"Array of splice records indicating ordered\n changes that occurred to the array. Each record should have the\n following fields:\n * index: index at which the change occurred\n * removed: array of items that were removed from this index\n * addedCount: number of new items added at this index\n * object: a reference to the array in question\n * type: the string literal 'splice'\n\n Note that splice records _must_ be normalized such that they are\n reported in index order (raw results from `Object.observe` are not\n ordered and must be normalized/merged before notifying)."}],"jsdoc":{"description":"\nNotify that an array has changed.\n\nExample:\n\n this.items = [ {name: 'Jim'}, {name: 'Todd'}, {name: 'Bill'} ];\n ...\n this.items.splice(1, 1, {name: 'Sam'});\n this.items.push({name: 'Bob'});\n this.notifySplices('items', [\n { index: 1, removed: [{name: 'Todd'}], addedCount: 1, obect: this.items, type: 'splice' },\n { index: 3, removed: [], addedCount: 1, object: this.items, type: 'splice'}\n ]);\n\n","tags":[{"tag":"param","type":"string","name":"path","description":"Path that should be notified."},{"tag":"param","type":"Array","name":"splices","description":"Array of splice records indicating ordered\n changes that occurred to the array. Each record should have the\n following fields:\n * index: index at which the change occurred\n * removed: array of items that were removed from this index\n * addedCount: number of new items added at this index\n * object: a reference to the array in question\n * type: the string literal 'splice'\n\n Note that splice records _must_ be normalized such that they are\n reported in index order (raw results from `Object.observe` are not\n ordered and must be normalized/merged before notifying)."}],"orig":"*\n * Notify that an array has changed.\n *\n * Example:\n *\n * this.items = [ {name: 'Jim'}, {name: 'Todd'}, {name: 'Bill'} ];\n * ...\n * this.items.splice(1, 1, {name: 'Sam'});\n * this.items.push({name: 'Bob'});\n * this.notifySplices('items', [\n * { index: 1, removed: [{name: 'Todd'}], addedCount: 1, obect: this.items, type: 'splice' },\n * { index: 3, removed: [], addedCount: 1, object: this.items, type: 'splice'}\n * ]);\n *\n * @param {string} path Path that should be notified.\n * @param {Array} splices Array of splice records indicating ordered\n * changes that occurred to the array. Each record should have the\n * following fields:\n * * index: index at which the change occurred\n * * removed: array of items that were removed from this index\n * * addedCount: number of new items added at this index\n * * object: a reference to the array in question\n * * type: the string literal 'splice'\n *\n * Note that splice records _must_ be normalized such that they are\n * reported in index order (raw results from `Object.observe` are not\n * ordered and must be normalized/merged before notifying).\n "},"function":true},{"name":"pop","type":"Function","desc":"\nRemoves an item from the end of array at the path specified.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.pop`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","params":[{"name":"path","type":"String","desc":"Path to array."}],"jsdoc":{"description":"\nRemoves an item from the end of array at the path specified.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.pop`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","tags":[{"tag":"method","type":null,"name":"pop","description":null},{"tag":"param","type":"String","name":"path","description":"Path to array."},{"tag":"return","type":"any","description":"Item that was removed."}],"orig":"*\n * Removes an item from the end of array at the path specified.\n *\n * The arguments after `path` and return value match that of\n * `Array.prototype.pop`.\n *\n * This method notifies other paths to the same array that a\n * splice occurred to the array.\n *\n * @method pop\n * @param {String} path Path to array.\n * @return {any} Item that was removed.\n "},"function":true,"return":{"type":"any","desc":"Item that was removed."}},{"name":"prepareModelNotifyPath","type":"Function","desc":" Base or all in Bind (see issue https://github.com/Polymer/polymer/issues/2547).","params":[{"name":"model"}],"jsdoc":{"description":" Base or all in Bind (see issue https://github.com/Polymer/polymer/issues/2547).","tags":[],"orig":" Base or all in Bind (see issue https://github.com/Polymer/polymer/issues/2547)."},"function":true},{"name":"properties","type":"Object","desc":"\nObject containing property configuration data, where keys are property\nnames and values are descriptor objects that configure Polymer features\nfor the property. Valid fields in the property descriptor object are\nas follows:\n\n* `type` - used to determine how to deserialize attribute value strings\n to JS properties. By convention, this field takes a JS constructor\n for the type, such as `String` or `Boolean`.\n* `value` - default value for the property. The value may either be a\n primitive value, or a function that returns a value (which should be\n used for initializing Objects and Arrays to avoid shared objects on\n instances).\n* `notify` - when `true`, configures the property to fire a non-bubbling\n event called `<property>-changed` for each change to the property.\n Elements that have enabled two-way binding to the property use this\n event to observe changes.\n* `readOnly` - when `true` configures the property to have a getter, but\n no setter. To set a read-only property, use the private setter method\n `_set_<property>(value)`.\n* `reflectToAttribute` - when `true` configures the property value to\n be serialized to a string and reflected to the attribute each time\n it changes. This can impact performance, so it should be used\n only when reflecting the attribute value is important.\n* `observer` - indicates the name of a function that should be called\n each time the property changes. `e.g.: `observer: 'valueChanged'\n* `computed` - configures the property to be computed by a computing\n function each time one or more dependent properties change.\n `e.g.: `computed: 'computeValue(prop1, prop2)'\n\nNote: a shorthand may be used for the object descriptor when only the\ntype needs to be specified by using the type as the descriptor directly.\n ","jsdoc":{"description":"\nObject containing property configuration data, where keys are property\nnames and values are descriptor objects that configure Polymer features\nfor the property. Valid fields in the property descriptor object are\nas follows:\n\n* `type` - used to determine how to deserialize attribute value strings\n to JS properties. By convention, this field takes a JS constructor\n for the type, such as `String` or `Boolean`.\n* `value` - default value for the property. The value may either be a\n primitive value, or a function that returns a value (which should be\n used for initializing Objects and Arrays to avoid shared objects on\n instances).\n* `notify` - when `true`, configures the property to fire a non-bubbling\n event called `<property>-changed` for each change to the property.\n Elements that have enabled two-way binding to the property use this\n event to observe changes.\n* `readOnly` - when `true` configures the property to have a getter, but\n no setter. To set a read-only property, use the private setter method\n `_set_<property>(value)`.\n* `reflectToAttribute` - when `true` configures the property value to\n be serialized to a string and reflected to the attribute each time\n it changes. This can impact performance, so it should be used\n only when reflecting the attribute value is important.\n* `observer` - indicates the name of a function that should be called\n each time the property changes. `e.g.: `observer: 'valueChanged'\n* `computed` - configures the property to be computed by a computing\n function each time one or more dependent properties change.\n `e.g.: `computed: 'computeValue(prop1, prop2)'\n\nNote: a shorthand may be used for the object descriptor when only the\ntype needs to be specified by using the type as the descriptor directly.\n ","tags":[],"orig":"\n * Object containing property configuration data, where keys are property\n * names and values are descriptor objects that configure Polymer features\n * for the property. Valid fields in the property descriptor object are\n * as follows:\n *\n * * `type` - used to determine how to deserialize attribute value strings\n * to JS properties. By convention, this field takes a JS constructor\n * for the type, such as `String` or `Boolean`.\n * * `value` - default value for the property. The value may either be a\n * primitive value, or a function that returns a value (which should be\n * used for initializing Objects and Arrays to avoid shared objects on\n * instances).\n * * `notify` - when `true`, configures the property to fire a non-bubbling\n * event called `<property>-changed` for each change to the property.\n * Elements that have enabled two-way binding to the property use this\n * event to observe changes.\n * * `readOnly` - when `true` configures the property to have a getter, but\n * no setter. To set a read-only property, use the private setter method\n * `_set_<property>(value)`.\n * * `reflectToAttribute` - when `true` configures the property value to\n * be serialized to a string and reflected to the attribute each time\n * it changes. This can impact performance, so it should be used\n * only when reflecting the attribute value is important.\n * * `observer` - indicates the name of a function that should be called\n * each time the property changes. `e.g.: `observer: 'valueChanged'\n * * `computed` - configures the property to be computed by a computing\n * function each time one or more dependent properties change.\n * `e.g.: `computed: 'computeValue(prop1, prop2)'\n *\n * Note: a shorthand may be used for the object descriptor when only the\n * type needs to be specified by using the type as the descriptor directly.\n "}},{"name":"push","type":"Function","desc":"\nAdds items onto the end of the array at the path specified.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.push`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","params":[{"name":"path","type":"String","desc":"Path to array."}],"jsdoc":{"description":"\nAdds items onto the end of the array at the path specified.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.push`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","tags":[{"tag":"method","type":null,"name":"push","description":null},{"tag":"param","type":"String","name":"path","description":"Path to array."},{"tag":"param","type":"...any","name":"var_args","description":"Items to push onto array"},{"tag":"return","type":"number","description":"New length of the array."}],"orig":"*\n * Adds items onto the end of the array at the path specified.\n *\n * The arguments after `path` and return value match that of\n * `Array.prototype.push`.\n *\n * This method notifies other paths to the same array that a\n * splice occurred to the array.\n *\n * @method push\n * @param {String} path Path to array.\n * @param {...any} var_args Items to push onto array\n * @return {number} New length of the array.\n "},"function":true,"return":{"type":"number","desc":"New length of the array."}},{"name":"queryAllEffectiveChildren","type":"Function","params":[{"name":"slctr"}],"function":true},{"name":"queryEffectiveChildren","type":"Function","params":[{"name":"slctr"}],"function":true},{"name":"ready","type":"Function","desc":"\nLifecycle callback invoked when all local DOM children of this element\nhave been created and \"configured\" with data bound from this element,\nattribute values, or defaults.\n\n","params":[],"jsdoc":{"description":"\nLifecycle callback invoked when all local DOM children of this element\nhave been created and \"configured\" with data bound from this element,\nattribute values, or defaults.\n\n","tags":[{"tag":"method","type":null,"name":"ready","description":null}],"orig":"*\n * Lifecycle callback invoked when all local DOM children of this element\n * have been created and \"configured\" with data bound from this element,\n * attribute values, or defaults.\n *\n * @method ready\n "},"function":true},{"name":"reflectPropertyToAttribute","type":"Function","desc":"\nSerializes a property to its associated attribute.\n\nGenerally users should set `reflectToAttribute: true` in the\n`properties` configuration to achieve automatic attribute reflection.\n\n","params":[{"name":"property","type":"string","desc":"Property name to reflect."},{"name":"attribute","type":"*=","desc":"Attribute name to reflect."},{"name":"value","type":"*=","desc":"Property value to refect."}],"jsdoc":{"description":"\nSerializes a property to its associated attribute.\n\nGenerally users should set `reflectToAttribute: true` in the\n`properties` configuration to achieve automatic attribute reflection.\n\n","tags":[{"tag":"method","type":null,"name":"reflectPropertyToAttribute","description":null},{"tag":"param","type":"string","name":"property","description":"Property name to reflect."},{"tag":"param","type":"*=","name":"attribute","description":"Attribute name to reflect."},{"tag":"param","type":"*=","name":"value","description":"Property value to refect."}],"orig":"*\n * Serializes a property to its associated attribute.\n *\n * Generally users should set `reflectToAttribute: true` in the\n * `properties` configuration to achieve automatic attribute reflection.\n *\n * @method reflectPropertyToAttribute\n * @param {string} property Property name to reflect.\n * @param {*=} attribute Attribute name to reflect.\n * @param {*=} value Property value to refect.\n "},"function":true},{"name":"resolveUrl","type":"Function","desc":"\nRewrites a given URL relative to the original location of the document\ncontaining the `dom-module` for this element. This method will return\nthe same URL before and after vulcanization.\n\n","params":[{"name":"url","type":"string","desc":"URL to resolve."}],"jsdoc":{"description":"\nRewrites a given URL relative to the original location of the document\ncontaining the `dom-module` for this element. This method will return\nthe same URL before and after vulcanization.\n\n","tags":[{"tag":"method","type":null,"name":"resolveUrl","description":null},{"tag":"param","type":"string","name":"url","description":"URL to resolve."},{"tag":"return","type":"string","description":"Rewritten URL relative to the import"}],"orig":"*\n * Rewrites a given URL relative to the original location of the document\n * containing the `dom-module` for this element. This method will return\n * the same URL before and after vulcanization.\n *\n * @method resolveUrl\n * @param {string} url URL to resolve.\n * @return {string} Rewritten URL relative to the import\n "},"function":true,"return":{"type":"string","desc":"Rewritten URL relative to the import"}},{"name":"scopeSubtree","type":"Function","desc":"\nApply style scoping to the specified `container` and all its\ndescendants. If `shouldObserve` is true, changes to the container are\nmonitored via mutation observer and scoping is applied.\n\nThis method is useful for ensuring proper local DOM CSS scoping\nfor elements created in this local DOM scope, but out of the\ncontrol of this element (i.e., by a 3rd-party library)\nwhen running in non-native Shadow DOM environments.\n\n","params":[{"name":"container","type":"Element","desc":"Element to scope."},{"name":"shouldObserve","type":"boolean","desc":"When true, monitors the container\n for changes and re-applies scoping for any future changes."}],"jsdoc":{"description":"\nApply style scoping to the specified `container` and all its\ndescendants. If `shouldObserve` is true, changes to the container are\nmonitored via mutation observer and scoping is applied.\n\nThis method is useful for ensuring proper local DOM CSS scoping\nfor elements created in this local DOM scope, but out of the\ncontrol of this element (i.e., by a 3rd-party library)\nwhen running in non-native Shadow DOM environments.\n\n","tags":[{"tag":"method","type":null,"name":"scopeSubtree","description":null},{"tag":"param","type":"Element","name":"container","description":"Element to scope."},{"tag":"param","type":"boolean","name":"shouldObserve","description":"When true, monitors the container\n for changes and re-applies scoping for any future changes."}],"orig":"*\n * Apply style scoping to the specified `container` and all its\n * descendants. If `shouldObserve` is true, changes to the container are\n * monitored via mutation observer and scoping is applied.\n *\n * This method is useful for ensuring proper local DOM CSS scoping\n * for elements created in this local DOM scope, but out of the\n * control of this element (i.e., by a 3rd-party library)\n * when running in non-native Shadow DOM environments.\n *\n * @method scopeSubtree\n * @param {Element} container Element to scope.\n * @param {boolean} shouldObserve When true, monitors the container\n * for changes and re-applies scoping for any future changes.\n "},"function":true},{"name":"serialize","type":"Function","desc":"\nConverts a typed value to a string.\n\nThis method is called by Polymer when setting JS property values to\nHTML attributes. Users may override this method on Polymer element\nprototypes to provide serialization for custom types.\n\n","params":[{"name":"value","type":"*","desc":"Property value to serialize."}],"jsdoc":{"description":"\nConverts a typed value to a string.\n\nThis method is called by Polymer when setting JS property values to\nHTML attributes. Users may override this method on Polymer element\nprototypes to provide serialization for custom types.\n\n","tags":[{"tag":"method","type":null,"name":"serialize","description":null},{"tag":"param","type":"*","name":"value","description":"Property value to serialize."},{"tag":"return","type":"string","description":"String serialized from the provided property value."}],"orig":"*\n * Converts a typed value to a string.\n *\n * This method is called by Polymer when setting JS property values to\n * HTML attributes. Users may override this method on Polymer element\n * prototypes to provide serialization for custom types.\n *\n * @method serialize\n * @param {*} value Property value to serialize.\n * @return {string} String serialized from the provided property value.\n "},"function":true,"return":{"type":"string","desc":"String serialized from the provided property value."}},{"name":"serializeValueToAttribute","type":"Function","params":[{"name":"value"},{"name":"attribute"},{"name":"node"}],"function":true},{"name":"serializeValueToAttribute","type":"Function","desc":"\nSets a typed value to an HTML attribute on a node.\n\nThis method calls the `serialize` method to convert the typed\nvalue to a string. If the `serialize` method returns `undefined`,\nthe attribute will be removed (this is the default for boolean\ntype `false`).\n\n","params":[{"name":"value","type":"*","desc":"Value to serialize."},{"name":"attribute","type":"string","desc":"Attribute name to serialize to."},{"name":"node","type":"Element=","desc":"Element to set attribute to (defaults to this)."}],"jsdoc":{"description":"\nSets a typed value to an HTML attribute on a node.\n\nThis method calls the `serialize` method to convert the typed\nvalue to a string. If the `serialize` method returns `undefined`,\nthe attribute will be removed (this is the default for boolean\ntype `false`).\n\n","tags":[{"tag":"method","type":null,"name":"serializeValueToAttribute","description":null},{"tag":"param","type":"*","name":"value","description":"Value to serialize."},{"tag":"param","type":"string","name":"attribute","description":"Attribute name to serialize to."},{"tag":"param","type":"Element=","name":"node","description":"Element to set attribute to (defaults to this)."}],"orig":"*\n * Sets a typed value to an HTML attribute on a node.\n *\n * This method calls the `serialize` method to convert the typed\n * value to a string. If the `serialize` method returns `undefined`,\n * the attribute will be removed (this is the default for boolean\n * type `false`).\n *\n * @method serializeValueToAttribute\n * @param {*} value Value to serialize.\n * @param {string} attribute Attribute name to serialize to.\n * @param {Element=} node Element to set attribute to (defaults to this).\n "},"function":true},{"name":"set","type":"Function","desc":"\nConvienence method for setting a value to a path and notifying any\nelements bound to the same path.\n\nNote, if any part in the path except for the last is undefined,\nthis method does nothing (this method does not throw when\ndereferencing undefined paths).\n\n","params":[{"name":"path","type":"(string|Array.<(string|number)>)","desc":"Path to the value\n to write. The path may be specified as a string (e.g. `foo.bar.baz`)\n or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that\n bracketed expressions are not supported; string-based path parts\n *must* be separated by dots. Note that when dereferencing array\n indices, the index may be used as a dotted part directly\n (e.g. `users.12.name` or `['users', 12, 'name']`)."},{"name":"value","type":"*","desc":"Value to set at the specified path."},{"name":"root","type":"Object=","desc":"Root object from which the path is evaluated."}],"jsdoc":{"description":"\nConvienence method for setting a value to a path and notifying any\nelements bound to the same path.\n\nNote, if any part in the path except for the last is undefined,\nthis method does nothing (this method does not throw when\ndereferencing undefined paths).\n\n","tags":[{"tag":"method","type":null,"name":"set","description":null},{"tag":"param","type":"(string|Array.<(string|number)>)","name":"path","description":"Path to the value\n to write. The path may be specified as a string (e.g. `foo.bar.baz`)\n or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that\n bracketed expressions are not supported; string-based path parts\n *must* be separated by dots. Note that when dereferencing array\n indices, the index may be used as a dotted part directly\n (e.g. `users.12.name` or `['users', 12, 'name']`)."},{"tag":"param","type":"*","name":"value","description":"Value to set at the specified path."},{"tag":"param","type":"Object=","name":"root","description":"Root object from which the path is evaluated."}],"orig":"*\n * Convienence method for setting a value to a path and notifying any\n * elements bound to the same path.\n *\n * Note, if any part in the path except for the last is undefined,\n * this method does nothing (this method does not throw when\n * dereferencing undefined paths).\n *\n * @method set\n * @param {(string|Array<(string|number)>)} path Path to the value\n * to write. The path may be specified as a string (e.g. `foo.bar.baz`)\n * or an array of path parts (e.g. `['foo.bar', 'baz']`). Note that\n * bracketed expressions are not supported; string-based path parts\n * *must* be separated by dots. Note that when dereferencing array\n * indices, the index may be used as a dotted part directly\n * (e.g. `users.12.name` or `['users', 12, 'name']`).\n * @param {*} value Value to set at the specified path.\n * @param {Object=} root Root object from which the path is evaluated.\n "},"function":true},{"name":"setScrollDirection","type":"Function","desc":"\nOverride scrolling behavior to all direction, one direction, or none.\n\nValid scroll directions:\n - 'all': scroll in any direction\n - 'x': scroll only in the 'x' direction\n - 'y': scroll only in the 'y' direction\n - 'none': disable scrolling for this node\n\n","params":[{"name":"direction","type":"String=","desc":"Direction to allow scrolling\nDefaults to `all`."},{"name":"node","type":"HTMLElement=","desc":"Element to apply scroll direction setting.\nDefaults to `this`."}],"jsdoc":{"description":"\nOverride scrolling behavior to all direction, one direction, or none.\n\nValid scroll directions:\n - 'all': scroll in any direction\n - 'x': scroll only in the 'x' direction\n - 'y': scroll only in the 'y' direction\n - 'none': disable scrolling for this node\n\n","tags":[{"tag":"method","type":null,"name":"setScrollDirection","description":null},{"tag":"param","type":"String=","name":"direction","description":"Direction to allow scrolling\nDefaults to `all`."},{"tag":"param","type":"HTMLElement=","name":"node","description":"Element to apply scroll direction setting.\nDefaults to `this`."}],"orig":"*\n * Override scrolling behavior to all direction, one direction, or none.\n *\n * Valid scroll directions:\n * - 'all': scroll in any direction\n * - 'x': scroll only in the 'x' direction\n * - 'y': scroll only in the 'y' direction\n * - 'none': disable scrolling for this node\n *\n * @method setScrollDirection\n * @param {String=} direction Direction to allow scrolling\n * Defaults to `all`.\n * @param {HTMLElement=} node Element to apply scroll direction setting.\n * Defaults to `this`.\n "},"function":true},{"name":"shift","type":"Function","desc":"\nRemoves an item from the beginning of array at the path specified.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.pop`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","params":[{"name":"path","type":"String","desc":"Path to array."}],"jsdoc":{"description":"\nRemoves an item from the beginning of array at the path specified.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.pop`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","tags":[{"tag":"method","type":null,"name":"shift","description":null},{"tag":"param","type":"String","name":"path","description":"Path to array."},{"tag":"return","type":"any","description":"Item that was removed."}],"orig":"*\n * Removes an item from the beginning of array at the path specified.\n *\n * The arguments after `path` and return value match that of\n * `Array.prototype.pop`.\n *\n * This method notifies other paths to the same array that a\n * splice occurred to the array.\n *\n * @method shift\n * @param {String} path Path to array.\n * @return {any} Item that was removed.\n "},"function":true,"return":{"type":"any","desc":"Item that was removed."}},{"name":"splice","type":"Function","desc":"\nStarting from the start index specified, removes 0 or more items\nfrom the array and inserts 0 or more new itms in their place.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.splice`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","params":[{"name":"path","type":"String","desc":"Path to array."},{"name":"start","type":"number","desc":"Index from which to start removing/inserting."}],"jsdoc":{"description":"\nStarting from the start index specified, removes 0 or more items\nfrom the array and inserts 0 or more new itms in their place.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.splice`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","tags":[{"tag":"method","type":null,"name":"splice","description":null},{"tag":"param","type":"String","name":"path","description":"Path to array."},{"tag":"param","type":"number","name":"start","description":"Index from which to start removing/inserting."},{"tag":"param","type":"number","name":"deleteCount","description":"Number of items to remove."},{"tag":"param","type":"...any","name":"var_args","description":"Items to insert into array."},{"tag":"return","type":"Array","description":"Array of removed items."}],"orig":"*\n * Starting from the start index specified, removes 0 or more items\n * from the array and inserts 0 or more new itms in their place.\n *\n * The arguments after `path` and return value match that of\n * `Array.prototype.splice`.\n *\n * This method notifies other paths to the same array that a\n * splice occurred to the array.\n *\n * @method splice\n * @param {String} path Path to array.\n * @param {number} start Index from which to start removing/inserting.\n * @param {number} deleteCount Number of items to remove.\n * @param {...any} var_args Items to insert into array.\n * @return {Array} Array of removed items.\n "},"function":true,"return":{"type":"Array","desc":"Array of removed items."}},{"name":"toggleAttribute","type":"Function","desc":"\nToggles an HTML attribute on or off.\n\n","params":[{"name":"name","type":"String","desc":"HTML attribute name"},{"name":"bool","type":"boolean=","desc":"Boolean to force the attribute on or off.\n When unspecified, the state of the attribute will be reversed."},{"name":"node","type":"HTMLElement=","desc":"Node to target. Defaults to `this`."}],"jsdoc":{"description":"\nToggles an HTML attribute on or off.\n\n","tags":[{"tag":"method","type":null,"name":"toggleAttribute","description":null},{"tag":"param","type":"String","name":"name","description":"HTML attribute name"},{"tag":"param","type":"boolean=","name":"bool","description":"Boolean to force the attribute on or off.\n When unspecified, the state of the attribute will be reversed."},{"tag":"param","type":"HTMLElement=","name":"node","description":"Node to target. Defaults to `this`."}],"orig":"*\n * Toggles an HTML attribute on or off.\n *\n * @method toggleAttribute\n * @param {String} name HTML attribute name\n * @param {boolean=} bool Boolean to force the attribute on or off.\n * When unspecified, the state of the attribute will be reversed.\n * @param {HTMLElement=} node Node to target. Defaults to `this`.\n "},"function":true},{"name":"toggleClass","type":"Function","desc":"\nToggles a CSS class on or off.\n\n","params":[{"name":"name","type":"String","desc":"CSS class name"},{"name":"bool","type":"boolean=","desc":"Boolean to force the class on or off.\n When unspecified, the state of the class will be reversed."},{"name":"node","type":"HTMLElement=","desc":"Node to target. Defaults to `this`."}],"jsdoc":{"description":"\nToggles a CSS class on or off.\n\n","tags":[{"tag":"method","type":null,"name":"toggleClass","description":null},{"tag":"param","type":"String","name":"name","description":"CSS class name"},{"tag":"param","type":"boolean=","name":"bool","description":"Boolean to force the class on or off.\n When unspecified, the state of the class will be reversed."},{"tag":"param","type":"HTMLElement=","name":"node","description":"Node to target. Defaults to `this`."}],"orig":"*\n * Toggles a CSS class on or off.\n *\n * @method toggleClass\n * @param {String} name CSS class name\n * @param {boolean=} bool Boolean to force the class on or off.\n * When unspecified, the state of the class will be reversed.\n * @param {HTMLElement=} node Node to target. Defaults to `this`.\n "},"function":true},{"name":"transform","type":"Function","desc":"\nCross-platform helper for setting an element's CSS `transform` property.\n\n","params":[{"name":"transform","type":"String","desc":"Transform setting."},{"name":"node","type":"HTMLElement=","desc":"Element to apply the transform to.\nDefaults to `this`"}],"jsdoc":{"description":"\nCross-platform helper for setting an element's CSS `transform` property.\n\n","tags":[{"tag":"method","type":null,"name":"transform","description":null},{"tag":"param","type":"String","name":"transform","description":"Transform setting."},{"tag":"param","type":"HTMLElement=","name":"node","description":"Element to apply the transform to.\nDefaults to `this`"}],"orig":"*\n * Cross-platform helper for setting an element's CSS `transform` property.\n *\n * @method transform\n * @param {String} transform Transform setting.\n * @param {HTMLElement=} node Element to apply the transform to.\n * Defaults to `this`\n "},"function":true},{"name":"translate3d","type":"Function","desc":"\nCross-platform helper for setting an element's CSS `translate3d`\nproperty.\n\n","params":[{"name":"x","type":"number","desc":"X offset."},{"name":"y","type":"number","desc":"Y offset."},{"name":"z","type":"number","desc":"Z offset."},{"name":"node","type":"HTMLElement=","desc":"Element to apply the transform to.\nDefaults to `this`."}],"jsdoc":{"description":"\nCross-platform helper for setting an element's CSS `translate3d`\nproperty.\n\n","tags":[{"tag":"method","type":null,"name":"translate3d","description":null},{"tag":"param","type":"number","name":"x","description":"X offset."},{"tag":"param","type":"number","name":"y","description":"Y offset."},{"tag":"param","type":"number","name":"z","description":"Z offset."},{"tag":"param","type":"HTMLElement=","name":"node","description":"Element to apply the transform to.\nDefaults to `this`."}],"orig":"*\n * Cross-platform helper for setting an element's CSS `translate3d`\n * property.\n *\n * @method translate3d\n * @param {number} x X offset.\n * @param {number} y Y offset.\n * @param {number} z Z offset.\n * @param {HTMLElement=} node Element to apply the transform to.\n * Defaults to `this`.\n "},"function":true},{"name":"unlinkPaths","type":"Function","desc":"\nRemoves a data path alias previously established with `linkPaths`.\n\nNote, the path to unlink should be the target (`to`) used when\nlinking the paths.\n\n","params":[{"name":"path","type":"string","desc":"Target path to unlink."}],"jsdoc":{"description":"\nRemoves a data path alias previously established with `linkPaths`.\n\nNote, the path to unlink should be the target (`to`) used when\nlinking the paths.\n\n","tags":[{"tag":"method","type":null,"name":"unlinkPaths","description":null},{"tag":"param","type":"string","name":"path","description":"Target path to unlink."}],"orig":"*\n * Removes a data path alias previously established with `linkPaths`.\n *\n * Note, the path to unlink should be the target (`to`) used when\n * linking the paths.\n *\n * @method unlinkPaths\n * @param {string} path Target path to unlink.\n "},"function":true},{"name":"unlisten","type":"Function","desc":"\nConvenience method to remove an event listener from a given element,\nlate bound to a named method on this element.\n\n","params":[{"name":"node","type":"Element","desc":"Element to remove event listener from."},{"name":"eventName","type":"string","desc":"Name of event to stop listening to."},{"name":"methodName","type":"string","desc":"Name of handler method on `this` to not call\n anymore."}],"jsdoc":{"description":"\nConvenience method to remove an event listener from a given element,\nlate bound to a named method on this element.\n\n","tags":[{"tag":"method","type":null,"name":"unlisten","description":null},{"tag":"param","type":"Element","name":"node","description":"Element to remove event listener from."},{"tag":"param","type":"string","name":"eventName","description":"Name of event to stop listening to."},{"tag":"param","type":"string","name":"methodName","description":"Name of handler method on `this` to not call\n anymore."}],"orig":"*\n * Convenience method to remove an event listener from a given element,\n * late bound to a named method on this element.\n *\n * @method unlisten\n * @param {Element} node Element to remove event listener from.\n * @param {string} eventName Name of event to stop listening to.\n * @param {string} methodName Name of handler method on `this` to not call\n anymore.\n "},"function":true},{"name":"unshift","type":"Function","desc":"\nAdds items onto the beginning of the array at the path specified.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.push`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","params":[{"name":"path","type":"String","desc":"Path to array."}],"jsdoc":{"description":"\nAdds items onto the beginning of the array at the path specified.\n\nThe arguments after `path` and return value match that of\n`Array.prototype.push`.\n\nThis method notifies other paths to the same array that a\nsplice occurred to the array.\n\n","tags":[{"tag":"method","type":null,"name":"unshift","description":null},{"tag":"param","type":"String","name":"path","description":"Path to array."},{"tag":"param","type":"...any","name":"var_args","description":"Items to insert info array"},{"tag":"return","type":"number","description":"New length of the array."}],"orig":"*\n * Adds items onto the beginning of the array at the path specified.\n *\n * The arguments after `path` and return value match that of\n * `Array.prototype.push`.\n *\n * This method notifies other paths to the same array that a\n * splice occurred to the array.\n *\n * @method unshift\n * @param {String} path Path to array.\n * @param {...any} var_args Items to insert info array\n * @return {number} New length of the array.\n "},"function":true,"return":{"type":"number","desc":"New length of the array."}},{"name":"updateStyles","type":"Function","desc":"\nRe-evaluates and applies custom CSS properties based on dynamic\nchanges to this element's scope, such as adding or removing classes\nin this element's local DOM.\n\nFor performance reasons, Polymer's custom CSS property shim relies\non this explicit signal from the user to indicate when changes have\nbeen made that affect the values of custom properties.\n\n","params":[{"name":"properties","type":"Object=","desc":"Properties object which is mixed into\nthe element's `customStyle` property. This argument provides a shortcut\nfor setting `customStyle` and then calling `updateStyles`."}],"jsdoc":{"description":"\nRe-evaluates and applies custom CSS properties based on dynamic\nchanges to this element's scope, such as adding or removing classes\nin this element's local DOM.\n\nFor performance reasons, Polymer's custom CSS property shim relies\non this explicit signal from the user to indicate when changes have\nbeen made that affect the values of custom properties.\n\n","tags":[{"tag":"method","type":null,"name":"updateStyles","description":null},{"tag":"param","type":"Object=","name":"properties","description":"Properties object which is mixed into\nthe element's `customStyle` property. This argument provides a shortcut\nfor setting `customStyle` and then calling `updateStyles`."}],"orig":"*\n * Re-evaluates and applies custom CSS properties based on dynamic\n * changes to this element's scope, such as adding or removing classes\n * in this element's local DOM.\n *\n * For performance reasons, Polymer's custom CSS property shim relies\n * on this explicit signal from the user to indicate when changes have\n * been made that affect the values of custom properties.\n *\n * @method updateStyles\n * @param {Object=} properties Properties object which is mixed into\n * the element's `customStyle` property. This argument provides a shortcut\n * for setting `customStyle` and then calling `updateStyles`.\n "},"function":true},{"name":"__addAnnotatedComputationEffect","type":"Function","params":[{"name":"property"},{"name":"index"},{"name":"note"},{"name":"part"},{"name":"trigger"}],"private":true,"function":true},{"name":"__eventCache","type":"Object","private":true},{"name":"_addAnnotatedComputationEffect","type":"Function","params":[{"name":"note"},{"name":"part"},{"name":"index"}],"private":true,"function":true},{"name":"_addAnnotationEffect","type":"Function","params":[{"name":"note"},{"name":"index"}],"private":true,"function":true},{"name":"_addAnnotationEffects","type":"Function","params":[{"name":"notes"}],"private":true,"function":true},{"name":"_addComplexObserverEffect","type":"Function","params":[{"name":"observer"}],"private":true,"function":true},{"name":"_addComplexObserverEffects","type":"Function","params":[{"name":"observers"}],"private":true,"function":true},{"name":"_addComputedEffect","type":"Function","params":[{"name":"name"},{"name":"expression"}],"private":true,"function":true},{"name":"_addHostAttributes","type":"Function","desc":" prototype time","params":[{"name":"attributes"}],"jsdoc":{"description":" prototype time","tags":[],"orig":" prototype time"},"private":true,"function":true},{"name":"_addObserverEffect","type":"Function","params":[{"name":"property"},{"name":"observer"}],"private":true,"function":true},{"name":"_addPropertyEffect","type":"Function","params":[{"name":"property"},{"name":"kind"},{"name":"effect"}],"private":true,"function":true},{"name":"_addPropertyEffects","type":"Function","params":[{"name":"properties"}],"private":true,"function":true},{"name":"_addPropertyInfo","type":"Function","desc":" list of propertyInfo with {readOnly, type, attribute}","params":[{"name":"target"},{"name":"source"}],"jsdoc":{"description":" list of propertyInfo with {readOnly, type, attribute}","tags":[],"orig":" list of propertyInfo with {readOnly, type, attribute}"},"private":true,"function":true},{"name":"_afterClientsReady","type":"Function","desc":" Override polymer-mini thunk","params":[],"jsdoc":{"description":" Override polymer-mini thunk","tags":[],"orig":" Override polymer-mini thunk"},"private":true,"function":true},{"name":"_afterClientsReady","type":"Function","params":[],"private":true,"function":true},{"name":"_annotatedComputationPathEffect","type":"Function","params":[{"name":"path"},{"name":"value"},{"name":"effect"}],"private":true,"function":true},{"name":"_annotationPathEffect","type":"Function","params":[{"name":"path"},{"name":"value"},{"name":"effect"}],"private":true,"function":true},{"name":"_applyAttributes","type":"Function","desc":" apply attributes to node but avoid overriding existing values ","params":[{"name":"node"},{"name":"attr$"}],"jsdoc":{"description":" apply attributes to node but avoid overriding existing values ","tags":[],"orig":" apply attributes to node but avoid overriding existing values "},"private":true,"function":true},{"name":"_applyConfig","type":"Function","desc":" redundant, but safe due to dirty checking","params":[{"name":"config"},{"name":"aboveConfig"}],"jsdoc":{"description":" redundant, but safe due to dirty checking","tags":[],"orig":" redundant, but safe due to dirty checking"},"private":true,"function":true},{"name":"_applyEffectValue","type":"Function","params":[{"name":"info"},{"name":"value"}],"private":true,"function":true},{"name":"_applyStyleProperties","type":"Function","params":[{"name":"info"}],"private":true,"function":true},{"name":"_attributeChangedImpl","type":"Function","params":[{"name":"name"}],"private":true,"function":true},{"name":"_beforeAttached","type":"Function","params":[],"private":true,"function":true},{"name":"_beforeAttached","type":"Function","params":[],"private":true,"function":true},{"name":"_beforeClientsReady","type":"Function","desc":" for system overriding","params":[],"jsdoc":{"description":" for system overriding","tags":[],"orig":" for system overriding"},"private":true,"function":true},{"name":"_beforeClientsReady","type":"Function","desc":" Override polymer-mini thunk","params":[],"jsdoc":{"description":" Override polymer-mini thunk","tags":[],"orig":" Override polymer-mini thunk"},"private":true,"function":true},{"name":"_beginDistribute","type":"Function","params":[],"private":true,"function":true},{"name":"_beginDistribute","type":"Function","params":[],"private":true,"function":true},{"name":"_beginHosting","type":"Function","desc":" any elements we stamp to easily set host to us).","params":[],"jsdoc":{"description":" any elements we stamp to easily set host to us).","tags":[],"orig":" any elements we stamp to easily set host to us)."},"private":true,"function":true},{"name":"_boundListenerKey","type":"Function","params":[{"name":"eventName"},{"name":"methodName"}],"private":true,"function":true},{"name":"_canReady","type":"Function","params":[],"private":true,"function":true},{"name":"_collectPool","type":"Function","desc":" these with the \"content root\" to arrive at the composed tree.","params":[],"jsdoc":{"description":" these with the \"content root\" to arrive at the composed tree.","tags":[],"orig":" these with the \"content root\" to arrive at the composed tree."},"private":true,"function":true},{"name":"_collectStyles","type":"Function","desc":" TODO(sorvell): consider dropping support for `styleModules`","params":[],"jsdoc":{"description":" TODO(sorvell): consider dropping support for `styleModules`","tags":[],"orig":" TODO(sorvell): consider dropping support for `styleModules`"},"private":true,"function":true},{"name":"_complexObserverPathEffect","type":"Function","params":[{"name":"path"},{"name":"value"},{"name":"effect"}],"private":true,"function":true},{"name":"_composeNode","type":"Function","desc":" Returns the list of nodes which should be rendered inside `node`.","params":[{"name":"node"}],"jsdoc":{"description":" Returns the list of nodes which should be rendered inside `node`.","tags":[],"orig":" Returns the list of nodes which should be rendered inside `node`."},"private":true,"function":true},{"name":"_composeTree","type":"Function","desc":" based on logical distribution.","params":[],"jsdoc":{"description":" based on logical distribution.","tags":[],"orig":" based on logical distribution."},"private":true,"function":true},{"name":"_computeFinalAnnotationValue","type":"Function","params":[{"name":"node"},{"name":"property"},{"name":"value"},{"name":"info"}],"private":true,"function":true},{"name":"_computeOwnStyleProperties","type":"Function","params":[],"private":true,"function":true},{"name":"_computePathEffect","type":"Function","params":[{"name":"path"},{"name":"value"},{"name":"effect"}],"private":true,"function":true},{"name":"_computeStyleProperties","type":"Function","params":[{"name":"scopeProps"}],"private":true,"function":true},{"name":"_configure","type":"Function","desc":" combines with _config to create final property values","params":[],"jsdoc":{"description":" combines with _config to create final property values","tags":[],"orig":" combines with _config to create final property values"},"private":true,"function":true},{"name":"_configureAnnotationReferences","type":"Function","desc":" push configuration references at configure time","params":[],"jsdoc":{"description":" push configuration references at configure time","tags":[],"orig":" push configuration references at configure time"},"private":true,"function":true},{"name":"_configureCompoundBindings","type":"Function","desc":" (textContent and annotations were already initialized in the template)","params":[{"name":"note"},{"name":"node"}],"jsdoc":{"description":" (textContent and annotations were already initialized in the template)","tags":[],"orig":" (textContent and annotations were already initialized in the template)"},"private":true,"function":true},{"name":"_configureProperties","type":"Function","params":[{"name":"properties"},{"name":"config"}],"private":true,"function":true},{"name":"_configureTemplateContent","type":"Function","desc":" indirected contents onto the nested template instances","params":[{"name":"note"},{"name":"node"}],"jsdoc":{"description":" indirected contents onto the nested template instances","tags":[],"orig":" indirected contents onto the nested template instances"},"private":true,"function":true},{"name":"_configValue","type":"Function","desc":" at configure time values are stored in _config","params":[{"name":"name"},{"name":"value"}],"jsdoc":{"description":" at configure time values are stored in _config","tags":[],"orig":" at configure time values are stored in _config"},"private":true,"function":true},{"name":"_createEventHandler","type":"Function","params":[{"name":"node"},{"name":"eventName"},{"name":"methodName"}],"private":true,"function":true},{"name":"_createLocalRoot","type":"Function","params":[],"private":true,"function":true},{"name":"_createLocalRoot","type":"Function","desc":" create a shadowRoot","params":[],"jsdoc":{"description":" create a shadowRoot","tags":[],"orig":" create a shadowRoot"},"private":true,"function":true},{"name":"_desugarBehaviors","type":"Function","params":[],"private":true,"function":true},{"name":"_desugarSomeBehaviors","type":"Function","params":[{"name":"behaviors"}],"private":true,"function":true},{"name":"_discoverTemplateParentProps","type":"Function","desc":" templates.","params":[{"name":"notes"}],"jsdoc":{"description":" templates.","tags":[],"orig":" templates."},"private":true,"function":true},{"name":"_distributeConfig","type":"Function","desc":" distribute config values to bound nodes.","params":[{"name":"config"}],"jsdoc":{"description":" distribute config values to bound nodes.","tags":[],"orig":" distribute config values to bound nodes."},"private":true,"function":true},{"name":"_distributeContent","type":"Function","params":[],"private":true,"function":true},{"name":"_distributeContent","type":"Function","params":[],"private":true,"function":true},{"name":"_distributeDirtyRoots","type":"Function","params":[],"private":true,"function":true},{"name":"_distributeInsertionPoint","type":"Function","params":[{"name":"content"},{"name":"pool"}],"private":true,"function":true},{"name":"_distributePool","type":"Function","desc":" array where applicable.","params":[{"name":"node"},{"name":"pool"}],"jsdoc":{"description":" array where applicable.","tags":[],"orig":" array where applicable."},"private":true,"function":true},{"name":"_doBehavior","type":"Function","params":[{"name":"name"},{"name":"args"}],"private":true,"function":true},{"name":"_elementAdd","type":"Function","desc":" system override point","params":[],"jsdoc":{"description":" system override point","tags":[],"orig":" system override point"},"private":true,"function":true},{"name":"_elementAdd","type":"Function","desc":" add scoping class whenever an element is added to localDOM","params":[{"name":"node"}],"jsdoc":{"description":" add scoping class whenever an element is added to localDOM","tags":[],"orig":" add scoping class whenever an element is added to localDOM"},"private":true,"function":true},{"name":"_elementRemove","type":"Function","desc":" system override point","params":[],"jsdoc":{"description":" system override point","tags":[],"orig":" system override point"},"private":true,"function":true},{"name":"_elementRemove","type":"Function","desc":" remove scoping class whenever an element is removed from localDOM","params":[{"name":"node"}],"jsdoc":{"description":" remove scoping class whenever an element is removed from localDOM","tags":[],"orig":" remove scoping class whenever an element is removed from localDOM"},"private":true,"function":true},{"name":"_endHosting","type":"Function","params":[],"private":true,"function":true},{"name":"_EVENT_CHANGED","type":"string","private":true},{"name":"_executeStaticEffects","type":"Function","params":[],"private":true,"function":true},{"name":"_factory","type":"Function","params":[{"name":"args"}],"private":true,"function":true},{"name":"_findAnnotatedNode","type":"Member","desc":" instance-time","jsdoc":{"description":" instance-time","tags":[],"orig":" instance-time"},"private":true},{"name":"_findStyleHost","type":"Function","params":[],"private":true,"function":true},{"name":"_finishDistribute","type":"Function","params":[],"private":true,"function":true},{"name":"_finishDistribute","type":"Function","params":[],"private":true,"function":true},{"name":"_finishRegisterFeatures","type":"Function","params":[],"private":true,"function":true},{"name":"_fixPath","type":"Function","params":[{"name":"property"},{"name":"root"},{"name":"path"}],"private":true,"function":true},{"name":"_flattenBehaviorsList","type":"Function","params":[{"name":"behaviors"}],"private":true,"function":true},{"name":"_flushHandlers","type":"Function","params":[],"private":true,"function":true},{"name":"_get","type":"Function","desc":" by the private _notifyPath / _notifySplice implementations","params":[{"name":"path"},{"name":"root"},{"name":"info"}],"jsdoc":{"description":" by the private _notifyPath / _notifySplice implementations","tags":[],"orig":" by the private _notifyPath / _notifySplice implementations"},"private":true,"function":true},{"name":"_getEvent","type":"Function","desc":" dispatch again.","params":[{"name":"type"},{"name":"bubbles"},{"name":"cancelable"},{"name":"useCache"}],"jsdoc":{"description":" dispatch again.","tags":[],"orig":" dispatch again."},"private":true,"function":true},{"name":"_getExtendedNativePrototype","type":"Function","desc":" static","params":[{"name":"tag"}],"jsdoc":{"description":" static","tags":[],"orig":" static"},"private":true,"function":true},{"name":"_getExtendedPrototype","type":"Function","params":[{"name":"tag"}],"private":true,"function":true},{"name":"_getPathParts","type":"Function","desc":"\n Converts a path to an array of path parts. A path may be specified\n as a dotted string or an array of one or more dotted strings (or numbers,\n for number-valued keys).\n ","params":[{"name":"path"}],"jsdoc":{"description":"\n Converts a path to an array of path parts. A path may be specified\n as a dotted string or an array of one or more dotted strings (or numbers,\n for number-valued keys).\n ","tags":[],"orig":"*\n Converts a path to an array of path parts. A path may be specified\n as a dotted string or an array of one or more dotted strings (or numbers,\n for number-valued keys).\n "},"private":true,"function":true},{"name":"_getPropertyInfo","type":"Function","params":[{"name":"property"},{"name":"properties"}],"private":true,"function":true},{"name":"_hostStack","type":"Array","private":true},{"name":"_initFeatures","type":"Function","params":[],"private":true,"function":true},{"name":"_initFeatures","type":"Function","params":[],"private":true,"function":true},{"name":"_initFeatures","type":"Function","params":[],"private":true,"function":true},{"name":"_invokeBehavior","type":"Function","params":[{"name":"b"},{"name":"name"},{"name":"args"}],"private":true,"function":true},{"name":"_listen","type":"Function","desc":" override _listen to handle gestures","params":[{"name":"node"},{"name":"eventName"},{"name":"handler"}],"jsdoc":{"description":" override _listen to handle gestures","tags":[],"orig":" override _listen to handle gestures"},"private":true,"function":true},{"name":"_listen","type":"Function","params":[{"name":"node"},{"name":"eventName"},{"name":"handler"}],"private":true,"function":true},{"name":"_listenListeners","type":"Function","desc":" to avoid these string searches at instance time.","params":[{"name":"listeners"}],"jsdoc":{"description":" to avoid these string searches at instance time.","tags":[],"orig":" to avoid these string searches at instance time."},"private":true,"function":true},{"name":"_marshalAnnotatedListeners","type":"Function","desc":" install event listeners (from event annotations)","params":[],"jsdoc":{"description":" install event listeners (from event annotations)","tags":[],"orig":" install event listeners (from event annotations)"},"private":true,"function":true},{"name":"_marshalAnnotatedNodes","type":"Function","desc":" concretize `_nodes` map (from anonymous annotations)","params":[],"jsdoc":{"description":" concretize `_nodes` map (from anonymous annotations)","tags":[],"orig":" concretize `_nodes` map (from anonymous annotations)"},"private":true,"function":true},{"name":"_marshalAnnotationReferences","type":"Function","desc":" marshal all teh things","params":[],"jsdoc":{"description":" marshal all teh things","tags":[],"orig":" marshal all teh things"},"private":true,"function":true},{"name":"_marshalAttributes","type":"Function","desc":" static attributes are deserialized into _config","params":[],"jsdoc":{"description":" static attributes are deserialized into _config","tags":[],"orig":" static attributes are deserialized into _config"},"private":true,"function":true},{"name":"_marshalAttributes","type":"Function","params":[],"private":true,"function":true},{"name":"_marshalBehavior","type":"Function","params":[{"name":"b"}],"private":true,"function":true},{"name":"_marshalBehavior","type":"Function","params":[{"name":"b"}],"private":true,"function":true},{"name":"_marshalBehavior","type":"Function","params":[{"name":"b"}],"private":true,"function":true},{"name":"_marshalBehaviors","type":"Function","params":[],"private":true,"function":true},{"name":"_marshalHostAttributes","type":"Function","desc":" instance time","params":[],"jsdoc":{"description":" instance time","tags":[],"orig":" instance time"},"private":true,"function":true},{"name":"_marshalIdNodes","type":"Function","desc":" construct `$` map (from id annotations)","params":[],"jsdoc":{"description":" construct `$` map (from id annotations)","tags":[],"orig":" construct `$` map (from id annotations)"},"private":true,"function":true},{"name":"_marshalInstanceEffects","type":"Function","desc":" instancing","params":[],"jsdoc":{"description":" instancing","tags":[],"orig":" instancing"},"private":true,"function":true},{"name":"_matchesContentSelect","type":"Function","params":[{"name":"node"},{"name":"contentElement"}],"private":true,"function":true},{"name":"_mixinBehavior","type":"Function","params":[{"name":"b"}],"private":true,"function":true},{"name":"_modelForPath","type":"Function","params":[{"name":"path"}],"private":true,"function":true},{"name":"_nativePrototypes","type":"Object","private":true},{"name":"_needsStyleProperties","type":"Function","params":[],"private":true,"function":true},{"name":"_notifyBoundPaths","type":"Function","params":[{"name":"path"},{"name":"value"}],"private":true,"function":true},{"name":"_notifyListener","type":"Function","desc":" handling is queue/defered until then.","params":[{"name":"fn"},{"name":"e"}],"jsdoc":{"description":" handling is queue/defered until then.","tags":[],"orig":" handling is queue/defered until then."},"private":true,"function":true},{"name":"_notifyPath","type":"Function","desc":" Note: this implemetation only accepts key-based array paths","params":[{"name":"path"},{"name":"value"},{"name":"fromAbove"}],"jsdoc":{"description":" Note: this implemetation only accepts key-based array paths","tags":[],"orig":" Note: this implemetation only accepts key-based array paths"},"private":true,"function":true},{"name":"_notifyPathUp","type":"Function","params":[{"name":"path"},{"name":"value"}],"private":true,"function":true},{"name":"_notifySplice","type":"Function","params":[{"name":"array"},{"name":"path"},{"name":"index"},{"name":"added"},{"name":"removed"}],"private":true,"function":true},{"name":"_notifySplices","type":"Function","desc":" Note: this implemetation only accepts key-based array paths","params":[{"name":"array"},{"name":"path"},{"name":"splices"}],"jsdoc":{"description":" Note: this implemetation only accepts key-based array paths","tags":[],"orig":" Note: this implemetation only accepts key-based array paths"},"private":true,"function":true},{"name":"_parseArg","type":"Function","params":[{"name":"rawArg"}],"private":true,"function":true},{"name":"_parseArgs","type":"Function","params":[{"name":"argList"},{"name":"sig"}],"private":true,"function":true},{"name":"_parseMethod","type":"Function","desc":" method expressions are of the form: `name([arg1, arg2, .... argn])`","params":[{"name":"expression"}],"jsdoc":{"description":" method expressions are of the form: `name([arg1, arg2, .... argn])`","tags":[],"orig":" method expressions are of the form: `name([arg1, arg2, .... argn])`"},"private":true,"function":true},{"name":"_pathEffector","type":"Function","params":[{"name":"path"},{"name":"value"}],"private":true,"function":true},{"name":"_pathMatchesEffect","type":"Function","params":[{"name":"path"},{"name":"effect"}],"private":true,"function":true},{"name":"_poolContent","type":"Function","desc":" called as part of content initialization, prior to template stamping","params":[],"jsdoc":{"description":" called as part of content initialization, prior to template stamping","tags":[],"orig":" called as part of content initialization, prior to template stamping"},"private":true,"function":true},{"name":"_poolContent","type":"Function","desc":" no-op's when ShadowDOM is in use","params":[],"jsdoc":{"description":" no-op's when ShadowDOM is in use","tags":[],"orig":" no-op's when ShadowDOM is in use"},"private":true,"function":true},{"name":"_prepAnnotations","type":"Function","desc":" registration-time","params":[],"jsdoc":{"description":" registration-time","tags":[],"orig":" registration-time"},"private":true,"function":true},{"name":"_prepBehavior","type":"Function","params":[{"name":"b"}],"private":true,"function":true},{"name":"_prepBehavior","type":"Function","params":[{"name":"b"}],"private":true,"function":true},{"name":"_prepBehavior","type":"Function","params":[{"name":"b"}],"private":true,"function":true},{"name":"_prepBehaviors","type":"Function","params":[],"private":true,"function":true},{"name":"_prepBindings","type":"Function","params":[],"private":true,"function":true},{"name":"_prepConstructor","type":"Function","desc":" registration-time","params":[],"jsdoc":{"description":" registration-time","tags":[],"orig":" registration-time"},"private":true,"function":true},{"name":"_prepEffects","type":"Function","desc":" prototyping","params":[],"jsdoc":{"description":" prototyping","tags":[],"orig":" prototyping"},"private":true,"function":true},{"name":"_prepElement","type":"Function","params":[{"name":"element"}],"private":true,"function":true},{"name":"_prepElement","type":"Function","params":[{"name":"element"}],"private":true,"function":true},{"name":"_prepFlattenedBehaviors","type":"Function","params":[{"name":"behaviors"}],"private":true,"function":true},{"name":"_prepIs","type":"Function","params":[],"private":true,"function":true},{"name":"_prepPropertyInfo","type":"Function","desc":" union properties, behaviors.properties, and propertyEffects","params":[],"jsdoc":{"description":" union properties, behaviors.properties, and propertyEffects","tags":[],"orig":" union properties, behaviors.properties, and propertyEffects"},"private":true,"function":true},{"name":"_prepShady","type":"Function","params":[],"private":true,"function":true},{"name":"_prepShimStyles","type":"Function","params":[],"private":true,"function":true},{"name":"_prepStyleProperties","type":"Function","params":[],"private":true,"function":true},{"name":"_prepStyles","type":"Function","params":[],"private":true,"function":true},{"name":"_prepTemplate","type":"Function","params":[],"private":true,"function":true},{"name":"_processAnnotations","type":"Function","params":[{"name":"notes"}],"private":true,"function":true},{"name":"_queueHandler","type":"Function","params":[{"name":"args"}],"private":true,"function":true},{"name":"_ready","type":"Function","params":[],"private":true,"function":true},{"name":"_readyClients","type":"Function","params":[],"private":true,"function":true},{"name":"_readySelf","type":"Function","desc":" note: called localChildren -> host","params":[],"jsdoc":{"description":" note: called localChildren -> host","tags":[],"orig":" note: called localChildren -> host"},"private":true,"function":true},{"name":"_recallEventHandler","type":"Function","params":[{"name":"host"},{"name":"eventName"},{"name":"target"},{"name":"methodName"}],"private":true,"function":true},{"name":"_recordEventHandler","type":"Function","params":[{"name":"host"},{"name":"eventName"},{"name":"target"},{"name":"methodName"},{"name":"handler"}],"private":true,"function":true},{"name":"_registerFeatures","type":"Function","params":[],"private":true,"function":true},{"name":"_registerFeatures","type":"Function","params":[],"private":true,"function":true},{"name":"_registerFeatures","type":"Function","params":[],"private":true,"function":true},{"name":"_registerHost","type":"Function","desc":" never changes","params":[{"name":"host"}],"jsdoc":{"description":" never changes","tags":[],"orig":" never changes"},"private":true,"function":true},{"name":"_resetDistribution","type":"Function","desc":" included here as \"protected\" methods to allow overriding.","params":[],"jsdoc":{"description":" included here as \"protected\" methods to allow overriding.","tags":[],"orig":" included here as \"protected\" methods to allow overriding."},"private":true,"function":true},{"name":"_scopeCount","type":"number","private":true},{"name":"_scopeElementClass","type":"Function","params":[{"name":"element"},{"name":"selector"}],"private":true,"function":true},{"name":"_serializing","type":"boolean","private":true},{"name":"_setAttributeToProperty","type":"Function","params":[{"name":"model"},{"name":"attribute"},{"name":"property"},{"name":"info"}],"private":true,"function":true},{"name":"_setupConfigure","type":"Function","desc":" storage for configuration","params":[{"name":"initialConfig"}],"jsdoc":{"description":" storage for configuration","tags":[],"orig":" storage for configuration"},"private":true,"function":true},{"name":"_setupDebouncers","type":"Function","params":[],"private":true,"function":true},{"name":"_setupGestures","type":"Function","params":[],"private":true,"function":true},{"name":"_setupRoot","type":"Function","desc":" called as part of content initialization, after template stamping","params":[],"jsdoc":{"description":" called as part of content initialization, after template stamping","tags":[],"orig":" called as part of content initialization, after template stamping"},"private":true,"function":true},{"name":"_setupShady","type":"Function","params":[],"private":true,"function":true},{"name":"_setupStyleProperties","type":"Function","desc":" here we have an instance time spot to put custom property data","params":[],"jsdoc":{"description":" here we have an instance time spot to put custom property data","tags":[],"orig":" here we have an instance time spot to put custom property data"},"private":true,"function":true},{"name":"_stampTemplate","type":"Function","params":[],"private":true,"function":true},{"name":"_takeAttributesToModel","type":"Function","params":[{"name":"model"}],"private":true,"function":true},{"name":"_tryReady","type":"Function","params":[],"private":true,"function":true},{"name":"_unlisten","type":"Function","params":[{"name":"node"},{"name":"eventName"},{"name":"handler"}],"private":true,"function":true},{"name":"_unlisten","type":"Function","desc":" override _unlisten to handle gestures","params":[{"name":"node"},{"name":"eventName"},{"name":"handler"}],"jsdoc":{"description":" override _unlisten to handle gestures","tags":[],"orig":" override _unlisten to handle gestures"},"private":true,"function":true},{"name":"_updateChildNodes","type":"Function","desc":" Ensures that the rendered node list inside `container` is `children`.","params":[{"name":"container"},{"name":"children"}],"jsdoc":{"description":" Ensures that the rendered node list inside `container` is `children`.","tags":[],"orig":" Ensures that the rendered node list inside `container` is `children`."},"private":true,"function":true},{"name":"_updateRootStyles","type":"Function","params":[{"name":"root"}],"private":true,"function":true},{"name":"_updateStyleProperties","type":"Function","params":[],"private":true,"function":true}],"desc":"`Polymer.Base` acts as a base prototype for all Polymer elements. It is composed via various calls to `Polymer.Base._addFeature()`.\n\nThe properties reflected here are the combined view of all features found in this library. There may be more properties added via other libraries, as well.","jsdoc":{"description":"`Polymer.Base` acts as a base prototype for all Polymer elements. It is composed via various calls to `Polymer.Base._addFeature()`.\n\nThe properties reflected here are the combined view of all features found in this library. There may be more properties added via other libraries, as well.","tags":[],"orig":"`Polymer.Base` acts as a base prototype for all Polymer elements. It is composed via various calls to `Polymer.Base._addFeature()`.\n\nThe properties reflected here are the combined view of all features found in this library. There may be more properties added via other libraries, as well."},"demos":[]}