collect-your-stuff 1.2.9 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +802 -77
  2. package/dist/collections/arrayable/ArrayElement.d.ts +2 -0
  3. package/dist/collections/arrayable/ArrayElement.js +4 -2
  4. package/dist/collections/arrayable/ArrayElement.min.js +1 -1
  5. package/dist/collections/arrayable/Arrayable.d.ts +25 -11
  6. package/dist/collections/arrayable/Arrayable.js +37 -12
  7. package/dist/collections/arrayable/Arrayable.min.js +1 -1
  8. package/dist/collections/doubly-linked-list/DoubleLinker.d.ts +5 -1
  9. package/dist/collections/doubly-linked-list/DoubleLinker.js +5 -1
  10. package/dist/collections/doubly-linked-list/DoublyLinkedList.d.ts +11 -5
  11. package/dist/collections/doubly-linked-list/DoublyLinkedList.js +43 -25
  12. package/dist/collections/doubly-linked-list/DoublyLinkedList.min.js +1 -1
  13. package/dist/collections/linked-list/LinkedList.d.ts +13 -7
  14. package/dist/collections/linked-list/LinkedList.js +42 -23
  15. package/dist/collections/linked-list/LinkedList.min.js +1 -1
  16. package/dist/collections/linked-list/Linker.d.ts +5 -2
  17. package/dist/collections/linked-list/Linker.js +9 -5
  18. package/dist/collections/linked-list/Linker.min.js +1 -1
  19. package/dist/collections/linked-tree-list/LinkedTreeList.d.ts +7 -1
  20. package/dist/collections/linked-tree-list/LinkedTreeList.js +6 -1
  21. package/dist/collections/linked-tree-list/TreeLinker.d.ts +7 -1
  22. package/dist/collections/linked-tree-list/TreeLinker.js +7 -1
  23. package/dist/collections/queue/Queue.d.ts +6 -3
  24. package/dist/collections/queue/Queue.js +23 -18
  25. package/dist/collections/queue/Queue.min.js +1 -1
  26. package/dist/collections/queue/Queueable.d.ts +10 -4
  27. package/dist/collections/queue/Queueable.js +11 -6
  28. package/dist/collections/queue/Queueable.min.js +1 -1
  29. package/dist/collections/stack/Stack.d.ts +4 -3
  30. package/dist/collections/stack/Stack.js +4 -4
  31. package/dist/collections/stack/Stack.min.js +1 -1
  32. package/dist/collections/stack/Stackable.d.ts +4 -1
  33. package/dist/collections/stack/Stackable.js +7 -5
  34. package/dist/collections/stack/Stackable.min.js +1 -1
  35. package/dist/main.d.ts +26 -3
  36. package/dist/main.js +101 -1
  37. package/dist/main.min.js +1 -1
  38. package/dist/recipes/ArrayIterator.d.ts +10 -0
  39. package/dist/recipes/ArrayIterator.js +10 -0
  40. package/dist/recipes/DoubleLinkerIterator.d.ts +9 -0
  41. package/dist/recipes/DoubleLinkerIterator.js +9 -0
  42. package/dist/recipes/LinkerIterator.d.ts +9 -0
  43. package/dist/recipes/LinkerIterator.js +9 -0
  44. package/dist/recipes/Runnable.d.ts +3 -2
  45. package/dist/recipes/Runnable.js +3 -2
  46. package/dist/recipes/TreeLinkerIterator.d.ts +9 -0
  47. package/dist/recipes/TreeLinkerIterator.js +9 -0
  48. package/dist/services/services.d.ts +2 -2
  49. package/package.json +2 -1
package/README.md CHANGED
@@ -148,7 +148,8 @@ All of the collections available.
148
148
  <a name="module_collect-your-stuff..collectYourStuff"></a>
149
149
 
150
150
  ### collect-your-stuff~collectYourStuff
151
- All methods exported from this module are encapsulated within collect-your-stuff.
151
+ All methods exported from this module are encapsulated within collect-your-stuff (this default export is the same
152
+ set of classes as the named exports).
152
153
 
