/* * Copyright (c) 2014 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 */ (function(scope) { /** * @class polymer-base */ /** * Resolve a url path to be relative to a `base` url. If unspecified, `base` * defaults to the element's ownerDocument url. Can be used to resolve * paths from element's in templates loaded in HTMLImports to be relative * to the document containing the element. Polymer automatically does this for * url attributes in element templates; however, if a url, for * example, contains a binding, then `resolvePath` can be used to ensure it is * relative to the element document. For example, in an element's template, * * Resolved * * @method resolvePath * @param {String} url Url path to resolve. * @param {String} base Optional base url against which to resolve, defaults * to the element's ownerDocument url. * returns {String} resolved url. */ var path = { resolveElementPaths: function(node) { Polymer.urlResolver.resolveDom(node); }, addResolvePathApi: function() { // let assetpath attribute modify the resolve path var assetPath = this.getAttribute('assetpath') || ''; var root = new URL(assetPath, this.ownerDocument.baseURI); this.prototype.resolvePath = function(urlPath, base) { var u = new URL(urlPath, base || root); return u.href; }; } }; // exports scope.api.declaration.path = path; })(Polymer);