funky-framadate-front/documentation/components/DatesComponent.html

1585 lines
65 KiB
HTML

<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>framadate-funky-frontend documentation</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">framadate-funky-frontend documentation</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li>DatesComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/pages/dates/dates.component.ts</code>
</p>
<p class="comment">
<h3>Extends</h3>
</p>
<p class="comment">
<code><a href="../components/BaseComponent.html" target="_self" >BaseComponent</a></code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>framadate-dates</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./dates.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./dates.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Public</span>
<a href="#config">config</a>
</li>
<li>
<a href="#endDateInterval">endDateInterval</a>
</li>
<li>
<a href="#intervalDays">intervalDays</a>
</li>
<li>
<a href="#intervalDaysDefault">intervalDaysDefault</a>
</li>
<li>
<a href="#showDateInterval">showDateInterval</a>
</li>
<li>
<a href="#startDateInterval">startDateInterval</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#config">config</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#addDate">addDate</a>
</li>
<li>
<a href="#addIntervalOfDates">addIntervalOfDates</a>
</li>
<li>
<a href="#addTime">addTime</a>
</li>
<li>
<a href="#addTimeToDate">addTimeToDate</a>
</li>
<li>
<a href="#countDays">countDays</a>
</li>
<li>
<a href="#emptyAll">emptyAll</a>
</li>
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
<li>
<a href="#removeAllTimes">removeAllTimes</a>
</li>
<li>
<a href="#resetTimes">resetTimes</a>
</li>
<li>
<a href="#checkValidity">checkValidity</a>
</li>
<li>
<a href="#displayErrorMessage">displayErrorMessage</a>
</li>
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(config: <a href="../injectables/ConfigService.html">ConfigService</a>, cd: <a href="https://angular.io/api/core/ChangeDetectorRef" target="_blank">ChangeDetectorRef</a>, messageService: MessageService, dateUtilities: <a href="../injectables/DateUtilities.html">DateUtilities</a>, document: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/pages/dates/dates.component.ts:19</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>config</td>
<td>
<code><a href="../injectables/ConfigService.html" target="_self" >ConfigService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>cd</td>
<td>
<code><a href="https://angular.io/api/core/ChangeDetectorRef" target="_blank" >ChangeDetectorRef</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>messageService</td>
<td>
<code>MessageService</code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>dateUtilities</td>
<td>
<code><a href="../injectables/DateUtilities.html" target="_self" >DateUtilities</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>document</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="addDate"></a>
<span class="name">
<b>
addDate
</b>
<a href="#addDate"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>addDate()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="47"
class="link-to-prism">src/app/pages/dates/dates.component.ts:47</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="addIntervalOfDates"></a>
<span class="name">
<b>
addIntervalOfDates
</b>
<a href="#addIntervalOfDates"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>addIntervalOfDates()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="117"
class="link-to-prism">src/app/pages/dates/dates.component.ts:117</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>add all the dates between the start and end dates in the interval section</p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="addTime"></a>
<span class="name">
<b>
addTime
</b>
<a href="#addTime"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>addTime()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="64"
class="link-to-prism">src/app/pages/dates/dates.component.ts:64</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>change time spans</p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="addTimeToDate"></a>
<span class="name">
<b>
addTimeToDate
</b>
<a href="#addTimeToDate"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>addTimeToDate(config: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>, id: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="89"
class="link-to-prism">src/app/pages/dates/dates.component.ts:89</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>add a time period to a specific date choice,
focus on the new input</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>config</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>id</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="countDays"></a>
<span class="name">
<b>
countDays
</b>
<a href="#countDays"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>countDays()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="30"
class="link-to-prism">src/app/pages/dates/dates.component.ts:30</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="emptyAll"></a>
<span class="name">
<b>
emptyAll
</b>
<a href="#emptyAll"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>emptyAll()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="102"
class="link-to-prism">src/app/pages/dates/dates.component.ts:102</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>remove all input contents, does not reset to default</p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="40"
class="link-to-prism">src/app/pages/dates/dates.component.ts:40</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>set the interval options</p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="removeAllTimes"></a>
<span class="name">
<b>
removeAllTimes
</b>
<a href="#removeAllTimes"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>removeAllTimes()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="74"
class="link-to-prism">src/app/pages/dates/dates.component.ts:74</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="resetTimes"></a>
<span class="name">
<b>
resetTimes
</b>
<a href="#resetTimes"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>resetTimes()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="78"
class="link-to-prism">src/app/pages/dates/dates.component.ts:78</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="checkValidity"></a>
<span class="name">
<b>
checkValidity
</b>
<a href="#checkValidity"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>checkValidity()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Inherited from <code><a href="../components/BaseComponent.html" target="_self" >BaseComponent</a></code>
</div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <code><a href="../components/BaseComponent.html#source" target="_self" >BaseComponent:21</a></code>
</div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="displayErrorMessage"></a>
<span class="name">
<b>
displayErrorMessage
</b>
<a href="#displayErrorMessage"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>displayErrorMessage()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Inherited from <code><a href="../components/BaseComponent.html" target="_self" >BaseComponent</a></code>
</div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <code><a href="../components/BaseComponent.html#source" target="_self" >BaseComponent:27</a></code>
</div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngOnInit"></a>
<span class="name">
<b>
ngOnInit
</b>
<a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Inherited from <code><a href="../components/BaseComponent.html" target="_self" >BaseComponent</a></code>
</div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <code><a href="../components/BaseComponent.html#source" target="_self" >BaseComponent:17</a></code>
</div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="config"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
config</b>
<a href="#config"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../injectables/ConfigService.html" target="_self" >ConfigService</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="21" class="link-to-prism">src/app/pages/dates/dates.component.ts:21</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="endDateInterval"></a>
<span class="name">
<b>
endDateInterval</b>
<a href="#endDateInterval"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/app/pages/dates/dates.component.ts:19</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="intervalDays"></a>
<span class="name">
<b>
intervalDays</b>
<a href="#intervalDays"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="17" class="link-to-prism">src/app/pages/dates/dates.component.ts:17</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="intervalDaysDefault"></a>
<span class="name">
<b>
intervalDaysDefault</b>
<a href="#intervalDaysDefault"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>7</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/pages/dates/dates.component.ts:18</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="showDateInterval"></a>
<span class="name">
<b>
showDateInterval</b>
<a href="#showDateInterval"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>true</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="15" class="link-to-prism">src/app/pages/dates/dates.component.ts:15</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="startDateInterval"></a>
<span class="name">
<b>
startDateInterval</b>
<a href="#startDateInterval"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="16" class="link-to-prism">src/app/pages/dates/dates.component.ts:16</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="config"></a>
<span class="name">
<b>
<span class="modifier">Public</span>
config</b>
<a href="#config"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../injectables/ConfigService.html" target="_self" >ConfigService</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Inherited from <code><a href="../components/BaseComponent.html" target="_self" >BaseComponent</a></code>
</div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <code><a href="../components/BaseComponent.html#source" target="_self" >BaseComponent:14</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {ChangeDetectorRef, Component, Inject, OnInit} from &#x27;@angular/core&#x27;;
import {ConfigService} from &#x27;../../services/config.service&#x27;;
import {BaseComponent} from &#x27;../base-page/base.component&#x27;;
import {DOCUMENT} from &#x27;@angular/common&#x27;;
import {MessageService} from &quot;primeng/api&quot;;
import {otherDefaultDates} from &quot;../../config/defaultConfigs&quot;;
import {DateUtilities} from &quot;../../config/DateUtilities&quot;;
@Component({
selector: &#x27;framadate-dates&#x27;,
templateUrl: &#x27;./dates.component.html&#x27;,
styleUrls: [&#x27;./dates.component.scss&#x27;]
})
export class DatesComponent extends BaseComponent implements OnInit {
showDateInterval: boolean &#x3D; true;
startDateInterval: any;
intervalDays: any;
intervalDaysDefault: number &#x3D; 7;
endDateInterval: any;
constructor(public config: ConfigService,
private cd: ChangeDetectorRef,
private messageService: MessageService,
private dateUtilities: DateUtilities,
@Inject(DOCUMENT) private document: any
) {
super(config);
}
countDays() {
// compute the number of days in the date interval
if (this.endDateInterval &amp;&amp; this.startDateInterval) {
this.intervalDays &#x3D; (this.dateUtilities.dayDiff(this.endDateInterval, this.startDateInterval)).toFixed(0)
}
}
/**
* set the interval options
*/
ngOnInit() {
let dateCurrent &#x3D; new Date();
const dateJson &#x3D; dateCurrent.toISOString();
this.startDateInterval &#x3D; dateJson.substring(0, 10);
this.endDateInterval &#x3D; this.dateUtilities.addDaysToDate(this.intervalDaysDefault, dateCurrent).toISOString().substring(0, 10);
}
addDate() {
this.config.dateList.push({
literal: &#x27;&#x27;,
date_object: new Date(),
timeList: []
});
let selector &#x3D; &#x27;[ng-reflect-name&#x3D;&quot;dateChoices_&#x27; + (this.config.dateList.length - 1) + &#x27;&quot;]&#x27;;
this.cd.detectChanges();
const elem &#x3D; this.document.querySelector(selector);
if (elem) {
elem.focus();
}
}
/**
* change time spans
*/
addTime() {
this.config.timeList.push(
{
literal: &#x27;&#x27;,
timeList: [],
date_object: new Date()
}
);
}
removeAllTimes() {
this.config.timeList &#x3D; [];
}
resetTimes() {
this.config.timeList &#x3D; otherDefaultDates;
}
/**
* add a time period to a specific date choice,
* focus on the new input
* @param config
* @param id
*/
addTimeToDate(config: any, id: number) {
config.timeList.push({literal: &#x27;&#x27;});
let selector &#x3D; &#x27;[ng-reflect-name&#x3D;&quot;dateTime_&#x27; + id + &#x27;_Choices_&#x27; + (config.timeList.length - 1) + &#x27;&quot;]&#x27;;
this.cd.detectChanges();
const elem &#x3D; this.document.querySelector(selector);
if (elem) {
elem.focus();
}
}
/**
* remove all input contents, does not reset to default
*/
emptyAll() {
this.config.dateList.forEach(element &#x3D;&gt; {
element.literal &#x3D; &#x27;&#x27;;
element.date_object &#x3D; new Date();
element.timeList &#x3D; [&#x27;&#x27;, &#x27;&#x27;, &#x27;&#x27;];
});
this.config.timeList.forEach(element &#x3D;&gt; {
element.literal &#x3D; &#x27;&#x27;;
});
}
/**
* add all the dates between the start and end dates in the interval section
*/
addIntervalOfDates() {
let newIntervalArray &#x3D; this.dateUtilities.getDatesInRange(this.startDateInterval, this.endDateInterval, 1);
const converted &#x3D; [];
newIntervalArray.forEach(element &#x3D;&gt; {
converted.push({
literal: element.literal,
date_object: element.date_object,
timeList: []
});
});
this.config.dateList &#x3D; [...new Set(converted)]; // add only dates that are not already present with a Set of unique items
this.showDateInterval &#x3D; false;
this.messageService.add({
severity: &#x27;success&#x27;,
summary: &#x27;Dates ajoutées&#x27;,
detail: &#x60;les dates ont été ajoutées aux réponses possibles&#x60;
});
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;div i18n &gt;
{{&quot;dates.title&quot;|translate}}
&lt;/div &gt;
&lt;div &gt;
&lt;label for&#x3D;&quot;multi_hours&quot; &gt;
&lt;span &gt;
{{&quot;dates.hours_different&quot;|translate}}
&lt;/span &gt;
&lt;select
[(ngModel)]&#x3D;&quot;config.allowSeveralHours&quot;
id&#x3D;&quot;multi_hours&quot;
name&#x3D;&quot;multi_hours&quot;
&gt;
&lt;option value&#x3D;true &gt;{{&quot;dates.multiple.different&quot;|translate}}&lt;/option &gt;
&lt;option value&#x3D;false &gt;{{&quot;dates.multiple.identical&quot;|translate}}&lt;/option &gt;
&lt;/select &gt;
&lt;span i18n &gt;
{{&quot;dates.hours_each_day&quot;|translate}}
&lt;/span &gt;
&lt;/label &gt;
&lt;/div &gt;
&lt;button
(click)&#x3D;&quot;addDate()&quot;
class&#x3D;&quot;btn btn--primary&quot;
id&#x3D;&quot;add_date_button&quot;
&gt;
&lt;i class&#x3D;&#x27;fa fa-plus&#x27; &gt;&lt;/i &gt;
{{&quot;dates.add&quot;|translate}}
&lt;/button &gt;
&lt;button
(click)&#x3D;&quot;showDateInterval &#x3D; !showDateInterval &quot;
[ngClass]&#x3D;&quot;{active: showDateInterval}&quot;
class&#x3D;&quot;btn btn--primary&quot;
id&#x3D;&quot;toggle_interval_button&quot;
&gt;
&lt;i class&#x3D;&#x27;fa fa-clock-o&#x27; &gt;&lt;/i &gt;
{{&quot;dates.add_interval&quot;|translate}}
&lt;/button &gt;
&lt;button
(click)&#x3D;&quot;emptyAll()&quot;
class&#x3D;&quot;btn btn--warning&quot;
id&#x3D;&quot;empty_button&quot;
&gt;
&lt;i class&#x3D;&#x27;fa fa-trash&#x27; &gt;&lt;/i &gt;
{{&quot;dates.empty&quot;|translate}}
&lt;/button &gt;
&lt;section
*ngIf&#x3D;&quot;showDateInterval&quot;
class&#x3D;&quot;date-interval &quot; &gt;
&lt;!-- TODO à mettre en popup--&gt;
&lt;hr &gt;
&lt;h2 &gt; {{&quot;dates.add_interval&quot;|translate}}&lt;/h2 &gt;
&lt;p &gt;
{{&quot;dates.interval_propose&quot;|translate}}
&lt;input
(change)&#x3D;&quot;countDays()&quot;
[(ngModel)]&#x3D;&quot;startDateInterval&quot;
type&#x3D;&quot;date&quot; &gt;
{{&quot;dates.interval_span&quot;|translate}}
&lt;input
(change)&#x3D;&quot;countDays()&quot;
[(ngModel)]&#x3D;&quot;endDateInterval&quot;
type&#x3D;&quot;date&quot; &gt;
&lt;br &gt;
&lt;/p &gt;
&lt;button
(click)&#x3D;&quot;addIntervalOfDates()&quot;
class&#x3D;&quot;btn btn-block btn--primary&quot; &gt;
&lt;i class&#x3D;&#x27;fa fa-plus&#x27; &gt;&lt;/i &gt;
{{&quot;dates.interval_button&quot;|translate}}
{{intervalDays}}
{{&quot;dates.interval_button_dates&quot;|translate}}
&lt;/button &gt;
&lt;hr &gt;
&lt;/section &gt;
&lt;div class&#x3D;&#x27;columns&#x27; &gt;
&lt;div class&#x3D;&#x27;column&#x27; &gt;
&lt;div class&#x3D;&quot;dates-list &quot; &gt;
&lt;div class&#x3D;&#x27;title&#x27; &gt;
&lt;span class&#x3D;&quot;count-dates&quot; &gt;
{{config.timeList.length}}
&lt;/span &gt;
&lt;span class&#x3D;&quot;count-dates-txt &quot; &gt;
{{&quot;dates.count_time&quot;|translate}}
(pour chaque jour)
&lt;/span &gt;
&lt;/div &gt;
&lt;div class&#x3D;&#x27;actions&#x27; &gt;
&lt;button
(click)&#x3D;&quot;addTime()&quot;
*ngIf&#x3D;&quot; &#x27;false&#x27; &#x3D;&#x3D;&#x3D; config.allowSeveralHours &quot;
class&#x3D;&quot;btn btn--primary&quot;
id&#x3D;&quot;add_time_button&quot;
&gt;
&lt;i class&#x3D;&#x27;fa fa-plus&#x27; &gt;&lt;/i &gt;
{{&quot;dates.add_time&quot;|translate}}
&lt;/button &gt;
&lt;button
(click)&#x3D;&quot;removeAllTimes()&quot;
*ngIf&#x3D;&quot; &#x27;false&#x27; &#x3D;&#x3D;&#x3D; config.allowSeveralHours &quot;
class&#x3D;&quot;btn btn--warning&quot;
id&#x3D;&quot;remove_time_button&quot;
&gt;
&lt;i class&#x3D;&#x27;fa fa-trash&#x27; &gt;&lt;/i &gt;
Aucune plage horaire
&lt;/button &gt;
&lt;button
(click)&#x3D;&quot;resetTimes()&quot;
*ngIf&#x3D;&quot; &#x27;false&#x27; &#x3D;&#x3D;&#x3D; config.allowSeveralHours&quot;
class&#x3D;&quot;btn btn--warning&quot;
id&#x3D;&quot;reset_time_button&quot;
&gt;
&lt;i class&#x3D;&#x27;fa fa-refresh&#x27; &gt;&lt;/i &gt;
réinitialiser
&lt;/button &gt;
&lt;/div &gt;
&lt;div
*ngIf&#x3D;&quot; &#x27;false&#x27; &#x3D;&#x3D;&#x3D; config.allowSeveralHours&quot;
class&#x3D;&quot;identical-dates&quot;
&gt;
&lt;div
*ngFor&#x3D;&quot;let time of config.timeList; index as id&quot;
class&#x3D;&quot;time-choice&quot;
&gt;
&lt;label for&#x3D;&#x27;timeChoices_{{id}}&#x27; &gt;
&lt;i class&#x3D;&#x27;fa fa-clock-o&#x27; &gt;&lt;/i &gt;
&lt;/label &gt;
&lt;input
[(ngModel)]&#x3D;&quot;time.literal&quot;
name&#x3D;&quot;timeChoices_{{id}}&quot;
type&#x3D;&quot;text&quot;
id&#x3D;&#x27;timeChoices_{{id}}&#x27;
&gt;
&lt;button
(click)&#x3D;&quot;time.timeList.splice(id, 1)&quot;
class&#x3D;&quot;btn btn-warning&quot; &gt;&lt;i class&#x3D;&quot;fa fa-times&quot; &gt;&lt;/i &gt;
&lt;/button &gt;
&lt;/div &gt;
&lt;/div &gt;
&lt;hr &gt;
&lt;span class&#x3D;&quot;count-dates title&quot; &gt;
{{config.dateList.length}}
&lt;/span &gt;
&lt;span &gt;
{{&quot;dates.count_dates&quot;|translate}}
&lt;/span &gt;
&lt;button
class&#x3D;&#x27;btn btn--primary&#x27;
(click)&#x3D;&#x27;addDate()&#x27; &gt;
{{&quot;dates.add&quot;|translate}}
&lt;/button &gt;
&lt;div
*ngFor&#x3D;&quot;let choice of config.dateList; index as id&quot;
class&#x3D;&quot;date-choice&quot;
&gt;
{{id}})
&lt;input
[(ngModel)]&#x3D;&quot;choice.date_object&quot;
name&#x3D;&quot;dateChoices_{{id}}&quot;
id&#x3D;&quot;dateChoices_{{id}}&quot;
useValueAsDate
type&#x3D;&quot;date&quot;
&gt;
&lt;button
(click)&#x3D;&quot;config.dateList.splice(id, 1)&quot;
class&#x3D;&quot;btn btn-warning&quot;
&gt;&lt;i class&#x3D;&quot;fa fa-times&quot; &gt;&lt;/i &gt;
&lt;/button &gt;
&lt;button
(click)&#x3D;&quot;addTimeToDate(choice, id)&quot;
*ngIf&#x3D;&quot; &#x27;true&#x27; &#x3D;&#x3D;&#x3D; config.allowSeveralHours&quot;
class&#x3D;&quot;btn btn--primary&quot;
&gt;
{{&quot;dates.add_time&quot;|translate}}
&lt;/button &gt;
&lt;div
*ngIf&#x3D;&quot; &#x27;true&#x27; &#x3D;&#x3D;&#x3D; config.allowSeveralHours&quot;
class&#x3D;&quot;several-times&quot;
&gt;
&lt;pre class&#x3D;&#x27;debug padded warning&#x27; &gt;
choice.timeList :
{{choice.timeList|json}}
&lt;/pre &gt;
&lt;h2 &gt;Several hours&lt;/h2 &gt;
&lt;div
*ngFor&#x3D;&quot;let timeItem of choice.timeList; index as idTime&quot;
class&#x3D;&quot;time-choice&quot;
&gt;
&lt;input
[(ngModel)]&#x3D;&quot;timeItem.literal&quot;
name&#x3D;&quot;dateTime_{{id}}_Choices_{{idTime}}&quot;
id&#x3D;&quot;dateTime_{{id}}_Choices_{{idTime}}&quot;
type&#x3D;&quot;text&quot;
&gt;
&lt;button
(click)&#x3D;&quot;choice.timeList.splice(idTime, 1)&quot;
class&#x3D;&quot;btn btn-warning&quot;
&gt;&lt;i class&#x3D;&quot;fa fa-times&quot; &gt;&lt;/i &gt;
&lt;/button &gt;
&lt;/div &gt;
&lt;/div &gt;
&lt;/div &gt;
&lt;/div &gt;
&lt;/div &gt;
&lt;div class&#x3D;&#x27;column&#x27; &gt;
&lt;framadate-resume &gt;&lt;/framadate-resume &gt;
&lt;/div &gt;
&lt;/div &gt;
&lt;a
[routerLink]&#x3D;&quot;&#x27;/step/resume&#x27;&quot;
class&#x3D;&quot;btn btn--full btn--primary&quot;
&gt;
C&#x27;est parfait!
&lt;/a &gt;
&lt;a
[routerLink]&#x3D;&quot;&#x27;/step/home&#x27;&quot;
class&#x3D;&quot;prev&quot;
&gt;
Retour
&lt;/a &gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./dates.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss">.several-times {
padding-left: 1em;
}
.date-interval {
padding: 1em;
margin-bottom: 1em;
}
.title {
font-size: 1.5rem;
}
:host {
input, button {
+ button {
margin-left: 1em;
}
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><div i18n > {{"dates.title"|translate}}</div ><div > <label for="multi_hours" > <span > {{"dates.hours_different"|translate}} </span > <select [(ngModel)]="config.allowSeveralHours" id="multi_hours" name="multi_hours" > <option value=true >{{"dates.multiple.different"|translate}}</option > <option value=false >{{"dates.multiple.identical"|translate}}</option > </select > <span i18n > {{"dates.hours_each_day"|translate}} </span > </label ></div ><button (click)="addDate()" class="btn btn--primary" id="add_date_button"> <i class=\'fa fa-plus\' ></i > {{"dates.add"|translate}}</button ><button (click)="showDateInterval = !showDateInterval " [ngClass]="{active: showDateInterval}" class="btn btn--primary" id="toggle_interval_button"> <i class=\'fa fa-clock-o\' ></i > {{"dates.add_interval"|translate}}</button ><button (click)="emptyAll()" class="btn btn--warning" id="empty_button"> <i class=\'fa fa-trash\' ></i > {{"dates.empty"|translate}}</button ><section *ngIf="showDateInterval" class="date-interval " > <!-- TODO à mettre en popup--> <hr > <h2 > {{"dates.add_interval"|translate}}</h2 > <p > {{"dates.interval_propose"|translate}} <input (change)="countDays()" [(ngModel)]="startDateInterval" type="date" > {{"dates.interval_span"|translate}} <input (change)="countDays()" [(ngModel)]="endDateInterval" type="date" > <br > </p > <button (click)="addIntervalOfDates()" class="btn btn-block btn--primary" > <i class=\'fa fa-plus\' ></i > {{"dates.interval_button"|translate}} {{intervalDays}} {{"dates.interval_button_dates"|translate}} </button > <hr ></section ><div class=\'columns\' > <div class=\'column\' > <div class="dates-list " > <div class=\'title\' > <span class="count-dates" > {{config.timeList.length}} </span > <span class="count-dates-txt " > {{"dates.count_time"|translate}} (pour chaque jour) </span > </div > <div class=\'actions\' > <button (click)="addTime()" *ngIf=" \'false\' === config.allowSeveralHours " class="btn btn--primary" id="add_time_button" > <i class=\'fa fa-plus\' ></i > {{"dates.add_time"|translate}} </button > <button (click)="removeAllTimes()" *ngIf=" \'false\' === config.allowSeveralHours " class="btn btn--warning" id="remove_time_button" > <i class=\'fa fa-trash\' ></i > Aucune plage horaire </button > <button (click)="resetTimes()" *ngIf=" \'false\' === config.allowSeveralHours" class="btn btn--warning" id="reset_time_button" > <i class=\'fa fa-refresh\' ></i > réinitialiser </button > </div > <div *ngIf=" \'false\' === config.allowSeveralHours" class="identical-dates" > <div *ngFor="let time of config.timeList; index as id" class="time-choice" > <label for=\'timeChoices_{{id}}\' > <i class=\'fa fa-clock-o\' ></i > </label > <input [(ngModel)]="time.literal" name="timeChoices_{{id}}" type="text" id=\'timeChoices_{{id}}\' > <button (click)="time.timeList.splice(id, 1)" class="btn btn-warning" ><i class="fa fa-times" ></i > </button > </div > </div > <hr > <span class="count-dates title" > {{config.dateList.length}} </span > <span > {{"dates.count_dates"|translate}} </span > <button class=\'btn btn--primary\' (click)=\'addDate()\' > {{"dates.add"|translate}} </button > <div *ngFor="let choice of config.dateList; index as id" class="date-choice" > {{id}}) <input [(ngModel)]="choice.date_object" name="dateChoices_{{id}}" id="dateChoices_{{id}}" useValueAsDate type="date" > <button (click)="config.dateList.splice(id, 1)" class="btn btn-warning" ><i class="fa fa-times" ></i > </button > <button (click)="addTimeToDate(choice, id)" *ngIf=" \'true\' === config.allowSeveralHours" class="btn btn--primary" > {{"dates.add_time"|translate}} </button > <div *ngIf=" \'true\' === config.allowSeveralHours" class="several-times" > <pre class=\'debug padded warning\' > choice.timeList : {{choice.timeList|json}} </pre > <h2 >Several hours</h2 > <div *ngFor="let timeItem of choice.timeList; index as idTime" class="time-choice" > <input [(ngModel)]="timeItem.literal" name="dateTime_{{id}}_Choices_{{idTime}}" id="dateTime_{{id}}_Choices_{{idTime}}" type="text" > <button (click)="choice.timeList.splice(idTime, 1)" class="btn btn-warning" ><i class="fa fa-times" ></i > </button > </div > </div > </div > </div > </div > <div class=\'column\' > <framadate-resume ></framadate-resume > </div ></div ><a [routerLink]="\'/step/resume\'" class="btn btn--full btn--primary"> C\'est parfait!</a ><a [routerLink]="\'/step/home\'" class="prev"> Retour</a ></div>'
var COMPONENTS = [{'name': 'AdminComponent', 'selector': 'framadate-admin'},{'name': 'AnswersComponent', 'selector': 'framadate-answers'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BaseComponent', 'selector': 'framadate-base-page'},{'name': 'ChoicesListComponent', 'selector': 'framadate-choices-list'},{'name': 'CommentsListComponent', 'selector': 'framadate-comments-list'},{'name': 'CopyTextComponent', 'selector': 'framadate-copy-text'},{'name': 'CreateOrRetrieveComponent', 'selector': 'framadate-create-or-retrieve'},{'name': 'DatesComponent', 'selector': 'framadate-dates'},{'name': 'DebuggerComponent', 'selector': 'framadate-debugger'},{'name': 'EndConfirmationComponent', 'selector': 'framadate-end-confirmation'},{'name': 'ErasableInputComponent', 'selector': 'framadate-erasable-input'},{'name': 'HeaderComponent', 'selector': 'framadate-header'},{'name': 'HomeComponent', 'selector': 'framadate-home'},{'name': 'KindComponent', 'selector': 'framadate-page-kind'},{'name': 'NavigationComponent', 'selector': 'framadate-navigation'},{'name': 'PasswordComponent', 'selector': 'framadate-password'},{'name': 'PicturesComponent', 'selector': 'framadate-pictures'},{'name': 'PollDisplayComponent', 'selector': 'framadate-poll-display'},{'name': 'PollGraphicComponent', 'selector': 'framadate-poll-graphic'},{'name': 'ResumeComponent', 'selector': 'framadate-resume'},{'name': 'SelectorComponent', 'selector': 'framadate-selector'},{'name': 'VisibilityComponent', 'selector': 'framadate-visibility'},{'name': 'VotingChoiceComponent', 'selector': 'framadate-voting-choice'},{'name': 'VotingCommentComponent', 'selector': 'framadate-voting-comment'},{'name': 'VotingComponent', 'selector': 'framadate-voting'},{'name': 'VotingGraphComponent', 'selector': 'framadate-voting-graph'},{'name': 'VotingNavigationComponent', 'selector': 'framadate-voting-navigation'},{'name': 'VotingSummaryComponent', 'selector': 'framadate-voting-summary'}];
var DIRECTIVES = [{'name': 'DateValueAccessor', 'selector': '[useValueAsDate]'},{'name': 'ResettableInputDirective', 'selector': '[framadateResettableInput]'}];
var ACTUAL_COMPONENT = {'name': 'DatesComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'DatesComponent.html';
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>