Update to mdbootstrap 8

This commit is contained in:
Quentin Rouland 2025-01-09 14:09:13 +01:00
parent db9d63e003
commit ec9d19b818
138 changed files with 170 additions and 91538 deletions

BIN
assets/projects/utpass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

1
css/fontawesome.css vendored

File diff suppressed because one or more lines are too long

View File

@ -6,16 +6,32 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Quentin Rouland</title>
<!-- Font Awesome -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.13.0/css/all.css">
<!-- Bootstrap core CSS -->
<link href="mdb/css/bootstrap.min.css" rel="stylesheet">
<!-- Material Design Bootstrap -->
<link href="mdb/css/mdb.min.css" rel="stylesheet">
<!-- Material Design Bootstrap Flags -->
<link href="mdb/css/addons/flag.min.css" rel="stylesheet">
<!-- Your custom styles -->
<link href="mdb/css/style.css" rel="stylesheet">
<link
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"
rel="stylesheet"
/>
<!-- MDB -->
<link
href="https://cdn.jsdelivr.net/npm/mdb-ui-kit@8.1.0/css/mdb.min.css"
rel="stylesheet"
/>
<style>
.img-project {
object-fit: cover;
object-position: center;
height: 200px;
width: 100%;
}
.img-me {
width: 300px;
height: auto;
}
main {
padding-bottom: 90px;
}
</style>
</head>
<body>
@ -23,7 +39,7 @@
<header>
<!-- Navbar -->
<nav class="navbar fixed-top navbar-expand-lg navbar-light white scrolling-navbar" id="button_menu">
<nav class="navbar fixed-top navbar-expand-lg bg-body-tertiary white scrolling-navbar" id="button_menu">
<div class="container">
<!-- Brand -->
@ -31,17 +47,24 @@
<strong class="blue-text">Quentin Rouland</strong>
</a>
<!-- Collapse -->
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
<!-- Toggle button -->
<button
data-mdb-collapse-init
class="navbar-toggler"
type="button"
data-mdb-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation"
>
<i class="fas fa-bars"></i>
</button>
<!-- Links -->
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<!-- Left -->
<ul class="navbar-nav mr-auto" id="menu">
<ul class="navbar-nav me-auto" id="menu">
<li class="nav-item" id="about_menu">
<a class="nav-link waves-effect" href="javascript:page_selection('#about');" data-i18n="menu.about"></a>
</li>
@ -57,20 +80,23 @@
<li class="nav-item" id="teachings_menu">
<a class="nav-link waves-effect" href="javascript:page_selection('#teachings');" data-i18n="menu.teachings"></a>
</li>
<!--li class="nav-item" id="projects_menu">
<li class="nav-item" id="projects_menu">
<a class="nav-link waves-effect" href="javascript:page_selection('#projects');" data-i18n="menu.projects"></a>
</li-->
</li>
<li class="nav-item">
<a class="nav-link waves-effect" href="http://blog.qrouland.com">Blog <i class="fa-solid fa-arrow-up-right-from-square"></i></a>
</li>
</ul>
<!-- Right -->
<ul class="navbar-nav nav-flex-icons">
<div class="navbar-nav d-flex">
<a id="ukflag" href="javascript:i18next.changeLanguage('en');">
<i class="uk flag"></i>
<i class="flag flag-uk"></i>
</a>
<a id="frflag" href="javascript:i18next.changeLanguage('fr');">
<i class="france flag"></i>
<i class="flag flag-france"></i>
</a>
</ul>
</div>
</div>
</div>
@ -80,8 +106,6 @@
</header>
<!--Main Navigation-->
<!--Wrapper layout-->
<div class="wrapper">
<!--Main layout-->
<main class="mt-5 pt-5">
@ -95,12 +119,12 @@
<div class="col-lg-4 col-md-3 mb-4 vcenter">
<!-- Card Regular -->
<div class="card card-cascade text-justify">
<div class="card card-cascade">
<!-- Card image -->
<div class="view view-cascade overlay">
<div class="view view-cascade overlay py-1">
<img class="card-img-top rounded-circle mt-4 pr-5 pl-5" src="assets/me.jpg" alt="Card image cap">
<img class="card-img-top rounded-circle mt-4 pr-5 pl-5 img-me" src="assets/me.jpg" alt="Quentin Rouland image profile">
<a>
<div class="mask rgba-white-slight"></div>
@ -117,25 +141,25 @@
<!-- Social -->
<div class="pb-2">
<a href="mailto:quentin@qrouland.com" target="_blank">
<i class="far fa-envelope mr-1 ml-1 fa-lg"></i>
<i class="far fa-envelope me-1 ml-1 fa-lg"></i>
</a>
<a href="https://www.linkedin.com/in/qrouland" target="_blank">
<i class="fab fa-linkedin mr-1 ml-1 fa-lg"></i>
<i class="fab fa-linkedin me-1 ml-1 fa-lg"></i>
</a>
<a href="https://scholar.google.com/citations?user=X4Cjro0AAAAJ" target="_blank">
<i class="fab fa-google mr-1 ml-1 fa-lg"></i>
<i class="fab fa-google me-1 ml-1 fa-lg"></i>
</a>
<a href="https://www.researchgate.net/profile/Quentin_Rouland/research">
<i class="fab fa-researchgate mr-1 ml-1 fa-lg"></i>
<i class="fab fa-researchgate me-1 ml-1 fa-lg"></i>
</a>
<a href="https://orcid.org/0000-0001-8613-1842" target="_blank">
<i class="fab fa-orcid mr-1 ml-1 fa-lg"></i>
<i class="fab fa-orcid me-1 ml-1 fa-lg"></i>
</a>
<a href="https://git.rdrive.ovh/QRouland" target="_blank">
<i class="fab fa-git-square mr-1 ml-1 fa-lg"></i>
<i class="fab fa-git-square me-1 ml-1 fa-lg"></i>
</a>
<a href="https://github.com/QRouland" target="_blank">
<i class="fab fa-github-square mr-1 ml-1 fa-lg"></i>
<i class="fab fa-github-square me-1 ml-1 fa-lg"></i>
</a>
</div>
<!-- Text -->
@ -159,11 +183,11 @@
<!--Grid column-->
<!--Grid column-->
<div class="col-lg-7 col-md-9 vcenter">
<div class="col-lg-7 col-md-9 d-flex align-items-center">
<span class="align-middle">
<p class="pb-4 text-justify" data-i18n="[html]about.p1"></p>
<p class="pb-4 text-justify" data-i18n="[html]about.p2"></p>
<p class="pb-4 text-justify" data-i18n="[html]about.p3"> </p>
<p class="pb-4 text-start" data-i18n="[html]about.p1"></p>
<p class="pb-4 text-start" data-i18n="[html]about.p2"></p>
<p class="pb-4 text-start" data-i18n="[html]about.p3"> </p>
</span>
</div>
<!--Grid column-->
@ -184,23 +208,23 @@
<h3 class="mb-3 font-weight-bold dark-grey-text">
<strong data-i18n="experiences.title"></strong>
</h3>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="experiences.uqo.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]experiences.uqo.location"></span><br>
</p>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="experiences.carleton.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]experiences.carleton.location"></span><br>
</p>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="experiences.ater.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]experiences.ater.location"></span><br>
</p>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="experiences.phd.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]experiences.phd.location"></span><br>
</p>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="experiences.engie.title"></strong> <br>
<span class="pl-3 font-small" data-i18n="[html]experiences.engie.location"></span><br>
<span class="pl-3" data-i18n="experiences.engie.exp1"></span><br>
@ -208,13 +232,13 @@
<span class="pl-3" data-i18n="experiences.engie.exp3"></span><br>
<span class="pl-3" data-i18n="experiences.engie.exp4"></span>
</p>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="experiences.freescale.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]experiences.freescale.location"></span><br>
<span class="pl-3" data-i18n="experiences.freescale.exp1"></span><br>
<span class="pl-3" data-i18n="experiences.freescale.exp2"></span>
</p>
<p class="text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="text-justify"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="experiences.panacee.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]experiences.panacee.location"></span><br>
<span class="pl-3" data-i18n="experiences.panacee.exp1"></span><br>
@ -236,23 +260,23 @@
<h3 class="mb-3 font-weight-bold dark-grey-text">
<strong data-i18n="training.title"></strong>
</h3>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="training.phd.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]training.phd.location"></span>
</p>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="training.ice.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]training.ice.location"></span>
</p>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="training.l3.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]training.l3.location"></span>
</p>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="training.iut.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]training.iut.location"></span>
</p>
<p class="mb-3 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-3"><i class="fas fa-angle-right me-2"></i>
<strong data-i18n="training.bac.title"></strong><br>
<span class="pl-3 font-small" data-i18n="[html]training.bac.location"></span>
</p>
@ -273,16 +297,16 @@
<h3 class="mb-3 font-weight-bold dark-grey-text">
<strong data-i18n="publications.journal"></strong>
</h3>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1016/j.jss.2024.112219">A model-driven formal methods approach to software architectural security vulnerabilities specification and verification</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1016/j.jss.2024.112219">A model-driven formal methods approach to software architectural security vulnerabilities specification and verification</a>.
Journal of Systems and Software (JSS), 2025.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1016/j.sysarc.2021.102073">Specification, detection, and treatment of STRIDE threats for software components: Modeling, formal methods, and tool support</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1016/j.sysarc.2021.102073">Specification, detection, and treatment of STRIDE threats for software components: Modeling, formal methods, and tool support</a>.
Journal of Systems Architecture (JSA), 2021.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1016/j.future.2020.02.033">Formal Specification and Verification of Reusable Communication Models for Distributed Systems Architecture</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1016/j.future.2020.02.033">Formal Specification and Verification of Reusable Communication Models for Distributed Systems Architecture</a>.
Future Generation Computer Systems (FGCS), 2020.
</p>
</div>
@ -298,48 +322,48 @@
<h3 class="mb-3 font-weight-bold dark-grey-text">
<strong data-i18n="publications.conference"></strong>
</h3>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Kamel Adi, Omer Nguena Timo, Luigi Logrippo. <span class="text-primary" href="#">Toward Automatic Enforcement of Security Patterns in Software Architecture Using Alloy (accepted)</span>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Kamel Adi, Omer Nguena Timo, Luigi Logrippo. <span class="text-primary" href="#">Toward Automatic Enforcement of Security Patterns in Software Architecture Using Alloy (accepted)</span>.
17th International Symposium on Foundations & Practice of Security (FPS), Montreal, Canada, 2024.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Kamel Adi, Omer Nguena Timo, Luigi Logrippo. <span class="text-primary" href="#">Detecting Information Disclosure Vulnerability in Software Architectures Using Alloy (accepted)</span>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Kamel Adi, Omer Nguena Timo, Luigi Logrippo. <span class="text-primary" href="#">Detecting Information Disclosure Vulnerability in Software Architectures Using Alloy (accepted)</span>.
19th International Conference on Risks and Security of Internet and Systems (CRiSIS), Aix-En-Provence, France, 2024.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i>Luke Newton, Jason Jaskolka, <strong>Quentin Rouland</strong>, Brahim Hamid. <span class="text-primary" href="#">Data-Driven Approximation of Formal Implicit Interaction Analysis for Cyber-Physical System Designs</span>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i>Luke Newton, Jason Jaskolka, <strong>Quentin Rouland</strong>, Brahim Hamid. <span class="text-primary" href="#">Data-Driven Approximation of Formal Implicit Interaction Analysis for Cyber-Physical System Designs</span>.
Resilience Week (RWS), Austin, United States, 2024.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Stojanche Gjorcheski, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1109/QRS-C60940.2023.00054">A Security Compliance-by-Design Framework Utilizing Reusable Formal Model</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Stojanche Gjorcheski, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1109/QRS-C60940.2023.00054">A Security Compliance-by-Design Framework Utilizing Reusable Formal Model</a>.
23rd IEE International Conference on Software Quality, Reliability, and Security Companion (QRS), Chiang Mai, Thailand, 2023.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i>James Baak, <strong>Quentin Rouland</strong>, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1007/978-3-031-49333-1_2">A Formal Metamodel for Software Architectures with Composite Components.</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i>James Baak, <strong>Quentin Rouland</strong>, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1007/978-3-031-49333-1_2">A Formal Metamodel for Software Architectures with Composite Components.</a>.
12th International Conference on Model and Data Engineering (MEDI), Sousse, Tunisia, 2023.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Stojanche Gjorcheski, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1109/REW57809.2023.00045">Eliciting a Security Architecture Requirements Baseline from Standards and Regulations</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Stojanche Gjorcheski, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1109/REW57809.2023.00045">Eliciting a Security Architecture Requirements Baseline from Standards and Regulations</a>.
10th IEEE International Workshop on Evolving Security & Privacy Requirements Engineering (ESPRE), Hannover, Germany, 2023.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jean-Paul Bodeveix, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1109/ICSA-C57050.2023.00042 ">Formalizing the Relationship between Security Policies and Objectives in Software Architectures</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jean-Paul Bodeveix, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1109/ICSA-C57050.2023.00042 ">Formalizing the Relationship between Security Policies and Objectives in Software Architectures</a>.
20th IEEE International Conference on Software Architecture Companion (ICSA), L'Aquila, Italy, 2023.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1007/978-3-030-64694-3_4">Reusable Formal Models for Threat Specification, Detection, and Treatment</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1007/978-3-030-64694-3_4">Reusable Formal Models for Threat Specification, Detection, and Treatment</a>.
19th International Conference on Software and Systems Reuse (ICSR), Hammamet, Tunisia, 2020.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i>Brahim Hamid, <strong>Quentin Rouland</strong>, Jason Jaskolka. <a class="text-primary" href="https://dx.doi.org/10.1109/PRDC47002.2019.00052">Distributed Maintenance of a Spanning Tree of K-Connected Graphs</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i>Brahim Hamid, <strong>Quentin Rouland</strong>, Jason Jaskolka. <a class="text-primary" href="https://dx.doi.org/10.1109/PRDC47002.2019.00052">Distributed Maintenance of a Spanning Tree of K-Connected Graphs</a>.
24th IEEE Pacific Rim International Symposium on Dependable Computing (PRDC), Kyoto, Japan, 2019.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jean-Paul Bodeveix, Mamoun Filali. <a class="text-primary" href="https://doi.org/10.1109/ICECCS.2019.00033">A Formal Methods Approach to Security Requirements Specification and Verification</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jean-Paul Bodeveix, Mamoun Filali. <a class="text-primary" href="https://doi.org/10.1109/ICECCS.2019.00033">A Formal Methods Approach to Security Requirements Specification and Verification</a>.
24th International Conference on Engineering of Complex Computer Systems (ICECCS), Guangzhou, China, 2019.
</p>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1007/978-3-030-00856-7_13">Formalizing Reusable Communication Models for Distributed Systems Architecture</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>, Brahim Hamid, Jason Jaskolka. <a class="text-primary" href="https://doi.org/10.1007/978-3-030-00856-7_13">Formalizing Reusable Communication Models for Distributed Systems Architecture</a>.
8th International Conference on Model and Data Engineering (MEDI), Marrakesh, Morocco, 2018.
</p>
</div>
@ -356,8 +380,8 @@
<strong data-i18n="publications.these"></strong>
</h3>
</h3>
<p class="mb-2 text-justify">
<i class="fas fa-angle-right mr-2"></i><strong>Quentin Rouland</strong>. <a class="text-primary" href="/assets/Manuscript.pdf">Rigorous development of secure architecture within the negative and positive statements: properties, models, analysis and tool support</a>.
<p class="mb-2">
<i class="fas fa-angle-right me-2"></i><strong>Quentin Rouland</strong>. <a class="text-primary" href="/assets/Manuscript.pdf">Rigorous development of secure architecture within the negative and positive statements: properties, models, analysis and tool support</a>.
PhD Thesis, Université Toulouse 3 Paul Sabatier, 2021.
</p>
</div>
@ -378,40 +402,40 @@
<h3 class="mb-3 font-weight-bold dark-grey-text">
<strong>2020-2021</strong><span class="font-weight-light" data-i18n="teachings.univtoulouse2"></span>
</h3>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Architecture orientée service</strong> - Master 2 (8h Cours)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Ouverture à la recherche, veille</strong> - Master 2 (2h Cours)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Modélisation et conception objet</strong> - Master 1 (16h TD/TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Conception et développement orientés objets</strong> - Licence 3 (10h TD/TP, 12h Projet)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Génie logiciel</strong> - Licence 3 (20h TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Projet S3</strong> - Licence 2 (12h Projet)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Pix</strong> - Licence 2 (48h TD/TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Algorithmique et Programmation</strong> - Licence 1 (17h Cours, 31h TD/TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Algorithmique S1</strong> - Licence 1 (28h TD/TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Base de données</strong> - Licence 1 (19h Cours, 36h TD/TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Projet S2</strong> - Licence 1 (12h Projet)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Théorie de linformation</strong> - Licence 1 (12h TD/TP)
</p>
</div>
@ -425,16 +449,16 @@
<h3 class="mb-3 font-weight-bold dark-grey-text">
<strong>2019-2020</strong><span class="font-weight-light" data-i18n="teachings.univtoulouse3"></span>
</h3>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Modélisation et conception objet</strong> - Master 1 (16h TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Génie logiciel</strong> - Licence 3 (20h TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Algo</strong> - Licence 1 (28h TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Projet S2</strong> - Licence 1 (12h Projet)
</p>
</div>
@ -450,19 +474,19 @@
<h3 class="mb-3 font-weight-bold dark-grey-text">
<strong>2018-2019</strong><span class="font-weight-light" data-i18n="teachings.univtoulouse3"></span>
</h3>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Modélisation et conception objet</strong> - Master 1 (16h TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Génie logiciel</strong> - Licence 3 (20h TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Algo</strong> - Licence 1 (28h TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Projet S2</strong> - Licence 1 (12h Projet)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Théorie de l'information</strong> - Licence 1 (12h TP)
</p>
</div>
@ -478,19 +502,19 @@
<h3 class="mb-3 font-weight-bold dark-grey-text">
<strong>2017-2018</strong><span class="font-weight-light" data-i18n="teachings.univtoulouse3"></span>
</h3>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Modélisation et conception objet</strong> - Master 1 (16h TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Génie logiciel</strong> - Licence 3 (20h TP)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Projet S3</strong> - Licence 2 (11h Projet)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Projet S2</strong> - Licence 1 (12h Projet)
</p>
<p class="mb-2 text-justify"><i class="fas fa-angle-right mr-2"></i>
<p class="mb-2"><i class="fas fa-angle-right me-2"></i>
<strong>Théorie de l'information</strong> - Licence 1 (12h TP)
</p>
</div>
@ -504,19 +528,28 @@
<!-- Projects container-->
<div class="container" id="projects" style="display:none;">
<!--Section: Jumbotron-->
<section class="card blue-gradient wow fadeIn" id="intro">
<!-- Content -->
<div class="card-body text-white text-center py-5 px-5 my-5">
<div class="row">
<div class="col col-3 col-sm-3">
<a href="https://github.com/QRouland/UTPass">
<div class="card">
<div class="bg-image hover-overlay" data-mdb-ripple-init data-mdb-ripple-color="light">
<img src="assets/projects/utpass.png" class="img-project img-fluid" alt="UTPass app logo"/>
<div class="mask" style="background-color: rgba(251, 251, 251, 0.15);"></div>
<div class="card-body text-center">
<div class="card-body">
<h5 class="card-title">UTPass</h5>
<p class="card-text">A Ubuntu Touch password management app aiming to be compatible with pass.</p>
</div>
</div>
</div>
<h1 class="">
<strong><p class="text-center mb-5" data-i18n="projects.soon"></p></strong>
</h1>
</div>
</a>
</div>
</div>
<!-- Content -->
</section>
<!--Section: Jumbotron-->
</div>
<!--Projects container-->
@ -524,51 +557,44 @@
</main>
<!--Main layout-->
<div class="push"></div>
</div>
<!--Wrapper layout-->
<!--Footer-->
<footer class="page-footer footer text-center font-small mdb-color darken-2 mt-4 wow fadeIn fixed-bottom">
<hr class="my-2">
<footer class="bg-body-tertiary text-center fixed-bottom border-top">
<!-- Social icons -->
<div class="pb-1">
<div class="pb-1 pt-2">
<a href="mailto:quentin@qrouland.com" target="_blank">
<i class="far fa-envelope mr-2 ml-2 fa-3x"></i>
<i class="far fa-envelope me-2 ml-2 fa-3x"></i>
</a>
<a href="https://www.linkedin.com/in/qrouland" target="_blank">
<i class="fab fa-linkedin mr-2 ml-2 fa-3x"></i>
<i class="fab fa-linkedin me-2 ml-2 fa-3x"></i>
</a>
<a href="https://scholar.google.com/citations?user=X4Cjro0AAAAJ" target="_blank">
<i class="fab fa-google mr-2 ml-2 fa-3x"></i>
<i class="fab fa-google me-2 ml-2 fa-3x"></i>
</a>
<a href="https://www.researchgate.net/profile/Quentin_Rouland/research">
<i class="fab fa-researchgate mr-2 ml-2 fa-3x"></i>
<i class="fab fa-researchgate me-2 ml-2 fa-3x"></i>
</a>
<a href="https://orcid.org/0000-0001-8613-1842">
<i class="fab fa-orcid mr-2 ml-2 fa-3x"></i>
<i class="fab fa-orcid me-2 ml-2 fa-3x"></i>
</a>
<a href="https://git.rdrive.ovh/QRouland" target="_blank">
<i class="fab fa-git-square mr-2 ml-2 fa-3x"></i>
<i class="fab fa-git-square me-2 ml-2 fa-3x"></i>
</a>
<a href="https://github.com/QRouland" target="_blank">
<i class="fab fa-github mr-2 ml-2 fa-3x"></i>
<i class="fab fa-github me-2 ml-2 fa-3x"></i>
</a>
</div>
<div class="pb-1">
<!-- <div class="">
<a id="ukflag" href="javascript:i18next.changeLanguage('en');">
<i class="uk flag"></i>
<i class="flag flag-uk"></i>
</a>
<a id="frflag" href="javascript:i18next.changeLanguage('fr');">
<i class="france flag"></i>
<i class="flag flag-france"></i>
</a>
</div>
<!-- Social icons -->
</div> -->
<!--Copyright-->
<div class="footer-copyright py-2 ">
<div class="footer-copyright pb-1">
<a href="https://qrouland.com" target="_blank"> qrouland.com </a>
</div>
<!--/.Copyright-->
@ -578,13 +604,14 @@
<!-- SCRIPTS -->
<!-- JQuery -->
<script type="text/javascript" src="mdb/js/jquery-3.4.1.min.js"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="mdb/js/popper.min.js"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="mdb/js/bootstrap.min.js"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="mdb/js/mdb.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"
></script>
<!-- MDB -->
<script
type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/8.1.0/mdb.umd.min.js"
></script>
<!-- Page Selection -->
<script type="text/javascript" src="js/page_selection.js"></script>
<!-- i18next Translation -->
@ -592,12 +619,6 @@
<script type="text/javascript" src="js/i18nextBrowserLanguageDetector.min.js"></script>
<script type="text/javascript" src="js/jquery-i18next.min.js"></script>
<script type="text/javascript" src="js/translate.js"></script>
<!-- Initializations -->
<script type="text/javascript">
// Animations initialization
new WOW().init();
</script>
</body>
</html>

Binary file not shown.

View File

@ -1,26 +0,0 @@
Material Design for Bootstrap
Version: MDB Free 4.8.9
Documentation:
https://mdbootstrap.com/
Getting started:
https://mdbootstrap.com/docs/jquery/getting-started/download/
Tutorials:
MDB-Bootstrap: https://mdbootstrap.com/education/bootstrap/
MDB-Wordpress: https://mdbootstrap.com/education/wordpress/
Templates:
https://mdbootstrap.com/templates/
License:
https://mdbootstrap.com/general/license/
Support:
https://mdbootstrap.com/forums/forum/support/
Contact:
office@mdbootstrap.com

Binary file not shown.

View File

@ -1,109 +0,0 @@
/*
* MDBootstrap integration with Datatables
* Learn more: https://mdbootstrap.com/docs/jquery/tables/datatables/
* About MDBootstrap: https://mdbootstrap.com/
*
* This combined file was created taking that code from this webstie:
* https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css
*
*
* To rebuild or modify this file with the latest versions of the included
* software please visit:
* https://datatables.net/download/#bs4/dt-1.10.18
*
* Included libraries:
* DataTables 1.10.18
*/
table.dataTable tbody > tr.selected,
table.dataTable tbody > tr > .selected {
background-color: #B0BED9; }
table.dataTable.stripe tbody > tr.odd.selected,
table.dataTable.stripe tbody > tr.odd > .selected, table.dataTable.display tbody > tr.odd.selected,
table.dataTable.display tbody > tr.odd > .selected {
background-color: #acbad4; }
table.dataTable.hover tbody > tr.selected:hover,
table.dataTable.hover tbody > tr > .selected:hover, table.dataTable.display tbody > tr.selected:hover,
table.dataTable.display tbody > tr > .selected:hover {
background-color: #aab7d1; }
table.dataTable.order-column tbody > tr.selected > .sorting_1, table.dataTable.order-column tbody > tr.selected > .sorting_2, table.dataTable.order-column tbody > tr.selected > .sorting_3, table.dataTable.display tbody > tr.selected > .sorting_1, table.dataTable.display tbody > tr.selected > .sorting_2, table.dataTable.display tbody > tr.selected > .sorting_3 {
background-color: #acbad5; }
table.dataTable.order-column tbody > tr > .selected, table.dataTable.display tbody > tr > .selected {
background-color: #acbad5; }
table.dataTable.display tbody > tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_1 {
background-color: #a6b4cd; }
table.dataTable.display tbody > tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_2 {
background-color: #a8b5cf; }
table.dataTable.display tbody > tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_3 {
background-color: #a9b7d1; }
table.dataTable.display tbody > tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_1 {
background-color: #acbad5; }
table.dataTable.display tbody > tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_2 {
background-color: #aebcd6; }
table.dataTable.display tbody > tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_3 {
background-color: #afbdd8; }
table.dataTable.display tbody > tr.odd > .selected, table.dataTable.order-column.stripe tbody > tr.odd > .selected {
background-color: #a6b4cd; }
table.dataTable.display tbody > tr.even > .selected, table.dataTable.order-column.stripe tbody > tr.even > .selected {
background-color: #acbad5; }
table.dataTable.display tbody > tr.selected:hover > .sorting_1, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_1 {
background-color: #a2aec7; }
table.dataTable.display tbody > tr.selected:hover > .sorting_2, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_2 {
background-color: #a3b0c9; }
table.dataTable.display tbody > tr.selected:hover > .sorting_3, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_3 {
background-color: #a5b2cb; }
table.dataTable.display tbody > tr:hover > .selected, table.dataTable.display tbody > tr > .selected:hover, table.dataTable.order-column.hover tbody > tr:hover > .selected, table.dataTable.order-column.hover tbody > tr > .selected:hover {
background-color: #a2aec7; }
table.dataTable tbody td.select-checkbox, table.dataTable tbody th.select-checkbox {
position: relative; }
table.dataTable tbody td.select-checkbox:before, table.dataTable tbody td.select-checkbox:after, table.dataTable tbody th.select-checkbox:before, table.dataTable tbody th.select-checkbox:after {
display: block;
position: absolute;
top: 1.2em;
left: 50%;
width: 12px;
height: 12px;
-webkit-box-sizing: border-box;
box-sizing: border-box; }
table.dataTable tbody td.select-checkbox:before,
table.dataTable tbody th.select-checkbox:before {
content: ' ';
margin-top: 4px;
margin-left: -6px;
border: 1px solid black;
-webkit-border-radius: 3px;
border-radius: 3px; }
table.dataTable tr.selected td.select-checkbox:after,
table.dataTable tr.selected th.select-checkbox:after {
content: '\2714';
margin-top: 0px;
margin-left: -4px;
text-align: center;
text-shadow: 1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9; }
div.dataTables_wrapper span.select-info, div.dataTables_wrapper span.select-item {
margin-left: 0.5em; }
@media screen and (max-width: 640px) {
div.dataTables_wrapper span.select-info, div.dataTables_wrapper span.select-item {
margin-left: 0;
display: block; } }

View File

@ -1 +0,0 @@
table.dataTable tbody>tr.selected,table.dataTable tbody>tr>.selected{background-color:#B0BED9}table.dataTable.display tbody>tr.odd.selected,table.dataTable.display tbody>tr.odd>.selected,table.dataTable.stripe tbody>tr.odd.selected,table.dataTable.stripe tbody>tr.odd>.selected{background-color:#acbad4}table.dataTable.display tbody>tr.selected:hover,table.dataTable.display tbody>tr>.selected:hover,table.dataTable.hover tbody>tr.selected:hover,table.dataTable.hover tbody>tr>.selected:hover{background-color:#aab7d1}table.dataTable.display tbody>tr.selected>.sorting_1,table.dataTable.display tbody>tr.selected>.sorting_2,table.dataTable.display tbody>tr.selected>.sorting_3,table.dataTable.display tbody>tr>.selected,table.dataTable.order-column tbody>tr.selected>.sorting_1,table.dataTable.order-column tbody>tr.selected>.sorting_2,table.dataTable.order-column tbody>tr.selected>.sorting_3,table.dataTable.order-column tbody>tr>.selected{background-color:#acbad5}table.dataTable.display tbody>tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody>tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody>tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody>tr.odd>.selected,table.dataTable.order-column.stripe tbody>tr.odd>.selected{background-color:#a6b4cd}table.dataTable.display tbody>tr.even>.selected,table.dataTable.order-column.stripe tbody>tr.even>.selected{background-color:#acbad5}table.dataTable.display tbody>tr.selected:hover>.sorting_1,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody>tr.selected:hover>.sorting_2,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody>tr.selected:hover>.sorting_3,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_3{background-color:#a5b2cb}table.dataTable.display tbody>tr:hover>.selected,table.dataTable.display tbody>tr>.selected:hover,table.dataTable.order-column.hover tbody>tr:hover>.selected,table.dataTable.order-column.hover tbody>tr>.selected:hover{background-color:#a2aec7}table.dataTable tbody td.select-checkbox,table.dataTable tbody th.select-checkbox{position:relative}table.dataTable tbody td.select-checkbox:after,table.dataTable tbody td.select-checkbox:before,table.dataTable tbody th.select-checkbox:after,table.dataTable tbody th.select-checkbox:before{display:block;position:absolute;top:1.2em;left:50%;width:12px;height:12px;-webkit-box-sizing:border-box;box-sizing:border-box}table.dataTable tbody td.select-checkbox:before,table.dataTable tbody th.select-checkbox:before{content:' ';margin-top:4px;margin-left:-6px;border:1px solid #000;-webkit-border-radius:3px;border-radius:3px}table.dataTable tr.selected td.select-checkbox:after,table.dataTable tr.selected th.select-checkbox:after{content:'\2714';margin-top:0;margin-left:-4px;text-align:center;text-shadow:1px 1px #B0BED9,-1px -1px #B0BED9,1px -1px #B0BED9,-1px 1px #B0BED9}div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:.5em}@media screen and (max-width:640px){div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0;display:block}}

View File

@ -1,150 +0,0 @@
/*
* MDBootstrap integration with Datatables
* Learn more: https://mdbootstrap.com/docs/jquery/tables/datatables/
* About MDBootstrap: https://mdbootstrap.com/
*
* This combined file was created by the DataTables downloader builder:
* https://datatables.net/download
*
* To rebuild or modify this file with the latest versions of the included
* software please visit:
* https://datatables.net/download/#bs4/dt-1.10.18
*
* Included libraries:
* DataTables 1.10.18
*/
table.dataTable thead {
cursor: pointer; }
table.dataTable thead > tr > th:active,
table.dataTable thead > tr > td:active {
outline: none; }
div.dataTables_wrapper div.dataTables_length.d-flex.flex-row label {
margin-top: 1.2rem;
margin-right: 1rem; }
div.dataTables_wrapper div.dataTables_length.d-flex.flex-row .select-wrapper.mdb-select span,
div.dataTables_wrapper div.dataTables_length.d-flex.flex-row .select-wrapper.mdb-select .select-dropdown {
margin-top: 1rem; }
div.dataTables_wrapper div.dataTables_length label, div.dataTables_wrapper div.dataTables_filter label {
text-align: left;
font-weight: normal;
padding-top: .5rem;
padding-bottom: .5rem; }
div.dataTables_wrapper div.dataTables_length select,
div.dataTables_wrapper div.dataTables_length input {
width: auto; }
div.dataTables_wrapper div.dataTables_filter {
text-align: right; }
div.dataTables_wrapper div.dataTables_filter select,
div.dataTables_wrapper div.dataTables_filter input {
width: auto; }
div.dataTables_wrapper div.dataTables_filter input {
margin-left: .5rem;
display: inline-block; }
div.dataTables_wrapper div.dataTables_info, div.dataTables_wrapper div.dataTables_paginate {
font-weight: normal;
padding-top: 1rem;
padding-bottom: 1rem; }
div.dataTables_wrapper div.dataTables_paginate {
text-align: right;
margin: 0; }
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
-webkit-box-pack: end;
-webkit-justify-content: flex-end;
-ms-flex-pack: end;
justify-content: flex-end; }
div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-item.active .page-link:focus {
background-color: #4285f4; }
div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-item .page-link:focus {
-webkit-box-shadow: none;
box-shadow: none; }
@media (max-width: 767px) {
div.dataTables_wrapper div .dataTables_length,
div.dataTables_wrapper div .dataTables_filter,
div.dataTables_wrapper div .dataTables_info,
div.dataTables_wrapper div .dataTables_paginate ul.pagination {
text-align: center;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center; } }
.bs-select select {
display: inline-block !important; }
table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc,
table.dataTable thead > tr > td.sorting {
padding-right: 30px; }
table.dataTable thead > tr > th:active,
table.dataTable thead > tr > td:active {
outline: none; }
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
position: relative; }
table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
position: absolute;
bottom: 0.9em;
display: block;
opacity: 0.3; }
table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:before {
right: 1em;
content: "\f0de"; }
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
content: "\f0dd";
right: 16px; }
table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:before,
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
font-family: 'Font Awesome\ 5 Free';
font-weight: 900;
font-size: 1rem; }
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:after {
opacity: 1; }
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
opacity: 0; }

View File

@ -1 +0,0 @@
div.dataTables_wrapper div.dataTables_filter input,div.dataTables_wrapper div.dataTables_filter select,div.dataTables_wrapper div.dataTables_length input,div.dataTables_wrapper div.dataTables_length select{width:auto}table.dataTable thead{cursor:pointer}div.dataTables_wrapper div.dataTables_length.d-flex.flex-row label{margin-top:1.2rem;margin-right:1rem}div.dataTables_wrapper div.dataTables_length.d-flex.flex-row .select-wrapper.mdb-select .select-dropdown,div.dataTables_wrapper div.dataTables_length.d-flex.flex-row .select-wrapper.mdb-select span{margin-top:1rem}div.dataTables_wrapper div.dataTables_filter label,div.dataTables_wrapper div.dataTables_length label{text-align:left;font-weight:400;padding-top:.5rem;padding-bottom:.5rem}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter input{margin-left:.5rem;display:inline-block}div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{font-weight:400;padding-top:1rem;padding-bottom:1rem}div.dataTables_wrapper div.dataTables_paginate{text-align:right;margin:0}div.dataTables_wrapper div.dataTables_paginate ul.pagination{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-item.active .page-link:focus{background-color:#4285f4}div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-item .page-link:focus{-webkit-box-shadow:none;box-shadow:none}@media (max-width:767px){div.dataTables_wrapper div .dataTables_filter,div.dataTables_wrapper div .dataTables_info,div.dataTables_wrapper div .dataTables_length,div.dataTables_wrapper div .dataTables_paginate ul.pagination{text-align:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}}.bs-select select{display:inline-block!important}table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc{padding-right:30px}table.dataTable thead>tr>td:active,table.dataTable thead>tr>th:active{outline:0}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting:before,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_desc:before,table.dataTable thead .sorting_desc_disabled:after,table.dataTable thead .sorting_desc_disabled:before{position:absolute;bottom:.9em;display:block;opacity:.3;font-family:'Font Awesome\ 5 Free';font-weight:900;font-size:1rem}table.dataTable thead .sorting:before,table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc:before,table.dataTable thead .sorting_desc_disabled:before{right:1em;content:"\f0de"}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_desc_disabled:after{content:"\f0dd";right:16px}table.dataTable thead .sorting_asc:before,table.dataTable thead .sorting_desc:after{opacity:1}table.dataTable thead .sorting_asc_disabled:before,table.dataTable thead .sorting_desc_disabled:after{opacity:0}

View File

@ -1,32 +0,0 @@
.opacity-0 {
opacity: 0; }
.opacity-10 {
opacity: 0.1; }
.opacity-20 {
opacity: 0.2; }
.opacity-30 {
opacity: 0.3; }
.opacity-40 {
opacity: 0.4; }
.opacity-50 {
opacity: 0.5; }
.opacity-60 {
opacity: 0.6; }
.opacity-70 {
opacity: 0.7; }
.opacity-80 {
opacity: 0.8; }
.opacity-90 {
opacity: 0.9; }
.opacity-100 {
opacity: 1; }

View File

@ -1 +0,0 @@
.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,23 +0,0 @@
.mdb-rating .rate-popover {
color: grey; }
.mdb-rating .live {
color: black; }
.mdb-rating .oneStar {
color: #44370f; }
.mdb-rating .twoStars {
color: #96781e; }
.mdb-rating .threeStars {
color: #e2b52e; }
.mdb-rating .fourStars {
color: #f1ba12; }
.mdb-rating .fiveStars {
color: #f3cb06; }
.mdb-rating .amber-text {
color: #ffc107 !important; }

View File

@ -1 +0,0 @@
.mdb-rating .rate-popover{color:grey}.mdb-rating .live{color:#000}.mdb-rating .oneStar{color:#44370f}.mdb-rating .twoStars{color:#96781e}.mdb-rating .threeStars{color:#e2b52e}.mdb-rating .fourStars{color:#f1ba12}.mdb-rating .fiveStars{color:#f3cb06}.mdb-rating .amber-text{color:#ffc107!important}

View File

@ -1,62 +0,0 @@
/*!
* Material Design Hierarchical Display by Sergey Kupletsky (@zavoloklom) - https://github.com/zavoloklom/material-design-hierarchical-display/
* License - https://github.com/zavoloklom/material-design-hierarchical-display/blob/master/LICENSE (MIT License)
*/
.zmd-hierarchical-display {
visibility: hidden; }
.zmd-hierarchical-display.in {
visibility: visible; }
.zmd-hierarchical-displaying {
visibility: visible; }
.animation {
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both; }
.animation.zoomedIn,
.animation.zoomedOut {
-webkit-animation-timing-function: cubic-bezier(0.55, 0, 0.1, 1);
animation-timing-function: cubic-bezier(0.55, 0, 0.1, 1); }
@-webkit-keyframes zoomedIn {
from {
-webkit-transform: scale(0);
transform: scale(0); }
to {
-webkit-transform: scale(1);
transform: scale(1); } }
@keyframes zoomedIn {
from {
-webkit-transform: scale(0);
transform: scale(0); }
to {
-webkit-transform: scale(1);
transform: scale(1); } }
@-webkit-keyframes zoomedOut {
from {
-webkit-transform: scale(1);
transform: scale(1); }
to {
-webkit-transform: scale(0);
transform: scale(0); } }
@keyframes zoomedOut {
from {
-webkit-transform: scale(1);
transform: scale(1); }
to {
-webkit-transform: scale(0);
transform: scale(0); } }
.zoomedIn {
-webkit-animation-name: zoomedIn;
animation-name: zoomedIn; }
.zoomedOut {
-webkit-animation-name: zoomedOut;
animation-name: zoomedOut; }

View File

@ -1,4 +0,0 @@
/*!
* Material Design Hierarchical Display by Sergey Kupletsky (@zavoloklom) - https://github.com/zavoloklom/material-design-hierarchical-display/
* License - https://github.com/zavoloklom/material-design-hierarchical-display/blob/master/LICENSE (MIT License)
*/.zmd-hierarchical-display{visibility:hidden}.zmd-hierarchical-display.in{visibility:visible}.zmd-hierarchical-displaying{visibility:visible}.animation{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animation.zoomedIn,.animation.zoomedOut{-webkit-animation-timing-function:cubic-bezier(.55,0,.1,1);animation-timing-function:cubic-bezier(.55,0,.1,1)}@-webkit-keyframes zoomedIn{from{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomedIn{from{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes zoomedOut{from{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(0);transform:scale(0)}}@keyframes zoomedOut{from{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(0);transform:scale(0)}}.zoomedIn{-webkit-animation-name:zoomedIn;animation-name:zoomedIn}.zoomedOut{-webkit-animation-name:zoomedOut;animation-name:zoomedOut}

10038
mdb/css/bootstrap.css vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

44
mdb/css/mdb.min.css vendored

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,13 +0,0 @@
.wrapper {
min-height: 100%;
height: 100%;
margin: 100 auto -120px; /* the bottom margin is the negative value of the footer's height */
}
.footer, .push {
height: 120px; /* .push must be the same height as .footer */
}
.vcenter {
display: flex;
align-items: center;
}

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

View File

@ -1 +0,0 @@
<svg width="264" height="88" viewBox="0 0 264 88" xmlns="http://www.w3.org/2000/svg"><title>default-skin 2</title><g fill="none" fill-rule="evenodd"><g><path d="M67.002 59.5v3.768c-6.307.84-9.184 5.75-10.002 9.732 2.22-2.83 5.564-5.098 10.002-5.098V71.5L73 65.585 67.002 59.5z" id="Shape" fill="#fff"/><g fill="#fff"><path d="M13 29v-5h2v3h3v2h-5zM13 15h5v2h-3v3h-2v-5zM31 15v5h-2v-3h-3v-2h5zM31 29h-5v-2h3v-3h2v5z" id="Shape"/></g><g fill="#fff"><path d="M62 24v5h-2v-3h-3v-2h5zM62 20h-5v-2h3v-3h2v5zM70 20v-5h2v3h3v2h-5zM70 24h5v2h-3v3h-2v-5z"/></g><path d="M20.586 66l-5.656-5.656 1.414-1.414L22 64.586l5.656-5.656 1.414 1.414L23.414 66l5.656 5.656-1.414 1.414L22 67.414l-5.656 5.656-1.414-1.414L20.586 66z" fill="#fff"/><path d="M111.785 65.03L110 63.5l3-3.5h-10v-2h10l-3-3.5 1.785-1.468L117 59l-5.215 6.03z" fill="#fff"/><path d="M152.215 65.03L154 63.5l-3-3.5h10v-2h-10l3-3.5-1.785-1.468L147 59l5.215 6.03z" fill="#fff"/><g><path id="Rectangle-11" fill="#fff" d="M160.957 28.543l-3.25-3.25-1.413 1.414 3.25 3.25z"/><path d="M152.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" id="Oval-1" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M150 21h5v1h-5z"/></g><g><path d="M116.957 28.543l-1.414 1.414-3.25-3.25 1.414-1.414 3.25 3.25z" fill="#fff"/><path d="M108.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M106 21h5v1h-5z"/><path fill="#fff" d="M109.043 19.008l-.085 5-1-.017.085-5z"/></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

View File

@ -1,4 +0,0 @@
<svg fill="#FFFFFF" height="36" viewBox="0 0 24 24" width="36" xmlns="http://www.w3.org/2000/svg">
<path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/>
<path d="M0-.5h24v24H0z" fill="none"/>
</svg>

Before

Width:  |  Height:  |  Size: 218 B

View File

@ -1,4 +0,0 @@
<svg fill="#FFFFFF" height="36" viewBox="0 0 24 24" width="36" xmlns="http://www.w3.org/2000/svg">
<path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"/>
<path d="M0-.25h24v24H0z" fill="none"/>
</svg>

Before

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,46 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Material Design Bootstrap</title>
<!-- Font Awesome -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css">
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Material Design Bootstrap -->
<link href="css/mdb.min.css" rel="stylesheet">
<!-- Your custom styles (optional) -->
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<!-- Start your project here-->
<div style="height: 100vh">
<div class="flex-center flex-column">
<h1 class="text-hide animated fadeIn mb-4"
style="background-image: url('https://mdbootstrap.com/img/logo/mdb-transparent-250px.png'); width: 250px; height: 90px;">
MDBootstrap</h1>
<h5 class="animated fadeIn mb-3">Thank you for using our product. We're glad you're with us.</h5>
<p class="animated fadeIn text-muted">MDB Team</p>
</div>
</div>
<!-- Start your project here-->
<!-- SCRIPTS -->
<!-- JQuery -->
<script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="js/popper.min.js"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="js/mdb.min.js"></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

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,176 +0,0 @@
/* ========================================================================
* Zavoloklom Material Design: jquery.zmd.hierarchical-display.js
* http://zavoloklom.github.io/material-design-hierarchical-display/
* ========================================================================
* Copyright 2014 Zavoloklom.
* Licensed under MIT (https://github.com/zavoloklom/material-design-hierarchical-display/blob/master/LICENSE)
* ======================================================================== */
(function ($) {
'use strict';
// CLASS DEFINITION
// ======================
var HDisplay = function (element, options) {
this.$element = $(element);
this.$children = this.$element.children();
this.options = $.extend({}, HDisplay.DEFAULTS, options);
this._time = HDisplay.TRANSITION_DURATION * this.options.speed;
this.init();
if (this.options.debug === true) this._debug();
};
HDisplay.VERSION = '1.0.1';
HDisplay.TRANSITION_DURATION = 300;
HDisplay.DEFAULTS = {
action: 'show',
speed: 5,
animationIn: 'zoomedIn',
animationOut: 'zoomedOut',
debug: false
};
HDisplay.prototype.init = function () {
var self = this;
var parentElement = this.$element;
var children = this.$children;
var options = this.options;
var time = this._time;
var elementOffset, calculatedOffset, elemDelay;
parentElement.addClass('zmd-hierarchical-display');
children.each(function () {
elementOffset = $(this).position();
calculatedOffset = elementOffset.left * 0.8 + elementOffset.top;
elemDelay = parseFloat(calculatedOffset / time).toFixed(2);
$(this)
.css("-webkit-animation-delay", elemDelay + 's')
.css("animation-delay", elemDelay + 's');
});
this._delay = elemDelay;
// Call complete function after animation on last children element ends
children.last().on('webkitAnimationEnd animationend', function(){
if ($(this).hasClass(options.animationOut)) {self._complete('hidden');}
if ($(this).hasClass(options.animationIn)) {self._complete('shown');}
});
};
HDisplay.prototype.show = function () {
var parentElement = this.$element;
var children = this.$children;
var options = this.options;
if (parentElement.hasClass('in') || parentElement.hasClass('zmd-hierarchical-displaying')) return;
this._removeAnimations();
parentElement.trigger($.Event('show.zmd.hierarchicalDisplay'));
this._addAnimation(options.animationIn);
};
HDisplay.prototype.hide = function () {
var parentElement = this.$element;
var children = this.$children;
var options = this.options;
if (parentElement.css('visibility') === 'hidden' || parentElement.hasClass('zmd-hierarchical-displaying')) return;
this._removeAnimations();
parentElement.trigger($.Event('hide.zmd.hierarchicalDisplay'));
this._addAnimation(options.animationOut);
};
HDisplay.prototype.toggle = function () {
if (this.$element.hasClass('in')) {return this.hide();}
return this.show();
};
HDisplay.prototype._removeAnimations = function () {
var options = this.options;
this.$children.each(function () {
$(this)
.removeClass(options.animationIn)
.removeClass(options.animationOut);
});
};
HDisplay.prototype._addAnimation = function (animation) {
this.$element.addClass('zmd-hierarchical-displaying');
this.$children.each(function () {
$(this)
.addClass(animation)
.addClass('animation');
});
};
HDisplay.prototype._complete = function (eventName) {
this.$element
.removeClass('zmd-hierarchical-displaying')
.toggleClass('in')
.trigger($.Event(eventName+'.zmd.hierarchicalDisplay'));
};
HDisplay.prototype._debug = function () {
$(document)
.on('show.zmd.hierarchicalDisplay', function (e) {
console.log('Event "show.zmd.hierarchicalDisplay". For more information see:');
console.log(e);
})
.on('shown.zmd.hierarchicalDisplay', function (e) {
console.log('Event "shown.zmd.hierarchicalDisplay". For more information see:');
console.log(e);
})
.on('hide.zmd.hierarchicalDisplay', function (e) {
console.log('Event "hide.zmd.hierarchicalDisplay". For more information see:');
console.log(e);
})
.on('hidden.zmd.hierarchicalDisplay', function (e) {
console.log('Event "hidden.zmd.hierarchicalDisplay". For more information see:');
console.log(e);
});
};
// PLUGIN DEFINITION
// =======================
function Plugin(settings) {
return this.each(function () {
var $this = $(this);
var data = $this.data('zmd.hierarchicalDisplay');
var options = $.extend({}, HDisplay.DEFAULTS, $this.data(), typeof settings === 'object' && settings);
if (!data) {$this.data('zmd.hierarchicalDisplay', (data = new HDisplay(this, options)));}
if (typeof settings === 'string') {return data[settings]();}
if (options.action in data) {return data[options.action]();}
});
}
$.fn.hierarchicalDisplay = Plugin;
$.fn.hierarchicalDisplay.Constructor = HDisplay;
// DATA-API
// ==============
$(document).on('ready', function () {
$('[data-animation="hierarchical-display"]').each(function () {
Plugin.call($(this));
});
});
$(document).on('click', '[data-toggle="hierarchical-display"]', function (e) {
var $this = $(this);
var $target = $($this.attr('data-target') || $this.attr('href'));
if ($this.is('a')) e.preventDefault();
Plugin.call($target, 'toggle');
});
})(jQuery);

View File

@ -1 +0,0 @@
(function(i){"use strict";function t(t){return this.each(function(){var a=i(this),e=a.data("zmd.hierarchicalDisplay"),o=i.extend({},n.DEFAULTS,a.data(),"object"==typeof t&&t);return e||a.data("zmd.hierarchicalDisplay",e=new n(this,o)),"string"==typeof t?e[t]():o.action in e?e[o.action]():void 0})}var n=function(t,a){this.$element=i(t),this.$children=this.$element.children(),this.options=i.extend({},n.DEFAULTS,a),this._time=n.TRANSITION_DURATION*this.options.speed,this.init(),!0===this.options.debug&&this._debug()};n.VERSION="1.0.1",n.TRANSITION_DURATION=300,n.DEFAULTS={action:"show",speed:5,animationIn:"zoomedIn",animationOut:"zoomedOut",debug:!1},n.prototype.init=function(){var t,n,a,e=this,o=this.$element,s=this.$children,h=this.options,l=this._time;o.addClass("zmd-hierarchical-display"),s.each(function(){t=i(this).position(),n=.8*t.left+t.top,a=parseFloat(n/l).toFixed(2),i(this).css("-webkit-animation-delay",a+"s").css("animation-delay",a+"s")}),this._delay=a,s.last().on("webkitAnimationEnd animationend",function(){i(this).hasClass(h.animationOut)&&e._complete("hidden"),i(this).hasClass(h.animationIn)&&e._complete("shown")})},n.prototype.show=function(){var t=this.$element,n=(this.$children,this.options);t.hasClass("in")||t.hasClass("zmd-hierarchical-displaying")||(this._removeAnimations(),t.trigger(i.Event("show.zmd.hierarchicalDisplay")),this._addAnimation(n.animationIn))},n.prototype.hide=function(){var t=this.$element,n=(this.$children,this.options);"hidden"===t.css("visibility")||t.hasClass("zmd-hierarchical-displaying")||(this._removeAnimations(),t.trigger(i.Event("hide.zmd.hierarchicalDisplay")),this._addAnimation(n.animationOut))},n.prototype.toggle=function(){return this.$element.hasClass("in")?this.hide():this.show()},n.prototype._removeAnimations=function(){var t=this.options;this.$children.each(function(){i(this).removeClass(t.animationIn).removeClass(t.animationOut)})},n.prototype._addAnimation=function(t){this.$element.addClass("zmd-hierarchical-displaying"),this.$children.each(function(){i(this).addClass(t).addClass("animation")})},n.prototype._complete=function(t){this.$element.removeClass("zmd-hierarchical-displaying").toggleClass("in").trigger(i.Event(t+".zmd.hierarchicalDisplay"))},n.prototype._debug=function(){i(document).on("show.zmd.hierarchicalDisplay",function(i){console.log('Event "show.zmd.hierarchicalDisplay". For more information see:'),console.log(i)}).on("shown.zmd.hierarchicalDisplay",function(i){console.log('Event "shown.zmd.hierarchicalDisplay". For more information see:'),console.log(i)}).on("hide.zmd.hierarchicalDisplay",function(i){console.log('Event "hide.zmd.hierarchicalDisplay". For more information see:'),console.log(i)}).on("hidden.zmd.hierarchicalDisplay",function(i){console.log('Event "hidden.zmd.hierarchicalDisplay". For more information see:'),console.log(i)})},i.fn.hierarchicalDisplay=t,i.fn.hierarchicalDisplay.Constructor=n,i(document).on("ready",function(){i('[data-animation="hierarchical-display"]').each(function(){t.call(i(this))})}),i(document).on("click",'[data-toggle="hierarchical-display"]',function(n){var a=i(this),e=i(a.attr("data-target")||a.attr("href"));a.is("a")&&n.preventDefault(),t.call(e,"toggle")})})(jQuery);

File diff suppressed because one or more lines are too long

View File

@ -1,31 +0,0 @@
(function ($) {
$.fn.progressBar = function (givenValue) {
const $this = $(this);
function init(selector) {
const progressValue = selector.children().attr('aria-valuenow');
selector.children().width(`${progressValue}%`);
selector.children().html('<span></span>');
$this.hasClass('md-progress') ? selector.children().children().addClass('md-progress-bar-text') : selector.children().children().addClass('progress-bar-text');
(progressValue !== 100) ? selector.children().children().text(`${progressValue}%`) : selector.children().children().html('<i class="fas fa-check"></i>');
}
function set(selector, value) {
selector.children().removeClass('success fail active');
selector.children().attr('aria-valuenow', value);
init(selector);
if (value > 100) {
return false;
} else if (value === 100) {
selector.children().addClass('success');
} else if (value < 30) {
selector.children().addClass('fail');
} else {
selector.children().addClass('active');
}
return true;
}
set($this, givenValue);
};
}(jQuery));

View File

@ -1,4 +0,0 @@
(function($){$.fn.progressBar=function(givenValue){const $this=$(this);function init(selector){const progressValue=selector.children().attr('aria-valuenow');selector.children().width(`${progressValue}%`);selector.children().html('<span></span>');$this.hasClass('md-progress')?selector.children().children().addClass('md-progress-bar-text'):selector.children().children().addClass('progress-bar-text');(progressValue!==100)?selector.children().children().text(`${progressValue}%`):selector.children().children().html('<i class="fas fa-check"></i>')}
function set(selector,value){selector.children().removeClass('success fail active');selector.children().attr('aria-valuenow',value);init(selector);if(value>100){return!1}else if(value===100){selector.children().addClass('success')}else if(value<30){selector.children().addClass('fail')}else{selector.children().addClass('active')}
return!0}
set($this,givenValue)}}(jQuery))

View File

@ -1,121 +0,0 @@
(function ($) {
$.fn.mdbRate = function () {
var $stars;
// Custom whitelist to allow for using HTML tags in popover content
var myDefaultWhiteList = $.fn.tooltip.Constructor.Default.whiteList
myDefaultWhiteList.textarea = [];
myDefaultWhiteList.button = [];
var $container = $(this);
var titles = ['Very bad', 'Poor', 'OK', 'Good', 'Excellent'];
for (var i = 0; i < 5; i++) {
$container.append(`<i class="py-2 px-1 rate-popover" data-index="${i}" data-html="true" data-toggle="popover"
data-placement="top" title="${titles[i]}"></i>`);
}
$stars = $container.children();
if ($container.hasClass('rating-faces')) {
$stars.addClass('far fa-meh-blank');
} else if ($container.hasClass('empty-stars')) {
$stars.addClass('far fa-star');
} else {
$stars.addClass('fas fa-star');
}
$stars.on('mouseover', function () {
var index = $(this).attr('data-index');
markStarsAsActive(index);
});
function markStarsAsActive(index) {
unmarkActive();
for (var i = 0; i <= index; i++) {
if ($container.hasClass('rating-faces')) {
$($stars.get(i)).removeClass('fa-meh-blank');
$($stars.get(i)).addClass('live');
switch (index) {
case '0':
$($stars.get(i)).addClass('fa-angry');
break;
case '1':
$($stars.get(i)).addClass('fa-frown');
break;
case '2':
$($stars.get(i)).addClass('fa-meh');
break;
case '3':
$($stars.get(i)).addClass('fa-smile');
break;
case '4':
$($stars.get(i)).addClass('fa-laugh');
break;
}
} else if ($container.hasClass('empty-stars')) {
$($stars.get(i)).addClass('fas');
switch (index) {
case '0':
$($stars.get(i)).addClass('oneStar');
break;
case '1':
$($stars.get(i)).addClass('twoStars');
break;
case '2':
$($stars.get(i)).addClass('threeStars');
break;
case '3':
$($stars.get(i)).addClass('fourStars');
break;
case '4':
$($stars.get(i)).addClass('fiveStars');
break;
}
} else {
$($stars.get(i)).addClass('amber-text');
}
}
}
function unmarkActive() {
$stars.parent().hasClass('rating-faces') ? $stars.addClass('fa-meh-blank') : $stars;
$container.hasClass('empty-stars') ? $stars.removeClass('fas') : $container;
$stars.removeClass('fa-angry fa-frown fa-meh fa-smile fa-laugh live oneStar twoStars threeStars fourStars fiveStars amber-text');
}
$stars.on('click', function () {
$stars.popover('hide');
});
// Submit, you can add some extra custom code here
// ex. to send the information to the server
$container.on('click', '#voteSubmitButton', function () {
$stars.popover('hide');
});
// Cancel, just close the popover
$container.on('click', '#closePopoverButton', function () {
$stars.popover('hide');
});
if ($container.hasClass('feedback')) {
$(function () {
$stars.popover({
// Append popover to #rateMe to allow handling form inside the popover
container: $container,
// Custom content for popover
content: `<div class="my-0 py-0"> <textarea type="text" style="font-size: 0.78rem" class="md-textarea form-control py-0" placeholder="Write us what can we improve" rows="3"></textarea> <button id="voteSubmitButton" type="submit" class="btn btn-sm btn-primary">Submit!</button> <button id="closePopoverButton" class="btn btn-flat btn-sm">Close</button> </div>`
});
})
}
$stars.tooltip();
}
})(jQuery);

View File

@ -1,8 +0,0 @@
(function($){$.fn.mdbRate=function(){var $stars;var myDefaultWhiteList=$.fn.tooltip.Constructor.Default.whiteList
myDefaultWhiteList.textarea=[];myDefaultWhiteList.button=[];var $container=$(this);var titles=['Very bad','Poor','OK','Good','Excellent'];for(var i=0;i<5;i++){$container.append(`<i class="py-2 px-1 rate-popover" data-index="${i}" data-html="true" data-toggle="popover"
data-placement="top" title="${titles[i]}"></i>`)}
$stars=$container.children();if($container.hasClass('rating-faces')){$stars.addClass('far fa-meh-blank')}else if($container.hasClass('empty-stars')){$stars.addClass('far fa-star')}else{$stars.addClass('fas fa-star')}
$stars.on('mouseover',function(){var index=$(this).attr('data-index');markStarsAsActive(index)});function markStarsAsActive(index){unmarkActive();for(var i=0;i<=index;i++){if($container.hasClass('rating-faces')){$($stars.get(i)).removeClass('fa-meh-blank');$($stars.get(i)).addClass('live');switch(index){case '0':$($stars.get(i)).addClass('fa-angry');break;case '1':$($stars.get(i)).addClass('fa-frown');break;case '2':$($stars.get(i)).addClass('fa-meh');break;case '3':$($stars.get(i)).addClass('fa-smile');break;case '4':$($stars.get(i)).addClass('fa-laugh');break}}else if($container.hasClass('empty-stars')){$($stars.get(i)).addClass('fas');switch(index){case '0':$($stars.get(i)).addClass('oneStar');break;case '1':$($stars.get(i)).addClass('twoStars');break;case '2':$($stars.get(i)).addClass('threeStars');break;case '3':$($stars.get(i)).addClass('fourStars');break;case '4':$($stars.get(i)).addClass('fiveStars');break}}else{$($stars.get(i)).addClass('amber-text')}}}
function unmarkActive(){$stars.parent().hasClass('rating-faces')?$stars.addClass('fa-meh-blank'):$stars;$container.hasClass('empty-stars')?$stars.removeClass('fas'):$container;$stars.removeClass('fa-angry fa-frown fa-meh fa-smile fa-laugh live oneStar twoStars threeStars fourStars fiveStars amber-text')}
$stars.on('click',function(){$stars.popover('hide')});$container.on('click','#voteSubmitButton',function(){$stars.popover('hide')});$container.on('click','#closePopoverButton',function(){$stars.popover('hide')});if($container.hasClass('feedback')){$(function(){$stars.popover({container:$container,content:`<div class="my-0 py-0"> <textarea type="text" style="font-size: 0.78rem" class="md-textarea form-control py-0" placeholder="Write us what can we improve" rows="3"></textarea> <button id="voteSubmitButton" type="submit" class="btn btn-sm btn-primary">Submit!</button> <button id="closePopoverButton" class="btn btn-flat btn-sm">Close</button> </div>`})})}
$stars.tooltip()}})(jQuery)

4435
mdb/js/bootstrap.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
mdb/js/mdb.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1,173 +0,0 @@
/*!
* bsCustomFileInput v1.3.2 (https://github.com/Johann-S/bs-custom-file-input)
* Copyright 2018 - 2019 Johann-S <johann.servoire@gmail.com>
* Licensed under MIT (https://github.com/Johann-S/bs-custom-file-input/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global = global || self, global.bsCustomFileInput = factory());
}(this, function () {
'use strict';
var Selector = {
CUSTOMFILE: '.custom-file input[type="file"]',
CUSTOMFILELABEL: '.custom-file-label',
FORM: 'form',
INPUT: 'input'
};
var textNodeType = 3;
var getDefaultText = function getDefaultText(input) {
var defaultText = '';
var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);
if (label) {
defaultText = label.innerHTML;
}
return defaultText;
};
var findFirstChildNode = function findFirstChildNode(element) {
if (element.childNodes.length > 0) {
var childNodes = [].slice.call(element.childNodes);
for (var i = 0; i < childNodes.length; i++) {
var node = childNodes[i];
if (node.nodeType !== textNodeType) {
return node;
}
}
}
return element;
};
var restoreDefaultText = function restoreDefaultText(input) {
var defaultText = input.bsCustomFileInput.defaultText;
var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);
if (label) {
var element = findFirstChildNode(label);
element.innerHTML = defaultText;
}
};
var fileApi = !!window.File;
var FAKE_PATH = 'fakepath';
var FAKE_PATH_SEPARATOR = '\\';
var getSelectedFiles = function getSelectedFiles(input) {
if (input.hasAttribute('multiple') && fileApi) {
return [].slice.call(input.files).map(function (file) {
return file.name;
}).join(', ');
}
if (input.value.indexOf(FAKE_PATH) !== -1) {
var splittedValue = input.value.split(FAKE_PATH_SEPARATOR);
return splittedValue[splittedValue.length - 1];
}
return input.value;
};
function handleInputChange() {
var label = this.parentNode.querySelector(Selector.CUSTOMFILELABEL);
if (label) {
var element = findFirstChildNode(label);
var inputValue = getSelectedFiles(this);
if (inputValue.length) {
element.innerHTML = inputValue;
} else {
restoreDefaultText(this);
}
}
}
function handleFormReset() {
var customFileList = [].slice.call(this.querySelectorAll(Selector.INPUT)).filter(function (input) {
return !!input.bsCustomFileInput;
});
for (var i = 0, len = customFileList.length; i < len; i++) {
restoreDefaultText(customFileList[i]);
}
}
var customProperty = 'bsCustomFileInput';
var Event = {
FORMRESET: 'reset',
INPUTCHANGE: 'change'
};
var bsCustomFileInput = {
init: function init(inputSelector, formSelector) {
if (inputSelector === void 0) {
inputSelector = Selector.CUSTOMFILE;
}
if (formSelector === void 0) {
formSelector = Selector.FORM;
}
var customFileInputList = [].slice.call(document.querySelectorAll(inputSelector));
var formList = [].slice.call(document.querySelectorAll(formSelector));
for (var i = 0, len = customFileInputList.length; i < len; i++) {
var input = customFileInputList[i];
Object.defineProperty(input, customProperty, {
value: {
defaultText: getDefaultText(input)
},
writable: true
});
handleInputChange.call(input);
input.addEventListener(Event.INPUTCHANGE, handleInputChange);
}
for (var _i = 0, _len = formList.length; _i < _len; _i++) {
formList[_i].addEventListener(Event.FORMRESET, handleFormReset);
Object.defineProperty(formList[_i], customProperty, {
value: true,
writable: true
});
}
},
destroy: function destroy() {
var formList = [].slice.call(document.querySelectorAll(Selector.FORM)).filter(function (form) {
return !!form.bsCustomFileInput;
});
var customFileInputList = [].slice.call(document.querySelectorAll(Selector.INPUT)).filter(function (input) {
return !!input.bsCustomFileInput;
});
for (var i = 0, len = customFileInputList.length; i < len; i++) {
var input = customFileInputList[i];
restoreDefaultText(input);
input[customProperty] = undefined;
input.removeEventListener(Event.INPUTCHANGE, handleInputChange);
}
for (var _i2 = 0, _len2 = formList.length; _i2 < _len2; _i2++) {
formList[_i2].removeEventListener(Event.FORMRESET, handleFormReset);
formList[_i2][customProperty] = undefined;
}
}
};
return bsCustomFileInput;
}));
//# sourceMappingURL=bs-custom-file-input.js.map
document.addEventListener("DOMContentLoaded", function () {
bsCustomFileInput.init()
});

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +0,0 @@
/*
Enhanced Bootstrap Modals
https://mdbootstrap.com
office@mdbootstrap.com
*/
(function($){
$('body').on('shown.bs.modal', '.modal', function() {
if(!$('.modal-backdrop').length) {
$modal_dialog = $(this).children('.modal-dialog')
if($modal_dialog.hasClass('modal-side')) {
$(this).addClass('modal-scrolling');
$('body').addClass('scrollable');
}
if($modal_dialog.hasClass('modal-frame')) {
$(this).addClass('modal-content-clickable');
$('body').addClass('scrollable');
}
}
});
$('body').on('hidden.bs.modal', '.modal', function() {
$('body').removeClass('scrollable');
});
})(jQuery);

View File

@ -1,173 +0,0 @@
"use strict";
var _this = void 0;
(function ($) {
var inputSelector = "".concat(['text', 'password', 'email', 'url', 'tel', 'number', 'search', 'search-md'].map(function (selector) {
return "input[type=".concat(selector, "]");
}).join(', '), ", textarea");
var textAreaSelector = '.materialize-textarea';
var updateTextFields = function updateTextFields($input) {
var $labelAndIcon = $input.siblings('label, i');
var hasValue = $input.val().length;
var hasPlaceholder = $input.attr('placeholder');
var addOrRemove = "".concat(hasValue || hasPlaceholder ? 'add' : 'remove', "Class");
$labelAndIcon[addOrRemove]('active');
};
var validateField = function validateField($input) {
if ($input.hasClass('validate')) {
var value = $input.val();
var noValue = !value.length;
var isValid = !$input[0].validity.badInput;
if (noValue && isValid) {
$input.removeClass('valid').removeClass('invalid');
} else {
var valid = $input.is(':valid');
var length = Number($input.attr('length')) || 0;
if (valid && (!length || length > value.length)) {
$input.removeClass('invalid').addClass('valid');
} else {
$input.removeClass('valid').addClass('invalid');
}
}
}
};
var textAreaAutoResize = function textAreaAutoResize() {
var $textarea = $(_this);
if ($textarea.val().length) {
var $hiddenDiv = $('.hiddendiv');
var fontFamily = $textarea.css('font-family');
var fontSize = $textarea.css('font-size');
if (fontSize) {
$hiddenDiv.css('font-size', fontSize);
}
if (fontFamily) {
$hiddenDiv.css('font-family', fontFamily);
}
if ($textarea.attr('wrap') === 'off') {
$hiddenDiv.css('overflow-wrap', 'normal').css('white-space', 'pre');
}
$hiddenDiv.text("".concat($textarea.val(), "\n"));
var content = $hiddenDiv.html().replace(/\n/g, '<br>');
$hiddenDiv.html(content); // When textarea is hidden, width goes crazy.
// Approximate with half of window size
$hiddenDiv.css('width', $textarea.is(':visible') ? $textarea.width() : $(window).width() / 2);
$textarea.css('height', $hiddenDiv.height());
}
};
$(inputSelector).each(function (index, input) {
var $this = $(input);
var $labelAndIcon = $this.siblings('label, i');
updateTextFields($this);
var isValid = input.validity.badInput;
if (isValid) {
$labelAndIcon.addClass('active');
}
});
$(document).on('focus', inputSelector, function (e) {
$(e.target).siblings('label, i').addClass('active');
});
$(document).on('blur', inputSelector, function (e) {
var $this = $(e.target);
var noValue = !$this.val();
var invalid = !e.target.validity.badInput;
var noPlaceholder = $this.attr('placeholder') === undefined;
if (noValue && invalid && noPlaceholder) {
$this.siblings('label, i').removeClass('active');
}
validateField($this);
});
$(document).on('change', inputSelector, function (e) {
var $this = $(e.target);
updateTextFields($this);
validateField($this);
});
$('input[autofocus]').siblings('label, i').addClass('active');
$(document).on('reset', function (e) {
var $formReset = $(e.target);
if ($formReset.is('form')) {
var $formInputs = $formReset.find(inputSelector);
$formInputs.removeClass('valid').removeClass('invalid').each(function (index, input) {
var $this = $(input);
var noDefaultValue = !$this.val();
var noPlaceholder = !$this.attr('placeholder');
if (noDefaultValue && noPlaceholder) {
$this.siblings('label, i').removeClass('active');
}
});
$formReset.find('select.initialized').each(function (index, select) {
var $select = $(select);
var $visibleInput = $select.siblings('input.select-dropdown');
var defaultValue = $select.children('[selected]').val();
$select.val(defaultValue);
$visibleInput.val(defaultValue);
});
}
});
function init() {
var $text = $('.md-textarea-auto');
if ($text.length) {
var observe;
if (window.attachEvent) {
observe = function observe(element, event, handler) {
element.attachEvent("on".concat(event), handler);
};
} else {
observe = function observe(element, event, handler) {
element.addEventListener(event, handler, false);
};
}
$text.each(function () {
var self = this;
function resize() {
self.style.height = 'auto';
self.style.height = "".concat(self.scrollHeight, "px");
}
function delayedResize() {
window.setTimeout(resize, 0);
}
observe(self, 'change', resize);
observe(self, 'cut', delayedResize);
observe(self, 'paste', delayedResize);
observe(self, 'drop', delayedResize);
observe(self, 'keydown', delayedResize);
resize();
});
}
}
init();
var $body = $('body');
if (!$('.hiddendiv').first().length) {
var $hiddenDiv = $('<div class="hiddendiv common"></div>');
$body.append($hiddenDiv);
}
$(textAreaSelector).each(textAreaAutoResize);
$body.on('keyup keydown', textAreaSelector, textAreaAutoResize);
})(jQuery);

View File

@ -1,205 +0,0 @@
/*
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Uses the built in easing capabilities added In jQuery 1.1
* to offer multiple easing options
*
* TERMS OF USE - jQuery Easing
*
* Open source under the BSD License.
*
* Copyright © 2008 George McGinley Smith
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];
jQuery.extend( jQuery.easing,
{
def: 'easeOutQuad',
swing: function (x, t, b, c, d) {
//alert(jQuery.easing.default);
return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
},
easeInQuad: function (x, t, b, c, d) {
return c*(t/=d)*t + b;
},
easeOutQuad: function (x, t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
},
easeInOutQuad: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
},
easeInCubic: function (x, t, b, c, d) {
return c*(t/=d)*t*t + b;
},
easeOutCubic: function (x, t, b, c, d) {
return c*((t=t/d-1)*t*t + 1) + b;
},
easeInOutCubic: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t + b;
return c/2*((t-=2)*t*t + 2) + b;
},
easeInQuart: function (x, t, b, c, d) {
return c*(t/=d)*t*t*t + b;
},
easeOutQuart: function (x, t, b, c, d) {
return -c * ((t=t/d-1)*t*t*t - 1) + b;
},
easeInOutQuart: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
return -c/2 * ((t-=2)*t*t*t - 2) + b;
},
easeInQuint: function (x, t, b, c, d) {
return c*(t/=d)*t*t*t*t + b;
},
easeOutQuint: function (x, t, b, c, d) {
return c*((t=t/d-1)*t*t*t*t + 1) + b;
},
easeInOutQuint: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
return c/2*((t-=2)*t*t*t*t + 2) + b;
},
easeInSine: function (x, t, b, c, d) {
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
},
easeOutSine: function (x, t, b, c, d) {
return c * Math.sin(t/d * (Math.PI/2)) + b;
},
easeInOutSine: function (x, t, b, c, d) {
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
},
easeInExpo: function (x, t, b, c, d) {
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
},
easeOutExpo: function (x, t, b, c, d) {
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
},
easeInOutExpo: function (x, t, b, c, d) {
if (t==0) return b;
if (t==d) return b+c;
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
},
easeInCirc: function (x, t, b, c, d) {
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
},
easeOutCirc: function (x, t, b, c, d) {
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
},
easeInOutCirc: function (x, t, b, c, d) {
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
},
easeInElastic: function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
},
easeOutElastic: function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
},
easeInOutElastic: function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
},
easeInBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c*(t/=d)*t*((s+1)*t - s) + b;
},
easeOutBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
},
easeInOutBack: function (x, t, b, c, d, s) {
if (s == undefined) s = 1.70158;
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
},
easeInBounce: function (x, t, b, c, d) {
return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
},
easeOutBounce: function (x, t, b, c, d) {
if ((t/=d) < (1/2.75)) {
return c*(7.5625*t*t) + b;
} else if (t < (2/2.75)) {
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
} else if (t < (2.5/2.75)) {
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
} else {
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
}
},
easeInOutBounce: function (x, t, b, c, d) {
if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
}
});
/*
*
* TERMS OF USE - EASING EQUATIONS
*
* Open source under the BSD License.
*
* Copyright © 2001 Robert Penner
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/

View File

@ -1,16 +0,0 @@
"use strict";
(function ($) {
var SCROLLING_NAVBAR_OFFSET_TOP = 50;
$(window).on('scroll', function () {
var $navbar = $('.navbar');
if ($navbar.length) {
if ($navbar.offset().top > SCROLLING_NAVBAR_OFFSET_TOP) {
$('.scrolling-navbar').addClass('top-nav-collapse');
} else {
$('.scrolling-navbar').removeClass('top-nav-collapse');
}
}
});
})(jQuery);

View File

@ -1,67 +0,0 @@
"use strict";
(function ($) {
$.fn.mdbTreeview = function () {
var $this = $(this);
if ($this.hasClass('treeview')) {
var $toggler = $this.find('.rotate');
$.each($toggler, function (e) {
$($toggler[e]).off('click');
$($toggler[e]).on('click', function () {
var $this = $(this);
$this.siblings('.nested').toggleClass('active');
$this.toggleClass('down');
});
});
}
if ($this.hasClass('treeview-animated')) {
var $elements = $this.find('.treeview-animated-element');
var $closed = $this.find('.closed');
$this.find('.nested').hide();
$closed.off('click');
$closed.on('click', function () {
var $this = $(this);
var $target = $this.siblings('.nested');
var $pointer = $this.children('.fa-angle-right');
$this.toggleClass('open');
$pointer.toggleClass('down');
!$target.hasClass('active') ? $target.addClass('active').slideDown() : $target.removeClass('active').slideUp();
return false;
});
$elements.off('click');
$elements.on('click', function () {
var $this = $(this);
$this.hasClass('opened') ? $this.removeClass('opened') : ($elements.removeClass('opened'), $this.addClass('opened'));
});
}
if ($this.hasClass('treeview-colorful')) {
var _$elements = $this.find('.treeview-colorful-element');
var $header = $this.find('.treeview-colorful-items-header');
$this.find('.nested').hide();
$header.off('click');
$header.on('click', function () {
var $this = $(this);
var $target = $this.siblings('.nested');
var $pointerPlus = $this.children('.fa-plus-circle');
var $pointerMinus = $this.children('.fa-minus-circle');
$this.toggleClass('open');
$pointerPlus.removeClass('fa-plus-circle');
$pointerPlus.addClass('fa-minus-circle');
$pointerMinus.removeClass('fa-minus-circle');
$pointerMinus.addClass('fa-plus-circle');
!$target.hasClass('active') ? $target.addClass('active').slideDown() : $target.removeClass('active').slideUp();
});
_$elements.off('click');
_$elements.on('click', function () {
var $this = $(this);
$this.hasClass('opened') ? _$elements.removeClass('opened') : (_$elements.removeClass('opened'), $this.addClass('opened'));
});
}
};
})(jQuery);

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,609 +0,0 @@
/*!
* Waves v0.7.6
* http://fian.my.id/Waves
*
* Copyright 2014-2018 Alfiana E. Sibuea and other contributors
* Released under the MIT license
* https://github.com/fians/Waves/blob/master/LICENSE
*/
(function (window, factory) {
'use strict';
// AMD. Register as an anonymous module. Wrap in function so we have access
// to root via `this`.
if (typeof define === 'function' && define.amd) {
define([], function () {
window.Waves = factory.call(window);
return window.Waves;
});
}
// Node. Does not work with strict CommonJS, but only CommonJS-like
// environments that support module.exports, like Node.
else if (typeof exports === 'object') {
module.exports = factory.call(window);
}
// Browser globals.
else {
window.Waves = factory.call(window);
}
})(typeof window === 'object' ? window : this, function () {
'use strict';
var Waves = Waves || {};
var $$ = document.querySelectorAll.bind(document);
var toString = Object.prototype.toString;
var isTouchAvailable = 'ontouchstart' in window;
// Find exact position of element
function isWindow(obj) {
return obj !== null && obj === obj.window;
}
function getWindow(elem) {
return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;
}
function isObject(value) {
var type = typeof value;
return type === 'function' || type === 'object' && !!value;
}
function isDOMNode(obj) {
return isObject(obj) && obj.nodeType > 0;
}
function getWavesElements(nodes) {
var stringRepr = toString.call(nodes);
if (stringRepr === '[object String]') {
return $$(nodes);
} else if (isObject(nodes) && /^\[object (Array|HTMLCollection|NodeList|Object)\]$/.test(stringRepr) && nodes.hasOwnProperty('length')) {
return nodes;
} else if (isDOMNode(nodes)) {
return [nodes];
}
return [];
}
function offset(elem) {
var docElem, win,
box = {
top: 0,
left: 0
},
doc = elem && elem.ownerDocument;
docElem = doc.documentElement;
if (typeof elem.getBoundingClientRect !== typeof undefined) {
box = elem.getBoundingClientRect();
}
win = getWindow(doc);
return {
top: box.top + win.pageYOffset - docElem.clientTop,
left: box.left + win.pageXOffset - docElem.clientLeft
};
}
function convertStyle(styleObj) {
var style = '';
for (var prop in styleObj) {
if (styleObj.hasOwnProperty(prop)) {
style += (prop + ':' + styleObj[prop] + ';');
}
}
return style;
}
var Effect = {
// Effect duration
duration: 750,
// Effect delay (check for scroll before showing effect)
delay: 200,
show: function (e, element, velocity) {
// Disable right click
if (e.button === 2) {
return false;
}
element = element || this;
// Create ripple
var ripple = document.createElement('div');
ripple.className = 'waves-ripple waves-rippling';
element.appendChild(ripple);
// Get click coordinate and element width
var pos = offset(element);
var relativeY = 0;
var relativeX = 0;
// Support for touch devices
if ('touches' in e && e.touches.length) {
relativeY = (e.touches[0].pageY - pos.top);
relativeX = (e.touches[0].pageX - pos.left);
}
//Normal case
else {
relativeY = (e.pageY - pos.top);
relativeX = (e.pageX - pos.left);
}
// Support for synthetic events
relativeX = relativeX >= 0 ? relativeX : 0;
relativeY = relativeY >= 0 ? relativeY : 0;
var scale = 'scale(' + ((element.clientWidth / 100) * 3) + ')';
var translate = 'translate(0,0)';
if (velocity) {
translate = 'translate(' + (velocity.x) + 'px, ' + (velocity.y) + 'px)';
}
// Attach data to element
ripple.setAttribute('data-hold', Date.now());
ripple.setAttribute('data-x', relativeX);
ripple.setAttribute('data-y', relativeY);
ripple.setAttribute('data-scale', scale);
ripple.setAttribute('data-translate', translate);
// Set ripple position
var rippleStyle = {
top: relativeY + 'px',
left: relativeX + 'px'
};
ripple.classList.add('waves-notransition');
ripple.setAttribute('style', convertStyle(rippleStyle));
ripple.classList.remove('waves-notransition');
// Scale the ripple
rippleStyle['-webkit-transform'] = scale + ' ' + translate;
rippleStyle['-moz-transform'] = scale + ' ' + translate;
rippleStyle['-ms-transform'] = scale + ' ' + translate;
rippleStyle['-o-transform'] = scale + ' ' + translate;
rippleStyle.transform = scale + ' ' + translate;
rippleStyle.opacity = '1';
var duration = e.type === 'mousemove' ? 2500 : Effect.duration;
rippleStyle['-webkit-transition-duration'] = duration + 'ms';
rippleStyle['-moz-transition-duration'] = duration + 'ms';
rippleStyle['-o-transition-duration'] = duration + 'ms';
rippleStyle['transition-duration'] = duration + 'ms';
ripple.setAttribute('style', convertStyle(rippleStyle));
},
hide: function (e, element) {
element = element || this;
var ripples = element.getElementsByClassName('waves-rippling');
for (var i = 0, len = ripples.length; i < len; i++) {
removeRipple(e, element, ripples[i]);
}
if (isTouchAvailable) {
element.removeEventListener('touchend', Effect.hide);
element.removeEventListener('touchcancel', Effect.hide);
}
element.removeEventListener('mouseup', Effect.hide);
element.removeEventListener('mouseleave', Effect.hide);
}
};
/**
* Collection of wrapper for HTML element that only have single tag
* like <input> and <img>
*/
var TagWrapper = {
// Wrap <input> tag so it can perform the effect
input: function (element) {
var parent = element.parentNode;
// If input already have parent just pass through
if (parent.tagName.toLowerCase() === 'span' && parent.classList.contains('waves-effect')) {
return;
}
// Put element class and style to the specified parent
var wrapper = document.createElement('span');
wrapper.className = 'waves-input-wrapper';
// element.className = 'waves-button-input';
// Put element as child
parent.replaceChild(wrapper, element);
wrapper.appendChild(element);
},
// Wrap <img> tag so it can perform the effect
img: function (element) {
var parent = element.parentNode;
// If input already have parent just pass through
if (parent.tagName.toLowerCase() === 'i' && parent.classList.contains('waves-effect')) {
return;
}
// Put element as child
var wrapper = document.createElement('i');
parent.replaceChild(wrapper, element);
wrapper.appendChild(element);
}
};
/**
* Hide the effect and remove the ripple. Must be
* a separate function to pass the JSLint...
*/
function removeRipple(e, el, ripple) {
// Check if the ripple still exist
if (!ripple) {
return;
}
ripple.classList.remove('waves-rippling');
var relativeX = ripple.getAttribute('data-x');
var relativeY = ripple.getAttribute('data-y');
var scale = ripple.getAttribute('data-scale');
var translate = ripple.getAttribute('data-translate');
// Get delay beetween mousedown and mouse leave
var diff = Date.now() - Number(ripple.getAttribute('data-hold'));
var delay = 350 - diff;
if (delay < 0) {
delay = 0;
}
if (e.type === 'mousemove') {
delay = 150;
}
// Fade out ripple after delay
var duration = e.type === 'mousemove' ? 2500 : Effect.duration;
setTimeout(function () {
var style = {
top: relativeY + 'px',
left: relativeX + 'px',
opacity: '0',
// Duration
'-webkit-transition-duration': duration + 'ms',
'-moz-transition-duration': duration + 'ms',
'-o-transition-duration': duration + 'ms',
'transition-duration': duration + 'ms',
'-webkit-transform': scale + ' ' + translate,
'-moz-transform': scale + ' ' + translate,
'-ms-transform': scale + ' ' + translate,
'-o-transform': scale + ' ' + translate,
'transform': scale + ' ' + translate
};
ripple.setAttribute('style', convertStyle(style));
setTimeout(function () {
try {
el.removeChild(ripple);
} catch (e) {
return false;
}
}, duration);
}, delay);
}
/**
* Disable mousedown event for 500ms during and after touch
*/
var TouchHandler = {
/* uses an integer rather than bool so there's no issues with
* needing to clear timeouts if another touch event occurred
* within the 500ms. Cannot mouseup between touchstart and
* touchend, nor in the 500ms after touchend. */
touches: 0,
allowEvent: function (e) {
var allow = true;
if (/^(mousedown|mousemove)$/.test(e.type) && TouchHandler.touches) {
allow = false;
}
return allow;
},
registerEvent: function (e) {
var eType = e.type;
if (eType === 'touchstart') {
TouchHandler.touches += 1; // push
} else if (/^(touchend|touchcancel)$/.test(eType)) {
setTimeout(function () {
if (TouchHandler.touches) {
TouchHandler.touches -= 1; // pop after 500ms
}
}, 500);
}
}
};
/**
* Delegated click handler for .waves-effect element.
* returns null when .waves-effect element not in "click tree"
*/
function getWavesEffectElement(e) {
if (TouchHandler.allowEvent(e) === false) {
return null;
}
var element = null;
var target = e.target || e.srcElement;
while (target.parentElement) {
if ((!(target instanceof SVGElement)) && target.classList.contains('waves-effect')) {
element = target;
break;
}
target = target.parentElement;
}
return element;
}
/**
* Bubble the click and show effect if .waves-effect elem was found
*/
function showEffect(e) {
// Disable effect if element has "disabled" property on it
// In some cases, the event is not triggered by the current element
// if (e.target.getAttribute('disabled') !== null) {
// return;
// }
var element = getWavesEffectElement(e);
if (element !== null) {
// Make it sure the element has either disabled property, disabled attribute or 'disabled' class
if (element.disabled || element.getAttribute('disabled') || element.classList.contains('disabled')) {
return;
}
TouchHandler.registerEvent(e);
if (e.type === 'touchstart' && Effect.delay) {
var hidden = false;
var timer = setTimeout(function () {
timer = null;
Effect.show(e, element);
}, Effect.delay);
var hideEffect = function (hideEvent) {
// if touch hasn't moved, and effect not yet started: start effect now
if (timer) {
clearTimeout(timer);
timer = null;
Effect.show(e, element);
}
if (!hidden) {
hidden = true;
Effect.hide(hideEvent, element);
}
removeListeners();
};
var touchMove = function (moveEvent) {
if (timer) {
clearTimeout(timer);
timer = null;
}
hideEffect(moveEvent);
removeListeners();
};
element.addEventListener('touchmove', touchMove, false);
element.addEventListener('touchend', hideEffect, false);
element.addEventListener('touchcancel', hideEffect, false);
var removeListeners = function () {
element.removeEventListener('touchmove', touchMove);
element.removeEventListener('touchend', hideEffect);
element.removeEventListener('touchcancel', hideEffect);
};
} else {
Effect.show(e, element);
if (isTouchAvailable) {
element.addEventListener('touchend', Effect.hide, false);
element.addEventListener('touchcancel', Effect.hide, false);
}
element.addEventListener('mouseup', Effect.hide, false);
element.addEventListener('mouseleave', Effect.hide, false);
}
}
}
Waves.init = function (options) {
var body = document.body;
options = options || {};
if ('duration' in options) {
Effect.duration = options.duration;
}
if ('delay' in options) {
Effect.delay = options.delay;
}
if (isTouchAvailable) {
body.addEventListener('touchstart', showEffect, false);
body.addEventListener('touchcancel', TouchHandler.registerEvent, false);
body.addEventListener('touchend', TouchHandler.registerEvent, false);
}
body.addEventListener('mousedown', showEffect, false);
};
/**
* Attach Waves to dynamically loaded inputs, or add .waves-effect and other
* waves classes to a set of elements. Set drag to true if the ripple mouseover
* or skimming effect should be applied to the elements.
*/
Waves.attach = function (elements, classes) {
elements = getWavesElements(elements);
if (toString.call(classes) === '[object Array]') {
classes = classes.join(' ');
}
classes = classes ? ' ' + classes : '';
var element, tagName;
for (var i = 0, len = elements.length; i < len; i++) {
element = elements[i];
tagName = element.tagName.toLowerCase();
if (['input', 'img'].indexOf(tagName) !== -1) {
TagWrapper[tagName](element);
element = element.parentElement;
}
if (element.className.indexOf('waves-effect') === -1) {
element.className += ' waves-effect' + classes;
}
}
};
/**
* Cause a ripple to appear in an element via code.
*/
Waves.ripple = function (elements, options) {
elements = getWavesElements(elements);
var elementsLen = elements.length;
options = options || {};
options.wait = options.wait || 0;
options.position = options.position || null; // default = centre of element
if (elementsLen) {
var element, pos, off, centre = {},
i = 0;
var mousedown = {
type: 'mousedown',
button: 1
};
var hideRipple = function (mouseup, element) {
return function () {
Effect.hide(mouseup, element);
};
};
for (; i < elementsLen; i++) {
element = elements[i];
pos = options.position || {
x: element.clientWidth / 2,
y: element.clientHeight / 2
};
off = offset(element);
centre.x = off.left + pos.x;
centre.y = off.top + pos.y;
mousedown.pageX = centre.x;
mousedown.pageY = centre.y;
Effect.show(mousedown, element);
if (options.wait >= 0 && options.wait !== null) {
var mouseup = {
type: 'mouseup',
button: 1
};
setTimeout(hideRipple(mouseup, element), options.wait);
}
}
}
};
/**
* Remove all ripples from an element.
*/
Waves.calm = function (elements) {
elements = getWavesElements(elements);
var mouseup = {
type: 'mouseup',
button: 1
};
for (var i = 0, len = elements.length; i < len; i++) {
Effect.hide(mouseup, elements[i]);
}
};
/**
* Deprecated API fallback
*/
Waves.displayEffect = function (options) {
console.error('Waves.displayEffect() has been deprecated and will be removed in future version. Please use Waves.init() to initialize Waves effect');
Waves.init(options);
};
return Waves;
});
$(document).ready(function () {
//Initialization
Waves.attach('.btn:not(.btn-flat), .btn-floating', ['waves-light']);
Waves.attach('.btn-flat', ['waves-effect']);
Waves.attach('.chip', ['waves-effect']);
Waves.attach('.view a .mask', ['waves-light']);
Waves.attach('.waves-light', ['waves-light']);
Waves.attach('.navbar-nav a:not(.navbar-brand), .nav-icons li a, .nav-tabs .nav-item:not(.dropdown)', ['waves-light']);
Waves.attach('.pager li a', ['waves-light']);
Waves.attach('.pagination .page-item .page-link', ['waves-effect']);
Waves.init();
});

View File

@ -1,208 +0,0 @@
'use strict';
var WOW;
(function ($) {
WOW = function WOW() {
return {
init: function init() {
var animationName = [];
var once = 1;
function mdbWow() {
var windowHeight = window.innerHeight;
var scroll = window.scrollY;
$('.wow').each(function () {
if ($(this).css('visibility') == 'visible') {
return;
}
if (windowHeight + scroll - 100 > getOffset(this) && scroll < getOffset(this) || windowHeight + scroll - 100 > getOffset(this) + $(this).height() && scroll < getOffset(this) + $(this).height() || windowHeight + scroll == $(document).height() && getOffset(this) + 100 > $(document).height()) {
var index = $(this).index('.wow');
var delay = $(this).attr('data-wow-delay');
if (delay) {
delay = $(this).attr('data-wow-delay').slice(0, -1
);
var self = this;
var timeout = parseFloat(delay) * 1000;
$(self).addClass('animated');
$(self).css({
'visibility': 'visible'
});
$(self).css({
'animation-delay': delay
});
$(self).css({
'animation-name': animationName[index]
});
var removeTime = $(this).css('animation-duration').slice(0, -1) * 1000;
if ($(this).attr('data-wow-delay')) {
removeTime += $(this).attr('data-wow-delay').slice(0, -1) * 1000;
}
var self = this;
setTimeout(function () {
$(self).removeClass('animated');
}, removeTime);
} else {
$(this).addClass('animated');
$(this).css({
'visibility': 'visible'
});
$(this).css({
'animation-name': animationName[index]
});
var removeTime = $(this).css('animation-duration').slice(0, -1) * 1000;
var self = this;
setTimeout(function () {
$(self).removeClass('animated');
}, removeTime);
}
}
});
}
function appear() {
$('.wow').each(function () {
var index = $(this).index('.wow');
var delay = $(this).attr('data-wow-delay');
if (delay) {
delay = $(this).attr('data-wow-delay').slice(0, -1);
var timeout = parseFloat(delay) * 1000;
$(this).addClass('animated');
$(this).css({
'visibility': 'visible'
});
$(this).css({
'animation-delay': delay + 's'
});
$(this).css({
'animation-name': animationName[index]
});
} else {
$(this).addClass('animated');
$(this).css({
'visibility': 'visible'
});
$(this).css({
'animation-name': animationName[index]
});
}
});
}
function hide() {
var windowHeight = window.innerHeight;
var scroll = window.scrollY;
$('.wow.animated').each(function () {
if (windowHeight + scroll - 100 > getOffset(this) && scroll > getOffset(this) + 100 || windowHeight + scroll - 100 < getOffset(this) && scroll < getOffset(this) + 100 || getOffset(this) + $(this).height > $(document).height() - 100) {
$(this).removeClass('animated');
$(this).css({
'animation-name': 'none'
});
$(this).css({
'visibility': 'hidden'
});
} else {
var removeTime = $(this).css('animation-duration').slice(0, -1) * 1000;
if ($(this).attr('data-wow-delay')) {
removeTime += $(this).attr('data-wow-delay').slice(0, -1) * 1000;
}
var self = this;
setTimeout(function () {
$(self).removeClass('animated');
}, removeTime);
}
});
mdbWow();
once--;
}
function getOffset(elem) {
var box = elem.getBoundingClientRect();
var body = document.body;
var docEl = document.documentElement;
var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;
var clientTop = docEl.clientTop || body.clientTop || 0;
var top = box.top + scrollTop - clientTop;
return Math.round(top);
}
$('.wow').each(function () {
$(this).css({
'visibility': 'hidden'
});
animationName[$(this).index('.wow')] = $(this).css('animation-name');
$(this).css({
'animation-name': 'none'
});
});
$(window).scroll(function () {
if (once) {
hide();
} else {
mdbWow();
}
});
appear();
}
};
};
})(jQuery);

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
// Your custom styles

View File

@ -1 +0,0 @@
// Your custom variables

View File

@ -1,151 +0,0 @@
/*
* MDBootstrap integration with Datatables
* Learn more: https://mdbootstrap.com/docs/jquery/tables/datatables/
* About MDBootstrap: https://mdbootstrap.com/
*
* This combined file was created taking that code from this webstie:
* https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css
*
*
* To rebuild or modify this file with the latest versions of the included
* software please visit:
* https://datatables.net/download/#bs4/dt-1.10.18
*
* Included libraries:
* DataTables 1.10.18
*/
table {
&.dataTable {
tbody > tr {
&.selected,
> .selected {
background-color: #b0bed9;
}
}
&.stripe, &.display {
tbody > tr.odd {
&.selected,
> .selected {
background-color: #acbad4;
}
}
}
&.hover, &.display {
tbody > tr {
&.selected:hover,
> .selected:hover {
background-color: #aab7d1;
}
}
}
&.order-column, &.display {
tbody > tr {
&.selected > {
.sorting_1, .sorting_2, .sorting_3 {
background-color: #acbad5;
}
}
> .selected {
background-color: #acbad5;
}
}
}
&.display, &.order-column.stripe {
tbody > tr {
&.odd.selected > .sorting_1 {
background-color: #a6b4cd;
}
}
}
&.display tbody > tr.odd.selected > .sorting_2, &.order-column.stripe tbody > tr.odd.selected > .sorting_2 {
background-color: #a8b5cf;
}
&.display tbody > tr.odd.selected > .sorting_3, &.order-column.stripe tbody > tr.odd.selected > .sorting_3 {
background-color: #a9b7d1;
}
&.display tbody > tr.even.selected > .sorting_1, &.order-column.stripe tbody > tr.even.selected > .sorting_1 {
background-color: #acbad5;
}
&.display tbody > tr.even.selected > .sorting_2, &.order-column.stripe tbody > tr.even.selected > .sorting_2 {
background-color: #aebcd6;
}
&.display tbody > tr.even.selected > .sorting_3, &.order-column.stripe tbody > tr.even.selected > .sorting_3 {
background-color: #afbdd8;
}
&.display tbody > tr.odd > .selected, &.order-column.stripe tbody > tr.odd > .selected {
background-color: #a6b4cd;
}
&.display tbody > tr.even > .selected, &.order-column.stripe tbody > tr.even > .selected {
background-color: #acbad5;
}
&.display tbody > tr.selected:hover > .sorting_1, &.order-column.hover tbody > tr.selected:hover > .sorting_1 {
background-color: #a2aec7;
}
&.display tbody > tr.selected:hover > .sorting_2, &.order-column.hover tbody > tr.selected:hover > .sorting_2 {
background-color: #a3b0c9;
}
&.display tbody > tr.selected:hover > .sorting_3, &.order-column.hover tbody > tr.selected:hover > .sorting_3 {
background-color: #a5b2cb;
}
&.display, &.order-column.hover {
tbody > tr {
&:hover > .selected, > .selected:hover {
background-color: #a2aec7;
}
}
}
tbody {
td.select-checkbox, th.select-checkbox {
position: relative;
}
td, th {
&.select-checkbox {
&:before,
&:after {
display: block;
position: absolute;
top: 1.2em;
left: 50%;
width: 12px;
height: 12px;
box-sizing: border-box;
}
}
}
td.select-checkbox:before,
th.select-checkbox:before {
content: ' ';
margin-top: 4px;
margin-left: -6px;
border: 1px solid black;
border-radius: 3px;
}
}
tr.selected {
td.select-checkbox:after,
th.select-checkbox:after {
content: '\2714';
margin-top: 0px;
margin-left: -4px;
text-align: center;
text-shadow: 1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9;
}
}
}
}
div.dataTables_wrapper span {
&.select-info, &.select-item {
margin-left: 0.5em;
}
}
@media screen and (max-width: 640px) {
div.dataTables_wrapper span {
&.select-info, &.select-item {
margin-left: 0;
display: block;
}
}
}

View File

@ -1,157 +0,0 @@
/*
* MDBootstrap integration with Datatables
* Learn more: https://mdbootstrap.com/docs/jquery/tables/datatables/
* About MDBootstrap: https://mdbootstrap.com/
*
* This combined file was created by the DataTables downloader builder:
* https://datatables.net/download
*
* To rebuild or modify this file with the latest versions of the included
* software please visit:
* https://datatables.net/download/#bs4/dt-1.10.18
*
* Included libraries:
* DataTables 1.10.18
*/
table.dataTable thead {
cursor: pointer;
> tr > {
th:active, td:active {
outline: none;
}
}
}
div.dataTables_wrapper div {
&.dataTables_length {
&.d-flex.flex-row {
label {
margin-top: 1.2rem;
margin-right: 1rem;
}
.select-wrapper.mdb-select {
span, .select-dropdown {
margin-top: 1rem;
}
}
}
}
&.dataTables_length,
&.dataTables_filter {
label {
text-align: left;
font-weight: normal;
padding-top: .5rem;
padding-bottom: .5rem;
}
}
&.dataTables_length {
select, input {
width: auto;
}
}
&.dataTables_filter {
select,
input {
width: auto;
}
input {
margin-left: .5rem;
display: inline-block;
}
text-align: right;
}
&.dataTables_info,
&.dataTables_paginate {
font-weight: normal;
padding-top: 1rem;
padding-bottom: 1rem;
}
&.dataTables_paginate {
text-align: right;
margin: 0;
ul.pagination {
-webkit-box-pack: end;
-webkit-justify-content: flex-end;
-ms-flex-pack: end;
justify-content: flex-end;
.page-item {
&.active .page-link:focus {
background-color: #4285f4;
}
.page-link:focus {
-webkit-box-shadow: none;
box-shadow: none;
}
}
}
}
}
@media (max-width: 767px) {
div.dataTables_wrapper div {
.dataTables_length, .dataTables_filter, .dataTables_info, .dataTables_paginate ul.pagination {
text-align: center;
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
}
}
.bs-select select {
display: inline-block !important;
}
table.dataTable thead {
> tr > {
th,
td {
&.sorting_asc, &.sorting_desc, &.sorting {
padding-right: 30px;
}
}
th:active, td:active {
outline: none;
}
}
.sorting, .sorting_asc, .sorting_desc, .sorting_asc_disabled, .sorting_desc_disabled {
cursor: pointer;
position: relative;
}
.sorting,
.sorting_asc,
.sorting_desc,
.sorting_asc_disabled,
.sorting_desc_disabled {
&:before, &:after {
position: absolute;
bottom: 0.9em;
display: block;
opacity: 0.3;
}
}
.sorting:before, .sorting_asc:before, .sorting_desc:before, .sorting_asc_disabled:before, .sorting_desc_disabled:before {
right: 1em;
content: "\f0de";
}
.sorting:after, .sorting_asc:after, .sorting_desc:after, .sorting_asc_disabled:after, .sorting_desc_disabled:after {
content: "\f0dd";
right: 16px;
}
.sorting:before, .sorting_asc:before, .sorting_desc:before, .sorting_asc_disabled:before, .sorting_desc_disabled:before,
.sorting:after, .sorting_asc:after, .sorting_desc:after, .sorting_asc_disabled:after, .sorting_desc_disabled:after {
font-family: 'Font Awesome\ 5 Free';
font-weight: 900;
font-size: 1rem;
}
.sorting_asc:before, .sorting_desc:after {
opacity: 1;
}
.sorting_asc_disabled:before, .sorting_desc_disabled:after {
opacity: 0;
}
}

View File

@ -1,6 +0,0 @@
// Optional directives
@each $key in (0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100) {
.opacity-#{$key} {
opacity: $key * .01;
}
}

Some files were not shown because too many files have changed in this diff Show More