plus-8.x-4.x-dev/js/Drupal.Url.js
js/Drupal.Url.js
/** * DO NOT EDIT THIS FILE. * THIS FILE IS COMPILED AUTOMATICALLY FROM ITS ES6 SOURCE. * @preserve **/'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } (function (Drupal) { 'use strict'; var elementUrlMap = new Map(Object.entries({ code: new Set([window.HTMLAppletElement].filter(Boolean)), data: new Set([HTMLObjectElement].filter(Boolean)), href: new Set([HTMLAnchorElement, HTMLAreaElement, HTMLBaseElement, HTMLLinkElement].filter(Boolean)), src: new Set([HTMLAudioElement, HTMLEmbedElement, HTMLIFrameElement, HTMLImageElement, HTMLInputElement, HTMLScriptElement, HTMLSourceElement, HTMLTrackElement, HTMLVideoElement].filter(Boolean)) })); var getElementUrl = function getElementUrl(element) { var url = null; elementUrlMap.forEach(function (elements, prop) { elements.forEach(function (value) { if (url === null && element instanceof value) { url = element[prop]; } }); }); return url; }; var getElementMimeType = function getElementMimeType(element) { var mimeType = null; if (element instanceof HTMLAnchorElement) { mimeType = element.type; } else if (element instanceof HTMLFormElement) { mimeType = element.enctype; } return mimeType && mimeType.split(/;\s*/).filter(Boolean) || []; }; var _ = { absolute: new WeakMap(), basename: new WeakMap(), element: new WeakMap(), extension: new WeakMap(), filename: new WeakMap(), hash: new WeakMap(), langcode: new WeakMap(), mimeType: new WeakMap(), origin: new WeakMap(), path: new WeakMap(), protocol: new WeakMap(), query: new WeakMap(), relation: new WeakMap(), relative: new WeakMap(), size: new WeakMap(), title: new WeakMap(), uid: new WeakMap(), url: new WeakMap() }; var Url = function () { function Url() { _classCallCheck(this, Url); _.absolute.set(this, null); _.basename.set(this, null); _.element.set(this, null); _.extension.set(this, null); _.filename.set(this, null); _.hash.set(this, null); _.langcode.set(this, null); _.mimeType.set(this, null); _.origin.set(this, null); _.path.set(this, null); _.protocol.set(this, null); _.query.set(this, null); _.relation.set(this, null); _.relative.set(this, null); _.size.set(this, null); _.title.set(this, null); _.uid.set(this, null); _.url.set(this, null); } _createClass(Url, [{ key: 'set', value: function set(name, value) { var values = {}; if (typeof name === 'string') { values[name] = value; } else if (name instanceof HTMLElement) { values.element = name; } else if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') { values = _extends({}, name); } if (values.url && values.absolute === undefined) { values.absolute = values.url; delete values.url; } var keys = Object.keys(values); for (var i = 0, l = keys.length; i < l; i++) { var prop = keys[i]; if (_.hasOwnProperty(prop) || this.hasOwnProperty(prop)) { this[prop] = values[prop]; } } return this; } }, { key: 'getPrivateProperty', value: function getPrivateProperty(properties, name) { var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; var dataAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; var prop = properties[name]; var value = prop.get(this); if (value !== null) { return value; } var element = properties.element ? properties.element.get(this) : _.element.get(this); if (element) { if (dataAttributes === null) { dataAttributes = [name]; } if (dataAttributes) { for (var i = 0, l = dataAttributes.length; i < l; i++) { if (element.dataset[dataAttributes[i]] !== undefined) { value = element.dataset[dataAttributes[i]]; break; } } } } if (value === null && typeof defaultValue === 'function') { defaultValue = defaultValue(element); if (defaultValue === undefined || defaultValue === null) { defaultValue = ''; } } value = Drupal.typeCast(defaultValue, value); prop.set(this, value); return value; } }, { key: 'absolute', get: function get() { return _.absolute.get(this) || ''; }, set: function set(value) { var origin = _.origin.get(this) || window.location.origin; var url = void 0; try { url = new URL(value, origin); } catch (e) { return Drupal.fatal(Drupal.t('Only absolute URLs (or protocol relative URLs) can be set on the "absolute" property: @value'), { '@value': value }); } _.url.set(this, url); _.absolute.set(this, url.href); _.basename.set(this, null); _.extension.set(this, null); _.filename.set(this, null); _.hash.set(this, null); _.origin.set(this, null); _.path.set(this, null); _.protocol.set(this, null); _.query.set(this, null); _.relative.set(this, null); } }, { key: 'basename', get: function get() { var _this = this; return this.getPrivateProperty(_, 'basename', function () { var url = _this.path; var basename = ''; var last = url && url.charAt(url.length - 1); if (last === '/' || last === '\\') { url = url.slice(0, -1); } url = url && url.replace(/^.*[/\\]/g, ''); var extension = '.' + _this.extension; if (url.substr(url.length - extension.length) === extension) { basename = url.substr(0, url.length - extension.length); } return basename; }); } }, { key: 'element', get: function get() { return _.element.get(this); }, set: function set(value) { if (!getElementUrl(value)) { return Drupal.fatal(Drupal.t('Only HTMLElement objects where a URL value can be extracted are allowed to be set on the "element" property: @value'), { '@value': value }); } _.element.set(this, value); _.absolute.set(this, null); _.basename.set(this, null); _.extension.set(this, null); _.filename.set(this, null); _.hash.set(this, null); _.langcode.set(this, null); _.mimeType.set(this, null); _.origin.set(this, null); _.path.set(this, null); _.protocol.set(this, null); _.query.set(this, null); _.relation.set(this, null); _.relative.set(this, null); _.size.set(this, null); _.title.set(this, null); _.uid.set(this, null); _.url.set(this, null); } }, { key: 'extension', get: function get() { var _this2 = this; return this.getPrivateProperty(_, 'extension', function () { var path = _this2.path; return path && /tar\.gz$/.test(path) ? 'tar.gz' : path.slice((path.lastIndexOf('.') - 1 >>> 0) + 2) || ''; }); } }, { key: 'filename', get: function get() { var _this3 = this; return this.getPrivateProperty(_, 'filename', function () { return [_this3.basename, _this3.extension].filter(Boolean).join('.'); }); } }, { key: 'hash', get: function get() { var _this4 = this; return this.getPrivateProperty(_, 'hash', function () { var url = _.url.get(_this4); return url && url.hash || ''; }); } }, { key: 'langcode', get: function get() { return this.getPrivateProperty(_, 'langcode', function (element) { return element && (element.hreflang || element.lang) || ''; }); } }, { key: 'mimeType', get: function get() { return this.getPrivateProperty(_, 'mimeType', function (element) { return getElementMimeType(element).shift() || ''; }); } }, { key: 'origin', get: function get() { var _this5 = this; return this.getPrivateProperty(_, 'origin', function (element) { var url = _.url.get(_this5); return element && element.origin || url && url.origin || ''; }); }, set: function set(value) { _.origin.set(this, value); } }, { key: 'path', get: function get() { var _this6 = this; return this.getPrivateProperty(_, 'path', function () { var url = _.url.get(_this6); return url && url.pathname || ''; }); } }, { key: 'protocol', get: function get() { var _this7 = this; return this.getPrivateProperty(_, 'protocol', function () { var url = _.url.get(_this7); return url && url.protocol.replace(/:$/, '') || ''; }); } }, { key: 'query', get: function get() { var _this8 = this; return this.getPrivateProperty(_, 'query', function () { var url = _.url.get(_this8); return url && url.search || ''; }); } }, { key: 'relation', get: function get() { return this.getPrivateProperty(_, 'relation', function (element) { return element && element.rel || ''; }); } }, { key: 'relative', get: function get() { var _this9 = this; return this.getPrivateProperty(_, 'relation', function () { var url = _this9.absolute; return url && url.replace(_this9.origin, '') || ''; }); } }, { key: 'size', get: function get() { return this.getPrivateProperty(_, 'size', function (element) { var size = 0; var mimeType = getElementMimeType(element).slice(1); for (var i = 0, l = mimeType.slice(0).length; i < l; i++) { var parts = mimeType[i].split('='); if (parts && parts[0] === 'length') { size = parts[1]; break; } } return size; }, ['fileSize', 'size']); } }, { key: 'title', get: function get() { return this.getPrivateProperty(_, 'title', function (element) { return element && element.title || ''; }); } }, { key: 'uid', get: function get() { return this.getPrivateProperty(_, 'uid', 0); } }, { key: 'url', get: function get() { return this.absolute; }, set: function set(value) { this.absolute = value; } }], [{ key: 'create', value: function create(obj) { var origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; if (obj instanceof this) { return obj; } var instance = new this(); if (obj) { instance.set('origin', origin || window.location.origin + Drupal.settings.basePath + Drupal.settings.pathPrefix); instance.set(typeof obj === 'string' ? { url: obj } : obj); } return instance; } }]); return Url; }(); Drupal.Url = Url; })(window.Drupal);