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