front end version 2 de framadate, un gestionnaire de sondage
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1428 lines
54 KiB

<!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>AnswersComponent</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/answers/answers.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>
<code><a href="https://angular.io/api/core/AfterViewInit" target="_blank" >AfterViewInit</a></code>
<code><a href="https://angular.io/api/core/OnChanges" target="_blank" >OnChanges</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-answers</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./answers.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./answers.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>
<a href="#allAnswersAreValid">allAnswersAreValid</a>
</li>
<li>
<a href="#answerList">answerList</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#config">config</a>
</li>
<li>
<a href="#currentHeader">currentHeader</a>
</li>
<li>
<a href="#display">display</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="#addAnswer">addAnswer</a>
</li>
<li>
<a href="#checkValidAnswers">checkValidAnswers</a>
</li>
<li>
<a href="#focusOnAnswer">focusOnAnswer</a>
</li>
<li>
<a href="#navigateOrDelete">navigateOrDelete</a>
</li>
<li>
<a href="#ngAfterViewInit">ngAfterViewInit</a>
</li>
<li>
<a href="#ngOnChanges">ngOnChanges</a>
</li>
<li>
<a href="#ngOnInit">ngOnInit</a>
</li>
<li>
<a href="#showModalForPictureOfAnswer">showModalForPictureOfAnswer</a>
</li>
<li>
<a href="#trackFunction">trackFunction</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>, document: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>, cd: <a href="https://angular.io/api/core/ChangeDetectorRef" target="_blank">ChangeDetectorRef</a>)</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/answers/answers.component.ts:18</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>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>
<tr>
<td>cd</td>
<td>
<code><a href="https://angular.io/api/core/ChangeDetectorRef" target="_blank" >ChangeDetectorRef</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="addAnswer"></a>
<span class="name">
<b>
addAnswer
</b>
<a href="#addAnswer"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>addAnswer()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="55"
class="link-to-prism">src/app/pages/answers/answers.component.ts:55</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="checkValidAnswers"></a>
<span class="name">
<b>
checkValidAnswers
</b>
<a href="#checkValidAnswers"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>checkValidAnswers()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="36"
class="link-to-prism">src/app/pages/answers/answers.component.ts:36</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="focusOnAnswer"></a>
<span class="name">
<b>
focusOnAnswer
</b>
<a href="#focusOnAnswer"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>focusOnAnswer(i)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="70"
class="link-to-prism">src/app/pages/answers/answers.component.ts:70</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>i</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="navigateOrDelete"></a>
<span class="name">
<b>
navigateOrDelete
</b>
<a href="#navigateOrDelete"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>navigateOrDelete(event: KeyboardEvent, i)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="81"
class="link-to-prism">src/app/pages/answers/answers.component.ts:81</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<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>event</td>
<td>
<code>KeyboardEvent</code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>i</td>
<td>
</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="ngAfterViewInit"></a>
<span class="name">
<b>
ngAfterViewInit
</b>
<a href="#ngAfterViewInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngAfterViewInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="46"
class="link-to-prism">src/app/pages/answers/answers.component.ts:46</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="ngOnChanges"></a>
<span class="name">
<b>
ngOnChanges
</b>
<a href="#ngOnChanges"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngOnChanges()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="31"
class="link-to-prism">src/app/pages/answers/answers.component.ts:31</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="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="28"
class="link-to-prism">src/app/pages/answers/answers.component.ts:28</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="showModalForPictureOfAnswer"></a>
<span class="name">
<b>
showModalForPictureOfAnswer
</b>
<a href="#showModalForPictureOfAnswer"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>showModalForPictureOfAnswer(answer)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="93"
class="link-to-prism">src/app/pages/answers/answers.component.ts:93</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>answer</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="trackFunction"></a>
<span class="name">
<b>
trackFunction
</b>
<a href="#trackFunction"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>trackFunction(index: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, item: <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="51"
class="link-to-prism">src/app/pages/answers/answers.component.ts:51</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<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>index</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>
<tr>
<td>item</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>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</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="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="allAnswersAreValid"></a>
<span class="name">
<b>
allAnswersAreValid</b>
<a href="#allAnswersAreValid"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="14" class="link-to-prism">src/app/pages/answers/answers.component.ts:14</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="answerList"></a>
<span class="name">
<b>
answerList</b>
<a href="#answerList"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>[]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[]</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/answers/answers.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">Defined in <a href="" data-line="20" class="link-to-prism">src/app/pages/answers/answers.component.ts:20</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="currentHeader"></a>
<span class="name">
<b>
currentHeader</b>
<a href="#currentHeader"><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">
<i>Default value : </i><code>&quot;&quot;</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/answers/answers.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="display"></a>
<span class="name">
<b>
display</b>
<a href="#display"><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">
<div class="io-line">Defined in <a href="" data-line="18" class="link-to-prism">src/app/pages/answers/answers.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="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 {AfterViewInit, ChangeDetectorRef, Component, Inject, OnChanges, OnInit} from &#x27;@angular/core&#x27;;
import {BaseComponent} from &#x27;../base-page/base.component&#x27;;
import {ConfigService} from &#x27;../../services/config.service&#x27;;
import {DOCUMENT} from &#x27;@angular/common&#x27;;
@Component({
selector: &#x27;framadate-answers&#x27;,
templateUrl: &#x27;./answers.component.html&#x27;,
styleUrls: [&#x27;./answers.component.scss&#x27;]
})
export class AnswersComponent extends BaseComponent implements OnInit, AfterViewInit, OnChanges {
allAnswersAreValid &#x3D; false;
answerList &#x3D; [];
currentHeader: any &#x3D; &quot;&quot;;
display: boolean;
constructor(public config: ConfigService,
@Inject(DOCUMENT) private document: any,
private cd: ChangeDetectorRef) {
super(config);
this.answerList &#x3D; this.config.answers;
}
// todo, manage validation of each page in a common way
ngOnInit() {
}
ngOnChanges() {
this.checkValidAnswers();
}
checkValidAnswers() {
this.allAnswersAreValid &#x3D; true;
this.config.answers.forEach(answer &#x3D;&gt; {
if (!answer.text.length) {
this.allAnswersAreValid &#x3D; false;
return;
}
});
}
ngAfterViewInit() {
this.focusOnAnswer(0);
this.checkValidAnswers();
}
trackFunction(index: number, item: any): number {
return item.id;
}
addAnswer() {
this.config.answers.push(
{
id: this.config.answers.length + 1,
text: &#x27;&#x27;,
url: &#x27;&#x27;,
file: &#x27;&#x27;,
literal: &#x27;&#x27;,
date_object: null,
timeList: []
});
this.cd.detectChanges(); // to refresh the view before focusing on the new input
this.focusOnAnswer(this.config.answers.length - 1)
}
focusOnAnswer(i) {
const AnswersDomToFocus &#x3D; this.document.querySelectorAll(&#x27;.answers .answer&#x27;);
const dom &#x3D; AnswersDomToFocus[i];
if (dom.focus) {
dom.focus();
}
if (dom.select) {
dom.select();
}
}
navigateOrDelete(event: KeyboardEvent, i) {
if (event.ctrlKey &amp;&amp; event.key &#x3D;&#x3D; &quot;d&quot;) {
this.config.answers.splice(i, 1)
}
if (event.key &#x3D;&#x3D; &quot;ArrowUp&quot; &amp;&amp; i &gt; 0) {
this.focusOnAnswer(i - 1);
}
if (event.key &#x3D;&#x3D; &quot;ArrowDown&quot; &amp;&amp; i &lt; this.config.answers.length) {
this.focusOnAnswer(i + 1);
}
}
showModalForPictureOfAnswer(answer) {
// TODO
this.currentHeader &#x3D; answer;
this.display &#x3D; true;
// this.config.todo();
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;div class&#x3D;&quot;answers&quot; &gt;
&lt;h1 i18n &gt;
Choisir les propositions
&lt;/h1 &gt;
&lt;p
class&#x3D;&quot;subtitle&quot;
i18n &gt;
Vous pouvez utiliser la syntaxe markdown, et naviguer entre les inputs avec les flèches du clavier.
&lt;/p &gt;
&lt;ol &gt;
&lt;li
#answers
*ngFor&#x3D;&quot;let answer of config.answers; index as i;trackBy trackFunction&quot;
class&#x3D;&quot;answer-item&quot; &gt;
&lt;button
class&#x3D;&#x27;btn btn--default&#x27;
title&#x3D;&#x27;ajouter une image&#x27;
(click)&#x3D;&#x27;showModalForPictureOfAnswer(answer)&#x27; &gt;
&lt;i class&#x3D;&#x27;fa fa-image&#x27; &gt;&lt;/i &gt;
&lt;/button &gt;
&lt;label
for&#x3D;&#x27;answer_{{answer.id}}_url&#x27;
(click)&#x3D;&#x27;showModalForPictureOfAnswer(answer)&#x27; &gt;
&lt;img
class&#x3D;&#x27;img-thumbnail&#x27;
src&#x3D;&#x27;{{answer.url}}&#x27;
alt&#x3D;&#x27;image {{answer.url}}&#x27; &gt;
&lt;/label &gt;
&lt;p-dialog
class&#x3D;&#x27;url-dialog&#x27;
[(visible)]&#x3D;&quot;display&quot;
[modal]&#x3D;&#x27;true&#x27; &gt;
&lt;p-header &gt;
{{answer.text}}
&lt;/p-header &gt;
&lt;form
action&#x3D;&#x27;#&#x27;
(submit)&#x3D;&#x27;display&#x3D;false&#x27; &gt;
&lt;label for&#x3D;&#x27;answer_{{answer.id}}_url&#x27; &gt;
Choisissez une URL pour illustrer le choix de réponse
&lt;/label &gt;
&lt;i class&#x3D;&#x27;fa fa-image&#x27; &gt;&lt;/i &gt;
&lt;br &gt;
&lt;input
class&#x3D;&#x27;input is-block&#x27;
id&#x3D;&#x27;answer_{{answer.id}}_url&#x27;
type&#x3D;&#x27;text&#x27;
autofocus&#x3D;&#x27;autofocus&#x27;
name&#x3D;&#x27;answer-url&#x27;
[(ngModel)]&#x3D;&#x27;answer.url&#x27; &gt;
&lt;/form &gt;
&lt;/p-dialog &gt;
&lt;input
type&#x3D;&quot;name&quot;
class&#x3D;&quot;answer&quot;
id&#x3D;&#x27;answer_{{answer.id}}&#x27;
[(ngModel)]&#x3D;&quot;answer.text&quot;
(keyup.enter)&#x3D;&quot;addAnswer()&quot;
(keyup)&#x3D;&quot;navigateOrDelete($event,i)&quot;
required&#x3D;&#x27;required&#x27;
placeholder&#x3D;&quot;réponse&quot;
&gt;
&lt;button
class&#x3D;&quot;btn btn--alert&quot;
(click)&#x3D;&quot;config.answers.splice(i,1)&quot; &gt;X
&lt;/button &gt;
&lt;/li &gt;
&lt;/ol &gt;
&lt;button
class&#x3D;&quot;btn btn--primary btn--outline&quot;
(click)&#x3D;&quot;addAnswer()&quot;
[ngClass]&#x3D;&quot;{&#x27;btn--primary&#x27;: allAnswersAreValid}&quot;
i18n
&gt;
&lt;i class&#x3D;&#x27;fa fa-plus&#x27; &gt;&lt;/i &gt;
Ajouter une proposition
&lt;/button &gt;
&lt;br &gt;
&lt;button
[routerLink]&#x3D;&quot;&#x27;/step/resume&#x27;&quot;
class&#x3D;&quot;btn btn--full &quot;
i18n
[ngClass]&#x3D;&quot;{&#x27;btn--primary&#x27;: allAnswersAreValid}&quot;
[disabled]&#x3D;&#x27;!allAnswersAreValid&#x27;
&gt;
Voyons ce que ça donne
&lt;/button &gt;
&lt;br &gt;
&lt;a
[routerLink]&#x3D;&quot;&#x27;/home&#x27;&quot;
class&#x3D;&quot;prev&quot;
i18n &gt;
Retour
&lt;/a &gt;
&lt;/div &gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./answers.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></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 class="answers" > <h1 i18n > Choisir les propositions </h1 > <p class="subtitle" i18n > Vous pouvez utiliser la syntaxe markdown, et naviguer entre les inputs avec les flèches du clavier. </p > <ol > <li #answers *ngFor="let answer of config.answers; index as i;trackBy trackFunction" class="answer-item" > <button class=\'btn btn--default\' title=\'ajouter une image\' (click)=\'showModalForPictureOfAnswer(answer)\' > <i class=\'fa fa-image\' ></i > </button > <label for=\'answer_{{answer.id}}_url\' (click)=\'showModalForPictureOfAnswer(answer)\' > <img class=\'img-thumbnail\' src=\'{{answer.url}}\' alt=\'image {{answer.url}}\' > </label > <p-dialog class=\'url-dialog\' [(visible)]="display" [modal]=\'true\' > <p-header > {{answer.text}} </p-header > <form action=\'#\' (submit)=\'display=false\' > <label for=\'answer_{{answer.id}}_url\' > Choisissez une URL pour illustrer le choix de réponse </label > <i class=\'fa fa-image\' ></i > <br > <input class=\'input is-block\' id=\'answer_{{answer.id}}_url\' type=\'text\' autofocus=\'autofocus\' name=\'answer-url\' [(ngModel)]=\'answer.url\' > </form > </p-dialog > <input type="name" class="answer" id=\'answer_{{answer.id}}\' [(ngModel)]="answer.text" (keyup.enter)="addAnswer()" (keyup)="navigateOrDelete($event,i)" required=\'required\' placeholder="réponse" > <button class="btn btn--alert" (click)="config.answers.splice(i,1)" >X </button > </li > </ol > <button class="btn btn--primary btn--outline" (click)="addAnswer()" [ngClass]="{\'btn--primary\': allAnswersAreValid}" i18n > <i class=\'fa fa-plus\' ></i > Ajouter une proposition </button > <br > <button [routerLink]="\'/step/resume\'" class="btn btn--full " i18n [ngClass]="{\'btn--primary\': allAnswersAreValid}" [disabled]=\'!allAnswersAreValid\' > Voyons ce que ça donne </button > <br > <a [routerLink]="\'/home\'" class="prev" i18n > Retour </a ></div ></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': 'AnswersComponent'};
</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 = 'AnswersComponent.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>