<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4266">line 4266</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4330">line 4330</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3552">line 3552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3616">line 3616</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4174">line 4174</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4238">line 4238</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4260">line 4260</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4324">line 4324</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3552">line 3552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3616">line 3616</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4263">line 4263</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4327">line 4327</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3697">line 3697</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3761">line 3761</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3552">line 3552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3616">line 3616</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4433">line 4433</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4497">line 4497</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3552">line 3552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3616">line 3616</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3844">line 3844</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3908">line 3908</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3956">line 3956</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4020">line 4020</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3978">line 3978</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4042">line 4042</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3968">line 3968</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4032">line 4032</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3552">line 3552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3616">line 3616</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3162">line 3162</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3226">line 3226</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3062">line 3062</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3126">line 3126</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3318">line 3318</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3382">line 3382</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3231">line 3231</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3295">line 3295</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4382">line 4382</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4446">line 4446</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3552">line 3552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3616">line 3616</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3752">line 3752</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3816">line 3816</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3552">line 3552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3616">line 3616</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4000">line 4000</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4064">line 4064</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3552">line 3552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3616">line 3616</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3337">line 3337</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3401">line 3401</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3403">line 3403</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3467">line 3467</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3476">line 3476</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3540">line 3540</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4552">line 4552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4616">line 4616</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4664">line 4664</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4728">line 4728</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4673">line 4673</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4737">line 4737</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4613">line 4613</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4677">line 4677</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4618">line 4618</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4682">line 4682</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4655">line 4655</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4719">line 4719</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4639">line 4639</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4703">line 4703</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4647">line 4647</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4711">line 4711</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3062">line 3062</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3126">line 3126</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4081">line 4081</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4145">line 4145</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3487">line 3487</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3551">line 3551</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3561">line 3561</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3625">line 3625</a>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line3552">line 3552</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line3616">line 3616</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="form.js.html">form.js</a>, <a href="form.js.html#line4676">line 4676</a>
+ <a href="form.js.html">form.js</a>, <a href="form.js.html#line4740">line 4740</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3995">line 3995</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4288">line 4288</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4297">line 4297</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4590">line 4590</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4072">line 4072</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4365">line 4365</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4038">line 4038</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4331">line 4331</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4344">line 4344</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4637">line 4637</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4016">line 4016</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4309">line 4309</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3143">line 3143</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3436">line 3436</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3333">line 3333</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3626">line 3626</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4412">line 4412</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4705">line 4705</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3959">line 3959</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4252">line 4252</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4463">line 4463</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4756">line 4756</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3453">line 3453</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3746">line 3746</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3235">line 3235</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3528">line 3528</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4506">line 4506</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4799">line 4799</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3496">line 3496</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3789">line 3789</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3933">line 3933</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4226">line 4226</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3405">line 3405</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3698">line 3698</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3208">line 3208</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3501">line 3501</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3811">line 3811</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line4104">line 4104</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3537">line 3537</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3830">line 3830</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3592">line 3592</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3885">line 3885</a>
</div>
</div>
<div class="tag-source">
- <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3664">line 3664</a>
+ <a href="ui.js.html">ui.js</a>, <a href="ui.js.html#line3957">line 3957</a>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:09 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:33 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
if (has_titles) {
var trEl = E('tr', {
'class': 'tr cbi-section-table-titles ' + anon_class,
- 'data-title': (!this.anonymous || this.sectiontitle) ? _('Name') : null
+ 'data-title': (!this.anonymous || this.sectiontitle) ? _('Name') : null,
+ 'click': this.sortable ? ui.createHandlerFn(this, 'handleSort') : null
});
for (var i = 0, opt; i < max_cols && (opt = this.children[i]) != null; i++) {
trEl.appendChild(E('th', {
'class': 'th cbi-section-table-cell',
- 'data-widget': opt.__name__
+ 'data-widget': opt.__name__,
+ 'data-sortable-row': this.sortable ? '' : null
}));
if (opt.width != null)
.catch(function() {});
},
+ /** @private */
+ handleSort: function(ev) {
+ if (!ev.target.matches('th[data-sortable-row]'))
+ return;
+
+ var th = ev.target,
+ descending = (th.getAttribute('data-sort-direction') == 'desc'),
+ config_name = this.uciconfig || this.map.config,
+ index = 0,
+ list = [];
+
+ ev.currentTarget.querySelectorAll('th').forEach(function(other_th, i) {
+ if (other_th !== th)
+ other_th.removeAttribute('data-sort-direction');
+ else
+ index = i;
+ });
+
+ ev.currentTarget.parentNode.querySelectorAll('tr.cbi-section-table-row').forEach(L.bind(function(tr, i) {
+ var sid = tr.getAttribute('data-sid'),
+ opt = tr.childNodes[index].getAttribute('data-name'),
+ val = this.cfgvalue(sid, opt);
+
+ tr.querySelectorAll('.flash').forEach(function(n) {
+ n.classList.remove('flash')
+ });
+
+ list.push([
+ ui.Table.prototype.deriveSortKey((val != null) ? val.trim() : ''),
+ tr
+ ]);
+ }, this));
+
+ list.sort(function(a, b) {
+ if (a[0] < b[0])
+ return descending ? 1 : -1;
+
+ if (a[0] > b[0])
+ return descending ? -1 : 1;
+
+ return 0;
+ });
+
+ window.requestAnimationFrame(L.bind(function() {
+ var ref_sid, cur_sid;
+
+ for (var i = 0; i < list.length; i++) {
+ list[i][1].childNodes[index].classList.add('flash');
+ th.parentNode.parentNode.appendChild(list[i][1]);
+
+ cur_sid = list[i][1].getAttribute('data-sid');
+
+ if (ref_sid)
+ this.map.data.move(config_name, cur_sid, ref_sid, true);
+
+ ref_sid = cur_sid;
+ }
+
+ th.setAttribute('data-sort-direction', descending ? 'asc' : 'desc');
+ }, this));
+ },
+
/**
* Add further options to the per-section instanced modal popup.
*
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:07 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:07 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a target="_blank" href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:07 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:07 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:07 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>
}
});
+var UITable = baseclass.extend(/** @lends LuCI.ui.table.prototype */ {
+ __init__: function(captions, options, placeholder) {
+ if (!Array.isArray(captions)) {
+ this.initFromMarkup(captions);
+
+ return;
+ }
+
+ var id = options.id || 'table%08x'.format(Math.random() * 0xffffffff);
+
+ var table = E('table', { 'id': id, 'class': 'table' }, [
+ E('tr', { 'class': 'tr table-titles', 'click': UI.prototype.createHandlerFn(this, 'handleSort') })
+ ]);
+
+ this.id = id;
+ this.node = table
+ this.options = options;
+
+ var sorting = this.getActiveSortState();
+
+ for (var i = 0; i < captions.length; i++) {
+ if (captions[i] == null)
+ continue;
+
+ var th = E('th', { 'class': 'th' }, [ captions[i] ]);
+
+ if (typeof(options.captionClasses) == 'object')
+ DOMTokenList.prototype.add.apply(th.classList, L.toArray(options.captionClasses[i]));
+
+ if (options.sortable !== false && (typeof(options.sortable) != 'object' || options.sortable[i] !== false)) {
+ th.setAttribute('data-sortable-row', true);
+
+ if (sorting && sorting[0] == i)
+ th.setAttribute('data-sort-direction', sorting[1] ? 'desc' : 'asc');
+ }
+
+ table.firstElementChild.appendChild(th);
+ }
+
+ if (placeholder) {
+ var trow = table.appendChild(E('tr', { 'class': 'tr placeholder' })),
+ td = trow.appendChild(E('td', { 'class': 'td' }, placeholder));
+
+ if (typeof(captionClasses) == 'object')
+ DOMTokenList.prototype.add.apply(td.classList, L.toArray(captionClasses[0]));
+ }
+
+ DOMTokenList.prototype.add.apply(table.classList, L.toArray(options.classes));
+ },
+
+ update: function(data, placeholder) {
+ var placeholder = placeholder || this.options.placeholder || _('No data', 'empty table placeholder'),
+ sorting = this.getActiveSortState();
+
+ if (!Array.isArray(data))
+ return;
+
+ if (sorting) {
+ var list = data.map(L.bind(function(row) {
+ return [ this.deriveSortKey(row[sorting[0]], sorting[0]), row ];
+ }, this));
+
+ list.sort(function(a, b) {
+ if (a[0] < b[0])
+ return sorting[1] ? 1 : -1;
+
+ if (a[0] > b[0])
+ return sorting[1] ? -1 : 1;
+
+ return 0;
+ });
+
+ data.length = 0;
+
+ list.forEach(function(item) {
+ data.push(item[1]);
+ });
+ }
+
+ this.data = data;
+ this.placeholder = placeholder;
+
+ var n = 0,
+ rows = this.node.querySelectorAll('tr'),
+ trows = [],
+ headings = [].slice.call(this.node.firstElementChild.querySelectorAll('th')),
+ captionClasses = this.options.captionClasses;
+
+ data.forEach(function(row) {
+ trows[n] = E('tr', { 'class': 'tr' });
+
+ for (var i = 0; i < headings.length; i++) {
+ var text = (headings[i].innerText || '').trim();
+ var td = trows[n].appendChild(E('td', {
+ 'class': 'td',
+ 'data-title': (text !== '') ? text : null
+ }, (row[i] != null) ? row[i] : ''));
+
+ if (typeof(captionClasses) == 'object')
+ DOMTokenList.prototype.add.apply(td.classList, L.toArray(captionClasses[i]));
+
+ if (!td.classList.contains('cbi-section-actions'))
+ headings[i].setAttribute('data-sortable-row', true);
+ }
+
+ trows[n].classList.add('cbi-rowstyle-%d'.format((n++ % 2) ? 2 : 1));
+ });
+
+ for (var i = 0; i < n; i++) {
+ if (rows[i+1])
+ this.node.replaceChild(trows[i], rows[i+1]);
+ else
+ this.node.appendChild(trows[i]);
+ }
+
+ while (rows[++n])
+ target.removeChild(rows[n]);
+
+ if (placeholder && this.node.firstElementChild === this.node.lastElementChild) {
+ var trow = this.node.appendChild(E('tr', { 'class': 'tr placeholder' })),
+ td = trow.appendChild(E('td', { 'class': 'td' }, placeholder));
+
+ if (typeof(captionClasses) == 'object')
+ DOMTokenList.prototype.add.apply(td.classList, L.toArray(captionClasses[0]));
+ }
+
+ return this.node;
+ },
+
+ render: function() {
+ return this.node;
+ },
+
+ /** @private */
+ initFromMarkup: function(node) {
+ if (!dom.elem(node))
+ node = document.querySelector(node);
+
+ if (!node)
+ throw 'Invalid table selector';
+
+ var options = {},
+ headrow = node.querySelector('tr, .tr');
+
+ if (!headrow)
+ return;
+
+ options.classes = [].slice.call(node.classList).filter(function(c) { return c != 'table' });
+ options.sortable = [];
+ options.captionClasses = [];
+
+ headrow.querySelectorAll('th, .th').forEach(function(th, i) {
+ options.sortable[i] = !th.classList.contains('cbi-section-actions');
+ options.captionClasses[i] = [].slice.call(th.classList).filter(function(c) { return c != 'th' });
+ });
+
+ headrow.addEventListener('click', UI.prototype.createHandlerFn(this, 'handleSort'));
+
+ this.id = node.id;
+ this.node = node;
+ this.options = options;
+ },
+
+ /** @private */
+ deriveSortKey: function(value, index) {
+ var opts = this.options || {},
+ hint, m;
+
+ if (opts.sortable == true || opts.sortable == null)
+ hint = 'auto';
+ else if (typeof( opts.sortable) == 'object')
+ hint = opts.sortable[index];
+
+ if (dom.elem(value))
+ value = value.innerText.trim();
+
+ switch (hint || 'auto') {
+ case true:
+ case 'auto':
+ m = /^([0-9a-fA-F:.]+)(?:\/([0-9a-fA-F:.]+))?$/.exec(value);
+
+ if (m) {
+ var addr, mask;
+
+ addr = validation.parseIPv6(m[1]);
+ mask = m[2] ? validation.parseIPv6(m[2]) : null;
+
+ if (addr && mask != null)
+ return '%04x%04x%04x%04x%04x%04x%04x%04x%04x%04x%04x%04x%04x%04x%04x%04x'.format(
+ addr[0], addr[1], addr[2], addr[3], addr[4], addr[5], addr[6], addr[7],
+ mask[0], mask[1], mask[2], mask[3], mask[4], mask[5], mask[6], mask[7]
+ );
+ else if (addr)
+ return '%04x%04x%04x%04x%04x%04x%04x%04x%02x'.format(
+ addr[0], addr[1], addr[2], addr[3], addr[4], addr[5], addr[6], addr[7],
+ m[2] ? +m[2] : 128
+ );
+
+ addr = validation.parseIPv4(m[1]);
+ mask = m[2] ? validation.parseIPv4(m[2]) : null;
+
+ if (addr && mask != null)
+ return '%03d%03d%03d%03d%03d%03d%03d%03d'.format(
+ addr[0], addr[1], addr[2], addr[3],
+ mask[0], mask[1], mask[2], mask[3]
+ );
+ else if (addr)
+ return '%03d%03d%03d%03d%02d'.format(
+ addr[0], addr[1], addr[2], addr[3],
+ m[2] ? +m[2] : 32
+ );
+ }
+
+ m = /^(?:(\d+)d )?(\d+)h (\d+)m (\d+)s$/.exec(value);
+
+ if (m)
+ return '%05d%02d%02d%02d'.format(+m[1], +m[2], +m[3], +m[4]);
+
+ m = /^(\d+)\b(\D*)$/.exec(value);
+
+ if (m)
+ return '%010d%s'.format(+m[1], m[2]);
+
+ return String(value);
+
+ case 'ignorecase':
+ return String(value).toLowerCase();
+
+ case 'numeric':
+ return +value;
+
+ default:
+ return String(value);
+ }
+ },
+
+ /** @private */
+ getActiveSortState: function() {
+ if (this.sortState)
+ return this.sortState;
+
+ var page = document.body.getAttribute('data-page'),
+ key = page + '.' + this.id,
+ state = session.getLocalData('tablesort');
+
+ if (L.isObject(state) && Array.isArray(state[key]))
+ return state[key];
+
+ return null;
+ },
+
+ /** @private */
+ setActiveSortState: function(index, descending) {
+ this.sortState = [ index, descending ];
+
+ if (!this.options.id)
+ return;
+
+ var page = document.body.getAttribute('data-page'),
+ key = page + '.' + this.id,
+ state = session.getLocalData('tablesort');
+
+ if (!L.isObject(state))
+ state = {};
+
+ state[key] = this.sortState;
+
+ session.setLocalData('tablesort', state);
+ },
+
+ /** @private */
+ handleSort: function(ev) {
+ if (!ev.target.matches('th[data-sortable-row]'))
+ return;
+
+ var th = ev.target,
+ direction = (th.getAttribute('data-sort-direction') == 'asc'),
+ index = 0;
+
+ this.node.firstElementChild.querySelectorAll('th').forEach(function(other_th, i) {
+ if (other_th !== th)
+ other_th.removeAttribute('data-sort-direction');
+ else
+ index = i;
+ });
+
+ th.setAttribute('data-sort-direction', direction ? 'desc' : 'asc');
+
+ this.setActiveSortState(index, direction);
+ this.update(this.data, this.placeholder);
+ }
+});
+
/**
* @class ui
* @memberof LuCI
menu: UIMenu,
+ Table: UITable,
+
AbstractElement: UIElement,
/* Widgets */
<footer>
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Thu Feb 24 2022 08:05:08 GMT+0000 (Coordinated Universal Time)
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Fri Feb 25 2022 11:36:32 GMT+0000 (Coordinated Universal Time)
</footer>
</div>
</div>