226 lines
6.0 KiB
JavaScript
226 lines
6.0 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, 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, '"').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 = _ref => {
|
|
let {
|
|
message
|
|
} = _ref;
|
|
|
|
if (drupalSettings.suppressDeprecationErrors === false && typeof console !== 'undefined' && console.warn) {
|
|
console.warn(`[Deprecation] ${message}`);
|
|
}
|
|
};
|
|
|
|
Drupal.deprecatedProperty = _ref2 => {
|
|
let {
|
|
target,
|
|
deprecatedProperty,
|
|
message
|
|
} = _ref2;
|
|
|
|
if (!Proxy || !Reflect) {
|
|
return target;
|
|
}
|
|
|
|
return new Proxy(target, {
|
|
get: function (target, key) {
|
|
if (key === deprecatedProperty) {
|
|
Drupal.deprecationError({
|
|
message
|
|
});
|
|
}
|
|
|
|
for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
rest[_key - 2] = arguments[_key];
|
|
}
|
|
|
|
return Reflect.get(target, key, ...rest);
|
|
}
|
|
});
|
|
};
|
|
|
|
Drupal.theme = function (func) {
|
|
if (func in Drupal.theme) {
|
|
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
args[_key2 - 1] = arguments[_key2];
|
|
}
|
|
|
|
return Drupal.theme[func](...args);
|
|
}
|
|
};
|
|
|
|
Drupal.theme.placeholder = function (str) {
|
|
return `<em class="placeholder">${Drupal.checkPlain(str)}</em>`;
|
|
};
|
|
})(Drupal, window.drupalSettings, window.drupalTranslations, window.console, window.Proxy, window.Reflect); |