diff --git a/.classpath b/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..7b57c0d083e34fd01ae404e13c03c8c2020b7394 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-20"> + <attributes> + <attribute name="module" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/.project b/.project new file mode 100644 index 0000000000000000000000000000000000000000..30848b55997598d000ae1db594e49c89b83d9af7 --- /dev/null +++ b/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>Gestion_panier</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> + <filteredResources> + <filter> + <id>1741770836841</id> + <name></name> + <type>30</type> + <matcher> + <id>org.eclipse.core.resources.regexFilterMatcher</id> + <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> + </matcher> + </filter> + </filteredResources> +</projectDescription> diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..ccfd5597d16ba053babaa5771724de03209d2f2f --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=20 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=20 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=20 diff --git a/Diagramme/Diagramme _sequence.drawio.pdf b/Diagramme/Diagramme _sequence.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..56ed5d372260372c4606d0e3aa10a3a289f79836 Binary files /dev/null and b/Diagramme/Diagramme _sequence.drawio.pdf differ diff --git a/Diagramme/diagramme_classe.drawio.pdf b/Diagramme/diagramme_classe.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..03b207292eab27d51d448f7b5a9e58fb4123b1b4 Binary files /dev/null and b/Diagramme/diagramme_classe.drawio.pdf differ diff --git a/Diagramme/justidication.pdf b/Diagramme/justidication.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1315c12de8418195872e4e6d075cd0a1d4ffec4d Binary files /dev/null and b/Diagramme/justidication.pdf differ diff --git a/bin/Panier/Disque.class b/bin/Panier/Disque.class new file mode 100644 index 0000000000000000000000000000000000000000..61f9cf906ae57c7e221e62f2f91f0c1c8c94a730 Binary files /dev/null and b/bin/Panier/Disque.class differ diff --git a/bin/Panier/Main.class b/bin/Panier/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..31774097bd3e7e1a4d6226e4f86c3601310a5ed0 Binary files /dev/null and b/bin/Panier/Main.class differ diff --git a/bin/Panier/Nourriture.class b/bin/Panier/Nourriture.class new file mode 100644 index 0000000000000000000000000000000000000000..7befdc1e58c98feb634cecd8beda2fdad76d1f13 Binary files /dev/null and b/bin/Panier/Nourriture.class differ diff --git a/bin/Panier/Panier.class b/bin/Panier/Panier.class new file mode 100644 index 0000000000000000000000000000000000000000..b8a3719f2acdfbba6222adde8b6e9284bdb5f670 Binary files /dev/null and b/bin/Panier/Panier.class differ diff --git a/bin/Panier/Produit.class b/bin/Panier/Produit.class new file mode 100644 index 0000000000000000000000000000000000000000..6d112b300564078f98627887efb2b3d8a67df1b1 Binary files /dev/null and b/bin/Panier/Produit.class differ diff --git a/bin/Panier/ValeurInvalideException.class b/bin/Panier/ValeurInvalideException.class new file mode 100644 index 0000000000000000000000000000000000000000..fc591aa047bef1e904a770d1b07fa801c2bb04ed Binary files /dev/null and b/bin/Panier/ValeurInvalideException.class differ diff --git a/bin/Panier/Vendable.class b/bin/Panier/Vendable.class new file mode 100644 index 0000000000000000000000000000000000000000..2e584e9ee7f90656220a04ca3ec6475e49cb757c Binary files /dev/null and b/bin/Panier/Vendable.class differ diff --git a/bin/module-info.class b/bin/module-info.class new file mode 100644 index 0000000000000000000000000000000000000000..ba1f550672d9e268e09818e9922ef1bc8d408862 Binary files /dev/null and b/bin/module-info.class differ diff --git a/doc/Gestion_panier/Panier/Disque.html b/doc/Gestion_panier/Panier/Disque.html new file mode 100644 index 0000000000000000000000000000000000000000..c07d2eae4e7302dfb994f7ee588c822f102bbc1e --- /dev/null +++ b/doc/Gestion_panier/Panier/Disque.html @@ -0,0 +1,200 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Disque</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Disque"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Disque.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Disque" class="title">Class Disque</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Disque</div> +</div> +<section class="class-description" id="class-description"> +<dl class="notes"> +<dt>All Implemented Interfaces:</dt> +<dd><code><a href="Vendable.html" title="interface in Panier">Vendable</a></code></dd> +</dl> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Disque</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> +implements <a href="Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="block">Classe représentant un disque (CD/DVD) vendable. + Implémente l'interface <a href="Vendable.html" title="interface in Panier"><code>Vendable</code></a>.</div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(double)" class="member-name-link">Disque</a><wbr>(double prix)</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur pour initialiser le prix du disque.</div> +</div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrix()" class="member-name-link">getPrix</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Retourne le prix du disque.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>(double)"> +<h3>Disque</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Disque</span><wbr><span class="parameters">(double prix)</span> + throws <span class="exceptions">Panier.ValeurInvalideException</span></div> +<div class="block">Constructeur pour initialiser le prix du disque.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>prix</code> - Le prix du disque en euros. Doit être un nombre positif.</dd> +<dt>Throws:</dt> +<dd><code>Panier.ValeurInvalideException</code> - si le prix est inférieur ou égal à 0.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="getPrix()"> +<h3>getPrix</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">getPrix</span>()</div> +<div class="block">Retourne le prix du disque.</div> +<dl class="notes"> +<dt>Specified by:</dt> +<dd><code><a href="Vendable.html#getPrix()">getPrix</a></code> in interface <code><a href="Vendable.html" title="interface in Panier">Vendable</a></code></dd> +<dt>Returns:</dt> +<dd>Le prix du disque en euros.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Main.html b/doc/Gestion_panier/Panier/Main.html new file mode 100644 index 0000000000000000000000000000000000000000..898a769eba1c6ad8f337bd8a8a7da2a41fbda594 --- /dev/null +++ b/doc/Gestion_panier/Panier/Main.html @@ -0,0 +1,186 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Main</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Main"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Main.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Main" class="title">Class Main</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Main</div> +</div> +<section class="class-description" id="class-description"> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Main</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div> +<div class="block">Classe principale contenant le programme de test pour la gestion d'un panier d'achats. + <p> + Cette classe permet de tester l'ajout de produits (Disques et Nourriture) dans un panier + et d'afficher le prix total. Elle gère également les erreurs liées à des valeurs invalides. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Main</a>()</code></div> +<div class="col-last even-row-color"> </div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#main(java.lang.String%5B%5D)" class="member-name-link">main</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[] args)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> +<div class="block">Méthode principale qui exécute différents scénarios de test pour la gestion des paniers.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>()"> +<h3>Main</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Main</span>()</div> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="main(java.lang.String[])"> +<h3>main</h3> +<div class="member-signature"><span class="modifiers">public static</span> <span class="return-type">void</span> <span class="element-name">main</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[] args)</span></div> +<div class="block">Méthode principale qui exécute différents scénarios de test pour la gestion des paniers.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>args</code> - Arguments de la ligne de commande (non utilisés ici).</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Nourriture.html b/doc/Gestion_panier/Panier/Nourriture.html new file mode 100644 index 0000000000000000000000000000000000000000..7098e1779295e550c4f7b764949394ac9087be3d --- /dev/null +++ b/doc/Gestion_panier/Panier/Nourriture.html @@ -0,0 +1,206 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Nourriture</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Nourriture"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Nourriture.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Nourriture" class="title">Class Nourriture</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Nourriture</div> +</div> +<section class="class-description" id="class-description"> +<dl class="notes"> +<dt>All Implemented Interfaces:</dt> +<dd><code><a href="Vendable.html" title="interface in Panier">Vendable</a></code></dd> +</dl> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Nourriture</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a> +implements <a href="Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="block">Classe représentant un produit alimentaire vendable. + <p> + Chaque instance de cette classe correspond à une portion de nourriture, + définie par un prix par kilogramme et un poids en kilogrammes. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(double,double)" class="member-name-link">Nourriture</a><wbr>(double prixKg, + double poidsKg)</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur permettant d'initialiser une portion de nourriture avec son prix et son poids.</div> +</div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrix()" class="member-name-link">getPrix</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Calcule et retourne le prix total de la portion de nourriture.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>(double,double)"> +<h3>Nourriture</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Nourriture</span><wbr><span class="parameters">(double prixKg, + double poidsKg)</span> + throws <span class="exceptions">Panier.ValeurInvalideException</span></div> +<div class="block">Constructeur permettant d'initialiser une portion de nourriture avec son prix et son poids.</div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>prixKg</code> - Prix par kilogramme (doit être strictement positif).</dd> +<dd><code>poidsKg</code> - Poids en kilogrammes (doit être strictement positif).</dd> +<dt>Throws:</dt> +<dd><code>Panier.ValeurInvalideException</code> - Si le prix par kilogramme ou le poids sont négatifs ou nuls.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="getPrix()"> +<h3>getPrix</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">getPrix</span>()</div> +<div class="block">Calcule et retourne le prix total de la portion de nourriture.</div> +<dl class="notes"> +<dt>Specified by:</dt> +<dd><code><a href="Vendable.html#getPrix()">getPrix</a></code> in interface <code><a href="Vendable.html" title="interface in Panier">Vendable</a></code></dd> +<dt>Returns:</dt> +<dd>Le prix total (prix par kilogramme * poids en kilogrammes).</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Panier.html b/doc/Gestion_panier/Panier/Panier.html new file mode 100644 index 0000000000000000000000000000000000000000..8d330d2312c21aa8f632420399c74eeb09cc31e6 --- /dev/null +++ b/doc/Gestion_panier/Panier/Panier.html @@ -0,0 +1,213 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Panier"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Panier.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Panier" class="title">Class Panier</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Panier</div> +</div> +<section class="class-description" id="class-description"> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Panier</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div> +<div class="block">Classe représentant un panier contenant des produits. + <p> + Cette classe permet d'ajouter des produits dans le panier et de calculer le prix total du panier. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Panier</a>()</code></div> +<div class="col-last even-row-color"> </div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#add(int,Panier.Vendable)" class="member-name-link">add</a><wbr>(int quantite, + <a href="Vendable.html" title="interface in Panier">Vendable</a> chose)</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Ajoute un produit dans le panier.</div> +</div> +<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div> +<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getTotalPrix()" class="member-name-link">getTotalPrix</a>()</code></div> +<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Calcule le prix total du panier.</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>()"> +<h3>Panier</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Panier</span>()</div> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="add(int,Panier.Vendable)"> +<h3>add</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name">add</span><wbr><span class="parameters">(int quantite, + <a href="Vendable.html" title="interface in Panier">Vendable</a> chose)</span> + throws <span class="exceptions">Panier.ValeurInvalideException</span></div> +<div class="block">Ajoute un produit dans le panier. + <p> + Si la quantité demandée est inférieure ou égale à 0, une exception est levée. + </p></div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>quantite</code> - La quantité du produit à ajouter (doit être supérieure à 0).</dd> +<dd><code>chose</code> - Le produit à ajouter, qui doit implémenter l'interface <a href="Vendable.html" title="interface in Panier"><code>Vendable</code></a>.</dd> +<dt>Throws:</dt> +<dd><code>Panier.ValeurInvalideException</code> - Si la quantité est inférieure ou égale à 0.</dd> +</dl> +</section> +</li> +<li> +<section class="detail" id="getTotalPrix()"> +<h3>getTotalPrix</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">getTotalPrix</span>()</div> +<div class="block">Calcule le prix total du panier. + <p> + Le prix total est la somme des prix de chaque produit, calculé en fonction de la quantité et du prix de chaque produit. + </p></div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Le prix total du panier.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Produit.html b/doc/Gestion_panier/Panier/Produit.html new file mode 100644 index 0000000000000000000000000000000000000000..dda82a09aaae31d0bd92f8d78b0ecfec39e50f5f --- /dev/null +++ b/doc/Gestion_panier/Panier/Produit.html @@ -0,0 +1,206 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Produit</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, class: Produit"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Produit.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li><a href="#constructor-summary">Constr</a></li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li><a href="#constructor-detail">Constr</a></li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor-summary">Constr</a> | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor-detail">Constr</a> | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Class Produit" class="title">Class Produit</h1> +</div> +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a> +<div class="inheritance">Panier.Produit</div> +</div> +<section class="class-description" id="class-description"> +<hr> +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Produit</span> +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div> +<div class="block">Classe représentant un produit dans un panier. + <p> + Cette classe contient un produit (qui doit implémenter l'interface <a href="Vendable.html" title="interface in Panier"><code>Vendable</code></a>) + ainsi qu'une quantité. Elle permet de calculer le prix total du produit en fonction de la quantité. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<li> +<section class="constructor-summary" id="constructor-summary"> +<h2>Constructor Summary</h2> +<div class="caption"><span>Constructors</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(Panier.Vendable,int)" class="member-name-link">Produit</a><wbr>(<a href="Vendable.html" title="interface in Panier">Vendable</a> chose, + int quantite)</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur pour initialiser un produit avec une chose vendable et une quantité.</div> +</div> +</div> +</section> +</li> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getPrixProduit()" class="member-name-link">getPrixProduit</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> +<div class="block">Méthode pour obtenir le prix total du produit (quantité * prix unitaire).</div> +</div> +</div> +</div> +</div> +<div class="inherited-list"> +<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3> +<code><a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<li> +<section class="constructor-details" id="constructor-detail"> +<h2>Constructor Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="<init>(Panier.Vendable,int)"> +<h3>Produit</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="element-name">Produit</span><wbr><span class="parameters">(<a href="Vendable.html" title="interface in Panier">Vendable</a> chose, + int quantite)</span> + throws <span class="exceptions">Panier.ValeurInvalideException</span></div> +<div class="block">Constructeur pour initialiser un produit avec une chose vendable et une quantité. + <p> + Si la quantité est inférieure ou égale à 0, une exception <code>ValeurInvalideException</code> est levée. + </p></div> +<dl class="notes"> +<dt>Parameters:</dt> +<dd><code>chose</code> - Le produit à ajouter (doit être une instance d'un objet implémentant <a href="Vendable.html" title="interface in Panier"><code>Vendable</code></a>).</dd> +<dd><code>quantite</code> - La quantité du produit à ajouter (doit être supérieure à 0).</dd> +<dt>Throws:</dt> +<dd><code>Panier.ValeurInvalideException</code> - Si la quantité est inférieure ou égale à 0.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="getPrixProduit()"> +<h3>getPrixProduit</h3> +<div class="member-signature"><span class="modifiers">public</span> <span class="return-type">double</span> <span class="element-name">getPrixProduit</span>()</div> +<div class="block">Méthode pour obtenir le prix total du produit (quantité * prix unitaire). + <p> + Cette méthode calcule le prix total du produit en multipliant la quantité par le prix unitaire + du produit (qui est obtenu via la méthode <a href="Vendable.html#getPrix()"><code>Vendable.getPrix()</code></a>). + </p></div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Le prix total du produit (quantité * prix unitaire).</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/Vendable.html b/doc/Gestion_panier/Panier/Vendable.html new file mode 100644 index 0000000000000000000000000000000000000000..34494d75dabce059b7ca38a66dbc2999279b264b --- /dev/null +++ b/doc/Gestion_panier/Panier/Vendable.html @@ -0,0 +1,161 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Vendable</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier, interface: Vendable"> +<meta name="generator" content="javadoc/ClassWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="nav-bar-cell1-rev">Class</li> +<li><a href="class-use/Vendable.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#class">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Summary:</p> +<ul> +<li>Nested</li> +<li>Field</li> +<li>Constr</li> +<li><a href="#method-summary">Method</a></li> +</ul> +</li> +<li> +<p>Detail:</p> +<ul> +<li>Field</li> +<li>Constr</li> +<li><a href="#method-detail">Method</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method-summary">Method</a></li> +</ul> +<ul class="sub-nav-list"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method-detail">Method</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="sub-title"><span class="module-label-in-type">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<div class="sub-title"><span class="package-label-in-type">Package</span> <a href="package-summary.html">Panier</a></div> +<h1 title="Interface Vendable" class="title">Interface Vendable</h1> +</div> +<section class="class-description" id="class-description"> +<dl class="notes"> +<dt>All Known Implementing Classes:</dt> +<dd><code><a href="Disque.html" title="class in Panier">Disque</a></code>, <code><a href="Nourriture.html" title="class in Panier">Nourriture</a></code></dd> +</dl> +<hr> +<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">Vendable</span></div> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix. + <p> + Les classes qui implémentent cette interface doivent définir la méthode <a href="#getPrix()"><code>getPrix()</code></a>, + qui retourne le prix unitaire de l'objet. + </p></div> +</section> +<section class="summary"> +<ul class="summary-list"> +<!-- ========== METHOD SUMMARY =========== --> +<li> +<section class="method-summary" id="method-summary"> +<h2>Method Summary</h2> +<div id="method-summary-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div> +<div id="method-summary-table.tabpanel" role="tabpanel"> +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>double</code></div> +<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getPrix()" class="member-name-link">getPrix</a>()</code></div> +<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"> +<div class="block">Méthode pour obtenir le prix unitaire de l'objet.</div> +</div> +</div> +</div> +</div> +</section> +</li> +</ul> +</section> +<section class="details"> +<ul class="details-list"> +<!-- ============ METHOD DETAIL ========== --> +<li> +<section class="method-details" id="method-detail"> +<h2>Method Details</h2> +<ul class="member-list"> +<li> +<section class="detail" id="getPrix()"> +<h3>getPrix</h3> +<div class="member-signature"><span class="return-type">double</span> <span class="element-name">getPrix</span>()</div> +<div class="block">Méthode pour obtenir le prix unitaire de l'objet. + <p> + Cette méthode doit être implémentée dans toutes les classes qui + représentent des objets ayant un prix, comme les produits vendus + dans un panier. + </p></div> +<dl class="notes"> +<dt>Returns:</dt> +<dd>Le prix unitaire de l'objet.</dd> +</dl> +</section> +</li> +</ul> +</section> +</li> +</ul> +</section> +<!-- ========= END OF CLASS DATA ========= --> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Disque.html b/doc/Gestion_panier/Panier/class-use/Disque.html new file mode 100644 index 0000000000000000000000000000000000000000..665be38a1bcd5d3329478d2d5d97cfc10b98b3e2 --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Disque.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Disque</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Disque"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Disque.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Disque" class="title">Uses of Class<br>Panier.Disque</h1> +</div> +No usage of Panier.Disque</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Main.html b/doc/Gestion_panier/Panier/class-use/Main.html new file mode 100644 index 0000000000000000000000000000000000000000..e937af6fe1b4b5a2b60a03aa315cc0edfab79747 --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Main.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Main</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Main"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Main.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Main" class="title">Uses of Class<br>Panier.Main</h1> +</div> +No usage of Panier.Main</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Nourriture.html b/doc/Gestion_panier/Panier/class-use/Nourriture.html new file mode 100644 index 0000000000000000000000000000000000000000..1c4dacec2a3308ac72de8f68e5cb6443428e406b --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Nourriture.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Nourriture</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Nourriture"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Nourriture.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Nourriture" class="title">Uses of Class<br>Panier.Nourriture</h1> +</div> +No usage of Panier.Nourriture</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Panier.html b/doc/Gestion_panier/Panier/class-use/Panier.html new file mode 100644 index 0000000000000000000000000000000000000000..8f7cf9e061f9f68421064f5b339d05394f367cad --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Panier.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Panier"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Panier.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Panier" class="title">Uses of Class<br>Panier.Panier</h1> +</div> +No usage of Panier.Panier</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Produit.html b/doc/Gestion_panier/Panier/class-use/Produit.html new file mode 100644 index 0000000000000000000000000000000000000000..bb90d5d35ffdbcec348cf1a7c59446a425bde6ad --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Produit.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Class Panier.Produit</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, class: Produit"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Produit.html" title="class in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Class Panier.Produit" class="title">Uses of Class<br>Panier.Produit</h1> +</div> +No usage of Panier.Produit</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/class-use/Vendable.html b/doc/Gestion_panier/Panier/class-use/Vendable.html new file mode 100644 index 0000000000000000000000000000000000000000..8a98c9ddcf63d051c48f6f3a3de0d3e38071c482 --- /dev/null +++ b/doc/Gestion_panier/Panier/class-use/Vendable.html @@ -0,0 +1,107 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Interface Panier.Vendable</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier, interface: Vendable"> +<meta name="generator" content="javadoc/ClassUseWriter"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="class-use-page"> +<script type="text/javascript">var pathtoroot = "../../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../../module-summary.html">Module</a></li> +<li><a href="../package-summary.html">Package</a></li> +<li><a href="../Vendable.html" title="interface in Panier">Class</a></li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="../package-tree.html">Tree</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Interface Panier.Vendable" class="title">Uses of Interface<br>Panier.Vendable</h1> +</div> +<section class="class-uses"> +<ul class="block-list"> +<li> +<section class="detail" id="Panier"> +<h2>Uses of <a href="../Vendable.html" title="interface in Panier">Vendable</a> in <a href="../package-summary.html">Panier</a></h2> +<div class="caption"><span>Classes in <a href="../package-summary.html">Panier</a> that implement <a href="../Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="summary-table three-column-summary"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Class</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><code>class </code></div> +<div class="col-second even-row-color"><code><a href="../Disque.html" class="type-name-link" title="class in Panier">Disque</a></code></div> +<div class="col-last even-row-color"> +<div class="block">Classe représentant un disque (CD/DVD) vendable.</div> +</div> +<div class="col-first odd-row-color"><code>class </code></div> +<div class="col-second odd-row-color"><code><a href="../Nourriture.html" class="type-name-link" title="class in Panier">Nourriture</a></code></div> +<div class="col-last odd-row-color"> +<div class="block">Classe représentant un produit alimentaire vendable.</div> +</div> +</div> +<div class="caption"><span>Methods in <a href="../package-summary.html">Panier</a> with parameters of type <a href="../Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="summary-table three-column-summary"> +<div class="table-header col-first">Modifier and Type</div> +<div class="table-header col-second">Method</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><code>void</code></div> +<div class="col-second even-row-color"><span class="type-name-label">Panier.</span><code><a href="../Panier.html#add(int,Panier.Vendable)" class="member-name-link">add</a><wbr>(int quantite, + <a href="../Vendable.html" title="interface in Panier">Vendable</a> chose)</code></div> +<div class="col-last even-row-color"> +<div class="block">Ajoute un produit dans le panier.</div> +</div> +</div> +<div class="caption"><span>Constructors in <a href="../package-summary.html">Panier</a> with parameters of type <a href="../Vendable.html" title="interface in Panier">Vendable</a></span></div> +<div class="summary-table three-column-summary"> +<div class="table-header col-first">Modifier</div> +<div class="table-header col-second">Constructor</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><code> </code></div> +<div class="col-second even-row-color"><code><a href="../Produit.html#%3Cinit%3E(Panier.Vendable,int)" class="member-name-link">Produit</a><wbr>(<a href="../Vendable.html" title="interface in Panier">Vendable</a> chose, + int quantite)</code></div> +<div class="col-last even-row-color"> +<div class="block">Constructeur pour initialiser un produit avec une chose vendable et une quantité.</div> +</div> +</div> +</section> +</li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/package-summary.html b/doc/Gestion_panier/Panier/package-summary.html new file mode 100644 index 0000000000000000000000000000000000000000..59e0b45e9d1ad80efec5cb1a7186deef9f3c8106 --- /dev/null +++ b/doc/Gestion_panier/Panier/package-summary.html @@ -0,0 +1,117 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier, package: Panier"> +<meta name="generator" content="javadoc/PackageWriterImpl"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="package-declaration-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li class="nav-bar-cell1-rev">Package</li> +<li>Class</li> +<li><a href="package-use.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#package">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Package:</p> +<ul> +<li>Description</li> +<li>Related Packages</li> +<li><a href="#class-summary">Classes and Interfaces</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Package: </li> +<li>Description | </li> +<li>Related Packages | </li> +<li><a href="#class-summary">Classes and Interfaces</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<div class="sub-title"><span class="module-label-in-package">Module</span> <a href="../module-summary.html">Gestion_panier</a></div> +<h1 title="Package Panier" class="title">Package Panier</h1> +</div> +<hr> +<div class="package-signature">package <span class="element-name">Panier</span></div> +<section class="summary"> +<ul class="summary-list"> +<li> +<div id="class-summary"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab1" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab1', 2)" class="table-tab">Interfaces</button><button id="class-summary-tab2" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab2', 2)" class="table-tab">Classes</button></div> +<div id="class-summary.tabpanel" role="tabpanel"> +<div class="summary-table two-column-summary" aria-labelledby="class-summary-tab0"> +<div class="table-header col-first">Class</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color class-summary class-summary-tab2"><a href="Disque.html" title="class in Panier">Disque</a></div> +<div class="col-last even-row-color class-summary class-summary-tab2"> +<div class="block">Classe représentant un disque (CD/DVD) vendable.</div> +</div> +<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="Main.html" title="class in Panier">Main</a></div> +<div class="col-last odd-row-color class-summary class-summary-tab2"> +<div class="block">Classe principale contenant le programme de test pour la gestion d'un panier d'achats.</div> +</div> +<div class="col-first even-row-color class-summary class-summary-tab2"><a href="Nourriture.html" title="class in Panier">Nourriture</a></div> +<div class="col-last even-row-color class-summary class-summary-tab2"> +<div class="block">Classe représentant un produit alimentaire vendable.</div> +</div> +<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="Panier.html" title="class in Panier">Panier</a></div> +<div class="col-last odd-row-color class-summary class-summary-tab2"> +<div class="block">Classe représentant un panier contenant des produits.</div> +</div> +<div class="col-first even-row-color class-summary class-summary-tab2"><a href="Produit.html" title="class in Panier">Produit</a></div> +<div class="col-last even-row-color class-summary class-summary-tab2"> +<div class="block">Classe représentant un produit dans un panier.</div> +</div> +<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="Vendable.html" title="interface in Panier">Vendable</a></div> +<div class="col-last odd-row-color class-summary class-summary-tab1"> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix.</div> +</div> +</div> +</div> +</div> +</li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/package-tree.html b/doc/Gestion_panier/Panier/package-tree.html new file mode 100644 index 0000000000000000000000000000000000000000..d9b1b323b3a1e56136d857f8510f9deebb835231 --- /dev/null +++ b/doc/Gestion_panier/Panier/package-tree.html @@ -0,0 +1,78 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Panier Class Hierarchy</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="tree: module: Gestion_panier, package: Panier"> +<meta name="generator" content="javadoc/PackageTreeWriter"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="package-tree-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li class="nav-bar-cell1-rev">Tree</li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#tree">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 class="title">Hierarchy For Package Panier</h1> +</div> +<section class="hierarchy"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a> +<ul> +<li class="circle">Panier.<a href="Disque.html" class="type-name-link" title="class in Panier">Disque</a> (implements Panier.<a href="Vendable.html" title="interface in Panier">Vendable</a>)</li> +<li class="circle">Panier.<a href="Main.html" class="type-name-link" title="class in Panier">Main</a></li> +<li class="circle">Panier.<a href="Nourriture.html" class="type-name-link" title="class in Panier">Nourriture</a> (implements Panier.<a href="Vendable.html" title="interface in Panier">Vendable</a>)</li> +<li class="circle">Panier.<a href="Panier.html" class="type-name-link" title="class in Panier">Panier</a></li> +<li class="circle">Panier.<a href="Produit.html" class="type-name-link" title="class in Panier">Produit</a></li> +</ul> +</li> +</ul> +</section> +<section class="hierarchy"> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li class="circle">Panier.<a href="Vendable.html" class="type-name-link" title="interface in Panier">Vendable</a></li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/Panier/package-use.html b/doc/Gestion_panier/Panier/package-use.html new file mode 100644 index 0000000000000000000000000000000000000000..94ed29db6f647e5020ac64fcf1d424500725a481 --- /dev/null +++ b/doc/Gestion_panier/Panier/package-use.html @@ -0,0 +1,75 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Uses of Package Panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="use: module: Gestion_panier, package: Panier"> +<meta name="generator" content="javadoc/PackageUseWriter"> +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../../script.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script> +</head> +<body class="package-use-page"> +<script type="text/javascript">var pathtoroot = "../../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../module-summary.html">Module</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="nav-bar-cell1-rev">Use</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../index-files/index-1.html">Index</a></li> +<li><a href="../../help-doc.html#use">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Uses of Package Panier" class="title">Uses of Package<br>Panier</h1> +</div> +<section class="package-uses"> +<ul class="block-list"> +<li> +<section class="detail" id="Panier"> +<div class="caption"><span>Classes in <a href="package-summary.html">Panier</a> used by <a href="package-summary.html">Panier</a></span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Class</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><a href="class-use/Vendable.html#Panier">Vendable</a></div> +<div class="col-last even-row-color"> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix.</div> +</div> +</div> +</section> +</li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/Gestion_panier/module-summary.html b/doc/Gestion_panier/module-summary.html new file mode 100644 index 0000000000000000000000000000000000000000..818cb2cfb5c6abb5090ee845c439907a6c88f9be --- /dev/null +++ b/doc/Gestion_panier/module-summary.html @@ -0,0 +1,79 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Gestion_panier</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="declaration: module: Gestion_panier"> +<meta name="generator" content="javadoc/ModuleWriterImpl"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="module-declaration-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li class="nav-bar-cell1-rev">Module</li> +<li><a href="Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Panier/package-tree.html">Tree</a></li> +<li><a href="../index-files/index-1.html">Index</a></li> +<li><a href="../help-doc.html#module">Help</a></li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Module:</p> +<ul> +<li>Description</li> +<li>Modules</li> +<li>Packages</li> +<li>Services</li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Module: </li> +<li>Description | </li> +<li>Modules | </li> +<li>Packages | </li> +<li>Services</li> +</ul> +</div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="Module Gestion_panier" class="title">Module Gestion_panier</h1> +</div> +<hr> +<div class="module-signature">module <span class="element-name">Gestion_panier</span></div> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/allclasses-index.html b/doc/allclasses-index.html new file mode 100644 index 0000000000000000000000000000000000000000..2854f6567183264ff527d051857d677c8108c2f6 --- /dev/null +++ b/doc/allclasses-index.html @@ -0,0 +1,91 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>All Classes and Interfaces</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="class index"> +<meta name="generator" content="javadoc/AllClassesIndexWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="all-classes-index-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="Gestion_panier/module-summary.html">Module</a></li> +<li><a href="Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li><a href="index-files/index-1.html">Index</a></li> +<li><a href="help-doc.html#all-classes">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="All Classes and Interfaces" class="title">All Classes and Interfaces</h1> +</div> +<div id="all-classes-table"> +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="all-classes-table-tab1" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab1', 2)" class="table-tab">Interfaces</button><button id="all-classes-table-tab2" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab2', 2)" class="table-tab">Classes</button></div> +<div id="all-classes-table.tabpanel" role="tabpanel"> +<div class="summary-table two-column-summary" aria-labelledby="all-classes-table-tab0"> +<div class="table-header col-first">Class</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Disque.html" title="class in Panier">Disque</a></div> +<div class="col-last even-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe représentant un disque (CD/DVD) vendable.</div> +</div> +<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Main.html" title="class in Panier">Main</a></div> +<div class="col-last odd-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe principale contenant le programme de test pour la gestion d'un panier d'achats.</div> +</div> +<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Nourriture.html" title="class in Panier">Nourriture</a></div> +<div class="col-last even-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe représentant un produit alimentaire vendable.</div> +</div> +<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Panier.html" title="class in Panier">Panier</a></div> +<div class="col-last odd-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe représentant un panier contenant des produits.</div> +</div> +<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="Gestion_panier/Panier/Produit.html" title="class in Panier">Produit</a></div> +<div class="col-last even-row-color all-classes-table all-classes-table-tab2"> +<div class="block">Classe représentant un produit dans un panier.</div> +</div> +<div class="col-first odd-row-color all-classes-table all-classes-table-tab1"><a href="Gestion_panier/Panier/Vendable.html" title="interface in Panier">Vendable</a></div> +<div class="col-last odd-row-color all-classes-table all-classes-table-tab1"> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix.</div> +</div> +</div> +</div> +</div> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/allpackages-index.html b/doc/allpackages-index.html new file mode 100644 index 0000000000000000000000000000000000000000..fcc603c269f0c41acf516134f2dabb695d64cc10 --- /dev/null +++ b/doc/allpackages-index.html @@ -0,0 +1,65 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>All Packages</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="package index"> +<meta name="generator" content="javadoc/AllPackagesIndexWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="all-packages-index-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="Gestion_panier/module-summary.html">Module</a></li> +<li><a href="Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li><a href="index-files/index-1.html">Index</a></li> +<li><a href="help-doc.html#all-packages">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 title="All&nbsp;Packages" class="title">All Packages</h1> +</div> +<div class="caption"><span>Package Summary</span></div> +<div class="summary-table two-column-summary"> +<div class="table-header col-first">Package</div> +<div class="table-header col-last">Description</div> +<div class="col-first even-row-color"><a href="Gestion_panier/Panier/package-summary.html">Panier</a></div> +<div class="col-last even-row-color"> </div> +</div> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/copy.svg b/doc/copy.svg new file mode 100644 index 0000000000000000000000000000000000000000..d435f6c375412aa8568e928949c316e17b154460 --- /dev/null +++ b/doc/copy.svg @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + + + + + + + + + + + + + + + + + + + + +--> + +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 380 460" fill="#505050"> + <path + d="M 346,8 H 108 C 90,8 75,23 75,41 v 316 c 0,18 15,33 33,33 h 238 c 18,0 33,-15 33,-33 V 41 C 379,23 364,8 346,8 Z m -8,344 H 116 c -2,0 -3,-1 -3,-3 V 49 c 0,-2 1,-3 3,-3 h 222 c 2,0 3,1 3,3 v 300 h 10e-4 c 0,2 -1,3 -3,3 z"/> + <path + d="m 290,389 v 26 h 10e-4 c 0,2 -1,3 -3,3 H 49 c -2,0 -3,-1 -3,-3 V 99 c 0,-2 1,-3 3,-3 h 27 v 0 l -5e-4,-38 H 41 C 23,58 8,73 8,91 v 332 c 10e-4,18 15,33 33,33 h 254 c 18,0 33,-15 33,-33 v -34"/> +</svg> diff --git a/doc/element-list b/doc/element-list new file mode 100644 index 0000000000000000000000000000000000000000..76363ff22a4979973fae420a353538c924d66f8e --- /dev/null +++ b/doc/element-list @@ -0,0 +1,2 @@ +module:Gestion_panier +Panier diff --git a/doc/help-doc.html b/doc/help-doc.html new file mode 100644 index 0000000000000000000000000000000000000000..d3e7031e6391d8df27637f520236544ed429f91f --- /dev/null +++ b/doc/help-doc.html @@ -0,0 +1,194 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>API Help</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="help"> +<meta name="generator" content="javadoc/HelpWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="help-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="Gestion_panier/module-summary.html">Module</a></li> +<li><a href="Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li><a href="index-files/index-1.html">Index</a></li> +<li class="nav-bar-cell1-rev">Help</li> +</ul> +<ul class="sub-nav-list-small"> +<li> +<p>Help:</p> +<ul> +<li><a href="#help-navigation">Navigation</a></li> +<li><a href="#help-pages">Pages</a></li> +</ul> +</li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"> +<ul class="sub-nav-list"> +<li>Help: </li> +<li><a href="#help-navigation">Navigation</a> | </li> +<li><a href="#help-pages">Pages</a></li> +</ul> +</div> +<div class="nav-list-search"><a href="search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<h1 class="title">JavaDoc Help</h1> +<ul class="help-toc"> +<li><a href="#help-navigation">Navigation</a>: +<ul class="help-subtoc"> +<li><a href="#search">Search</a></li> +</ul> +</li> +<li><a href="#help-pages">Kinds of Pages</a>: +<ul class="help-subtoc"> +<li><a href="#module">Module</a></li> +<li><a href="#package">Package</a></li> +<li><a href="#class">Class or Interface</a></li> +<li><a href="#doc-file">Other Files</a></li> +<li><a href="#use">Use</a></li> +<li><a href="#tree">Tree (Class Hierarchy)</a></li> +<li><a href="#all-packages">All Packages</a></li> +<li><a href="#all-classes">All Classes and Interfaces</a></li> +<li><a href="#index">Index</a></li> +</ul> +</li> +</ul> +<hr> +<div class="sub-title"> +<h2 id="help-navigation">Navigation</h2> +Starting from the <a href="index.html">Overview</a> page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The <a href="index-files/index-1.html">Index</a> and Search box allow you to navigate to specific declarations and summary pages, including: <a href="allpackages-index.html">All Packages</a>, <a href="allclasses-index.html">All Classes and Interfaces</a> +<section class="help-section" id="search"> +<h3>Search</h3> +<p>You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API. These items can be searched using part or all of the name, optionally using "camelCase" abbreviations, or multiple search terms separated by whitespace. Some examples:</p> +<ul class="help-section-list"> +<li><code>"j.l.obj"</code> matches "java.lang.Object"</li> +<li><code>"InpStr"</code> matches "java.io.InputStream"</li> +<li><code>"math exact long"</code> matches "java.lang.Math.absExact(long)"</li> +</ul> +<p>Refer to the <a href="https://docs.oracle.com/en/java/javase/20/docs/specs/javadoc/javadoc-search-spec.html">Javadoc Search Specification</a> for a full description of search features.</p> +</section> +</div> +<hr> +<div class="sub-title"> +<h2 id="help-pages">Kinds of Pages</h2> +The following sections describe the different kinds of pages in this collection. +<section class="help-section" id="module"> +<h3>Module</h3> +<p>Each module has a page that contains a list of its packages, dependencies on other modules, and services, with a summary for each. These pages may contain the following categories:</p> +<ul class="help-section-list"> +<li>Packages</li> +<li>Modules</li> +<li>Services</li> +</ul> +</section> +<section class="help-section" id="package"> +<h3>Package</h3> +<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:</p> +<ul class="help-section-list"> +<li>Interfaces</li> +<li>Classes</li> +<li>Enum Classes</li> +<li>Exception Classes</li> +<li>Annotation Interfaces</li> +</ul> +</section> +<section class="help-section" id="class"> +<h3>Class or Interface</h3> +<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.</p> +<ul class="help-section-list"> +<li>Class Inheritance Diagram</li> +<li>Direct Subclasses</li> +<li>All Known Subinterfaces</li> +<li>All Known Implementing Classes</li> +<li>Class or Interface Declaration</li> +<li>Class or Interface Description</li> +</ul> +<br> +<ul class="help-section-list"> +<li>Nested Class Summary</li> +<li>Enum Constant Summary</li> +<li>Field Summary</li> +<li>Property Summary</li> +<li>Constructor Summary</li> +<li>Method Summary</li> +<li>Required Element Summary</li> +<li>Optional Element Summary</li> +</ul> +<br> +<ul class="help-section-list"> +<li>Enum Constant Details</li> +<li>Field Details</li> +<li>Property Details</li> +<li>Constructor Details</li> +<li>Method Details</li> +<li>Element Details</li> +</ul> +<p><span class="help-note">Note:</span> Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.</p> +<p>The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p> +</section> +<section class="help-section" id="doc-file"> +<h3>Other Files</h3> +<p>Packages and modules may contain pages with additional information related to the declarations nearby.</p> +</section> +<section class="help-section" id="use"> +<h3>Use</h3> +<p>Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.</p> +</section> +<section class="help-section" id="tree"> +<h3>Tree (Class Hierarchy)</h3> +<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p> +<ul class="help-section-list"> +<li>When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.</li> +<li>When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.</li> +</ul> +</section> +<section class="help-section" id="all-packages"> +<h3>All Packages</h3> +<p>The <a href="allpackages-index.html">All Packages</a> page contains an alphabetic index of all packages contained in the documentation.</p> +</section> +<section class="help-section" id="all-classes"> +<h3>All Classes and Interfaces</h3> +<p>The <a href="allclasses-index.html">All Classes and Interfaces</a> page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.</p> +</section> +<section class="help-section" id="index"> +<h3>Index</h3> +<p>The <a href="index-files/index-1.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as <a href="allpackages-index.html">All Packages</a>, <a href="allclasses-index.html">All Classes and Interfaces</a>.</p> +</section> +</div> +<hr> +<span class="help-footnote">This help file applies to API documentation generated by the standard doclet.</span></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-1.html b/doc/index-files/index-1.html new file mode 100644 index 0000000000000000000000000000000000000000..2e50eba1270890705b0b7be968d71eb40a5b1b28 --- /dev/null +++ b/doc/index-files/index-1.html @@ -0,0 +1,66 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>A-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: A"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:A">A</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Panier.html#add(int,Panier.Vendable)" class="member-name-link">add(int, Vendable)</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Panier.html" title="class in Panier">Panier</a></dt> +<dd> +<div class="block">Ajoute un produit dans le panier.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-2.html b/doc/index-files/index-2.html new file mode 100644 index 0000000000000000000000000000000000000000..771ecb659294da9ad5b93a7046eaebfe0dd7a7d7 --- /dev/null +++ b/doc/index-files/index-2.html @@ -0,0 +1,70 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>D-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: D"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:D">D</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Disque.html" class="type-name-link" title="class in Panier">Disque</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe représentant un disque (CD/DVD) vendable.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Disque.html#%3Cinit%3E(double)" class="member-name-link">Disque(double)</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Disque.html" title="class in Panier">Disque</a></dt> +<dd> +<div class="block">Constructeur pour initialiser le prix du disque.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-3.html b/doc/index-files/index-3.html new file mode 100644 index 0000000000000000000000000000000000000000..8053e319b8afde68ec94dd41c480c6b1e4f83bd7 --- /dev/null +++ b/doc/index-files/index-3.html @@ -0,0 +1,84 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>G-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: G"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:G">G</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/module-summary.html">Gestion_panier</a> - module Gestion_panier</dt> +<dd> </dd> +<dt><a href="../Gestion_panier/Panier/Disque.html#getPrix()" class="member-name-link">getPrix()</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Disque.html" title="class in Panier">Disque</a></dt> +<dd> +<div class="block">Retourne le prix du disque.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Nourriture.html#getPrix()" class="member-name-link">getPrix()</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Nourriture.html" title="class in Panier">Nourriture</a></dt> +<dd> +<div class="block">Calcule et retourne le prix total de la portion de nourriture.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Vendable.html#getPrix()" class="member-name-link">getPrix()</a> - Method in interface Panier.<a href="../Gestion_panier/Panier/Vendable.html" title="interface in Panier">Vendable</a></dt> +<dd> +<div class="block">Méthode pour obtenir le prix unitaire de l'objet.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Produit.html#getPrixProduit()" class="member-name-link">getPrixProduit()</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Produit.html" title="class in Panier">Produit</a></dt> +<dd> +<div class="block">Méthode pour obtenir le prix total du produit (quantité * prix unitaire).</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Panier.html#getTotalPrix()" class="member-name-link">getTotalPrix()</a> - Method in class Panier.<a href="../Gestion_panier/Panier/Panier.html" title="class in Panier">Panier</a></dt> +<dd> +<div class="block">Calcule le prix total du panier.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-4.html b/doc/index-files/index-4.html new file mode 100644 index 0000000000000000000000000000000000000000..1cf9d5041c7e475850523fe8928be9f4d8f3f9bb --- /dev/null +++ b/doc/index-files/index-4.html @@ -0,0 +1,72 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>M-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: M"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:M">M</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Main.html#main(java.lang.String%5B%5D)" class="member-name-link">main(String[])</a> - Static method in class Panier.<a href="../Gestion_panier/Panier/Main.html" title="class in Panier">Main</a></dt> +<dd> +<div class="block">Méthode principale qui exécute différents scénarios de test pour la gestion des paniers.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Main.html" class="type-name-link" title="class in Panier">Main</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe principale contenant le programme de test pour la gestion d'un panier d'achats.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Main.html#%3Cinit%3E()" class="member-name-link">Main()</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Main.html" title="class in Panier">Main</a></dt> +<dd> </dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-5.html b/doc/index-files/index-5.html new file mode 100644 index 0000000000000000000000000000000000000000..cfdd526c1e0f99daaceb75d122963b56613a7edb --- /dev/null +++ b/doc/index-files/index-5.html @@ -0,0 +1,70 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>N-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: N"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:N">N</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Nourriture.html" class="type-name-link" title="class in Panier">Nourriture</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe représentant un produit alimentaire vendable.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Nourriture.html#%3Cinit%3E(double,double)" class="member-name-link">Nourriture(double, double)</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Nourriture.html" title="class in Panier">Nourriture</a></dt> +<dd> +<div class="block">Constructeur permettant d'initialiser une portion de nourriture avec son prix et son poids.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-6.html b/doc/index-files/index-6.html new file mode 100644 index 0000000000000000000000000000000000000000..e657e7fc3bb7b82565e3ff680747bbef1b364a4b --- /dev/null +++ b/doc/index-files/index-6.html @@ -0,0 +1,78 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>P-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: P"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:P">P</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/package-summary.html">Panier</a> - package Panier</dt> +<dd> </dd> +<dt><a href="../Gestion_panier/Panier/Panier.html" class="type-name-link" title="class in Panier">Panier</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe représentant un panier contenant des produits.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Panier.html#%3Cinit%3E()" class="member-name-link">Panier()</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Panier.html" title="class in Panier">Panier</a></dt> +<dd> </dd> +<dt><a href="../Gestion_panier/Panier/Produit.html" class="type-name-link" title="class in Panier">Produit</a> - Class in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Classe représentant un produit dans un panier.</div> +</dd> +<dt><a href="../Gestion_panier/Panier/Produit.html#%3Cinit%3E(Panier.Vendable,int)" class="member-name-link">Produit(Vendable, int)</a> - Constructor for class Panier.<a href="../Gestion_panier/Panier/Produit.html" title="class in Panier">Produit</a></dt> +<dd> +<div class="block">Constructeur pour initialiser un produit avec une chose vendable et une quantité.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index-files/index-7.html b/doc/index-files/index-7.html new file mode 100644 index 0000000000000000000000000000000000000000..852b353d5f6720a09e657392d37a8253f28bd0fb --- /dev/null +++ b/doc/index-files/index-7.html @@ -0,0 +1,66 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>V-Index</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index: V"> +<meta name="generator" content="javadoc/IndexWriter"> +<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="../script.js"></script> +<script type="text/javascript" src="../script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="../script-dir/jquery-ui.min.js"></script> +</head> +<body class="index-page"> +<script type="text/javascript">var pathtoroot = "../"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="../Gestion_panier/module-summary.html">Module</a></li> +<li><a href="../Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="../Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li class="nav-bar-cell1-rev">Index</li> +<li><a href="../help-doc.html#index">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="../search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1>Index</h1> +</div> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a> +<h2 class="title" id="I:V">V</h2> +<dl class="index"> +<dt><a href="../Gestion_panier/Panier/Vendable.html" class="type-name-link" title="interface in Panier">Vendable</a> - Interface in <a href="../Gestion_panier/Panier/package-summary.html">Panier</a></dt> +<dd> +<div class="block">Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix.</div> +</dd> +</dl> +<a href="index-1.html">A</a> <a href="index-2.html">D</a> <a href="index-3.html">G</a> <a href="index-4.html">M</a> <a href="index-5.html">N</a> <a href="index-6.html">P</a> <a href="index-7.html">V</a> <br><a href="../allclasses-index.html">All Classes and Interfaces</a><span class="vertical-separator">|</span><a href="../allpackages-index.html">All Packages</a></main> +</div> +</div> +</body> +</html> diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000000000000000000000000000000000000..90baf7ecde0e26385a7d914b47d7445f65d458c8 --- /dev/null +++ b/doc/index.html @@ -0,0 +1,26 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Generated Documentation (Untitled)</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="index redirect"> +<meta name="generator" content="javadoc/IndexRedirectWriter"> +<link rel="canonical" href="Gestion_panier/module-summary.html"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<script type="text/javascript">window.location.replace('Gestion_panier/module-summary.html')</script> +<noscript> +<meta http-equiv="Refresh" content="0;Gestion_panier/module-summary.html"> +</noscript> +</head> +<body class="index-redirect-page"> +<main role="main"> +<noscript> +<p>JavaScript is disabled on your browser.</p> +</noscript> +<p><a href="Gestion_panier/module-summary.html">Gestion_panier/module-summary.html</a></p> +</main> +</body> +</html> diff --git a/doc/legal/COPYRIGHT b/doc/legal/COPYRIGHT new file mode 100644 index 0000000000000000000000000000000000000000..ca74fffd91e5bc8a11c659648e7f394c5b2a1714 --- /dev/null +++ b/doc/legal/COPYRIGHT @@ -0,0 +1 @@ +Please see ..\java.base\COPYRIGHT diff --git a/doc/legal/LICENSE b/doc/legal/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..4ad9fe4011573af48ce558ad68ebef81478d8dfd --- /dev/null +++ b/doc/legal/LICENSE @@ -0,0 +1 @@ +Please see ..\java.base\LICENSE diff --git a/doc/legal/jquery.md b/doc/legal/jquery.md new file mode 100644 index 0000000000000000000000000000000000000000..d468b3183a70056cfd6219cb996c4df5f9136899 --- /dev/null +++ b/doc/legal/jquery.md @@ -0,0 +1,72 @@ +## jQuery v3.6.1 + +### jQuery License +``` +jQuery v 3.6.1 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +****************************************** + +The jQuery JavaScript Library v3.6.1 also includes Sizzle.js + +Sizzle.js includes the following license: + +Copyright JS Foundation and other contributors, https://js.foundation/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/sizzle + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +********************* + +``` diff --git a/doc/legal/jqueryUI.md b/doc/legal/jqueryUI.md new file mode 100644 index 0000000000000000000000000000000000000000..9f4c9e951f5e55a6b93474a509467595ea5f96c5 --- /dev/null +++ b/doc/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.13.1 + +### jQuery UI License +``` +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/doc/member-search-index.js b/doc/member-search-index.js new file mode 100644 index 0000000000000000000000000000000000000000..b35fc82d5099dbf0c901cd682aa42b9e6e7d91d0 --- /dev/null +++ b/doc/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"Panier","c":"Panier","l":"add(int, Vendable)","u":"add(int,Panier.Vendable)"},{"p":"Panier","c":"Disque","l":"Disque(double)","u":"%3Cinit%3E(double)"},{"p":"Panier","c":"Disque","l":"getPrix()"},{"p":"Panier","c":"Nourriture","l":"getPrix()"},{"p":"Panier","c":"Vendable","l":"getPrix()"},{"p":"Panier","c":"Produit","l":"getPrixProduit()"},{"p":"Panier","c":"Panier","l":"getTotalPrix()"},{"p":"Panier","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"Panier","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"Panier","c":"Nourriture","l":"Nourriture(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"Panier","c":"Panier","l":"Panier()","u":"%3Cinit%3E()"},{"p":"Panier","c":"Produit","l":"Produit(Vendable, int)","u":"%3Cinit%3E(Panier.Vendable,int)"}];updateSearchResults(); \ No newline at end of file diff --git a/doc/module-search-index.js b/doc/module-search-index.js new file mode 100644 index 0000000000000000000000000000000000000000..a0ad1a3c8022c631f6f962e04daaef4c6ff9b8b0 --- /dev/null +++ b/doc/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [{"l":"Gestion_panier"}];updateSearchResults(); \ No newline at end of file diff --git a/doc/overview-tree.html b/doc/overview-tree.html new file mode 100644 index 0000000000000000000000000000000000000000..eddab569121bc22358871a32f6a60d0c9f44337d --- /dev/null +++ b/doc/overview-tree.html @@ -0,0 +1,82 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Class Hierarchy</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="class tree"> +<meta name="generator" content="javadoc/TreeWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="tree-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li>Module</li> +<li>Package</li> +<li>Class</li> +<li>Use</li> +<li class="nav-bar-cell1-rev">Tree</li> +<li><a href="index-files/index-1.html">Index</a></li> +<li><a href="help-doc.html#tree">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +<div class="nav-list-search"><a href="search.html">SEARCH</a> +<input type="text" id="search-input" disabled placeholder="Search"> +<input type="reset" id="reset-button" disabled value="reset"> +</div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<div class="header"> +<h1 class="title">Hierarchy For All Packages</h1> +</div> +<span class="package-hierarchy-label">Package Hierarchies:</span> +<ul class="horizontal contents-list"> +<li><a href="Gestion_panier/Panier/package-tree.html">Panier</a></li> +</ul> +<section class="hierarchy"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a> +<ul> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Disque.html" class="type-name-link" title="class in Panier">Disque</a> (implements Panier.<a href="Gestion_panier/Panier/Vendable.html" title="interface in Panier">Vendable</a>)</li> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Main.html" class="type-name-link" title="class in Panier">Main</a></li> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Nourriture.html" class="type-name-link" title="class in Panier">Nourriture</a> (implements Panier.<a href="Gestion_panier/Panier/Vendable.html" title="interface in Panier">Vendable</a>)</li> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Panier.html" class="type-name-link" title="class in Panier">Panier</a></li> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Produit.html" class="type-name-link" title="class in Panier">Produit</a></li> +</ul> +</li> +</ul> +</section> +<section class="hierarchy"> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li class="circle">Panier.<a href="Gestion_panier/Panier/Vendable.html" class="type-name-link" title="interface in Panier">Vendable</a></li> +</ul> +</section> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/package-search-index.js b/doc/package-search-index.js new file mode 100644 index 0000000000000000000000000000000000000000..1d7b216bc352be561dcd2e908542767fa6e7f835 --- /dev/null +++ b/doc/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"m":"Gestion_panier","l":"Panier"}];updateSearchResults(); \ No newline at end of file diff --git a/doc/resources/glass.png b/doc/resources/glass.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f591f467a1c0c949bbc510156a0c1afb860a6e Binary files /dev/null and b/doc/resources/glass.png differ diff --git a/doc/resources/x.png b/doc/resources/x.png new file mode 100644 index 0000000000000000000000000000000000000000..30548a756e151be4e927e8d28c508cc5b3514bf3 Binary files /dev/null and b/doc/resources/x.png differ diff --git a/doc/script-dir/jquery-3.6.1.min.js b/doc/script-dir/jquery-3.6.1.min.js new file mode 100644 index 0000000000000000000000000000000000000000..2c69bc908b10d854c2c3fe6e3268dcffe20e1b5a --- /dev/null +++ b/doc/script-dir/jquery-3.6.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=y.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:v}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,y,s,c,v,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace($," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,y){var v="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===y?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=v!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(v){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=y)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ye(function(){return[0]}),last:ye(function(e,t){return[t-1]}),eq:ye(function(e,t,n){return[n<0?n+t:n]}),even:ye(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ye(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ye(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ye(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,y,v,e){return y&&!y[S]&&(y=Ce(y)),v&&!v[S]&&(v=Ce(v,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?v||(e?d:l||y)?[]:t:f;if(g&&g(f,p,n,r),y){i=Te(p,u),y(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(v||d){if(v){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);v(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=v?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),v?v(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,y,v,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(y=o,m=0<(v=i).length,x=0<y.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=y[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=v[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+v.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ve(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function $(){E.removeEventListener("DOMContentLoaded",$),C.removeEventListener("load",$),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",$),C.addEventListener("load",$));var B=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)B(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):B(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",v.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,v.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=y.events)||(u=y.events=Object.create(null)),(a=y.handle)||(a=y.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.hasData(e)&&Y.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||S.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(t,e){S.event.special[t]={setup:function(){return Se(this,t,Ce),!1},trigger:function(){return Se(this,t),!0},_default:function(e){return Y.get(e.target,t)},delegateType:e}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!v.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ye(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ye(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ye(r)),r.parentNode&&(n&&ie(r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ye(c),r=0,i=(o=ye(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ye(e),a=a||ye(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ye(c,"script")).length&&ve(a,!f&&ye(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return B(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return B(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ye(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=/^--/,Me=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Ie=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},We=new RegExp(ne.join("|"),"i"),Fe="[\\x20\\t\\r\\n\\f]",$e=new RegExp("^"+Fe+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Fe+"+$","g");function Be(e,t,n){var r,i,o,a,s=Re.test(t),u=e.style;return(n=n||Me(e))&&(a=n.getPropertyValue(t)||n[t],s&&(a=a.replace($e,"$1")),""!==a||ie(e)||(a=S.style(e,t)),!v.pixelBoxStyles()&&Pe.test(a)&&We.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(v,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var ze=["Webkit","Moz","ms"],Ue=E.createElement("div").style,Xe={};function Ve(e){var t=S.cssProps[e]||Xe[e];return t||(e in Ue?e:Xe[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=ze.length;while(n--)if((e=ze[n]+t)in Ue)return e}(e)||e)}var Ge=/^(none|table(?!-c[ea]).+)/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Me(e),i=(!v.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Re.test(t),l=e.style;if(u||(t=Ve(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Re.test(t)||(t=Ve(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ge.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):Ie(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Me(e),o=!v.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=_e(v.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-Ie(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return B(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Me(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Ve(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(y?"hidden"in y&&(g=y.hidden):y=Y.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",v.checkOn=""!==rt.value,v.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",v.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return B(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function yt(e){return(e.match(P)||[]).join(" ")}function vt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return B(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),v.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){S(this).addClass(t.call(this,e,vt(this)))}):(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=yt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){S(this).removeClass(t.call(this,e,vt(this)))}):arguments.length?(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=yt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return m(t)?this.each(function(e){S(this).toggleClass(t.call(this,e,vt(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=mt(t),this.each(function(){if(s)for(o=S(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=vt(this))&&Y.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+yt(vt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:yt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},v.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),v.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=y.call(e,"type")?e.type:e,h=y.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),v.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function jt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):jt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)jt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var Dt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function $t(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Bt(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Bt(Bt(e,S.ajaxSettings),t):Bt(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,y=S.ajaxSetup({},t),v=y.context||y,m=y.context&&(v.nodeType||v.jquery)?S(v):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=y.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(y.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),y.url=((e||y.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),y.type=t.method||t.type||y.method||y.type,y.dataTypes=(y.dataType||"*").toLowerCase().match(P)||[""],null==y.crossDomain){r=E.createElement("a");try{r.href=y.url,r.href=r.href,y.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){y.crossDomain=!0}}if(y.data&&y.processData&&"string"!=typeof y.data&&(y.data=S.param(y.data,y.traditional)),$t(Rt,y,t,T),h)return T;for(i in(g=S.event&&y.global)&&0==S.active++&&S.event.trigger("ajaxStart"),y.type=y.type.toUpperCase(),y.hasContent=!Ot.test(y.type),f=y.url.replace(qt,""),y.hasContent?y.data&&y.processData&&0===(y.contentType||"").indexOf("application/x-www-form-urlencoded")&&(y.data=y.data.replace(Dt,"+")):(o=y.url.slice(f.length),y.data&&(y.processData||"string"==typeof y.data)&&(f+=(Et.test(f)?"&":"?")+y.data,delete y.data),!1===y.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),y.url=f+o),y.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(y.data&&y.hasContent&&!1!==y.contentType||t.contentType)&&T.setRequestHeader("Content-Type",y.contentType),T.setRequestHeader("Accept",y.dataTypes[0]&&y.accepts[y.dataTypes[0]]?y.accepts[y.dataTypes[0]]+("*"!==y.dataTypes[0]?", "+It+"; q=0.01":""):y.accepts["*"]),y.headers)T.setRequestHeader(i,y.headers[i]);if(y.beforeSend&&(!1===y.beforeSend.call(v,T,y)||h))return T.abort();if(u="abort",b.add(y.complete),T.done(y.success),T.fail(y.error),c=$t(Mt,y,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,y]),h)return T;y.async&&0<y.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},y.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(y,T,n)),!i&&-1<S.inArray("script",y.dataTypes)&&S.inArray("json",y.dataTypes)<0&&(y.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(y,s,T,i),i?(y.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===y.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(v,[o,l,T]):x.rejectWith(v,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,y,i?o:a]),b.fireWith(v,[T,l]),g&&(m.trigger("ajaxComplete",[T,y]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();v.cors=!!zt&&"withCredentials"in zt,v.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(v.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=yt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S}); diff --git a/doc/script-dir/jquery-ui.min.css b/doc/script-dir/jquery-ui.min.css new file mode 100644 index 0000000000000000000000000000000000000000..d64539cb3c9e90553d9251ae2649c4d9d1f5d82e --- /dev/null +++ b/doc/script-dir/jquery-ui.min.css @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.13.1 - 2022-05-12 +* http://jqueryui.com +* Includes: core.css, autocomplete.css, menu.css +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;-ms-filter:"alpha(opacity=0)"}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} \ No newline at end of file diff --git a/doc/script-dir/jquery-ui.min.js b/doc/script-dir/jquery-ui.min.js new file mode 100644 index 0000000000000000000000000000000000000000..55c283294e508bb35578abeaddd6efc38f1e47d2 --- /dev/null +++ b/doc/script-dir/jquery-ui.min.js @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.13.1 - 2022-05-12 +* http://jqueryui.com +* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/autocomplete.js, widgets/menu.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(x){"use strict";x.ui=x.ui||{};x.ui.version="1.13.1";var n,i=0,l=Array.prototype.hasOwnProperty,a=Array.prototype.slice;x.cleanData=(n=x.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=x._data(i,"events"))&&e.remove&&x(i).triggerHandler("remove");n(t)}),x.widget=function(t,i,e){var s,n,o,l={},a=t.split(".")[0],r=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=x.Widget),Array.isArray(e)&&(e=x.extend.apply(null,[{}].concat(e))),x.expr.pseudos[r.toLowerCase()]=function(t){return!!x.data(t,r)},x[a]=x[a]||{},s=x[a][t],n=x[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},x.extend(n,s,{version:e.version,_proto:x.extend({},e),_childConstructors:[]}),(o=new i).options=x.widget.extend({},o.options),x.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}l[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=x.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},l,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(x.each(s._childConstructors,function(t,e){var i=e.prototype;x.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),x.widget.bridge(t,n),n},x.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n<o;n++)for(e in s[n])i=s[n][e],l.call(s[n],e)&&void 0!==i&&(x.isPlainObject(i)?t[e]=x.isPlainObject(t[e])?x.widget.extend({},t[e],i):x.widget.extend({},i):t[e]=i);return t},x.widget.bridge=function(o,e){var l=e.prototype.widgetFullName||o;x.fn[o]=function(i){var t="string"==typeof i,s=a.call(arguments,1),n=this;return t?this.length||"instance"!==i?this.each(function(){var t,e=x.data(this,l);return"instance"===i?(n=e,!1):e?"function"!=typeof e[i]||"_"===i.charAt(0)?x.error("no such method '"+i+"' for "+o+" widget instance"):(t=e[i].apply(e,s))!==e&&void 0!==t?(n=t&&t.jquery?n.pushStack(t.get()):t,!1):void 0:x.error("cannot call methods on "+o+" prior to initialization; attempted to call method '"+i+"'")}):n=void 0:(s.length&&(i=x.widget.extend.apply(null,[i].concat(s))),this.each(function(){var t=x.data(this,l);t?(t.option(i||{}),t._init&&t._init()):x.data(this,l,new e(i,this))})),n}},x.Widget=function(){},x.Widget._childConstructors=[],x.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n<i.length-1;n++)s[i[n]]=s[i[n]]||{},s=s[i[n]];if(t=i.pop(),1===arguments.length)return void 0===s[t]?null:s[t];s[t]=e}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=e}return this._setOptions(o),this},_setOptions:function(t){for(var e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(t){var e,i,s;for(e in t)s=this.classesElementLookup[e],t[e]!==this.options.classes[e]&&s&&s.length&&(i=x(s.get()),this._removeClass(s,e),i.addClass(this._classes({element:i,keys:e,classes:t,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(n){var o=[],l=this;function t(t,e){for(var i,s=0;s<t.length;s++)i=l.classesElementLookup[t[s]]||x(),i=n.add?(function(){var i=[];n.element.each(function(t,e){x.map(l.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),l._on(x(i),{remove:"_untrackClassesElement"})}(),x(x.uniqueSort(i.get().concat(n.element.get())))):x(i.not(n.element).get()),l.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=x.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\S+/g)||[],!0),n.extra&&t(n.extra.match(/\S+/g)||[]),o.join(" ")},_untrackClassesElement:function(i){var s=this;x.each(s.classesElementLookup,function(t,e){-1!==x.inArray(i.target,e)&&(s.classesElementLookup[t]=x(e.not(i.target).get()))}),this._off(x(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n="string"==typeof t||null===t,i={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s="boolean"==typeof s?s:i};return i.element.toggleClass(this._classes(i),s),this},_on:function(n,o,t){var l,a=this;"boolean"!=typeof n&&(t=o,o=n,n=!1),t?(o=l=x(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,l=this.widget()),x.each(t,function(t,e){function i(){if(n||!0!==a.options.disabled&&!x(this).hasClass("ui-state-disabled"))return("string"==typeof e?a[e]:e).apply(a,arguments)}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||x.guid++);var s=t.match(/^([\w:-]*)\s*(.*)$/),t=s[1]+a.eventNamespace,s=s[2];s?l.on(t,s,i):o.on(t,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(e),this.bindings=x(this.bindings.not(t).get()),this.focusable=x(this.focusable.not(t).get()),this.hoverable=x(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(x(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(x(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=x.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!("function"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},x.each({show:"fadeIn",hide:"fadeOut"},function(o,l){x.Widget.prototype["_"+o]=function(e,t,i){var s,n=(t="string"==typeof t?{effect:t}:t)?!0!==t&&"number"!=typeof t&&t.effect||l:o;"number"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!x.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&x.effects&&x.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){x(this)[o](),i&&i.call(e[0]),t()})}});var s,C,E,o,r,u,h,c,k;x.widget;function T(t,e,i){return[parseFloat(t[0])*(c.test(t[0])?e/100:1),parseFloat(t[1])*(c.test(t[1])?i/100:1)]}function A(t,e){return parseInt(x.css(t,e),10)||0}function W(t){return null!=t&&t===t.window}C=Math.max,E=Math.abs,o=/left|center|right/,r=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,h=/^\w+/,c=/%$/,k=x.fn.position,x.position={scrollbarWidth:function(){if(void 0!==s)return s;var t,e=x("<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>"),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.width<t.element[0].scrollWidth;return{width:"scroll"===i||"auto"===i&&t.height<t.element[0].scrollHeight?x.position.scrollbarWidth():0,height:e?x.position.scrollbarWidth():0}},getWithinInfo:function(t){var e=x(t||window),i=W(e[0]),s=!!e[0]&&9===e[0].nodeType;return{element:e,isWindow:i,isDocument:s,offset:!i&&!s?x(t).offset():{left:0,top:0},scrollLeft:e.scrollLeft(),scrollTop:e.scrollTop(),width:e.outerWidth(),height:e.outerHeight()}}},x.fn.position=function(c){if(!c||!c.of)return k.apply(this,arguments);var d,f,m,p,v,t,g="string"==typeof(c=x.extend({},c)).of?x(document).find(c.of):x(c.of),_=x.position.getWithinInfo(c.within),y=x.position.getScrollInfo(_),b=(c.collision||"flip").split(" "),w={},e=9===(t=(e=g)[0]).nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:W(t)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:t.preventDefault?{width:0,height:0,offset:{top:t.pageY,left:t.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()};return g[0].preventDefault&&(c.at="left top"),f=e.width,m=e.height,v=x.extend({},p=e.offset),x.each(["my","at"],function(){var t,e,i=(c[this]||"").split(" ");(i=1===i.length?o.test(i[0])?i.concat(["center"]):r.test(i[0])?["center"].concat(i):["center","center"]:i)[0]=o.test(i[0])?i[0]:"center",i[1]=r.test(i[1])?i[1]:"center",t=u.exec(i[0]),e=u.exec(i[1]),w[this]=[t?t[0]:0,e?e[0]:0],c[this]=[h.exec(i[0])[0],h.exec(i[1])[0]]}),1===b.length&&(b[1]=b[0]),"right"===c.at[0]?v.left+=f:"center"===c.at[0]&&(v.left+=f/2),"bottom"===c.at[1]?v.top+=m:"center"===c.at[1]&&(v.top+=m/2),d=T(w.at,f,m),v.left+=d[0],v.top+=d[1],this.each(function(){var i,t,l=x(this),a=l.outerWidth(),r=l.outerHeight(),e=A(this,"marginLeft"),s=A(this,"marginTop"),n=a+e+A(this,"marginRight")+y.width,o=r+s+A(this,"marginBottom")+y.height,u=x.extend({},v),h=T(w.my,l.outerWidth(),l.outerHeight());"right"===c.my[0]?u.left-=a:"center"===c.my[0]&&(u.left-=a/2),"bottom"===c.my[1]?u.top-=r:"center"===c.my[1]&&(u.top-=r/2),u.left+=h[0],u.top+=h[1],i={marginLeft:e,marginTop:s},x.each(["left","top"],function(t,e){x.ui.position[b[t]]&&x.ui.position[b[t]][e](u,{targetWidth:f,targetHeight:m,elemWidth:a,elemHeight:r,collisionPosition:i,collisionWidth:n,collisionHeight:o,offset:[d[0]+h[0],d[1]+h[1]],my:c.my,at:c.at,within:_,elem:l})}),c.using&&(t=function(t){var e=p.left-u.left,i=e+f-a,s=p.top-u.top,n=s+m-r,o={target:{element:g,left:p.left,top:p.top,width:f,height:m},element:{element:l,left:u.left,top:u.top,width:a,height:r},horizontal:i<0?"left":0<e?"right":"center",vertical:n<0?"top":0<s?"bottom":"middle"};f<a&&E(e+i)<f&&(o.horizontal="center"),m<r&&E(s+n)<m&&(o.vertical="middle"),C(E(e),E(i))>C(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0<l&&a<=0?(i=t.left+l+e.collisionWidth-n-s,t.left+=l-i):t.left=!(0<a&&l<=0)&&a<l?s+n-e.collisionWidth:s:0<l?t.left+=l:0<a?t.left-=a:t.left=C(t.left-o,t.left)},top:function(t,e){var i=e.within,s=i.isWindow?i.scrollTop:i.offset.top,n=e.within.height,o=t.top-e.collisionPosition.marginTop,l=s-o,a=o+e.collisionHeight-n-s;e.collisionHeight>n?0<l&&a<=0?(i=t.top+l+e.collisionHeight-n-s,t.top+=l-i):t.top=!(0<a&&l<=0)&&a<l?s+n-e.collisionHeight:s:0<l?t.top+=l:0<a?t.top-=a:t.top=C(t.top-o,t.top)}},flip:{left:function(t,e){var i=e.within,s=i.offset.left+i.scrollLeft,n=i.width,o=i.isWindow?i.scrollLeft:i.offset.left,l=t.left-e.collisionPosition.marginLeft,a=l-o,r=l+e.collisionWidth-n-o,u="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,i="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,l=-2*e.offset[0];a<0?((s=t.left+u+i+l+e.collisionWidth-n-s)<0||s<E(a))&&(t.left+=u+i+l):0<r&&(0<(o=t.left-e.collisionPosition.marginLeft+u+i+l-o)||E(o)<r)&&(t.left+=u+i+l)},top:function(t,e){var i=e.within,s=i.offset.top+i.scrollTop,n=i.height,o=i.isWindow?i.scrollTop:i.offset.top,l=t.top-e.collisionPosition.marginTop,a=l-o,r=l+e.collisionHeight-n-o,u="top"===e.my[1]?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,i="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,l=-2*e.offset[1];a<0?((s=t.top+u+i+l+e.collisionHeight-n-s)<0||s<E(a))&&(t.top+=u+i+l):0<r&&(0<(o=t.top-e.collisionPosition.marginTop+u+i+l-o)||E(o)<r)&&(t.top+=u+i+l)}},flipfit:{left:function(){x.ui.position.flip.left.apply(this,arguments),x.ui.position.fit.left.apply(this,arguments)},top:function(){x.ui.position.flip.top.apply(this,arguments),x.ui.position.fit.top.apply(this,arguments)}}};var t;x.ui.position,x.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},x.fn.extend({uniqueId:(t=0,function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&x(this).removeAttr("id")})}}),x.ui.safeActiveElement=function(e){var i;try{i=e.activeElement}catch(t){i=e.body}return i=!(i=i||e.body).nodeName?e.body:i},x.widget("ui.menu",{version:"1.13.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("<span>").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s<e+t&&this.activeMenu.scrollTop(i+e-s+t))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(t){var e=x.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(e)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var t=i?this.element:x(e&&e.target).closest(this.element.find(".ui-menu"));t.length||(t=this.element),this._close(t),this.blur(e),this._removeClass(t.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=t},i?0:this.delay)},_close:function(t){(t=t||(this.active?this.active.parent():this.element)).find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(t){return!x(t.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this._menuItems(this.active.children(".ui-menu")).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_menuItems:function(t){return(t||this.element).find(this.options.items).filter(".ui-menu-item")},_move:function(t,e,i){var s;(s=this.active?"first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").last():this.active[t+"All"](".ui-menu-item").first():s)&&s.length&&this.active||(s=this._menuItems(this.activeMenu)[e]()),this.focus(i,s)},nextPage:function(t){var e,i,s;this.active?this.isLastItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.innerHeight(),0===x.fn.jquery.indexOf("3.2.")&&(s+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.nextAll(".ui-menu-item").each(function(){return(e=x(this)).offset().top-i-s<0}),this.focus(t,e)):this.focus(t,this._menuItems(this.activeMenu)[this.active?"last":"first"]())):this.next(t)},previousPage:function(t){var e,i,s;this.active?this.isFirstItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.innerHeight(),0===x.fn.jquery.indexOf("3.2.")&&(s+=this.element[0].offsetHeight-this.element.outerHeight()),this.active.prevAll(".ui-menu-item").each(function(){return 0<(e=x(this)).offset().top-i+s}),this.focus(t,e)):this.focus(t,this._menuItems(this.activeMenu).first())):this.next(t)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||x(t.target).closest(".ui-menu-item");var e={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,e)},_filterMenuItems:function(t){var t=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),e=new RegExp("^"+t,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return e.test(String.prototype.trim.call(x(this).children(".ui-menu-item-wrapper").text()))})}});x.widget("ui.autocomplete",{version:"1.13.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("<div>").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):!1!==this._trigger("search",e)?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")}.bind(this)},__response:function(t){t=t&&this._normalize(t),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:x.map(t,function(t){return"string"==typeof t?{label:t,value:t}:x.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var e=this.menu.element.empty();this._renderMenu(e,t),this.isNewMenu=!0,this.menu.refresh(),e.show(),this._resizeMenu(),e.position(x.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(i,t){var s=this;x.each(t,function(t,e){s._renderItemData(i,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(t,e){return x("<li>").append(x("<div>").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1<t?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var e;this._superApply(arguments),this.options.disabled||this.cancelSearch||(e=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("<div>").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/doc/script.js b/doc/script.js new file mode 100644 index 0000000000000000000000000000000000000000..4f1815264908561ecfdb77c032c5ae9025f82581 --- /dev/null +++ b/doc/script.js @@ -0,0 +1,268 @@ +/* + * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + var display = checkbox.checked ? '' : 'none'; + document.querySelectorAll("div.table-tabs").forEach(function(t) { + var id = t.parentElement.getAttribute("id"); + var selectedClass = id + "-tab" + selected; + // if selected is empty string it selects all uncategorized entries + var selectUncategorized = !Boolean(selected); + var visible = 0; + document.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectUncategorized) { + if (elem.className.indexOf(selectedClass) === -1) { + elem.style.display = display; + } + } else if (elem.classList.contains(selectedClass)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button.firstElementChild, button.parentElement); +} +// Copy the link to the adjacent header to the clipboard +function copyUrl(button) { + var id; + var header = button.parentElement; + if (header.hasAttribute("id")) { + id = header.getAttribute("id"); + } else if (header.parentElement.tagName === 'SECTION' && header.parentElement.hasAttribute("id")) { + id = header.parentElement.getAttribute("id"); + } else if (header.firstElementChild && header.firstElementChild.tagName === "A" + && header.firstElementChild.hasAttribute("id")) { + id = header.firstElementChild.getAttribute("id"); + } + var url = document.location.href; + if (url.indexOf("#") > -1) { + url = url.substring(0, url.indexOf("#")); + } + copyToClipboard(url + "#" + id); + switchCopyLabel(button.lastElementChild, button.parentElement); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(span, parent) { + var copied = span.getAttribute("data-copied"); + if (span.innerHTML !== copied) { + var initialLabel = span.innerHTML; + span.innerHTML = copied; + parent.onmouseleave = parent.ontouchend = function() { + span.innerHTML = initialLabel; + }; + } +} +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + var timeoutId; + contentDiv.addEventListener("scroll", function(e) { + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + }, 100); + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/doc/search-page.js b/doc/search-page.js new file mode 100644 index 0000000000000000000000000000000000000000..a7d29d89f967e2f887bf706ff1d9943b9e6ba5a3 --- /dev/null +++ b/doc/search-page.js @@ -0,0 +1,299 @@ +/* + * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = this.previousSibling.innerText; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); + var span = this.lastElementChild; + var copied = span.getAttribute("data-copied"); + if (span.innerHTML !== copied) { + var initialLabel = span.innerHTML; + span.innerHTML = copied; + var parent = this.parentElement.parentElement; + parent.onmouseleave = parent.ontouchend = copy[0].onmouseenter = function() { + span.innerHTML = initialLabel; + }; + } + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("<div class='table-tabs'></div>").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("<button id='result-tab-" + key + + "' class='page-search-header'><span>" + categories[key] + "</span>" + + "<span style='font-weight: normal'> (" + count + ")</span></button>").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("<span class='page-search-header active-table-tab'>" + categories[key] + + "<span style='font-weight: normal'> (" + count + ")</span></span>").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("<div class='table-tabs'></div>").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("<div class='summary-table'>") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("<div class='table-header col-plain'>" + col1 + "</div>").appendTo(table); + if (category !== "modules") { + $("<div class='table-header col-plain'>" + col2 + "</div>").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("<a/>") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("<div/>").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("<div/>").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); diff --git a/doc/search.html b/doc/search.html new file mode 100644 index 0000000000000000000000000000000000000000..7454df95d9d10f6fb51cff37030dc85dc1ffc998 --- /dev/null +++ b/doc/search.html @@ -0,0 +1,73 @@ +<!DOCTYPE HTML> +<html lang="fr"> +<head> +<!-- Generated by javadoc (20) on Sat Mar 08 23:13:19 CET 2025 --> +<title>Search</title> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="dc.created" content="2025-03-08"> +<meta name="description" content="search"> +<meta name="generator" content="javadoc/SearchWriter"> +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style"> +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +<script type="text/javascript" src="script-dir/jquery-3.6.1.min.js"></script> +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script> +</head> +<body class="search-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<div class="flex-box"> +<header role="banner" class="flex-header"> +<nav role="navigation"> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span><span class="nav-bar-toggle-icon"> </span></button> +<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div> +<ul id="navbar-top-firstrow" class="nav-list" title="Navigation"> +<li><a href="Gestion_panier/module-summary.html">Module</a></li> +<li><a href="Gestion_panier/Panier/package-summary.html">Package</a></li> +<li>Class</li> +<li>Use</li> +<li><a href="Gestion_panier/Panier/package-tree.html">Tree</a></li> +<li><a href="index-files/index-1.html">Index</a></li> +<li><a href="help-doc.html#search">Help</a></li> +</ul> +</div> +<div class="sub-nav"> +<div id="navbar-sub-list"></div> +</div> +<!-- ========= END OF TOP NAVBAR ========= --> +<span class="skip-nav" id="skip-navbar-top"></span></nav> +</header> +<div class="flex-content"> +<main role="main"> +<h1 class="title">Search</h1> +<div> +<input type="text" id="page-search-input" disabled placeholder="Search"> +<input type="reset" id="page-search-reset" disabled value="Reset" style="margin: 6px;"> +<details class="page-search-details"> +<summary id="page-search-expand">Additional resources</summary> +</details> +</div> +<div class="page-search-info"> +<p>The <a href="help-doc.html#search">help page</a> provides an introduction to the scope and syntax of JavaDoc search.</p> +<p>You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.</p> +<p>The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.</p> +<span id="page-search-link">link</span><button class="copy" id="page-search-copy"><img src="copy.svg" alt="Copy URL"><span data-copied="Copied!">Copy URL</span></button> +<p> +<input type="checkbox" id="search-redirect" disabled> +<label for="search-redirect">Redirect to first result</label></p> +</div> +<p id="page-search-notify">Loading search index...</p> +<div id="result-section" style="display: none;"> +<div id="result-container"></div> +<script type="text/javascript" src="search-page.js"></script> +</div> +</main> +</div> +</div> +</body> +</html> diff --git a/doc/search.js b/doc/search.js new file mode 100644 index 0000000000000000000000000000000000000000..9e61cfe9220957505ad980d7e8cbde2a6ebc8466 --- /dev/null +++ b/doc/search.js @@ -0,0 +1,458 @@ +/* + * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ +"use strict"; +const messages = { + enterTerm: "Enter a search term", + noResult: "No results found", + oneResult: "Found one result", + manyResults: "Found {0} results", + loading: "Loading search index...", + searching: "Searching...", + redirecting: "Redirecting to first result...", + copyUrl: "Copy URL", + urlCopied: "Copied!" +} +const categories = { + modules: "Modules", + packages: "Packages", + types: "Classes and Interfaces", + members: "Members", + searchTags: "Search Tags" +}; +const highlight = "<span class='result-highlight'>$&</span>"; +const NO_MATCH = {}; +const MAX_RESULTS = 300; +function checkUnnamed(name, separator) { + return name === "<Unnamed>" || !name ? "" : name + separator; +} +function escapeHtml(str) { + return str.replace(/</g, "<").replace(/>/g, ">"); +} +function getHighlightedText(str, boundaries, from, to) { + var start = from; + var text = ""; + for (var i = 0; i < boundaries.length; i += 2) { + var b0 = boundaries[i]; + var b1 = boundaries[i + 1]; + if (b0 >= to || b1 <= from) { + continue; + } + text += escapeHtml(str.slice(start, Math.max(start, b0))); + text += "<span class='result-highlight'>"; + text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); + text += "</span>"; + start = Math.min(to, b1); + } + text += escapeHtml(str.slice(start, to)); + return text; +} +function getURLPrefix(item, category) { + var urlPrefix = ""; + var slash = "/"; + if (category === "modules") { + return item.l + slash; + } else if (category === "packages" && item.m) { + return item.m + slash; + } else if (category === "types" || category === "members") { + if (item.m) { + urlPrefix = item.m + slash; + } else { + $.each(packageSearchIndex, function(index, it) { + if (it.m && item.p === it.l) { + urlPrefix = it.m + slash; + } + }); + } + } + return urlPrefix; +} +function getURL(item, category) { + if (item.url) { + return item.url; + } + var url = getURLPrefix(item, category); + if (category === "modules") { + url += "module-summary.html"; + } else if (category === "packages") { + if (item.u) { + url = item.u; + } else { + url += item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (category === "types") { + if (item.u) { + url = item.u; + } else { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + } + } else if (category === "members") { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; + if (item.u) { + url += item.u; + } else { + url += item.l; + } + } else if (category === "searchTags") { + url += item.u; + } + item.url = url; + return url; +} +function createMatcher(term, camelCase) { + if (camelCase && !isUpperCase(term)) { + return null; // no need for camel-case matcher for lower case query + } + var pattern = ""; + var upperCase = []; + term.trim().split(/\s+/).forEach(function(w, index, array) { + var tokens = w.split(/(?=[A-Z,.()<>?[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + // ',' and '?' are the only delimiters commonly followed by space in java signatures + pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; + upperCase.push(false); + var isWordToken = /\w$/.test(s); + if (isWordToken) { + if (i === tokens.length - 1 && index < array.length - 1) { + // space in query string matches all delimiters + pattern += "(.*?)"; + upperCase.push(isUpperCase(s[0])); + } else { + if (!camelCase && isUpperCase(s) && s.length === 1) { + pattern += "()"; + } else { + pattern += "([a-z0-9$<>?[\\]]*?)"; + } + upperCase.push(isUpperCase(s[0])); + } + } else { + pattern += "()"; + upperCase.push(false); + } + } + }); + var re = new RegExp(pattern, "gi"); + re.upperCase = upperCase; + return re; +} +function findMatch(matcher, input, startOfName, endOfName) { + var from = startOfName; + matcher.lastIndex = from; + var match = matcher.exec(input); + // Expand search area until we get a valid result or reach the beginning of the string + while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { + if (from === 0) { + return NO_MATCH; + } + from = input.lastIndexOf(".", from - 2) + 1; + matcher.lastIndex = from; + match = matcher.exec(input); + } + var boundaries = []; + var matchEnd = match.index + match[0].length; + var score = 5; + var start = match.index; + var prevEnd = -1; + for (var i = 1; i < match.length; i += 2) { + var isUpper = isUpperCase(input[start]); + var isMatcherUpper = matcher.upperCase[i]; + // capturing groups come in pairs, match and non-match + boundaries.push(start, start + match[i].length); + // make sure groups are anchored on a left word boundary + var prevChar = input[start - 1] || ""; + var nextChar = input[start + 1] || ""; + if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) { + if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { + score -= 0.1; + } else if (isMatcherUpper && start === prevEnd) { + score -= isUpper ? 0.1 : 1.0; + } else { + return NO_MATCH; + } + } + prevEnd = start + match[i].length; + start += match[i].length + match[i + 1].length; + + // lower score for parts of the name that are missing + if (match[i + 1] && prevEnd < endOfName) { + score -= rateNoise(match[i + 1]); + } + } + // lower score if a type name contains unmatched camel-case parts + if (input[matchEnd - 1] !== "." && endOfName > matchEnd) + score -= rateNoise(input.slice(matchEnd, endOfName)); + score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); + + if (score <= 0) { + return NO_MATCH; + } + return { + input: input, + score: score, + boundaries: boundaries + }; +} +function isUpperCase(s) { + return s !== s.toLowerCase(); +} +function isLowerCase(s) { + return s !== s.toUpperCase(); +} +function rateNoise(str) { + return (str.match(/([.(])/g) || []).length / 5 + + (str.match(/([A-Z]+)/g) || []).length / 10 + + str.length / 20; +} +function doSearch(request, response) { + var term = request.term.trim(); + var maxResults = request.maxResults || MAX_RESULTS; + if (term.length === 0) { + return this.close(); + } + var matcher = { + plainMatcher: createMatcher(term, false), + camelCaseMatcher: createMatcher(term, true) + } + var indexLoaded = indexFilesLoaded(); + + function getPrefix(item, category) { + switch (category) { + case "packages": + return checkUnnamed(item.m, "/"); + case "types": + return checkUnnamed(item.p, "."); + case "members": + return checkUnnamed(item.p, ".") + item.c + "."; + default: + return ""; + } + } + function useQualifiedName(category) { + switch (category) { + case "packages": + return /[\s/]/.test(term); + case "types": + case "members": + return /[\s.]/.test(term); + default: + return false; + } + } + function searchIndex(indexArray, category) { + var matches = []; + if (!indexArray) { + if (!indexLoaded) { + matches.push({ l: messages.loading, category: category }); + } + return matches; + } + $.each(indexArray, function (i, item) { + var prefix = getPrefix(item, category); + var simpleName = item.l; + var qualifiedName = prefix + simpleName; + var useQualified = useQualifiedName(category); + var input = useQualified ? qualifiedName : simpleName; + var startOfName = useQualified ? prefix.length : 0; + var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 + ? input.indexOf("(", startOfName) : input.length; + var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); + if (m === NO_MATCH && matcher.camelCaseMatcher) { + m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); + } + if (m !== NO_MATCH) { + m.indexItem = item; + m.prefix = prefix; + m.category = category; + if (!useQualified) { + m.input = qualifiedName; + m.boundaries = m.boundaries.map(function(b) { + return b + prefix.length; + }); + } + matches.push(m); + } + return true; + }); + return matches.sort(function(e1, e2) { + return e2.score - e1.score; + }).slice(0, maxResults); + } + + var result = searchIndex(moduleSearchIndex, "modules") + .concat(searchIndex(packageSearchIndex, "packages")) + .concat(searchIndex(typeSearchIndex, "types")) + .concat(searchIndex(memberSearchIndex, "members")) + .concat(searchIndex(tagSearchIndex, "searchTags")); + + if (!indexLoaded) { + updateSearchResults = function() { + doSearch(request, response); + } + } else { + updateSearchResults = function() {}; + } + response(result); +} +// JQuery search menu implementation +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> .result-item"); + // workaround for search result scrolling + this.menu._scrollIntoView = function _scrollIntoView( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height() - 26; + itemHeight = item.outerHeight(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }; + }, + _renderMenu: function(ul, items) { + var currentCategory = ""; + var widget = this; + widget.menu.bindings = $(); + $.each(items, function(index, item) { + if (item.category && item.category !== currentCategory) { + ul.append("<li class='ui-autocomplete-category'>" + categories[item.category] + "</li>"); + currentCategory = item.category; + } + var li = widget._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", categories[item.category] + " : " + item.l); + } else { + li.attr("aria-label", item.l); + } + li.attr("class", "result-item"); + }); + ul.append("<li class='ui-static-link'><a href='" + pathtoroot + "search.html?q=" + + encodeURI(widget.term) + "'>Go to search page</a></li>"); + }, + _renderItem: function(ul, item) { + var li = $("<li/>").appendTo(ul); + var div = $("<div/>").appendTo(li); + var label = item.l + ? item.l + : getHighlightedText(item.input, item.boundaries, 0, item.input.length); + var idx = item.indexItem; + if (item.category === "searchTags" && idx.h) { + if (idx.d) { + div.html(label + "<span class='search-tag-holder-result'> (" + idx.h + ")</span><br><span class='search-tag-desc-result'>" + + idx.d + "</span><br>"); + } else { + div.html(label + "<span class='search-tag-holder-result'> (" + idx.h + ")</span>"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + var expanded = false; + var windowWidth; + function collapse() { + if (expanded) { + $("div#navbar-top").removeAttr("style"); + $("button#navbar-toggle-button") + .removeClass("expanded") + .attr("aria-expanded", "false"); + expanded = false; + } + } + $("button#navbar-toggle-button").click(function (e) { + if (expanded) { + collapse(); + } else { + var navbar = $("div#navbar-top"); + navbar.height(navbar.prop("scrollHeight")); + $("button#navbar-toggle-button") + .addClass("expanded") + .attr("aria-expanded", "true"); + expanded = true; + windowWidth = window.innerWidth; + } + }); + $("ul.sub-nav-list-small li a").click(collapse); + $("input#search-input").focus(collapse); + $("main").click(collapse); + $("section[id] > :header, :header[id], :header:has(a[id])").hover( + function () { + $(this).append($("<button class='copy copy-header' onclick='copyUrl(this)'> " + + "<img src='" + pathtoroot + "copy.svg' alt='" + messages.copyUrl + "'> " + + "<span data-copied='" + messages.urlCopied + "'></span></button>")); + }, + function () { + $(this).find("button:last").remove(); + } + ); + $(window).on("orientationchange", collapse).on("resize", function(e) { + if (expanded && windowWidth !== window.innerWidth) collapse(); + }); + var search = $("#search-input"); + var reset = $("#reset-button"); + search.catcomplete({ + minLength: 1, + delay: 200, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push({ l: messages.noResult }); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.indexItem) { + var url = getURL(ui.item.indexItem, ui.item.category); + window.location.href = pathtoroot + url; + $("#search-input").focus(); + } + } + }); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + reset.click(function() { + search.val('').focus(); + }); + search.focus(); +}); diff --git a/doc/stylesheet.css b/doc/stylesheet.css new file mode 100644 index 0000000000000000000000000000000000000000..5f389596eef36ffed6eaf5b34a25b8c3a349d7cb --- /dev/null +++ b/doc/stylesheet.css @@ -0,0 +1,1264 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --code-font-size: 14px; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:1em; +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:0.915em; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + float:left; + width:100%; + clear:right; + min-height:2.8em; + padding:10px 0 0 0; + overflow:hidden; + font-size:0.857em; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:var(--subnav-background-color); + float:left; + width:100%; + overflow:hidden; + font-size:0.857em; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:1em; + font-family:var(--block-font-family) +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.tag-list, ul.tag-list-long { + padding-left: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="125" height="170"> \ + <path d="M10.101 57.059L63.019 4.142l52.917 52.917M10.101 86.392l52.917 52.917 52.917-52.917" style="opacity:.35;"/></svg>'); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="125" height="170"> \ + <path d="M10.101 57.059L63.019 4.142l52.917 52.917" style="opacity:.75;"/> \ + <path d="M10.101 86.392l52.917 52.917 52.917-52.917" style="opacity:.35;"/></svg>'); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="125" height="170"> \ + <path d="M10.101 57.059L63.019 4.142l52.917 52.917" style="opacity:.35;"/> \ + <path d="M10.101 86.392l52.917 52.917 52.917-52.917" style="opacity:.75;"/></svg>'); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--body-font-size); + font-family:var(--block-font-family); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + border: 1px solid var(--selected-background-color); + color: var(--selected-text-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\ + <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \ + 132-240 240 120 120 240-240 132 132V0z" fill="%234a6782"/>\ + </svg>'); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\ + <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \ + 132-240 240 120 120 240-240 132 132V0z" fill="%23bb7a2a"/>\ + </svg>'); +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 80%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.2s; + cursor: pointer; +} +button.copy:hover, +button.copy:active { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; +} +/* header/section copy button */ +button.copy-header { + margin: 0 0.2em; + padding: 0 4px; + height: 1.16em; +} +button.copy-header img { + height: 0.88em; + top: 0.1em; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + content: attr(aria-label); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; + opacity: 0; +} +div.page-search-info:hover button#page-search-copy, +div.page-search-info:hover button#page-search-copy span { + opacity: 90%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + opacity: 50%; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + content: attr(aria-label); + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; + display: none; +} +div.snippet-container:hover button.snippet-copy span { + display: inline; +} +div.snippet-container:hover button.snippet-copy { + opacity: 80%; +} +div.snippet-container button.snippet-copy:hover { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: var(--subnav-background-color); + color: var(--body-text-color); + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:var(--link-color); + } + ul.sub-nav-list-small a:hover { + color:var(--link-color-active); + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} diff --git a/doc/tag-search-index.js b/doc/tag-search-index.js new file mode 100644 index 0000000000000000000000000000000000000000..0367dae65da41cd0c50d2f337b4768a43a66c079 --- /dev/null +++ b/doc/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/doc/type-search-index.js b/doc/type-search-index.js new file mode 100644 index 0000000000000000000000000000000000000000..6ea21ad4a5c53e66f3cff2dc440348277f65df5e --- /dev/null +++ b/doc/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"Panier","l":"Disque"},{"p":"Panier","l":"Main"},{"p":"Panier","l":"Nourriture"},{"p":"Panier","l":"Panier"},{"p":"Panier","l":"Produit"},{"p":"Panier","l":"Vendable"}];updateSearchResults(); \ No newline at end of file diff --git a/src/Panier/Disque.java b/src/Panier/Disque.java new file mode 100644 index 0000000000000000000000000000000000000000..cf19626365b2aa9d5e75fcb7bf499a3d89a71827 --- /dev/null +++ b/src/Panier/Disque.java @@ -0,0 +1,34 @@ +package Panier; + +/** + * Classe représentant un disque (CD/DVD) vendable. + * Implémente l'interface {@link Vendable}. + */ +public class Disque implements Vendable { + + /** Prix du disque */ + private double prix; + + /** + * Constructeur pour initialiser le prix du disque. + * + * @param prix Le prix du disque en euros. Doit être un nombre positif. + * @throws ValeurInvalideException si le prix est inférieur ou égal à 0. + */ + public Disque(double prix) throws ValeurInvalideException { + if (prix <= 0) { + throw new ValeurInvalideException("Le prix du disque doit être positif."); + } + this.prix = prix; + } + + /** + * Retourne le prix du disque. + * + * @return Le prix du disque en euros. + */ + @Override + public double getPrix() { + return prix; + } +} diff --git a/src/Panier/Main.java b/src/Panier/Main.java new file mode 100644 index 0000000000000000000000000000000000000000..33bfeeeb0b744e4952c461c2acab4a2221a98e53 --- /dev/null +++ b/src/Panier/Main.java @@ -0,0 +1,69 @@ +package Panier; + +/** + * Classe principale contenant le programme de test pour la gestion d'un panier d'achats. + * Cette classe permet de tester l'ajout de produits (Disques et Nourriture) dans un panier + * et d'afficher le prix total. Elle gère également les erreurs liées à des valeurs invalides. + */ +public class Main { + + /** + * Méthode principale qui exécute différents scénarios de test pour la gestion des paniers. + * + * @param args Arguments de la ligne de commande (non utilisés ici). + */ + public static void main(String[] args) { + + // =================== TEST 1 : Panier avec 2 disques et 3 portions de nourriture =================== + Panier panier1 = new Panier(); + try { + panier1.add(2, new Disque(15.0)); // 2 disques à 15€ + panier1.add(3, new Nourriture(10.0, 0.5)); // 3 portions de 0.5kg à 10€/kg + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 1 : " + e.getMessage()); + } + System.out.println("Prix total du panier 1 : " + panier1.getTotalPrix() + "€"); + // Attendu : (2 * 15) + (3 * (10 * 0.5)) = 30 + 15 = 45€ + + // =================== TEST 2 : Panier avec 5 disques =================== + Panier panier2 = new Panier(); + try { + panier2.add(5, new Disque(20.0)); // 5 disques à 20€ + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 2 : " + e.getMessage()); + } + System.out.println("Prix total du panier 2 : " + panier2.getTotalPrix() + "€"); + // Attendu : 5 * 20 = 100€ + + // =================== TEST 3 : Panier avec 4 portions de nourriture =================== + Panier panier3 = new Panier(); + try { + panier3.add(4, new Nourriture(8.0, 1.0)); // 4 portions de 1kg à 8€/kg + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 3 : " + e.getMessage()); + } + System.out.println("Prix total du panier 3 : " + panier3.getTotalPrix() + "€"); + // Attendu : 4 * (8 * 1) = 32€ + + // =================== TEST 4 : Panier vide =================== + Panier panier4 = new Panier(); + System.out.println("Prix total du panier 4 : " + panier4.getTotalPrix() + "€"); + // Attendu : 0€ + + // =================== TEST 5 : Erreur - Ajouter une quantité négative =================== + Panier panier5 = new Panier(); + try { + panier5.add(-1, new Disque(15.0)); // Devrait déclencher une exception + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 5 : " + e.getMessage()); + } + + // =================== TEST 6 : Erreur - Ajouter un produit avec un prix négatif =================== + Panier panier6 = new Panier(); + try { + panier6.add(2, new Disque(-10.0)); // Devrait déclencher une exception + } catch (ValeurInvalideException e) { + System.err.println("Erreur lors de l'ajout au panier 6 : " + e.getMessage()); + } + } +} diff --git a/src/Panier/Nourriture.java b/src/Panier/Nourriture.java new file mode 100644 index 0000000000000000000000000000000000000000..163f08dc9be399c243b4d19f983329a2c4c67af1 --- /dev/null +++ b/src/Panier/Nourriture.java @@ -0,0 +1,40 @@ +package Panier; + +/** + * Classe représentant un produit alimentaire vendable. + * Chaque instance de cette classe correspond à une portion de nourriture, + * définie par un prix par kilogramme et un poids en kilogrammes. + */ +public class Nourriture implements Vendable { + + private double prixKg; // Prix par kilogramme + private double poidsKg; // Poids en kilogrammes + + /** + * Constructeur permettant d'initialiser une portion de nourriture avec son prix et son poids. + * + * @param prixKg Prix par kilogramme (doit être strictement positif). + * @param poidsKg Poids en kilogrammes (doit être strictement positif). + * @throws ValeurInvalideException Si le prix par kilogramme ou le poids sont négatifs ou nuls. + */ + public Nourriture(double prixKg, double poidsKg) throws ValeurInvalideException { + if (prixKg <= 0) { + throw new ValeurInvalideException("Le prix par kilogramme de la nourriture doit être positif."); + } + if (poidsKg <= 0) { + throw new ValeurInvalideException("Le poids de la nourriture doit être positif."); + } + this.prixKg = prixKg; + this.poidsKg = poidsKg; + } + + /** + * Calcule et retourne le prix total de la portion de nourriture. + * + * @return Le prix total (prix par kilogramme * poids en kilogrammes). + */ + @Override + public double getPrix() { + return prixKg * poidsKg; + } +} diff --git a/src/Panier/Panier.java b/src/Panier/Panier.java new file mode 100644 index 0000000000000000000000000000000000000000..24f7c147f0802cad4c58cb335370e4373bb49b2d --- /dev/null +++ b/src/Panier/Panier.java @@ -0,0 +1,43 @@ +package Panier; + +import java.util.ArrayList; +import java.util.List; + +/** + * Classe représentant un panier contenant des produits. + * Cette classe permet d'ajouter des produits dans le panier et de calculer le prix total du panier. + */ +public class Panier { + + // Liste des produits dans le panier + private List<Produit> produits = new ArrayList<>(); + + /** + * Ajoute un produit dans le panier. + * Si la quantité demandée est inférieure ou égale à 0, une exception est levée. + * + * @param quantite La quantité du produit à ajouter (doit être supérieure à 0). + * @param chose Le produit à ajouter, qui doit implémenter l'interface {@link Vendable}. + * @throws ValeurInvalideException Si la quantité est inférieure ou égale à 0. + */ + public void add(int quantite, Vendable chose) throws ValeurInvalideException { + if (quantite <= 0) { + throw new ValeurInvalideException("La quantité doit être supérieure à 0."); + } + // Création du produit à ajouter avec la quantité spécifiée + Produit produit = new Produit(chose, quantite); + // Ajout du produit dans la liste + produits.add(produit); + } + + /** + * Calcule le prix total du panier. + * Le prix total est la somme des prix de chaque produit, calculé en fonction de la quantité et du prix de chaque produit. + * + * @return Le prix total du panier. + */ + public double getTotalPrix() { + // On parcourt la liste des produits et on somme les prix de chaque produit + return produits.stream().mapToDouble(Produit::getPrixProduit).sum(); + } +} diff --git a/src/Panier/Produit.java b/src/Panier/Produit.java new file mode 100644 index 0000000000000000000000000000000000000000..5d86f7c0eafcd6ddadd3d8ec01759674c77eb947 --- /dev/null +++ b/src/Panier/Produit.java @@ -0,0 +1,39 @@ +package Panier; + +/** + * Classe représentant un produit dans un panier. + * Cette classe contient un produit (qui doit implémenter l'interface {@link Vendable}) + * ainsi qu'une quantité. Elle permet de calculer le prix total du produit en fonction de la quantité. + */ +public class Produit { + + private Vendable chose; // L'objet vendable (comme un disque ou de la nourriture) + private int quantite; // La quantité de ce produit dans le panier + + /** + * Constructeur pour initialiser un produit avec une chose vendable et une quantité. + * Si la quantité est inférieure ou égale à 0, une exception {@link ValeurInvalideException} est levée. + * + * @param chose Le produit à ajouter (doit être une instance d'un objet implémentant {@link Vendable}). + * @param quantite La quantité du produit à ajouter (doit être supérieure à 0). + * @throws ValeurInvalideException Si la quantité est inférieure ou égale à 0. + */ + public Produit(Vendable chose, int quantite) throws ValeurInvalideException { + if (quantite <= 0) { + throw new ValeurInvalideException("La quantité doit être supérieure à 0."); + } + this.chose = chose; + this.quantite = quantite; + } + + /** + * Méthode pour obtenir le prix total du produit (quantité * prix unitaire). + * Cette méthode calcule le prix total du produit en multipliant la quantité par le prix unitaire + * du produit (qui est obtenu via la méthode {@link Vendable#getPrix()}). + * + * @return Le prix total du produit (quantité * prix unitaire). + */ + public double getPrixProduit() { + return quantite * chose.getPrix(); + } +} diff --git a/src/Panier/ValeurInvalideException.java b/src/Panier/ValeurInvalideException.java new file mode 100644 index 0000000000000000000000000000000000000000..245b73c66705979f0a4a5898330e8a5eaad19079 --- /dev/null +++ b/src/Panier/ValeurInvalideException.java @@ -0,0 +1,27 @@ +package Panier; + +/** + * Exception personnalisée pour gérer les erreurs liées à des valeurs invalides, + * telles que des prix ou quantités non valides. + * Cette exception est levée lorsque des valeurs invalides sont détectées dans + * les processus liés aux produits dans le panier (par exemple, un prix ou une + * quantité inférieure ou égale à 0). + */ +class ValeurInvalideException extends Exception { + + /** + * ID de version pour la sérialisation. + */ + private static final long serialVersionUID = 1L; + + /** + * Constructeur de l'exception {@link ValeurInvalideException}. + * Ce constructeur permet de créer une exception avec un message d'erreur + * détaillant la raison de l'échec. + * + * @param message Le message d'erreur à afficher lorsqu'une valeur invalide est rencontrée. + */ + public ValeurInvalideException(String message) { + super(message); + } +} diff --git a/src/Panier/Vendable.java b/src/Panier/Vendable.java new file mode 100644 index 0000000000000000000000000000000000000000..8fd08a9c11643b27659b9be6e5caf8c2e0a82722 --- /dev/null +++ b/src/Panier/Vendable.java @@ -0,0 +1,19 @@ +package Panier; + +/** + * Interface représentant un objet vendable, c'est-à-dire un objet qui a un prix. + * Les classes qui implémentent cette interface doivent définir la méthode {@link #getPrix()}, + * qui retourne le prix unitaire de l'objet. + */ +public interface Vendable { + + /** + * Méthode pour obtenir le prix unitaire de l'objet. + * Cette méthode doit être implémentée dans toutes les classes qui + * représentent des objets ayant un prix, comme les produits vendus + * dans un panier. + * + * @return Le prix unitaire de l'objet. + */ + double getPrix(); +} diff --git a/src/module-info.java b/src/module-info.java new file mode 100644 index 0000000000000000000000000000000000000000..61d7fda9a67d3580faa904ed51cfe3342a71bcce --- /dev/null +++ b/src/module-info.java @@ -0,0 +1,8 @@ +/** + * + */ +/** + * + */ +module Gestion_panier { +} \ No newline at end of file