153
154
  **Kind**: inner constant of [<code>collect-your-stuff</code>](#module_collect-your-stuff)
154
155
  <a name="TreeLinkerIterator"></a>
@@ -157,6 +158,33 @@ All methods exported from this module are encapsulated within collect-your-stuff
157
158
  Class TreeLinkerIterator returns the next value taking a left-first approach down a tree.
158
159
 
159
160
  **Kind**: global class
161
+
162
+ * [TreeLinkerIterator](#TreeLinkerIterator)
163
+ * [new TreeLinkerIterator(current)](#new_TreeLinkerIterator_new)
164
+ * [.next([value])](#TreeLinkerIterator+next) ⇒ <code>IteratorResult.&lt;IsTreeNode&gt;</code>
165
+
166
+ <a name="new_TreeLinkerIterator_new"></a>
167
+
168
+ ### new TreeLinkerIterator(current)
169
+ Create an iterator starting at the given item.
170
+
171
+
172
+ | Param | Type | Description |
173
+ | --- | --- | --- |
174
+ | current | <code>IsTreeNode</code> | The item to start from. |
175
+
176
+ <a name="TreeLinkerIterator+next"></a>
177
+
178
+ ### treeLinkerIterator.next([value]) ⇒ <code>IteratorResult.&lt;IsTreeNode&gt;</code>
179
+ Get the current item and move on to the following one (left-first, down each branch).
180
+
181
+ **Kind**: instance method of [<code>TreeLinkerIterator</code>](#TreeLinkerIterator)
182
+ **Returns**: <code>IteratorResult.&lt;IsTreeNode&gt;</code> - The current item, or done when there are no more.
183
+
184
+ | Param | Type | Description |
185
+ | --- | --- | --- |
186
+ | [value] | <code>\*</code> | Not used, present to match the Iterator interface. |
187
+
160
188
  <a name="Runnable"></a>
161
189
 
162
190
  ## Runnable
@@ -165,8 +193,9 @@ Identify a class that can be run.
165
193
  **Kind**: global class
166
194
 
167
195
  * [Runnable](#Runnable)
168
- * [new Runnable(data)](#new_Runnable_new)
196
+ * [new Runnable([data])](#new_Runnable_new)
169
197
  * _instance_
198
+ * [.data](#Runnable+data)
170
199
  * [.task](#Runnable+task) ⇒ <code>function</code>
171
200
  * [.run()](#Runnable+run) ⇒ <code>\*</code>
172
201
  * _static_
@@ -174,14 +203,20 @@ Identify a class that can be run.
174
203
 
175
204
  <a name="new_Runnable_new"></a>
176
205
 
177
- ### new Runnable(data)
206
+ ### new Runnable([data])
178
207
  Instantiate a Runnable class.
179
208
 
180
209
 
181
- | Param | Type | Default |
182
- | --- | --- | --- |
183
- | data | <code>\*</code> | <code></code> |
210
+ | Param | Type | Default | Description |
211
+ | --- | --- | --- | --- |
212
+ | [data] | <code>\*</code> | <code></code> | The task (a function) or the data which the task returns. |
213
+
214
+ <a name="Runnable+data"></a>
215
+
216
+ ### runnable.data
217
+ The task (or data) this runnable holds.
184
218
 
219
+ **Kind**: instance property of [<code>Runnable</code>](#Runnable)
185
220
  <a name="Runnable+task"></a>
186
221
 
187
222
  ### runnable.task ⇒ <code>function</code>
@@ -201,9 +236,9 @@ Check if a given thing is Runnable
201
236
 
202
237
  **Kind**: static method of [<code>Runnable</code>](#Runnable)
203
238
 
204
- | Param | Type |
205
- | --- | --- |
206
- | thing | <code>\*</code> |
239
+ | Param | Type | Description |
240
+ | --- | --- | --- |
241
+ | thing | <code>\*</code> | The value to check, or nothing to check whether this class is Runnable. |
207
242
 
208
243
  <a name="LinkerIterator"></a>
209
244
 
@@ -211,18 +246,100 @@ Check if a given thing is Runnable
211
246
  Class LinkerIterator returns the next value when using linkers of linked type lists.
212
247
 
213
248
  **Kind**: global class
249
+
250
+ * [LinkerIterator](#LinkerIterator)
251
+ * [new LinkerIterator(current)](#new_LinkerIterator_new)
252
+ * [.next([value])](#LinkerIterator+next) ⇒ <code>IteratorResult.&lt;IsLinker&gt;</code>
253
+
254
+ <a name="new_LinkerIterator_new"></a>
255
+
256
+ ### new LinkerIterator(current)
257
+ Create an iterator starting at the given item.
258
+
259
+
260
+ | Param | Type | Description |
261
+ | --- | --- | --- |
262
+ | current | <code>IsLinker</code> | The item to start from. |
263
+
264
+ <a name="LinkerIterator+next"></a>
265
+
266
+ ### linkerIterator.next([value]) ⇒ <code>IteratorResult.&lt;IsLinker&gt;</code>
267
+ Get the current item and move on to the following one.
268
+
269
+ **Kind**: instance method of [<code>LinkerIterator</code>](#LinkerIterator)
270
+ **Returns**: <code>IteratorResult.&lt;IsLinker&gt;</code> - The current item, or done when there are no more.
271
+
272
+ | Param | Type | Description |
273
+ | --- | --- | --- |
274
+ | [value] | <code>\*</code> | Not used, present to match the Iterator interface. |
275
+
214
276
  <a name="DoubleLinkerIterator"></a>
215
277
 
216
278
  ## DoubleLinkerIterator
217
279
  Class DoubleLinkerIterator returns the next value when using linkers of linked type lists.
218
280
 
219
281
  **Kind**: global class
282
+
283
+ * [DoubleLinkerIterator](#DoubleLinkerIterator)
284
+ * [new DoubleLinkerIterator(current)](#new_DoubleLinkerIterator_new)
285
+ * [.next([value])](#DoubleLinkerIterator+next) ⇒ <code>IteratorResult.&lt;IsDoubleLinker&gt;</code>
286
+
287
+ <a name="new_DoubleLinkerIterator_new"></a>
288
+
289
+ ### new DoubleLinkerIterator(current)
290
+ Create an iterator starting at the given item.
291
+
292
+
293
+ | Param | Type | Description |
294
+ | --- | --- | --- |
295
+ | current | <code>IsDoubleLinker</code> | The item to start from. |
296
+
297
+ <a name="DoubleLinkerIterator+next"></a>
298
+
299
+ ### doubleLinkerIterator.next([value]) ⇒ <code>IteratorResult.&lt;IsDoubleLinker&gt;</code>
300
+ Get the current item and move on to the following one.
301
+
302
+ **Kind**: instance method of [<code>DoubleLinkerIterator</code>](#DoubleLinkerIterator)
303
+ **Returns**: <code>IteratorResult.&lt;IsDoubleLinker&gt;</code> - The current item, or done when there are no more.
304
+
305
+ | Param | Type | Description |
306
+ | --- | --- | --- |
307
+ | [value] | <code>\*</code> | Not used, present to match the Iterator interface. |
308
+
220
309
  <a name="ArrayIterator"></a>
221
310
 
222
311
  ## ArrayIterator
223
312
  Class ArrayIterator returns the next value when using elements of array type list.
224
313
 
225
314
  **Kind**: global class
315
+
316
+ * [ArrayIterator](#ArrayIterator)
317
+ * [new ArrayIterator(innerList, [index])](#new_ArrayIterator_new)
318
+ * [.next([value])](#ArrayIterator+next) ⇒ <code>IteratorResult.&lt;IsElement&gt;</code>
319
+
320
+ <a name="new_ArrayIterator_new"></a>
321
+
322
+ ### new ArrayIterator(innerList, [index])
323
+ Create an iterator over the given array.
324
+
325
+
326
+ | Param | Type | Default | Description |
327
+ | --- | --- | --- | --- |
328
+ | innerList | <code>Array.&lt;IsElement&gt;</code> | | The elements to iterate over. |
329
+ | [index] | <code>number</code> | <code>0</code> | The position to start from. |
330
+
331
+ <a name="ArrayIterator+next"></a>
332
+
333
+ ### arrayIterator.next([value]) ⇒ <code>IteratorResult.&lt;IsElement&gt;</code>
334
+ Get the next element, moving the iterator forward.
335
+
336
+ **Kind**: instance method of [<code>ArrayIterator</code>](#ArrayIterator)
337
+ **Returns**: <code>IteratorResult.&lt;IsElement&gt;</code> - The next element, or done when there are no more.
338
+
339
+ | Param | Type | Description |
340
+ | --- | --- | --- |
341
+ | [value] | <code>\*</code> | Not used, present to match the Iterator interface. |
342
+
226
343
  <a name="Stackable"></a>
227
344
 
228
345
  ## Stackable ⇐ [<code>Linker</code>](#Linker)
@@ -234,7 +351,10 @@ Stackable represents a runnable entry in stack.
234
351
  * [Stackable](#Stackable) ⇐ [<code>Linker</code>](#Linker)
235
352
  * [new Stackable([stackData])](#new_Stackable_new)
236
353
  * _instance_
354
+ * [.data](#Stackable+data)
355
+ * [.next](#Stackable+next)
237
356
  * [.task](#Stackable+task) ⇒ <code>\*</code>
357
+ * [.classType](#Linker+classType)
238
358
  * [.run()](#Stackable+run) ⇒ <code>\*</code>
239
359
  * _static_
240
360
  * [.fromArray([values], [classType])](#Stackable.fromArray) ⇒ <code>Object</code>
@@ -247,17 +367,38 @@ Create a stackable item that can be used in a stack.
247
367
 
248
368
  | Param | Type | Default | Description |
249
369
  | --- | --- | --- | --- |
250
- | [stackData] | <code>Object</code> | <code>{}</code> | |
370
+ | [stackData] | <code>Object</code> | <code>{}</code> | The settings for the new stackable. |
251
371
  | [stackData.task] | <code>\*</code> | <code></code> | The data to be stored in this stackable |
252
372
  | [stackData.next] | [<code>Stackable</code>](#Stackable) \| <code>null</code> | <code></code> | The reference to the next stackable if any |
253
373
  | [stackData.ready] | <code>boolean</code> \| <code>function</code> | <code>false</code> | Indicate if the stackable is ready to run |
254
374
 
375
+ <a name="Stackable+data"></a>
376
+
377
+ ### stackable.data
378
+ The task (or data) this stackable holds.
379
+
380
+ **Kind**: instance property of [<code>Stackable</code>](#Stackable)
381
+ **Overrides**: [<code>data</code>](#Linker+data)
382
+ <a name="Stackable+next"></a>
383
+
384
+ ### stackable.next
385
+ The stackable below this one, or null when this is the bottom.
386
+
387
+ **Kind**: instance property of [<code>Stackable</code>](#Stackable)
388
+ **Overrides**: [<code>next</code>](#Linker+next)
255
389
  <a name="Stackable+task"></a>
256
390
 
257
391
  ### stackable.task ⇒ <code>\*</code>
258
392
  Retrieve the data which should be formed as a task.
259
393
 
260
394
  **Kind**: instance property of [<code>Stackable</code>](#Stackable)
395
+ <a name="Linker+classType"></a>
396
+
397
+ ### stackable.classType
398
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
399
+
400
+ **Kind**: instance property of [<code>Stackable</code>](#Stackable)
401
+ **Overrides**: [<code>classType</code>](#Linker+classType)
261
402
  <a name="Stackable+run"></a>
262
403
 
263
404
  ### stackable.run() ⇒ <code>\*</code>
@@ -284,7 +425,7 @@ Store a collection of items which can only be inserted and removed from the top.
284
425
  **Kind**: global class
285
426
 
286
427
  * [Stack](#Stack)
287
- * [new Stack(stackedList, listClass, stackableClass)](#new_Stack_new)
428
+ * [new Stack([stackedList], [listClass], [stackableClass])](#new_Stack_new)
288
429
  * [.empty()](#Stack+empty) ⇒ <code>boolean</code>
289
430
  * [.top()](#Stack+top) ⇒ [<code>Stackable</code>](#Stackable)
290
431
  * [.pop()](#Stack+pop) ⇒ [<code>Stackable</code>](#Stackable) \| <code>null</code>
@@ -294,15 +435,15 @@ Store a collection of items which can only be inserted and removed from the top.
294
435
 
295
436
  <a name="new_Stack_new"></a>
296
437
 
297
- ### new Stack(stackedList, listClass, stackableClass)
438
+ ### new Stack([stackedList], [listClass], [stackableClass])
298
439
  Instantiate the state with the starter stacked list.
299
440
 
300
441
 
301
- | Param | Type | Default |
302
- | --- | --- | --- |
303
- | stackedList | <code>Iterable</code> \| [<code>LinkedList</code>](#LinkedList) | <code></code> |
304
- | listClass | <code>IsArrayable</code> | |
305
- | stackableClass | [<code>Stackable</code>](#Stackable) | |
442
+ | Param | Type | Default | Description |
443
+ | --- | --- | --- | --- |
444
+ | [stackedList] | <code>Iterable</code> \| [<code>LinkedList</code>](#LinkedList) | <code></code> | The list of stackables to start in this stack. |
445
+ | [listClass] | <code>IsArrayable</code> | <code>LinkedList</code> | The type of list to create when no stacked list is given. |
446
+ | [stackableClass] | [<code>Stackable</code>](#Stackable) | <code>Stackable</code> | The class used to wrap stacked items. |
306
447
 
307
448
  <a name="Stack+empty"></a>
308
449
 
@@ -356,9 +497,15 @@ Queueable represents a runnable entry in a queue.
356
497
  * [Queueable](#Queueable) ⇐ [<code>Linker</code>](#Linker)
357
498
  * [new Queueable([queueableData])](#new_Queueable_new)
358
499
  * _instance_
500
+ * [.data](#Queueable+data)
501
+ * [.next](#Queueable+next)
502
+ * [.complete](#Queueable+complete)
503
+ * [.ready](#Queueable+ready)
504
+ * [.running](#Queueable+running)
359
505
  * [.isReady](#Queueable+isReady) ⇒ <code>boolean</code>
360
506
  * [.task](#Queueable+task) ⇒ <code>\*</code>
361
- * [.markCompleted(completeResponse)](#Queueable+markCompleted) ⇒ <code>completeResponse</code>
507
+ * [.classType](#Linker+classType)
508
+ * [.markCompleted([completeResponse])](#Queueable+markCompleted) ⇒ <code>completeResponse</code>
362
509
  * [.run()](#Queueable+run) ⇒ <code>completeResponse</code>
363
510
  * _static_
364
511
  * [.fromArray(values, [classType])](#Queueable.fromArray) ⇒ <code>Object</code>
@@ -371,11 +518,43 @@ Create a queueable item that can be used in a queue.
371
518
 
372
519
  | Param | Type | Default | Description |
373
520
  | --- | --- | --- | --- |
374
- | [queueableData] | <code>Object</code> | <code>{}</code> | |
521
+ | [queueableData] | <code>Object</code> | <code>{}</code> | The settings for the new queueable. |
375
522
  | [queueableData.task] | <code>\*</code> | <code></code> | The data to be stored in this queueable |
376
523
  | [queueableData.next] | [<code>Queueable</code>](#Queueable) \| <code>null</code> | <code></code> | The reference to the next queueable if any |
377
524
  | [queueableData.ready] | <code>boolean</code> \| <code>function</code> | <code>false</code> | Indicate if the queueable is ready to run |
378
525
 
526
+ <a name="Queueable+data"></a>
527
+
528
+ ### queueable.data
529
+ The task (or data) this queueable holds.
530
+
531
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
532
+ **Overrides**: [<code>data</code>](#Linker+data)
533
+ <a name="Queueable+next"></a>
534
+
535
+ ### queueable.next
536
+ The queueable after this one, or null when this is the last.
537
+
538
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
539
+ **Overrides**: [<code>next</code>](#Linker+next)
540
+ <a name="Queueable+complete"></a>
541
+
542
+ ### queueable.complete
543
+ Whether this queueable has been run to completion.
544
+
545
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
546
+ <a name="Queueable+ready"></a>
547
+
548
+ ### queueable.ready
549
+ Whether this queueable may run, or a function which answers that when asked.
550
+
551
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
552
+ <a name="Queueable+running"></a>
553
+
554
+ ### queueable.running
555
+ Whether this queueable is running right now.
556
+
557
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
379
558
  <a name="Queueable+isReady"></a>
380
559
 
381
560
  ### queueable.isReady ⇒ <code>boolean</code>
@@ -388,16 +567,23 @@ Check ready state.
388
567
  Retrieve the data which should be formed as a task.
389
568
 
390
569
  **Kind**: instance property of [<code>Queueable</code>](#Queueable)
570
+ <a name="Linker+classType"></a>
571
+
572
+ ### queueable.classType
573
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
574
+
575
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
576
+ **Overrides**: [<code>classType</code>](#Linker+classType)
391
577
  <a name="Queueable+markCompleted"></a>
392
578
 
393
- ### queueable.markCompleted(completeResponse) ⇒ <code>completeResponse</code>
579
+ ### queueable.markCompleted([completeResponse]) ⇒ <code>completeResponse</code>
394
580
  Set this queueable as completed.
395
581
 
396
582
  **Kind**: instance method of [<code>Queueable</code>](#Queueable)
397
583
 
398
584
  | Param | Type | Default | Description |
399
585
  | --- | --- | --- | --- |
400
- | completeResponse | <code>Object</code> | | |
586
+ | [completeResponse] | <code>Object</code> | <code>{}</code> | The result to report for the task. |
401
587
  | [completeResponse.success] | <code>\*</code> | <code>true</code> | Indicate when the task failed (use false) or give a success message |
402
588
  | [completeResponse.error] | <code>\*</code> | <code>false</code> | Indicate a task was error-free (use false) or give an error message |
403
589
  | [completeResponse.context] | <code>\*</code> | <code></code> | Provide additional data in the response |
@@ -428,7 +614,7 @@ Maintain a series of queued items.
428
614
  **Kind**: global class
429
615
 
430
616
  * [Queue](#Queue)
431
- * [new Queue(queuedList, listClass, queueableClass)](#new_Queue_new)
617
+ * [new Queue(queuedList, [listClass], [queueableClass])](#new_Queue_new)
432
618
  * [.dequeue()](#Queue+dequeue) ⇒ <code>completeResponse</code> \| <code>\*</code>
433
619
  * [.empty()](#Queue+empty) ⇒ <code>boolean</code>
434
620
  * [.enqueue(queueable)](#Queue+enqueue)
@@ -438,15 +624,15 @@ Maintain a series of queued items.
438
624
 
439
625
  <a name="new_Queue_new"></a>
440
626
 
441
- ### new Queue(queuedList, listClass, queueableClass)
627
+ ### new Queue(queuedList, [listClass], [queueableClass])
442
628
  Instantiate the queue with the given queue list.
443
629
 
444
630
 
445
631
  | Param | Type | Default | Description |
446
632
  | --- | --- | --- | --- |
447
633
  | queuedList | <code>Iterable</code> \| [<code>LinkedList</code>](#LinkedList) | <code></code> | Give the list of queueables to start in this queue. |
448
- | listClass | <code>IsArrayable</code> | | |
449
- | queueableClass | [<code>Queueable</code>](#Queueable) | | |
634
+ | [listClass] | <code>IsArrayable</code> | <code>LinkedList</code> | The type of list to create when no queued list is given. |
635
+ | [queueableClass] | [<code>Queueable</code>](#Queueable) | <code>Queueable</code> | The class used to wrap queued items. |
450
636
 
451
637
  <a name="Queue+dequeue"></a>
452
638
 
@@ -500,6 +686,12 @@ TreeLinker represents a node in a LinkedTreeList having a parent (or root) and c
500
686
  * [TreeLinker](#TreeLinker) ⇐ [<code>DoubleLinker</code>](#DoubleLinker)
501
687
  * [new TreeLinker([settings], listClass)](#new_TreeLinker_new)
502
688
  * _instance_
689
+ * [.classType](#TreeLinker+classType)
690
+ * [.data](#TreeLinker+data)
691
+ * [.next](#TreeLinker+next)
692
+ * [.prev](#TreeLinker+prev)
693
+ * [.parent](#TreeLinker+parent)
694
+ * [.children](#TreeLinker+children)
503
695
  * [.childrenFromArray(children, listClass)](#TreeLinker+childrenFromArray) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList) \| <code>null</code>
504
696
  * _static_
505
697
  * [.fromArray([values], [classType])](#TreeLinker.fromArray) ⇒ <code>Object</code>
@@ -512,7 +704,7 @@ Create the new TreeLinker instance, provide the data and optionally set referenc
512
704
 
513
705
  | Param | Type | Default | Description |
514
706
  | --- | --- | --- | --- |
515
- | [settings] | <code>Object</code> | <code>{}</code> | |
707
+ | [settings] | <code>Object</code> | <code>{}</code> | The settings for the new tree node. |
516
708
  | [settings.data] | <code>\*</code> | <code></code> | The data to be stored in this tree node |
517
709
  | [settings.next] | [<code>TreeLinker</code>](#TreeLinker) | <code></code> | The reference to the next linker if any |
518
710
  | [settings.prev] | [<code>TreeLinker</code>](#TreeLinker) | <code></code> | The reference to the previous linker if any |
@@ -520,6 +712,46 @@ Create the new TreeLinker instance, provide the data and optionally set referenc
520
712
  | [settings.parent] | [<code>TreeLinker</code>](#TreeLinker) | <code></code> | The reference to a parent linker if any |
521
713
  | listClass | <code>IsArrayable.&lt;IsTreeNode&gt;</code> | | Give the type of list to use for storing the children |
522
714
 
715
+ <a name="TreeLinker+classType"></a>
716
+
717
+ ### treeLinker.classType
718
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
719
+
720
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
721
+ **Overrides**: [<code>classType</code>](#DoubleLinker+classType)
722
+ <a name="TreeLinker+data"></a>
723
+
724
+ ### treeLinker.data
725
+ The data stored in this tree node.
726
+
727
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
728
+ **Overrides**: [<code>data</code>](#DoubleLinker+data)
729
+ <a name="TreeLinker+next"></a>
730
+
731
+ ### treeLinker.next
732
+ The sibling after this node, or null when this is the last child.
733
+
734
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
735
+ **Overrides**: [<code>next</code>](#DoubleLinker+next)
736
+ <a name="TreeLinker+prev"></a>
737
+
738
+ ### treeLinker.prev
739
+ The sibling before this node, or null when this is the first child.
740
+
741
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
742
+ **Overrides**: [<code>prev</code>](#DoubleLinker+prev)
743
+ <a name="TreeLinker+parent"></a>
744
+
745
+ ### treeLinker.parent
746
+ The node this node is a child of, or null for a root node.
747
+
748
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
749
+ <a name="TreeLinker+children"></a>
750
+
751
+ ### treeLinker.children
752
+ The list of the children of this node, or null when it has none.
753
+
754
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
523
755
  <a name="TreeLinker+childrenFromArray"></a>
524
756
 
525
757
  ### treeLinker.childrenFromArray(children, listClass) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList) \| <code>null</code>
@@ -553,7 +785,10 @@ LinkedTreeList represents a collection stored with a root and spreading in branc
553
785
  **Extends**: [<code>DoublyLinkedList</code>](#DoublyLinkedList)
554
786
 
555
787
  * [LinkedTreeList](#LinkedTreeList) ⇐ [<code>DoublyLinkedList</code>](#DoublyLinkedList)
556
- * [new LinkedTreeList()](#new_LinkedTreeList_new)
788
+ * [new LinkedTreeList([linkerClass])](#new_LinkedTreeList_new)
789
+ * [.classType](#LinkedTreeList+classType)
790
+ * [.innerList](#LinkedTreeList+innerList)
791
+ * [.initialized](#LinkedTreeList+initialized)
557
792
  * [.list](#LinkedTreeList+list) ⇒ [<code>TreeLinker</code>](#TreeLinker)
558
793
  * [.first](#LinkedTreeList+first) ⇒ [<code>TreeLinker</code>](#TreeLinker)
559
794
  * [.last](#LinkedTreeList+last) ⇒ [<code>TreeLinker</code>](#TreeLinker)
@@ -570,13 +805,39 @@ LinkedTreeList represents a collection stored with a root and spreading in branc
570
805
  * [.remove(node)](#LinkedTreeList+remove) ⇒ [<code>TreeLinker</code>](#TreeLinker)
571
806
  * [.reset()](#LinkedTreeList+reset) ⇒ [<code>TreeLinker</code>](#TreeLinker)
572
807
  * [.item(index)](#LinkedTreeList+item) ⇒ [<code>TreeLinker</code>](#TreeLinker) \| <code>null</code>
573
- * [.forEach(callback, thisArg)](#LinkedTreeList+forEach)
808
+ * [.forEach(callback, thisArg)](#LinkedTreeList+forEach) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)
574
809
 
575
810
  <a name="new_LinkedTreeList_new"></a>
576
811
 
577
- ### new LinkedTreeList()
812
+ ### new LinkedTreeList([linkerClass])
578
813
  Create the new LinkedTreeList instance, configure the list class.
579
814
 
815
+
816
+ | Param | Type | Default | Description |
817
+ | --- | --- | --- | --- |
818
+ | [linkerClass] | [<code>TreeLinker</code>](#TreeLinker) | <code>TreeLinker</code> | The class used to wrap given data as tree linkers. |
819
+
820
+ <a name="LinkedTreeList+classType"></a>
821
+
822
+ ### linkedTreeList.classType
823
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
824
+
825
+ **Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)
826
+ **Overrides**: [<code>classType</code>](#DoublyLinkedList+classType)
827
+ <a name="LinkedTreeList+innerList"></a>
828
+
829
+ ### linkedTreeList.innerList
830
+ A linker of the list (null when the list is empty); the head is found by walking back from it.
831
+
832
+ **Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)
833
+ **Overrides**: [<code>innerList</code>](#DoublyLinkedList+innerList)
834
+ <a name="LinkedTreeList+initialized"></a>
835
+
836
+ ### linkedTreeList.initialized
837
+ Whether the inner list has been initialized (it can only be initialized once).
838
+
839
+ **Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)
840
+ **Overrides**: [<code>initialized</code>](#DoublyLinkedList+initialized)
580
841
  <a name="LinkedTreeList+list"></a>
581
842
 
582
843
  ### linkedTreeList.list ⇒ [<code>TreeLinker</code>](#TreeLinker)
@@ -737,11 +998,12 @@ Retrieve a TreeLinker item from this list by numeric index, otherwise return nul
737
998
 
738
999
  <a name="LinkedTreeList+forEach"></a>
739
1000
 
740
- ### linkedTreeList.forEach(callback, thisArg)
1001
+ ### linkedTreeList.forEach(callback, thisArg) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)
741
1002
  Be able to run forEach on this LinkedTreeList to iterate over the TreeLinker Items.
742
1003
 
743
1004
  **Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)
744
1005
  **Overrides**: [<code>forEach</code>](#DoublyLinkedList+forEach)
1006
+ **Returns**: [<code>LinkedTreeList</code>](#LinkedTreeList) - The list which was iterated.
745
1007
 
746
1008
  | Param | Type | Description |
747
1009
  | --- | --- | --- |
@@ -758,7 +1020,12 @@ Linker represents a node in a LinkedList.
758
1020
 
759
1021
  * [Linker](#Linker) ⇐ [<code>ArrayElement</code>](#ArrayElement)
760
1022
  * [new Linker([nodeData])](#new_Linker_new)
761
- * [.fromArray([values], [classType])](#Linker.fromArray) ⇒ <code>Object</code>
1023
+ * _instance_
1024
+ * [.classType](#Linker+classType)
1025
+ * [.data](#Linker+data)
1026
+ * [.next](#Linker+next)
1027
+ * _static_
1028
+ * [.fromArray([values], [classType])](#Linker.fromArray) ⇒ <code>Object</code>
762
1029
 
763
1030
  <a name="new_Linker_new"></a>
764
1031
 
@@ -768,10 +1035,30 @@ Create the new Linker instance, provide the data and optionally give the next Li
768
1035
 
769
1036
  | Param | Type | Default | Description |
770
1037
  | --- | --- | --- | --- |
771
- | [nodeData] | <code>Object</code> | <code>{}</code> | |
1038
+ | [nodeData] | <code>Object</code> | <code>{}</code> | The settings for the new linker. |
772
1039
  | [nodeData.data] | <code>\*</code> | <code></code> | The data to be stored in this linker |
773
1040
  | [nodeData.next] | [<code>Linker</code>](#Linker) \| <code>null</code> | <code></code> | The reference to the next linker if any |
774
1041
 
1042
+ <a name="Linker+classType"></a>
1043
+
1044
+ ### linker.classType
1045
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
1046
+
1047
+ **Kind**: instance property of [<code>Linker</code>](#Linker)
1048
+ **Overrides**: [<code>classType</code>](#ArrayElement+classType)
1049
+ <a name="Linker+data"></a>
1050
+
1051
+ ### linker.data
1052
+ The data stored in this linker.
1053
+
1054
+ **Kind**: instance property of [<code>Linker</code>](#Linker)
1055
+ **Overrides**: [<code>data</code>](#ArrayElement+data)
1056
+ <a name="Linker+next"></a>
1057
+
1058
+ ### linker.next
1059
+ The linker after this one, or null when this is the last.
1060
+
1061
+ **Kind**: instance property of [<code>Linker</code>](#Linker)
775
1062
  <a name="Linker.fromArray"></a>
776
1063
 
777
1064
  ### Linker.fromArray([values], [classType]) ⇒ <code>Object</code>
@@ -793,7 +1080,10 @@ LinkedList represents a collection stored as a LinkedList with next references.
793
1080
  **Extends**: [<code>Arrayable</code>](#Arrayable)
794
1081
 
795
1082
  * [LinkedList](#LinkedList) ⇐ [<code>Arrayable</code>](#Arrayable)
796
- * [new LinkedList()](#new_LinkedList_new)
1083
+ * [new LinkedList([linkerClass])](#new_LinkedList_new)
1084
+ * [.classType](#LinkedList+classType)
1085
+ * [.innerList](#LinkedList+innerList)
1086
+ * [.initialized](#LinkedList+initialized)
797
1087
  * [.list](#LinkedList+list) ⇒ [<code>Linker</code>](#Linker)
798
1088
  * [.first](#LinkedList+first) ⇒ [<code>Linker</code>](#Linker)
799
1089
  * [.last](#LinkedList+last) ⇒ [<code>Linker</code>](#Linker)
@@ -809,9 +1099,35 @@ LinkedList represents a collection stored as a LinkedList with next references.
809
1099
 
810
1100
  <a name="new_LinkedList_new"></a>
811
1101
 
812
- ### new LinkedList()
1102
+ ### new LinkedList([linkerClass])
813
1103
  Create the new LinkedList instance.
814
1104
 
1105
+
1106
+ | Param | Type | Default | Description |
1107
+ | --- | --- | --- | --- |
1108
+ | [linkerClass] | [<code>Linker</code>](#Linker) | <code>Linker</code> | The class used to wrap given data as linkers. |
1109
+
1110
+ <a name="LinkedList+classType"></a>
1111
+
1112
+ ### linkedList.classType
1113
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
1114
+
1115
+ **Kind**: instance property of [<code>LinkedList</code>](#LinkedList)
1116
+ **Overrides**: [<code>classType</code>](#Arrayable+classType)
1117
+ <a name="LinkedList+innerList"></a>
1118
+
1119
+ ### linkedList.innerList
1120
+ The first linker of the list (null when the list is empty), from which the whole list is reached.
1121
+
1122
+ **Kind**: instance property of [<code>LinkedList</code>](#LinkedList)
1123
+ **Overrides**: [<code>innerList</code>](#Arrayable+innerList)
1124
+ <a name="LinkedList+initialized"></a>
1125
+
1126
+ ### linkedList.initialized
1127
+ Whether the inner list has been initialized (it can only be initialized once).
1128
+
1129
+ **Kind**: instance property of [<code>LinkedList</code>](#LinkedList)
1130
+ **Overrides**: [<code>initialized</code>](#Arrayable+initialized)
815
1131
  <a name="LinkedList+list"></a>
816
1132
 
817
1133
  ### linkedList.list ⇒ [<code>Linker</code>](#Linker)
@@ -950,7 +1266,10 @@ DoublyLinkedList represents a collection stored as a LinkedList with prev and ne
950
1266
  **Extends**: [<code>LinkedList</code>](#LinkedList)
951
1267
 
952
1268
  * [DoublyLinkedList](#DoublyLinkedList) ⇐ [<code>LinkedList</code>](#LinkedList)
953
- * [new DoublyLinkedList()](#new_DoublyLinkedList_new)
1269
+ * [new DoublyLinkedList([linkerClass])](#new_DoublyLinkedList_new)
1270
+ * [.classType](#DoublyLinkedList+classType)
1271
+ * [.innerList](#DoublyLinkedList+innerList)
1272
+ * [.initialized](#DoublyLinkedList+initialized)
954
1273
  * [.list](#DoublyLinkedList+list) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
955
1274
  * [.first](#DoublyLinkedList+first) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
956
1275
  * [.last](#DoublyLinkedList+last) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
@@ -963,13 +1282,39 @@ DoublyLinkedList represents a collection stored as a LinkedList with prev and ne
963
1282
  * [.remove(node)](#DoublyLinkedList+remove) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
964
1283
  * [.reset()](#DoublyLinkedList+reset) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
965
1284
  * [.item(index)](#DoublyLinkedList+item) ⇒ [<code>DoubleLinker</code>](#DoubleLinker) \| <code>null</code>
966
- * [.forEach(callback, thisArg)](#DoublyLinkedList+forEach)
1285
+ * [.forEach(callback, thisArg)](#DoublyLinkedList+forEach) ⇒ [<code>DoublyLinkedList</code>](#DoublyLinkedList)
967
1286
 
968
1287
  <a name="new_DoublyLinkedList_new"></a>
969
1288
 
970
- ### new DoublyLinkedList()
1289
+ ### new DoublyLinkedList([linkerClass])
971
1290
  Create the new DoublyLinkedList instance.
972
1291
 
1292
+
1293
+ | Param | Type | Default | Description |
1294
+ | --- | --- | --- | --- |
1295
+ | [linkerClass] | [<code>DoubleLinker</code>](#DoubleLinker) | <code>DoubleLinker</code> | The class used to wrap given data as linkers. |
1296
+
1297
+ <a name="DoublyLinkedList+classType"></a>
1298
+
1299
+ ### doublyLinkedList.classType
1300
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
1301
+
1302
+ **Kind**: instance property of [<code>DoublyLinkedList</code>](#DoublyLinkedList)
1303
+ **Overrides**: [<code>classType</code>](#LinkedList+classType)
1304
+ <a name="DoublyLinkedList+innerList"></a>
1305
+
1306
+ ### doublyLinkedList.innerList
1307
+ A linker of the list (null when the list is empty); the head is found by walking back from it.
1308
+
1309
+ **Kind**: instance property of [<code>DoublyLinkedList</code>](#DoublyLinkedList)
1310
+ **Overrides**: [<code>innerList</code>](#LinkedList+innerList)
1311
+ <a name="DoublyLinkedList+initialized"></a>
1312
+
1313
+ ### doublyLinkedList.initialized
1314
+ Whether the inner list has been initialized (it can only be initialized once).
1315
+
1316
+ **Kind**: instance property of [<code>DoublyLinkedList</code>](#DoublyLinkedList)
1317
+ **Overrides**: [<code>initialized</code>](#LinkedList+initialized)
973
1318
  <a name="DoublyLinkedList+list"></a>
974
1319
 
975
1320
  ### doublyLinkedList.list ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
@@ -1094,11 +1439,12 @@ Retrieve a DoubleLinker item from this list by numeric index, otherwise return n
1094
1439
 
1095
1440
  <a name="DoublyLinkedList+forEach"></a>
1096
1441
 
1097
- ### doublyLinkedList.forEach(callback, thisArg)
1442
+ ### doublyLinkedList.forEach(callback, thisArg) ⇒ [<code>DoublyLinkedList</code>](#DoublyLinkedList)
1098
1443
  Be able to run forEach on this DoublyLinkedList to iterate over the DoubleLinker Items.
1099
1444
 
1100
1445
  **Kind**: instance method of [<code>DoublyLinkedList</code>](#DoublyLinkedList)
1101
1446
  **Overrides**: [<code>forEach</code>](#LinkedList+forEach)
1447
+ **Returns**: [<code>DoublyLinkedList</code>](#DoublyLinkedList) - The list which was iterated.
1102
1448
 
1103
1449
  | Param | Type | Description |
1104
1450
  | --- | --- | --- |
@@ -1115,7 +1461,13 @@ DoubleLinker represents a node in a DoublyLinkedList which is chained by next an
1115
1461
 
1116
1462
  * [DoubleLinker](#DoubleLinker) ⇐ [<code>Linker</code>](#Linker)
1117
1463
  * [new DoubleLinker([nodeData])](#new_DoubleLinker_new)
1118
- * [.fromArray([values], [classType])](#DoubleLinker.fromArray) ⇒ <code>Object</code>
1464
+ * _instance_
1465
+ * [.classType](#DoubleLinker+classType)
1466
+ * [.data](#DoubleLinker+data)
1467
+ * [.next](#DoubleLinker+next)
1468
+ * [.prev](#DoubleLinker+prev)
1469
+ * _static_
1470
+ * [.fromArray([values], [classType])](#DoubleLinker.fromArray) ⇒ <code>Object</code>
1119
1471
 
1120
1472
  <a name="new_DoubleLinker_new"></a>
1121
1473
 
@@ -1125,11 +1477,38 @@ Create the new DoubleLinker instance, provide the data and optionally the next a
1125
1477
 
1126
1478
  | Param | Type | Default | Description |
1127
1479
  | --- | --- | --- | --- |
1128
- | [nodeData] | <code>Object</code> | <code>{}</code> | |
1480
+ | [nodeData] | <code>Object</code> | <code>{}</code> | The settings for the new linker. |
1129
1481
  | [nodeData.data] | <code>\*</code> | <code></code> | The data to be stored in this linker |
1130
1482
  | [nodeData.next] | [<code>DoubleLinker</code>](#DoubleLinker) \| <code>null</code> | <code></code> | The reference to the next linker if any |
1131
1483
  | [nodeData.prev] | [<code>DoubleLinker</code>](#DoubleLinker) \| <code>null</code> | <code></code> | The reference to the previous linker if any |
1132
1484
 
1485
+ <a name="DoubleLinker+classType"></a>
1486
+
1487
+ ### doubleLinker.classType
1488
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
1489
+
1490
+ **Kind**: instance property of [<code>DoubleLinker</code>](#DoubleLinker)
1491
+ **Overrides**: [<code>classType</code>](#Linker+classType)
1492
+ <a name="DoubleLinker+data"></a>
1493
+
1494
+ ### doubleLinker.data
1495
+ The data stored in this linker.
1496
+
1497
+ **Kind**: instance property of [<code>DoubleLinker</code>](#DoubleLinker)
1498
+ **Overrides**: [<code>data</code>](#Linker+data)
1499
+ <a name="DoubleLinker+next"></a>
1500
+
1501
+ ### doubleLinker.next
1502
+ The linker after this one, or null when this is the last.
1503
+
1504
+ **Kind**: instance property of [<code>DoubleLinker</code>](#DoubleLinker)
1505
+ **Overrides**: [<code>next</code>](#Linker+next)
1506
+ <a name="DoubleLinker+prev"></a>
1507
+
1508
+ ### doubleLinker.prev
1509
+ The linker before this one, or null when this is the first.
1510
+
1511
+ **Kind**: instance property of [<code>DoubleLinker</code>](#DoubleLinker)
1133
1512
  <a name="DoubleLinker.fromArray"></a>
1134
1513
 
1135
1514
  ### DoubleLinker.fromArray([values], [classType]) ⇒ <code>Object</code>
@@ -1150,7 +1529,10 @@ Arrayable represents a collection stored as an array.
1150
1529
  **Kind**: global class
1151
1530
 
1152
1531
  * [Arrayable](#Arrayable)
1153
- * [new Arrayable()](#new_Arrayable_new)
1532
+ * [new Arrayable([elementClass])](#new_Arrayable_new)
1533
+ * [.classType](#Arrayable+classType)
1534
+ * [.innerList](#Arrayable+innerList)
1535
+ * [.initialized](#Arrayable+initialized)
1154
1536
  * [.list](#Arrayable+list) ⇒ [<code>Array.&lt;ArrayElement&gt;</code>](#ArrayElement)
1155
1537
  * [.first](#Arrayable+first) ⇒ [<code>ArrayElement</code>](#ArrayElement)
1156
1538
  * [.last](#Arrayable+last) ⇒ [<code>ArrayElement</code>](#ArrayElement)
@@ -1166,9 +1548,32 @@ Arrayable represents a collection stored as an array.
1166
1548
 
1167
1549
  <a name="new_Arrayable_new"></a>
1168
1550
 
1169
- ### new Arrayable()
1551
+ ### new Arrayable([elementClass])
1170
1552
  Create the new Arrayable instance, configure the Arrayable class.
1171
1553
 
1554
+
1555
+ | Param | Type | Default | Description |
1556
+ | --- | --- | --- | --- |
1557
+ | [elementClass] | [<code>ArrayElement</code>](#ArrayElement) | <code>ArrayElement</code> | The class used to wrap given data as elements. |
1558
+
1559
+ <a name="Arrayable+classType"></a>
1560
+
1561
+ ### arrayable.classType
1562
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
1563
+
1564
+ **Kind**: instance property of [<code>Arrayable</code>](#Arrayable)
1565
+ <a name="Arrayable+innerList"></a>
1566
+
1567
+ ### arrayable.innerList
1568
+ The array which stores the elements of this Arrayable.
1569
+
1570
+ **Kind**: instance property of [<code>Arrayable</code>](#Arrayable)
1571
+ <a name="Arrayable+initialized"></a>
1572
+
1573
+ ### arrayable.initialized
1574
+ Whether the inner list has been initialized (it can only be initialized once).
1575
+
1576
+ **Kind**: instance property of [<code>Arrayable</code>](#Arrayable)
1172
1577
  <a name="Arrayable+list"></a>
1173
1578
 
1174
1579
  ### arrayable.list ⇒ [<code>Array.&lt;ArrayElement&gt;</code>](#ArrayElement)
@@ -1295,7 +1700,11 @@ Element represents a node in an Arrayable.
1295
1700
 
1296
1701
  * [ArrayElement](#ArrayElement)
1297
1702
  * [new ArrayElement([data])](#new_ArrayElement_new)
1298
- * [.fromArray([values], [classType])](#ArrayElement.fromArray) ⇒ <code>Object</code>
1703
+ * _instance_
1704
+ * [.classType](#ArrayElement+classType)
1705
+ * [.data](#ArrayElement+data)
1706
+ * _static_
1707
+ * [.fromArray([values], [classType])](#ArrayElement.fromArray) ⇒ <code>Object</code>
1299
1708
 
1300
1709
  <a name="new_ArrayElement_new"></a>
1301
1710
 
@@ -1307,6 +1716,18 @@ Create the new Element instance, provide the data and optionally configure the t
1307
1716
  | --- | --- | --- | --- |
1308
1717
  | [data] | <code>\*</code> | <code></code> | The data to be stored in this element. |
1309
1718
 
1719
+ <a name="ArrayElement+classType"></a>
1720
+
1721
+ ### arrayElement.classType
1722
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
1723
+
1724
+ **Kind**: instance property of [<code>ArrayElement</code>](#ArrayElement)
1725
+ <a name="ArrayElement+data"></a>
1726
+
1727
+ ### arrayElement.data
1728
+ The data stored in this element.
1729
+
1730
+ **Kind**: instance property of [<code>ArrayElement</code>](#ArrayElement)
1310
1731
  <a name="ArrayElement.fromArray"></a>
1311
1732
 
1312
1733
  ### ArrayElement.fromArray([values], [classType]) ⇒ <code>Object</code>
@@ -1335,7 +1756,10 @@ Make a new Stackable from the data given if it is not already a valid Stackable.
1335
1756
  * [Stackable](#Stackable) ⇒ [<code>Stackable</code>](#Stackable)
1336
1757
  * [new Stackable([stackData])](#new_Stackable_new)
1337
1758
  * _instance_
1759
+ * [.data](#Stackable+data)
1760
+ * [.next](#Stackable+next)
1338
1761
  * [.task](#Stackable+task) ⇒ <code>\*</code>
1762
+ * [.classType](#Linker+classType)
1339
1763
  * [.run()](#Stackable+run) ⇒ <code>\*</code>
1340
1764
  * _static_
1341
1765
  * [.fromArray([values], [classType])](#Stackable.fromArray) ⇒ <code>Object</code>
@@ -1348,17 +1772,38 @@ Create a stackable item that can be used in a stack.
1348
1772
 
1349
1773
  | Param | Type | Default | Description |
1350
1774
  | --- | --- | --- | --- |
1351
- | [stackData] | <code>Object</code> | <code>{}</code> | |
1775
+ | [stackData] | <code>Object</code> | <code>{}</code> | The settings for the new stackable. |
1352
1776
  | [stackData.task] | <code>\*</code> | <code></code> | The data to be stored in this stackable |
1353
1777
  | [stackData.next] | [<code>Stackable</code>](#Stackable) \| <code>null</code> | <code></code> | The reference to the next stackable if any |
1354
1778
  | [stackData.ready] | <code>boolean</code> \| <code>function</code> | <code>false</code> | Indicate if the stackable is ready to run |
1355
1779
 
1780
+ <a name="Stackable+data"></a>
1781
+
1782
+ ### stackable.data
1783
+ The task (or data) this stackable holds.
1784
+
1785
+ **Kind**: instance property of [<code>Stackable</code>](#Stackable)
1786
+ **Overrides**: [<code>data</code>](#Linker+data)
1787
+ <a name="Stackable+next"></a>
1788
+
1789
+ ### stackable.next
1790
+ The stackable below this one, or null when this is the bottom.
1791
+
1792
+ **Kind**: instance property of [<code>Stackable</code>](#Stackable)
1793
+ **Overrides**: [<code>next</code>](#Linker+next)
1356
1794
  <a name="Stackable+task"></a>
1357
1795
 
1358
1796
  ### stackable.task ⇒ <code>\*</code>
1359
1797
  Retrieve the data which should be formed as a task.
1360
1798
 
1361
1799
  **Kind**: instance property of [<code>Stackable</code>](#Stackable)
1800
+ <a name="Linker+classType"></a>
1801
+
1802
+ ### stackable.classType
1803
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
1804
+
1805
+ **Kind**: instance property of [<code>Stackable</code>](#Stackable)
1806
+ **Overrides**: [<code>classType</code>](#Linker+classType)
1362
1807
  <a name="Stackable+run"></a>
1363
1808
 
1364
1809
  ### stackable.run() ⇒ <code>\*</code>
@@ -1392,7 +1837,7 @@ Convert an array to a Stack.
1392
1837
 
1393
1838
 
1394
1839
  * [Stack](#Stack) ⇒ [<code>Stack</code>](#Stack)
1395
- * [new Stack(stackedList, listClass, stackableClass)](#new_Stack_new)
1840
+ * [new Stack([stackedList], [listClass], [stackableClass])](#new_Stack_new)
1396
1841
  * [.empty()](#Stack+empty) ⇒ <code>boolean</code>
1397
1842
  * [.top()](#Stack+top) ⇒ [<code>Stackable</code>](#Stackable)
1398
1843
  * [.pop()](#Stack+pop) ⇒ [<code>Stackable</code>](#Stackable) \| <code>null</code>
@@ -1402,15 +1847,15 @@ Convert an array to a Stack.
1402
1847
 
1403
1848
  <a name="new_Stack_new"></a>
1404
1849
 
1405
- ### new Stack(stackedList, listClass, stackableClass)
1850
+ ### new Stack([stackedList], [listClass], [stackableClass])
1406
1851
  Instantiate the state with the starter stacked list.
1407
1852
 
1408
1853
 
1409
- | Param | Type | Default |
1410
- | --- | --- | --- |
1411
- | stackedList | <code>Iterable</code> \| [<code>LinkedList</code>](#LinkedList) | <code></code> |
1412
- | listClass | <code>IsArrayable</code> | |
1413
- | stackableClass | [<code>Stackable</code>](#Stackable) | |
1854
+ | Param | Type | Default | Description |
1855
+ | --- | --- | --- | --- |
1856
+ | [stackedList] | <code>Iterable</code> \| [<code>LinkedList</code>](#LinkedList) | <code></code> | The list of stackables to start in this stack. |
1857
+ | [listClass] | <code>IsArrayable</code> | <code>LinkedList</code> | The type of list to create when no stacked list is given. |
1858
+ | [stackableClass] | [<code>Stackable</code>](#Stackable) | <code>Stackable</code> | The class used to wrap stacked items. |
1414
1859
 
1415
1860
  <a name="Stack+empty"></a>
1416
1861
 
@@ -1469,9 +1914,15 @@ Make a new Queueable from the data given if it is not already a valid Queueable.
1469
1914
  * [Queueable](#Queueable) ⇒ [<code>Queueable</code>](#Queueable)
1470
1915
  * [new Queueable([queueableData])](#new_Queueable_new)
1471
1916
  * _instance_
1917
+ * [.data](#Queueable+data)
1918
+ * [.next](#Queueable+next)
1919
+ * [.complete](#Queueable+complete)
1920
+ * [.ready](#Queueable+ready)
1921
+ * [.running](#Queueable+running)
1472
1922
  * [.isReady](#Queueable+isReady) ⇒ <code>boolean</code>
1473
1923
  * [.task](#Queueable+task) ⇒ <code>\*</code>
1474
- * [.markCompleted(completeResponse)](#Queueable+markCompleted) ⇒ <code>completeResponse</code>
1924
+ * [.classType](#Linker+classType)
1925
+ * [.markCompleted([completeResponse])](#Queueable+markCompleted) ⇒ <code>completeResponse</code>
1475
1926
  * [.run()](#Queueable+run) ⇒ <code>completeResponse</code>
1476
1927
  * _static_
1477
1928
  * [.fromArray(values, [classType])](#Queueable.fromArray) ⇒ <code>Object</code>
@@ -1484,11 +1935,43 @@ Create a queueable item that can be used in a queue.
1484
1935
 
1485
1936
  | Param | Type | Default | Description |
1486
1937
  | --- | --- | --- | --- |
1487
- | [queueableData] | <code>Object</code> | <code>{}</code> | |
1938
+ | [queueableData] | <code>Object</code> | <code>{}</code> | The settings for the new queueable. |
1488
1939
  | [queueableData.task] | <code>\*</code> | <code></code> | The data to be stored in this queueable |
1489
1940
  | [queueableData.next] | [<code>Queueable</code>](#Queueable) \| <code>null</code> | <code></code> | The reference to the next queueable if any |
1490
1941
  | [queueableData.ready] | <code>boolean</code> \| <code>function</code> | <code>false</code> | Indicate if the queueable is ready to run |
1491
1942
 
1943
+ <a name="Queueable+data"></a>
1944
+
1945
+ ### queueable.data
1946
+ The task (or data) this queueable holds.
1947
+
1948
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
1949
+ **Overrides**: [<code>data</code>](#Linker+data)
1950
+ <a name="Queueable+next"></a>
1951
+
1952
+ ### queueable.next
1953
+ The queueable after this one, or null when this is the last.
1954
+
1955
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
1956
+ **Overrides**: [<code>next</code>](#Linker+next)
1957
+ <a name="Queueable+complete"></a>
1958
+
1959
+ ### queueable.complete
1960
+ Whether this queueable has been run to completion.
1961
+
1962
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
1963
+ <a name="Queueable+ready"></a>
1964
+
1965
+ ### queueable.ready
1966
+ Whether this queueable may run, or a function which answers that when asked.
1967
+
1968
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
1969
+ <a name="Queueable+running"></a>
1970
+
1971
+ ### queueable.running
1972
+ Whether this queueable is running right now.
1973
+
1974
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
1492
1975
  <a name="Queueable+isReady"></a>
1493
1976
 
1494
1977
  ### queueable.isReady ⇒ <code>boolean</code>
@@ -1501,16 +1984,23 @@ Check ready state.
1501
1984
  Retrieve the data which should be formed as a task.
1502
1985
 
1503
1986
  **Kind**: instance property of [<code>Queueable</code>](#Queueable)
1987
+ <a name="Linker+classType"></a>
1988
+
1989
+ ### queueable.classType
1990
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
1991
+
1992
+ **Kind**: instance property of [<code>Queueable</code>](#Queueable)
1993
+ **Overrides**: [<code>classType</code>](#Linker+classType)
1504
1994
  <a name="Queueable+markCompleted"></a>
1505
1995
 
1506
- ### queueable.markCompleted(completeResponse) ⇒ <code>completeResponse</code>
1996
+ ### queueable.markCompleted([completeResponse]) ⇒ <code>completeResponse</code>
1507
1997
  Set this queueable as completed.
1508
1998
 
1509
1999
  **Kind**: instance method of [<code>Queueable</code>](#Queueable)
1510
2000
 
1511
2001
  | Param | Type | Default | Description |
1512
2002
  | --- | --- | --- | --- |
1513
- | completeResponse | <code>Object</code> | | |
2003
+ | [completeResponse] | <code>Object</code> | <code>{}</code> | The result to report for the task. |
1514
2004
  | [completeResponse.success] | <code>\*</code> | <code>true</code> | Indicate when the task failed (use false) or give a success message |
1515
2005
  | [completeResponse.error] | <code>\*</code> | <code>false</code> | Indicate a task was error-free (use false) or give an error message |
1516
2006
  | [completeResponse.context] | <code>\*</code> | <code></code> | Provide additional data in the response |
@@ -1548,7 +2038,7 @@ Convert an array to a Queue.
1548
2038
 
1549
2039
 
1550
2040
  * [Queue](#Queue) ⇒ [<code>Queue</code>](#Queue)
1551
- * [new Queue(queuedList, listClass, queueableClass)](#new_Queue_new)
2041
+ * [new Queue(queuedList, [listClass], [queueableClass])](#new_Queue_new)
1552
2042
  * [.dequeue()](#Queue+dequeue) ⇒ <code>completeResponse</code> \| <code>\*</code>
1553
2043
  * [.empty()](#Queue+empty) ⇒ <code>boolean</code>
1554
2044
  * [.enqueue(queueable)](#Queue+enqueue)
@@ -1558,15 +2048,15 @@ Convert an array to a Queue.
1558
2048
 
1559
2049
  <a name="new_Queue_new"></a>
1560
2050
 
1561
- ### new Queue(queuedList, listClass, queueableClass)
2051
+ ### new Queue(queuedList, [listClass], [queueableClass])
1562
2052
  Instantiate the queue with the given queue list.
1563
2053
 
1564
2054
 
1565
2055
  | Param | Type | Default | Description |
1566
2056
  | --- | --- | --- | --- |
1567
2057
  | queuedList | <code>Iterable</code> \| [<code>LinkedList</code>](#LinkedList) | <code></code> | Give the list of queueables to start in this queue. |
1568
- | listClass | <code>IsArrayable</code> | | |
1569
- | queueableClass | [<code>Queueable</code>](#Queueable) | | |
2058
+ | [listClass] | <code>IsArrayable</code> | <code>LinkedList</code> | The type of list to create when no queued list is given. |
2059
+ | [queueableClass] | [<code>Queueable</code>](#Queueable) | <code>Queueable</code> | The class used to wrap queued items. |
1570
2060
 
1571
2061
  <a name="Queue+dequeue"></a>
1572
2062
 
@@ -1625,6 +2115,12 @@ Make a new DoubleLinker from the data given if it is not already a valid Linker.
1625
2115
  * [TreeLinker](#TreeLinker) ⇒ [<code>TreeLinker</code>](#TreeLinker)
1626
2116
  * [new TreeLinker([settings], listClass)](#new_TreeLinker_new)
1627
2117
  * _instance_
2118
+ * [.classType](#TreeLinker+classType)
2119
+ * [.data](#TreeLinker+data)
2120
+ * [.next](#TreeLinker+next)
2121
+ * [.prev](#TreeLinker+prev)
2122
+ * [.parent](#TreeLinker+parent)
2123
+ * [.children](#TreeLinker+children)
1628
2124
  * [.childrenFromArray(children, listClass)](#TreeLinker+childrenFromArray) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList) \| <code>null</code>
1629
2125
  * _static_
1630
2126
  * [.fromArray([values], [classType])](#TreeLinker.fromArray) ⇒ <code>Object</code>
@@ -1637,7 +2133,7 @@ Create the new TreeLinker instance, provide the data and optionally set referenc
1637
2133
 
1638
2134
  | Param | Type | Default | Description |
1639
2135
  | --- | --- | --- | --- |
1640
- | [settings] | <code>Object</code> | <code>{}</code> | |
2136
+ | [settings] | <code>Object</code> | <code>{}</code> | The settings for the new tree node. |
1641
2137
  | [settings.data] | <code>\*</code> | <code></code> | The data to be stored in this tree node |
1642
2138
  | [settings.next] | [<code>TreeLinker</code>](#TreeLinker) | <code></code> | The reference to the next linker if any |
1643
2139
  | [settings.prev] | [<code>TreeLinker</code>](#TreeLinker) | <code></code> | The reference to the previous linker if any |
@@ -1645,6 +2141,46 @@ Create the new TreeLinker instance, provide the data and optionally set referenc
1645
2141
  | [settings.parent] | [<code>TreeLinker</code>](#TreeLinker) | <code></code> | The reference to a parent linker if any |
1646
2142
  | listClass | <code>IsArrayable.&lt;IsTreeNode&gt;</code> | | Give the type of list to use for storing the children |
1647
2143
 
2144
+ <a name="TreeLinker+classType"></a>
2145
+
2146
+ ### treeLinker.classType
2147
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
2148
+
2149
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
2150
+ **Overrides**: [<code>classType</code>](#DoubleLinker+classType)
2151
+ <a name="TreeLinker+data"></a>
2152
+
2153
+ ### treeLinker.data
2154
+ The data stored in this tree node.
2155
+
2156
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
2157
+ **Overrides**: [<code>data</code>](#DoubleLinker+data)
2158
+ <a name="TreeLinker+next"></a>
2159
+
2160
+ ### treeLinker.next
2161
+ The sibling after this node, or null when this is the last child.
2162
+
2163
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
2164
+ **Overrides**: [<code>next</code>](#DoubleLinker+next)
2165
+ <a name="TreeLinker+prev"></a>
2166
+
2167
+ ### treeLinker.prev
2168
+ The sibling before this node, or null when this is the first child.
2169
+
2170
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
2171
+ **Overrides**: [<code>prev</code>](#DoubleLinker+prev)
2172
+ <a name="TreeLinker+parent"></a>
2173
+
2174
+ ### treeLinker.parent
2175
+ The node this node is a child of, or null for a root node.
2176
+
2177
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
2178
+ <a name="TreeLinker+children"></a>
2179
+
2180
+ ### treeLinker.children
2181
+ The list of the children of this node, or null when it has none.
2182
+
2183
+ **Kind**: instance property of [<code>TreeLinker</code>](#TreeLinker)
1648
2184
  <a name="TreeLinker+childrenFromArray"></a>
1649
2185
 
1650
2186
  ### treeLinker.childrenFromArray(children, listClass) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList) \| <code>null</code>
@@ -1684,7 +2220,10 @@ Convert an array into a LinkedTreeList instance, return the new instance.
1684
2220
 
1685
2221
 
1686
2222
  * [LinkedTreeList](#LinkedTreeList) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)
1687
- * [new LinkedTreeList()](#new_LinkedTreeList_new)
2223
+ * [new LinkedTreeList([linkerClass])](#new_LinkedTreeList_new)
2224
+ * [.classType](#LinkedTreeList+classType)
2225
+ * [.innerList](#LinkedTreeList+innerList)
2226
+ * [.initialized](#LinkedTreeList+initialized)
1688
2227
  * [.list](#LinkedTreeList+list) ⇒ [<code>TreeLinker</code>](#TreeLinker)
1689
2228
  * [.first](#LinkedTreeList+first) ⇒ [<code>TreeLinker</code>](#TreeLinker)
1690
2229
  * [.last](#LinkedTreeList+last) ⇒ [<code>TreeLinker</code>](#TreeLinker)
@@ -1701,13 +2240,39 @@ Convert an array into a LinkedTreeList instance, return the new instance.
1701
2240
  * [.remove(node)](#LinkedTreeList+remove) ⇒ [<code>TreeLinker</code>](#TreeLinker)
1702
2241
  * [.reset()](#LinkedTreeList+reset) ⇒ [<code>TreeLinker</code>](#TreeLinker)
1703
2242
  * [.item(index)](#LinkedTreeList+item) ⇒ [<code>TreeLinker</code>](#TreeLinker) \| <code>null</code>
1704
- * [.forEach(callback, thisArg)](#LinkedTreeList+forEach)
2243
+ * [.forEach(callback, thisArg)](#LinkedTreeList+forEach) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)
1705
2244
 
1706
2245
  <a name="new_LinkedTreeList_new"></a>
1707
2246
 
1708
- ### new LinkedTreeList()
2247
+ ### new LinkedTreeList([linkerClass])
1709
2248
  Create the new LinkedTreeList instance, configure the list class.
1710
2249
 
2250
+
2251
+ | Param | Type | Default | Description |
2252
+ | --- | --- | --- | --- |
2253
+ | [linkerClass] | [<code>TreeLinker</code>](#TreeLinker) | <code>TreeLinker</code> | The class used to wrap given data as tree linkers. |
2254
+
2255
+ <a name="LinkedTreeList+classType"></a>
2256
+
2257
+ ### linkedTreeList.classType
2258
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
2259
+
2260
+ **Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)
2261
+ **Overrides**: [<code>classType</code>](#DoublyLinkedList+classType)
2262
+ <a name="LinkedTreeList+innerList"></a>
2263
+
2264
+ ### linkedTreeList.innerList
2265
+ A linker of the list (null when the list is empty); the head is found by walking back from it.
2266
+
2267
+ **Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)
2268
+ **Overrides**: [<code>innerList</code>](#DoublyLinkedList+innerList)
2269
+ <a name="LinkedTreeList+initialized"></a>
2270
+
2271
+ ### linkedTreeList.initialized
2272
+ Whether the inner list has been initialized (it can only be initialized once).
2273
+
2274
+ **Kind**: instance property of [<code>LinkedTreeList</code>](#LinkedTreeList)
2275
+ **Overrides**: [<code>initialized</code>](#DoublyLinkedList+initialized)
1711
2276
  <a name="LinkedTreeList+list"></a>
1712
2277
 
1713
2278
  ### linkedTreeList.list ⇒ [<code>TreeLinker</code>](#TreeLinker)
@@ -1868,11 +2433,12 @@ Retrieve a TreeLinker item from this list by numeric index, otherwise return nul
1868
2433
 
1869
2434
  <a name="LinkedTreeList+forEach"></a>
1870
2435
 
1871
- ### linkedTreeList.forEach(callback, thisArg)
2436
+ ### linkedTreeList.forEach(callback, thisArg) ⇒ [<code>LinkedTreeList</code>](#LinkedTreeList)
1872
2437
  Be able to run forEach on this LinkedTreeList to iterate over the TreeLinker Items.
1873
2438
 
1874
2439
  **Kind**: instance method of [<code>LinkedTreeList</code>](#LinkedTreeList)
1875
2440
  **Overrides**: [<code>forEach</code>](#DoublyLinkedList+forEach)
2441
+ **Returns**: [<code>LinkedTreeList</code>](#LinkedTreeList) - The list which was iterated.
1876
2442
 
1877
2443
  | Param | Type | Description |
1878
2444
  | --- | --- | --- |
@@ -1894,7 +2460,12 @@ Make a new Linker from the data given if it is not already a valid Linker.
1894
2460
 
1895
2461
  * [Linker](#Linker) ⇒ [<code>Linker</code>](#Linker)
1896
2462
  * [new Linker([nodeData])](#new_Linker_new)
1897
- * [.fromArray([values], [classType])](#Linker.fromArray) ⇒ <code>Object</code>
2463
+ * _instance_
2464
+ * [.classType](#Linker+classType)
2465
+ * [.data](#Linker+data)
2466
+ * [.next](#Linker+next)
2467
+ * _static_
2468
+ * [.fromArray([values], [classType])](#Linker.fromArray) ⇒ <code>Object</code>
1898
2469
 
1899
2470
  <a name="new_Linker_new"></a>
1900
2471
 
@@ -1904,10 +2475,30 @@ Create the new Linker instance, provide the data and optionally give the next Li
1904
2475
 
1905
2476
  | Param | Type | Default | Description |
1906
2477
  | --- | --- | --- | --- |
1907
- | [nodeData] | <code>Object</code> | <code>{}</code> | |
2478
+ | [nodeData] | <code>Object</code> | <code>{}</code> | The settings for the new linker. |
1908
2479
  | [nodeData.data] | <code>\*</code> | <code></code> | The data to be stored in this linker |
1909
2480
  | [nodeData.next] | [<code>Linker</code>](#Linker) \| <code>null</code> | <code></code> | The reference to the next linker if any |
1910
2481
 
2482
+ <a name="Linker+classType"></a>
2483
+
2484
+ ### linker.classType
2485
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
2486
+
2487
+ **Kind**: instance property of [<code>Linker</code>](#Linker)
2488
+ **Overrides**: [<code>classType</code>](#ArrayElement+classType)
2489
+ <a name="Linker+data"></a>
2490
+
2491
+ ### linker.data
2492
+ The data stored in this linker.
2493
+
2494
+ **Kind**: instance property of [<code>Linker</code>](#Linker)
2495
+ **Overrides**: [<code>data</code>](#ArrayElement+data)
2496
+ <a name="Linker+next"></a>
2497
+
2498
+ ### linker.next
2499
+ The linker after this one, or null when this is the last.
2500
+
2501
+ **Kind**: instance property of [<code>Linker</code>](#Linker)
1911
2502
  <a name="Linker.fromArray"></a>
1912
2503
 
1913
2504
  ### Linker.fromArray([values], [classType]) ⇒ <code>Object</code>
@@ -1935,7 +2526,10 @@ Convert an array to a LinkedList.
1935
2526
 
1936
2527
 
1937
2528
  * [LinkedList](#LinkedList) ⇒ [<code>LinkedList</code>](#LinkedList)
1938
- * [new LinkedList()](#new_LinkedList_new)
2529
+ * [new LinkedList([linkerClass])](#new_LinkedList_new)
2530
+ * [.classType](#LinkedList+classType)
2531
+ * [.innerList](#LinkedList+innerList)
2532
+ * [.initialized](#LinkedList+initialized)
1939
2533
  * [.list](#LinkedList+list) ⇒ [<code>Linker</code>](#Linker)
1940
2534
  * [.first](#LinkedList+first) ⇒ [<code>Linker</code>](#Linker)
1941
2535
  * [.last](#LinkedList+last) ⇒ [<code>Linker</code>](#Linker)
@@ -1951,9 +2545,35 @@ Convert an array to a LinkedList.
1951
2545
 
1952
2546
  <a name="new_LinkedList_new"></a>
1953
2547
 
1954
- ### new LinkedList()
2548
+ ### new LinkedList([linkerClass])
1955
2549
  Create the new LinkedList instance.
1956
2550
 
2551
+
2552
+ | Param | Type | Default | Description |
2553
+ | --- | --- | --- | --- |
2554
+ | [linkerClass] | [<code>Linker</code>](#Linker) | <code>Linker</code> | The class used to wrap given data as linkers. |
2555
+
2556
+ <a name="LinkedList+classType"></a>
2557
+
2558
+ ### linkedList.classType
2559
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
2560
+
2561
+ **Kind**: instance property of [<code>LinkedList</code>](#LinkedList)
2562
+ **Overrides**: [<code>classType</code>](#Arrayable+classType)
2563
+ <a name="LinkedList+innerList"></a>
2564
+
2565
+ ### linkedList.innerList
2566
+ The first linker of the list (null when the list is empty), from which the whole list is reached.
2567
+
2568
+ **Kind**: instance property of [<code>LinkedList</code>](#LinkedList)
2569
+ **Overrides**: [<code>innerList</code>](#Arrayable+innerList)
2570
+ <a name="LinkedList+initialized"></a>
2571
+
2572
+ ### linkedList.initialized
2573
+ Whether the inner list has been initialized (it can only be initialized once).
2574
+
2575
+ **Kind**: instance property of [<code>LinkedList</code>](#LinkedList)
2576
+ **Overrides**: [<code>initialized</code>](#Arrayable+initialized)
1957
2577
  <a name="LinkedList+list"></a>
1958
2578
 
1959
2579
  ### linkedList.list ⇒ [<code>Linker</code>](#Linker)
@@ -2098,7 +2718,10 @@ Convert an array into a DoublyLinkedList instance, return the new instance.
2098
2718
 
2099
2719
 
2100
2720
  * [DoublyLinkedList](#DoublyLinkedList) ⇒ [<code>DoublyLinkedList</code>](#DoublyLinkedList)
2101
- * [new DoublyLinkedList()](#new_DoublyLinkedList_new)
2721
+ * [new DoublyLinkedList([linkerClass])](#new_DoublyLinkedList_new)
2722
+ * [.classType](#DoublyLinkedList+classType)
2723
+ * [.innerList](#DoublyLinkedList+innerList)
2724
+ * [.initialized](#DoublyLinkedList+initialized)
2102
2725
  * [.list](#DoublyLinkedList+list) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
2103
2726
  * [.first](#DoublyLinkedList+first) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
2104
2727
  * [.last](#DoublyLinkedList+last) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
@@ -2111,13 +2734,39 @@ Convert an array into a DoublyLinkedList instance, return the new instance.
2111
2734
  * [.remove(node)](#DoublyLinkedList+remove) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
2112
2735
  * [.reset()](#DoublyLinkedList+reset) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
2113
2736
  * [.item(index)](#DoublyLinkedList+item) ⇒ [<code>DoubleLinker</code>](#DoubleLinker) \| <code>null</code>
2114
- * [.forEach(callback, thisArg)](#DoublyLinkedList+forEach)
2737
+ * [.forEach(callback, thisArg)](#DoublyLinkedList+forEach) ⇒ [<code>DoublyLinkedList</code>](#DoublyLinkedList)
2115
2738
 
2116
2739
  <a name="new_DoublyLinkedList_new"></a>
2117
2740
 
2118
- ### new DoublyLinkedList()
2741
+ ### new DoublyLinkedList([linkerClass])
2119
2742
  Create the new DoublyLinkedList instance.
2120
2743
 
2744
+
2745
+ | Param | Type | Default | Description |
2746
+ | --- | --- | --- | --- |
2747
+ | [linkerClass] | [<code>DoubleLinker</code>](#DoubleLinker) | <code>DoubleLinker</code> | The class used to wrap given data as linkers. |
2748
+
2749
+ <a name="DoublyLinkedList+classType"></a>
2750
+
2751
+ ### doublyLinkedList.classType
2752
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
2753
+
2754
+ **Kind**: instance property of [<code>DoublyLinkedList</code>](#DoublyLinkedList)
2755
+ **Overrides**: [<code>classType</code>](#LinkedList+classType)
2756
+ <a name="DoublyLinkedList+innerList"></a>
2757
+
2758
+ ### doublyLinkedList.innerList
2759
+ A linker of the list (null when the list is empty); the head is found by walking back from it.
2760
+
2761
+ **Kind**: instance property of [<code>DoublyLinkedList</code>](#DoublyLinkedList)
2762
+ **Overrides**: [<code>innerList</code>](#LinkedList+innerList)
2763
+ <a name="DoublyLinkedList+initialized"></a>
2764
+
2765
+ ### doublyLinkedList.initialized
2766
+ Whether the inner list has been initialized (it can only be initialized once).
2767
+
2768
+ **Kind**: instance property of [<code>DoublyLinkedList</code>](#DoublyLinkedList)
2769
+ **Overrides**: [<code>initialized</code>](#LinkedList+initialized)
2121
2770
  <a name="DoublyLinkedList+list"></a>
2122
2771
 
2123
2772
  ### doublyLinkedList.list ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
@@ -2242,11 +2891,12 @@ Retrieve a DoubleLinker item from this list by numeric index, otherwise return n
2242
2891
 
2243
2892
  <a name="DoublyLinkedList+forEach"></a>
2244
2893
 
2245
- ### doublyLinkedList.forEach(callback, thisArg)
2894
+ ### doublyLinkedList.forEach(callback, thisArg) ⇒ [<code>DoublyLinkedList</code>](#DoublyLinkedList)
2246
2895
  Be able to run forEach on this DoublyLinkedList to iterate over the DoubleLinker Items.
2247
2896
 
2248
2897
  **Kind**: instance method of [<code>DoublyLinkedList</code>](#DoublyLinkedList)
2249
2898
  **Overrides**: [<code>forEach</code>](#LinkedList+forEach)
2899
+ **Returns**: [<code>DoublyLinkedList</code>](#DoublyLinkedList) - The list which was iterated.
2250
2900
 
2251
2901
  | Param | Type | Description |
2252
2902
  | --- | --- | --- |
@@ -2268,7 +2918,13 @@ Make a new DoubleLinker from the data given if it is not already a valid Linker.
2268
2918
 
2269
2919
  * [DoubleLinker](#DoubleLinker) ⇒ [<code>DoubleLinker</code>](#DoubleLinker)
2270
2920
  * [new DoubleLinker([nodeData])](#new_DoubleLinker_new)
2271
- * [.fromArray([values], [classType])](#DoubleLinker.fromArray) ⇒ <code>Object</code>
2921
+ * _instance_
2922
+ * [.classType](#DoubleLinker+classType)
2923
+ * [.data](#DoubleLinker+data)
2924
+ * [.next](#DoubleLinker+next)
2925
+ * [.prev](#DoubleLinker+prev)
2926
+ * _static_
2927
+ * [.fromArray([values], [classType])](#DoubleLinker.fromArray) ⇒ <code>Object</code>
2272
2928
 
2273
2929
  <a name="new_DoubleLinker_new"></a>
2274
2930
 
@@ -2278,11 +2934,38 @@ Create the new DoubleLinker instance, provide the data and optionally the next a
2278
2934
 
2279
2935
  | Param | Type | Default | Description |
2280
2936
  | --- | --- | --- | --- |
2281
- | [nodeData] | <code>Object</code> | <code>{}</code> | |
2937
+ | [nodeData] | <code>Object</code> | <code>{}</code> | The settings for the new linker. |
2282
2938
  | [nodeData.data] | <code>\*</code> | <code></code> | The data to be stored in this linker |
2283
2939
  | [nodeData.next] | [<code>DoubleLinker</code>](#DoubleLinker) \| <code>null</code> | <code></code> | The reference to the next linker if any |
2284
2940
  | [nodeData.prev] | [<code>DoubleLinker</code>](#DoubleLinker) \| <code>null</code> | <code></code> | The reference to the previous linker if any |
2285
2941
 
2942
+ <a name="DoubleLinker+classType"></a>
2943
+
2944
+ ### doubleLinker.classType
2945
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
2946
+
2947
+ **Kind**: instance property of [<code>DoubleLinker</code>](#DoubleLinker)
2948
+ **Overrides**: [<code>classType</code>](#Linker+classType)
2949
+ <a name="DoubleLinker+data"></a>
2950
+
2951
+ ### doubleLinker.data
2952
+ The data stored in this linker.
2953
+
2954
+ **Kind**: instance property of [<code>DoubleLinker</code>](#DoubleLinker)
2955
+ **Overrides**: [<code>data</code>](#Linker+data)
2956
+ <a name="DoubleLinker+next"></a>
2957
+
2958
+ ### doubleLinker.next
2959
+ The linker after this one, or null when this is the last.
2960
+
2961
+ **Kind**: instance property of [<code>DoubleLinker</code>](#DoubleLinker)
2962
+ **Overrides**: [<code>next</code>](#Linker+next)
2963
+ <a name="DoubleLinker+prev"></a>
2964
+
2965
+ ### doubleLinker.prev
2966
+ The linker before this one, or null when this is the first.
2967
+
2968
+ **Kind**: instance property of [<code>DoubleLinker</code>](#DoubleLinker)
2286
2969
  <a name="DoubleLinker.fromArray"></a>
2287
2970
 
2288
2971
  ### DoubleLinker.fromArray([values], [classType]) ⇒ <code>Object</code>
@@ -2310,7 +2993,10 @@ Convert an array to an Arrayable.
2310
2993
 
2311
2994
 
2312
2995
  * [Arrayable](#Arrayable) ⇒ [<code>Arrayable</code>](#Arrayable)
2313
- * [new Arrayable()](#new_Arrayable_new)
2996
+ * [new Arrayable([elementClass])](#new_Arrayable_new)
2997
+ * [.classType](#Arrayable+classType)
2998
+ * [.innerList](#Arrayable+innerList)
2999
+ * [.initialized](#Arrayable+initialized)
2314
3000
  * [.list](#Arrayable+list) ⇒ [<code>Array.&lt;ArrayElement&gt;</code>](#ArrayElement)
2315
3001
  * [.first](#Arrayable+first) ⇒ [<code>ArrayElement</code>](#ArrayElement)
2316
3002
  * [.last](#Arrayable+last) ⇒ [<code>ArrayElement</code>](#ArrayElement)
@@ -2326,9 +3012,32 @@ Convert an array to an Arrayable.
2326
3012
 
2327
3013
  <a name="new_Arrayable_new"></a>
2328
3014
 
2329
- ### new Arrayable()
3015
+ ### new Arrayable([elementClass])
2330
3016
  Create the new Arrayable instance, configure the Arrayable class.
2331
3017
 
3018
+
3019
+ | Param | Type | Default | Description |
3020
+ | --- | --- | --- | --- |
3021
+ | [elementClass] | [<code>ArrayElement</code>](#ArrayElement) | <code>ArrayElement</code> | The class used to wrap given data as elements. |
3022
+
3023
+ <a name="Arrayable+classType"></a>
3024
+
3025
+ ### arrayable.classType
3026
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
3027
+
3028
+ **Kind**: instance property of [<code>Arrayable</code>](#Arrayable)
3029
+ <a name="Arrayable+innerList"></a>
3030
+
3031
+ ### arrayable.innerList
3032
+ The array which stores the elements of this Arrayable.
3033
+
3034
+ **Kind**: instance property of [<code>Arrayable</code>](#Arrayable)
3035
+ <a name="Arrayable+initialized"></a>
3036
+
3037
+ ### arrayable.initialized
3038
+ Whether the inner list has been initialized (it can only be initialized once).
3039
+
3040
+ **Kind**: instance property of [<code>Arrayable</code>](#Arrayable)
2332
3041
  <a name="Arrayable+list"></a>
2333
3042
 
2334
3043
  ### arrayable.list ⇒ [<code>Array.&lt;ArrayElement&gt;</code>](#ArrayElement)
@@ -2461,7 +3170,11 @@ Make a new Element from the data given if it is not already a valid Element.
2461
3170
 
2462
3171
  * [ArrayElement](#ArrayElement) ⇒ [<code>ArrayElement</code>](#ArrayElement)
2463
3172
  * [new ArrayElement([data])](#new_ArrayElement_new)
2464
- * [.fromArray([values], [classType])](#ArrayElement.fromArray) ⇒ <code>Object</code>
3173
+ * _instance_
3174
+ * [.classType](#ArrayElement+classType)
3175
+ * [.data](#ArrayElement+data)
3176
+ * _static_
3177
+ * [.fromArray([values], [classType])](#ArrayElement.fromArray) ⇒ <code>Object</code>
2465
3178
 
2466
3179
  <a name="new_ArrayElement_new"></a>
2467
3180
 
@@ -2473,6 +3186,18 @@ Create the new Element instance, provide the data and optionally configure the t
2473
3186
  | --- | --- | --- | --- |
2474
3187
  | [data] | <code>\*</code> | <code></code> | The data to be stored in this element. |
2475
3188
 
3189
+ <a name="ArrayElement+classType"></a>
3190
+
3191
+ ### arrayElement.classType
3192
+ The class used to create this instance, so that it can be recognized as valid without an instanceof check.
3193
+
3194
+ **Kind**: instance property of [<code>ArrayElement</code>](#ArrayElement)
3195
+ <a name="ArrayElement+data"></a>
3196
+
3197
+ ### arrayElement.data
3198
+ The data stored in this element.
3199
+
3200
+ **Kind**: instance property of [<code>ArrayElement</code>](#ArrayElement)
2476
3201
  <a name="ArrayElement.fromArray"></a>
2477
3202
 
2478
3203
  ### ArrayElement.fromArray([values], [classType]) ⇒ <code>Object</code>