collect-your-stuff 1.1.9 → 1.2.1
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.
- package/README.md +1265 -232
- package/browser/collect-your-stuff.js +1658 -1234
- package/browser/collect-your-stuff.min.js +1 -1
- package/dist/collections/arrayable/ArrayElement.d.ts +2 -3
- package/dist/collections/arrayable/ArrayElement.js +2 -2
- package/dist/collections/arrayable/ArrayElement.min.js +1 -1
- package/dist/collections/arrayable/Arrayable.d.ts +4 -5
- package/dist/collections/arrayable/Arrayable.js +7 -9
- package/dist/collections/arrayable/Arrayable.min.js +1 -1
- package/dist/collections/doubly-linked-list/DoubleLinker.d.ts +2 -3
- package/dist/collections/doubly-linked-list/DoubleLinker.js +4 -5
- package/dist/collections/doubly-linked-list/DoubleLinker.min.js +1 -1
- package/dist/collections/doubly-linked-list/DoublyLinkedList.d.ts +4 -5
- package/dist/collections/doubly-linked-list/DoublyLinkedList.js +11 -13
- package/dist/collections/doubly-linked-list/DoublyLinkedList.min.js +1 -1
- package/dist/collections/linked-list/LinkedList.d.ts +4 -5
- package/dist/collections/linked-list/LinkedList.js +9 -11
- package/dist/collections/linked-list/LinkedList.min.js +1 -1
- package/dist/collections/linked-list/Linker.d.ts +2 -3
- package/dist/collections/linked-list/Linker.js +4 -5
- package/dist/collections/linked-list/Linker.min.js +1 -1
- package/dist/collections/linked-tree-list/LinkedTreeList.d.ts +4 -5
- package/dist/collections/linked-tree-list/LinkedTreeList.js +15 -17
- package/dist/collections/linked-tree-list/LinkedTreeList.min.js +1 -1
- package/dist/collections/linked-tree-list/TreeLinker.d.ts +4 -5
- package/dist/collections/linked-tree-list/TreeLinker.js +8 -9
- package/dist/collections/linked-tree-list/TreeLinker.min.js +1 -1
- package/dist/collections/queue/Queue.d.ts +4 -5
- package/dist/collections/queue/Queue.js +8 -9
- package/dist/collections/queue/Queue.min.js +1 -1
- package/dist/collections/queue/Queueable.d.ts +2 -3
- package/dist/collections/queue/Queueable.js +4 -5
- package/dist/collections/queue/Queueable.min.js +1 -1
- package/dist/collections/stack/Stack.d.ts +4 -5
- package/dist/collections/stack/Stack.js +8 -9
- package/dist/collections/stack/Stack.min.js +1 -1
- package/dist/collections/stack/Stackable.d.ts +2 -3
- package/dist/collections/stack/Stackable.js +4 -5
- package/dist/collections/stack/Stackable.min.js +1 -1
- package/dist/main.d.ts +10 -10
- package/dist/main.js +16 -17
- package/dist/main.min.js +1 -1
- package/dist/recipes/ArrayIterator.d.ts +2 -3
- package/dist/recipes/ArrayIterator.js +2 -2
- package/dist/recipes/ArrayIterator.min.js +1 -1
- package/dist/recipes/DoubleLinkerIterator.d.ts +2 -3
- package/dist/recipes/DoubleLinkerIterator.js +2 -2
- package/dist/recipes/DoubleLinkerIterator.min.js +1 -1
- package/dist/recipes/IsArrayable.d.ts +2 -2
- package/dist/recipes/IsDoubleLinker.d.ts +2 -2
- package/dist/recipes/IsElement.d.ts +1 -1
- package/dist/recipes/IsLinker.d.ts +2 -2
- package/dist/recipes/IsTree.d.ts +3 -3
- package/dist/recipes/IsTreeNode.d.ts +4 -4
- package/dist/recipes/LinkerIterator.d.ts +2 -3
- package/dist/recipes/LinkerIterator.js +2 -2
- package/dist/recipes/LinkerIterator.min.js +1 -1
- package/dist/recipes/Runnable.d.ts +1 -1
- package/dist/recipes/Runnable.js +2 -2
- package/dist/recipes/Runnable.min.js +1 -1
- package/dist/recipes/TreeLinkerIterator.d.ts +2 -3
- package/dist/recipes/TreeLinkerIterator.js +4 -5
- package/dist/recipes/TreeLinkerIterator.min.js +1 -1
- package/dist/recipes/recipes.d.ts +3 -4
- package/dist/recipes/recipes.js +6 -8
- package/dist/recipes/recipes.min.js +1 -1
- package/dist/services/parseTree.d.ts +2 -3
- package/dist/services/parseTree.js +4 -5
- package/dist/services/parseTree.min.js +1 -1
- package/dist/services/parseTreeNext.d.ts +2 -3
- package/dist/services/parseTreeNext.js +2 -2
- package/dist/services/parseTreeNext.min.js +1 -1
- package/dist/services/services.d.ts +3 -4
- package/dist/services/services.js +6 -8
- package/dist/services/services.min.js +1 -1
- package/package.json +2 -2
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* @version 1.1.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import IsElement from '../../recipes/IsElement';
|
|
7
|
+
import { IsElement } from '../../recipes/IsElement';
|
|
8
8
|
/**
|
|
9
9
|
* Element represents a node in an Arrayable.
|
|
10
10
|
*/
|
|
11
|
-
declare class ArrayElement implements IsElement {
|
|
11
|
+
export declare class ArrayElement implements IsElement {
|
|
12
12
|
readonly classType: typeof ArrayElement;
|
|
13
13
|
data: any;
|
|
14
14
|
/**
|
|
@@ -34,4 +34,3 @@ declare class ArrayElement implements IsElement {
|
|
|
34
34
|
tail: ArrayElement;
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
export default ArrayElement;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.ArrayElement = void 0
|
|
7
7
|
require('core-js/modules/esnext.async-iterator.reduce.js')
|
|
8
8
|
require('core-js/modules/esnext.iterator.constructor.js')
|
|
9
9
|
require('core-js/modules/esnext.iterator.reduce.js')
|
|
@@ -28,6 +28,7 @@ class ArrayElement {
|
|
|
28
28
|
* @param {IsElement} [classType=ArrayElement] Provide the type of IsElement to use.
|
|
29
29
|
* @return {ArrayElement}
|
|
30
30
|
*/
|
|
31
|
+
exports.ArrayElement = ArrayElement
|
|
31
32
|
ArrayElement.make = function (element) {
|
|
32
33
|
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ArrayElement
|
|
33
34
|
if (typeof element !== 'object') {
|
|
@@ -68,4 +69,3 @@ ArrayElement.fromArray = function () {
|
|
|
68
69
|
tail: null
|
|
69
70
|
})
|
|
70
71
|
}
|
|
71
|
-
var _default = exports.default = ArrayElement
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ArrayElement=void 0,require("core-js/modules/esnext.async-iterator.reduce.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");class ArrayElement{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.classType=ArrayElement,this.data=null,this.data=e}}exports.ArrayElement=ArrayElement,ArrayElement.make=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ArrayElement;return"object"!=typeof e?new r(e):e.classType?e:new r(e)},ArrayElement.fromArray=function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ArrayElement;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).reduce(((r,t)=>{const l=e.make(t,e);return r.head.length?(r.head.push(l),r.tail=l,r):{head:[l],tail:l}}),{head:[],tail:null})};
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* @version 1.1.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import ArrayElement from './ArrayElement';
|
|
8
|
-
import
|
|
9
|
-
import IsElement from '../../recipes/IsElement';
|
|
7
|
+
import { ArrayElement } from './ArrayElement';
|
|
8
|
+
import { forEachCallback, IsArrayable } from '../../recipes/IsArrayable';
|
|
9
|
+
import { IsElement } from '../../recipes/IsElement';
|
|
10
10
|
/**
|
|
11
11
|
* Arrayable represents a collection stored as an array.
|
|
12
12
|
*/
|
|
13
|
-
declare class Arrayable implements IsArrayable<ArrayElement>, Iterable<ArrayElement> {
|
|
13
|
+
export declare class Arrayable implements IsArrayable<ArrayElement>, Iterable<ArrayElement> {
|
|
14
14
|
readonly classType: typeof Arrayable;
|
|
15
15
|
innerList: Array<ArrayElement>;
|
|
16
16
|
initialized: boolean;
|
|
@@ -106,4 +106,3 @@ declare class Arrayable implements IsArrayable<ArrayElement>, Iterable<ArrayElem
|
|
|
106
106
|
*/
|
|
107
107
|
static fromArray: (values?: Array<any>, elementClass?: typeof ArrayElement, classType?: any) => IsArrayable<IsElement>;
|
|
108
108
|
}
|
|
109
|
-
export default Arrayable;
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
7
|
-
require('
|
|
8
|
-
var
|
|
9
|
-
var _ArrayIterator = _interopRequireDefault(require('../../recipes/ArrayIterator'))
|
|
10
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
6
|
+
exports.Arrayable = void 0
|
|
7
|
+
var _ArrayElement = require('./ArrayElement')
|
|
8
|
+
var _ArrayIterator = require('../../recipes/ArrayIterator')
|
|
11
9
|
/**
|
|
12
10
|
* @file arrayable list.
|
|
13
11
|
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
@@ -23,7 +21,7 @@ class Arrayable {
|
|
|
23
21
|
* Create the new Arrayable instance, configure the Arrayable class.
|
|
24
22
|
*/
|
|
25
23
|
constructor () {
|
|
26
|
-
const elementClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _ArrayElement.
|
|
24
|
+
const elementClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _ArrayElement.ArrayElement
|
|
27
25
|
this.classType = Arrayable
|
|
28
26
|
this.innerList = []
|
|
29
27
|
this.initialized = false
|
|
@@ -177,7 +175,7 @@ class Arrayable {
|
|
|
177
175
|
*/
|
|
178
176
|
[Symbol.iterator] () {
|
|
179
177
|
const index = 0
|
|
180
|
-
return new _ArrayIterator.
|
|
178
|
+
return new _ArrayIterator.ArrayIterator(this.innerList, index)
|
|
181
179
|
}
|
|
182
180
|
}
|
|
183
181
|
/**
|
|
@@ -187,11 +185,11 @@ class Arrayable {
|
|
|
187
185
|
* @param {IsArrayable<ArrayElement>} [classType=Arrayable] Provide the type of IsArrayable to use.
|
|
188
186
|
* @returns {Arrayable}
|
|
189
187
|
*/
|
|
188
|
+
exports.Arrayable = Arrayable
|
|
190
189
|
Arrayable.fromArray = function () {
|
|
191
190
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
192
|
-
const elementClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _ArrayElement.
|
|
191
|
+
const elementClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _ArrayElement.ArrayElement
|
|
193
192
|
const classType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Arrayable
|
|
194
193
|
const list = new classType(elementClass)
|
|
195
194
|
return list.initialize(elementClass.fromArray(values).head)
|
|
196
195
|
}
|
|
197
|
-
var _default = exports.default = Arrayable
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Arrayable=void 0;var _ArrayElement=require("./ArrayElement"),_ArrayIterator=require("../../recipes/ArrayIterator");class Arrayable{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_ArrayElement.ArrayElement;this.classType=Arrayable,this.innerList=[],this.initialized=!1,this.elementClass=t}initialize(t){return this.initialized?(console.warn("Attempt to initialize non-empty list."),this):(this.initialized=!0,this.innerList=t,this)}get list(){return this.innerList}get first(){return this.innerList[0]}get last(){return this.innerList[this.length-1]}get length(){return this.innerList.length}insertAfter(t,e){const r=this.innerList.indexOf(t);return this.innerList.splice(r+1,0,this.elementClass.make(e)),this}insertBefore(t,e){const r=this.innerList.indexOf(t);return this.innerList.splice(r,0,this.elementClass.make(e)),this}append(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.last;return this.insertAfter(e,t)}prepend(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.first;return this.insertBefore(e,t)}remove(t){const e=this.innerList.indexOf(t);return this.innerList.splice(e,1),t}item(t){if(t>=this.length)return null;if(t>=0)return this.innerList[t];const e=this.length+t;return e<0?null:this.innerList[e]}forEach(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this;for(let r=0;r<e.length;++r)t(e.item(r),r,e);return e}[Symbol.iterator](){return new _ArrayIterator.ArrayIterator(this.innerList,0)}}exports.Arrayable=Arrayable,Arrayable.fromArray=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_ArrayElement.ArrayElement;return new(arguments.length>2&&void 0!==arguments[2]?arguments[2]:Arrayable)(e).initialize(e.fromArray(t).head)};
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* @version 1.1.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import IsDoubleLinker from '../../recipes/IsDoubleLinker';
|
|
7
|
+
import { IsDoubleLinker } from '../../recipes/IsDoubleLinker';
|
|
8
8
|
/**
|
|
9
9
|
* DoubleLinker represents a node in a DoublyLinkedList which is chained by next and prev.
|
|
10
10
|
* @extends Linker
|
|
11
11
|
*/
|
|
12
|
-
declare class DoubleLinker implements IsDoubleLinker {
|
|
12
|
+
export declare class DoubleLinker implements IsDoubleLinker {
|
|
13
13
|
readonly classType: typeof DoubleLinker;
|
|
14
14
|
data: any;
|
|
15
15
|
next: DoubleLinker | null;
|
|
@@ -44,4 +44,3 @@ declare class DoubleLinker implements IsDoubleLinker {
|
|
|
44
44
|
tail: DoubleLinker | any;
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
-
export default DoubleLinker;
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.DoubleLinker = void 0
|
|
7
7
|
require('core-js/modules/esnext.async-iterator.reduce.js')
|
|
8
8
|
require('core-js/modules/esnext.iterator.constructor.js')
|
|
9
9
|
require('core-js/modules/esnext.iterator.reduce.js')
|
|
10
|
-
var _Linker =
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
10
|
+
var _Linker = require('../linked-list/Linker')
|
|
12
11
|
/**
|
|
13
12
|
* DoubleLinker represents a node in a DoublyLinkedList which is chained by next and prev.
|
|
14
13
|
* @extends Linker
|
|
@@ -42,9 +41,10 @@ class DoubleLinker {
|
|
|
42
41
|
* @param {IsDoubleLinker} [classType=DoubleLinker] Provide the type of IsDoubleLinker to use.
|
|
43
42
|
* @return {DoubleLinker}
|
|
44
43
|
*/
|
|
44
|
+
exports.DoubleLinker = DoubleLinker
|
|
45
45
|
DoubleLinker.make = function (linker) {
|
|
46
46
|
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DoubleLinker
|
|
47
|
-
return _Linker.
|
|
47
|
+
return _Linker.Linker.make(linker, classType)
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* Convert an array into DoubleLinker instances, return the head and tail DoubleLinkers.
|
|
@@ -74,4 +74,3 @@ DoubleLinker.fromArray = function () {
|
|
|
74
74
|
tail: null
|
|
75
75
|
})
|
|
76
76
|
}
|
|
77
|
-
var _default = exports.default = DoubleLinker
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DoubleLinker=void 0,require("core-js/modules/esnext.async-iterator.reduce.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");var _Linker=require("../linked-list/Linker");class DoubleLinker{constructor(){let{data:e=null,next:r=null,prev:t=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.classType=DoubleLinker,this.data=null,this.next=null,this.prev=null,this.data=e,this.next=r,this.prev=t}}exports.DoubleLinker=DoubleLinker,DoubleLinker.make=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DoubleLinker;return _Linker.Linker.make(e,r)},DoubleLinker.fromArray=function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DoubleLinker;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).reduce(((r,t)=>{const l=e.make(t,e);return null===r.head?{head:l,tail:l}:(l.prev=r.tail,r.tail.next=l,r.tail=l,r)}),{head:null,tail:null})};
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* @version 1.1.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import DoubleLinker from './DoubleLinker';
|
|
8
|
-
import
|
|
9
|
-
import IsDoubleLinker from '../../recipes/IsDoubleLinker';
|
|
7
|
+
import { DoubleLinker } from './DoubleLinker';
|
|
8
|
+
import { forEachCallback, IsArrayable } from '../../recipes/IsArrayable';
|
|
9
|
+
import { IsDoubleLinker } from '../../recipes/IsDoubleLinker';
|
|
10
10
|
/**
|
|
11
11
|
* DoublyLinkedList represents a collection stored as a LinkedList with prev and next references.
|
|
12
12
|
* @extends LinkedList
|
|
13
13
|
*/
|
|
14
|
-
declare class DoublyLinkedList implements IsArrayable<DoubleLinker>, Iterable<DoubleLinker> {
|
|
14
|
+
export declare class DoublyLinkedList implements IsArrayable<DoubleLinker>, Iterable<DoubleLinker> {
|
|
15
15
|
readonly classType: typeof DoublyLinkedList;
|
|
16
16
|
innerList: DoubleLinker;
|
|
17
17
|
initialized: boolean;
|
|
@@ -111,4 +111,3 @@ declare class DoublyLinkedList implements IsArrayable<DoubleLinker>, Iterable<Do
|
|
|
111
111
|
*/
|
|
112
112
|
static fromArray: (values?: Array<any>, linkerClass?: typeof DoubleLinker, classType?: any) => IsArrayable<IsDoubleLinker> | any;
|
|
113
113
|
}
|
|
114
|
-
export default DoublyLinkedList;
|
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
7
|
-
require('
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var _LinkedList = _interopRequireDefault(require('../linked-list/LinkedList'))
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
6
|
+
exports.DoublyLinkedList = void 0
|
|
7
|
+
var _DoubleLinker = require('./DoubleLinker')
|
|
8
|
+
var _DoubleLinkerIterator = require('../../recipes/DoubleLinkerIterator')
|
|
9
|
+
var _LinkedList = require('../linked-list/LinkedList')
|
|
12
10
|
/**
|
|
13
11
|
* @file doubly linked list.
|
|
14
12
|
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
@@ -25,7 +23,7 @@ class DoublyLinkedList {
|
|
|
25
23
|
* Create the new DoublyLinkedList instance.
|
|
26
24
|
*/
|
|
27
25
|
constructor () {
|
|
28
|
-
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _DoubleLinker.
|
|
26
|
+
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _DoubleLinker.DoubleLinker
|
|
29
27
|
this.classType = DoublyLinkedList
|
|
30
28
|
this.innerList = null
|
|
31
29
|
this.initialized = false
|
|
@@ -38,7 +36,7 @@ class DoublyLinkedList {
|
|
|
38
36
|
* @return {DoublyLinkedList}
|
|
39
37
|
*/
|
|
40
38
|
initialize (initialList) {
|
|
41
|
-
return _LinkedList.
|
|
39
|
+
return _LinkedList.LinkedList.prototype.initialize.call(this, initialList)
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
/**
|
|
@@ -248,7 +246,7 @@ class DoublyLinkedList {
|
|
|
248
246
|
*/
|
|
249
247
|
forEach (callback) {
|
|
250
248
|
const thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this
|
|
251
|
-
return _LinkedList.
|
|
249
|
+
return _LinkedList.LinkedList.prototype.forEach.call(this, callback, thisArg)
|
|
252
250
|
}
|
|
253
251
|
|
|
254
252
|
/**
|
|
@@ -257,7 +255,7 @@ class DoublyLinkedList {
|
|
|
257
255
|
*/
|
|
258
256
|
[Symbol.iterator] () {
|
|
259
257
|
const current = this.first
|
|
260
|
-
return new _DoubleLinkerIterator.
|
|
258
|
+
return new _DoubleLinkerIterator.DoubleLinkerIterator(current)
|
|
261
259
|
}
|
|
262
260
|
}
|
|
263
261
|
/**
|
|
@@ -267,10 +265,10 @@ class DoublyLinkedList {
|
|
|
267
265
|
* @param {IsArrayable<IsDoubleLinker>} [classType=LinkedList] Provide the type of IsArrayable to use.
|
|
268
266
|
* @returns {DoublyLinkedList}
|
|
269
267
|
*/
|
|
268
|
+
exports.DoublyLinkedList = DoublyLinkedList
|
|
270
269
|
DoublyLinkedList.fromArray = function () {
|
|
271
270
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
272
|
-
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _DoubleLinker.
|
|
271
|
+
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _DoubleLinker.DoubleLinker
|
|
273
272
|
const classType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DoublyLinkedList
|
|
274
|
-
return _LinkedList.
|
|
273
|
+
return _LinkedList.LinkedList.fromArray(values, linkerClass, classType)
|
|
275
274
|
}
|
|
276
|
-
var _default = exports.default = DoublyLinkedList
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DoublyLinkedList=void 0;var _DoubleLinker=require("./DoubleLinker"),_DoubleLinkerIterator=require("../../recipes/DoubleLinkerIterator"),_LinkedList=require("../linked-list/LinkedList");class DoublyLinkedList{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_DoubleLinker.DoubleLinker;this.classType=DoublyLinkedList,this.innerList=null,this.initialized=!1,this.linkerClass=e}initialize(e){return _LinkedList.LinkedList.prototype.initialize.call(this,e)}get list(){return this.innerList}get first(){return this.reset()}get last(){let e=this.innerList;if(null===e)return null;let t=e.next;for(;null!==t;)e=t,t=e.next;return e}get length(){let e=this.first,t=0;for(;null!==e;)++t,e=e.next;return t}insertAfter(e,t){return t=this.linkerClass.make(t),null!==e&&(t.next=e.next,t.prev=e,e.next=t),t.next&&(t.next.prev=t),this.length||(this.innerList=t),this.reset(),this}insertBefore(e,t){return t=this.linkerClass.make(t),null!==e&&(t.prev=e.prev,t.next=e,e.prev=t),t.prev&&(t.prev.next=t),this.length||(this.innerList=t),this.reset(),this}append(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.last;return this.insertAfter(t,e)}prepend(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.first;return this.insertBefore(t,e)}remove(e){return null===e?null:(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),this.reset(),e)}reset(){let e=this.innerList;if(null===e)return null;let t=e.next;for(;null!==t;)e=t,t=e.next;let i=e.prev;for(;null!==i;)e=i,i=e.prev;return this.innerList=e,e}item(e){if(e>=0){let t=this.first,i=-1;for(;++i<e&&null!==t;)t=t.next;return i===e?t:null}let t=this.last,i=this.length;const r=this.length+e;if(r<0)return null;for(;--i>r&&null!==t;)t=t.prev;return i===r?t:null}forEach(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this;return _LinkedList.LinkedList.prototype.forEach.call(this,e,t)}[Symbol.iterator](){let e=this.first;return new _DoubleLinkerIterator.DoubleLinkerIterator(e)}}exports.DoublyLinkedList=DoublyLinkedList,DoublyLinkedList.fromArray=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_DoubleLinker.DoubleLinker,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:DoublyLinkedList;return _LinkedList.LinkedList.fromArray(e,t,i)};
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* @version 1.1.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
8
|
-
import IsLinker from '../../recipes/IsLinker';
|
|
9
|
-
import Linker from './Linker';
|
|
7
|
+
import { forEachCallback, IsArrayable } from '../../recipes/IsArrayable';
|
|
8
|
+
import { IsLinker } from '../../recipes/IsLinker';
|
|
9
|
+
import { Linker } from './Linker';
|
|
10
10
|
/**
|
|
11
11
|
* LinkedList represents a collection stored as a LinkedList with next references.
|
|
12
12
|
* @extends Arrayable
|
|
13
13
|
*/
|
|
14
|
-
declare class LinkedList implements IsArrayable<Linker>, Iterable<Linker> {
|
|
14
|
+
export declare class LinkedList implements IsArrayable<Linker>, Iterable<Linker> {
|
|
15
15
|
readonly classType: typeof LinkedList;
|
|
16
16
|
innerList: Linker;
|
|
17
17
|
initialized: boolean;
|
|
@@ -107,4 +107,3 @@ declare class LinkedList implements IsArrayable<Linker>, Iterable<Linker> {
|
|
|
107
107
|
*/
|
|
108
108
|
static fromArray: (values?: Array<any>, linkerClass?: typeof Linker, classType?: any) => IsArrayable<IsLinker> | any;
|
|
109
109
|
}
|
|
110
|
-
export default LinkedList;
|
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
7
|
-
require('
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var _Arrayable = _interopRequireDefault(require('../arrayable/Arrayable'))
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
6
|
+
exports.LinkedList = void 0
|
|
7
|
+
var _Linker = require('./Linker')
|
|
8
|
+
var _LinkerIterator = require('../../recipes/LinkerIterator')
|
|
9
|
+
var _Arrayable = require('../arrayable/Arrayable')
|
|
12
10
|
/**
|
|
13
11
|
* LinkedList represents a collection stored as a LinkedList with next references.
|
|
14
12
|
* @extends Arrayable
|
|
@@ -18,7 +16,7 @@ class LinkedList {
|
|
|
18
16
|
* Create the new LinkedList instance.
|
|
19
17
|
*/
|
|
20
18
|
constructor () {
|
|
21
|
-
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _Linker.
|
|
19
|
+
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _Linker.Linker
|
|
22
20
|
this.classType = LinkedList
|
|
23
21
|
this.innerList = null
|
|
24
22
|
this.initialized = false
|
|
@@ -31,7 +29,7 @@ class LinkedList {
|
|
|
31
29
|
* @return {LinkedList}
|
|
32
30
|
*/
|
|
33
31
|
initialize (initialList) {
|
|
34
|
-
return _Arrayable.
|
|
32
|
+
return _Arrayable.Arrayable.prototype.initialize.call(this, initialList)
|
|
35
33
|
}
|
|
36
34
|
|
|
37
35
|
/**
|
|
@@ -222,7 +220,7 @@ class LinkedList {
|
|
|
222
220
|
* @returns {Iterator}
|
|
223
221
|
*/
|
|
224
222
|
[Symbol.iterator] () {
|
|
225
|
-
return new _LinkerIterator.
|
|
223
|
+
return new _LinkerIterator.LinkerIterator(this.first)
|
|
226
224
|
}
|
|
227
225
|
}
|
|
228
226
|
/**
|
|
@@ -232,11 +230,11 @@ class LinkedList {
|
|
|
232
230
|
* @param {IsArrayable<Linker>} [classType=LinkedList] Provide the type of IsArrayable to use.
|
|
233
231
|
* @returns {LinkedList}
|
|
234
232
|
*/
|
|
233
|
+
exports.LinkedList = LinkedList
|
|
235
234
|
LinkedList.fromArray = function () {
|
|
236
235
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
237
|
-
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Linker.
|
|
236
|
+
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Linker.Linker
|
|
238
237
|
const classType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LinkedList
|
|
239
238
|
const list = new classType(linkerClass)
|
|
240
239
|
return list.initialize(linkerClass.fromArray(values).head)
|
|
241
240
|
}
|
|
242
|
-
var _default = exports.default = LinkedList
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LinkedList=void 0;var _Linker=require("./Linker"),_LinkerIterator=require("../../recipes/LinkerIterator"),_Arrayable=require("../arrayable/Arrayable");class LinkedList{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_Linker.Linker;this.classType=LinkedList,this.innerList=null,this.initialized=!1,this.linkerClass=t}initialize(t){return _Arrayable.Arrayable.prototype.initialize.call(this,t)}get list(){return this.innerList}get first(){return this.innerList}get last(){let t=this.innerList;if(null===t)return null;let e=t.next;for(;null!==e;)t=e,e=t.next;return t}get length(){let t=this.first,e=0;for(;null!==t;)++e,t=t.next;return e}insertAfter(t,e){return e=this.linkerClass.make(e),null!==t&&(e.next=t.next,t.next=e),this.length||(this.innerList=e),this}insertBefore(t,e){e=this.linkerClass.make(e);let r=null,i=this.first;for(;i!==t;)r=i,i=i.next;return e.next=t,r&&(r.next=e),t!==this.first&&null!==t||(this.innerList=e),this}append(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.last;return this.insertAfter(e,t)}prepend(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.first;return this.insertBefore(e,t)}remove(t){let e=null,r=this.first;for(;r!==t;)e=r,r=r.next;return e&&(e.next=t.next),t===this.first&&null!==t&&(this.innerList=t.next),t}item(t){if(t>=0){let e=this.first,r=-1;for(;++r<t&&null!==e;)e=e.next;return r===t?e:null}let e=this.first,r=0;const i=this.length+t;if(i<0)return null;for(;r<i&&null!==e;)e=e.next,++r;return r===i?e:null}forEach(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this,r=0,i=e.first;for(;null!==i;)t(i,r,e),i=i.next,++r;return e}[Symbol.iterator](){return new _LinkerIterator.LinkerIterator(this.first)}}exports.LinkedList=LinkedList,LinkedList.fromArray=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_Linker.Linker;return new(arguments.length>2&&void 0!==arguments[2]?arguments[2]:LinkedList)(e).initialize(e.fromArray(t).head)};
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* @version 1.1.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import IsLinker from '../../recipes/IsLinker';
|
|
7
|
+
import { IsLinker } from '../../recipes/IsLinker';
|
|
8
8
|
/**
|
|
9
9
|
* Linker represents a node in a LinkedList.
|
|
10
10
|
* @extends ArrayElement
|
|
11
11
|
*/
|
|
12
|
-
declare class Linker implements IsLinker {
|
|
12
|
+
export declare class Linker implements IsLinker {
|
|
13
13
|
readonly classType: typeof Linker;
|
|
14
14
|
data: any;
|
|
15
15
|
next: Linker | null;
|
|
@@ -41,4 +41,3 @@ declare class Linker implements IsLinker {
|
|
|
41
41
|
tail: IsLinker;
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
-
export default Linker;
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.Linker = void 0
|
|
7
7
|
require('core-js/modules/esnext.async-iterator.reduce.js')
|
|
8
8
|
require('core-js/modules/esnext.iterator.constructor.js')
|
|
9
9
|
require('core-js/modules/esnext.iterator.reduce.js')
|
|
10
|
-
var _ArrayElement =
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
10
|
+
var _ArrayElement = require('../arrayable/ArrayElement')
|
|
12
11
|
/**
|
|
13
12
|
* Linker represents a node in a LinkedList.
|
|
14
13
|
* @extends ArrayElement
|
|
@@ -38,6 +37,7 @@ class Linker {
|
|
|
38
37
|
* @param {IsLinker} [classType=Linker] Provide the type of IsLinker to use.
|
|
39
38
|
* @return {Linker}
|
|
40
39
|
*/
|
|
40
|
+
exports.Linker = Linker
|
|
41
41
|
Linker.make = function (linker) {
|
|
42
42
|
const classType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Linker
|
|
43
43
|
if (typeof linker !== 'object') {
|
|
@@ -56,7 +56,7 @@ Linker.make = function (linker) {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
// Create the new node as the configured #classType
|
|
59
|
-
return _ArrayElement.
|
|
59
|
+
return _ArrayElement.ArrayElement.make(linker, classType)
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Convert an array into Linker instances, return the head and tail Linkers.
|
|
@@ -84,4 +84,3 @@ Linker.fromArray = function (values) {
|
|
|
84
84
|
tail: null
|
|
85
85
|
})
|
|
86
86
|
}
|
|
87
|
-
var _default = exports.default = Linker
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Linker=void 0,require("core-js/modules/esnext.async-iterator.reduce.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js");var _ArrayElement=require("../arrayable/ArrayElement");class Linker{constructor(){let{data:e=null,next:r=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.classType=Linker,this.data=null,this.next=null,this.data=e,this.next=r}}exports.Linker=Linker,Linker.make=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Linker;return"object"!=typeof e?new r({data:e}):e.classType?e:(e.data||(e={data:e}),_ArrayElement.ArrayElement.make(e,r))},Linker.fromArray=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Linker;return e.reduce(((e,t)=>{const n=r.make(t,r);return null===e.head?{head:n,tail:n}:(e.tail.next=n,e.tail=n,e)}),{head:null,tail:null})};
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
* @version 1.1.0
|
|
5
5
|
* @memberOf module:collect-your-stuff
|
|
6
6
|
*/
|
|
7
|
-
import TreeLinker from './TreeLinker';
|
|
7
|
+
import { TreeLinker } from './TreeLinker';
|
|
8
8
|
import { forEachCallback } from '../../recipes/IsArrayable';
|
|
9
|
-
import IsTree from '../../recipes/IsTree';
|
|
10
|
-
import IsTreeNode from '../../recipes/IsTreeNode';
|
|
9
|
+
import { IsTree } from '../../recipes/IsTree';
|
|
10
|
+
import { IsTreeNode } from '../../recipes/IsTreeNode';
|
|
11
11
|
/**
|
|
12
12
|
* LinkedTreeList represents a collection stored with a root and spreading in branching (tree) formation.
|
|
13
13
|
* @extends DoublyLinkedList
|
|
14
14
|
*/
|
|
15
|
-
declare class LinkedTreeList implements IsTree, Iterable<TreeLinker> {
|
|
15
|
+
export declare class LinkedTreeList implements IsTree, Iterable<TreeLinker> {
|
|
16
16
|
readonly classType: typeof LinkedTreeList;
|
|
17
17
|
innerList: IsTreeNode | any;
|
|
18
18
|
initialized: boolean;
|
|
@@ -133,4 +133,3 @@ declare class LinkedTreeList implements IsTree, Iterable<TreeLinker> {
|
|
|
133
133
|
*/
|
|
134
134
|
static fromArray: (values?: Array<any>, linkerClass?: typeof TreeLinker, classType?: any) => IsTree | any;
|
|
135
135
|
}
|
|
136
|
-
export default LinkedTreeList;
|
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
7
|
-
require('
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var _DoublyLinkedList = _interopRequireDefault(require('../doubly-linked-list/DoublyLinkedList'))
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
6
|
+
exports.LinkedTreeList = void 0
|
|
7
|
+
var _TreeLinker = require('./TreeLinker')
|
|
8
|
+
var _TreeLinkerIterator = require('../../recipes/TreeLinkerIterator')
|
|
9
|
+
var _DoublyLinkedList = require('../doubly-linked-list/DoublyLinkedList')
|
|
12
10
|
/**
|
|
13
11
|
* @file doubly linked tree list.
|
|
14
12
|
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
@@ -25,7 +23,7 @@ class LinkedTreeList {
|
|
|
25
23
|
* Create the new LinkedTreeList instance, configure the list class.
|
|
26
24
|
*/
|
|
27
25
|
constructor () {
|
|
28
|
-
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _TreeLinker.
|
|
26
|
+
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _TreeLinker.TreeLinker
|
|
29
27
|
this.classType = LinkedTreeList
|
|
30
28
|
this.innerList = null
|
|
31
29
|
this.initialized = false
|
|
@@ -158,7 +156,7 @@ class LinkedTreeList {
|
|
|
158
156
|
* @returns {LinkedTreeList}
|
|
159
157
|
*/
|
|
160
158
|
insertAfter (node, newNode) {
|
|
161
|
-
return _DoublyLinkedList.
|
|
159
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.insertAfter.call(this, node, newNode)
|
|
162
160
|
}
|
|
163
161
|
|
|
164
162
|
/**
|
|
@@ -168,7 +166,7 @@ class LinkedTreeList {
|
|
|
168
166
|
* @returns {LinkedTreeList}
|
|
169
167
|
*/
|
|
170
168
|
insertBefore (node, newNode) {
|
|
171
|
-
return _DoublyLinkedList.
|
|
169
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.insertBefore.call(this, node, newNode)
|
|
172
170
|
}
|
|
173
171
|
|
|
174
172
|
/**
|
|
@@ -179,7 +177,7 @@ class LinkedTreeList {
|
|
|
179
177
|
*/
|
|
180
178
|
append (node) {
|
|
181
179
|
const after = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.last
|
|
182
|
-
return _DoublyLinkedList.
|
|
180
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.append.call(this, node, after)
|
|
183
181
|
}
|
|
184
182
|
|
|
185
183
|
/**
|
|
@@ -190,7 +188,7 @@ class LinkedTreeList {
|
|
|
190
188
|
*/
|
|
191
189
|
prepend (node) {
|
|
192
190
|
const before = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.first
|
|
193
|
-
return _DoublyLinkedList.
|
|
191
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.prepend.call(this, node, before)
|
|
194
192
|
}
|
|
195
193
|
|
|
196
194
|
/**
|
|
@@ -199,7 +197,7 @@ class LinkedTreeList {
|
|
|
199
197
|
* @return {TreeLinker}
|
|
200
198
|
*/
|
|
201
199
|
remove (node) {
|
|
202
|
-
return _DoublyLinkedList.
|
|
200
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.remove.call(this, node)
|
|
203
201
|
}
|
|
204
202
|
|
|
205
203
|
/**
|
|
@@ -207,7 +205,7 @@ class LinkedTreeList {
|
|
|
207
205
|
* @return {TreeLinker}
|
|
208
206
|
*/
|
|
209
207
|
reset () {
|
|
210
|
-
return _DoublyLinkedList.
|
|
208
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.reset.call(this)
|
|
211
209
|
}
|
|
212
210
|
|
|
213
211
|
/**
|
|
@@ -216,7 +214,7 @@ class LinkedTreeList {
|
|
|
216
214
|
* @returns {TreeLinker|null}
|
|
217
215
|
*/
|
|
218
216
|
item (index) {
|
|
219
|
-
return _DoublyLinkedList.
|
|
217
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.item.call(this, index)
|
|
220
218
|
}
|
|
221
219
|
|
|
222
220
|
/**
|
|
@@ -242,7 +240,7 @@ class LinkedTreeList {
|
|
|
242
240
|
*/
|
|
243
241
|
[Symbol.iterator] () {
|
|
244
242
|
const root = this.rootParent
|
|
245
|
-
return new _TreeLinkerIterator.
|
|
243
|
+
return new _TreeLinkerIterator.TreeLinkerIterator(root)
|
|
246
244
|
}
|
|
247
245
|
}
|
|
248
246
|
/**
|
|
@@ -252,11 +250,11 @@ class LinkedTreeList {
|
|
|
252
250
|
* @param {IsArrayable<TreeLinker>} [classType=LinkedTreeList] Provide the type of IsArrayable to use.
|
|
253
251
|
* @returns {LinkedTreeList}
|
|
254
252
|
*/
|
|
253
|
+
exports.LinkedTreeList = LinkedTreeList
|
|
255
254
|
LinkedTreeList.fromArray = function () {
|
|
256
255
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
257
|
-
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _TreeLinker.
|
|
256
|
+
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _TreeLinker.TreeLinker
|
|
258
257
|
const classType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LinkedTreeList
|
|
259
258
|
const list = new classType(linkerClass)
|
|
260
259
|
return list.initialize(linkerClass.fromArray(values).head)
|
|
261
260
|
}
|
|
262
|
-
var _default = exports.default = LinkedTreeList
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LinkedTreeList=void 0;var _TreeLinker=require("./TreeLinker"),_TreeLinkerIterator=require("../../recipes/TreeLinkerIterator"),_DoublyLinkedList=require("../doubly-linked-list/DoublyLinkedList");class LinkedTreeList{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_TreeLinker.TreeLinker;this.classType=LinkedTreeList,this.innerList=null,this.initialized=!1,this.linkerClass=e}initialize(e){return this.initialized?(console.warn("Attempt to initialize LinkedTreeList which is not empty."),this):(this.initialized=!0,this.innerList=e,this)}get list(){return this.innerList}get first(){return this.reset()}get last(){let e=this.innerList;if(null===e)return null;let t=e.next;for(;null!==t;)e=t,t=e.next;return e}get length(){let e=this.first,t=0;for(;null!==e;)++t,e=e.next;return t}get parent(){return null===this.first?null:this.first.parent}set parent(e){let t=this.first;for(;null!==t;)t.parent=e,t=t.next;e&&(e.children=this)}get rootParent(){let e=this.first;if(!e)return null;let t=this.first.parent;for(;null!==t;)e=t,t=e.parent;return e}setChildren(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;Array.from(this).indexOf(e)<0&&console.error("item is not a child of this"),t.parent=e}insertAfter(e,t){return _DoublyLinkedList.DoublyLinkedList.prototype.insertAfter.call(this,e,t)}insertBefore(e,t){return _DoublyLinkedList.DoublyLinkedList.prototype.insertBefore.call(this,e,t)}append(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.last;return _DoublyLinkedList.DoublyLinkedList.prototype.append.call(this,e,t)}prepend(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.first;return _DoublyLinkedList.DoublyLinkedList.prototype.prepend.call(this,e,t)}remove(e){return _DoublyLinkedList.DoublyLinkedList.prototype.remove.call(this,e)}reset(){return _DoublyLinkedList.DoublyLinkedList.prototype.reset.call(this)}item(e){return _DoublyLinkedList.DoublyLinkedList.prototype.item.call(this,e)}forEach(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this,i=0,r=t.first;for(;null!==r;)e(r,i,t),r=r.next,++i;return t}[Symbol.iterator](){let e=this.rootParent;return new _TreeLinkerIterator.TreeLinkerIterator(e)}}exports.LinkedTreeList=LinkedTreeList,LinkedTreeList.fromArray=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_TreeLinker.TreeLinker;return new(arguments.length>2&&void 0!==arguments[2]?arguments[2]:LinkedTreeList)(t).initialize(t.fromArray(e).head)};
|