collect-your-stuff 1.1.9 → 1.2.0
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 +131 -149
- 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 -8
- 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 -12
- 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 -10
- 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 -16
- 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 +1 -1
|
@@ -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,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.Arrayable = void 0
|
|
7
7
|
require('core-js/modules/web.dom-collections.iterator.js')
|
|
8
|
-
var _ArrayElement =
|
|
9
|
-
var _ArrayIterator =
|
|
10
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
8
|
+
var _ArrayElement = require('./ArrayElement')
|
|
9
|
+
var _ArrayIterator = require('../../recipes/ArrayIterator')
|
|
11
10
|
/**
|
|
12
11
|
* @file arrayable list.
|
|
13
12
|
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
@@ -23,7 +22,7 @@ class Arrayable {
|
|
|
23
22
|
* Create the new Arrayable instance, configure the Arrayable class.
|
|
24
23
|
*/
|
|
25
24
|
constructor () {
|
|
26
|
-
const elementClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _ArrayElement.
|
|
25
|
+
const elementClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _ArrayElement.ArrayElement
|
|
27
26
|
this.classType = Arrayable
|
|
28
27
|
this.innerList = []
|
|
29
28
|
this.initialized = false
|
|
@@ -177,7 +176,7 @@ class Arrayable {
|
|
|
177
176
|
*/
|
|
178
177
|
[Symbol.iterator] () {
|
|
179
178
|
const index = 0
|
|
180
|
-
return new _ArrayIterator.
|
|
179
|
+
return new _ArrayIterator.ArrayIterator(this.innerList, index)
|
|
181
180
|
}
|
|
182
181
|
}
|
|
183
182
|
/**
|
|
@@ -187,11 +186,11 @@ class Arrayable {
|
|
|
187
186
|
* @param {IsArrayable<ArrayElement>} [classType=Arrayable] Provide the type of IsArrayable to use.
|
|
188
187
|
* @returns {Arrayable}
|
|
189
188
|
*/
|
|
189
|
+
exports.Arrayable = Arrayable
|
|
190
190
|
Arrayable.fromArray = function () {
|
|
191
191
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
192
|
-
const elementClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _ArrayElement.
|
|
192
|
+
const elementClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _ArrayElement.ArrayElement
|
|
193
193
|
const classType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Arrayable
|
|
194
194
|
const list = new classType(elementClass)
|
|
195
195
|
return list.initialize(elementClass.fromArray(values).head)
|
|
196
196
|
}
|
|
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,require("core-js/modules/web.dom-collections.iterator.js");var _ArrayElement=require("./ArrayElement"),_ArrayIterator=require("../../recipes/ArrayIterator");class Arrayable{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_ArrayElement.ArrayElement;this.classType=Arrayable,this.innerList=[],this.initialized=!1,this.elementClass=e}initialize(e){return this.initialized?(console.warn("Attempt to initialize non-empty list."),this):(this.initialized=!0,this.innerList=e,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(e,t){const r=this.innerList.indexOf(e);return this.innerList.splice(r+1,0,this.elementClass.make(t)),this}insertBefore(e,t){const r=this.innerList.indexOf(e);return this.innerList.splice(r,0,this.elementClass.make(t)),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){const t=this.innerList.indexOf(e);return this.innerList.splice(t,1),e}item(e){if(e>=this.length)return null;if(e>=0)return this.innerList[e];const t=this.length+e;return t<0?null:this.innerList[t]}forEach(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this;for(let r=0;r<t.length;++r)e(t.item(r),r,t);return t}[Symbol.iterator](){return new _ArrayIterator.ArrayIterator(this.innerList,0)}}exports.Arrayable=Arrayable,Arrayable.fromArray=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_ArrayElement.ArrayElement;return new(arguments.length>2&&void 0!==arguments[2]?arguments[2]:Arrayable)(t).initialize(t.fromArray(e).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,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.DoublyLinkedList = void 0
|
|
7
7
|
require('core-js/modules/web.dom-collections.iterator.js')
|
|
8
|
-
var _DoubleLinker =
|
|
9
|
-
var _DoubleLinkerIterator =
|
|
10
|
-
var _LinkedList =
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
8
|
+
var _DoubleLinker = require('./DoubleLinker')
|
|
9
|
+
var _DoubleLinkerIterator = require('../../recipes/DoubleLinkerIterator')
|
|
10
|
+
var _LinkedList = require('../linked-list/LinkedList')
|
|
12
11
|
/**
|
|
13
12
|
* @file doubly linked list.
|
|
14
13
|
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
@@ -25,7 +24,7 @@ class DoublyLinkedList {
|
|
|
25
24
|
* Create the new DoublyLinkedList instance.
|
|
26
25
|
*/
|
|
27
26
|
constructor () {
|
|
28
|
-
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _DoubleLinker.
|
|
27
|
+
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _DoubleLinker.DoubleLinker
|
|
29
28
|
this.classType = DoublyLinkedList
|
|
30
29
|
this.innerList = null
|
|
31
30
|
this.initialized = false
|
|
@@ -38,7 +37,7 @@ class DoublyLinkedList {
|
|
|
38
37
|
* @return {DoublyLinkedList}
|
|
39
38
|
*/
|
|
40
39
|
initialize (initialList) {
|
|
41
|
-
return _LinkedList.
|
|
40
|
+
return _LinkedList.LinkedList.prototype.initialize.call(this, initialList)
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
/**
|
|
@@ -248,7 +247,7 @@ class DoublyLinkedList {
|
|
|
248
247
|
*/
|
|
249
248
|
forEach (callback) {
|
|
250
249
|
const thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this
|
|
251
|
-
return _LinkedList.
|
|
250
|
+
return _LinkedList.LinkedList.prototype.forEach.call(this, callback, thisArg)
|
|
252
251
|
}
|
|
253
252
|
|
|
254
253
|
/**
|
|
@@ -257,7 +256,7 @@ class DoublyLinkedList {
|
|
|
257
256
|
*/
|
|
258
257
|
[Symbol.iterator] () {
|
|
259
258
|
const current = this.first
|
|
260
|
-
return new _DoubleLinkerIterator.
|
|
259
|
+
return new _DoubleLinkerIterator.DoubleLinkerIterator(current)
|
|
261
260
|
}
|
|
262
261
|
}
|
|
263
262
|
/**
|
|
@@ -267,10 +266,10 @@ class DoublyLinkedList {
|
|
|
267
266
|
* @param {IsArrayable<IsDoubleLinker>} [classType=LinkedList] Provide the type of IsArrayable to use.
|
|
268
267
|
* @returns {DoublyLinkedList}
|
|
269
268
|
*/
|
|
269
|
+
exports.DoublyLinkedList = DoublyLinkedList
|
|
270
270
|
DoublyLinkedList.fromArray = function () {
|
|
271
271
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
272
|
-
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _DoubleLinker.
|
|
272
|
+
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _DoubleLinker.DoubleLinker
|
|
273
273
|
const classType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DoublyLinkedList
|
|
274
|
-
return _LinkedList.
|
|
274
|
+
return _LinkedList.LinkedList.fromArray(values, linkerClass, classType)
|
|
275
275
|
}
|
|
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,require("core-js/modules/web.dom-collections.iterator.js");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 r=e.prev;for(;null!==r;)e=r,r=e.prev;return this.innerList=e,e}item(e){if(e>=0){let t=this.first,r=-1;for(;++r<e&&null!==t;)t=t.next;return r===e?t:null}let t=this.last,r=this.length;const i=this.length+e;if(i<0)return null;for(;--r>i&&null!==t;)t=t.prev;return r===i?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,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:DoublyLinkedList;return _LinkedList.LinkedList.fromArray(e,t,r)};
|
|
@@ -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,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.LinkedList = void 0
|
|
7
7
|
require('core-js/modules/web.dom-collections.iterator.js')
|
|
8
|
-
var _Linker =
|
|
9
|
-
var _LinkerIterator =
|
|
10
|
-
var _Arrayable =
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
8
|
+
var _Linker = require('./Linker')
|
|
9
|
+
var _LinkerIterator = require('../../recipes/LinkerIterator')
|
|
10
|
+
var _Arrayable = require('../arrayable/Arrayable')
|
|
12
11
|
/**
|
|
13
12
|
* LinkedList represents a collection stored as a LinkedList with next references.
|
|
14
13
|
* @extends Arrayable
|
|
@@ -18,7 +17,7 @@ class LinkedList {
|
|
|
18
17
|
* Create the new LinkedList instance.
|
|
19
18
|
*/
|
|
20
19
|
constructor () {
|
|
21
|
-
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _Linker.
|
|
20
|
+
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _Linker.Linker
|
|
22
21
|
this.classType = LinkedList
|
|
23
22
|
this.innerList = null
|
|
24
23
|
this.initialized = false
|
|
@@ -31,7 +30,7 @@ class LinkedList {
|
|
|
31
30
|
* @return {LinkedList}
|
|
32
31
|
*/
|
|
33
32
|
initialize (initialList) {
|
|
34
|
-
return _Arrayable.
|
|
33
|
+
return _Arrayable.Arrayable.prototype.initialize.call(this, initialList)
|
|
35
34
|
}
|
|
36
35
|
|
|
37
36
|
/**
|
|
@@ -222,7 +221,7 @@ class LinkedList {
|
|
|
222
221
|
* @returns {Iterator}
|
|
223
222
|
*/
|
|
224
223
|
[Symbol.iterator] () {
|
|
225
|
-
return new _LinkerIterator.
|
|
224
|
+
return new _LinkerIterator.LinkerIterator(this.first)
|
|
226
225
|
}
|
|
227
226
|
}
|
|
228
227
|
/**
|
|
@@ -232,11 +231,11 @@ class LinkedList {
|
|
|
232
231
|
* @param {IsArrayable<Linker>} [classType=LinkedList] Provide the type of IsArrayable to use.
|
|
233
232
|
* @returns {LinkedList}
|
|
234
233
|
*/
|
|
234
|
+
exports.LinkedList = LinkedList
|
|
235
235
|
LinkedList.fromArray = function () {
|
|
236
236
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
237
|
-
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Linker.
|
|
237
|
+
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _Linker.Linker
|
|
238
238
|
const classType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LinkedList
|
|
239
239
|
const list = new classType(linkerClass)
|
|
240
240
|
return list.initialize(linkerClass.fromArray(values).head)
|
|
241
241
|
}
|
|
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,require("core-js/modules/web.dom-collections.iterator.js");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,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
})
|
|
6
|
-
exports.
|
|
6
|
+
exports.LinkedTreeList = void 0
|
|
7
7
|
require('core-js/modules/web.dom-collections.iterator.js')
|
|
8
|
-
var _TreeLinker =
|
|
9
|
-
var _TreeLinkerIterator =
|
|
10
|
-
var _DoublyLinkedList =
|
|
11
|
-
function _interopRequireDefault (obj) { return obj && obj.__esModule ? obj : { default: obj } }
|
|
8
|
+
var _TreeLinker = require('./TreeLinker')
|
|
9
|
+
var _TreeLinkerIterator = require('../../recipes/TreeLinkerIterator')
|
|
10
|
+
var _DoublyLinkedList = require('../doubly-linked-list/DoublyLinkedList')
|
|
12
11
|
/**
|
|
13
12
|
* @file doubly linked tree list.
|
|
14
13
|
* @author Joshua Heagle <joshuaheagle@gmail.com>
|
|
@@ -25,7 +24,7 @@ class LinkedTreeList {
|
|
|
25
24
|
* Create the new LinkedTreeList instance, configure the list class.
|
|
26
25
|
*/
|
|
27
26
|
constructor () {
|
|
28
|
-
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _TreeLinker.
|
|
27
|
+
const linkerClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _TreeLinker.TreeLinker
|
|
29
28
|
this.classType = LinkedTreeList
|
|
30
29
|
this.innerList = null
|
|
31
30
|
this.initialized = false
|
|
@@ -158,7 +157,7 @@ class LinkedTreeList {
|
|
|
158
157
|
* @returns {LinkedTreeList}
|
|
159
158
|
*/
|
|
160
159
|
insertAfter (node, newNode) {
|
|
161
|
-
return _DoublyLinkedList.
|
|
160
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.insertAfter.call(this, node, newNode)
|
|
162
161
|
}
|
|
163
162
|
|
|
164
163
|
/**
|
|
@@ -168,7 +167,7 @@ class LinkedTreeList {
|
|
|
168
167
|
* @returns {LinkedTreeList}
|
|
169
168
|
*/
|
|
170
169
|
insertBefore (node, newNode) {
|
|
171
|
-
return _DoublyLinkedList.
|
|
170
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.insertBefore.call(this, node, newNode)
|
|
172
171
|
}
|
|
173
172
|
|
|
174
173
|
/**
|
|
@@ -179,7 +178,7 @@ class LinkedTreeList {
|
|
|
179
178
|
*/
|
|
180
179
|
append (node) {
|
|
181
180
|
const after = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.last
|
|
182
|
-
return _DoublyLinkedList.
|
|
181
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.append.call(this, node, after)
|
|
183
182
|
}
|
|
184
183
|
|
|
185
184
|
/**
|
|
@@ -190,7 +189,7 @@ class LinkedTreeList {
|
|
|
190
189
|
*/
|
|
191
190
|
prepend (node) {
|
|
192
191
|
const before = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.first
|
|
193
|
-
return _DoublyLinkedList.
|
|
192
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.prepend.call(this, node, before)
|
|
194
193
|
}
|
|
195
194
|
|
|
196
195
|
/**
|
|
@@ -199,7 +198,7 @@ class LinkedTreeList {
|
|
|
199
198
|
* @return {TreeLinker}
|
|
200
199
|
*/
|
|
201
200
|
remove (node) {
|
|
202
|
-
return _DoublyLinkedList.
|
|
201
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.remove.call(this, node)
|
|
203
202
|
}
|
|
204
203
|
|
|
205
204
|
/**
|
|
@@ -207,7 +206,7 @@ class LinkedTreeList {
|
|
|
207
206
|
* @return {TreeLinker}
|
|
208
207
|
*/
|
|
209
208
|
reset () {
|
|
210
|
-
return _DoublyLinkedList.
|
|
209
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.reset.call(this)
|
|
211
210
|
}
|
|
212
211
|
|
|
213
212
|
/**
|
|
@@ -216,7 +215,7 @@ class LinkedTreeList {
|
|
|
216
215
|
* @returns {TreeLinker|null}
|
|
217
216
|
*/
|
|
218
217
|
item (index) {
|
|
219
|
-
return _DoublyLinkedList.
|
|
218
|
+
return _DoublyLinkedList.DoublyLinkedList.prototype.item.call(this, index)
|
|
220
219
|
}
|
|
221
220
|
|
|
222
221
|
/**
|
|
@@ -242,7 +241,7 @@ class LinkedTreeList {
|
|
|
242
241
|
*/
|
|
243
242
|
[Symbol.iterator] () {
|
|
244
243
|
const root = this.rootParent
|
|
245
|
-
return new _TreeLinkerIterator.
|
|
244
|
+
return new _TreeLinkerIterator.TreeLinkerIterator(root)
|
|
246
245
|
}
|
|
247
246
|
}
|
|
248
247
|
/**
|
|
@@ -252,11 +251,11 @@ class LinkedTreeList {
|
|
|
252
251
|
* @param {IsArrayable<TreeLinker>} [classType=LinkedTreeList] Provide the type of IsArrayable to use.
|
|
253
252
|
* @returns {LinkedTreeList}
|
|
254
253
|
*/
|
|
254
|
+
exports.LinkedTreeList = LinkedTreeList
|
|
255
255
|
LinkedTreeList.fromArray = function () {
|
|
256
256
|
const values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []
|
|
257
|
-
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _TreeLinker.
|
|
257
|
+
const linkerClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _TreeLinker.TreeLinker
|
|
258
258
|
const classType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LinkedTreeList
|
|
259
259
|
const list = new classType(linkerClass)
|
|
260
260
|
return list.initialize(linkerClass.fromArray(values).head)
|
|
261
261
|
}
|
|
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,require("core-js/modules/web.dom-collections.iterator.js");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)};
|