fix: reduced JS and CSS weight (~ 50%). Reduced homepage background

master
Claudio Maradonna 2021-08-09 19:17:38 +02:00
parent 764e12ae3c
commit 5b20e075ab
Signed by: claudiomaradonna
GPG Key ID: 0CBA58694C5680D9
165 changed files with 10005 additions and 17602 deletions

0
.dir-locals.el Normal file
View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 KiB

After

Width:  |  Height:  |  Size: 97 KiB

2
_assets/javascripts/jquery-slim.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,8 @@
//= require jquery
// require popper
// require jquery-ui
//= require jquery-slim
//= require simple-jekyll-search
//= require bootstrap
//= require bootstrap-sprockets
// require bootstrap
// require bootstrap-sprockets
//= require morphext
// require overhang
/* Set the width of the side navigation to 250px */
function openNav() {

View File

@ -0,0 +1,13 @@
@import "font-awesome/variables";
@import "font-awesome/mixins";
@import "font-awesome/path";
@import "font-awesome/core";
@import "font-awesome/larger";
//@import "font-awesome/fixed-width";
//@import "font-awesome/list";
//@import "font-awesome/bordered-pulled";
//@import "font-awesome/animated";
//@import "font-awesome/rotated-flipped";
// @import "font-awesome/stacked";
@import "font-awesome/icons-custom";
//@import "font-awesome/screen-reader";

View File

@ -433,6 +433,7 @@ aside.aside {
.header-libreboot {
background-image: asset_url('libreboot.webp');
}
.header-radio {
min-height: 80vh;
background-position: center;

View File

@ -0,0 +1,62 @@
@charset "utf-8";
@import 'font-awesome-sprockets';
@import 'font-awesome-custom';
@import 'bootstrap-custom';
@import 'vendor/fonts';
@import 'vendor/animate';
@import 'vendor/morphext';
// Font variables
$font-name: libretto-icons;
@font-face {
font-family: $font-name;
src: asset_url($font-name + '/' + $font-name + '.eot'); /* IE9 Compat Modes */
src: asset_url($font-name + '/' + $font-name + '.woff') format('woff'),
/* Pretty Modern Browsers */ asset_url($font-name + '/' + $font-name + '.ttf')
format('truetype'),
/* Safari, Android, iOS */ asset_url($font-name + '/' + $font-name + '.svg#font_name')
format('svg'); /* Legacy iOS */
}
// Our variables
$base-font-family: 'Raleway', sans-serif, Baskerville, 'Book Antiqua', Georgia, Times, serif;
$base-font-size: 17px;
$base-font-weight: 400;
$base-line-height: 2;
$small-font-size: $base-font-size * 0.875;
$spacing-unit: 30px;
$brand-color: #f39200;
$brand-color-hover: #f37700;
$brand-color-secondary: #009fe3;
$brand-color-secondary-hover: #007aae;
$background-color: #f1f1f1;
$text-color: #363431;
$title-color: #009fe3;
$success-color: #28a745;
$success-color-hover: #218838;
$grey-color: #a09a92;
$grey-color-light: lighten($grey-color, 30%);
$grey-color-dark: darken($grey-color, 25%);
// Width of the content area
$content-width: 800px;
$on-palm: 600px;
$on-laptop: 800px;
$shadow: -0.1rem 0.2rem 0 rgba(0, 0, 0, 0.05);
@mixin media-query($device) {
@media screen and (max-width: $device) {
@content;
}
}
// Import partials from `sass_dir` (defaults to `_sass`)
@import 'base', 'layout', 'sidebar', 'syntax-highlighting';

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,11 @@
@charset "utf-8";
@import 'font-awesome-sprockets';
@import 'font-awesome';
@import 'font-awesome-custom';
@import 'bootstrap-custom';
@import 'vendor/fonts';
@import 'vendor/animate';
@import 'vendor/morphext';
// @import 'vendor/overhang';
// Font variables
$font-name: libretto-icons;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
{% asset main.js %}
<!-- Matomo -->
<script defer="true" type="text/javascript">
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['requireConsent']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//analytics.unitoo.it/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
<!--Track mailto-->
<script defer="true">
jQuery(document).ready(function($) {
$("a[href^='mailto:']").on("click", function (e) {
_paq.push(['trackGoal', 1]);
});
});
</script>
<!--End Track mailto-->

View File

@ -0,0 +1,18 @@
{% assign rawtags = "" %}
{% for post in site.posts %}
{% assign ttags = post.tags | join:'|' | append:'|' %}
{% assign rawtags = rawtags | append:ttags %}
{% endfor %}
{% assign rawtags = rawtags | split:'|' | sort %}
{% assign site.tags = "" %}
{% for tag in rawtags %}
{% if tag != "" %}
{% if tags == "" %}
{% assign tags = tag | split:'|' %}
{% endif %}
{% unless tags contains tag %}
{% assign tags = tags | join:'|' | append:'|' | append:tag | split:'|' %}
{% endunless %}
{% endif %}
{% endfor %}

View File

@ -0,0 +1,13 @@
<div class="container pl-0 pr-0 pl-md-3 pr-md-3">
<h1>{% t contacts.title %}</h1>
<hr class="border-primary">
<p class="mt-5">{% t contacts.body %}</p>
<a class="btn btn-primary" href="mailto:info@unitoo.pw">info@unitoo.pw</a>
<br><br>
<small><strong>GPG Fingerprint</strong>: 00F8 1953 CE7B 17C1 E832 53E1 4561 0231 1DEA 49D4</small>
<br>
{% asset info_at_unitoo_qrcode.webp width="200px" %}
</div>

View File

@ -0,0 +1,55 @@
<style>
#cookie-notice {padding: 0.5rem 1rem; display: none; text-align: center; position: fixed; bottom: 0; width: calc(100% - 2rem); background: #222; color: rgba(255,255,255,0.8);}
#cookie-notice a {display: inline-block; cursor: pointer; margin-left: 0.5rem;}
@media (max-width: 767px) {
#cookie-notice span {display: block; padding-top: 3px; margin-bottom: 1rem;}
#cookie-notice a {position: relative; bottom: 4px;}
}
</style>
<div id="cookie-notice"><span>Utilizziamo Matomo (una tecnologia libera) per analizzare e migliorare il servizio che offriamo.</span><a id="cookie-notice-accept" class="btn btn-primary btn-sm text-white">Approva</a><a href="https://matomo.org/gdpr/" rel="nofollow" target="_blank" class="btn btn-primary btn-sm text-white">Scopri di più</a><a id="cookie-notice-dismiss" class="float-right"><i class="fa fa-times-circle"></i></a></div>
<script>
function createCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
if(readCookie('cookie-notice-dismissed')=='true') {
console.log("GDPR Consent");
} else {
document.getElementById('cookie-notice').style.display = 'block';
}
document.getElementById('cookie-notice-accept').addEventListener("click",function() {
createCookie('cookie-notice-dismissed','true',31);
_paq.push(['rememberConsentGiven']);
document.getElementById('cookie-notice').style.display = 'none';
location.reload();
});
document.getElementById('cookie-notice-dismiss').addEventListener("click",function() {
createCookie('cookie-notice-dismissed','true',31);
_paq.push(['forgetConsentGiven']);
_paq.push(['optUserOut']);
document.getElementById('cookie-notice').style.display = 'none';
location.reload();
});
</script>

View File

@ -0,0 +1,52 @@
<footer class="site-footer">
<div class="container">
<div class="input-group mb-5">
<input type="text" id="search-input" class="form-control rounded-right" placeholder="{% t inputs.search %}"
aria-label="{% t inputs.search %}" aria-describedby="button-search" autocomplete="off">
<div class="input-group-append">
<div id="results-container" class="dropdown-menu d-block p-0 border-0"></div>
</div>
</div>
<p>
Copyright © Unitoo 2017-{{ 'now' | date: "%Y" }}<br><br>
{{ site.description }}<br>
<small>
{% t footer.license %}
<a target="_blank" rel="nofollow" href="https://gitea.it/Unitoo/unitoo-site">
<i class="fas fa-external-link-alt"></i> Gitea
</a>
<br>
</small>
</p>
<ul class="list-inline social-buttons mt-2 mb-3 mx-auto">
<li class="list-inline-item">
<a href="https://gitlab.com/unitoo" rel="nofollow" target="_blank" data-original-title="" title="">
<i class="fab fa-gitlab " data-original-title="" title=""></i></a>
</li>
<li class="list-inline-item">
<a href="https://github.com/UnitooTeam" rel="nofollow" target="_blank" data-original-title=""
title=""><i class="fab fa-github" data-original-title="" title=""></i></a>
</li>
<li class="list-inline-item">
<a href="https://mastodon.uno/@unitoo" rel="me" target="_blank" data-original-title="" title="">
<i class="fab fa-mastodon "></i>
</a>
</li>
<li class="list-inline-item">
<a href="{% link _pages/news.html %}" target="_blank" data-original-title="" title="">
<i class="fab fa-telegram-plane"></i>
</a>
</li>
<li class="list-inline-item"><a href="https://liberapay.com/Unitoo/" rel="nofollow" target="_blank" data-original-title="" title="">
{% asset liberapay width=20 style="margin-top: -3px;" %}
</a></li>
</ul>
<div class="small mt-3">
Unitoo di Claudio Maradonna, Via Circonvallazione Sud 28/A, Monteprandone, 63076 (AP) - 02324570445 - REA:
AP-204883 - info@unitoo.pw
<br>
<a href="/privacy.pdf">Informativa privacy</a>
</div>
</div>
</footer>

22
_includes/_site/head.html Normal file
View File

@ -0,0 +1,22 @@
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#943526">
<meta name="no-results" content="{% t inputs.no_results %}">
{% seo translate=true %}
<link rel='icon' href="{{ "/favicon.ico" | prepend: site.url }}" type="image/x-icon">
<link rel='shortcut icon' href="{{ "/favicon.ico" | prepend: site.url }}" type="image/x-icon">
<link rel="apple-touch-icon" href="{{ "/apple-touch-icon.png" | prepend: site.url }}">
<link rel="manifest" href="{{ "/path.webmanifest" | prepend: site.url }}">
{% asset main.css %}
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
{% if site.tags != "" %}
{% include collecttags.html %}
{% endif %}
</head>

View File

@ -0,0 +1,23 @@
<navbar class="navbar site-header pt-2 pb-2 pl-0 pr-0 p-sm-0 sticky-top">
<div class="container">
<a class="site-title" href="{{ site.baseurl }}/">
{% asset logo-extended-dark.webp @magick:double height='30' %}
</a>
<nav class="my-2 d-none d-lg-block">
<a class="p-2 text-dark" href="{% link _pages/about-us.html %}">{% t buttons.about_us %}</a>
<a class="p-2 text-dark" href="{% link _pages/services-and-products.html %}">{% t
buttons.services_and_products %}</a>
<a class="p-2 text-dark" href="{% link _pages/projects.html %}">{% t buttons.projects %}</a>
<a class="btn btn-primary ml-4" href="{% link _pages/contacts.html %}">{% t buttons.contactsus %}</a>
</nav>
<a class="d-block d-lg-none" href="javascript:openNav();">
<i class="fas fa-bars"></i>
</a>
</div>
</navbar>

View File

@ -0,0 +1,85 @@
<section class="jumbotron jumbotron-fluid bg-transparent">
<div class="container">
<h1 class="text-center">{% t index.services_title %}</h1>
<hr class="border-primary">
<div class="row mt-5">
<div class="col-12 col-lg-6 mb-4">
<div class="card border-0 shadow">
<div class="card-body">
<h5 class="card-title font-weight-bold">{% t index.services.software_development %}</h5>
<p class="mb-4">{% t index.services.software_development_text %}</p>
<a class="text-dark mr-2" href="{% link _pages/software-technologies.html %}">{% t buttons.find_how_we_build_software %}</a>
</div>
</div>
</div>
<div class="col-12 col-lg-6 mb-4">
<div class="card border-0 shadow">
<div class="card-body">
<h5 class="card-title font-weight-bold">{% t index.services.technical_advice %}</h5>
<p class="card-text mb-4">{% t index.services.technical_advice_text %}</p>
<a class="text-dark mr-2" href="{% link _pages/technical_advice.html %}">{% t buttons.find_what %}</a>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="bg-white pt-5 pb-5">
<div class="container">
<h1 class="text-center">{% t index.products_title %}</h1>
<hr class="border-primary mb-5">
<div class="row">
<div class="col-lg-6">
<h3>{% t index.products.nextcloud %}</h3>
<p>
{% t index.products.nextcloud_text %}
</p>
<a class="text-dark mr-2" href="https://www.nextcloud.com" rel="nofollow" target="_blank">
<i class="fas fa-external-link-alt"></i> {% t index.products.nextcloud_website %}
</a>
</div>
<div class="col text-right">
{% asset nextcloud-example.webp %}
</div>
</div>
<br><br><br>
<div class="row">
<div class="col text-left">
{% asset azuracast-example.webp %}
</div>
<div class="col-lg-6">
<h3>{% t index.products.azuracast %}</h3>
<p>
{% t index.products.azuracast_text %}
</p>
<a class="text-dark mr-2" href="https://radio.unitoo.it" rel="nofollow" target="_blank">
<i class="fas fa-external-link-alt"></i> {% t index.products.azuracast_website %}
</a>
</div>
</div>
<br><br><br>
<div class="row">
<div class="col-lg-6">
<h3>{% t index.products.pihole %}</h3>
<p>
{% t index.products.pihole_text %}
</p>
<a class="text-dark mr-2" href="https://pi-hole.net/" rel="nofollow" target="_blank">
<i class="fas fa-external-link-alt"></i> {% t index.products.pihole_website %}
</a>
</div>
<div class="col text-right">
{% asset pihole-example.webp %}
</div>
</div>
</div>
</section>

View File

@ -0,0 +1,8 @@
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
<a class="btn-outline-primary" href="{% link _pages/about-us.html %}">{% t buttons.about_us %}</a>
<a class="btn-outline-primary" href="{% link _pages/services-and-products.html %}">{% t
buttons.services_and_products %}</a>
<a class="btn-outline-primary" href="{% link _pages/projects.html %}">{% t buttons.projects %}</a>
<a class="btn-outline-primary" href="{% link _pages/contacts.html %}">{% t buttons.contactsus %}</a>
</div>

View File

@ -0,0 +1,15 @@
<div class="card border-0 shadow">
{% asset cmaradonna.webp class="card-img-top" %}
<div class="card-body">
<h5 class="card-title">Claudio Maradonna</h5>
<p class="card-text">{% t staff.cmaradonna.text %}</p>
<a rel="nofollow" target="_blank" class="mr-2" href="{% t staff.cmaradonna.mastodon_url %}"><i
class="fab fa-mastodon fa-2x"></i></a>
<a rel="nofollow" target="_blank" class="mr-2" href="{% t staff.cmaradonna.gitlab_url %}"><i
class="fab fa-gitlab fa-2x"></i></a>
<a rel="nofollow" target="_blank" class="mr-2" href="{% t staff.cmaradonna.github_url %}"><i
class="fab fa-github fa-2x"></i></a>
<a rel="nofollow" target="_blank" href="{% t staff.cmaradonna.instagram_url %}"><i
class="fab fa-instagram fa-2x"></i></a>
</div>
</div>

View File

@ -0,0 +1,9 @@
<div class="card border-0 shadow">
{% asset fabio_purple.webp class="card-img-top" %}
<div class="card-body">
<h5 class="card-title">Fabio "Desmovalvo"</h5>
<p class="card-text">{% t staff.fabio_purple.text %}</p>
<a class="mr-2" rel="nofollow" target="_blank" href="{% t staff.fabio_purple.instagram_url %}"><i class="fab fa-instagram fa-2x"></i></a>
<a rel="nofollow" target="_blank" href="{% t staff.fabio_purple.twitter_url %}"><i class="fab fa-twitter fa-2x"></i></a>
</div>
</div>

View File

@ -0,0 +1,9 @@
<div class="card border-0 shadow">
{% asset stefano_amandonico.webp class="card-img-top" %}
<div class="card-body">
<h5 class="card-title">Stefano Amandonico</h5>
<p class="card-text">{% t staff.grafixprint.text %}</p>
<a rel="nofollow" target="_blank" href="{% t staff.grafixprint.website_url %}"><i
class="fas fa-globe-europe fa-2x"></i></a>
</div>
</div>

View File

@ -0,0 +1,9 @@
<div class="card border-0 shadow">
{% asset sara.webp class="card-img-top" %}
<div class="card-body">
<h5 class="card-title">Sara Freddoni</h5>
<p class="card-text">{% t staff.sara.text %}</p>
<a rel="nofollow" target="_blank" href="{% t staff.sara.instagram_url %}"><i class="fab fa-instagram fa-2x"></i></a>
<a class="ml-2" rel="nofollow" target="_blank" href="{% t staff.sara.facebook_url %}"><i class="fab fa-facebook fa-2x"></i></a>
</div>
</div>

View File

@ -0,0 +1,10 @@
<div class="card border-0 shadow">
{% asset sydro.webp class="card-img-top" %}
<div class="card-body">
<h5 class="card-title">Angelo "Sydro"</h5>
<p class="card-text">{% t staff.sydro.text %}</p>
<a class="mr-2" rel="nofollow" target="_blank" href="{% t staff.sydro.instagram_url %}"><i class="fab fa-instagram fa-2x"></i></a>
<a class="mr-2" rel="nofollow" target="_blank" href="{% t staff.sydro.twitter_url %}"><i class="fab fa-twitter fa-2x"></i></a>
<a rel="nofollow" target="_blank" href="{% t staff.sydro.flickr_url %}"><i class="fab fa-flickr fa-2x"></i></a>
</div>
</div>

View File

@ -0,0 +1,11 @@
<div class="card border-0 shadow">
{% asset yamabiiko.webp class="card-img-top" %}
<div class="card-body">
<h5 class="card-title">Lorenzo Tucci</h5>
<p class="card-text">{% t staff.yamabiiko.text %}</p>
<a rel="nofollow" target="_blank" class="mr-2" href="{% t staff.yamabiiko.gitlab_url %}"><i
class="fab fa-gitlab fa-2x"></i></a>
<a rel="nofollow" target="_blank" class="mr-2" href="{% t staff.yamabiiko.github_url %}"><i
class="fab fa-github fa-2x"></i></a>
</div>
</div>

View File

@ -34,7 +34,7 @@
<link rel="apple-touch-icon" href="https://www.unitoo.it/apple-touch-icon.png">
<link rel="manifest" href="https://www.unitoo.it/path.webmanifest">
<link rel="stylesheet" type="text/css" href="/assets/main-77a5b970fb42c4c374a2a78ec0f47785f47966a34aa496df8202a36027b72f6eb0b41deadeb4dcc746c9042fd334a6271f9fdcb5bbb2b598ee8e200851218add.css">
<link rel="stylesheet" type="text/css" href="/assets/main-6e09f1cb7e0c88b648183b94216ba3e633919cab86dbeedc554edb427741c8cd3eeb7dcf3802ab200f5abeac3de7aa4f0015ae7088c40c204eff23fa8792dbae.css">
<link rel="canonical" href="https://www.unitoo.it/404.html">
@ -164,7 +164,7 @@
</footer>
<script type="text/javascript" src="/assets/main-ec899224bcf072c3a6b94f9883673995aa9d836f85f43a99c57d336807dd376e7ce1c41990415c236cb521cc8902c8ad4ab9d8addf34fce5416d0cde5fb652ff.js"></script>
<script type="text/javascript" src="/assets/main-771984f373e0dd4e32d36324ddc158933edc11a468cff745f6182cd182e8d0bd32f42843a330ef74f58453776a5c07ec0e5b63825935617c4cbdfa21b9364052.js"></script>
<!-- Matomo -->
<script defer="true" type="text/javascript">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,12 +0,0 @@
//= require ./bootstrap/util
//= require ./bootstrap/dropdown
//= require ./bootstrap/tab
//= require ./bootstrap/collapse
//= require ./bootstrap/modal
//= require ./bootstrap/alert
//= require ./bootstrap/button
//= require ./bootstrap/scrollspy
//= require ./bootstrap/toast
//= require ./bootstrap/tooltip
//= require ./bootstrap/carousel
//= require ./bootstrap/popover

File diff suppressed because it is too large Load Diff

View File

@ -1,191 +0,0 @@
/*!
* Bootstrap alert.js v4.6.0 (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 (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.jQuery, global.Util));
}(this, (function ($, Util) { 'use strict';
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'alert';
var VERSION = '4.6.0';
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
var SELECTOR_DISMISS = '[data-dismiss="alert"]';
var EVENT_CLOSE = "close" + EVENT_KEY;
var EVENT_CLOSED = "closed" + EVENT_KEY;
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
var CLASS_NAME_ALERT = 'alert';
var CLASS_NAME_FADE = 'fade';
var CLASS_NAME_SHOW = 'show';
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Alert = /*#__PURE__*/function () {
function Alert(element) {
this._element = element;
} // Getters
var _proto = Alert.prototype;
// Public
_proto.close = function close(element) {
var rootElement = this._element;
if (element) {
rootElement = this._getRootElement(element);
}
var customEvent = this._triggerCloseEvent(rootElement);
if (customEvent.isDefaultPrevented()) {
return;
}
this._removeElement(rootElement);
};
_proto.dispose = function dispose() {
$__default['default'].removeData(this._element, DATA_KEY);
this._element = null;
} // Private
;
_proto._getRootElement = function _getRootElement(element) {
var selector = Util__default['default'].getSelectorFromElement(element);
var parent = false;
if (selector) {
parent = document.querySelector(selector);
}
if (!parent) {
parent = $__default['default'](element).closest("." + CLASS_NAME_ALERT)[0];
}
return parent;
};
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
var closeEvent = $__default['default'].Event(EVENT_CLOSE);
$__default['default'](element).trigger(closeEvent);
return closeEvent;
};
_proto._removeElement = function _removeElement(element) {
var _this = this;
$__default['default'](element).removeClass(CLASS_NAME_SHOW);
if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {
this._destroyElement(element);
return;
}
var transitionDuration = Util__default['default'].getTransitionDurationFromElement(element);
$__default['default'](element).one(Util__default['default'].TRANSITION_END, function (event) {
return _this._destroyElement(element, event);
}).emulateTransitionEnd(transitionDuration);
};
_proto._destroyElement = function _destroyElement(element) {
$__default['default'](element).detach().trigger(EVENT_CLOSED).remove();
} // Static
;
Alert._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var $element = $__default['default'](this);
var data = $element.data(DATA_KEY);
if (!data) {
data = new Alert(this);
$element.data(DATA_KEY, data);
}
if (config === 'close') {
data[config](this);
}
});
};
Alert._handleDismiss = function _handleDismiss(alertInstance) {
return function (event) {
if (event) {
event.preventDefault();
}
alertInstance.close(this);
};
};
_createClass(Alert, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return Alert;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$__default['default'].fn[NAME] = Alert._jQueryInterface;
$__default['default'].fn[NAME].Constructor = Alert;
$__default['default'].fn[NAME].noConflict = function () {
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
return Alert._jQueryInterface;
};
return Alert;
})));

