191 lines
5.2 KiB
JavaScript
191 lines
5.2 KiB
JavaScript
/**
|
|
* 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, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
|
|
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 = window.location.protocol;
|
|
|
|
if (protocol === 'http:' && absoluteUrl.indexOf('https:') === 0) {
|
|
protocol = 'https:';
|
|
}
|
|
var 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;
|
|
|
|
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); |