Chris@0: /** Chris@0: * DO NOT EDIT THIS FILE. Chris@0: * See the following change record for more information, Chris@0: * https://www.drupal.org/node/2815083 Chris@0: * @preserve Chris@0: **/ Chris@0: Chris@0: window.Drupal = { behaviors: {}, locale: {} }; Chris@0: Chris@0: (function (Drupal, drupalSettings, drupalTranslations) { Chris@0: Drupal.throwError = function (error) { Chris@0: setTimeout(function () { Chris@0: throw error; Chris@0: }, 0); Chris@0: }; Chris@0: Chris@0: Drupal.attachBehaviors = function (context, settings) { Chris@0: context = context || document; Chris@0: settings = settings || drupalSettings; Chris@0: var behaviors = Drupal.behaviors; Chris@0: Chris@14: Object.keys(behaviors || {}).forEach(function (i) { Chris@14: if (typeof behaviors[i].attach === 'function') { Chris@0: try { Chris@0: behaviors[i].attach(context, settings); Chris@0: } catch (e) { Chris@0: Drupal.throwError(e); Chris@0: } Chris@0: } Chris@14: }); Chris@0: }; Chris@0: Chris@0: Drupal.detachBehaviors = function (context, settings, trigger) { Chris@0: context = context || document; Chris@0: settings = settings || drupalSettings; Chris@0: trigger = trigger || 'unload'; Chris@0: var behaviors = Drupal.behaviors; Chris@0: Chris@14: Object.keys(behaviors || {}).forEach(function (i) { Chris@14: if (typeof behaviors[i].detach === 'function') { Chris@0: try { Chris@0: behaviors[i].detach(context, settings, trigger); Chris@0: } catch (e) { Chris@0: Drupal.throwError(e); Chris@0: } Chris@0: } Chris@14: }); Chris@0: }; Chris@0: Chris@0: Drupal.checkPlain = function (str) { Chris@12: str = str.toString().replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, '''); Chris@0: return str; Chris@0: }; Chris@0: Chris@0: Drupal.formatString = function (str, args) { Chris@0: var processedArgs = {}; Chris@0: Chris@14: Object.keys(args || {}).forEach(function (key) { Chris@14: switch (key.charAt(0)) { Chris@14: case '@': Chris@14: processedArgs[key] = Drupal.checkPlain(args[key]); Chris@14: break; Chris@0: Chris@14: case '!': Chris@14: processedArgs[key] = args[key]; Chris@14: break; Chris@0: Chris@14: default: Chris@14: processedArgs[key] = Drupal.theme('placeholder', args[key]); Chris@14: break; Chris@0: } Chris@14: }); Chris@0: Chris@0: return Drupal.stringReplace(str, processedArgs, null); Chris@0: }; Chris@0: Chris@0: Drupal.stringReplace = function (str, args, keys) { Chris@0: if (str.length === 0) { Chris@0: return str; Chris@0: } Chris@0: Chris@0: if (!Array.isArray(keys)) { Chris@14: keys = Object.keys(args || {}); Chris@0: Chris@0: keys.sort(function (a, b) { Chris@0: return a.length - b.length; Chris@0: }); Chris@0: } Chris@0: Chris@0: if (keys.length === 0) { Chris@0: return str; Chris@0: } Chris@0: Chris@0: var key = keys.pop(); Chris@0: var fragments = str.split(key); Chris@0: Chris@0: if (keys.length) { Chris@0: for (var i = 0; i < fragments.length; i++) { Chris@0: fragments[i] = Drupal.stringReplace(fragments[i], args, keys.slice(0)); Chris@0: } Chris@0: } Chris@0: Chris@0: return fragments.join(args[key]); Chris@0: }; Chris@0: Chris@0: Drupal.t = function (str, args, options) { Chris@0: options = options || {}; Chris@0: options.context = options.context || ''; Chris@0: Chris@0: if (typeof drupalTranslations !== 'undefined' && drupalTranslations.strings && drupalTranslations.strings[options.context] && drupalTranslations.strings[options.context][str]) { Chris@0: str = drupalTranslations.strings[options.context][str]; Chris@0: } Chris@0: Chris@0: if (args) { Chris@0: str = Drupal.formatString(str, args); Chris@0: } Chris@0: return str; Chris@0: }; Chris@0: Chris@0: Drupal.url = function (path) { Chris@0: return drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + path; Chris@0: }; Chris@0: Chris@0: Drupal.url.toAbsolute = function (url) { Chris@0: var urlParsingNode = document.createElement('a'); Chris@0: Chris@0: try { Chris@0: url = decodeURIComponent(url); Chris@0: } catch (e) {} Chris@0: Chris@0: urlParsingNode.setAttribute('href', url); Chris@0: Chris@0: return urlParsingNode.cloneNode(false).href; Chris@0: }; Chris@0: Chris@0: Drupal.url.isLocal = function (url) { Chris@0: var absoluteUrl = Drupal.url.toAbsolute(url); Chris@17: var protocol = window.location.protocol; Chris@0: Chris@0: if (protocol === 'http:' && absoluteUrl.indexOf('https:') === 0) { Chris@0: protocol = 'https:'; Chris@0: } Chris@17: var baseUrl = protocol + '//' + window.location.host + drupalSettings.path.baseUrl.slice(0, -1); Chris@0: Chris@0: try { Chris@0: absoluteUrl = decodeURIComponent(absoluteUrl); Chris@0: } catch (e) {} Chris@0: try { Chris@0: baseUrl = decodeURIComponent(baseUrl); Chris@0: } catch (e) {} Chris@0: Chris@0: return absoluteUrl === baseUrl || absoluteUrl.indexOf(baseUrl + '/') === 0; Chris@0: }; Chris@0: Chris@0: Drupal.formatPlural = function (count, singular, plural, args, options) { Chris@0: args = args || {}; Chris@0: args['@count'] = count; Chris@0: Chris@0: var pluralDelimiter = drupalSettings.pluralDelimiter; Chris@0: var translations = Drupal.t(singular + pluralDelimiter + plural, args, options).split(pluralDelimiter); Chris@0: var index = 0; Chris@0: Chris@0: if (typeof drupalTranslations !== 'undefined' && drupalTranslations.pluralFormula) { Chris@0: index = count in drupalTranslations.pluralFormula ? drupalTranslations.pluralFormula[count] : drupalTranslations.pluralFormula.default; Chris@0: } else if (args['@count'] !== 1) { Chris@0: index = 1; Chris@0: } Chris@0: Chris@0: return translations[index]; Chris@0: }; Chris@0: Chris@0: Drupal.encodePath = function (item) { Chris@0: return window.encodeURIComponent(item).replace(/%2F/g, '/'); Chris@0: }; Chris@0: Chris@0: Drupal.theme = function (func) { Chris@0: if (func in Drupal.theme) { Chris@14: var _Drupal$theme; Chris@14: Chris@14: for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { Chris@14: args[_key - 1] = arguments[_key]; Chris@14: } Chris@14: Chris@14: return (_Drupal$theme = Drupal.theme)[func].apply(_Drupal$theme, args); Chris@0: } Chris@0: }; Chris@0: Chris@0: Drupal.theme.placeholder = function (str) { Chris@0: return '' + Drupal.checkPlain(str) + ''; Chris@0: }; Chris@0: })(Drupal, window.drupalSettings, window.drupalTranslations);