View File

@ -1,233 +0,0 @@
/*!
* Bootstrap button.js v4.6.0 (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 (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.jQuery));
}(this, (function ($) { 'use strict';
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'button';
var VERSION = '4.6.0';
var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
var CLASS_NAME_ACTIVE = 'active';
var CLASS_NAME_BUTTON = 'btn';
var CLASS_NAME_FOCUS = 'focus';
var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]';
var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn';
var SELECTOR_INPUT = 'input:not([type="hidden"])';
var SELECTOR_ACTIVE = '.active';
var SELECTOR_BUTTON = '.btn';
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY);
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Button = /*#__PURE__*/function () {
function Button(element) {
this._element = element;
this.shouldAvoidTriggerChange = false;
} // Getters
var _proto = Button.prototype;
// Public
_proto.toggle = function toggle() {
var triggerChangeEvent = true;
var addAriaPressed = true;
var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];
if (rootElement) {
var input = this._element.querySelector(SELECTOR_INPUT);
if (input) {
if (input.type === 'radio') {
if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {
triggerChangeEvent = false;
} else {
var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);
if (activeElement) {
$__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);
}
}
}
if (triggerChangeEvent) {
// if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input
if (input.type === 'checkbox' || input.type === 'radio') {
input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);
}
if (!this.shouldAvoidTriggerChange) {
$__default['default'](input).trigger('change');
}
}
input.focus();
addAriaPressed = false;
}
}
if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {
if (addAriaPressed) {
this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));
}
if (triggerChangeEvent) {
$__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);
}
}
};
_proto.dispose = function dispose() {
$__default['default'].removeData(this._element, DATA_KEY);
this._element = null;
} // Static
;
Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {
return this.each(function () {
var $element = $__default['default'](this);
var data = $element.data(DATA_KEY);
if (!data) {
data = new Button(this);
$element.data(DATA_KEY, data);
}
data.shouldAvoidTriggerChange = avoidTriggerChange;
if (config === 'toggle') {
data[config]();
}
});
};
_createClass(Button, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return Button;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
var button = event.target;
var initialButton = button;
if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {
button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];
}
if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {
event.preventDefault(); // work around Firefox bug #1540995
} else {
var inputBtn = button.querySelector(SELECTOR_INPUT);
if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {
event.preventDefault(); // work around Firefox bug #1540995
return;
}
if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {
Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');
}
}
}).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];
$__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));
});
$__default['default'](window).on(EVENT_LOAD_DATA_API, function () {
// ensure correct active class is set to match the controls' actual values/states
// find all checkboxes/readio buttons inside data-toggle groups
var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));
for (var i = 0, len = buttons.length; i < len; i++) {
var button = buttons[i];
var input = button.querySelector(SELECTOR_INPUT);
if (input.checked || input.hasAttribute('checked')) {
button.classList.add(CLASS_NAME_ACTIVE);
} else {
button.classList.remove(CLASS_NAME_ACTIVE);
}
} // find all button toggles
buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));
for (var _i = 0, _len = buttons.length; _i < _len; _i++) {
var _button = buttons[_i];
if (_button.getAttribute('aria-pressed') === 'true') {
_button.classList.add(CLASS_NAME_ACTIVE);
} else {
_button.classList.remove(CLASS_NAME_ACTIVE);
}
}
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$__default['default'].fn[NAME] = Button._jQueryInterface;
$__default['default'].fn[NAME].Constructor = Button;
$__default['default'].fn[NAME].noConflict = function () {
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
return Button._jQueryInterface;
};
return Button;
})));

