inital commit after raw pull from drupal
@@ -0,0 +1,292 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Clear Linux OS Forum - Forum for Clear Linux OS developers & users</title>
|
||||
<meta name="description" content="A place for users and developers to ask questions and to get community support">
|
||||
<meta name="generator" content="Discourse 3.1.0.beta1 - https://github.com/discourse/discourse version b8bbdcf0129fcc25ca346422bb66d8b66600b14f">
|
||||
<link rel="icon" type="image/png" href="https://global.discourse-cdn.com/clearlinux/optimized/1X/6768a8baca76f0527fd8335a67035c662d0f00cb_2_32x32.png">
|
||||
<link rel="apple-touch-icon" type="image/png" href="https://global.discourse-cdn.com/clearlinux/optimized/1X/99c803e4bceb458a9d9e3893b5532b3d659ff872_2_180x180.png">
|
||||
<meta name="theme-color" media="all" content="#0070C5">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover">
|
||||
<link rel="canonical" href="https://community.clearlinux.org/" />
|
||||
<script type="application/ld+json">{"@context":"http://schema.org","@type":"WebSite","url":"https://community.clearlinux.org","potentialAction":{"@type":"SearchAction","target":"https://community.clearlinux.org/search?q={search_term_string}","query-input":"required name=search_term_string"}}</script>
|
||||
<link rel="search" type="application/opensearchdescription+xml" href="https://community.clearlinux.org/opensearch.xml" title="Clear Linux OS Forum Search">
|
||||
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/color_definitions_clear-linux_3_7_a2b2661a23589afeae4ee275c70c116b6611c480.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" class="light-scheme"/>
|
||||
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/desktop_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="desktop" />
|
||||
|
||||
|
||||
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-akismet_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-akismet" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-assign_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-assign" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-cakeday_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-cakeday" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-canned-replies_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-canned-replies" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-checklist_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-checklist" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-data-explorer_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-data-explorer" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-details_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-details" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-footnote_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-footnote" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-local-dates_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-local-dates" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-narrative-bot_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-narrative-bot" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-policy_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-policy" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-presence_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-presence" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-solved_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-solved" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-spoiler-alert_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-spoiler-alert" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-topic-voting_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-topic-voting" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/hosted-site_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="hosted-site" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/lazy-yt_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="lazy-yt" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/poll_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="poll" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/discourse-topic-voting_desktop_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="discourse-topic-voting_desktop" />
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/poll_desktop_57592ed13b60a7076d25b6bb2c2fb9858fa50553.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="poll_desktop" />
|
||||
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/desktop_theme_5_c570808432cbaee76801bda6cbfd0659f6ed959f.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="5" data-theme-name="clearlinux_header"/>
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/desktop_theme_8_8b112cd76998dcd2560fef975ea33ab958ccd81c.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="8" data-theme-name="sub tabs"/>
|
||||
<link href="https://sea2.discourse-cdn.com/clearlinux/stylesheets/desktop_theme_7_566885c653784abfcc10abb9b3b09c448ea0525a.css?__ws=community.clearlinux.org" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="7" data-theme-name="clear linux*"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:site_name" content="Clear Linux OS Forum" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="https://global.discourse-cdn.com/clearlinux/original/1X/6768a8baca76f0527fd8335a67035c662d0f00cb.png" />
|
||||
<meta property="og:image" content="https://global.discourse-cdn.com/clearlinux/original/1X/6768a8baca76f0527fd8335a67035c662d0f00cb.png" />
|
||||
<meta property="og:url" content="https://community.clearlinux.org/" />
|
||||
<meta name="twitter:url" content="https://community.clearlinux.org/" />
|
||||
<meta property="og:title" content="Clear Linux OS Forum" />
|
||||
<meta name="twitter:title" content="Clear Linux OS Forum" />
|
||||
<meta property="og:description" content="A place for users and developers to ask questions and to get community support" />
|
||||
<meta name="twitter:description" content="A place for users and developers to ask questions and to get community support" />
|
||||
|
||||
|
||||
</head>
|
||||
<body class="crawler">
|
||||
<header id="header">
|
||||
<div class="container padding-md--left-right">
|
||||
<div class="header__menu_mobile">
|
||||
<i class="fa fa-bars header__menu_mobile__control" aria-hidden="true"></i>
|
||||
</div>
|
||||
|
||||
<div id="header__site_info">
|
||||
<div class="header__site_img_wrapper">
|
||||
<object class="header__site_img_object" type="image/svg+xml" data="https://clearlinux.org/modules/custom/clearlinux_org/themes/clearlinux_theme/clear-technologies.svg"></object>
|
||||
</div>
|
||||
<div class="header__site_name"><a href="https://clearlinux.org"> Clear Linux* Project</a></div>
|
||||
</div>
|
||||
|
||||
<nav class="header__menu">
|
||||
<ul class="header__menu_list">
|
||||
<li class="header__menu_list_item green">
|
||||
<a tabindex="1" href="node/31099.html">About</a>
|
||||
</li>
|
||||
<li class="header__menu_list_item purple active">
|
||||
<a tabindex="1" href="node/31103.html">Developer</a>
|
||||
</li>
|
||||
<li class="header__menu_list_item blue">
|
||||
<a tabindex="1" href="https://clearlinux.org/software">Software</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="header__menu-submenu purple">
|
||||
<div class="toolbar__container">
|
||||
<div class="container padding-md--left-right">
|
||||
<ul class="Header__main">
|
||||
<li>
|
||||
<a href="node/31103.html">Developer</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://community.clearlinux.org/" target="_blank" class="is-active">Community</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="documentation.html">Documentation</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<header>
|
||||
<a href="community.html">
|
||||
Clear Linux OS Forum
|
||||
</a>
|
||||
</header>
|
||||
|
||||
<div id="main-outlet" class="wrap" role="main">
|
||||
<div itemscope itemtype='http://schema.org/ItemList'>
|
||||
<meta itemprop='itemListOrder' content='http://schema.org/ItemListOrderDescending'>
|
||||
<table class='category-list'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='category'>Category</th>
|
||||
<th class='topics'>Topics</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class='category' style='border-color: #808281;'>
|
||||
<div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
|
||||
<meta itemprop='position' content='0'>
|
||||
<meta itemprop='url' content='/c/news/14'>
|
||||
<h3>
|
||||
<a href='http://community.clearlinux.org/c/news/14'>
|
||||
<span itemprop='name'>News and Announcements</span>
|
||||
</a>
|
||||
</h3>
|
||||
<div itemprop='description'></div>
|
||||
</div>
|
||||
</td>
|
||||
<td class='topics'>
|
||||
<div title='45 Topics'>45</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='category' style='border-color: #25AAE2;'>
|
||||
<div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
|
||||
<meta itemprop='position' content='1'>
|
||||
<meta itemprop='url' content='/c/general/11'>
|
||||
<h3>
|
||||
<a href='http://community.clearlinux.org/c/general/11'>
|
||||
<span itemprop='name'>General Discussion</span>
|
||||
</a>
|
||||
</h3>
|
||||
<div itemprop='description'></div>
|
||||
</div>
|
||||
</td>
|
||||
<td class='topics'>
|
||||
<div title='953 Topics'>953</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='category' style='border-color: #652D90;'>
|
||||
<div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
|
||||
<meta itemprop='position' content='2'>
|
||||
<meta itemprop='url' content='/c/devs/13'>
|
||||
<h3>
|
||||
<a href='http://community.clearlinux.org/c/devs/13'>
|
||||
<span itemprop='name'>Developer Discussion</span>
|
||||
</a>
|
||||
</h3>
|
||||
<div itemprop='description'></div>
|
||||
</div>
|
||||
</td>
|
||||
<td class='topics'>
|
||||
<div title='180 Topics'>180</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='category' style='border-color: #12A89D;'>
|
||||
<div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
|
||||
<meta itemprop='position' content='3'>
|
||||
<meta itemprop='url' content='/c/help/12'>
|
||||
<h3>
|
||||
<a href='http://community.clearlinux.org/c/help/12'>
|
||||
<span itemprop='name'>Q&A</span>
|
||||
</a>
|
||||
</h3>
|
||||
<div itemprop='description'></div>
|
||||
</div>
|
||||
</td>
|
||||
<td class='topics'>
|
||||
<div title='992 Topics'>992</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='category' style='border-color: #0088CC;'>
|
||||
<div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
|
||||
<meta itemprop='position' content='4'>
|
||||
<meta itemprop='url' content='/c/docs/55'>
|
||||
<h3>
|
||||
<a href='http://community.clearlinux.org/c/docs/55'>
|
||||
<span itemprop='name'>Docs</span>
|
||||
</a>
|
||||
</h3>
|
||||
<div itemprop='description'></div>
|
||||
</div>
|
||||
</td>
|
||||
<td class='topics'>
|
||||
<div title='5 Topics'>5</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='category' style='border-color: #F7941D;'>
|
||||
<div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
|
||||
<meta itemprop='position' content='5'>
|
||||
<meta itemprop='url' content='/c/feed/18'>
|
||||
<h3>
|
||||
<a href='http://community.clearlinux.org/c/feed/18'>
|
||||
<span itemprop='name'>Feedback</span>
|
||||
</a>
|
||||
</h3>
|
||||
<div itemprop='description'></div>
|
||||
</div>
|
||||
</td>
|
||||
<td class='topics'>
|
||||
<div title='62 Topics'>62</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='category' style='border-color: #0088CC;'>
|
||||
<div itemprop='itemListElement' itemscope itemtype='http://schema.org/ListItem'>
|
||||
<meta itemprop='position' content='6'>
|
||||
<meta itemprop='url' content='/c/language-subforums/57'>
|
||||
<h3>
|
||||
<a href='http://community.clearlinux.org/c/language-subforums/57'>
|
||||
<span itemprop='name'>Language Subforums</span>
|
||||
</a>
|
||||
</h3>
|
||||
<div itemprop='description'>These language forums are provided as a place where non-English speakers can communicate in their own languages. These sub-forums are not monitored by the Clear Linux team and are provided only as a courtesy to the community. If you have issues or bugs, please raise those (in English!) in GitHub and/or discuss the in the main parts of the Forums.</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class='topics'>
|
||||
<div title='1 Topics'>1</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<footer class="container wrap">
|
||||
<nav class='crawler-nav'>
|
||||
<ul>
|
||||
<li itemscope itemtype='http://schema.org/SiteNavigationElement'>
|
||||
<span itemprop='name'>
|
||||
<a href='community.html' itemprop="url">Home </a>
|
||||
</span>
|
||||
</li>
|
||||
<li itemscope itemtype='http://schema.org/SiteNavigationElement'>
|
||||
<span itemprop='name'>
|
||||
<a href='http://community.clearlinux.org/categories' itemprop="url">Categories </a>
|
||||
</span>
|
||||
</li>
|
||||
<li itemscope itemtype='http://schema.org/SiteNavigationElement'>
|
||||
<span itemprop='name'>
|
||||
<a href='http://community.clearlinux.org/guidelines' itemprop="url">FAQ/Guidelines </a>
|
||||
</span>
|
||||
</li>
|
||||
<li itemscope itemtype='http://schema.org/SiteNavigationElement'>
|
||||
<span itemprop='name'>
|
||||
<a href='http://community.clearlinux.org/tos' itemprop="url">Terms of Service </a>
|
||||
</span>
|
||||
</li>
|
||||
<li itemscope itemtype='http://schema.org/SiteNavigationElement'>
|
||||
<span itemprop='name'>
|
||||
<a href='http://community.clearlinux.org/privacy' itemprop="url">Privacy Policy </a>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<p class='powered-by-link'>Powered by <a href="https://www.discourse.org">Discourse</a>, best viewed with JavaScript enabled</p>
|
||||
</footer>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,106 @@
|
||||
/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */
|
||||
;(function(root, factory) {
|
||||
// https://github.com/umdjs/umd/blob/master/returnExports.js
|
||||
if (typeof exports == 'object') {
|
||||
// For Node.js.
|
||||
module.exports = factory(root);
|
||||
} else if (typeof define == 'function' && define.amd) {
|
||||
// For AMD. Register as an anonymous module.
|
||||
define([], factory.bind(root, root));
|
||||
} else {
|
||||
// For browser globals (not exposing the function separately).
|
||||
factory(root);
|
||||
}
|
||||
}(typeof global != 'undefined' ? global : this, function(root) {
|
||||
|
||||
if (root.CSS && root.CSS.escape) {
|
||||
return root.CSS.escape;
|
||||
}
|
||||
|
||||
// https://drafts.csswg.org/cssom/#serialize-an-identifier
|
||||
var cssEscape = function(value) {
|
||||
if (arguments.length == 0) {
|
||||
throw new TypeError('`CSS.escape` requires an argument.');
|
||||
}
|
||||
var string = String(value);
|
||||
var length = string.length;
|
||||
var index = -1;
|
||||
var codeUnit;
|
||||
var result = '';
|
||||
var firstCodeUnit = string.charCodeAt(0);
|
||||
while (++index < length) {
|
||||
codeUnit = string.charCodeAt(index);
|
||||
// Note: there’s no need to special-case astral symbols, surrogate
|
||||
// pairs, or lone surrogates.
|
||||
|
||||
// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER
|
||||
// (U+FFFD).
|
||||
if (codeUnit == 0x0000) {
|
||||
result += '\uFFFD';
|
||||
continue;
|
||||
}
|
||||
|
||||
if (
|
||||
// If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
|
||||
// U+007F, […]
|
||||
(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||
|
||||
// If the character is the first character and is in the range [0-9]
|
||||
// (U+0030 to U+0039), […]
|
||||
(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
|
||||
// If the character is the second character and is in the range [0-9]
|
||||
// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
|
||||
(
|
||||
index == 1 &&
|
||||
codeUnit >= 0x0030 && codeUnit <= 0x0039 &&
|
||||
firstCodeUnit == 0x002D
|
||||
)
|
||||
) {
|
||||
// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
|
||||
result += '\\' + codeUnit.toString(16) + ' ';
|
||||
continue;
|
||||
}
|
||||
|
||||
if (
|
||||
// If the character is the first character and is a `-` (U+002D), and
|
||||
// there is no second character, […]
|
||||
index == 0 &&
|
||||
length == 1 &&
|
||||
codeUnit == 0x002D
|
||||
) {
|
||||
result += '\\' + string.charAt(index);
|
||||
continue;
|
||||
}
|
||||
|
||||
// If the character is not handled by one of the above rules and is
|
||||
// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
|
||||
// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
|
||||
// U+005A), or [a-z] (U+0061 to U+007A), […]
|
||||
if (
|
||||
codeUnit >= 0x0080 ||
|
||||
codeUnit == 0x002D ||
|
||||
codeUnit == 0x005F ||
|
||||
codeUnit >= 0x0030 && codeUnit <= 0x0039 ||
|
||||
codeUnit >= 0x0041 && codeUnit <= 0x005A ||
|
||||
codeUnit >= 0x0061 && codeUnit <= 0x007A
|
||||
) {
|
||||
// the character itself
|
||||
result += string.charAt(index);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Otherwise, the escaped character.
|
||||
// https://drafts.csswg.org/cssom/#escape-a-character
|
||||
result += '\\' + string.charAt(index);
|
||||
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
if (!root.CSS) {
|
||||
root.CSS = {};
|
||||
}
|
||||
|
||||
root.CSS.escape = cssEscape;
|
||||
return cssEscape;
|
||||
|
||||
}));
|
||||
@@ -0,0 +1,8 @@
|
||||
/*!
|
||||
* jQuery Once v2.2.3 - http://github.com/robloach/jquery-once
|
||||
* @license MIT, GPL-2.0
|
||||
* http://opensource.org/licenses/MIT
|
||||
* http://opensource.org/licenses/GPL-2.0
|
||||
*/
|
||||
(function(e){"use strict";if(typeof exports==="object"&&typeof exports.nodeName!=="string"){e(require("jquery"))}else if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(t){"use strict";var r=function(e){e=e||"once";if(typeof e!=="string"){throw new TypeError("The jQuery Once id parameter must be a string")}return e};t.fn.once=function(e){var n="jquery-once-"+r(e);return this.filter(function(){return t(this).data(n)!==true}).data(n,true)};t.fn.removeOnce=function(e){return this.findOnce(e).removeData("jquery-once-"+r(e))};t.fn.findOnce=function(e){var n="jquery-once-"+r(e);return this.filter(function(){return t(this).data(n)===true})}});
|
||||
//# sourceMappingURL=jquery.once.min.js.map
|
||||
@@ -0,0 +1,2 @@
|
||||
/*! js-cookie v3.0.1 | MIT */
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self,function(){var n=e.Cookies,o=e.Cookies=t();o.noConflict=function(){return e.Cookies=n,o}}())}(this,(function(){"use strict";function e(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)e[o]=n[o]}return e}return function t(n,o){function r(t,r,i){if("undefined"!=typeof document){"number"==typeof(i=e({},o,i)).expires&&(i.expires=new Date(Date.now()+864e5*i.expires)),i.expires&&(i.expires=i.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var c="";for(var u in i)i[u]&&(c+="; "+u,!0!==i[u]&&(c+="="+i[u].split(";")[0]));return document.cookie=t+"="+n.write(r,t)+c}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var t=document.cookie?document.cookie.split("; "):[],o={},r=0;r<t.length;r++){var i=t[r].split("="),c=i.slice(1).join("=");try{var u=decodeURIComponent(i[0]);if(o[u]=n.read(c,u),e===u)break}catch(e){}}return e?o[e]:o}},remove:function(t,n){r(t,"",e({},n,{expires:-1}))},withAttributes:function(n){return t(this.converter,e({},this.attributes,n))},withConverter:function(n){return t(e({},this.converter,n),this.attributes)}},{attributes:{value:Object.freeze(o)},converter:{value:Object.freeze(n)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"})}));
|
||||
@@ -0,0 +1,3 @@
|
||||
/*! @drupal/once - v1.0.1 - 2021-06-12 */
|
||||
var once=function(){"use strict";var n=/[\11\12\14\15\40]+/,e="data-once",t=document;function r(n,t,r){return n[t+"Attribute"](e,r)}function o(e){if("string"!=typeof e)throw new TypeError("once ID must be a string");if(""===e||n.test(e))throw new RangeError("once ID must not be empty or contain spaces");return'[data-once~="'+e+'"]'}function u(n){if(!(n instanceof Element))throw new TypeError("The element must be an instance of Element");return!0}function i(n,e){void 0===e&&(e=t);var r=n;if(null===n)r=[];else{if(!n)throw new TypeError("Selector must not be empty");"string"!=typeof n||e!==t&&!u(e)?n instanceof Element&&(r=[n]):r=e.querySelectorAll(n)}return Array.prototype.slice.call(r)}function c(n,e,t){return e.filter((function(e){var r=u(e)&&e.matches(n);return r&&t&&t(e),r}))}function f(e,t){var o=t.add,u=t.remove,i=[];r(e,"has")&&r(e,"get").trim().split(n).forEach((function(n){i.indexOf(n)<0&&n!==u&&i.push(n)})),o&&i.push(o);var c=i.join(" ");r(e,""===c?"remove":"set",c)}function a(n,e,t){return c(":not("+o(n)+")",i(e,t),(function(e){return f(e,{add:n})}))}return a.remove=function(n,e,t){return c(o(n),i(e,t),(function(e){return f(e,{remove:n})}))},a.filter=function(n,e,t){return c(o(n),i(e,t))},a.find=function(n,e){return i(n?o(n):"[data-once]",e)},a}();
|
||||
//# sourceMappingURL=once.min.js.map
|
||||
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* tabbable 5.3.2
|
||||
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
|
||||
*/
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):(e="undefined"!=typeof globalThis?globalThis:e||self,function(){var n=e.tabbable,o=e.tabbable={};t(o),o.noConflict=function(){return e.tabbable=n,o}}())}(this,(function(e){"use strict";var t=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],n=t.join(","),o="undefined"==typeof Element,r=o?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,i=!o&&Element.prototype.getRootNode?function(e){return e.getRootNode()}:function(e){return e.ownerDocument},a=function(e,t,o){var i=Array.prototype.slice.apply(e.querySelectorAll(n));return t&&r.call(e,n)&&i.unshift(e),i=i.filter(o)},l=function e(t,o,i){for(var a=[],l=Array.from(t);l.length;){var u=l.shift();if("SLOT"===u.tagName){var c=u.assignedElements(),d=e(c.length?c:u.children,!0,i);i.flatten?a.push.apply(a,d):a.push({scope:u,candidates:d})}else{r.call(u,n)&&i.filter(u)&&(o||!t.includes(u))&&a.push(u);var f=u.shadowRoot||"function"==typeof i.getShadowRoot&&i.getShadowRoot(u);if(f){var s=e(!0===f?u.children:f.children,!0,i);i.flatten?a.push.apply(a,s):a.push({scope:u,candidates:s})}else l.unshift.apply(l,u.children)}}return a},u=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||e.isContentEditable)&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},c=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},d=function(e){return"INPUT"===e.tagName},f=function(e){return function(e){return d(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||i(e),o=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)t=o(window.CSS.escape(e.name));else try{t=o(e.name)}catch(e){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",e.message),!1}var r=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]}(t,e.form);return!r||r===e}(e)},s=function(e){var t=e.getBoundingClientRect(),n=t.width,o=t.height;return 0===n&&0===o},p=function(e,t){return!(t.disabled||function(e){return d(e)&&"hidden"===e.type}(t)||function(e,t){var n=t.displayCheck,o=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var a=r.call(e,"details>summary:first-of-type")?e.parentElement:e;if(r.call(a,"details:not([open]) *"))return!0;var l=i(e).host,u=(null==l?void 0:l.ownerDocument.contains(l))||e.ownerDocument.contains(e);if(n&&"full"!==n){if("non-zero-area"===n)return s(e)}else{if("function"==typeof o){for(var c=e;e;){var d=e.parentElement,f=i(e);if(d&&!d.shadowRoot&&!0===o(d))return s(e);e=e.assignedSlot?e.assignedSlot:d||f===e.ownerDocument?d:f.host}e=c}if(u)return!e.getClientRects().length}return!1}(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var o=t.children.item(n);if("LEGEND"===o.tagName)return!!r.call(t,"fieldset[disabled] *")||!o.contains(e)}return!0}t=t.parentElement}return!1}(t))},h=function(e,t){return!(f(t)||u(t)<0||!p(e,t))},m=t.concat("iframe").join(",");e.focusable=function(e,t){return(t=t||{}).getShadowRoot?l([e],t.includeContainer,{filter:p.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):a(e,t.includeContainer,p.bind(null,t))},e.isFocusable=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==r.call(e,m)&&p(t,e)},e.isTabbable=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==r.call(e,n)&&h(t,e)},e.tabbable=function(e,t){return function e(t){var n=[],o=[];return t.forEach((function(t,r){var i=!!t.scope,a=i?t.scope:t,l=u(a,i),c=i?e(t.candidates):a;0===l?i?n.push.apply(n,c):n.push(a):o.push({documentOrder:r,tabIndex:l,item:t,isScope:i,content:c})})),o.sort(c).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)}((t=t||{}).getShadowRoot?l([e],t.includeContainer,{filter:h.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot}):a(e,t.includeContainer,h.bind(null,t)))},Object.defineProperty(e,"__esModule",{value:!0})}));
|
||||
//# sourceMappingURL=index.umd.min.js.map
|
||||
@@ -0,0 +1,676 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
||||
|
||||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
||||
|
||||
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
||||
|
||||
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
||||
|
||||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
||||
|
||||
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
||||
|
||||
(function ($, window, Drupal, drupalSettings, _ref) {
|
||||
var isFocusable = _ref.isFocusable,
|
||||
tabbable = _ref.tabbable;
|
||||
Drupal.behaviors.AJAX = {
|
||||
attach: function attach(context, settings) {
|
||||
function loadAjaxBehavior(base) {
|
||||
var elementSettings = settings.ajax[base];
|
||||
|
||||
if (typeof elementSettings.selector === 'undefined') {
|
||||
elementSettings.selector = "#".concat(base);
|
||||
}
|
||||
|
||||
once('drupal-ajax', $(elementSettings.selector)).forEach(function (el) {
|
||||
elementSettings.element = el;
|
||||
elementSettings.base = base;
|
||||
Drupal.ajax(elementSettings);
|
||||
});
|
||||
}
|
||||
|
||||
Object.keys(settings.ajax || {}).forEach(function (base) {
|
||||
return loadAjaxBehavior(base);
|
||||
});
|
||||
Drupal.ajax.bindAjaxLinks(document.body);
|
||||
once('ajax', '.use-ajax-submit').forEach(function (el) {
|
||||
var elementSettings = {};
|
||||
elementSettings.url = $(el.form).attr('action');
|
||||
elementSettings.setClick = true;
|
||||
elementSettings.event = 'click';
|
||||
elementSettings.progress = {
|
||||
type: 'throbber'
|
||||
};
|
||||
elementSettings.base = el.id;
|
||||
elementSettings.element = el;
|
||||
Drupal.ajax(elementSettings);
|
||||
});
|
||||
},
|
||||
detach: function detach(context, settings, trigger) {
|
||||
if (trigger === 'unload') {
|
||||
Drupal.ajax.expired().forEach(function (instance) {
|
||||
Drupal.ajax.instances[instance.instanceIndex] = null;
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.AjaxError = function (xmlhttp, uri, customMessage) {
|
||||
var statusCode;
|
||||
var statusText;
|
||||
var responseText;
|
||||
|
||||
if (xmlhttp.status) {
|
||||
statusCode = "\n".concat(Drupal.t('An AJAX HTTP error occurred.'), "\n").concat(Drupal.t('HTTP Result Code: !status', {
|
||||
'!status': xmlhttp.status
|
||||
}));
|
||||
} else {
|
||||
statusCode = "\n".concat(Drupal.t('An AJAX HTTP request terminated abnormally.'));
|
||||
}
|
||||
|
||||
statusCode += "\n".concat(Drupal.t('Debugging information follows.'));
|
||||
var pathText = "\n".concat(Drupal.t('Path: !uri', {
|
||||
'!uri': uri
|
||||
}));
|
||||
statusText = '';
|
||||
|
||||
try {
|
||||
statusText = "\n".concat(Drupal.t('StatusText: !statusText', {
|
||||
'!statusText': xmlhttp.statusText.trim()
|
||||
}));
|
||||
} catch (e) {}
|
||||
|
||||
responseText = '';
|
||||
|
||||
try {
|
||||
responseText = "\n".concat(Drupal.t('ResponseText: !responseText', {
|
||||
'!responseText': xmlhttp.responseText.trim()
|
||||
}));
|
||||
} catch (e) {}
|
||||
|
||||
responseText = responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, '');
|
||||
responseText = responseText.replace(/[\n]+\s+/g, '\n');
|
||||
var readyStateText = xmlhttp.status === 0 ? "\n".concat(Drupal.t('ReadyState: !readyState', {
|
||||
'!readyState': xmlhttp.readyState
|
||||
})) : '';
|
||||
customMessage = customMessage ? "\n".concat(Drupal.t('CustomMessage: !customMessage', {
|
||||
'!customMessage': customMessage
|
||||
})) : '';
|
||||
this.message = statusCode + pathText + statusText + customMessage + responseText + readyStateText;
|
||||
this.name = 'AjaxError';
|
||||
};
|
||||
|
||||
Drupal.AjaxError.prototype = new Error();
|
||||
Drupal.AjaxError.prototype.constructor = Drupal.AjaxError;
|
||||
|
||||
Drupal.ajax = function (settings) {
|
||||
if (arguments.length !== 1) {
|
||||
throw new Error('Drupal.ajax() function must be called with one configuration object only');
|
||||
}
|
||||
|
||||
var base = settings.base || false;
|
||||
var element = settings.element || false;
|
||||
delete settings.base;
|
||||
delete settings.element;
|
||||
|
||||
if (!settings.progress && !element) {
|
||||
settings.progress = false;
|
||||
}
|
||||
|
||||
var ajax = new Drupal.Ajax(base, element, settings);
|
||||
ajax.instanceIndex = Drupal.ajax.instances.length;
|
||||
Drupal.ajax.instances.push(ajax);
|
||||
return ajax;
|
||||
};
|
||||
|
||||
Drupal.ajax.instances = [];
|
||||
|
||||
Drupal.ajax.expired = function () {
|
||||
return Drupal.ajax.instances.filter(function (instance) {
|
||||
return instance && instance.element !== false && !document.body.contains(instance.element);
|
||||
});
|
||||
};
|
||||
|
||||
Drupal.ajax.bindAjaxLinks = function (element) {
|
||||
once('ajax', '.use-ajax', element).forEach(function (ajaxLink) {
|
||||
var $linkElement = $(ajaxLink);
|
||||
var elementSettings = {
|
||||
progress: {
|
||||
type: 'throbber'
|
||||
},
|
||||
dialogType: $linkElement.data('dialog-type'),
|
||||
dialog: $linkElement.data('dialog-options'),
|
||||
dialogRenderer: $linkElement.data('dialog-renderer'),
|
||||
base: $linkElement.attr('id'),
|
||||
element: ajaxLink
|
||||
};
|
||||
var href = $linkElement.attr('href');
|
||||
|
||||
if (href) {
|
||||
elementSettings.url = href;
|
||||
elementSettings.event = 'click';
|
||||
}
|
||||
|
||||
Drupal.ajax(elementSettings);
|
||||
});
|
||||
};
|
||||
|
||||
Drupal.Ajax = function (base, element, elementSettings) {
|
||||
var defaults = {
|
||||
event: element ? 'mousedown' : null,
|
||||
keypress: true,
|
||||
selector: base ? "#".concat(base) : null,
|
||||
effect: 'none',
|
||||
speed: 'none',
|
||||
method: 'replaceWith',
|
||||
progress: {
|
||||
type: 'throbber',
|
||||
message: Drupal.t('Please wait...')
|
||||
},
|
||||
submit: {
|
||||
js: true
|
||||
}
|
||||
};
|
||||
$.extend(this, defaults, elementSettings);
|
||||
this.commands = new Drupal.AjaxCommands();
|
||||
this.instanceIndex = false;
|
||||
|
||||
if (this.wrapper) {
|
||||
this.wrapper = "#".concat(this.wrapper);
|
||||
}
|
||||
|
||||
this.element = element;
|
||||
this.element_settings = elementSettings;
|
||||
this.elementSettings = elementSettings;
|
||||
|
||||
if (this.element && this.element.form) {
|
||||
this.$form = $(this.element.form);
|
||||
}
|
||||
|
||||
if (!this.url) {
|
||||
var $element = $(this.element);
|
||||
|
||||
if ($element.is('a')) {
|
||||
this.url = $element.attr('href');
|
||||
} else if (this.element && element.form) {
|
||||
this.url = this.$form.attr('action');
|
||||
}
|
||||
}
|
||||
|
||||
var originalUrl = this.url;
|
||||
this.url = this.url.replace(/\/nojs(\/|$|\?|#)/, '/ajax$1');
|
||||
|
||||
if (drupalSettings.ajaxTrustedUrl[originalUrl]) {
|
||||
drupalSettings.ajaxTrustedUrl[this.url] = true;
|
||||
}
|
||||
|
||||
var ajax = this;
|
||||
ajax.options = {
|
||||
url: ajax.url,
|
||||
data: ajax.submit,
|
||||
beforeSerialize: function beforeSerialize(elementSettings, options) {
|
||||
return ajax.beforeSerialize(elementSettings, options);
|
||||
},
|
||||
beforeSubmit: function beforeSubmit(formValues, elementSettings, options) {
|
||||
ajax.ajaxing = true;
|
||||
return ajax.beforeSubmit(formValues, elementSettings, options);
|
||||
},
|
||||
beforeSend: function beforeSend(xmlhttprequest, options) {
|
||||
ajax.ajaxing = true;
|
||||
return ajax.beforeSend(xmlhttprequest, options);
|
||||
},
|
||||
success: function success(response, status, xmlhttprequest) {
|
||||
if (typeof response === 'string') {
|
||||
response = $.parseJSON(response);
|
||||
}
|
||||
|
||||
if (response !== null && !drupalSettings.ajaxTrustedUrl[ajax.url]) {
|
||||
if (xmlhttprequest.getResponseHeader('X-Drupal-Ajax-Token') !== '1') {
|
||||
var customMessage = Drupal.t('The response failed verification so will not be processed.');
|
||||
return ajax.error(xmlhttprequest, ajax.url, customMessage);
|
||||
}
|
||||
}
|
||||
|
||||
return ajax.success(response, status);
|
||||
},
|
||||
complete: function complete(xmlhttprequest, status) {
|
||||
ajax.ajaxing = false;
|
||||
|
||||
if (status === 'error' || status === 'parsererror') {
|
||||
return ajax.error(xmlhttprequest, ajax.url);
|
||||
}
|
||||
},
|
||||
dataType: 'json',
|
||||
jsonp: false,
|
||||
type: 'POST'
|
||||
};
|
||||
|
||||
if (elementSettings.dialog) {
|
||||
ajax.options.data.dialogOptions = elementSettings.dialog;
|
||||
}
|
||||
|
||||
if (ajax.options.url.indexOf('?') === -1) {
|
||||
ajax.options.url += '?';
|
||||
} else {
|
||||
ajax.options.url += '&';
|
||||
}
|
||||
|
||||
var wrapper = "drupal_".concat(elementSettings.dialogType || 'ajax');
|
||||
|
||||
if (elementSettings.dialogRenderer) {
|
||||
wrapper += ".".concat(elementSettings.dialogRenderer);
|
||||
}
|
||||
|
||||
ajax.options.url += "".concat(Drupal.ajax.WRAPPER_FORMAT, "=").concat(wrapper);
|
||||
$(ajax.element).on(elementSettings.event, function (event) {
|
||||
if (!drupalSettings.ajaxTrustedUrl[ajax.url] && !Drupal.url.isLocal(ajax.url)) {
|
||||
throw new Error(Drupal.t('The callback URL is not local and not trusted: !url', {
|
||||
'!url': ajax.url
|
||||
}));
|
||||
}
|
||||
|
||||
return ajax.eventResponse(this, event);
|
||||
});
|
||||
|
||||
if (elementSettings.keypress) {
|
||||
$(ajax.element).on('keypress', function (event) {
|
||||
return ajax.keypressResponse(this, event);
|
||||
});
|
||||
}
|
||||
|
||||
if (elementSettings.prevent) {
|
||||
$(ajax.element).on(elementSettings.prevent, false);
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.ajax.WRAPPER_FORMAT = '_wrapper_format';
|
||||
Drupal.Ajax.AJAX_REQUEST_PARAMETER = '_drupal_ajax';
|
||||
|
||||
Drupal.Ajax.prototype.execute = function () {
|
||||
if (this.ajaxing) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
this.beforeSerialize(this.element, this.options);
|
||||
return $.ajax(this.options);
|
||||
} catch (e) {
|
||||
this.ajaxing = false;
|
||||
window.alert("An error occurred while attempting to process ".concat(this.options.url, ": ").concat(e.message));
|
||||
return $.Deferred().reject();
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.keypressResponse = function (element, event) {
|
||||
var ajax = this;
|
||||
|
||||
if (event.which === 13 || event.which === 32 && element.type !== 'text' && element.type !== 'textarea' && element.type !== 'tel' && element.type !== 'number') {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
$(element).trigger(ajax.elementSettings.event);
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.eventResponse = function (element, event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
var ajax = this;
|
||||
|
||||
if (ajax.ajaxing) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
if (ajax.$form) {
|
||||
if (ajax.setClick) {
|
||||
element.form.clk = element;
|
||||
}
|
||||
|
||||
ajax.$form.ajaxSubmit(ajax.options);
|
||||
} else {
|
||||
ajax.beforeSerialize(ajax.element, ajax.options);
|
||||
$.ajax(ajax.options);
|
||||
}
|
||||
} catch (e) {
|
||||
ajax.ajaxing = false;
|
||||
window.alert("An error occurred while attempting to process ".concat(ajax.options.url, ": ").concat(e.message));
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.beforeSerialize = function (element, options) {
|
||||
if (this.$form && document.body.contains(this.$form.get(0))) {
|
||||
var settings = this.settings || drupalSettings;
|
||||
Drupal.detachBehaviors(this.$form.get(0), settings, 'serialize');
|
||||
}
|
||||
|
||||
options.data[Drupal.Ajax.AJAX_REQUEST_PARAMETER] = 1;
|
||||
var pageState = drupalSettings.ajaxPageState;
|
||||
options.data['ajax_page_state[theme]'] = pageState.theme;
|
||||
options.data['ajax_page_state[theme_token]'] = pageState.theme_token;
|
||||
options.data['ajax_page_state[libraries]'] = pageState.libraries;
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.beforeSubmit = function (formValues, element, options) {};
|
||||
|
||||
Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) {
|
||||
if (this.$form) {
|
||||
options.extraData = options.extraData || {};
|
||||
options.extraData.ajax_iframe_upload = '1';
|
||||
var v = $.fieldValue(this.element);
|
||||
|
||||
if (v !== null) {
|
||||
options.extraData[this.element.name] = v;
|
||||
}
|
||||
}
|
||||
|
||||
$(this.element).prop('disabled', true);
|
||||
|
||||
if (!this.progress || !this.progress.type) {
|
||||
return;
|
||||
}
|
||||
|
||||
var progressIndicatorMethod = "setProgressIndicator".concat(this.progress.type.slice(0, 1).toUpperCase()).concat(this.progress.type.slice(1).toLowerCase());
|
||||
|
||||
if (progressIndicatorMethod in this && typeof this[progressIndicatorMethod] === 'function') {
|
||||
this[progressIndicatorMethod].call(this);
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.theme.ajaxProgressThrobber = function (message) {
|
||||
var messageMarkup = typeof message === 'string' ? Drupal.theme('ajaxProgressMessage', message) : '';
|
||||
var throbber = '<div class="throbber"> </div>';
|
||||
return "<div class=\"ajax-progress ajax-progress-throbber\">".concat(throbber).concat(messageMarkup, "</div>");
|
||||
};
|
||||
|
||||
Drupal.theme.ajaxProgressIndicatorFullscreen = function () {
|
||||
return '<div class="ajax-progress ajax-progress-fullscreen"> </div>';
|
||||
};
|
||||
|
||||
Drupal.theme.ajaxProgressMessage = function (message) {
|
||||
return "<div class=\"message\">".concat(message, "</div>");
|
||||
};
|
||||
|
||||
Drupal.theme.ajaxProgressBar = function ($element) {
|
||||
return $('<div class="ajax-progress ajax-progress-bar"></div>').append($element);
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.setProgressIndicatorBar = function () {
|
||||
var progressBar = new Drupal.ProgressBar("ajax-progress-".concat(this.element.id), $.noop, this.progress.method, $.noop);
|
||||
|
||||
if (this.progress.message) {
|
||||
progressBar.setProgress(-1, this.progress.message);
|
||||
}
|
||||
|
||||
if (this.progress.url) {
|
||||
progressBar.startMonitoring(this.progress.url, this.progress.interval || 1500);
|
||||
}
|
||||
|
||||
this.progress.element = $(Drupal.theme('ajaxProgressBar', progressBar.element));
|
||||
this.progress.object = progressBar;
|
||||
$(this.element).after(this.progress.element);
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.setProgressIndicatorThrobber = function () {
|
||||
this.progress.element = $(Drupal.theme('ajaxProgressThrobber', this.progress.message));
|
||||
$(this.element).after(this.progress.element);
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.setProgressIndicatorFullscreen = function () {
|
||||
this.progress.element = $(Drupal.theme('ajaxProgressIndicatorFullscreen'));
|
||||
$('body').append(this.progress.element);
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.success = function (response, status) {
|
||||
var _this = this;
|
||||
|
||||
if (this.progress.element) {
|
||||
$(this.progress.element).remove();
|
||||
}
|
||||
|
||||
if (this.progress.object) {
|
||||
this.progress.object.stopMonitoring();
|
||||
}
|
||||
|
||||
$(this.element).prop('disabled', false);
|
||||
var elementParents = $(this.element).parents('[data-drupal-selector]').addBack().toArray();
|
||||
var focusChanged = false;
|
||||
Object.keys(response || {}).forEach(function (i) {
|
||||
if (response[i].command && _this.commands[response[i].command]) {
|
||||
_this.commands[response[i].command](_this, response[i], status);
|
||||
|
||||
if (response[i].command === 'invoke' && response[i].method === 'focus' || response[i].command === 'focusFirst') {
|
||||
focusChanged = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (!focusChanged && this.element && !$(this.element).data('disable-refocus')) {
|
||||
var target = false;
|
||||
|
||||
for (var n = elementParents.length - 1; !target && n >= 0; n--) {
|
||||
target = document.querySelector("[data-drupal-selector=\"".concat(elementParents[n].getAttribute('data-drupal-selector'), "\"]"));
|
||||
}
|
||||
|
||||
if (target) {
|
||||
$(target).trigger('focus');
|
||||
}
|
||||
}
|
||||
|
||||
if (this.$form && document.body.contains(this.$form.get(0))) {
|
||||
var settings = this.settings || drupalSettings;
|
||||
Drupal.attachBehaviors(this.$form.get(0), settings);
|
||||
}
|
||||
|
||||
this.settings = null;
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.getEffect = function (response) {
|
||||
var type = response.effect || this.effect;
|
||||
var speed = response.speed || this.speed;
|
||||
var effect = {};
|
||||
|
||||
if (type === 'none') {
|
||||
effect.showEffect = 'show';
|
||||
effect.hideEffect = 'hide';
|
||||
effect.showSpeed = '';
|
||||
} else if (type === 'fade') {
|
||||
effect.showEffect = 'fadeIn';
|
||||
effect.hideEffect = 'fadeOut';
|
||||
effect.showSpeed = speed;
|
||||
} else {
|
||||
effect.showEffect = "".concat(type, "Toggle");
|
||||
effect.hideEffect = "".concat(type, "Toggle");
|
||||
effect.showSpeed = speed;
|
||||
}
|
||||
|
||||
return effect;
|
||||
};
|
||||
|
||||
Drupal.Ajax.prototype.error = function (xmlhttprequest, uri, customMessage) {
|
||||
if (this.progress.element) {
|
||||
$(this.progress.element).remove();
|
||||
}
|
||||
|
||||
if (this.progress.object) {
|
||||
this.progress.object.stopMonitoring();
|
||||
}
|
||||
|
||||
$(this.wrapper).show();
|
||||
$(this.element).prop('disabled', false);
|
||||
|
||||
if (this.$form && document.body.contains(this.$form.get(0))) {
|
||||
var settings = this.settings || drupalSettings;
|
||||
Drupal.attachBehaviors(this.$form.get(0), settings);
|
||||
}
|
||||
|
||||
throw new Drupal.AjaxError(xmlhttprequest, uri, customMessage);
|
||||
};
|
||||
|
||||
Drupal.theme.ajaxWrapperNewContent = function ($newContent, ajax, response) {
|
||||
return (response.effect || ajax.effect) !== 'none' && $newContent.filter(function (i) {
|
||||
return !($newContent[i].nodeName === '#comment' || $newContent[i].nodeName === '#text' && /^(\s|\n|\r)*$/.test($newContent[i].textContent));
|
||||
}).length > 1 ? Drupal.theme('ajaxWrapperMultipleRootElements', $newContent) : $newContent;
|
||||
};
|
||||
|
||||
Drupal.theme.ajaxWrapperMultipleRootElements = function ($elements) {
|
||||
return $('<div></div>').append($elements);
|
||||
};
|
||||
|
||||
Drupal.AjaxCommands = function () {};
|
||||
|
||||
Drupal.AjaxCommands.prototype = {
|
||||
insert: function insert(ajax, response) {
|
||||
var $wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
|
||||
var method = response.method || ajax.method;
|
||||
var effect = ajax.getEffect(response);
|
||||
var settings = response.settings || ajax.settings || drupalSettings;
|
||||
var $newContent = $($.parseHTML(response.data, document, true));
|
||||
$newContent = Drupal.theme('ajaxWrapperNewContent', $newContent, ajax, response);
|
||||
|
||||
switch (method) {
|
||||
case 'html':
|
||||
case 'replaceWith':
|
||||
case 'replaceAll':
|
||||
case 'empty':
|
||||
case 'remove':
|
||||
Drupal.detachBehaviors($wrapper.get(0), settings);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
$wrapper[method]($newContent);
|
||||
|
||||
if (effect.showEffect !== 'show') {
|
||||
$newContent.hide();
|
||||
}
|
||||
|
||||
var $ajaxNewContent = $newContent.find('.ajax-new-content');
|
||||
|
||||
if ($ajaxNewContent.length) {
|
||||
$ajaxNewContent.hide();
|
||||
$newContent.show();
|
||||
$ajaxNewContent[effect.showEffect](effect.showSpeed);
|
||||
} else if (effect.showEffect !== 'show') {
|
||||
$newContent[effect.showEffect](effect.showSpeed);
|
||||
}
|
||||
|
||||
if ($newContent.parents('html').length) {
|
||||
$newContent.each(function (index, element) {
|
||||
if (element.nodeType === Node.ELEMENT_NODE) {
|
||||
Drupal.attachBehaviors(element, settings);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
remove: function remove(ajax, response, status) {
|
||||
var settings = response.settings || ajax.settings || drupalSettings;
|
||||
$(response.selector).each(function () {
|
||||
Drupal.detachBehaviors(this, settings);
|
||||
}).remove();
|
||||
},
|
||||
changed: function changed(ajax, response, status) {
|
||||
var $element = $(response.selector);
|
||||
|
||||
if (!$element.hasClass('ajax-changed')) {
|
||||
$element.addClass('ajax-changed');
|
||||
|
||||
if (response.asterisk) {
|
||||
$element.find(response.asterisk).append(" <abbr class=\"ajax-changed\" title=\"".concat(Drupal.t('Changed'), "\">*</abbr> "));
|
||||
}
|
||||
}
|
||||
},
|
||||
alert: function alert(ajax, response, status) {
|
||||
window.alert(response.text);
|
||||
},
|
||||
announce: function announce(ajax, response) {
|
||||
if (response.priority) {
|
||||
Drupal.announce(response.text, response.priority);
|
||||
} else {
|
||||
Drupal.announce(response.text);
|
||||
}
|
||||
},
|
||||
redirect: function redirect(ajax, response, status) {
|
||||
window.location = response.url;
|
||||
},
|
||||
css: function css(ajax, response, status) {
|
||||
$(response.selector).css(response.argument);
|
||||
},
|
||||
settings: function settings(ajax, response, status) {
|
||||
var ajaxSettings = drupalSettings.ajax;
|
||||
|
||||
if (ajaxSettings) {
|
||||
Drupal.ajax.expired().forEach(function (instance) {
|
||||
if (instance.selector) {
|
||||
var selector = instance.selector.replace('#', '');
|
||||
|
||||
if (selector in ajaxSettings) {
|
||||
delete ajaxSettings[selector];
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (response.merge) {
|
||||
$.extend(true, drupalSettings, response.settings);
|
||||
} else {
|
||||
ajax.settings = response.settings;
|
||||
}
|
||||
},
|
||||
data: function data(ajax, response, status) {
|
||||
$(response.selector).data(response.name, response.value);
|
||||
},
|
||||
focusFirst: function focusFirst(ajax, response, status) {
|
||||
var focusChanged = false;
|
||||
var container = document.querySelector(response.selector);
|
||||
|
||||
if (container) {
|
||||
var tabbableElements = tabbable(container);
|
||||
|
||||
if (tabbableElements.length) {
|
||||
tabbableElements[0].focus();
|
||||
focusChanged = true;
|
||||
} else if (isFocusable(container)) {
|
||||
container.focus();
|
||||
focusChanged = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (ajax.hasOwnProperty('element') && !focusChanged) {
|
||||
ajax.element.focus();
|
||||
}
|
||||
},
|
||||
invoke: function invoke(ajax, response, status) {
|
||||
var $element = $(response.selector);
|
||||
$element[response.method].apply($element, _toConsumableArray(response.args));
|
||||
},
|
||||
restripe: function restripe(ajax, response, status) {
|
||||
$(response.selector).find('> tbody > tr:visible, > tr:visible').removeClass('odd even').filter(':even').addClass('odd').end().filter(':odd').addClass('even');
|
||||
},
|
||||
update_build_id: function update_build_id(ajax, response, status) {
|
||||
document.querySelectorAll("input[name=\"form_build_id\"][value=\"".concat(response.old, "\"]")).forEach(function (item) {
|
||||
item.value = response.new;
|
||||
});
|
||||
},
|
||||
add_css: function add_css(ajax, response, status) {
|
||||
$('head').prepend(response.data);
|
||||
},
|
||||
message: function message(ajax, response) {
|
||||
var messages = new Drupal.Message(document.querySelector(response.messageWrapperQuerySelector));
|
||||
|
||||
if (response.clearPrevious) {
|
||||
messages.clear();
|
||||
}
|
||||
|
||||
messages.add(response.message, response.messageOptions);
|
||||
}
|
||||
};
|
||||
})(jQuery, window, Drupal, drupalSettings, window.tabbable);
|
||||
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
Drupal.debounce = function (func, wait, immediate) {
|
||||
var timeout;
|
||||
var result;
|
||||
return function () {
|
||||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||||
args[_key] = arguments[_key];
|
||||
}
|
||||
|
||||
var context = this;
|
||||
|
||||
var later = function later() {
|
||||
timeout = null;
|
||||
|
||||
if (!immediate) {
|
||||
result = func.apply(context, args);
|
||||
}
|
||||
};
|
||||
|
||||
var callNow = immediate && !timeout;
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(later, wait);
|
||||
|
||||
if (callNow) {
|
||||
result = func.apply(context, args);
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
if (window.jQuery) {
|
||||
jQuery.noConflict();
|
||||
}
|
||||
|
||||
document.documentElement.className += ' js';
|
||||
|
||||
(function (Drupal, drupalSettings) {
|
||||
var domReady = function domReady(callback) {
|
||||
var listener = function listener() {
|
||||
callback();
|
||||
document.removeEventListener('DOMContentLoaded', listener);
|
||||
};
|
||||
|
||||
if (document.readyState !== 'loading') {
|
||||
setTimeout(callback, 0);
|
||||
} else {
|
||||
document.addEventListener('DOMContentLoaded', listener);
|
||||
}
|
||||
};
|
||||
|
||||
domReady(function () {
|
||||
Drupal.attachBehaviors(document, drupalSettings);
|
||||
});
|
||||
})(Drupal, window.drupalSettings);
|
||||
@@ -0,0 +1,224 @@
|
||||
/**
|
||||
* 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(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 = "".concat(protocol, "//").concat(window.location.host).concat(drupalSettings.path.baseUrl.slice(0, -1));
|
||||
|
||||
try {
|
||||
absoluteUrl = decodeURIComponent(absoluteUrl);
|
||||
} catch (e) {}
|
||||
|
||||
try {
|
||||
baseUrl = decodeURIComponent(baseUrl);
|
||||
} catch (e) {}
|
||||
|
||||
return absoluteUrl === baseUrl || absoluteUrl.indexOf("".concat(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.deprecationError = function (_ref) {
|
||||
var message = _ref.message;
|
||||
|
||||
if (drupalSettings.suppressDeprecationErrors === false && typeof console !== 'undefined' && console.warn) {
|
||||
console.warn("[Deprecation] ".concat(message));
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.deprecatedProperty = function (_ref2) {
|
||||
var target = _ref2.target,
|
||||
deprecatedProperty = _ref2.deprecatedProperty,
|
||||
message = _ref2.message;
|
||||
|
||||
if (!Proxy || !Reflect) {
|
||||
return target;
|
||||
}
|
||||
|
||||
return new Proxy(target, {
|
||||
get: function get(target, key) {
|
||||
if (key === deprecatedProperty) {
|
||||
Drupal.deprecationError({
|
||||
message: 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.apply(Reflect, [target, key].concat(rest));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
Drupal.theme = function (func) {
|
||||
if (func in Drupal.theme) {
|
||||
var _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 = Drupal.theme)[func].apply(_Drupal$theme, args);
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.theme.placeholder = function (str) {
|
||||
return "<em class=\"placeholder\">".concat(Drupal.checkPlain(str), "</em>");
|
||||
};
|
||||
})(Drupal, window.drupalSettings, window.drupalTranslations, window.console, window.Proxy, window.Reflect);
|
||||
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
(function () {
|
||||
var settingsElement = document.querySelector('head > script[type="application/json"][data-drupal-selector="drupal-settings-json"], body > script[type="application/json"][data-drupal-selector="drupal-settings-json"]');
|
||||
window.drupalSettings = {};
|
||||
|
||||
if (settingsElement !== null) {
|
||||
window.drupalSettings = JSON.parse(settingsElement.textContent);
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
(function ($, once) {
|
||||
var deprecatedMessageSuffix = "is deprecated in Drupal 9.3.0 and will be removed in Drupal 10.0.0. Use the core/once library instead. See https://www.drupal.org/node/3158256";
|
||||
var originalJQOnce = $.fn.once;
|
||||
var originalJQRemoveOnce = $.fn.removeOnce;
|
||||
|
||||
$.fn.once = function jQueryOnce(id) {
|
||||
Drupal.deprecationError({
|
||||
message: "jQuery.once() ".concat(deprecatedMessageSuffix)
|
||||
});
|
||||
return originalJQOnce.apply(this, [id]);
|
||||
};
|
||||
|
||||
$.fn.removeOnce = function jQueryRemoveOnce(id) {
|
||||
Drupal.deprecationError({
|
||||
message: "jQuery.removeOnce() ".concat(deprecatedMessageSuffix)
|
||||
});
|
||||
return originalJQRemoveOnce.apply(this, [id]);
|
||||
};
|
||||
|
||||
var drupalOnce = once;
|
||||
|
||||
function augmentedOnce(id, selector, context) {
|
||||
originalJQOnce.apply($(selector, context), [id]);
|
||||
return drupalOnce(id, selector, context);
|
||||
}
|
||||
|
||||
function remove(id, selector, context) {
|
||||
originalJQRemoveOnce.apply($(selector, context), [id]);
|
||||
return drupalOnce.remove(id, selector, context);
|
||||
}
|
||||
|
||||
window.once = Object.assign(augmentedOnce, drupalOnce, {
|
||||
remove: remove
|
||||
});
|
||||
})(jQuery, once);
|
||||
@@ -0,0 +1,71 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
(function (Modernizr) {
|
||||
var _deprecationErrorModernizrCopy = function _deprecationErrorModernizrCopy(_ref) {
|
||||
var message = _ref.message;
|
||||
|
||||
if (typeof console !== 'undefined' && console.warn) {
|
||||
console.warn("[Deprecation] ".concat(message));
|
||||
}
|
||||
};
|
||||
|
||||
var _deprecatedPropertyModernizrCopy = function _deprecatedPropertyModernizrCopy(_ref2) {
|
||||
var target = _ref2.target,
|
||||
deprecatedProperty = _ref2.deprecatedProperty,
|
||||
message = _ref2.message;
|
||||
|
||||
if (!Proxy || !Reflect) {
|
||||
return target;
|
||||
}
|
||||
|
||||
return new Proxy(target, {
|
||||
get: function get(target, key) {
|
||||
if (key === deprecatedProperty) {
|
||||
_deprecationErrorModernizrCopy({
|
||||
message: 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.apply(Reflect, [target, key].concat(rest));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
window.Modernizr = _deprecatedPropertyModernizrCopy({
|
||||
target: Modernizr,
|
||||
deprecatedProperty: 'touchevents',
|
||||
message: 'The touchevents property of Modernizr has been deprecated in drupal:9.4.0 and is removed from drupal:10.0.0. There will be no replacement for this feature. See https://www.drupal.org/node/3277381.'
|
||||
});
|
||||
|
||||
if (document.documentElement.classList.contains('touchevents') || document.documentElement.classList.contains('no-touchevents')) {
|
||||
return;
|
||||
}
|
||||
|
||||
Modernizr.addTest('touchevents', function () {
|
||||
_deprecationErrorModernizrCopy({
|
||||
message: 'The Modernizr touch events test is deprecated in Drupal 9.4.0 and will be removed in Drupal 10.0.0. See https://www.drupal.org/node/3277381 for information on its replacement and how it should be used.'
|
||||
});
|
||||
|
||||
var bool;
|
||||
|
||||
if ('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) {
|
||||
bool = true;
|
||||
} else {
|
||||
var query = ['@media (', Modernizr._prefixes.join('touch-enabled),('), 'heartz', ')', '{#modernizr{top:9px;position:absolute}}'].join('');
|
||||
Modernizr.testStyles(query, function (node) {
|
||||
bool = node.offsetTop === 9;
|
||||
});
|
||||
}
|
||||
|
||||
return bool;
|
||||
});
|
||||
})(Modernizr);
|
||||
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
if (!Element.prototype.matches) {
|
||||
Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
if (window.NodeList && !NodeList.prototype.forEach) {
|
||||
NodeList.prototype.forEach = Array.prototype.forEach;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
if (typeof Object.assign !== 'function') {
|
||||
Object.defineProperty(Object, 'assign', {
|
||||
value: function assign(target, varArgs) {
|
||||
'use strict';
|
||||
|
||||
if (target === null || target === undefined) {
|
||||
throw new TypeError('Cannot convert undefined or null to object');
|
||||
}
|
||||
|
||||
var to = Object(target);
|
||||
|
||||
for (var index = 1; index < arguments.length; index++) {
|
||||
var nextSource = arguments[index];
|
||||
|
||||
if (nextSource !== null && nextSource !== undefined) {
|
||||
for (var nextKey in nextSource) {
|
||||
if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
|
||||
to[nextKey] = nextSource[nextKey];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return to;
|
||||
},
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
(function ($, Drupal) {
|
||||
Drupal.theme.progressBar = function (id) {
|
||||
return "<div id=\"".concat(id, "\" class=\"progress\" aria-live=\"polite\">") + '<div class="progress__label"> </div>' + '<div class="progress__track"><div class="progress__bar"></div></div>' + '<div class="progress__percentage"></div>' + '<div class="progress__description"> </div>' + '</div>';
|
||||
};
|
||||
|
||||
Drupal.ProgressBar = function (id, updateCallback, method, errorCallback) {
|
||||
this.id = id;
|
||||
this.method = method || 'GET';
|
||||
this.updateCallback = updateCallback;
|
||||
this.errorCallback = errorCallback;
|
||||
this.element = $(Drupal.theme('progressBar', id));
|
||||
};
|
||||
|
||||
$.extend(Drupal.ProgressBar.prototype, {
|
||||
setProgress: function setProgress(percentage, message, label) {
|
||||
if (percentage >= 0 && percentage <= 100) {
|
||||
$(this.element).find('div.progress__bar').css('width', "".concat(percentage, "%"));
|
||||
$(this.element).find('div.progress__percentage').html("".concat(percentage, "%"));
|
||||
}
|
||||
|
||||
$('div.progress__description', this.element).html(message);
|
||||
$('div.progress__label', this.element).html(label);
|
||||
|
||||
if (this.updateCallback) {
|
||||
this.updateCallback(percentage, message, this);
|
||||
}
|
||||
},
|
||||
startMonitoring: function startMonitoring(uri, delay) {
|
||||
this.delay = delay;
|
||||
this.uri = uri;
|
||||
this.sendPing();
|
||||
},
|
||||
stopMonitoring: function stopMonitoring() {
|
||||
clearTimeout(this.timer);
|
||||
this.uri = null;
|
||||
},
|
||||
sendPing: function sendPing() {
|
||||
if (this.timer) {
|
||||
clearTimeout(this.timer);
|
||||
}
|
||||
|
||||
if (this.uri) {
|
||||
var pb = this;
|
||||
var uri = this.uri;
|
||||
|
||||
if (uri.indexOf('?') === -1) {
|
||||
uri += '?';
|
||||
} else {
|
||||
uri += '&';
|
||||
}
|
||||
|
||||
uri += '_format=json';
|
||||
$.ajax({
|
||||
type: this.method,
|
||||
url: uri,
|
||||
data: '',
|
||||
dataType: 'json',
|
||||
success: function success(progress) {
|
||||
if (progress.status === 0) {
|
||||
pb.displayError(progress.data);
|
||||
return;
|
||||
}
|
||||
|
||||
pb.setProgress(progress.percentage, progress.message, progress.label);
|
||||
pb.timer = setTimeout(function () {
|
||||
pb.sendPing();
|
||||
}, pb.delay);
|
||||
},
|
||||
error: function error(xmlhttp) {
|
||||
var e = new Drupal.AjaxError(xmlhttp, pb.uri);
|
||||
pb.displayError("<pre>".concat(e.message, "</pre>"));
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
displayError: function displayError(string) {
|
||||
var error = $('<div class="messages messages--error"></div>').html(string);
|
||||
$(this.element).before(error).hide();
|
||||
|
||||
if (this.errorCallback) {
|
||||
this.errorCallback(this);
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery, Drupal);
|
||||
@@ -0,0 +1,127 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
(function ($, Drupal, drupalSettings) {
|
||||
Drupal.behaviors.ViewsAjaxView = {};
|
||||
|
||||
Drupal.behaviors.ViewsAjaxView.attach = function (context, settings) {
|
||||
if (settings && settings.views && settings.views.ajaxViews) {
|
||||
var ajaxViews = settings.views.ajaxViews;
|
||||
Object.keys(ajaxViews || {}).forEach(function (i) {
|
||||
Drupal.views.instances[i] = new Drupal.views.ajaxView(ajaxViews[i]);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.behaviors.ViewsAjaxView.detach = function (context, settings, trigger) {
|
||||
if (trigger === 'unload') {
|
||||
if (settings && settings.views && settings.views.ajaxViews) {
|
||||
var ajaxViews = settings.views.ajaxViews;
|
||||
Object.keys(ajaxViews || {}).forEach(function (i) {
|
||||
var selector = ".js-view-dom-id-".concat(ajaxViews[i].view_dom_id);
|
||||
|
||||
if ($(selector, context).length) {
|
||||
delete Drupal.views.instances[i];
|
||||
delete settings.views.ajaxViews[i];
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Drupal.views = {};
|
||||
Drupal.views.instances = {};
|
||||
|
||||
Drupal.views.ajaxView = function (settings) {
|
||||
var selector = ".js-view-dom-id-".concat(settings.view_dom_id);
|
||||
this.$view = $(selector);
|
||||
var ajaxPath = drupalSettings.views.ajax_path;
|
||||
|
||||
if (ajaxPath.constructor.toString().indexOf('Array') !== -1) {
|
||||
ajaxPath = ajaxPath[0];
|
||||
}
|
||||
|
||||
var queryString = window.location.search || '';
|
||||
|
||||
if (queryString !== '') {
|
||||
queryString = queryString.slice(1).replace(/q=[^&]+&?|&?render=[^&]+/, '');
|
||||
|
||||
if (queryString !== '') {
|
||||
queryString = (/\?/.test(ajaxPath) ? '&' : '?') + queryString;
|
||||
}
|
||||
}
|
||||
|
||||
this.element_settings = {
|
||||
url: ajaxPath + queryString,
|
||||
submit: settings,
|
||||
setClick: true,
|
||||
event: 'click',
|
||||
selector: selector,
|
||||
progress: {
|
||||
type: 'fullscreen'
|
||||
}
|
||||
};
|
||||
this.settings = settings;
|
||||
this.$exposed_form = $("form#views-exposed-form-".concat(settings.view_name.replace(/_/g, '-'), "-").concat(settings.view_display_id.replace(/_/g, '-')));
|
||||
once('exposed-form', this.$exposed_form).forEach($.proxy(this.attachExposedFormAjax, this));
|
||||
once('ajax-pager', this.$view.filter($.proxy(this.filterNestedViews, this))).forEach($.proxy(this.attachPagerAjax, this));
|
||||
var selfSettings = $.extend({}, this.element_settings, {
|
||||
event: 'RefreshView',
|
||||
base: this.selector,
|
||||
element: this.$view.get(0)
|
||||
});
|
||||
this.refreshViewAjax = Drupal.ajax(selfSettings);
|
||||
};
|
||||
|
||||
Drupal.views.ajaxView.prototype.attachExposedFormAjax = function () {
|
||||
var that = this;
|
||||
this.exposedFormAjax = [];
|
||||
$('input[type=submit], button[type=submit], input[type=image]', this.$exposed_form).not('[data-drupal-selector=edit-reset]').each(function (index) {
|
||||
var selfSettings = $.extend({}, that.element_settings, {
|
||||
base: $(this).attr('id'),
|
||||
element: this
|
||||
});
|
||||
that.exposedFormAjax[index] = Drupal.ajax(selfSettings);
|
||||
});
|
||||
};
|
||||
|
||||
Drupal.views.ajaxView.prototype.filterNestedViews = function () {
|
||||
return !this.$view.parents('.view').length;
|
||||
};
|
||||
|
||||
Drupal.views.ajaxView.prototype.attachPagerAjax = function () {
|
||||
this.$view.find('ul.js-pager__items > li > a, th.views-field a, .attachment .views-summary a').each($.proxy(this.attachPagerLinkAjax, this));
|
||||
};
|
||||
|
||||
Drupal.views.ajaxView.prototype.attachPagerLinkAjax = function (id, link) {
|
||||
var $link = $(link);
|
||||
var viewData = {};
|
||||
var href = $link.attr('href');
|
||||
$.extend(viewData, this.settings, Drupal.Views.parseQueryString(href), Drupal.Views.parseViewArgs(href, this.settings.view_base_path));
|
||||
var selfSettings = $.extend({}, this.element_settings, {
|
||||
submit: viewData,
|
||||
base: false,
|
||||
element: link
|
||||
});
|
||||
this.pagerAjax = Drupal.ajax(selfSettings);
|
||||
};
|
||||
|
||||
Drupal.AjaxCommands.prototype.viewsScrollTop = function (ajax, response) {
|
||||
var offset = $(response.selector).offset();
|
||||
var scrollTarget = response.selector;
|
||||
|
||||
while ($(scrollTarget).scrollTop() === 0 && $(scrollTarget).parent()) {
|
||||
scrollTarget = $(scrollTarget).parent();
|
||||
}
|
||||
|
||||
if (offset.top - 10 < $(scrollTarget).scrollTop()) {
|
||||
$(scrollTarget).animate({
|
||||
scrollTop: offset.top - 10
|
||||
}, 500);
|
||||
}
|
||||
};
|
||||
})(jQuery, Drupal, drupalSettings);
|
||||
@@ -0,0 +1,74 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
(function ($, Drupal, drupalSettings) {
|
||||
Drupal.Views = {};
|
||||
|
||||
Drupal.Views.parseQueryString = function (query) {
|
||||
var args = {};
|
||||
var pos = query.indexOf('?');
|
||||
|
||||
if (pos !== -1) {
|
||||
query = query.substring(pos + 1);
|
||||
}
|
||||
|
||||
var pair;
|
||||
var pairs = query.split('&');
|
||||
|
||||
for (var i = 0; i < pairs.length; i++) {
|
||||
pair = pairs[i].split('=');
|
||||
|
||||
if (pair[0] !== 'q' && pair[1]) {
|
||||
args[decodeURIComponent(pair[0].replace(/\+/g, ' '))] = decodeURIComponent(pair[1].replace(/\+/g, ' '));
|
||||
}
|
||||
}
|
||||
|
||||
return args;
|
||||
};
|
||||
|
||||
Drupal.Views.parseViewArgs = function (href, viewPath) {
|
||||
var returnObj = {};
|
||||
var path = Drupal.Views.getPath(href);
|
||||
var viewHref = Drupal.url(viewPath).substring(drupalSettings.path.baseUrl.length);
|
||||
|
||||
if (viewHref && path.substring(0, viewHref.length + 1) === "".concat(viewHref, "/")) {
|
||||
returnObj.view_args = decodeURIComponent(path.substring(viewHref.length + 1, path.length));
|
||||
returnObj.view_path = path;
|
||||
}
|
||||
|
||||
return returnObj;
|
||||
};
|
||||
|
||||
Drupal.Views.pathPortion = function (href) {
|
||||
var protocol = window.location.protocol;
|
||||
|
||||
if (href.substring(0, protocol.length) === protocol) {
|
||||
href = href.substring(href.indexOf('/', protocol.length + 2));
|
||||
}
|
||||
|
||||
return href;
|
||||
};
|
||||
|
||||
Drupal.Views.getPath = function (href) {
|
||||
href = Drupal.Views.pathPortion(href);
|
||||
href = href.substring(drupalSettings.path.baseUrl.length, href.length);
|
||||
|
||||
if (href.substring(0, 3) === '?q=') {
|
||||
href = href.substring(3, href.length);
|
||||
}
|
||||
|
||||
var chars = ['#', '?', '&'];
|
||||
|
||||
for (var i = 0; i < chars.length; i++) {
|
||||
if (href.indexOf(chars[i]) > -1) {
|
||||
href = href.substr(0, href.indexOf(chars[i]));
|
||||
}
|
||||
}
|
||||
|
||||
return href;
|
||||
};
|
||||
})(jQuery, Drupal, drupalSettings);
|
||||
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* @file
|
||||
* Caption filter: default styling for displaying image captions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Essentials, based on http://stackoverflow.com/a/13363408.
|
||||
*/
|
||||
.caption {
|
||||
display: table;
|
||||
}
|
||||
.caption > * {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
.caption > figcaption {
|
||||
display: table-caption;
|
||||
max-width: none;
|
||||
caption-side: bottom;
|
||||
}
|
||||
|
||||
/**
|
||||
* While editing and whenever the caption is empty, show a placeholder.
|
||||
*
|
||||
* Based on http://codepen.io/flesler/pen/AEIFc.
|
||||
*/
|
||||
.caption > figcaption[contenteditable=true]:empty:before {
|
||||
content: attr(data-placeholder);
|
||||
font-style: italic;
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* @file
|
||||
* Throbber.
|
||||
*/
|
||||
|
||||
.ajax-progress {
|
||||
display: inline-block;
|
||||
padding: 1px 5px 2px 5px;
|
||||
}
|
||||
[dir="rtl"] .ajax-progress {
|
||||
float: right;
|
||||
}
|
||||
.ajax-progress-throbber .throbber {
|
||||
display: inline;
|
||||
padding: 1px 5px 2px;
|
||||
background: transparent url(../../../images/core/throbber-active.gif) no-repeat 0 center;
|
||||
}
|
||||
.ajax-progress-throbber .message {
|
||||
display: inline;
|
||||
padding: 1px 5px 2px;
|
||||
}
|
||||
tr .ajax-progress-throbber .throbber {
|
||||
margin: 0 2px;
|
||||
}
|
||||
.ajax-progress-bar {
|
||||
width: 16em;
|
||||
}
|
||||
|
||||
/* Full screen throbber */
|
||||
.ajax-progress-fullscreen {
|
||||
position: fixed;
|
||||
z-index: 1000;
|
||||
top: 48.5%;
|
||||
/* Can't do center:50% middle: 50%, so approximate it for a typical window size. */
|
||||
left: 49%; /* LTR */
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
padding: 4px;
|
||||
opacity: 0.9;
|
||||
border-radius: 7px;
|
||||
background-color: #232323;
|
||||
background-image: url(../../../images/core/loading-small.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
}
|
||||
[dir="rtl"] .ajax-progress-fullscreen {
|
||||
right: 49%;
|
||||
left: auto;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* @file
|
||||
* Alignment classes for text and block level elements.
|
||||
*/
|
||||
|
||||
.text-align-left {
|
||||
text-align: left;
|
||||
}
|
||||
.text-align-right {
|
||||
text-align: right;
|
||||
}
|
||||
.text-align-center {
|
||||
text-align: center;
|
||||
}
|
||||
.text-align-justify {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
/**
|
||||
* Alignment classes for block level elements (images, videos, blockquotes, etc.)
|
||||
*/
|
||||
.align-left {
|
||||
float: left;
|
||||
}
|
||||
.align-right {
|
||||
float: right;
|
||||
}
|
||||
.align-center {
|
||||
display: block;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* @file
|
||||
* Visual styles for animated throbber.
|
||||
*
|
||||
* @see autocomplete.js
|
||||
*/
|
||||
|
||||
.js input.form-autocomplete {
|
||||
background-image: url(../../../images/core/throbber-inactive.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 100% center; /* LTR */
|
||||
}
|
||||
.js[dir="rtl"] input.form-autocomplete {
|
||||
background-position: 0% center;
|
||||
}
|
||||
.js input.form-autocomplete.ui-autocomplete-loading {
|
||||
background-image: url(../../../images/core/throbber-active.gif);
|
||||
background-position: 100% center; /* LTR */
|
||||
}
|
||||
.js[dir="rtl"] input.form-autocomplete.ui-autocomplete-loading {
|
||||
background-position: 0% center;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* @file
|
||||
* Float clearing.
|
||||
*
|
||||
* Based on the micro clearfix hack by Nicolas Gallagher, with the :before
|
||||
* pseudo selector removed to allow normal top margin collapse.
|
||||
*
|
||||
* @see http://nicolasgallagher.com/micro-clearfix-hack
|
||||
*/
|
||||
|
||||
.clearfix:after {
|
||||
display: table;
|
||||
clear: both;
|
||||
content: "";
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* @file
|
||||
* Inline items.
|
||||
*/
|
||||
|
||||
.container-inline div,
|
||||
.container-inline label {
|
||||
display: inline;
|
||||
}
|
||||
/* Details contents always need to be rendered as block. */
|
||||
.container-inline .details-wrapper {
|
||||
display: block;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @file
|
||||
* Collapsible details.
|
||||
*
|
||||
* @see collapse.js
|
||||
*/
|
||||
|
||||
.js details:not([open]) .details-wrapper {
|
||||
display: none;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* @file
|
||||
* Fieldgroup border reset.
|
||||
*/
|
||||
|
||||
.fieldgroup {
|
||||
padding: 0;
|
||||
border-width: 0;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* @file
|
||||
* Utility classes to hide elements in different ways.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Hide elements from all users.
|
||||
*
|
||||
* Used for elements which should not be immediately displayed to any user. An
|
||||
* example would be collapsible details that will be expanded with a click
|
||||
* from a user. The effect of this class can be toggled with the jQuery show()
|
||||
* and hide() functions.
|
||||
*/
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide elements visually, but keep them available for screen readers.
|
||||
*
|
||||
* Used for information required for screen reader users to understand and use
|
||||
* the site where visual display is undesirable. Information provided in this
|
||||
* manner should be kept concise, to avoid unnecessary burden on the user.
|
||||
* "!important" is used to prevent unintentional overrides.
|
||||
*/
|
||||
.visually-hidden {
|
||||
position: absolute !important;
|
||||
overflow: hidden;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
/**
|
||||
* The .focusable class extends the .visually-hidden class to allow
|
||||
* the element to be focusable when navigated to via the keyboard.
|
||||
*/
|
||||
.visually-hidden.focusable:active,
|
||||
.visually-hidden.focusable:focus {
|
||||
position: static !important;
|
||||
overflow: visible;
|
||||
clip: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide visually and from screen readers, but maintain layout.
|
||||
*/
|
||||
.invisible {
|
||||
visibility: hidden;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* @file
|
||||
* Styles for item list.
|
||||
*/
|
||||
|
||||
.item-list__comma-list,
|
||||
.item-list__comma-list li {
|
||||
display: inline;
|
||||
}
|
||||
.item-list__comma-list {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.item-list__comma-list li:after {
|
||||
content: ", ";
|
||||
}
|
||||
.item-list__comma-list li:last-child:after {
|
||||
content: "";
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* @file
|
||||
* Utility classes to assist with JavaScript functionality.
|
||||
*/
|
||||
|
||||
/**
|
||||
* For anything you want to hide on page load when JS is enabled, so
|
||||
* that you can use the JS to control visibility and avoid flicker.
|
||||
*/
|
||||
.js .js-hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* For anything you want to show on page load only when JS is enabled.
|
||||
*/
|
||||
.js-show {
|
||||
display: none;
|
||||
}
|
||||
.js .js-show {
|
||||
display: block;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
/**
|
||||
* @file
|
||||
* Utility class to prevent text wrapping.
|
||||
*/
|
||||
|
||||
.nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
* @file
|
||||
* Contain positioned elements.
|
||||
*/
|
||||
|
||||
.position-container {
|
||||
position: relative;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
* @file
|
||||
* Progress behavior.
|
||||
*
|
||||
* @see progress.js
|
||||
*/
|
||||
|
||||
.progress {
|
||||
position: relative;
|
||||
}
|
||||
.progress__track {
|
||||
min-width: 100px;
|
||||
max-width: 100%;
|
||||
height: 16px;
|
||||
margin-top: 5px;
|
||||
border: 1px solid;
|
||||
background-color: #fff;
|
||||
}
|
||||
.progress__bar {
|
||||
width: 3%;
|
||||
min-width: 3%;
|
||||
max-width: 100%;
|
||||
height: 1.5em;
|
||||
background-color: #000;
|
||||
}
|
||||
.progress__description,
|
||||
.progress__percentage {
|
||||
overflow: hidden;
|
||||
margin-top: 0.2em;
|
||||
color: #555;
|
||||
font-size: 0.875em;
|
||||
}
|
||||
.progress__description {
|
||||
float: left; /* LTR */
|
||||
}
|
||||
[dir="rtl"] .progress__description {
|
||||
float: right;
|
||||
}
|
||||
.progress__percentage {
|
||||
float: right; /* LTR */
|
||||
}
|
||||
[dir="rtl"] .progress__percentage {
|
||||
float: left;
|
||||
}
|
||||
.progress--small .progress__track {
|
||||
height: 7px;
|
||||
}
|
||||
.progress--small .progress__bar {
|
||||
height: 7px;
|
||||
background-size: 20px 20px;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* @file
|
||||
* Utility class to remove browser styles, especially for button.
|
||||
*/
|
||||
|
||||
.reset-appearance {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0 none;
|
||||
background: transparent;
|
||||
line-height: inherit;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
/**
|
||||
* @file
|
||||
* Resizable textareas.
|
||||
*/
|
||||
|
||||
.resize-none {
|
||||
resize: none;
|
||||
}
|
||||
.resize-vertical {
|
||||
min-height: 2em;
|
||||
resize: vertical;
|
||||
}
|
||||
.resize-horizontal {
|
||||
max-width: 100%;
|
||||
resize: horizontal;
|
||||
}
|
||||
.resize-both {
|
||||
max-width: 100%;
|
||||
min-height: 2em;
|
||||
resize: both;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* @file
|
||||
* Table header behavior.
|
||||
*
|
||||
* @see tableheader.js
|
||||
*/
|
||||
|
||||
table.sticky-header {
|
||||
z-index: 500;
|
||||
top: 0;
|
||||
margin-top: 0;
|
||||
background-color: #fff;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* @file
|
||||
* Styles for the system status counter component.
|
||||
*/
|
||||
|
||||
.system-status-counter__status-icon {
|
||||
display: inline-block;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.system-status-counter__status-icon:before {
|
||||
display: block;
|
||||
content: "";
|
||||
background-repeat: no-repeat;
|
||||
background-position: center 2px;
|
||||
background-size: 20px;
|
||||
}
|
||||
|
||||
.system-status-counter__status-icon--error:before {
|
||||
background-image: url(../../../images/core/icons/e32700/error.svg);
|
||||
}
|
||||
.system-status-counter__status-icon--warning:before {
|
||||
background-image: url(../../../images/core/icons/e29700/warning.svg);
|
||||
}
|
||||
.system-status-counter__status-icon--checked:before {
|
||||
background-image: url(../../../images/core/icons/73b355/check.svg);
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
/**
|
||||
* @file
|
||||
* Styles for the system status report counters.
|
||||
*/
|
||||
|
||||
.system-status-report-counters__item {
|
||||
width: 100%;
|
||||
margin-bottom: 0.5em;
|
||||
padding: 0.5em 0;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
background-color: rgba(0, 0, 0, 0.063);
|
||||
}
|
||||
|
||||
@media screen and (min-width: 60em) {
|
||||
.system-status-report-counters {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.system-status-report-counters__item--half-width {
|
||||
width: 49%;
|
||||
}
|
||||
.system-status-report-counters__item--third-width {
|
||||
width: 33%;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
/**
|
||||
* @file
|
||||
* Default styles for the System Status general info.
|
||||
*/
|
||||
|
||||
.system-status-general-info__item {
|
||||
margin-top: 1em;
|
||||
padding: 0 1em 1em;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.system-status-general-info__item-title {
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
/**
|
||||
* @file
|
||||
* Table drag behavior.
|
||||
*
|
||||
* @see tabledrag.js
|
||||
*/
|
||||
|
||||
body.drag {
|
||||
cursor: move;
|
||||
}
|
||||
tr.region-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
tr.region-message {
|
||||
color: #999;
|
||||
}
|
||||
tr.region-populated {
|
||||
display: none;
|
||||
}
|
||||
tr.add-new .tabledrag-changed {
|
||||
display: none;
|
||||
}
|
||||
.draggable a.tabledrag-handle {
|
||||
float: left; /* LTR */
|
||||
overflow: hidden;
|
||||
height: 1.7em;
|
||||
margin-left: -1em; /* LTR */
|
||||
cursor: move;
|
||||
text-decoration: none;
|
||||
}
|
||||
[dir="rtl"] .draggable a.tabledrag-handle {
|
||||
float: right;
|
||||
margin-right: -1em;
|
||||
margin-left: 0;
|
||||
}
|
||||
a.tabledrag-handle:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
a.tabledrag-handle .handle {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin: -0.4em 0.5em 0;
|
||||
padding: 0.42em 0.5em;
|
||||
background: url(../../../images/core/icons/787878/move.svg) no-repeat 6px 7px;
|
||||
}
|
||||
a.tabledrag-handle:hover .handle,
|
||||
a.tabledrag-handle:focus .handle {
|
||||
background-image: url(../../../images/core/icons/000000/move.svg);
|
||||
}
|
||||
.touchevents .draggable td {
|
||||
padding: 0 10px;
|
||||
}
|
||||
.touchevents .draggable .menu-item__link {
|
||||
display: inline-block;
|
||||
padding: 10px 0;
|
||||
}
|
||||
.touchevents a.tabledrag-handle {
|
||||
width: 40px;
|
||||
height: 44px;
|
||||
}
|
||||
.touchevents a.tabledrag-handle .handle {
|
||||
height: 21px;
|
||||
background-position: 40% 19px; /* LTR */
|
||||
}
|
||||
[dir="rtl"] .touch a.tabledrag-handle .handle {
|
||||
background-position: right 40% top 19px;
|
||||
}
|
||||
.touchevents .draggable.drag a.tabledrag-handle .handle {
|
||||
background-position: 50% -32px;
|
||||
}
|
||||
.tabledrag-toggle-weight-wrapper {
|
||||
text-align: right; /* LTR */
|
||||
}
|
||||
[dir="rtl"] .tabledrag-toggle-weight-wrapper {
|
||||
text-align: left;
|
||||
}
|
||||
.indentation {
|
||||
float: left; /* LTR */
|
||||
width: 20px;
|
||||
height: 1.7em;
|
||||
margin: -0.4em 0.2em -0.4em -0.4em; /* LTR */
|
||||
padding: 0.42em 0 0.42em 0.6em; /* LTR */
|
||||
}
|
||||
[dir="rtl"] .indentation {
|
||||
float: right;
|
||||
margin: -0.4em -0.4em -0.4em 0.2em;
|
||||
padding: 0.42em 0.6em 0.42em 0;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* @file
|
||||
* Table sort indicator.
|
||||
*
|
||||
* @see tablesort-indicator.html.twig
|
||||
*/
|
||||
|
||||
.tablesort {
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-size: 100%;
|
||||
}
|
||||
.tablesort--asc {
|
||||
background-image: url(../../../images/core/icons/787878/twistie-down.svg);
|
||||
}
|
||||
.tablesort--desc {
|
||||
background-image: url(../../../images/core/icons/787878/twistie-up.svg);
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* @file
|
||||
* Visual styles for a nested tree child.
|
||||
*/
|
||||
|
||||
div.tree-child {
|
||||
background: url(../../../images/core/tree.png) no-repeat 11px center; /* LTR */
|
||||
}
|
||||
div.tree-child-last {
|
||||
background: url(../../../images/core/tree-bottom.png) no-repeat 11px center; /* LTR */
|
||||
}
|
||||
[dir="rtl"] div.tree-child,
|
||||
[dir="rtl"] div.tree-child-last {
|
||||
background-position: -65px center;
|
||||
}
|
||||
div.tree-child-horizontal {
|
||||
background: url(../../../images/core/tree.png) no-repeat -11px center;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
/* table style column align */
|
||||
.views-align-left {
|
||||
text-align: left;
|
||||
}
|
||||
.views-align-right {
|
||||
text-align: right;
|
||||
}
|
||||
.views-align-center {
|
||||
text-align: center;
|
||||
}
|
||||
/* Grid style column align. */
|
||||
.views-view-grid .views-col {
|
||||
float: left;
|
||||
}
|
||||
.views-view-grid .views-row {
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 100%;
|
||||
}
|
||||
/* Provide some space between display links. */
|
||||
.views-display-link + .views-display-link {
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#000000" d="M14.904 7.753l-2.373-2.372c-.291-.292-.529-.193-.529.22v1.399h-3v-3h1.398c.414 0 .512-.239.221-.53l-2.371-2.372c-.137-.136-.36-.136-.497 0l-2.372 2.372c-.292.292-.193.53.22.53h1.399v3h-3v-1.369c0-.413-.239-.511-.53-.22l-2.372 2.372c-.136.136-.136.359 0 .494l2.372 2.372c.291.292.53.192.53-.219v-1.43h3v3h-1.4c-.413 0-.511.238-.22.529l2.374 2.373c.137.137.36.137.495 0l2.373-2.373c.29-.291.19-.529-.222-.529h-1.398v-3h3v1.4c0 .412.238.511.529.219l2.373-2.371c.137-.137.137-.359 0-.495z"/></svg>
|
||||
|
After Width: | Height: | Size: 581 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#73b355"><path d="M6.464 13.676c-.194.194-.513.194-.707 0l-4.96-4.955c-.194-.193-.194-.513 0-.707l1.405-1.407c.194-.195.512-.195.707 0l2.849 2.848c.194.193.513.193.707 0l6.629-6.626c.195-.194.514-.194.707 0l1.404 1.404c.193.194.193.513 0 .707l-8.741 8.736z"/></svg>
|
||||
|
After Width: | Height: | Size: 334 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M14.904 7.753l-2.373-2.372c-.291-.292-.529-.193-.529.22v1.399h-3v-3h1.398c.414 0 .512-.239.221-.53l-2.371-2.372c-.137-.136-.36-.136-.497 0l-2.372 2.372c-.292.292-.193.53.22.53h1.399v3h-3v-1.369c0-.413-.239-.511-.53-.22l-2.372 2.372c-.136.136-.136.359 0 .494l2.372 2.372c.291.292.53.192.53-.219v-1.43h3v3h-1.4c-.413 0-.511.238-.22.529l2.374 2.373c.137.137.36.137.495 0l2.373-2.373c.29-.291.19-.529-.222-.529h-1.398v-3h3v1.4c0 .412.238.511.529.219l2.373-2.371c.137-.137.137-.359 0-.495z"/></svg>
|
||||
|
After Width: | Height: | Size: 581 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M2.611 5.393c-.17-.216-.084-.393.191-.393h10.397c.275 0 .361.177.191.393l-5.08 6.464c-.17.216-.452.216-.622 0l-5.077-6.464z"/></svg>
|
||||
|
After Width: | Height: | Size: 220 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M13.391 10.607c.17.216.084.393-.191.393h-10.398c-.275 0-.361-.177-.191-.393l5.08-6.464c.17-.216.45-.216.62 0l5.08 6.464z"/></svg>
|
||||
|
After Width: | Height: | Size: 217 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#e29700"><path d="M14.66 12.316l-5.316-10.633c-.738-1.476-1.946-1.476-2.685 0l-5.317 10.633c-.738 1.477.008 2.684 1.658 2.684h10.002c1.65 0 2.396-1.207 1.658-2.684zm-7.66-8.316h2.002v5h-2.002v-5zm2.252 8.615c0 .344-.281.625-.625.625h-1.25c-.345 0-.626-.281-.626-.625v-1.239c0-.344.281-.625.626-.625h1.25c.344 0 .625.281.625.625v1.239z"/></svg>
|
||||
|
After Width: | Height: | Size: 412 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#e32700"><path d="M8.002 1c-3.868 0-7.002 3.134-7.002 7s3.134 7 7.002 7c3.865 0 7-3.134 7-7s-3.135-7-7-7zm4.025 9.284c.062.063.1.149.1.239 0 .091-.037.177-.1.24l-1.262 1.262c-.064.062-.15.1-.24.1s-.176-.036-.24-.1l-2.283-2.283-2.286 2.283c-.064.062-.15.1-.24.1s-.176-.036-.24-.1l-1.261-1.262c-.063-.062-.1-.148-.1-.24 0-.088.036-.176.1-.238l2.283-2.285-2.283-2.284c-.063-.064-.1-.15-.1-.24s.036-.176.1-.24l1.262-1.262c.063-.063.149-.1.24-.1.089 0 .176.036.24.1l2.285 2.284 2.283-2.284c.064-.063.15-.1.24-.1s.176.036.24.1l1.262 1.262c.062.063.1.149.1.24 0 .089-.037.176-.1.24l-2.283 2.284 2.283 2.284z"/></svg>
|
||||
|
After Width: | Height: | Size: 679 B |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 356 B |
|
After Width: | Height: | Size: 129 B |
|
After Width: | Height: | Size: 130 B |
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
* DO NOT EDIT THIS FILE.
|
||||
* See the following change record for more information,
|
||||
* https://www.drupal.org/node/2815083
|
||||
* @preserve
|
||||
**/
|
||||
|
||||
(function (Drupal) {
|
||||
Drupal.theme.ajaxProgressBar = function ($element) {
|
||||
return $element.addClass('ajax-progress ajax-progress-bar');
|
||||
};
|
||||
})(Drupal);
|
||||
@@ -0,0 +1,149 @@
|
||||
/*
|
||||
|
||||
Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
padding: 0.5em;
|
||||
background: #23241f;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-tag,
|
||||
.css .hljs-rules,
|
||||
.css .hljs-value,
|
||||
.css .hljs-function
|
||||
.hljs-preprocessor,
|
||||
.hljs-pragma {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
.hljs-strongemphasis,
|
||||
.hljs-strong,
|
||||
.hljs-emphasis {
|
||||
color: #a8a8a2;
|
||||
}
|
||||
|
||||
.hljs-bullet,
|
||||
.hljs-blockquote,
|
||||
.hljs-horizontal_rule,
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.alias .hljs-keyword,
|
||||
.hljs-literal,
|
||||
.hljs-hexcolor {
|
||||
color: #ae81ff;
|
||||
}
|
||||
|
||||
.hljs-tag .hljs-value,
|
||||
.hljs-code,
|
||||
.hljs-title,
|
||||
.css .hljs-class,
|
||||
.hljs-class .hljs-title:last-child {
|
||||
color: #a6e22e;
|
||||
}
|
||||
|
||||
.hljs-link_url {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
.hljs-strong,
|
||||
.hljs-strongemphasis {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis,
|
||||
.hljs-strongemphasis,
|
||||
.hljs-class .hljs-title:last-child {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-function,
|
||||
.hljs-change,
|
||||
.hljs-winutils,
|
||||
.hljs-flow,
|
||||
.lisp .hljs-title,
|
||||
.clojure .hljs-built_in,
|
||||
.nginx .hljs-title,
|
||||
.tex .hljs-special,
|
||||
.hljs-header,
|
||||
.hljs-attribute,
|
||||
.hljs-symbol,
|
||||
.hljs-symbol .hljs-string,
|
||||
.hljs-tag .hljs-title,
|
||||
.hljs-value,
|
||||
.alias .hljs-keyword:first-child,
|
||||
.css .hljs-tag,
|
||||
.css .unit,
|
||||
.css .hljs-important {
|
||||
color: #F92672;
|
||||
}
|
||||
|
||||
.hljs-function .hljs-keyword,
|
||||
.hljs-class .hljs-keyword:first-child,
|
||||
.hljs-constant,
|
||||
.css .hljs-attribute {
|
||||
color: #66d9ef;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-params,
|
||||
.hljs-class .hljs-title {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.css .hljs-id,
|
||||
.hljs-subst,
|
||||
.haskell .hljs-type,
|
||||
.ruby .hljs-class .hljs-parent,
|
||||
.hljs-built_in,
|
||||
.sql .hljs-aggregate,
|
||||
.django .hljs-template_tag,
|
||||
.django .hljs-variable,
|
||||
.smalltalk .hljs-class,
|
||||
.django .hljs-filter .hljs-argument,
|
||||
.smalltalk .hljs-localvars,
|
||||
.smalltalk .hljs-array,
|
||||
.hljs-attr_selector,
|
||||
.hljs-pseudo,
|
||||
.hljs-addition,
|
||||
.hljs-stream,
|
||||
.hljs-envvar,
|
||||
.apache .hljs-tag,
|
||||
.apache .hljs-cbracket,
|
||||
.tex .hljs-command,
|
||||
.hljs-prompt,
|
||||
.hljs-link_label,
|
||||
.hljs-link_url {
|
||||
color: #e6db74;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-javadoc,
|
||||
.java .hljs-annotation,
|
||||
.python .hljs-decorator,
|
||||
.hljs-template_comment,
|
||||
.hljs-pi,
|
||||
.hljs-doctype,
|
||||
.hljs-deletion,
|
||||
.hljs-shebang,
|
||||
.apache .hljs-sqbracket,
|
||||
.tex .hljs-formula {
|
||||
color: #75715e;
|
||||
}
|
||||
|
||||
.coffeescript .javascript,
|
||||
.javascript .xml,
|
||||
.tex .hljs-formula,
|
||||
.xml .javascript,
|
||||
.xml .vbscript,
|
||||
.xml .css,
|
||||
.xml .hljs-cdata,
|
||||
.xml .php,
|
||||
.php .xml {
|
||||
opacity: 0.5;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
/**
|
||||
* @file
|
||||
* better_exposed_filters.css
|
||||
*/
|
||||
|
||||
/*
|
||||
* Basic styling for features added by Better Exposed Filters
|
||||
*/
|
||||
.bef-exposed-form .form--inline .form-item {
|
||||
float: none;
|
||||
}
|
||||
.bef-exposed-form .form--inline > .form-item {
|
||||
float: left; /* LRT */
|
||||
}
|
||||
.bef-exposed-form .form--inline .bef--secondary {
|
||||
clear: left;
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
/**
|
||||
* @file
|
||||
* auto_submit.js
|
||||
*
|
||||
* Provides a "form auto-submit" feature for the Better Exposed Filters module.
|
||||
*/
|
||||
|
||||
(function ($, Drupal) {
|
||||
|
||||
/**
|
||||
* To make a form auto submit, all you have to do is 3 things:.
|
||||
*
|
||||
* Use the "better_exposed_filters/auto_submit" js library.
|
||||
*
|
||||
* On gadgets you want to auto-submit when changed, add the
|
||||
* data-bef-auto-submit attribute. With FAPI, add:
|
||||
* @code
|
||||
* '#attributes' => array('data-bef-auto-submit' => ''),
|
||||
* @endcode
|
||||
*
|
||||
* If you want to have auto-submit for every form element, add the
|
||||
* data-bef-auto-submit-full-form to the form. With FAPI, add:
|
||||
* @code
|
||||
* '#attributes' => array('data-bef-auto-submit-full-form' => ''),
|
||||
* @endcode
|
||||
*
|
||||
* If you want to exclude a field from the bef-auto-submit-full-form auto
|
||||
* submission, add an attribute of data-bef-auto-submit-exclude to the form
|
||||
* element. With FAPI, add:
|
||||
* @code
|
||||
* '#attributes' => array('data-bef-auto-submit-exclude' => ''),
|
||||
* @endcode
|
||||
*
|
||||
* Finally, you have to identify which button you want clicked for autosubmit.
|
||||
* The behavior of this button will be honored if it's ajaxy or not:
|
||||
* @code
|
||||
* '#attributes' => array('data-bef-auto-submit-click' => ''),
|
||||
* @endcode
|
||||
*
|
||||
* Currently only 'select', 'radio', 'checkbox' and 'textfield' types are
|
||||
* supported. We probably could use additional support for HTML5 input types.
|
||||
*/
|
||||
Drupal.behaviors.betterExposedFiltersAutoSubmit = {
|
||||
attach: function (context) {
|
||||
// When exposed as a block, the form #attributes are moved from the form
|
||||
// to the block element, thus the second selector.
|
||||
// @see \Drupal\block\BlockViewBuilder::preRender
|
||||
var selectors = 'form[data-bef-auto-submit-full-form], [data-bef-auto-submit-full-form] form, [data-bef-auto-submit]';
|
||||
|
||||
// The change event bubbles so we only need to bind it to the outer form
|
||||
// in case of a full form, or a single element when specified explicitly.
|
||||
$(selectors, context).addBack(selectors).each(function (i, e) {
|
||||
// Store the current form.
|
||||
var $form = $(e);
|
||||
|
||||
// Retrieve the autosubmit delay for this particular form.
|
||||
var autoSubmitDelay = $form.data('bef-auto-submit-delay') || 500;
|
||||
|
||||
// Attach event listeners.
|
||||
$form.once('bef-auto-submit')
|
||||
// On change, trigger the submit immediately.
|
||||
.on('change', triggerSubmit)
|
||||
// On keyup, wait for a specified number of milliseconds before
|
||||
// triggering autosubmit. Each new keyup event resets the timer.
|
||||
.on('keyup', Drupal.debounce(triggerSubmit, autoSubmitDelay));
|
||||
});
|
||||
|
||||
/**
|
||||
* Triggers form autosubmit when conditions are right.
|
||||
*
|
||||
* - Checks first that the element that was the target of the triggering
|
||||
* event is `:text` or `textarea`, but is not `.hasDatePicker`.
|
||||
* - Checks that the keycode of the keyup was not in the list of ignored
|
||||
* keys (navigation keys etc).
|
||||
*
|
||||
* @param {object} e - The triggering event.
|
||||
*/
|
||||
function triggerSubmit(e) {
|
||||
// e.keyCode: key.
|
||||
var ignoredKeyCodes = [
|
||||
16, // Shift.
|
||||
17, // Ctrl.
|
||||
18, // Alt.
|
||||
20, // Caps lock.
|
||||
33, // Page up.
|
||||
34, // Page down.
|
||||
35, // End.
|
||||
36, // Home.
|
||||
37, // Left arrow.
|
||||
38, // Up arrow.
|
||||
39, // Right arrow.
|
||||
40, // Down arrow.
|
||||
9, // Tab.
|
||||
13, // Enter.
|
||||
27 // Esc.
|
||||
];
|
||||
|
||||
// Triggering element.
|
||||
var $target = $(e.target);
|
||||
var $submit = $target.closest('form').find('[data-bef-auto-submit-click]');
|
||||
|
||||
// Don't submit on changes to excluded elements or a submit element.
|
||||
if ($target.is('[data-bef-auto-submit-exclude], :submit') || ($target.attr('autocomplete') == 'off' && !$target.hasClass('bef-datepicker'))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Submit only if this is a non-datepicker textfield and if the
|
||||
// incoming keycode is not one of the excluded values.
|
||||
if (
|
||||
$target.is(':text:not(.hasDatepicker), textarea')
|
||||
&& $.inArray(e.keyCode, ignoredKeyCodes) === -1
|
||||
) {
|
||||
$submit.click();
|
||||
}
|
||||
// Only trigger submit if a change was the trigger (no keyup).
|
||||
else if (e.type === 'change') {
|
||||
$submit.click();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}(jQuery, Drupal));
|
||||
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* @file
|
||||
* better_exposed_filters.js
|
||||
*
|
||||
* Provides some client-side functionality for the Better Exposed Filters module.
|
||||
*/
|
||||
|
||||
(function ($, Drupal, drupalSettings) {
|
||||
Drupal.behaviors.betterExposedFilters = {
|
||||
attach: function (context, settings) {
|
||||
// Add highlight class to checked checkboxes for better theming.
|
||||
$('.bef-tree input[type=checkbox], .bef-checkboxes input[type=checkbox]')
|
||||
// Highlight newly selected checkboxes.
|
||||
.change(function () {
|
||||
_bef_highlight(this, context);
|
||||
})
|
||||
.filter(':checked').closest('.form-item', context).addClass('highlight');
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* Helper functions
|
||||
*/
|
||||
|
||||
/**
|
||||
* Adds/Removes the highlight class from the form-item div as appropriate.
|
||||
*/
|
||||
function _bef_highlight(elem, context) {
|
||||
$elem = $(elem, context);
|
||||
$elem.attr('checked')
|
||||
? $elem.closest('.form-item', context).addClass('highlight')
|
||||
: $elem.closest('.form-item', context).removeClass('highlight');
|
||||
}
|
||||
|
||||
})(jQuery, Drupal, drupalSettings);
|
||||
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* @file
|
||||
* Enables syntax highlighting via HighlightJS on the HTML code tag.
|
||||
*/
|
||||
|
||||
(function (Drupal) {
|
||||
'use strict';
|
||||
|
||||
Drupal.behaviors.codesnippet = {
|
||||
attach: function (context, settings) {
|
||||
hljs.initHighlightingOnLoad();
|
||||
context.querySelectorAll('pre code').forEach(element => {
|
||||
element.style.overflowX = 'auto';
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
})(Drupal);
|
||||