| Index: appengine/config_service/ui/bower_components/polymer/lib/utils/import-href.html
|
| diff --git a/appengine/config_service/ui/bower_components/polymer/lib/utils/import-href.html b/appengine/config_service/ui/bower_components/polymer/lib/utils/import-href.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..77933a4e43ce731554466a83fcc2852d8a81945a
|
| --- /dev/null
|
| +++ b/appengine/config_service/ui/bower_components/polymer/lib/utils/import-href.html
|
| @@ -0,0 +1,107 @@
|
| +<!--
|
| +@license
|
| +Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
|
| +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
| +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
| +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
| +Code distributed by Google as part of the polymer project is also
|
| +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
| +-->
|
| +
|
| +<link rel="import" href="boot.html">
|
| +
|
| +<script>
|
| +
|
| +(function() {
|
| +
|
| + 'use strict';
|
| +
|
| + // run a callback when HTMLImports are ready or immediately if
|
| + // this api is not available.
|
| + function whenImportsReady(cb) {
|
| + if (window.HTMLImports) {
|
| + HTMLImports.whenReady(cb);
|
| + } else {
|
| + cb();
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * Convenience method for importing an HTML document imperatively.
|
| + *
|
| + * This method creates a new `<link rel="import">` element with
|
| + * the provided URL and appends it to the document to start loading.
|
| + * In the `onload` callback, the `import` property of the `link`
|
| + * element will contain the imported document contents.
|
| + *
|
| + * @memberof Polymer
|
| + * @param {string} href URL to document to load.
|
| + * @param {Function=} onload Callback to notify when an import successfully
|
| + * loaded.
|
| + * @param {Function=} onerror Callback to notify when an import
|
| + * unsuccessfully loaded.
|
| + * @param {boolean=} optAsync True if the import should be loaded `async`.
|
| + * Defaults to `false`.
|
| + * @return {HTMLLinkElement} The link element for the URL to be loaded.
|
| + */
|
| + Polymer.importHref = function(href, onload, onerror, optAsync) {
|
| + let link =
|
| + document.head.querySelector('link[href="' + href + '"][import-href]');
|
| + if (!link) {
|
| + link = document.createElement('link');
|
| + link.rel = 'import';
|
| + link.href = href;
|
| + link.setAttribute('import-href', '');
|
| + }
|
| + // always ensure link has `async` attribute if user specified one,
|
| + // even if it was previously not async. This is considered less confusing.
|
| + if (optAsync) {
|
| + link.setAttribute('async', '');
|
| + }
|
| + // NOTE: the link may now be in 3 states: (1) pending insertion,
|
| + // (2) inflight, (3) already laoded. In each case, we need to add
|
| + // event listeners to process callbacks.
|
| + let cleanup = function() {
|
| + link.removeEventListener('load', loadListener);
|
| + link.removeEventListener('error', errorListener);
|
| + }
|
| + let loadListener = function(event) {
|
| + cleanup();
|
| + // In case of a successful load, cache the load event on the link so
|
| + // that it can be used to short-circuit this method in the future when
|
| + // it is called with the same href param.
|
| + link.__dynamicImportLoaded = true;
|
| + if (onload) {
|
| + whenImportsReady(() => {
|
| + onload(event);
|
| + });
|
| + }
|
| + };
|
| + let errorListener = function(event) {
|
| + cleanup();
|
| + // In case of an error, remove the link from the document so that it
|
| + // will be automatically created again the next time `importHref` is
|
| + // called.
|
| + if (link.parentNode) {
|
| + link.parentNode.removeChild(link);
|
| + }
|
| + if (onerror) {
|
| + whenImportsReady(() => {
|
| + onerror(event);
|
| + });
|
| + }
|
| + };
|
| + link.addEventListener('load', loadListener);
|
| + link.addEventListener('error', errorListener);
|
| + if (link.parentNode == null) {
|
| + document.head.appendChild(link);
|
| + // if the link already loaded, dispatch a fake load event
|
| + // so that listeners are called and get a proper event argument.
|
| + } else if (link.__dynamicImportLoaded) {
|
| + link.dispatchEvent(new Event('load'));
|
| + }
|
| + return link;
|
| + };
|
| +
|
| +})();
|
| +</script>
|
|
|