View File

@ -1,652 +0,0 @@
/*!
* Bootstrap carousel.js v4.6.0 (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 (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.jQuery, global.Util));
}(this, (function ($, Util) { 'use strict';
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _extends() {
_extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'carousel';
var VERSION = '4.6.0';
var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];
var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
var SWIPE_THRESHOLD = 40;
var Default = {
interval: 5000,
keyboard: true,
slide: false,
pause: 'hover',
wrap: true,
touch: true
};
var DefaultType = {
interval: '(number|boolean)',
keyboard: 'boolean',
slide: '(boolean|string)',
pause: '(string|boolean)',
wrap: 'boolean',
touch: 'boolean'
};
var DIRECTION_NEXT = 'next';
var DIRECTION_PREV = 'prev';
var DIRECTION_LEFT = 'left';
var DIRECTION_RIGHT = 'right';
var EVENT_SLIDE = "slide" + EVENT_KEY;
var EVENT_SLID = "slid" + EVENT_KEY;
var EVENT_KEYDOWN = "keydown" + EVENT_KEY;
var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY;
var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY;
var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY;
var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY;
var EVENT_TOUCHEND = "touchend" + EVENT_KEY;
var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY;
var EVENT_POINTERUP = "pointerup" + EVENT_KEY;
var EVENT_DRAG_START = "dragstart" + EVENT_KEY;
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
var CLASS_NAME_CAROUSEL = 'carousel';
var CLASS_NAME_ACTIVE = 'active';
var CLASS_NAME_SLIDE = 'slide';
var CLASS_NAME_RIGHT = 'carousel-item-right';
var CLASS_NAME_LEFT = 'carousel-item-left';
var CLASS_NAME_NEXT = 'carousel-item-next';
var CLASS_NAME_PREV = 'carousel-item-prev';
var CLASS_NAME_POINTER_EVENT = 'pointer-event';
var SELECTOR_ACTIVE = '.active';
var SELECTOR_ACTIVE_ITEM = '