diff core/misc/drupal.js @ 0:c75dbcec494b

Initial commit from drush-created site
author Chris Cannam
date Thu, 05 Jul 2018 14:24:15 +0000
parents
children a9cd425dd02b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/misc/drupal.js	Thu Jul 05 14:24:15 2018 +0000
@@ -0,0 +1,191 @@
+/**
+* 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) {
+  Drupal.throwError = function (error) {
+    setTimeout(function () {
+      throw error;
+    }, 0);
+  };
+
+  Drupal.attachBehaviors = function (context, settings) {
+    context = context || document;
+    settings = settings || drupalSettings;
+    var behaviors = Drupal.behaviors;
+
+    Object.keys(behaviors || {}).forEach(function (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';
+    var behaviors = Drupal.behaviors;
+
+    Object.keys(behaviors || {}).forEach(function (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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#39;');
+    return str;
+  };
+
+  Drupal.formatString = function (str, args) {
+    var processedArgs = {};
+
+    Object.keys(args || {}).forEach(function (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(function (a, b) {
+        return a.length - b.length;
+      });
+    }
+
+    if (keys.length === 0) {
+      return str;
+    }
+
+    var key = keys.pop();
+    var fragments = str.split(key);
+
+    if (keys.length) {
+      for (var 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) {
+    var urlParsingNode = document.createElement('a');
+
+    try {
+      url = decodeURIComponent(url);
+    } catch (e) {}
+
+    urlParsingNode.setAttribute('href', url);
+
+    return urlParsingNode.cloneNode(false).href;
+  };
+
+  Drupal.url.isLocal = function (url) {
+    var absoluteUrl = Drupal.url.toAbsolute(url);
+    var protocol = location.protocol;
+
+    if (protocol === 'http:' && absoluteUrl.indexOf('https:') === 0) {
+      protocol = 'https:';
+    }
+    var baseUrl = protocol + '//' + 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;
+
+    var pluralDelimiter = drupalSettings.pluralDelimiter;
+    var translations = Drupal.t(singular + pluralDelimiter + plural, args, options).split(pluralDelimiter);
+    var 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.theme = function (func) {
+    if (func in Drupal.theme) {
+      var _Drupal$theme;
+
+      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+        args[_key - 1] = arguments[_key];
+      }
+
+      return (_Drupal$theme = Drupal.theme)[func].apply(_Drupal$theme, args);
+    }
+  };
+
+  Drupal.theme.placeholder = function (str) {
+    return '<em class="placeholder">' + Drupal.checkPlain(str) + '</em>';
+  };
+})(Drupal, window.drupalSettings, window.drupalTranslations);
\ No newline at end of file