-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- jsOptions['rules'] AS $rule) {
- $class = 'jedcheckerRules' . ucfirst($rule);
-
- if (!class_exists($class)) continue;
- $rule = new $class();
- ?>
-
- get('id') .'">';
- ?>
-
- get('id') . '" aria-expanded="true" aria-controls="collapse' . $rule->get('id') . '">' . JText::_('COM_JEDCHECKER_RULE') . ' ' . $rule->get('id') . ' - ' . JText::_($rule->get('title'));
- ?>
-
-
-
-
- get('id') . '" class="collapse" aria-labelledby="heading' . $rule->get('id') . '" data-parent="#accordion">';
- ?>
-
- get('description')); ?>
-
-
-
-
+
+
+
+
+
+
+ jsOptions['rules'] as $i => $rulename)
+ {
+ $class = 'jedcheckerRules' . ucfirst($rulename);
+ $rule = new $class;
+ ?>
+
+
+
+
+
+ get('description')); ?>
+
+
+
+
+
+
+
+
+
diff --git a/administrator/components/com_jedchecker/views/uploads/view.html.php b/administrator/components/com_jedchecker/views/uploads/view.html.php
index 2997b26..111266f 100644
--- a/administrator/components/com_jedchecker/views/uploads/view.html.php
+++ b/administrator/components/com_jedchecker/views/uploads/view.html.php
@@ -20,6 +20,9 @@ jimport('joomla.application.component.viewlegacy');
*/
class JedcheckerViewUploads extends JViewLegacy
{
+ /** @var array */
+ protected $jsOptions;
+
/**
* Display method
*
@@ -31,6 +34,9 @@ class JedcheckerViewUploads extends JViewLegacy
{
$this->path = JFactory::getConfig()->get('tmp_path') . '/jed_checker';
+ // Load translation for "JED Checker" title from sys.ini file
+ JFactory::getLanguage()->load('com_jedchecker.sys', JPATH_ADMINISTRATOR);
+
$this->setToolbar();
$this->jsOptions['url'] = JUri::base();
$this->jsOptions['rules'] = $this->getRules();
@@ -46,13 +52,23 @@ class JedcheckerViewUploads extends JViewLegacy
{
$rules = array();
$files = JFolder::files(JPATH_COMPONENT_ADMINISTRATOR . '/libraries/rules', '\.php$', false, false);
+
JLoader::discover('jedcheckerRules', JPATH_COMPONENT_ADMINISTRATOR . '/libraries/rules/');
foreach ($files as $file)
{
- $rules[] = substr($file, 0, -4);
+ $rule = substr($file, 0, -4);
+ $class = 'jedcheckerRules' . ucfirst($rule);
+
+ if (class_exists($class) && is_subclass_of($class, 'JEDcheckerRule'))
+ {
+ $rules[$rule] = $class::$ordering;
+ }
}
+ asort($rules, SORT_NUMERIC);
+ $rules = array_keys($rules);
+
return $rules;
}
@@ -68,7 +84,8 @@ class JedcheckerViewUploads extends JViewLegacy
JToolbarHelper::custom('check', 'search', 'search', JText::_('COM_JEDCHECKER_TOOLBAR_CHECK'), false);
}
- JToolbarHelper::title('JED checker');
+ JToolbarHelper::title(JText::_('COM_JEDCHECKER'));
+
if ( file_exists($this->path) )
{
JToolbarHelper::custom('uploads.clear', 'delete', 'delete', JText::_('COM_JEDCHECKER_TOOLBAR_CLEAR'), false);
diff --git a/crowdin-develop.yml b/crowdin-develop.yml
index 66be6e6..e1d1ca6 100644
--- a/crowdin-develop.yml
+++ b/crowdin-develop.yml
@@ -1,5 +1,5 @@
# Project Public Identifier: jed-checker-extension
-project_id: 44
+project_id: 104
api_token_env: CROWDIN_PERSONAL_TOKEN
base_path:
base_url: "https://joomla.crowdin.com"
@@ -7,9 +7,11 @@ base_url: "https://joomla.crowdin.com"
preserve_hierarchy: true
files:
- - source: /administrator/components/com_jedchecker/language/en-GB/en-GB*.ini
- translation: /administrator/components/com_jedchecker/language/%locale%/%locale%%original_file_name%
+ - source: /administrator/components/com_jedchecker/language/en-GB/en-GB.com_jedchecker.ini
+ dest: 'JEDChecker/administrator/en-GB.com_jedchecker.ini'
+ translation: /administrator/components/com_jedchecker/language/%locale%/%locale%.com_jedchecker.ini
+ update_option: update_as_unapproved
+ - source: /administrator/components/com_jedchecker/language/en-GB/en-GB.com_jedchecker.sys.ini
+ dest: 'JEDChecker/administrator/en-GB.com_jedchecker.sys.ini'
+ translation: /administrator/components/com_jedchecker/language/%locale%/%locale%.com_jedchecker.sys.ini
update_option: update_as_unapproved
- translation_replace:
- en-GB: ''
-
diff --git a/jedchecker.xml b/jedchecker.xml
index 78b4d5b..d3fa593 100644
--- a/jedchecker.xml
+++ b/jedchecker.xml
@@ -1,12 +1,12 @@
-
+
COM_JEDCHECKER
Joomla! Extensions Directory
2020-08-22
- Copyright (C) 2017 - 2020 Open Source Matters, Inc. All rights reserved.
+ Copyright (C) 2017 - 2021 Open Source Matters, Inc. All rights reserved.
extensions@extensions.joomla.org
https://github.com/joomla-extensions/jedchecker
- 2.3.0
+ 2.4.0
http://www.gnu.org/copyleft/gpl.html GNU/GPL
@@ -92,6 +92,7 @@
css
+ js
diff --git a/manifest.xml b/manifest.xml
index 87768c8..7ff6077 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -5,12 +5,31 @@
com_jedchecker
component
- 2.3.0
- site
- https://github.com/joomla-extensions/jedchecker/releases/tag/2.3.0
+ 2.4.0
+ administrator
+ https://github.com/joomla-extensions/jedchecker/releases/tag/2.4.0
- https://github.com/joomla-extensions/jedchecker/archive/2.3.0.zip
+ https://github.com/joomla-extensions/jedchecker/archive/refs/tags/2.4.0.zip
-
+
+ stable
+
+
+
+
+ JED Checker Extension
+
+ com_jedchecker
+ component
+ 2.4.0
+ administrator
+ https://github.com/joomla-extensions/jedchecker/releases/tag/2.4.0
+
+ https://github.com/joomla-extensions/jedchecker/archive/refs/tags/2.4.0.zip
+
+
+ stable
+
+
diff --git a/media/com_jedchecker/css/j3-style.css b/media/com_jedchecker/css/j3-style.css
deleted file mode 100644
index 7ca9cf5..0000000
--- a/media/com_jedchecker/css/j3-style.css
+++ /dev/null
@@ -1,285 +0,0 @@
-.col-md-8 {
- flex: 0 0 66.66667%;
- max-width: 66.66667%;
-}
-
-.col-1,
-.col-2,
-.col-3,
-.col-4,
-.col-5,
-.col-6,
-.col-7,
-.col-8,
-.col-9,
-.col-10,
-.col-11,
-.col-12,
-.col,
-.col-auto,
-.col-sm-1,
-.col-sm-2,
-.col-sm-3,
-.col-sm-4,
-.col-sm-5,
-.col-sm-6,
-.col-sm-7,
-.col-sm-8,
-.col-sm-9,
-.col-sm-10,
-.col-sm-11,
-.col-sm-12,
-.col-sm,
-.col-sm-auto,
-.col-md-1,
-.col-md-2,
-.col-md-3,
-.col-md-4,
-.col-md-5,
-.col-md-6,
-.col-md-7,
-.col-md-8,
-.col-md-9,
-.col-md-10,
-.col-md-11,
-.col-md-12,
-.col-md,
-.col-md-auto,
-.col-lg-1,
-.col-lg-2,
-.col-lg-3,
-.col-lg-4,
-.col-lg-5,
-.col-lg-6,
-.col-lg-7,
-.col-lg-8,
-.col-lg-9,
-.col-lg-10,
-.col-lg-11,
-.col-lg-12,
-.col-lg,
-.col-lg-auto,
-.col-xl-1,
-.col-xl-2,
-.col-xl-3,
-.col-xl-4,
-.col-xl-5,
-.col-xl-6,
-.col-xl-7,
-.col-xl-8,
-.col-xl-9,
-.col-xl-10,
-.col-xl-11,
-.col-xl-12,
-.col-xl,
-.col-xl-auto {
- position: relative;
- width: 100%;
- min-height: 1px;
- padding-right: 7.5px;
- padding-left: 7.5px;
-}
-
-.mb-3,
-.my-3 {
- margin-bottom: 1rem !important;
-}
-
-.col-md-6 {
- flex: 0 0 50%;
- max-width: 50%;
-}
-
-.col-md-4 {
- flex: 0 0 33.33333%;
- max-width: 31.33333%;
-}
-
-.bg-light {
- background-color: #f8f9fa !important;
-}
-
-.card {
- position: relative;
- display: flex;
- flex-direction: column;
- min-width: 0;
- word-wrap: break-word;
- background-color: transparent;
- background-clip: border-box;
- border: 1px solid #ccc;
- border-radius: .25rem;
-}
-
-.row {
- display: flex;
- flex-wrap: wrap;
- margin-right: -7.5px;
- margin-left: -7.5px;
-}
-
-.card-body {
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
- flex: 1 1 auto;
- padding: 1.25rem;
-}
-
-.card-footer {
- padding: .75rem 1.25rem;
- background-color: transparent;
- border-top: 0 solid transparent;
-}
-
-p {
- margin-top: 0;
- margin-bottom: 1rem;
-}
-
-ol,
-ul,
-dl {
- margin-top: 0;
- margin-bottom: 1rem;
-}
-
-.form-row {
- display: flex;
- margin-right: -5px;
- margin-left: -5px;
-}
-
-.form-row>.col,
-.form-row>[class*="col-"] {
- padding-right: 5px;
- padding-left: 5px;
-}
-
-.custom-file {
- position: relative;
- display: inline-block;
- width: 100%;
- height: calc(2.7rem + 2px);
- margin-bottom: 0;
-}
-
-.custom-file-input {
- position: relative;
- z-index: 2;
- width: 100%;
- height: calc(2.7rem + 2px);
- margin: 0;
- opacity: 0;
-}
-
-.custom-file-label {
- position: absolute;
- top: 0;
- right: 0;
- left: 0;
- z-index: 1;
- padding: .6rem 1rem;
- line-height: 1.5;
- color: #495057;
- background-color: #fff;
- border: .25rem;
-}
-
-.invalid-feedback {
- display: none;
- width: 100%;
- margin-top: .25rem;
- font-size: 80%;
- color: #c52827;
-}
-
-.btn:not(:disabled):not(.disabled) {
- cursor: pointer;
-}
-
-.btn-success {
- color: #fff;
- background-color: #2f7d32;
- border-color: #2f7d32;
-}
-
-.btn {
- font-weight: 400;
- text-align: center;
- white-space: nowrap;
- vertical-align: middle;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- padding: .6rem 1rem;
- line-height: 1.5;
- transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
-}
-
-.btn {
- white-space: normal !important;
-}
-
-button,
-html [type="button"],
-[type="reset"],
-[type="submit"] {
- -webkit-appearance: button;
-}
-
-button,
-select {
- text-transform: none;
-}
-
-button,
-input {
- overflow: visible;
-}
-
-input,
-button,
-select,
-optgroup,
-textarea {
- margin: 0;
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
-}
-
-button {
- border-radius: 0;
-}
-
-.text-white {
- color: #fff !important;
-}
-
-.bg-info {
- background-color: #17a2b8 !important;
-}
-
-.card-header {
- padding: .75rem 1.25rem;
- margin-bottom: 0;
- /*background-color: transparent;*/
- background-color: rgba(0, 0, 0, .03);
- border-bottom: 1px solid #ccc;
-}
-
-.custom-file-label::after {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- z-index: 3;
- display: block;
- padding: .6rem 1rem;
- line-height: 1.5;
- color: white;
- content: "Browse";
- background-color: #3073bb;
- border-left: 1px solid #ced4da;
- border-radius: 0 .25rem .25rem 0;
-}
\ No newline at end of file
diff --git a/media/com_jedchecker/css/j3-style.min.css b/media/com_jedchecker/css/j3-style.min.css
deleted file mode 100644
index 1cdff75..0000000
--- a/media/com_jedchecker/css/j3-style.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:7.5px;padding-left:7.5px}.mb-3,.my-3{margin-bottom:1rem!important}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-4{flex:0 0 33.33333%;max-width:31.33333%}.bg-light{background-color:#f8f9fa!important}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:transparent;background-clip:border-box;border:1px solid #ccc;border-radius:.25rem}.row{display:flex;flex-wrap:wrap;margin-right:-7.5px;margin-left:-7.5px}.card-body{box-shadow:0 1px 2px rgba(0,0,0,.25);flex:1 1 auto;padding:1.25rem}.card-footer{padding:.75rem 1.25rem;background-color:transparent;border-top:0 solid transparent}p{margin-top:0;margin-bottom:1rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}.form-row{display:flex;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.7rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.7rem + 2px);margin:0;opacity:0}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;padding:.6rem 1rem;line-height:1.5;color:#495057;background-color:#fff;border:.25rem}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#c52827}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn-success{color:#fff;background-color:#2f7d32;border-color:#2f7d32}.btn{font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:.6rem 1rem;line-height:1.5;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.btn{white-space:normal!important}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input{overflow:visible}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button{border-radius:0}.text-white{color:#fff!important}.bg-info{background-color:#17a2b8!important}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid #ccc}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;padding:.6rem 1rem;line-height:1.5;color:#fff;content:"Browse";background-color:#3073bb;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}
\ No newline at end of file
diff --git a/media/com_jedchecker/css/j4-style.css b/media/com_jedchecker/css/j4-style.css
new file mode 100644
index 0000000..ac0bd58
--- /dev/null
+++ b/media/com_jedchecker/css/j4-style.css
@@ -0,0 +1,861 @@
+@charset "UTF-8";
+#jedchecker *,
+#jedchecker *::before,
+#jedchecker *::after {
+ box-sizing: border-box;
+}
+#jedchecker {
+ margin: 0;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #495057;
+ -webkit-text-size-adjust: 100%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+#jedchecker h5 {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ font-weight: 500;
+ line-height: 1.2;
+}
+#jedchecker h5 {
+ font-size: 0.9286rem;
+}
+#jedchecker p {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+#jedchecker ol {
+ padding-left: 2rem;
+}
+#jedchecker ol {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+#jedchecker strong {
+ font-weight: bolder;
+}
+#jedchecker small {
+ font-size: 0.875em;
+}
+#jedchecker a {
+ color: #2a69b8;
+ text-decoration: underline;
+}
+#jedchecker a:hover {
+ color: #173a65;
+}
+#jedchecker a:not([href]):not([class]),
+#jedchecker a:not([href]):not([class]):hover {
+ color: inherit;
+ text-decoration: none;
+}
+#jedchecker pre {
+ font-size: 1em;
+ direction: ltr;
+ unicode-bidi: bidi-override;
+}
+#jedchecker pre {
+ display: block;
+ margin-top: 0;
+ margin-bottom: 1rem;
+ overflow: auto;
+ font-size: 0.875em;
+}
+#jedchecker button {
+ border-radius: 0;
+}
+#jedchecker button:focus {
+ outline: dotted 1px;
+ outline: -webkit-focus-ring-color auto 5px;
+}
+#jedchecker input,
+#jedchecker button {
+ margin: 0;
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+#jedchecker button {
+ text-transform: none;
+}
+#jedchecker button,
+#jedchecker [type=button] {
+ -webkit-appearance: button;
+}
+#jedchecker button:not(:disabled),
+#jedchecker [type=button]:not(:disabled) {
+ cursor: pointer;
+}
+#jedchecker ::-moz-focus-inner {
+ padding: 0;
+ border-style: none;
+}
+#jedchecker ::-webkit-inner-spin-button {
+ height: auto;
+}
+#jedchecker ::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+#jedchecker ::file-selector-button,
+#jedchecker ::-webkit-file-upload-button {
+ font: inherit;
+ -webkit-appearance: button;
+}
+#jedchecker .row {
+ --gutter-x: 2rem;
+ --gutter-y: 0;
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: calc(var(--gutter-y) * -1);
+ margin-right: calc(var(--gutter-x) / -2);
+ margin-left: calc(var(--gutter-x) / -2);
+}
+#jedchecker .row > * {
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ padding-right: calc(var(--gutter-x) / 2);
+ padding-left: calc(var(--gutter-x) / 2);
+ margin-top: var(--gutter-y);
+}
+#jedchecker .col-6 {
+ flex: 0 0 auto;
+ width: 50%;
+}
+#jedchecker .col-12 {
+ flex: 0 0 auto;
+ width: 100%;
+}
+#jedchecker .g-3 {
+ --gutter-x: 1rem;
+ --gutter-y: 1rem;
+}
+@media (min-width: 768px) {
+ #jedchecker .col-md-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ #jedchecker .col-md-4 {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+ #jedchecker .col-md-8 {
+ flex: 0 0 auto;
+ width: 66.6666666667%;
+ }
+ #jedchecker .col-md-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+}
+#jedchecker .form-control {
+ display: block;
+ width: 100%;
+ padding: 0.6rem 1rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #495057;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #cdcdcd;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border-radius: 0.25rem;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+#jedchecker .form-control[type=file] {
+ overflow: hidden;
+}
+#jedchecker .form-control[type=file]:not(:disabled):not([readonly]) {
+ cursor: pointer;
+}
+#jedchecker .form-control:focus {
+ color: #495057;
+ background-color: #fff;
+ border-color: #95b4db;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(42, 105, 183, 0.25);
+}
+#jedchecker .form-control::-webkit-date-and-time-value {
+ height: 1.5em;
+}
+#jedchecker .form-control::-webkit-input-placeholder {
+ color: #6c757d;
+ opacity: 1;
+}
+#jedchecker .form-control::-moz-placeholder {
+ color: #6c757d;
+ opacity: 1;
+}
+#jedchecker .form-control:-ms-input-placeholder {
+ color: #6c757d;
+ opacity: 1;
+}
+#jedchecker .form-control::-ms-input-placeholder {
+ color: #6c757d;
+ opacity: 1;
+}
+#jedchecker .form-control::placeholder {
+ color: #6c757d;
+ opacity: 1;
+}
+#jedchecker .form-control:disabled {
+ background-color: #e8e8e8;
+ opacity: 1;
+}
+#jedchecker .form-control::file-selector-button,
+#jedchecker .form-control::-webkit-file-upload-button {
+ padding: 0.6rem 1rem;
+ margin: -0.6rem -1rem;
+ -webkit-margin-end: 1rem;
+ margin-inline-end: 1rem;
+ color: #fff;
+ background-color: #132f53;
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: 1px;
+ border-radius: 0;
+ -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+#jedchecker .form-control:hover:not(:disabled):not([readonly])::file-selector-button,
+#jedchecker .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
+ background-color: #122d4f;
+}
+#jedchecker .input-group {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: stretch;
+ width: 100%;
+}
+#jedchecker .input-group > .form-control {
+ position: relative;
+ flex: 1 1 auto;
+ width: 1%;
+ min-width: 0;
+}
+#jedchecker .input-group > .form-control:focus {
+ z-index: 3;
+}
+#jedchecker .input-group .btn {
+ position: relative;
+ z-index: 2;
+}
+#jedchecker .input-group .btn:focus {
+ z-index: 3;
+}
+#jedchecker .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+#jedchecker .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
+ margin-left: -1px;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+#jedchecker .invalid-feedback {
+ display: none;
+ width: 100%;
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: #c52827;
+}
+#jedchecker .btn {
+ display: inline-block;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #495057;
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-color: transparent;
+ border: 1px solid transparent;
+ padding: 0.6rem 1rem;
+ font-size: 1rem;
+ border-radius: 0.25rem;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+#jedchecker .btn:hover {
+ color: #495057;
+}
+#jedchecker .btn:focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(42, 105, 183, 0.25);
+}
+#jedchecker .btn:disabled {
+ pointer-events: none;
+ opacity: 0.4;
+}
+#jedchecker .btn-success {
+ color: #fff;
+ background-color: #2f7d32;
+ border-color: #2f7d32;
+}
+#jedchecker .btn-success:hover {
+ color: #fff;
+ background-color: #286a2b;
+ border-color: #266428;
+}
+#jedchecker .btn-success:focus {
+ color: #fff;
+ background-color: #286a2b;
+ border-color: #266428;
+ box-shadow: 0 0 0 0.25rem rgba(78, 145, 81, 0.5);
+}
+#jedchecker .btn-success:active {
+ color: #fff;
+ background-color: #266428;
+ border-color: #235e26;
+}
+#jedchecker .btn-success:active:focus {
+ box-shadow: 0 0 0 0.25rem rgba(78, 145, 81, 0.5);
+}
+#jedchecker .btn-success:disabled {
+ color: #fff;
+ background-color: #2f7d32;
+ border-color: #2f7d32;
+}
+#jedchecker .btn-light {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+#jedchecker .btn-light:hover {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+}
+#jedchecker .btn-light:focus {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+}
+#jedchecker .btn-light:active {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+}
+#jedchecker .btn-light:active:focus {
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+}
+#jedchecker .btn-light:disabled {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+#jedchecker .fade {
+ transition: opacity 0.15s linear;
+}
+#jedchecker .fade:not(.show) {
+ opacity: 0;
+}
+#jedchecker .collapse:not(.show) {
+ display: none;
+}
+#jedchecker .collapsing {
+ height: 0;
+ overflow: hidden;
+ transition: height 0.35s ease;
+}
+#jedchecker .accordion-button {
+ position: relative;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: 1rem 1.25rem;
+ font-size: 1rem;
+ color: #495057;
+ background-color: transparent;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+ border-radius: 0;
+ overflow-anchor: none;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
+}
+#jedchecker .accordion-button.collapsed {
+ border-bottom-width: 0;
+}
+#jedchecker .accordion-button:not(.collapsed) {
+ color: #265fa5;
+ background-color: #eaf0f8;
+}
+#jedchecker .accordion-button:not(.collapsed)::after {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23265fa5'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+#jedchecker .accordion-button::after {
+ flex-shrink: 0;
+ width: 1.25rem;
+ height: 1.25rem;
+ margin-left: auto;
+ content: "";
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23495057'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-size: 1.25rem;
+ transition: -webkit-transform 0.2s ease-in-out;
+ transition: transform 0.2s ease-in-out;
+ transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
+}
+#jedchecker .accordion-button:hover {
+ z-index: 2;
+}
+#jedchecker .accordion-button:focus {
+ z-index: 3;
+ border-color: #95b4db;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(42, 105, 183, 0.25);
+}
+#jedchecker .tab-content > .tab-pane {
+ display: none;
+}
+#jedchecker .tab-content > .active {
+ display: block;
+}
+#jedchecker .card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: border-box;
+ border: 0 solid transparent;
+ border-radius: 0.25rem;
+}
+#jedchecker .card > .list-group {
+ border-top: inherit;
+ border-bottom: inherit;
+}
+#jedchecker .card > .list-group:first-child {
+ border-top-width: 0;
+ border-top-left-radius: 0.25rem;
+ border-top-right-radius: 0.25rem;
+}
+#jedchecker .card > .list-group:last-child {
+ border-bottom-width: 0;
+ border-bottom-right-radius: 0.25rem;
+ border-bottom-left-radius: 0.25rem;
+}
+#jedchecker .card > .card-header + .list-group {
+ border-top: 0;
+}
+#jedchecker .card-body {
+ flex: 1 1 auto;
+ padding: 1rem 1rem;
+}
+#jedchecker .card-title {
+ margin-bottom: 0.5rem;
+}
+#jedchecker .card-text:last-child {
+ margin-bottom: 0;
+}
+#jedchecker .card-header {
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-bottom: 0 solid transparent;
+}
+#jedchecker .card-header:first-child {
+ border-radius: 0.25rem 0.25rem 0 0;
+}
+#jedchecker .card-footer {
+ padding: 0.5rem 1rem;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-top: 0 solid transparent;
+}
+#jedchecker .card-footer:last-child {
+ border-radius: 0 0 0.25rem 0.25rem;
+}
+#jedchecker .badge {
+ display: inline-block;
+ padding: 0.3rem 0.2rem;
+ font-size: 0.75rem;
+ font-weight: 700;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.2rem;
+}
+#jedchecker .badge:empty {
+ display: none;
+}
+#jedchecker .alert {
+ position: relative;
+ padding: 1rem 1rem;
+ margin-bottom: 1rem;
+ border: 1px solid transparent;
+ border-radius: 0.25rem;
+}
+#jedchecker .alert-secondary {
+ color: #2c3034;
+ background-color: #dbdcdd;
+ border-color: #c8cbcd;
+}
+#jedchecker .alert-success {
+ color: #1c4b1e;
+ background-color: #d5e5d6;
+ border-color: #c1d8c2;
+}
+#jedchecker .alert-info {
+ color: #193f6e;
+ background-color: #d4e1f1;
+ border-color: #bfd2ea;
+}
+#jedchecker .alert-warning {
+ color: #664808;
+ background-color: #fff0d0;
+ border-color: #ffe9b9;
+}
+#jedchecker .alert-danger {
+ color: #761817;
+ background-color: #f3d4d4;
+ border-color: #eebfbe;
+}
+#jedchecker .list-group {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ border-radius: 0.25rem;
+}
+#jedchecker .list-group-item-action {
+ width: 100%;
+ color: #495057;
+ text-align: inherit;
+}
+#jedchecker .list-group-item-action:hover,
+#jedchecker .list-group-item-action:focus {
+ z-index: 1;
+ color: #495057;
+ text-decoration: none;
+ background-color: #f8f9fa;
+}
+#jedchecker .list-group-item-action:active {
+ color: #495057;
+ background-color: #e8e8e8;
+}
+#jedchecker .list-group-item {
+ position: relative;
+ display: block;
+ padding: 0.5rem 1rem;
+ text-decoration: none;
+ background-color: #fefefe;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+}
+#jedchecker .list-group-item:first-child {
+ border-top-left-radius: inherit;
+ border-top-right-radius: inherit;
+}
+#jedchecker .list-group-item:last-child {
+ border-bottom-right-radius: inherit;
+ border-bottom-left-radius: inherit;
+}
+#jedchecker .list-group-item:disabled {
+ color: #6c757d;
+ pointer-events: none;
+ background-color: #fefefe;
+}
+#jedchecker .list-group-item.active {
+ z-index: 2;
+ color: #fff;
+ background-color: #2a69b7;
+ border-color: #2a69b7;
+}
+#jedchecker .list-group-flush {
+ border-radius: 0;
+}
+#jedchecker .list-group-flush > .list-group-item {
+ border-width: 0 0 1px;
+}
+#jedchecker .list-group-flush > .list-group-item:last-child {
+ border-bottom-width: 0;
+}
+#jedchecker .list-group-item-action {
+ color: #0b1c32;
+ background-color: #d0d5dd;
+}
+#jedchecker .list-group-item-action.list-group-item-action:hover,
+#jedchecker .list-group-item-action.list-group-item-action:focus {
+ color: #0b1c32;
+ background-color: #bbc0c7;
+}
+#jedchecker .list-group-item-action.list-group-item-action.active {
+ color: #fff;
+ background-color: #0b1c32;
+ border-color: #0b1c32;
+}
+#jedchecker .tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ margin: 0;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.8rem;
+ word-wrap: break-word;
+ opacity: 0;
+}
+#jedchecker .tooltip.show {
+ opacity: 0.9;
+}
+#jedchecker .tooltip .tooltip-arrow {
+ position: absolute;
+ display: block;
+ width: 0.8rem;
+ height: 0.4rem;
+}
+#jedchecker .tooltip .tooltip-arrow::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+#jedchecker .bs-tooltip-top {
+ padding: 0.4rem 0;
+}
+#jedchecker .bs-tooltip-top .tooltip-arrow {
+ bottom: 0;
+}
+#jedchecker .bs-tooltip-top .tooltip-arrow::before {
+ top: -1px;
+ border-width: 0.4rem 0.4rem 0;
+ border-top-color: #000;
+}
+#jedchecker .bs-tooltip-bottom {
+ padding: 0.4rem 0;
+}
+#jedchecker .bs-tooltip-bottom .tooltip-arrow {
+ top: 0;
+}
+#jedchecker .bs-tooltip-bottom .tooltip-arrow::before {
+ bottom: -1px;
+ border-width: 0 0.4rem 0.4rem;
+ border-bottom-color: #000;
+}
+#jedchecker .tooltip-inner {
+ max-width: 200px;
+ padding: 0.25rem 0.5rem;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 0.25rem;
+}
+#jedchecker .d-flex {
+ display: flex !important;
+}
+#jedchecker .border-error {
+ border-color: #3b0d0c !important;
+}
+#jedchecker .justify-content-between {
+ justify-content: space-between !important;
+}
+#jedchecker .mt-3 {
+ margin-top: 1rem !important;
+}
+#jedchecker .me-1 {
+ margin-right: 0.25rem !important;
+}
+#jedchecker .mb-1 {
+ margin-bottom: 0.25rem !important;
+}
+#jedchecker .ps-1 {
+ padding-left: 0.25rem !important;
+}
+#jedchecker .text-center {
+ text-align: center !important;
+}
+#jedchecker .text-info {
+ color: #2a69b8 !important;
+}
+#jedchecker .text-white {
+ color: #fff !important;
+}
+#jedchecker .text-muted {
+ color: #6c757d !important;
+}
+#jedchecker .bg-secondary {
+ background-color: #495057 !important;
+}
+#jedchecker .bg-success {
+ background-color: #2f7d32 !important;
+}
+#jedchecker .bg-info {
+ background-color: #2a69b8 !important;
+}
+#jedchecker .bg-warning {
+ background-color: #ffb514 !important;
+}
+#jedchecker .bg-danger {
+ background-color: #c52827 !important;
+}
+#jedchecker .bg-light {
+ background-color: #f8f9fa !important;
+}
+#jedchecker .text-nowrap {
+ white-space: nowrap !important;
+}
+#jedchecker .rounded-pill {
+ border-radius: 50rem !important;
+}
+#jedchecker {
+ display: flex;
+ flex-direction: column;
+ min-height: 100%;
+ padding: 0;
+ margin: 0;
+ text-align: start;
+}
+#jedchecker h5 {
+ font-weight: 700;
+}
+#jedchecker small {
+ font-size: 0.8rem;
+}
+#jedchecker .input-group input {
+ min-width: 220px;
+}
+#jedchecker .text-muted {
+ color: #495057 !important;
+ opacity: 0.7;
+}
+@media (max-width: 767.98px) {
+ #jedchecker .badge {
+ white-space: normal;
+ }
+}
+#jedchecker .badge.bg-warning {
+ color: #000;
+ background-color: #f9d71c !important;
+ border: 1px solid #4d4d4d;
+}
+#jedchecker .badge.bg-success {
+ color: #fff;
+ background-color: #2f7d32 !important;
+ border: 1px solid white;
+}
+#jedchecker .badge.bg-danger {
+ color: #fff;
+ background-color: #900 !important;
+ border: 1px solid white;
+}
+#jedchecker .badge.bg-secondary,
+#jedchecker .badge.bg-info {
+ color: #495057;
+ background-color: #dee2e6 !important;
+ border: 1px solid #949da5;
+}
+#jedchecker .btn {
+ transition: none;
+}
+#jedchecker .card {
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.16), 0 2px 4px rgba(0, 0, 0, 0.23);
+}
+#jedchecker .list-group-item {
+ background-color: #fefefe;
+}
+#jedchecker .alert {
+ margin: 1rem 0;
+ border-right: 0;
+ border-left: 0;
+ border-radius: 0.2rem;
+}
+#jedchecker .alert.alert-info {
+ color: #132f53;
+ background-color: #cacaca;
+ border: 1px solid #acacac;
+}
+#jedchecker .alert.alert-warning {
+ color: #495057;
+ background-color: #ffb514;
+ border: 1px solid #ffb514;
+}
+#jedchecker .alert.alert-success {
+ color: #0f2f21;
+ background-color: #e1f5ec;
+ border: 1px solid #0f2f21;
+}
+#jedchecker .form-control {
+ max-width: 100%;
+ background-color: #fff;
+ border: solid 1px #c9c9c9;
+ border-radius: 0.25rem;
+ box-shadow: inset 0 0 0 0.1rem #e9e9e9;
+}
+#jedchecker .form-control:focus {
+ border-color: #39f;
+ box-shadow: 0 0 0 0.2rem #eaeaea;
+}
+#jedchecker .form-control:disabled {
+ border: 0;
+ box-shadow: none;
+}
+#jedchecker [role=tooltip]:not(.show) {
+ z-index: 1070;
+ display: none;
+ max-width: 100%;
+ padding: 0.5em;
+ margin: 0.25em;
+ color: #fff;
+ text-align: start;
+ background: #000;
+ border-radius: 0.2rem;
+}
+#jedchecker * {
+ box-sizing: border-box;
+}
+#jedchecker .hidden {
+ display: none;
+}
+@media (prefers-reduced-motion: reduce) {
+ #jedchecker .form-control,
+ #jedchecker .form-control::file-selector-button,
+ #jedchecker .form-control::-webkit-file-upload-button,
+ #jedchecker .btn,
+ #jedchecker .fade,
+ #jedchecker .collapsing,
+ #jedchecker .accordion-button,
+ #jedchecker .accordion-button::after {
+ -webkit-transition: none;
+ transition: none;
+ }
+ #jedchecker *,
+ #jedchecker ::before,
+ #jedchecker ::after {
+ background-attachment: initial !important;
+ transition-delay: 0s !important;
+ transition-duration: 0s !important;
+ -webkit-animation-duration: 1ms !important;
+ animation-duration: 1ms !important;
+ -webkit-animation-delay: -1ms !important;
+ animation-delay: -1ms !important;
+ -webkit-animation-iteration-count: 1 !important;
+ animation-iteration-count: 1 !important;
+ scroll-behavior: auto !important;
+ }
+}
diff --git a/media/com_jedchecker/css/j4-style.min.css b/media/com_jedchecker/css/j4-style.min.css
new file mode 100644
index 0000000..21e15c2
--- /dev/null
+++ b/media/com_jedchecker/css/j4-style.min.css
@@ -0,0 +1 @@
+@charset "UTF-8";#jedchecker *,#jedchecker ::after,#jedchecker ::before{box-sizing:border-box}#jedchecker{margin:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}#jedchecker h5{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}#jedchecker h5{font-size:.9286rem}#jedchecker p{margin-top:0;margin-bottom:1rem}#jedchecker ol{padding-left:2rem}#jedchecker ol{margin-top:0;margin-bottom:1rem}#jedchecker strong{font-weight:bolder}#jedchecker small{font-size:.875em}#jedchecker a{color:#2a69b8;text-decoration:underline}#jedchecker a:hover{color:#173a65}#jedchecker a:not([href]):not([class]),#jedchecker a:not([href]):not([class]):hover{color:inherit;text-decoration:none}#jedchecker pre{font-size:1em;direction:ltr;unicode-bidi:bidi-override}#jedchecker pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}#jedchecker button{border-radius:0}#jedchecker button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}#jedchecker button,#jedchecker input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}#jedchecker button{text-transform:none}#jedchecker [type=button],#jedchecker button{-webkit-appearance:button}#jedchecker [type=button]:not(:disabled),#jedchecker button:not(:disabled){cursor:pointer}#jedchecker ::-moz-focus-inner{padding:0;border-style:none}#jedchecker ::-webkit-inner-spin-button{height:auto}#jedchecker ::-webkit-search-decoration{-webkit-appearance:none}#jedchecker ::-webkit-file-upload-button,#jedchecker ::file-selector-button{font:inherit;-webkit-appearance:button}#jedchecker .row{--gutter-x:2rem;--gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--gutter-y) * -1);margin-right:calc(var(--gutter-x)/ -2);margin-left:calc(var(--gutter-x)/ -2)}#jedchecker .row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--gutter-x)/ 2);padding-left:calc(var(--gutter-x)/ 2);margin-top:var(--gutter-y)}#jedchecker .col-6{flex:0 0 auto;width:50%}#jedchecker .col-12{flex:0 0 auto;width:100%}#jedchecker .g-3{--gutter-x:1rem;--gutter-y:1rem}@media (min-width:768px){#jedchecker .col-md-3{flex:0 0 auto;width:25%}#jedchecker .col-md-4{flex:0 0 auto;width:33.3333333333%}#jedchecker .col-md-8{flex:0 0 auto;width:66.6666666667%}#jedchecker .col-md-9{flex:0 0 auto;width:75%}}#jedchecker .form-control{display:block;width:100%;padding:.6rem 1rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #cdcdcd;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}#jedchecker .form-control[type=file]{overflow:hidden}#jedchecker .form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}#jedchecker .form-control:focus{color:#495057;background-color:#fff;border-color:#95b4db;outline:0;box-shadow:0 0 0 .25rem rgba(42,105,183,.25)}#jedchecker .form-control::-webkit-date-and-time-value{height:1.5em}#jedchecker .form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}#jedchecker .form-control::-moz-placeholder{color:#6c757d;opacity:1}#jedchecker .form-control:-ms-input-placeholder{color:#6c757d;opacity:1}#jedchecker .form-control::-ms-input-placeholder{color:#6c757d;opacity:1}#jedchecker .form-control::placeholder{color:#6c757d;opacity:1}#jedchecker .form-control:disabled{background-color:#e8e8e8;opacity:1}#jedchecker .form-control::-webkit-file-upload-button,#jedchecker .form-control::file-selector-button{padding:.6rem 1rem;margin:-.6rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem;color:#fff;background-color:#132f53;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}#jedchecker .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,#jedchecker .form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#122d4f}#jedchecker .input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}#jedchecker .input-group>.form-control{position:relative;flex:1 1 auto;width:1%;min-width:0}#jedchecker .input-group>.form-control:focus{z-index:3}#jedchecker .input-group .btn{position:relative;z-index:2}#jedchecker .input-group .btn:focus{z-index:3}#jedchecker .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}#jedchecker .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}#jedchecker .invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#c52827}#jedchecker .btn{display:inline-block;font-weight:400;line-height:1.5;color:#495057;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.6rem 1rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}#jedchecker .btn:hover{color:#495057}#jedchecker .btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(42,105,183,.25)}#jedchecker .btn:disabled{pointer-events:none;opacity:.4}#jedchecker .btn-success{color:#fff;background-color:#2f7d32;border-color:#2f7d32}#jedchecker .btn-success:hover{color:#fff;background-color:#286a2b;border-color:#266428}#jedchecker .btn-success:focus{color:#fff;background-color:#286a2b;border-color:#266428;box-shadow:0 0 0 .25rem rgba(78,145,81,.5)}#jedchecker .btn-success:active{color:#fff;background-color:#266428;border-color:#235e26}#jedchecker .btn-success:active:focus{box-shadow:0 0 0 .25rem rgba(78,145,81,.5)}#jedchecker .btn-success:disabled{color:#fff;background-color:#2f7d32;border-color:#2f7d32}#jedchecker .btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}#jedchecker .btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}#jedchecker .btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}#jedchecker .btn-light:active{color:#000;background-color:#f9fafb;border-color:#f9fafb}#jedchecker .btn-light:active:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}#jedchecker .btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}#jedchecker .fade{transition:opacity .15s linear}#jedchecker .fade:not(.show){opacity:0}#jedchecker .collapse:not(.show){display:none}#jedchecker .collapsing{height:0;overflow:hidden;transition:height .35s ease}#jedchecker .accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#495057;background-color:transparent;border:1px solid rgba(0,0,0,.125);border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}#jedchecker .accordion-button.collapsed{border-bottom-width:0}#jedchecker .accordion-button:not(.collapsed){color:#265fa5;background-color:#eaf0f8}#jedchecker .accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23265fa5'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");-webkit-transform:rotate(180deg);transform:rotate(180deg)}#jedchecker .accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23495057'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out}#jedchecker .accordion-button:hover{z-index:2}#jedchecker .accordion-button:focus{z-index:3;border-color:#95b4db;outline:0;box-shadow:0 0 0 .25rem rgba(42,105,183,.25)}#jedchecker .tab-content>.tab-pane{display:none}#jedchecker .tab-content>.active{display:block}#jedchecker .card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:0 solid transparent;border-radius:.25rem}#jedchecker .card>.list-group{border-top:inherit;border-bottom:inherit}#jedchecker .card>.list-group:first-child{border-top-width:0;border-top-left-radius:.25rem;border-top-right-radius:.25rem}#jedchecker .card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}#jedchecker .card>.card-header+.list-group{border-top:0}#jedchecker .card-body{flex:1 1 auto;padding:1rem 1rem}#jedchecker .card-title{margin-bottom:.5rem}#jedchecker .card-text:last-child{margin-bottom:0}#jedchecker .card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:0 solid transparent}#jedchecker .card-header:first-child{border-radius:.25rem .25rem 0 0}#jedchecker .card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:0 solid transparent}#jedchecker .card-footer:last-child{border-radius:0 0 .25rem .25rem}#jedchecker .badge{display:inline-block;padding:.3rem .2rem;font-size:.75rem;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.2rem}#jedchecker .badge:empty{display:none}#jedchecker .alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}#jedchecker .alert-secondary{color:#2c3034;background-color:#dbdcdd;border-color:#c8cbcd}#jedchecker .alert-success{color:#1c4b1e;background-color:#d5e5d6;border-color:#c1d8c2}#jedchecker .alert-info{color:#193f6e;background-color:#d4e1f1;border-color:#bfd2ea}#jedchecker .alert-warning{color:#664808;background-color:#fff0d0;border-color:#ffe9b9}#jedchecker .alert-danger{color:#761817;background-color:#f3d4d4;border-color:#eebfbe}#jedchecker .list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}#jedchecker .list-group-item-action{width:100%;color:#495057;text-align:inherit}#jedchecker .list-group-item-action:focus,#jedchecker .list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}#jedchecker .list-group-item-action:active{color:#495057;background-color:#e8e8e8}#jedchecker .list-group-item{position:relative;display:block;padding:.5rem 1rem;text-decoration:none;background-color:#fefefe;border:1px solid rgba(0,0,0,.125)}#jedchecker .list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}#jedchecker .list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}#jedchecker .list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fefefe}#jedchecker .list-group-item.active{z-index:2;color:#fff;background-color:#2a69b7;border-color:#2a69b7}#jedchecker .list-group-flush{border-radius:0}#jedchecker .list-group-flush>.list-group-item{border-width:0 0 1px}#jedchecker .list-group-flush>.list-group-item:last-child{border-bottom-width:0}#jedchecker .list-group-item-action{color:#0b1c32;background-color:#d0d5dd}#jedchecker .list-group-item-action.list-group-item-action:focus,#jedchecker .list-group-item-action.list-group-item-action:hover{color:#0b1c32;background-color:#bbc0c7}#jedchecker .list-group-item-action.list-group-item-action.active{color:#fff;background-color:#0b1c32;border-color:#0b1c32}#jedchecker .tooltip{position:absolute;z-index:1070;display:block;margin:0;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.8rem;word-wrap:break-word;opacity:0}#jedchecker .tooltip.show{opacity:.9}#jedchecker .tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}#jedchecker .tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}#jedchecker .bs-tooltip-top{padding:.4rem 0}#jedchecker .bs-tooltip-top .tooltip-arrow{bottom:0}#jedchecker .bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}#jedchecker .bs-tooltip-bottom{padding:.4rem 0}#jedchecker .bs-tooltip-bottom .tooltip-arrow{top:0}#jedchecker .bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}#jedchecker .tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}#jedchecker .d-flex{display:flex!important}#jedchecker .border-error{border-color:#3b0d0c!important}#jedchecker .justify-content-between{justify-content:space-between!important}#jedchecker .mt-3{margin-top:1rem!important}#jedchecker .me-1{margin-right:.25rem!important}#jedchecker .mb-1{margin-bottom:.25rem!important}#jedchecker .ps-1{padding-left:.25rem!important}#jedchecker .text-center{text-align:center!important}#jedchecker .text-info{color:#2a69b8!important}#jedchecker .text-white{color:#fff!important}#jedchecker .text-muted{color:#6c757d!important}#jedchecker .bg-secondary{background-color:#495057!important}#jedchecker .bg-success{background-color:#2f7d32!important}#jedchecker .bg-info{background-color:#2a69b8!important}#jedchecker .bg-warning{background-color:#ffb514!important}#jedchecker .bg-danger{background-color:#c52827!important}#jedchecker .bg-light{background-color:#f8f9fa!important}#jedchecker .text-nowrap{white-space:nowrap!important}#jedchecker .rounded-pill{border-radius:50rem!important}#jedchecker{display:flex;flex-direction:column;min-height:100%;padding:0;margin:0;text-align:start}#jedchecker h5{font-weight:700}#jedchecker small{font-size:.8rem}#jedchecker .input-group input{min-width:220px}#jedchecker .text-muted{color:#495057!important;opacity:.7}@media (max-width:767.98px){#jedchecker .badge{white-space:normal}}#jedchecker .badge.bg-warning{color:#000;background-color:#f9d71c!important;border:1px solid #4d4d4d}#jedchecker .badge.bg-success{color:#fff;background-color:#2f7d32!important;border:1px solid #fff}#jedchecker .badge.bg-danger{color:#fff;background-color:#900!important;border:1px solid #fff}#jedchecker .badge.bg-info,#jedchecker .badge.bg-secondary{color:#495057;background-color:#dee2e6!important;border:1px solid #949da5}#jedchecker .btn{transition:none}#jedchecker .card{box-shadow:0 2px 4px rgba(0,0,0,.16),0 2px 4px rgba(0,0,0,.23)}#jedchecker .list-group-item{background-color:#fefefe}#jedchecker .alert{margin:1rem 0;border-right:0;border-left:0;border-radius:.2rem}#jedchecker .alert.alert-info{color:#132f53;background-color:#cacaca;border:1px solid #acacac}#jedchecker .alert.alert-warning{color:#495057;background-color:#ffb514;border:1px solid #ffb514}#jedchecker .alert.alert-success{color:#0f2f21;background-color:#e1f5ec;border:1px solid #0f2f21}#jedchecker .form-control{max-width:100%;background-color:#fff;border:solid 1px #c9c9c9;border-radius:.25rem;box-shadow:inset 0 0 0 .1rem #e9e9e9}#jedchecker .form-control:focus{border-color:#39f;box-shadow:0 0 0 .2rem #eaeaea}#jedchecker .form-control:disabled{border:0;box-shadow:none}#jedchecker [role=tooltip]:not(.show){z-index:1070;display:none;max-width:100%;padding:.5em;margin:.25em;color:#fff;text-align:start;background:#000;border-radius:.2rem}#jedchecker *{box-sizing:border-box}#jedchecker .hidden{display:none}@media (prefers-reduced-motion:reduce){#jedchecker .accordion-button,#jedchecker .accordion-button::after,#jedchecker .btn,#jedchecker .collapsing,#jedchecker .fade,#jedchecker .form-control,#jedchecker .form-control::-webkit-file-upload-button,#jedchecker .form-control::file-selector-button{-webkit-transition:none;transition:none}#jedchecker *,#jedchecker ::after,#jedchecker ::before{background-attachment:initial!important;transition-delay:0s!important;transition-duration:0s!important;-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-animation-delay:-1ms!important;animation-delay:-1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
\ No newline at end of file
diff --git a/media/com_jedchecker/css/style.css b/media/com_jedchecker/css/style.css
index d4e126e..7500886 100644
--- a/media/com_jedchecker/css/style.css
+++ b/media/com_jedchecker/css/style.css
@@ -1,64 +1,77 @@
-#adminForm {
- background: #FFF;
+/* BS5 spinner */
+@-webkit-keyframes spinner-border {
+ to {
+ transform: rotate(360deg);
+ }
}
-#police-check-result {
- padding: 0;
+@keyframes spinner-border {
+ to {
+ transform: rotate(360deg);
+ }
+}
+#jedchecker .spinner-border {
+ display: inline-block;
+ width: 2rem;
+ height: 2rem;
+ vertical-align: text-bottom;
+ border: 0.25em solid currentColor;
+ border-right-color: transparent;
+ border-radius: 50%;
+ -webkit-animation: 0.75s linear infinite spinner-border;
+ animation: 0.75s linear infinite spinner-border;
}
-#police-check-result>div {
- border-top: 1px solid #ccc;
- padding: 5px 10px;
+#jedchecker .spinner-border-sm {
+ width: 1rem;
+ height: 1rem;
+ border-width: 0.2em;
}
-#police-check-result .alert {
- margin: 5px 0;
+#jedchecker .spinner-border.hidden {
+ display: none;
}
-.copyright {
- line-height: 160%;
- margin: 10px;
- text-align: center;
+/* Style overrides */
+#jedchecker .list-group-item-action.list-group-item-action.active {
+ color: #fff;
+ background-color: #132f53 !important;
+ border-color: #132f53 !important;
}
-.rule {
- font-weight: bold;
+#jedchecker .badge {
+ border: none !important;
+ padding: 0.3rem 0.45rem !important;
+}
+#jedchecker .badge.bg-info {
+ background-color: #2a69b8 !important;
+ color: #fff;
+}
+#jedchecker .alert.alert-warning {
+ color: #664808;
+ background-color: #fff0d0;
+ border-color: #ffe9b9;
+}
+#jedchecker .alert.alert-info {
+ color: #193f6e;
+ background-color: #d4e1f1;
+ border-color: #bfcbd9;
+}
+#jedchecker .alert pre {
+ margin-bottom: 0;
+ white-space: pre;
}
-small {
- font-size: 110%;
- padding: 0 0 0 30px;
- white-space: nowrap;
-
+/* fixes for Joomla! 3.x */
+#jedchecker input[type="file"] {
+ height: auto;
}
-
-#police-check-result li {
- margin-bottom: 0.7em;
- overflow: hidden;
+#jedchecker .fade.show {
+ opacity: 1;
}
-
-#police-check-result ul li pre {
- background: white none repeat scroll 0 0;
- border: 1px solid #ccc;
- display: block;
- margin: 0;
- overflow: hidden;
- padding: 2px 6px;
- text-overflow: ellipsis;
- vertical-align: middle;
- white-space: nowrap;
+#jedchecker .collapse {
+ height: inherit;
}
-
-.jamss_tooltip {
- background-color: blue;
- color: white;
- border-radius: 20px;
+#jedchecker .tooltip > .tooltip-arrow {
+ border-style: none;
}
-
-.jamss_tooltip.code {
- background-color: #C03020;
-}
-
-.btn {
- white-space: normal !important;
-}
\ No newline at end of file
diff --git a/media/com_jedchecker/css/style.min.css b/media/com_jedchecker/css/style.min.css
index 1e3d09d..3314110 100644
--- a/media/com_jedchecker/css/style.min.css
+++ b/media/com_jedchecker/css/style.min.css
@@ -1 +1 @@
-#adminForm{background:#fff}#police-check-result{padding:0}#police-check-result>div{border-top:1px solid #ccc;padding:5px 10px}#police-check-result .alert{margin:5px 0}.copyright{line-height:160%;margin:10px;text-align:center}.rule{font-weight:700}small{font-size:110%;padding:0 0 0 30px;white-space:nowrap}#police-check-result li{margin-bottom:.7em;overflow:hidden}#police-check-result ul li pre{background:#fff none repeat scroll 0 0;border:1px solid #ccc;display:block;margin:0;overflow:hidden;padding:2px 6px;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.jamss_tooltip{background-color:#00f;color:#fff;border-radius:20px}.jamss_tooltip.code{background-color:#c03020}.btn{white-space:normal!important}
\ No newline at end of file
+@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}#jedchecker .spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}#jedchecker .spinner-border-sm{width:1rem;height:1rem;border-width:.2em}#jedchecker .spinner-border.hidden{display:none}#jedchecker .list-group-item-action.list-group-item-action.active{color:#fff;background-color:#132f53!important;border-color:#132f53!important}#jedchecker .badge{border:none!important;padding:.3rem .45rem!important}#jedchecker .badge.bg-info{background-color:#2a69b8!important;color:#fff}#jedchecker .alert.alert-warning{color:#664808;background-color:#fff0d0;border-color:#ffe9b9}#jedchecker .alert.alert-info{color:#193f6e;background-color:#d4e1f1;border-color:#bfcbd9}#jedchecker .alert pre{margin-bottom:0;white-space:pre}#jedchecker input[type=file]{height:auto}#jedchecker .fade.show{opacity:1}#jedchecker .collapse{height:inherit}#jedchecker .tooltip>.tooltip-arrow{border-style:none}
\ No newline at end of file
diff --git a/media/com_jedchecker/js/bootstrap.bundle.min.js b/media/com_jedchecker/js/bootstrap.bundle.min.js
new file mode 100644
index 0000000..c682e1b
--- /dev/null
+++ b/media/com_jedchecker/js/bootstrap.bundle.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v5.0.0-beta2 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";function t(t,e){for(var n=0;n0,i._pointerEvent=Boolean(window.PointerEvent),i._addEventListeners(),i}i(o,t);var r=o.prototype;return r.next=function(){this._isSliding||this._slide("next")},r.nextWhenVisible=function(){!document.hidden&&g(this._element)&&this.next()},r.prev=function(){this._isSliding||this._slide("prev")},r.pause=function(t){t||(this._isPaused=!0),Y(".carousel-item-next, .carousel-item-prev",this._element)&&(f(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},r.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},r.to=function(t){var e=this;this._activeElement=Y(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)B.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},r.dispose=function(){t.prototype.dispose.call(this),B.off(this._element,".bs.carousel"),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},r._getConfig=function(t){return t=n({},X,t),p("carousel",t,Q),t},r._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&(b?this.next():this.prev()),e<0&&(b?this.prev():this.next())}},r._addEventListeners=function(){var t=this;this._config.keyboard&&B.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(B.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),B.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},r._addTouchEventListeners=function(){var t=this,e=function(e){!t._pointerEvent||"pen"!==e.pointerType&&"touch"!==e.pointerType?t._pointerEvent||(t.touchStartX=e.touches[0].clientX):t.touchStartX=e.clientX},n=function(e){!t._pointerEvent||"pen"!==e.pointerType&&"touch"!==e.pointerType||(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};F(".carousel-item img",this._element).forEach((function(t){B.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(B.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),B.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(B.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),B.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),B.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},r._keydown=function(t){/input|textarea/i.test(t.target.tagName)||("ArrowLeft"===t.key?(t.preventDefault(),b?this.next():this.prev()):"ArrowRight"===t.key&&(t.preventDefault(),b?this.prev():this.next()))},r._getItemIndex=function(t){return this._items=t&&t.parentNode?F(".carousel-item",t.parentNode):[],this._items.indexOf(t)},r._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+("prev"===t?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},r._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(Y(".active.carousel-item",this._element));return B.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},r._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=Y(".active",this._indicatorsElement);e.classList.remove("active"),e.removeAttribute("aria-current");for(var n=F("[data-bs-target]",this._indicatorsElement),i=0;i0)for(var i=0;i=0}function _t(t){return((ut(t)?t.ownerDocument:t.document)||window.document).documentElement}function bt(t){return"html"===lt(t)?t:t.assignedSlot||t.parentNode||t.host||_t(t)}function yt(t){if(!ft(t)||"fixed"===mt(t).position)return null;var e=t.offsetParent;if(e){var n=_t(e);if("body"===lt(e)&&"static"===mt(e).position&&"static"!==mt(n).position)return n}return e}function wt(t){for(var e=ct(t),n=yt(t);n&&vt(n)&&"static"===mt(n).position;)n=yt(n);return n&&"body"===lt(n)&&"static"===mt(n).position?e:n||function(t){for(var e=bt(t);ft(e)&&["html","body"].indexOf(lt(e))<0;){var n=mt(e);if("none"!==n.transform||"none"!==n.perspective||n.willChange&&"auto"!==n.willChange)return e;e=e.parentNode}return null}(t)||e}function Et(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Tt(t,e,n){return Math.max(t,Math.min(e,n))}function kt(t){return Object.assign(Object.assign({},{top:0,right:0,bottom:0,left:0}),t)}function At(t,e){return e.reduce((function(e,n){return e[n]=t,e}),{})}var Lt={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,n=t.state,i=t.name,o=n.elements.arrow,r=n.modifiersData.popperOffsets,s=ht(n.placement),a=Et(s),l=[it,nt].indexOf(s)>=0?"height":"width";if(o&&r){var c=n.modifiersData[i+"#persistent"].padding,u=pt(o),f="y"===a?tt:it,d="y"===a?et:nt,h=n.rects.reference[l]+n.rects.reference[a]-r[a]-n.rects.popper[l],p=r[a]-n.rects.reference[a],g=wt(o),m=g?"y"===a?g.clientHeight||0:g.clientWidth||0:0,v=h/2-p/2,_=c[f],b=m-u[l]-c[d],y=m/2-u[l]/2+v,w=Tt(_,y,b),E=a;n.modifiersData[i]=((e={})[E]=w,e.centerOffset=w-y,e)}},effect:function(t){var e=t.state,n=t.options,i=t.name,o=n.element,r=void 0===o?"[data-popper-arrow]":o,s=n.padding,a=void 0===s?0:s;null!=r&&("string"!=typeof r||(r=e.elements.popper.querySelector(r)))&>(e.elements.popper,r)&&(e.elements.arrow=r,e.modifiersData[i+"#persistent"]={padding:kt("number"!=typeof a?a:At(a,ot))})},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},Ot={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Dt(t){var e,n=t.popper,i=t.popperRect,o=t.placement,r=t.offsets,s=t.position,a=t.gpuAcceleration,l=t.adaptive,c=t.roundOffsets?function(t){var e=t.x,n=t.y,i=window.devicePixelRatio||1;return{x:Math.round(e*i)/i||0,y:Math.round(n*i)/i||0}}(r):r,u=c.x,f=void 0===u?0:u,d=c.y,h=void 0===d?0:d,p=r.hasOwnProperty("x"),g=r.hasOwnProperty("y"),m=it,v=tt,_=window;if(l){var b=wt(n);b===ct(n)&&(b=_t(n)),o===tt&&(v=et,h-=b.clientHeight-i.height,h*=a?1:-1),o===it&&(m=nt,f-=b.clientWidth-i.width,f*=a?1:-1)}var y,w=Object.assign({position:s},l&&Ot);return a?Object.assign(Object.assign({},w),{},((y={})[v]=g?"0":"",y[m]=p?"0":"",y.transform=(_.devicePixelRatio||1)<2?"translate("+f+"px, "+h+"px)":"translate3d("+f+"px, "+h+"px, 0)",y)):Object.assign(Object.assign({},w),{},((e={})[v]=g?h+"px":"",e[m]=p?f+"px":"",e.transform="",e))}var xt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,i=n.gpuAcceleration,o=void 0===i||i,r=n.adaptive,s=void 0===r||r,a=n.roundOffsets,l=void 0===a||a,c={placement:ht(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign(Object.assign({},e.styles.popper),Dt(Object.assign(Object.assign({},c),{},{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:s,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign(Object.assign({},e.styles.arrow),Dt(Object.assign(Object.assign({},c),{},{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign(Object.assign({},e.attributes.popper),{},{"data-popper-placement":e.placement})},data:{}},Ct={passive:!0},St={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,i=t.options,o=i.scroll,r=void 0===o||o,s=i.resize,a=void 0===s||s,l=ct(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return r&&c.forEach((function(t){t.addEventListener("scroll",n.update,Ct)})),a&&l.addEventListener("resize",n.update,Ct),function(){r&&c.forEach((function(t){t.removeEventListener("scroll",n.update,Ct)})),a&&l.removeEventListener("resize",n.update,Ct)}},data:{}},jt={left:"right",right:"left",bottom:"top",top:"bottom"};function Nt(t){return t.replace(/left|right|bottom|top/g,(function(t){return jt[t]}))}var Pt={start:"end",end:"start"};function It(t){return t.replace(/start|end/g,(function(t){return Pt[t]}))}function Mt(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function Bt(t){var e=ct(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ht(t){return Mt(_t(t)).left+Bt(t).scrollLeft}function Rt(t){var e=mt(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+i)}function Wt(t,e){void 0===e&&(e=[]);var n=function t(e){return["html","body","#document"].indexOf(lt(e))>=0?e.ownerDocument.body:ft(e)&&Rt(e)?e:t(bt(e))}(t),i="body"===lt(n),o=ct(n),r=i?[o].concat(o.visualViewport||[],Rt(n)?n:[]):n,s=e.concat(r);return i?s:s.concat(Wt(bt(r)))}function Kt(t){return Object.assign(Object.assign({},t),{},{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Ut(t,e){return"viewport"===e?Kt(function(t){var e=ct(t),n=_t(t),i=e.visualViewport,o=n.clientWidth,r=n.clientHeight,s=0,a=0;return i&&(o=i.width,r=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=i.offsetLeft,a=i.offsetTop)),{width:o,height:r,x:s+Ht(t),y:a}}(t)):ft(e)?function(t){var e=Mt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Kt(function(t){var e=_t(t),n=Bt(t),i=t.ownerDocument.body,o=Math.max(e.scrollWidth,e.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=Math.max(e.scrollHeight,e.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-n.scrollLeft+Ht(t),a=-n.scrollTop;return"rtl"===mt(i||e).direction&&(s+=Math.max(e.clientWidth,i?i.clientWidth:0)-o),{width:o,height:r,x:s,y:a}}(_t(t)))}function zt(t){return t.split("-")[1]}function Ft(t){var e,n=t.reference,i=t.element,o=t.placement,r=o?ht(o):null,s=o?zt(o):null,a=n.x+n.width/2-i.width/2,l=n.y+n.height/2-i.height/2;switch(r){case tt:e={x:a,y:n.y-i.height};break;case et:e={x:a,y:n.y+n.height};break;case nt:e={x:n.x+n.width,y:l};break;case it:e={x:n.x-i.width,y:l};break;default:e={x:n.x,y:n.y}}var c=r?Et(r):null;if(null!=c){var u="y"===c?"height":"width";switch(s){case"start":e[c]=e[c]-(n[u]/2-i[u]/2);break;case"end":e[c]=e[c]+(n[u]/2-i[u]/2)}}return e}function Yt(t,e){void 0===e&&(e={});var n=e,i=n.placement,o=void 0===i?t.placement:i,r=n.boundary,s=void 0===r?"clippingParents":r,a=n.rootBoundary,l=void 0===a?"viewport":a,c=n.elementContext,u=void 0===c?"popper":c,f=n.altBoundary,d=void 0!==f&&f,h=n.padding,p=void 0===h?0:h,g=kt("number"!=typeof p?p:At(p,ot)),m="popper"===u?"reference":"popper",v=t.elements.reference,_=t.rects.popper,b=t.elements[d?m:u],y=function(t,e,n){var i="clippingParents"===e?function(t){var e=Wt(bt(t)),n=["absolute","fixed"].indexOf(mt(t).position)>=0&&ft(t)?wt(t):t;return ut(n)?e.filter((function(t){return ut(t)&>(t,n)&&"body"!==lt(t)})):[]}(t):[].concat(e),o=[].concat(i,[n]),r=o[0],s=o.reduce((function(e,n){var i=Ut(t,n);return e.top=Math.max(i.top,e.top),e.right=Math.min(i.right,e.right),e.bottom=Math.min(i.bottom,e.bottom),e.left=Math.max(i.left,e.left),e}),Ut(t,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}(ut(b)?b:b.contextElement||_t(t.elements.popper),s,l),w=Mt(v),E=Ft({reference:w,element:_,strategy:"absolute",placement:o}),T=Kt(Object.assign(Object.assign({},_),E)),k="popper"===u?T:w,A={top:y.top-k.top+g.top,bottom:k.bottom-y.bottom+g.bottom,left:y.left-k.left+g.left,right:k.right-y.right+g.right},L=t.modifiersData.offset;if("popper"===u&&L){var O=L[o];Object.keys(A).forEach((function(t){var e=[nt,et].indexOf(t)>=0?1:-1,n=[tt,et].indexOf(t)>=0?"y":"x";A[t]+=O[n]*e}))}return A}function qt(t,e){void 0===e&&(e={});var n=e,i=n.placement,o=n.boundary,r=n.rootBoundary,s=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,c=void 0===l?st:l,u=zt(i),f=u?a?rt:rt.filter((function(t){return zt(t)===u})):ot,d=f.filter((function(t){return c.indexOf(t)>=0}));0===d.length&&(d=f);var h=d.reduce((function(e,n){return e[n]=Yt(t,{placement:n,boundary:o,rootBoundary:r,padding:s})[ht(n)],e}),{});return Object.keys(h).sort((function(t,e){return h[t]-h[e]}))}var Vt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,i=t.name;if(!e.modifiersData[i]._skip){for(var o=n.mainAxis,r=void 0===o||o,s=n.altAxis,a=void 0===s||s,l=n.fallbackPlacements,c=n.padding,u=n.boundary,f=n.rootBoundary,d=n.altBoundary,h=n.flipVariations,p=void 0===h||h,g=n.allowedAutoPlacements,m=e.options.placement,v=ht(m),_=l||(v!==m&&p?function(t){if("auto"===ht(t))return[];var e=Nt(t);return[It(t),e,It(e)]}(m):[Nt(m)]),b=[m].concat(_).reduce((function(t,n){return t.concat("auto"===ht(n)?qt(e,{placement:n,boundary:u,rootBoundary:f,padding:c,flipVariations:p,allowedAutoPlacements:g}):n)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,T=!0,k=b[0],A=0;A=0,C=x?"width":"height",S=Yt(e,{placement:L,boundary:u,rootBoundary:f,altBoundary:d,padding:c}),j=x?D?nt:it:D?et:tt;y[C]>w[C]&&(j=Nt(j));var N=Nt(j),P=[];if(r&&P.push(S[O]<=0),a&&P.push(S[j]<=0,S[N]<=0),P.every((function(t){return t}))){k=L,T=!1;break}E.set(L,P)}if(T)for(var I=function(t){var e=b.find((function(e){var n=E.get(e);if(n)return n.slice(0,t).every((function(t){return t}))}));if(e)return k=e,"break"},M=p?3:1;M>0&&"break"!==I(M);M--);e.placement!==k&&(e.modifiersData[i]._skip=!0,e.placement=k,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Xt(t,e,n){return void 0===n&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function Qt(t){return[tt,nt,et,it].some((function(e){return t[e]>=0}))}var $t={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,i=e.rects.reference,o=e.rects.popper,r=e.modifiersData.preventOverflow,s=Yt(e,{elementContext:"reference"}),a=Yt(e,{altBoundary:!0}),l=Xt(s,i),c=Xt(a,o,r),u=Qt(l),f=Qt(c);e.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:f},e.attributes.popper=Object.assign(Object.assign({},e.attributes.popper),{},{"data-popper-reference-hidden":u,"data-popper-escaped":f})}},Gt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,n=t.options,i=t.name,o=n.offset,r=void 0===o?[0,0]:o,s=st.reduce((function(t,n){return t[n]=function(t,e,n){var i=ht(t),o=[it,tt].indexOf(i)>=0?-1:1,r="function"==typeof n?n(Object.assign(Object.assign({},e),{},{placement:t})):n,s=r[0],a=r[1];return s=s||0,a=(a||0)*o,[it,nt].indexOf(i)>=0?{x:a,y:s}:{x:s,y:a}}(n,e.rects,r),t}),{}),a=s[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[i]=s}},Zt={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=Ft({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Jt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,i=t.name,o=n.mainAxis,r=void 0===o||o,s=n.altAxis,a=void 0!==s&&s,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,f=n.padding,d=n.tether,h=void 0===d||d,p=n.tetherOffset,g=void 0===p?0:p,m=Yt(e,{boundary:l,rootBoundary:c,padding:f,altBoundary:u}),v=ht(e.placement),_=zt(e.placement),b=!_,y=Et(v),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,T=e.rects.reference,k=e.rects.popper,A="function"==typeof g?g(Object.assign(Object.assign({},e.rects),{},{placement:e.placement})):g,L={x:0,y:0};if(E){if(r){var O="y"===y?tt:it,D="y"===y?et:nt,x="y"===y?"height":"width",C=E[y],S=E[y]+m[O],j=E[y]-m[D],N=h?-k[x]/2:0,P="start"===_?T[x]:k[x],I="start"===_?-k[x]:-T[x],M=e.elements.arrow,B=h&&M?pt(M):{width:0,height:0},H=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=H[O],W=H[D],K=Tt(0,T[x],B[x]),U=b?T[x]/2-N-K-R-A:P-K-R-A,z=b?-T[x]/2+N+K+W+A:I+K+W+A,F=e.elements.arrow&&wt(e.elements.arrow),Y=F?"y"===y?F.clientTop||0:F.clientLeft||0:0,q=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,V=E[y]+U-q-Y,X=E[y]+z-q,Q=Tt(h?Math.min(S,V):S,C,h?Math.max(j,X):j);E[y]=Q,L[y]=Q-C}if(a){var $="x"===y?tt:it,G="x"===y?et:nt,Z=E[w],J=Tt(Z+m[$],Z,Z-m[G]);E[w]=J,L[w]=J-Z}e.modifiersData[i]=L}},requiresIfExists:["offset"]};function te(t,e,n){void 0===n&&(n=!1);var i,o,r=_t(e),s=Mt(t),a=ft(e),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==lt(e)||Rt(r))&&(l=(i=e)!==ct(i)&&ft(i)?{scrollLeft:(o=i).scrollLeft,scrollTop:o.scrollTop}:Bt(i)),ft(e)?((c=Mt(e)).x+=e.clientLeft,c.y+=e.clientTop):r&&(c.x=Ht(r))),{x:s.left+l.scrollLeft-c.x,y:s.top+l.scrollTop-c.y,width:s.width,height:s.height}}var ee={placement:"bottom",modifiers:[],strategy:"absolute"};function ne(){for(var t=arguments.length,e=new Array(t),n=0;n0&&r--,"ArrowDown"===t.key&&rdocument.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var n=u(this._dialog);B.off(this._element,"transitionend"),B.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static"),e||(B.one(t._element,"transitionend",(function(){t._element.style.overflowY=""})),h(t._element,n))})),h(this._element,n),this._element.focus()}},r._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!b||this._isBodyOverflowing&&!t&&b)&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!b||!this._isBodyOverflowing&&t&&b)&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},r._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},r._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ce={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Se=function(t){function o(e,n){var i;if(void 0===ae)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(i=t.call(this,e)||this)._isEnabled=!0,i._timeout=0,i._hoverState="",i._activeTrigger={},i._popper=null,i.config=i._getConfig(n),i.tip=null,i._setListeners(),i}i(o,t);var r=o.prototype;return r.enable=function(){this._isEnabled=!0},r.disable=function(){this._isEnabled=!1},r.toggleEnabled=function(){this._isEnabled=!this._isEnabled},r.toggle=function(t){if(this._isEnabled)if(t){var e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},r.dispose=function(){clearTimeout(this._timeout),B.off(this._element,this.constructor.EVENT_KEY),B.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,t.prototype.dispose.call(this)},r.show=function(){var t=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=B.trigger(this._element,this.constructor.Event.SHOW),n=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this._element),i=null===n?this._element.ownerDocument.documentElement.contains(this._element):n.contains(this._element);if(!e.defaultPrevented&&i){var o=this.getTipElement(),r=s(this.constructor.NAME);o.setAttribute("id",r),this._element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,o,this._element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var c=this._getContainer();E(o,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||c.appendChild(o),B.trigger(this._element,this.constructor.Event.INSERTED),this._popper=se(this._element,o,this._getPopperConfig(l)),o.classList.add("show");var f,d,p="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;p&&(f=o.classList).add.apply(f,p.split(" ")),"ontouchstart"in document.documentElement&&(d=[]).concat.apply(d,document.body.children).forEach((function(t){B.on(t,"mouseover",(function(){}))}));var g=function(){var e=t._hoverState;t._hoverState=null,B.trigger(t._element,t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(this.tip.classList.contains("fade")){var m=u(this.tip);B.one(this.tip,"transitionend",g),h(this.tip,m)}else g()}}},r.hide=function(){var t=this;if(this._popper){var e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t._element.removeAttribute("aria-describedby"),B.trigger(t._element,t.constructor.Event.HIDDEN),t._popper&&(t._popper.destroy(),t._popper=null)};if(!B.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement&&(i=[]).concat.apply(i,document.body.children).forEach((function(t){return B.off(t,"mouseover",m)})),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=u(e);B.one(e,"transitionend",n),h(e,o)}else n();this._hoverState=""}}},r.update=function(){null!==this._popper&&this._popper.update()},r.isWithContent=function(){return Boolean(this.getTitle())},r.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},r.setContent=function(){var t=this.getTipElement();this.setElementContent(Y(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},r.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&d(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=ke(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},r.getTitle=function(){var t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),t},r.updateAttachment=function(t){return"right"===t?"end":"left"===t?"start":t},r._initializeOnDelegatedTarget=function(t,e){var n=this.constructor.DATA_KEY;return(e=e||T(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E(t.delegateTarget,n,e)),e},r._getOffset=function(){var t=this,e=this.config.offset;return"string"==typeof e?e.split(",").map((function(t){return Number.parseInt(t,10)})):"function"==typeof e?function(n){return e(n,t._element)}:e},r._getPopperConfig=function(t){var e=this,i={placement:t,modifiers:[{name:"flip",options:{altBoundary:!0,fallbackPlacements:this.config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this.config.boundary}},{name:"arrow",options:{element:"."+this.constructor.NAME+"-arrow"}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:function(t){return e._handlePopperPlacementChange(t)}}],onFirstUpdate:function(t){t.options.placement!==t.placement&&e._handlePopperPlacementChange(t)}};return n({},i,"function"==typeof this.config.popperConfig?this.config.popperConfig(i):this.config.popperConfig)},r._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))},r._getContainer=function(){return!1===this.config.container?document.body:d(this.config.container)?this.config.container:Y(this.config.container)},r._getAttachment=function(t){return De[t.toUpperCase()]},r._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)B.on(t._element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;B.on(t._element,n,t.config.selector,(function(e){return t._enter(e)})),B.on(t._element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t._element&&t.hide()},B.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=n({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},r._fixTitle=function(){var t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))},r._enter=function(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},r._leave=function(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},r._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},r._getConfig=function(t){var e=z.getDataAttributes(this._element);return Object.keys(e).forEach((function(t){Le.has(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=n({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),p("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=ke(t.template,t.allowList,t.sanitizeFn)),t},r._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Ae);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},r._handlePopperPlacementChange=function(t){var e=t.state;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))},o.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.tooltip"),n="object"==typeof t&&t;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},e(o,null,[{key:"Default",get:function(){return xe}},{key:"NAME",get:function(){return"tooltip"}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Ce}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Oe}}]),o}(H);y("tooltip",Se);var je=new RegExp("(^|\\s)bs-popover\\S+","g"),Ne=n({},Se.Default,{placement:"right",offset:[0,8],trigger:"click",content:"",template:'
'}),Pe=n({},Se.DefaultType,{content:"(string|element|function)"}),Ie={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Me=function(t){function n(){return t.apply(this,arguments)||this}i(n,t);var o=n.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.setContent=function(){var t=this.getTipElement();this.setElementContent(Y(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(Y(".popover-body",t),e),t.classList.remove("fade","show")},o._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))},o._getContent=function(){return this._element.getAttribute("data-bs-content")||this.config.content},o._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(je);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},n.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.popover"),i="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new n(this,i),E(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},e(n,null,[{key:"Default",get:function(){return Ne}},{key:"NAME",get:function(){return"popover"}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Ie}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Pe}}]),n}(Se);y("popover",Me);var Be={offset:10,method:"auto",target:""},He={offset:"number",method:"string",target:"(string|element)"},Re=function(t){function o(e,n){var i;return(i=t.call(this,e)||this)._scrollElement="BODY"===e.tagName?window:e,i._config=i._getConfig(n),i._selector=i._config.target+" .nav-link, "+i._config.target+" .list-group-item, "+i._config.target+" .dropdown-item",i._offsets=[],i._targets=[],i._activeTarget=null,i._scrollHeight=0,B.on(i._scrollElement,"scroll.bs.scrollspy",(function(){return i._process()})),i.refresh(),i._process(),i}i(o,t);var r=o.prototype;return r.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),F(this._selector).map((function(t){var e=l(t),o=e?Y(e):null;if(o){var r=o.getBoundingClientRect();if(r.width||r.height)return[z[n](o).top+i,e]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},r.dispose=function(){t.prototype.dispose.call(this),B.off(this._scrollElement,".bs.scrollspy"),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},r._getConfig=function(t){if("string"!=typeof(t=n({},Be,"object"==typeof t&&t?t:{})).target&&d(t.target)){var e=t.target.id;e||(e=s("scrollspy"),t.target.id=e),t.target="#"+e}return p("scrollspy",t,He),t},r._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},r._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},r._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},r._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t
0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t li > .active":".active";e=(e=F(o,i))[e.length-1]}var r=e?B.trigger(e,"hide.bs.tab",{relatedTarget:this._element}):null;if(!(B.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==r&&r.defaultPrevented)){this._activate(this._element,i);var s=function(){B.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),B.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,s):s()}}},o._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?q(e,".active"):F(":scope > li > .active",e))[0],r=n&&o&&o.classList.contains("fade"),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=u(o);o.classList.remove("show"),B.one(o,"transitionend",s),h(o,a)}else s()},o._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=Y(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),v(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu")&&(t.closest(".dropdown")&&F(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0)),n&&n()},n.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.tab")||new n(this);if("string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},e(n,null,[{key:"DATA_KEY",get:function(){return"bs.tab"}}]),n}(H);B.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){t.preventDefault(),(T(this,"bs.tab")||new We(this)).show()})),y("tab",We);var Ke={animation:"boolean",autohide:"boolean",delay:"number"},Ue={animation:!0,autohide:!0,delay:5e3},ze=function(t){function o(e,n){var i;return(i=t.call(this,e)||this)._config=i._getConfig(n),i._timeout=null,i._setListeners(),i}i(o,t);var r=o.prototype;return r.show=function(){var t=this;if(!B.trigger(this._element,"show.bs.toast").defaultPrevented){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),B.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),v(this._element),this._element.classList.add("showing"),this._config.animation){var n=u(this._element);B.one(this._element,"transitionend",e),h(this._element,n)}else e()}},r.hide=function(){var t=this;if(this._element.classList.contains("show")&&!B.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),B.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=u(this._element);B.one(this._element,"transitionend",e),h(this._element,n)}else e()}},r.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),B.off(this._element,"click.dismiss.bs.toast"),t.prototype.dispose.call(this),this._config=null},r._getConfig=function(t){return t=n({},Ue,z.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),p("toast",t,this.constructor.DefaultType),t},r._setListeners=function(){var t=this;B.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',(function(){return t.hide()}))},r._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},o.jQueryInterface=function(t){return this.each((function(){var e=T(this,"bs.toast");if(e||(e=new o(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t](this)}}))},e(o,null,[{key:"DefaultType",get:function(){return Ke}},{key:"Default",get:function(){return Ue}},{key:"DATA_KEY",get:function(){return"bs.toast"}}]),o}(H);return y("toast",ze),{Alert:R,Button:W,Carousel:$,Collapse:J,Dropdown:ve,Modal:ye,Popover:Me,ScrollSpy:Re,Tab:We,Toast:ze,Tooltip:Se}}));
+//# sourceMappingURL=bootstrap.bundle.min.js.map
\ No newline at end of file
diff --git a/media/com_jedchecker/js/script.js b/media/com_jedchecker/js/script.js
new file mode 100644
index 0000000..f5ce430
--- /dev/null
+++ b/media/com_jedchecker/js/script.js
@@ -0,0 +1,92 @@
+function add_validation() {
+ // Fetch all the forms we want to apply custom Bootstrap validation styles to
+ var forms = document.getElementsByClassName('needs-validation');
+ // Loop over them and prevent submission
+ var validation = Array.prototype.filter.call(forms, function(form) {
+ form.addEventListener('submit', function(event) {
+ if (form.checkValidity() === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ form.classList.add('was-validated');
+ }, false);
+ });
+}
+
+function check(url, rule) {
+ jQuery.ajax({
+ url: url + 'index.php?option=com_jedchecker&task=police.check&format=raw&rule='+rule,
+ method: 'GET',
+ success: function(result){
+ var sidebar = jQuery('#jed-' + rule);
+ var target = jQuery('#police-check-result-' + rule);
+
+ target.html(result);
+
+ var error = target.find('.alert-danger').length;
+ sidebar.find('.badge.bg-danger').text(error || '');
+
+ var warning = target.find('.alert-warning').length;
+ sidebar.find('.badge.bg-warning').text(warning || '');
+
+ var compat = target.find('.alert-secondary').length;
+ sidebar.find('.badge.bg-secondary').text(compat || '');
+
+ var info = target.find('.alert-info').length;
+ sidebar.find('.badge.bg-info').text(info || '');
+
+ var success = target.find('.alert-success').length;
+ sidebar.find('.badge.bg-success').toggleClass('hidden', !success);
+
+ sidebar.find('.spinner-border').addClass('hidden');
+ },
+ error: function(xhr, status){
+ var sidebar = jQuery('#jed-' + rule);
+ var target = jQuery('#police-check-result-' + rule);
+
+ target.html('' + status + ': ' + xhr.status + ' ' + xhr.statusText + '');
+
+ sidebar.find('.badge.bg-danger').text('?');
+ sidebar.find('.badge.bg-warning,.badge.bg-secondary,.badge.bg-info').text('');
+ sidebar.find('.badge.bg-success').addClass('hidden');
+
+ sidebar.find('.spinner-border').addClass('hidden');
+ }
+ });
+}
+
+var jed_collapse_init = false;
+Joomla.submitbutton = function (task) {
+ if (task == 'check') {
+ jQuery(".jedchecker-results").removeClass("hidden");
+ jQuery('.jedchecker-results .badge:not(.bg-success)').html('');
+ jQuery('.jedchecker-results .badge.bg-success').addClass('hidden');
+ jQuery('.jedchecker-results .spinner-border').removeClass('hidden');
+ jQuery('.police-check-result').html('
');
+
+ if (!jed_collapse_init) {
+ jQuery(".card-header[data-bs-toggle]")
+ .addClass("accordion-button collapsed")
+ .each(function () {
+ var $this = jQuery(this);
+ $this.attr('href', $this.attr('data-href'));
+ });
+
+ new bootstrap.Collapse(document.getElementById('jedchecker-welcome'));
+ new bootstrap.Collapse(document.getElementById('jedchecker-contributors'));
+
+ jed_collapse_init = true;
+ }
+
+ for (index = 0; index < jed_options["rules"].length; ++index) {
+ check(jed_options["url"], jed_options["rules"][index]);
+ }
+
+ } else {
+ Joomla.submitform(task);
+ }
+}
+
+jQuery(document).ready(function() {
+ new bootstrap.Tooltip(document.getElementById('jedchecker'), {container: 'body', selector: '[data-bs-toggle=tooltip]'});
+});