<!doctype html> <html class="no-js" lang=""> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>itc-ng 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">itc-ng 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 class"> <div class="content-data"> <ol class="breadcrumb"> <li>Classes</li> <li>UnitDef</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> </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/test-controller/test-controller.classes.ts</code> </p> <p class="comment"> <h3>Extends</h3> </p> <p class="comment"> <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </p> <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">Readonly</span> <a href="#alias">alias</a> </li> <li> <a href="#ignoreCompleted">ignoreCompleted</a> </li> <li> <a href="#locked">locked</a> </li> <li> <span class="modifier">Readonly</span> <a href="#naviButtonLabel">naviButtonLabel</a> </li> <li> <a href="#playerId">playerId</a> </li> <li> <a href="#statusPresentation">statusPresentation</a> </li> <li> <a href="#statusResponses">statusResponses</a> </li> <li> <a href="#canEnter">canEnter</a> </li> <li> <a href="#canLeave">canLeave</a> </li> <li> <a href="#children">children</a> </li> <li> <span class="modifier">Readonly</span> <a href="#id">id</a> </li> <li> <span class="modifier">Readonly</span> <a href="#sequenceId">sequenceId</a> </li> <li> <span class="modifier">Readonly</span> <a href="#title">title</a> </li> <li> <a href="#tryEnterMessage">tryEnterMessage</a> </li> <li> <a href="#tryLeaveMessage">tryLeaveMessage</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="#setStatusPresentation">setStatusPresentation</a> </li> <li> <a href="#setStatusResponses">setStatusResponses</a> </li> <li> <a href="#getMaxSequenceId">getMaxSequenceId</a> </li> <li> <a href="#setCanEnter">setCanEnter</a> </li> <li> <a href="#setCanLeave">setCanLeave</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(sequenceId: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank">number</a>, id: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, title: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, alias: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, naviButtonLabel: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="82" class="link-to-prism">src/app/test-controller/test-controller.classes.ts:82</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>sequenceId</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>id</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code> </td> <td> No </td> </tr> <tr> <td>title</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code> </td> <td> No </td> </tr> <tr> <td>alias</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code> </td> <td> No </td> </tr> <tr> <td>naviButtonLabel</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code> </td> <td> No </td> </tr> </tbody> </table> </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="alias"></a> <span class="name"> <b> <span class="modifier">Readonly</span> alias</b> <a href="#alias"><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/string" target="_blank" >string</a></code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="76" class="link-to-prism">src/app/test-controller/test-controller.classes.ts:76</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="ignoreCompleted"></a> <span class="name"> <b> ignoreCompleted</b> <a href="#ignoreCompleted"><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="82" class="link-to-prism">src/app/test-controller/test-controller.classes.ts:82</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="locked"></a> <span class="name"> <b> locked</b> <a href="#locked"><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="81" class="link-to-prism">src/app/test-controller/test-controller.classes.ts:81</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="naviButtonLabel"></a> <span class="name"> <b> <span class="modifier">Readonly</span> naviButtonLabel</b> <a href="#naviButtonLabel"><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/string" target="_blank" >string</a></code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="77" class="link-to-prism">src/app/test-controller/test-controller.classes.ts:77</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="playerId"></a> <span class="name"> <b> playerId</b> <a href="#playerId"><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/string" target="_blank" >string</a></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/test-controller/test-controller.classes.ts:78</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="statusPresentation"></a> <span class="name"> <b> statusPresentation</b> <a href="#statusPresentation"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <i>Type : </i> <code>"no" | "partly" | "full"</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="80" class="link-to-prism">src/app/test-controller/test-controller.classes.ts:80</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="statusResponses"></a> <span class="name"> <b> statusResponses</b> <a href="#statusResponses"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <i>Type : </i> <code>"no" | "some" | "all"</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="79" class="link-to-prism">src/app/test-controller/test-controller.classes.ts:79</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="canEnter"></a> <span class="name"> <b> canEnter</b> <a href="#canEnter"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <i>Type : </i> <code>"y" | "n" | "w"</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:9</a></code> </div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="canLeave"></a> <span class="name"> <b> canLeave</b> <a href="#canLeave"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <i>Type : </i> <code>"y" | "n" | "w"</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:10</a></code> </div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="children"></a> <span class="name"> <b> children</b> <a href="#children"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <i>Type : </i> <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement[]</a></code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:13</a></code> </div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="id"></a> <span class="name"> <b> <span class="modifier">Readonly</span> id</b> <a href="#id"><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/string" target="_blank" >string</a></code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:7</a></code> </div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="sequenceId"></a> <span class="name"> <b> <span class="modifier">Readonly</span> sequenceId</b> <a href="#sequenceId"><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"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:6</a></code> </div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="title"></a> <span class="name"> <b> <span class="modifier">Readonly</span> title</b> <a href="#title"><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/string" target="_blank" >string</a></code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:8</a></code> </div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="tryEnterMessage"></a> <span class="name"> <b> tryEnterMessage</b> <a href="#tryEnterMessage"><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/string" target="_blank" >string</a></code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:11</a></code> </div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="tryLeaveMessage"></a> <span class="name"> <b> tryLeaveMessage</b> <a href="#tryLeaveMessage"><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/string" target="_blank" >string</a></code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:12</a></code> </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="setStatusPresentation"></a> <span class="name"> <b> setStatusPresentation </b> <a href="#setStatusPresentation"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <code>setStatusPresentation(status: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="111" class="link-to-prism">src/app/test-controller/test-controller.classes.ts:111</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>status</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</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="setStatusResponses"></a> <span class="name"> <b> setStatusResponses </b> <a href="#setStatusResponses"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <code>setStatusResponses(status: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="98" class="link-to-prism">src/app/test-controller/test-controller.classes.ts:98</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>status</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</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="getMaxSequenceId"></a> <span class="name"> <b> getMaxSequenceId </b> <a href="#getMaxSequenceId"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <code>getMaxSequenceId(tmpId: <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">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:64</a></code> </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> <td>Default value</td> </tr> </thead> <tbody> <tr> <td>tmpId</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> <td> <code>0</code> </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="setCanEnter"></a> <span class="name"> <b> setCanEnter </b> <a href="#setCanEnter"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <code>setCanEnter(can: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, message: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, allChildren)</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:26</a></code> </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> <td>Default value</td> </tr> </thead> <tbody> <tr> <td>can</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code> </td> <td> No </td> <td> </td> </tr> <tr> <td>message</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code> </td> <td> No </td> <td> </td> </tr> <tr> <td>allChildren</td> <td> </td> <td> No </td> <td> <code>false</code> </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="setCanLeave"></a> <span class="name"> <b> setCanLeave </b> <a href="#setCanLeave"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <code>setCanLeave(can: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, message: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, allChildren)</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Inherited from <code><a href="../interfaces/Testlet.html" target="_self" >TestletContentElement</a></code> </div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <code><a href="../interfaces/Testlet.html#source" target="_self" >TestletContentElement:45</a></code> </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> <td>Default value</td> </tr> </thead> <tbody> <tr> <td>can</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code> </td> <td> No </td> <td> </td> </tr> <tr> <td>message</td> <td> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code> </td> <td> No </td> <td> </td> </tr> <tr> <td>allChildren</td> <td> </td> <td> No </td> <td> <code>false</code> </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> </section> </div> <div class="tab-pane fade tab-source-code" id="c-source"> <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { MaxTimerDataType } from './test-controller.interfaces'; export class TestletContentElement { readonly sequenceId: number; readonly id: string; readonly title: string; canEnter: 'y' | 'n' | 'w'; canLeave: 'y' | 'n' | 'w'; tryEnterMessage: string; tryLeaveMessage: string; children: TestletContentElement[]; constructor(sequenceId: number, id: string, title: string) { this.sequenceId = sequenceId; this.id = id; this.title = title; this.canEnter = 'y'; this.canLeave = 'y'; this.tryEnterMessage = ''; this.tryLeaveMessage = ''; this.children = []; } setCanEnter(can: string, message: string, allChildren = false): void { let newCan: 'y' | 'n' | 'w' = 'y'; if (can.length > 0) { const checkChar = can.substr(0, 1).toLowerCase(); if (checkChar === 'n') { newCan = 'n'; } else if (checkChar === 'w') { newCan = 'w'; } } this.canEnter = newCan; this.tryEnterMessage = message; if (allChildren) { this.children.forEach(tce => { tce.setCanEnter(can, message, allChildren); }); } } setCanLeave(can: string, message: string, allChildren = false): void { let newCan: 'y' | 'n' | 'w' = 'y'; if (can.length > 0) { const checkChar = can.substr(0, 1).toLowerCase(); if (checkChar === 'n') { newCan = 'n'; } else if (checkChar === 'w') { newCan = 'w'; } } this.canLeave = newCan; this.tryLeaveMessage = message; if (allChildren) { this.children.forEach(tce => { tce.setCanLeave(can, message, allChildren); }); } } getMaxSequenceId(tmpId = 0): number { if (this.sequenceId >= tmpId) { tmpId = this.sequenceId + 1; } this.children.forEach(tce => { tmpId = tce.getMaxSequenceId(tmpId); }); return tmpId; } } export class UnitDef extends TestletContentElement { readonly alias: string; readonly naviButtonLabel: string; playerId: string; statusResponses: 'no' | 'some' | 'all'; statusPresentation: 'no' | 'partly' | 'full'; locked = false; ignoreCompleted = false; constructor( sequenceId: number, id: string, title: string, alias: string, naviButtonLabel: string ) { super(sequenceId, id, title); this.alias = alias; this.naviButtonLabel = naviButtonLabel; this.statusResponses = 'no'; this.statusPresentation = 'no'; } setStatusResponses(status: string): void { let newStatus: 'no' | 'some' | 'all' = 'no'; if (status.length > 0) { const checkChar = status.substr(0, 1).toLowerCase(); if (checkChar === 's') { newStatus = 'some'; } else if (checkChar === 'a') { newStatus = 'all'; } } this.statusResponses = newStatus; } setStatusPresentation(status: string): void { let newStatus: 'no' | 'partly' | 'full' = 'no'; if (status.length > 0) { const checkChar = status.substr(0, 1).toLowerCase(); if (checkChar === 'p') { newStatus = 'partly'; } else if (checkChar === 'f') { newStatus = 'full'; } } this.statusPresentation = newStatus; } } export class UnitControllerData { unitDef: UnitDef = null; codeRequiringTestlets: Testlet[] = []; maxTimerRequiringTestlet: Testlet = null; testletLabel = ''; constructor(unitDef: UnitDef) { this.unitDef = unitDef; } } export class Testlet extends TestletContentElement { codeToEnter = ''; codePrompt = ''; maxTimeLeft = -1; addTestlet(id: string, title: string): Testlet { const newChild = new Testlet(0, id, title); this.children.push(newChild); return newChild; } addUnit( sequenceId: number, id: string, title: string, alias: string, naviButtonLabel: string): UnitDef { const newChild = new UnitDef(sequenceId, id, title, alias, naviButtonLabel); this.children.push(newChild); return newChild; } // first looking for the unit, then on the way back adding restrictions getUnitAt(sequenceId: number, isEntryPoint = true): UnitControllerData { let myreturn: UnitControllerData = null; for (const tce of this.children) { if (tce instanceof Testlet) { const localTestlet = tce as Testlet; myreturn = localTestlet.getUnitAt(sequenceId, false); if (myreturn !== null) { break; } } else if (tce instanceof UnitDef) { if (tce.sequenceId === sequenceId) { myreturn = new UnitControllerData(tce); break; } } } if (myreturn !== null) { if (this.codeToEnter.length > 0) { myreturn.codeRequiringTestlets.push(this); } if (this.maxTimeLeft > 0) { myreturn.maxTimerRequiringTestlet = this; } if (!isEntryPoint) { const label = this.title.trim(); if (label) { myreturn.testletLabel = label; } } } return myreturn; } getSequenceIdByUnitAlias(alias: string): number { let myReturn = -1; for (const tce of this.children) { if (tce instanceof Testlet) { const localTestlet = tce as Testlet; myReturn = localTestlet.getSequenceIdByUnitAlias(alias); if (myReturn >= 0) { break; } } else if (tce instanceof UnitDef) { if (tce.alias === alias) { myReturn = (tce as UnitDef).sequenceId; break; } } } return myReturn; } getTestlet(testletId: string): Testlet { let myreturn = null; if (this.id === testletId) { myreturn = this; } else { for (const tce of this.children) { if (tce instanceof Testlet) { const localTestlet = tce as Testlet; myreturn = localTestlet.getTestlet(testletId); if (myreturn !== null) { break; } } } } return myreturn; } clearTestletCodes(testletIdList: string[]): void { testletIdList.forEach(testletId => { const myTestlet = this.getTestlet(testletId); if (myTestlet) { myTestlet.codeToEnter = ''; } }); } getAllUnitSequenceIds(testletId = ''): number[] { let myreturn = []; if (testletId) { // find testlet const myTestlet = this.getTestlet(testletId); if (myTestlet) { myreturn = myTestlet.getAllUnitSequenceIds(); } } else { for (const tce of this.children) { if (tce instanceof Testlet) { const localTestlet = tce as Testlet; localTestlet.getAllUnitSequenceIds().forEach(u => myreturn.push(u)); } else { const localUnit = tce as UnitDef; myreturn.push(localUnit.sequenceId); } } } return myreturn; } setTimeLeft(testletId: string, maxTimeLeft: number): void { if (testletId) { // find testlet const myTestlet = this.getTestlet(testletId); if (myTestlet) { myTestlet.setTimeLeft('', maxTimeLeft); if (maxTimeLeft === 0) { myTestlet.lockUnits_allChildren(); } } } else { this.maxTimeLeft = maxTimeLeft; for (const tce of this.children) { if (tce instanceof Testlet) { const localTestlet = tce as Testlet; localTestlet.setTimeLeft('', maxTimeLeft); } } } } lockUnits_allChildren(testletId = ''): void { if (testletId) { // find testlet const myTestlet = this.getTestlet(testletId); if (myTestlet) { myTestlet.lockUnits_allChildren(); } } else { for (const tce of this.children) { if (tce instanceof Testlet) { const localTestlet = tce as Testlet; localTestlet.lockUnits_allChildren(); } else { const localUnit = tce as UnitDef; localUnit.locked = true; } } } } private minTestletUnitSequenceId(id = -1): number { let myreturn = id; for (const tce of this.children) { if (tce instanceof Testlet) { const localTestlet = tce as Testlet; myreturn = localTestlet.minTestletUnitSequenceId(myreturn); } else { const localUnit = tce as UnitDef; if ((myreturn === -1) || (localUnit.sequenceId < myreturn)) { myreturn = localUnit.sequenceId; } } } return myreturn; } lockUnits_before(testletId = ''): void { let myTestlet: Testlet = this; if (testletId) { myTestlet = this.getTestlet(testletId); } const minSeq = myTestlet.minTestletUnitSequenceId(); for (let i = minSeq - 1; i > 0; i--) { const u = this.getUnitAt(i); u.unitDef.locked = true; } } getNextUnlockedUnitSequenceId(currentUnitSequenceId: number): number { let nextUnitSequenceId = currentUnitSequenceId + 1; let myUnit: UnitControllerData = this.getUnitAt(currentUnitSequenceId); while (myUnit !== null && myUnit.unitDef.locked) { nextUnitSequenceId += 1; myUnit = this.getUnitAt(nextUnitSequenceId); } if (myUnit) { myUnit.unitDef.ignoreCompleted = true; } return myUnit ? nextUnitSequenceId : 0; } getFirstUnlockedUnitSequenceId(startWith: number): number { let myreturn = startWith; const myUnit: UnitControllerData = this.getUnitAt(myreturn); if (myUnit) { if (myUnit.unitDef.locked) { myreturn = this.getNextUnlockedUnitSequenceId(myreturn); } else if (myreturn > 1) { let myPrevUnit: UnitControllerData = this.getUnitAt(myreturn - 1); while (myPrevUnit !== null && myreturn > 1 && !myPrevUnit.unitDef.locked) { myreturn -= 1; myPrevUnit = this.getUnitAt(myreturn - 1); } } } return myUnit ? myreturn : 0; } getLastUnlockedUnitSequenceId(startWith: number): number { const maxSequenceId = this.getMaxSequenceId(); let myreturn = startWith; const myUnit: UnitControllerData = this.getUnitAt(myreturn); if (myUnit) { if (myUnit.unitDef.locked) { myreturn = this.getNextUnlockedUnitSequenceId(myreturn); } if (myreturn > 0 && myreturn < maxSequenceId) { let myNextUnit: UnitControllerData = this.getUnitAt(myreturn + 1); while (myNextUnit !== null && myreturn < maxSequenceId && !myNextUnit.unitDef.locked) { myreturn += 1; myNextUnit = this.getUnitAt(myreturn + 1); } } } return myUnit ? myreturn : 0; } lockUnitsIfTimeLeftNull(lock = false): void { // eslint-disable-next-line no-param-reassign lock = lock || this.maxTimeLeft === 0; for (const tce of this.children) { if (tce instanceof Testlet) { const localTestlet = tce as Testlet; localTestlet.lockUnitsIfTimeLeftNull(lock); } else if (lock) { const localUnit = tce as UnitDef; localUnit.locked = true; } } } } export class EnvironmentData { public appVersion: string; public browserVersion = ''; public browserName = ''; public get browserTxt(): string { return `${this.browserName} Version ${this.browserVersion}`; } public osName = ''; public screenSizeWidth = 0; public screenSizeHeight = 0; public loadTime: number = 0; public get screenSizeTxt(): string { return `Bildschirmgröße ist ${this.screenSizeWidth} x ${this.screenSizeWidth}`; } constructor (appVersion: string) { this.appVersion = appVersion; const deviceInfo = window.navigator.userAgent; // browser // eslint-disable-next-line max-len const regex = /(MSIE|Trident|(?!Gecko.+)Firefox|(?!AppleWebKit.+Chrome.+)Safari(?!.+Edge)|(?!AppleWebKit.+)Chrome(?!.+Edge)|(?!AppleWebKit.+Chrome.+Safari.+)Edge|AppleWebKit(?!.+Chrome|.+Safari)|Gecko(?!.+Firefox))(?: |\/)([\d\.apre]+)/; // credit due to: https://gist.github.com/ticky/3909462#gistcomment-2245669 const deviceInfoSplits = regex.exec(deviceInfo); const helperRegex = /[^.]*/; const browserInfo = helperRegex.exec(deviceInfoSplits[0]); const browserInfoSplits = browserInfo[0].split('/'); this.browserVersion = browserInfoSplits[1]; this.browserName = browserInfoSplits[0]; // os if (deviceInfo.indexOf('Windows') !== -1) { if (deviceInfo.indexOf('Windows NT 10.0') !== -1) { this.osName = 'Windows 10'; } else if (deviceInfo.indexOf('Windows NT 6.2') !== -1) { this.osName = 'Windows 8'; } else if (deviceInfo.indexOf('Windows NT 6.1') !== -1) { this.osName = 'Windows 7'; } else if (deviceInfo.indexOf('Windows NT 6.0') !== -1) { this.osName = 'Windows Vista'; } else if (deviceInfo.indexOf('Windows NT 5.1') !== -1) { this.osName = 'Windows XP'; } else if (deviceInfo.indexOf('Windows NT 5.0') !== -1) { this.osName = 'Windows 2000'; } else { this.osName = 'Windows, unbekannte Version'; } } else if (deviceInfo.indexOf('Mac') !== -1) { this.osName = 'Mac/iOS'; } else if (deviceInfo.indexOf('X11') !== -1) { this.osName = 'UNIX'; } else if (deviceInfo.indexOf('Linux') !== -1) { this.osName = 'Linux'; } else { this.osName = window.navigator.platform; } this.screenSizeHeight = window.screen.height; this.screenSizeWidth = window.screen.width; } } export class MaxTimerData { timeLeftSeconds: number; // seconds testletId: string; type: MaxTimerDataType; get timeLeftString(): string { const afterDecimal = Math.round(this.timeLeftSeconds % 60); return (Math.round(this.timeLeftSeconds - afterDecimal) / 60).toString() + ':' + (afterDecimal < 10 ? '0' : '') + afterDecimal.toString(); } get timeLeftMinString(): string { return Math.round(this.timeLeftSeconds / 60).toString() + ' min'; } constructor(timeMinutes: number, tId: string, type: MaxTimerDataType) { this.timeLeftSeconds = timeMinutes * 60; this.testletId = tId; this.type = type; } } </code></pre> </div> </div> </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 = 'class'; var COMPODOC_CURRENT_PAGE_URL = 'UnitDef.html'; var MAX_SEARCH_RESULTS = 15; </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>