data-structure-typed 1.15.2 → 1.17.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 +24 -24
- package/dist/data-structures/heap/heap.d.ts +30 -15
- package/dist/data-structures/heap/heap.js +60 -15
- package/dist/data-structures/heap/max-heap.d.ts +3 -3
- package/dist/data-structures/heap/min-heap.d.ts +3 -3
- package/dist/data-structures/index.d.ts +1 -0
- package/dist/data-structures/index.js +1 -0
- package/dist/data-structures/linked-list/doubly-linked-list.d.ts +195 -68
- package/dist/data-structures/linked-list/doubly-linked-list.js +456 -244
- package/dist/data-structures/linked-list/singly-linked-list.d.ts +126 -241
- package/dist/data-structures/linked-list/singly-linked-list.js +331 -628
- package/dist/data-structures/priority-queue/max-priority-queue.d.ts +4 -5
- package/dist/data-structures/priority-queue/max-priority-queue.js +30 -6
- package/dist/data-structures/priority-queue/min-priority-queue.d.ts +4 -5
- package/dist/data-structures/priority-queue/min-priority-queue.js +31 -6
- package/dist/data-structures/priority-queue/priority-queue.d.ts +13 -2
- package/dist/data-structures/priority-queue/priority-queue.js +28 -22
- package/dist/data-structures/tree/index.d.ts +1 -0
- package/dist/data-structures/tree/index.js +17 -0
- package/dist/data-structures/tree/tree.d.ts +9 -0
- package/dist/data-structures/tree/tree.js +52 -0
- package/dist/data-structures/types/binary-tree.d.ts +0 -5
- package/dist/data-structures/types/heap.d.ts +0 -4
- package/dist/utils/types/utils.d.ts +1 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +92 -0
- package/docs/assets/main.js +58 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1367 -0
- package/docs/classes/AVLTree.html +2191 -0
- package/docs/classes/AVLTreeNode.html +573 -0
- package/docs/classes/AaTree.html +149 -0
- package/docs/classes/AbstractEdge.html +268 -0
- package/docs/classes/AbstractGraph.html +926 -0
- package/docs/classes/AbstractVertex.html +214 -0
- package/docs/classes/ArrayDeque.html +416 -0
- package/docs/classes/BST.html +2037 -0
- package/docs/classes/BSTNode.html +569 -0
- package/docs/classes/BTree.html +149 -0
- package/docs/classes/BinaryIndexedTree.html +288 -0
- package/docs/classes/BinaryTree.html +1826 -0
- package/docs/classes/BinaryTreeNode.html +532 -0
- package/docs/classes/Character.html +197 -0
- package/docs/classes/CoordinateMap.html +468 -0
- package/docs/classes/CoordinateSet.html +429 -0
- package/docs/classes/Deque.html +897 -0
- package/docs/classes/DirectedEdge.html +353 -0
- package/docs/classes/DirectedGraph.html +1242 -0
- package/docs/classes/DirectedVertex.html +225 -0
- package/docs/classes/DoublyLinkedList.html +891 -0
- package/docs/classes/DoublyLinkedListNode.html +274 -0
- package/docs/classes/Heap.html +481 -0
- package/docs/classes/HeapItem.html +232 -0
- package/docs/classes/Matrix2D.html +479 -0
- package/docs/classes/MatrixNTI2D.html +217 -0
- package/docs/classes/MaxHeap.html +499 -0
- package/docs/classes/MaxPriorityQueue.html +808 -0
- package/docs/classes/MinHeap.html +500 -0
- package/docs/classes/MinPriorityQueue.html +810 -0
- package/docs/classes/Navigator.html +290 -0
- package/docs/classes/ObjectDeque.html +422 -0
- package/docs/classes/PriorityQueue.html +732 -0
- package/docs/classes/Queue.html +369 -0
- package/docs/classes/RBTree.html +149 -0
- package/docs/classes/SegmentTree.html +344 -0
- package/docs/classes/SegmentTreeNode.html +417 -0
- package/docs/classes/SinglyLinkedList.html +718 -0
- package/docs/classes/SinglyLinkedListNode.html +247 -0
- package/docs/classes/SplayTree.html +149 -0
- package/docs/classes/Stack.html +345 -0
- package/docs/classes/TreeMultiSet.html +2035 -0
- package/docs/classes/TreeNode.html +235 -0
- package/docs/classes/Trie.html +349 -0
- package/docs/classes/TrieNode.html +257 -0
- package/docs/classes/TwoThreeTree.html +149 -0
- package/docs/classes/UndirectedEdge.html +312 -0
- package/docs/classes/UndirectedGraph.html +1079 -0
- package/docs/classes/UndirectedVertex.html +225 -0
- package/docs/classes/Vector2D.html +782 -0
- package/docs/enums/CP.html +158 -0
- package/docs/enums/FamilyPosition.html +158 -0
- package/docs/enums/LoopType.html +159 -0
- package/docs/index.html +493 -0
- package/docs/interfaces/AVLTreeDeleted.html +160 -0
- package/docs/interfaces/HeapOptions.html +166 -0
- package/docs/interfaces/IDirectedGraph.html +242 -0
- package/docs/interfaces/IGraph.html +426 -0
- package/docs/interfaces/NavigatorParams.html +196 -0
- package/docs/interfaces/PriorityQueueOptions.html +167 -0
- package/docs/modules.html +216 -0
- package/docs/types/BSTComparator.html +139 -0
- package/docs/types/BSTDeletedResult.html +136 -0
- package/docs/types/BinaryTreeDeleted.html +136 -0
- package/docs/types/BinaryTreeNodeId.html +124 -0
- package/docs/types/BinaryTreeNodePropertyName.html +124 -0
- package/docs/types/DFSOrderPattern.html +124 -0
- package/docs/types/DijkstraResult.html +144 -0
- package/docs/types/Direction.html +124 -0
- package/docs/types/DoublyLinkedListGetBy.html +124 -0
- package/docs/types/NodeOrPropertyName.html +124 -0
- package/docs/types/PriorityQueueComparator.html +144 -0
- package/docs/types/PriorityQueueDFSOrderPattern.html +124 -0
- package/docs/types/ResultByProperty.html +129 -0
- package/docs/types/ResultsByProperty.html +129 -0
- package/docs/types/SegmentTreeNodeVal.html +124 -0
- package/docs/types/SpecifyOptional.html +131 -0
- package/docs/types/Thunk.html +132 -0
- package/docs/types/ToThunkFn.html +132 -0
- package/docs/types/TopologicalStatus.html +124 -0
- package/docs/types/TreeMultiSetDeletedResult.html +136 -0
- package/docs/types/TrlAsyncFn.html +137 -0
- package/docs/types/TrlFn.html +137 -0
- package/docs/types/Turning.html +124 -0
- package/docs/types/VertexId.html +124 -0
- package/{tests/unit/data-structures/binary-tree → notes}/bst.test.ts +37 -50
- package/notes/note.md +23 -0
- package/package.json +1 -3
- package/.idea/data-structure-typed.iml +0 -14
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -6
- package/src/assets/complexities-diff.jpg +0 -0
- package/src/assets/data-structure-complexities.jpg +0 -0
- package/src/assets/logo.png +0 -0
- package/src/assets/overview-diagram-of-data-structures.png +0 -0
- package/src/data-structures/binary-tree/aa-tree.ts +0 -3
- package/src/data-structures/binary-tree/avl-tree.ts +0 -293
- package/src/data-structures/binary-tree/b-tree.ts +0 -3
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +0 -69
- package/src/data-structures/binary-tree/binary-tree.ts +0 -1492
- package/src/data-structures/binary-tree/bst.ts +0 -497
- package/src/data-structures/binary-tree/diagrams/avl-tree-inserting.gif +0 -0
- package/src/data-structures/binary-tree/diagrams/bst-rotation.gif +0 -0
- package/src/data-structures/binary-tree/diagrams/segment-tree.png +0 -0
- package/src/data-structures/binary-tree/index.ts +0 -11
- package/src/data-structures/binary-tree/rb-tree.ts +0 -3
- package/src/data-structures/binary-tree/segment-tree.ts +0 -267
- package/src/data-structures/binary-tree/splay-tree.ts +0 -3
- package/src/data-structures/binary-tree/tree-multiset.ts +0 -53
- package/src/data-structures/binary-tree/two-three-tree.ts +0 -3
- package/src/data-structures/diagrams/README.md +0 -5
- package/src/data-structures/graph/abstract-graph.ts +0 -958
- package/src/data-structures/graph/diagrams/adjacency-list-pros-cons.jpg +0 -0
- package/src/data-structures/graph/diagrams/adjacency-list.jpg +0 -0
- package/src/data-structures/graph/diagrams/adjacency-matrix-pros-cons.jpg +0 -0
- package/src/data-structures/graph/diagrams/adjacency-matrix.jpg +0 -0
- package/src/data-structures/graph/diagrams/dfs-can-do.jpg +0 -0
- package/src/data-structures/graph/diagrams/edge-list-pros-cons.jpg +0 -0
- package/src/data-structures/graph/diagrams/edge-list.jpg +0 -0
- package/src/data-structures/graph/diagrams/max-flow.jpg +0 -0
- package/src/data-structures/graph/diagrams/mst.jpg +0 -0
- package/src/data-structures/graph/diagrams/tarjan-articulation-point-bridge.png +0 -0
- package/src/data-structures/graph/diagrams/tarjan-complicate-simple.png +0 -0
- package/src/data-structures/graph/diagrams/tarjan-strongly-connected-component.png +0 -0
- package/src/data-structures/graph/diagrams/tarjan.mp4 +0 -0
- package/src/data-structures/graph/diagrams/tarjan.webp +0 -0
- package/src/data-structures/graph/directed-graph.ts +0 -429
- package/src/data-structures/graph/index.ts +0 -3
- package/src/data-structures/graph/undirected-graph.ts +0 -259
- package/src/data-structures/hash/coordinate-map.ts +0 -74
- package/src/data-structures/hash/coordinate-set.ts +0 -63
- package/src/data-structures/hash/hash-table.ts +0 -1
- package/src/data-structures/hash/index.ts +0 -6
- package/src/data-structures/hash/pair.ts +0 -1
- package/src/data-structures/hash/tree-map.ts +0 -1
- package/src/data-structures/hash/tree-set.ts +0 -1
- package/src/data-structures/heap/heap.ts +0 -162
- package/src/data-structures/heap/index.ts +0 -3
- package/src/data-structures/heap/max-heap.ts +0 -31
- package/src/data-structures/heap/min-heap.ts +0 -34
- package/src/data-structures/index.ts +0 -13
- package/src/data-structures/linked-list/doubly-linked-list.ts +0 -365
- package/src/data-structures/linked-list/index.ts +0 -2
- package/src/data-structures/linked-list/singly-linked-list.ts +0 -757
- package/src/data-structures/linked-list/skip-linked-list.ts +0 -1
- package/src/data-structures/matrix/index.ts +0 -4
- package/src/data-structures/matrix/matrix.ts +0 -27
- package/src/data-structures/matrix/matrix2d.ts +0 -208
- package/src/data-structures/matrix/navigator.ts +0 -122
- package/src/data-structures/matrix/vector2d.ts +0 -316
- package/src/data-structures/priority-queue/index.ts +0 -3
- package/src/data-structures/priority-queue/max-priority-queue.ts +0 -24
- package/src/data-structures/priority-queue/min-priority-queue.ts +0 -24
- package/src/data-structures/priority-queue/priority-queue.ts +0 -349
- package/src/data-structures/queue/deque.ts +0 -251
- package/src/data-structures/queue/index.ts +0 -2
- package/src/data-structures/queue/queue.ts +0 -120
- package/src/data-structures/stack/index.ts +0 -1
- package/src/data-structures/stack/stack.ts +0 -98
- package/src/data-structures/trie/index.ts +0 -1
- package/src/data-structures/trie/trie.ts +0 -225
- package/src/data-structures/types/abstract-graph.ts +0 -51
- package/src/data-structures/types/avl-tree.ts +0 -6
- package/src/data-structures/types/binary-tree.ts +0 -15
- package/src/data-structures/types/bst.ts +0 -5
- package/src/data-structures/types/directed-graph.ts +0 -18
- package/src/data-structures/types/doubly-linked-list.ts +0 -1
- package/src/data-structures/types/heap.ts +0 -8
- package/src/data-structures/types/index.ts +0 -13
- package/src/data-structures/types/navigator.ts +0 -13
- package/src/data-structures/types/priority-queue.ts +0 -9
- package/src/data-structures/types/segment-tree.ts +0 -1
- package/src/data-structures/types/singly-linked-list.ts +0 -1
- package/src/data-structures/types/tree-multiset.ts +0 -3
- package/src/index.ts +0 -1
- package/src/utils/index.ts +0 -2
- package/src/utils/types/index.ts +0 -1
- package/src/utils/types/utils.ts +0 -4
- package/src/utils/utils.ts +0 -78
- package/tests/unit/data-structures/graph/abstract-graph.ts +0 -0
- package/tests/unit/data-structures/graph/directed-graph.test.ts +0 -492
- package/tests/unit/data-structures/graph/index.ts +0 -3
- package/tests/unit/data-structures/graph/undirected-graph.ts +0 -0
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
import { PriorityQueue } from './priority-queue';
|
|
9
9
|
import type { PriorityQueueOptions } from '../types';
|
|
10
10
|
export declare class MaxPriorityQueue<T = number> extends PriorityQueue<T> {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
constructor(options?: PriorityQueueOptions<T>);
|
|
11
|
+
constructor(options?: Omit<PriorityQueueOptions<number>, 'comparator'>);
|
|
12
|
+
constructor(options: PriorityQueueOptions<T>);
|
|
13
|
+
static heapify<T extends number>(options?: Omit<PriorityQueueOptions<T>, 'comparator'>): MaxPriorityQueue<T>;
|
|
14
|
+
static heapify<T>(options: PriorityQueueOptions<T>): MaxPriorityQueue<T>;
|
|
16
15
|
}
|
|
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
17
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
29
|
exports.MaxPriorityQueue = void 0;
|
|
19
30
|
/**
|
|
@@ -27,17 +38,30 @@ var priority_queue_1 = require("./priority-queue");
|
|
|
27
38
|
var MaxPriorityQueue = /** @class */ (function (_super) {
|
|
28
39
|
__extends(MaxPriorityQueue, _super);
|
|
29
40
|
/**
|
|
30
|
-
* The constructor initializes a
|
|
31
|
-
* @param [options] -
|
|
41
|
+
* The constructor initializes a priority queue with an optional comparator function.
|
|
42
|
+
* @param [options] - The `options` parameter is an optional object that can contain various properties to configure
|
|
43
|
+
* the priority queue.
|
|
32
44
|
*/
|
|
33
45
|
function MaxPriorityQueue(options) {
|
|
34
|
-
return _super.call(this, {
|
|
35
|
-
nodes: options === null || options === void 0 ? void 0 : options.nodes, comparator: (options === null || options === void 0 ? void 0 : options.comparator) ? options.comparator : function (a, b) {
|
|
46
|
+
return _super.call(this, __assign(__assign({}, options), { comparator: (options === null || options === void 0 ? void 0 : options.comparator) ? options.comparator : function (a, b) {
|
|
36
47
|
var aKey = a, bKey = b;
|
|
37
48
|
return bKey - aKey;
|
|
38
|
-
}
|
|
39
|
-
}) || this;
|
|
49
|
+
} })) || this;
|
|
40
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* The function `heapify` creates a max priority queue from the given options and returns it.
|
|
53
|
+
* @param options - The `options` parameter is an object that contains configuration options for creating a priority
|
|
54
|
+
* queue. It can have the following properties:
|
|
55
|
+
* @returns a MaxPriorityQueue object.
|
|
56
|
+
*/
|
|
57
|
+
MaxPriorityQueue.heapify = function (options) {
|
|
58
|
+
var maxPQ = new MaxPriorityQueue(__assign(__assign({}, options), { comparator: (options === null || options === void 0 ? void 0 : options.comparator) ? options.comparator : function (a, b) {
|
|
59
|
+
var aKey = a, bKey = b;
|
|
60
|
+
return bKey - aKey;
|
|
61
|
+
} }));
|
|
62
|
+
maxPQ._fix();
|
|
63
|
+
return maxPQ;
|
|
64
|
+
};
|
|
41
65
|
return MaxPriorityQueue;
|
|
42
66
|
}(priority_queue_1.PriorityQueue));
|
|
43
67
|
exports.MaxPriorityQueue = MaxPriorityQueue;
|
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
import { PriorityQueue } from './priority-queue';
|
|
9
9
|
import type { PriorityQueueOptions } from '../types';
|
|
10
10
|
export declare class MinPriorityQueue<T = number> extends PriorityQueue<T> {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
constructor(options?: PriorityQueueOptions<T>);
|
|
11
|
+
constructor(options?: Omit<PriorityQueueOptions<number>, 'comparator'>);
|
|
12
|
+
constructor(options: PriorityQueueOptions<T>);
|
|
13
|
+
static heapify<T extends number>(options?: Omit<PriorityQueueOptions<T>, 'comparator'>): MinPriorityQueue<T>;
|
|
14
|
+
static heapify<T>(options: PriorityQueueOptions<T>): MinPriorityQueue<T>;
|
|
16
15
|
}
|
|
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
17
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
29
|
exports.MinPriorityQueue = void 0;
|
|
19
30
|
/**
|
|
@@ -27,17 +38,31 @@ var priority_queue_1 = require("./priority-queue");
|
|
|
27
38
|
var MinPriorityQueue = /** @class */ (function (_super) {
|
|
28
39
|
__extends(MinPriorityQueue, _super);
|
|
29
40
|
/**
|
|
30
|
-
* The constructor initializes a
|
|
31
|
-
* @param [options] -
|
|
41
|
+
* The constructor initializes a priority queue with an optional comparator function.
|
|
42
|
+
* @param [options] - The `options` parameter is an optional object that can contain various configuration options for
|
|
43
|
+
* the `PriorityQueue` constructor.
|
|
32
44
|
*/
|
|
33
45
|
function MinPriorityQueue(options) {
|
|
34
|
-
return _super.call(this, {
|
|
35
|
-
nodes: options === null || options === void 0 ? void 0 : options.nodes, comparator: (options === null || options === void 0 ? void 0 : options.comparator) ? options.comparator : function (a, b) {
|
|
46
|
+
return _super.call(this, __assign(__assign({}, options), { comparator: (options === null || options === void 0 ? void 0 : options.comparator) ? options.comparator : function (a, b) {
|
|
36
47
|
var aKey = a, bKey = b;
|
|
37
48
|
return aKey - bKey;
|
|
38
|
-
}
|
|
39
|
-
}) || this;
|
|
49
|
+
} })) || this;
|
|
40
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* The function `heapify` creates a new MinPriorityQueue instance and sets the comparator function based on the options
|
|
53
|
+
* provided, and then fixes the heap structure of the queue.
|
|
54
|
+
* @param options - The `options` parameter is an object that contains configuration options for creating a priority
|
|
55
|
+
* queue. It can have the following properties:
|
|
56
|
+
* @returns a MinPriorityQueue object.
|
|
57
|
+
*/
|
|
58
|
+
MinPriorityQueue.heapify = function (options) {
|
|
59
|
+
var minPQ = new MinPriorityQueue(__assign(__assign({}, options), { comparator: (options === null || options === void 0 ? void 0 : options.comparator) ? options.comparator : function (a, b) {
|
|
60
|
+
var aKey = a, bKey = b;
|
|
61
|
+
return aKey - bKey;
|
|
62
|
+
} }));
|
|
63
|
+
minPQ._fix();
|
|
64
|
+
return minPQ;
|
|
65
|
+
};
|
|
41
66
|
return MinPriorityQueue;
|
|
42
67
|
}(priority_queue_1.PriorityQueue));
|
|
43
68
|
exports.MinPriorityQueue = MinPriorityQueue;
|
|
@@ -43,6 +43,13 @@ export declare class PriorityQueue<T = number> {
|
|
|
43
43
|
* that needs to be added to the heap.
|
|
44
44
|
*/
|
|
45
45
|
add(node: T): void;
|
|
46
|
+
/**
|
|
47
|
+
* The "has" function checks if a given node is present in the list of nodes.
|
|
48
|
+
* @param {T} node - The parameter `node` is of type `T`, which means it can be any type. It represents the node that
|
|
49
|
+
* we want to check if it exists in the `nodes` array.
|
|
50
|
+
* @returns a boolean value indicating whether the given node is included in the array of nodes.
|
|
51
|
+
*/
|
|
52
|
+
has(node: T): boolean;
|
|
46
53
|
/**
|
|
47
54
|
* The `peek` function returns the first element of the `nodes` array if it exists, otherwise it returns `null`.
|
|
48
55
|
* @returns The `peek()` function is returning the first element (`T`) of the `nodes` array if the `size` is not zero.
|
|
@@ -89,8 +96,12 @@ export declare class PriorityQueue<T = number> {
|
|
|
89
96
|
*/
|
|
90
97
|
isValid(): boolean;
|
|
91
98
|
/**
|
|
92
|
-
*
|
|
93
|
-
|
|
99
|
+
* Plan to support sorting of duplicate elements.
|
|
100
|
+
*/
|
|
101
|
+
/**
|
|
102
|
+
* The function sorts the elements in a data structure and returns them in an array.
|
|
103
|
+
* Plan to support sorting of duplicate elements.
|
|
104
|
+
* @returns The `sort()` method is returning an array of type `T[]`.
|
|
94
105
|
*/
|
|
95
106
|
sort(): T[];
|
|
96
107
|
/**
|
|
@@ -51,9 +51,9 @@ var PriorityQueue = /** @class */ (function () {
|
|
|
51
51
|
};
|
|
52
52
|
var nodes = options.nodes, comparator = options.comparator, _a = options.isFix, isFix = _a === void 0 ? true : _a;
|
|
53
53
|
this._comparator = comparator;
|
|
54
|
-
if (nodes && nodes
|
|
54
|
+
if (nodes && Array.isArray(nodes) && nodes.length > 0) {
|
|
55
55
|
// TODO support distinct
|
|
56
|
-
this._nodes =
|
|
56
|
+
this._nodes = __spreadArray([], __read(nodes), false);
|
|
57
57
|
isFix && this._fix();
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -94,7 +94,7 @@ var PriorityQueue = /** @class */ (function () {
|
|
|
94
94
|
* @returns the result of calling the `isValid()` method on a new instance of the `PriorityQueue` class.
|
|
95
95
|
*/
|
|
96
96
|
PriorityQueue.isPriorityQueueified = function (options) {
|
|
97
|
-
return new PriorityQueue(__assign(__assign({}, options), { isFix:
|
|
97
|
+
return new PriorityQueue(__assign(__assign({}, options), { isFix: false })).isValid();
|
|
98
98
|
};
|
|
99
99
|
/**
|
|
100
100
|
* Starting from TypeScript version 5.0 and onwards, the use of distinct access modifiers for Getters and Setters is not permitted. As an alternative, to ensure compatibility, it is necessary to adopt a Java-style approach for Setters (using the same name as the property) while utilizing separate method names for Getters.
|
|
@@ -111,6 +111,15 @@ var PriorityQueue = /** @class */ (function () {
|
|
|
111
111
|
this.nodes.push(node);
|
|
112
112
|
this._heapifyUp(this.size - 1);
|
|
113
113
|
};
|
|
114
|
+
/**
|
|
115
|
+
* The "has" function checks if a given node is present in the list of nodes.
|
|
116
|
+
* @param {T} node - The parameter `node` is of type `T`, which means it can be any type. It represents the node that
|
|
117
|
+
* we want to check if it exists in the `nodes` array.
|
|
118
|
+
* @returns a boolean value indicating whether the given node is included in the array of nodes.
|
|
119
|
+
*/
|
|
120
|
+
PriorityQueue.prototype.has = function (node) {
|
|
121
|
+
return this.nodes.includes(node);
|
|
122
|
+
};
|
|
114
123
|
/**
|
|
115
124
|
* The `peek` function returns the first element of the `nodes` array if it exists, otherwise it returns `null`.
|
|
116
125
|
* @returns The `peek()` function is returning the first element (`T`) of the `nodes` array if the `size` is not zero.
|
|
@@ -182,31 +191,28 @@ var PriorityQueue = /** @class */ (function () {
|
|
|
182
191
|
* @returns The function `isValid()` returns a boolean value.
|
|
183
192
|
*/
|
|
184
193
|
PriorityQueue.prototype.isValid = function () {
|
|
185
|
-
var
|
|
186
|
-
|
|
187
|
-
var
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
var leftChildIndex = (parentIndex * 2) + 1;
|
|
191
|
-
if (!_this._compare(parentIndex, leftChildIndex))
|
|
192
|
-
return false;
|
|
193
|
-
isValidLeft = isValidRecursive(leftChildIndex);
|
|
194
|
+
for (var i = 0; i < this.nodes.length; i++) {
|
|
195
|
+
var leftChildIndex = this._getLeft(i);
|
|
196
|
+
var rightChildIndex = this._getRight(i);
|
|
197
|
+
if (this._isValidIndex(leftChildIndex) && !this._compare(leftChildIndex, i)) {
|
|
198
|
+
return false;
|
|
194
199
|
}
|
|
195
|
-
if (
|
|
196
|
-
|
|
197
|
-
if (!_this._compare(parentIndex, rightChildIndex))
|
|
198
|
-
return false;
|
|
199
|
-
isValidRight = isValidRecursive(rightChildIndex);
|
|
200
|
+
if (this._isValidIndex(rightChildIndex) && !this._compare(rightChildIndex, i)) {
|
|
201
|
+
return false;
|
|
200
202
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
return isValidRecursive(0);
|
|
203
|
+
}
|
|
204
|
+
return true;
|
|
204
205
|
};
|
|
205
206
|
/**
|
|
206
|
-
*
|
|
207
|
-
|
|
207
|
+
* Plan to support sorting of duplicate elements.
|
|
208
|
+
*/
|
|
209
|
+
/**
|
|
210
|
+
* The function sorts the elements in a data structure and returns them in an array.
|
|
211
|
+
* Plan to support sorting of duplicate elements.
|
|
212
|
+
* @returns The `sort()` method is returning an array of type `T[]`.
|
|
208
213
|
*/
|
|
209
214
|
PriorityQueue.prototype.sort = function () {
|
|
215
|
+
// TODO Plan to support sorting of duplicate elements.
|
|
210
216
|
var visitedNode = [];
|
|
211
217
|
while (this.size !== 0) {
|
|
212
218
|
var top = this.poll();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './tree';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./tree"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class TreeNode<T = number> {
|
|
2
|
+
id: string;
|
|
3
|
+
name?: string | undefined;
|
|
4
|
+
value?: T | undefined;
|
|
5
|
+
children?: TreeNode<T>[] | undefined;
|
|
6
|
+
constructor(id: string, name?: string, value?: T, children?: TreeNode<T>[]);
|
|
7
|
+
addChildren(children: TreeNode<T> | TreeNode<T>[]): void;
|
|
8
|
+
getHeight(): number;
|
|
9
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TreeNode = void 0;
|
|
4
|
+
var TreeNode = /** @class */ (function () {
|
|
5
|
+
function TreeNode(id, name, value, children) {
|
|
6
|
+
this.id = id;
|
|
7
|
+
this.name = name || '';
|
|
8
|
+
this.value = value || undefined;
|
|
9
|
+
this.children = children || [];
|
|
10
|
+
}
|
|
11
|
+
// TODO get set
|
|
12
|
+
// get name (): string | undefined {
|
|
13
|
+
// return this.name;
|
|
14
|
+
// }
|
|
15
|
+
//
|
|
16
|
+
// set name (name: string | undefined) {
|
|
17
|
+
// this.name = name;
|
|
18
|
+
// }
|
|
19
|
+
TreeNode.prototype.addChildren = function (children) {
|
|
20
|
+
if (!this.children) {
|
|
21
|
+
this.children = [];
|
|
22
|
+
}
|
|
23
|
+
if (children instanceof TreeNode) {
|
|
24
|
+
this.children.push(children);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.children = this.children.concat(children);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
TreeNode.prototype.getHeight = function () {
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
32
|
+
var beginRoot = this;
|
|
33
|
+
var maxDepth = 1;
|
|
34
|
+
if (beginRoot) {
|
|
35
|
+
var bfs_1 = function (node, level) {
|
|
36
|
+
if (level > maxDepth) {
|
|
37
|
+
maxDepth = level;
|
|
38
|
+
}
|
|
39
|
+
var children = node.children;
|
|
40
|
+
if (children) {
|
|
41
|
+
for (var i = 0, len = children.length; i < len; i++) {
|
|
42
|
+
bfs_1(children[i], level + 1);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
bfs_1(beginRoot, 1);
|
|
47
|
+
}
|
|
48
|
+
return maxDepth;
|
|
49
|
+
};
|
|
50
|
+
return TreeNode;
|
|
51
|
+
}());
|
|
52
|
+
exports.TreeNode = TreeNode;
|
|
@@ -9,8 +9,3 @@ export type BinaryTreeDeleted<T> = {
|
|
|
9
9
|
};
|
|
10
10
|
export type ResultByProperty<T> = T | BinaryTreeNode<T> | number | BinaryTreeNodeId;
|
|
11
11
|
export type ResultsByProperty<T> = ResultByProperty<T>[];
|
|
12
|
-
export interface BinaryTreeNodeObj<T> {
|
|
13
|
-
id: BinaryTreeNodeId;
|
|
14
|
-
val: T;
|
|
15
|
-
count?: number;
|
|
16
|
-
}
|
package/docs/.nojekyll
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--light-hl-0: #795E26;
|
|
3
|
+
--dark-hl-0: #DCDCAA;
|
|
4
|
+
--light-hl-1: #000000;
|
|
5
|
+
--dark-hl-1: #D4D4D4;
|
|
6
|
+
--light-hl-2: #A31515;
|
|
7
|
+
--dark-hl-2: #CE9178;
|
|
8
|
+
--light-hl-3: #AF00DB;
|
|
9
|
+
--dark-hl-3: #C586C0;
|
|
10
|
+
--light-hl-4: #001080;
|
|
11
|
+
--dark-hl-4: #9CDCFE;
|
|
12
|
+
--light-hl-5: #0000FF;
|
|
13
|
+
--dark-hl-5: #569CD6;
|
|
14
|
+
--light-hl-6: #0070C1;
|
|
15
|
+
--dark-hl-6: #4FC1FF;
|
|
16
|
+
--light-hl-7: #098658;
|
|
17
|
+
--dark-hl-7: #B5CEA8;
|
|
18
|
+
--light-hl-8: #267F99;
|
|
19
|
+
--dark-hl-8: #4EC9B0;
|
|
20
|
+
--light-hl-9: #008000;
|
|
21
|
+
--dark-hl-9: #6A9955;
|
|
22
|
+
--light-code-background: #FFFFFF;
|
|
23
|
+
--dark-code-background: #1E1E1E;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@media (prefers-color-scheme: light) { :root {
|
|
27
|
+
--hl-0: var(--light-hl-0);
|
|
28
|
+
--hl-1: var(--light-hl-1);
|
|
29
|
+
--hl-2: var(--light-hl-2);
|
|
30
|
+
--hl-3: var(--light-hl-3);
|
|
31
|
+
--hl-4: var(--light-hl-4);
|
|
32
|
+
--hl-5: var(--light-hl-5);
|
|
33
|
+
--hl-6: var(--light-hl-6);
|
|
34
|
+
--hl-7: var(--light-hl-7);
|
|
35
|
+
--hl-8: var(--light-hl-8);
|
|
36
|
+
--hl-9: var(--light-hl-9);
|
|
37
|
+
--code-background: var(--light-code-background);
|
|
38
|
+
} }
|
|
39
|
+
|
|
40
|
+
@media (prefers-color-scheme: dark) { :root {
|
|
41
|
+
--hl-0: var(--dark-hl-0);
|
|
42
|
+
--hl-1: var(--dark-hl-1);
|
|
43
|
+
--hl-2: var(--dark-hl-2);
|
|
44
|
+
--hl-3: var(--dark-hl-3);
|
|
45
|
+
--hl-4: var(--dark-hl-4);
|
|
46
|
+
--hl-5: var(--dark-hl-5);
|
|
47
|
+
--hl-6: var(--dark-hl-6);
|
|
48
|
+
--hl-7: var(--dark-hl-7);
|
|
49
|
+
--hl-8: var(--dark-hl-8);
|
|
50
|
+
--hl-9: var(--dark-hl-9);
|
|
51
|
+
--code-background: var(--dark-code-background);
|
|
52
|
+
} }
|
|
53
|
+
|
|
54
|
+
:root[data-theme='light'] {
|
|
55
|
+
--hl-0: var(--light-hl-0);
|
|
56
|
+
--hl-1: var(--light-hl-1);
|
|
57
|
+
--hl-2: var(--light-hl-2);
|
|
58
|
+
--hl-3: var(--light-hl-3);
|
|
59
|
+
--hl-4: var(--light-hl-4);
|
|
60
|
+
--hl-5: var(--light-hl-5);
|
|
61
|
+
--hl-6: var(--light-hl-6);
|
|
62
|
+
--hl-7: var(--light-hl-7);
|
|
63
|
+
--hl-8: var(--light-hl-8);
|
|
64
|
+
--hl-9: var(--light-hl-9);
|
|
65
|
+
--code-background: var(--light-code-background);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
:root[data-theme='dark'] {
|
|
69
|
+
--hl-0: var(--dark-hl-0);
|
|
70
|
+
--hl-1: var(--dark-hl-1);
|
|
71
|
+
--hl-2: var(--dark-hl-2);
|
|
72
|
+
--hl-3: var(--dark-hl-3);
|
|
73
|
+
--hl-4: var(--dark-hl-4);
|
|
74
|
+
--hl-5: var(--dark-hl-5);
|
|
75
|
+
--hl-6: var(--dark-hl-6);
|
|
76
|
+
--hl-7: var(--dark-hl-7);
|
|
77
|
+
--hl-8: var(--dark-hl-8);
|
|
78
|
+
--hl-9: var(--dark-hl-9);
|
|
79
|
+
--code-background: var(--dark-code-background);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.hl-0 { color: var(--hl-0); }
|
|
83
|
+
.hl-1 { color: var(--hl-1); }
|
|
84
|
+
.hl-2 { color: var(--hl-2); }
|
|
85
|
+
.hl-3 { color: var(--hl-3); }
|
|
86
|
+
.hl-4 { color: var(--hl-4); }
|
|
87
|
+
.hl-5 { color: var(--hl-5); }
|
|
88
|
+
.hl-6 { color: var(--hl-6); }
|
|
89
|
+
.hl-7 { color: var(--hl-7); }
|
|
90
|
+
.hl-8 { color: var(--hl-8); }
|
|
91
|
+
.hl-9 { color: var(--hl-9); }
|
|
92
|
+
pre, code { background: var(--code-background); }
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use strict";(()=>{var Se=Object.create;var re=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var ke=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var Pe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ie=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Te(e))!Qe.call(t,i)&&i!==r&&re(t,i,{get:()=>e[i],enumerable:!(n=we(e,i))||n.enumerable});return t};var Ce=(t,e,r)=>(r=t!=null?Se(ke(t)):{},Ie(e||!t||!t.__esModule?re(r,"default",{value:t,enumerable:!0}):r,t));var ae=Pe((se,oe)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i<n.length;i++){var s=n[i],o=e[s];if(Array.isArray(o)){r[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){r[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return r},t.FieldRef=function(e,r,n){this.docRef=e,this.fieldName=r,this._stringValue=n},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var r=e.indexOf(t.FieldRef.joiner);if(r===-1)throw"malformed field ref string";var n=e.slice(0,r),i=e.slice(r+1);return new t.FieldRef(i,n,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var r=0;r<this.length;r++)this.elements[e[r]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var r,n,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(r=this,n=e):(r=e,n=this),i=Object.keys(r.elements);for(var o=0;o<i.length;o++){var a=i[o];a in n.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,r){var n=0;for(var i in e)i!="_index"&&(n+=Object.keys(e[i]).length);var s=(r-n+.5)/(n+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,r){this.str=e||"",this.metadata=r||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(r){return r},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,r){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(r))});for(var n=e.toString().toLowerCase(),i=n.length,s=[],o=0,a=0;o<=i;o++){var l=n.charAt(o),u=o-a;if(l.match(t.tokenizer.separator)||o==i){if(u>0){var d=t.utils.clone(r)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(n.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
|
|
3
|
+
`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n<r;n++){for(var i=this._stack[n],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var l=0;l<a.length;l++)s.push(a[l]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,r){var n=new t.Token(e,r);return this.run([n]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var r=0,n=this.elements.length/2,i=n-r,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(r=s),o>e&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,r){this.upsert(e,r,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,r,n){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=n(this.elements[i+1],r):this.elements.splice(i,0,e,r)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,r=this.elements.length,n=1;n<r;n+=2){var i=this.elements[n];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var r=0,n=this.elements,i=e.elements,s=n.length,o=i.length,a=0,l=0,u=0,d=0;u<s&&d<o;)a=n[u],l=i[d],a<l?u+=2:a>l?d+=2:a==l&&(r+=n[u+1]*i[d+1],u+=2,d+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r<this.elements.length;r+=2,n++)e[n]=this.elements[r];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},r={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",s=n+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,l="^("+s+")?"+o+s+"("+o+")?$",u="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,m=new RegExp(a),y=new RegExp(u),b=new RegExp(l),g=new RegExp(d),E=/^(.+?)(ss|i)es$/,f=/^(.+?)([^s])s$/,p=/^(.+?)eed$/,w=/^(.+?)(ed|ing)$/,S=/.$/,k=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),B=new RegExp("^"+s+i+"[^aeiouwxy]$"),A=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,q=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,V=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,$=/^(.+?)(s|t)(ion)$/,I=/^(.+?)e$/,z=/ll$/,W=new RegExp("^"+s+i+"[^aeiouwxy]$"),H=function(c){var v,C,T,h,x,O,F;if(c.length<3)return c;if(T=c.substr(0,1),T=="y"&&(c=T.toUpperCase()+c.substr(1)),h=E,x=f,h.test(c)?c=c.replace(h,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),h=p,x=w,h.test(c)){var L=h.exec(c);h=m,h.test(L[1])&&(h=S,c=c.replace(h,""))}else if(x.test(c)){var L=x.exec(c);v=L[1],x=g,x.test(v)&&(c=v,x=k,O=_,F=B,x.test(c)?c=c+"e":O.test(c)?(h=S,c=c.replace(h,"")):F.test(c)&&(c=c+"e"))}if(h=A,h.test(c)){var L=h.exec(c);v=L[1],c=v+"i"}if(h=j,h.test(c)){var L=h.exec(c);v=L[1],C=L[2],h=m,h.test(v)&&(c=v+e[C])}if(h=q,h.test(c)){var L=h.exec(c);v=L[1],C=L[2],h=m,h.test(v)&&(c=v+r[C])}if(h=V,x=$,h.test(c)){var L=h.exec(c);v=L[1],h=y,h.test(v)&&(c=v)}else if(x.test(c)){var L=x.exec(c);v=L[1]+L[2],x=y,x.test(v)&&(c=v)}if(h=I,h.test(c)){var L=h.exec(c);v=L[1],h=y,x=b,O=W,(h.test(v)||x.test(v)&&!O.test(v))&&(c=v)}return h=z,x=y,h.test(c)&&x.test(c)&&(h=S,c=c.replace(h,"")),T=="y"&&(c=T.toLowerCase()+c.substr(1)),c};return function(R){return R.update(H)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var r=e.reduce(function(n,i){return n[i]=i,n},{});return function(n){if(n&&r[n.toString()]!==n.toString())return n}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(r){return r.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var r=new t.TokenSet.Builder,n=0,i=e.length;n<i;n++)r.insert(e[n]);return r.finish(),r.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,r){for(var n=new t.TokenSet,i=[{node:n,editsRemaining:r,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),y;m in s.node.edges?y=s.node.edges[m]:(y=new t.TokenSet,s.node.edges[m]=y),s.str.length==1&&(y.final=!0),i.push({node:y,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")r.edges[o]=r,r.final=a;else{var l=new t.TokenSet;l.final=a,r.edges[o]=l,r=l}}return n},t.TokenSet.prototype.toArray=function(){for(var e=[],r=[{prefix:"",node:this}];r.length;){var n=r.pop(),i=Object.keys(n.node.edges),s=i.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var o=0;o<s;o++){var a=i[o];r.push({prefix:n.prefix.concat(a),node:n.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",r=Object.keys(this.edges).sort(),n=r.length,i=0;i<n;i++){var s=r[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var r=new t.TokenSet,n=void 0,i=[{qNode:e,output:r,node:this}];i.length;){n=i.pop();for(var s=Object.keys(n.qNode.edges),o=s.length,a=Object.keys(n.node.edges),l=a.length,u=0;u<o;u++)for(var d=s[u],m=0;m<l;m++){var y=a[m];if(y==d||d=="*"){var b=n.node.edges[y],g=n.qNode.edges[d],E=b.final&&g.final,f=void 0;y in n.output.edges?(f=n.output.edges[y],f.final=f.final||E):(f=new t.TokenSet,f.final=E,n.output.edges[y]=f),i.push({qNode:g,output:f,node:b})}}}return r},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var r,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)n++;this.minimize(n),this.uncheckedNodes.length==0?r=this.root:r=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=n;i<e.length;i++){var s=new t.TokenSet,o=e[i];r.edges[o]=s,this.uncheckedNodes.push({parent:r,char:o,child:s}),r=s}r.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var r=this.uncheckedNodes.length-1;r>=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)i[this.fields[l]]=new t.Vector;e.call(r,r);for(var l=0;l<r.clauses.length;l++){var u=r.clauses[l],d=null,m=t.Set.empty;u.usePipeline?d=this.pipeline.runString(u.term,{fields:u.fields}):d=[u.term];for(var y=0;y<d.length;y++){var b=d[y];u.term=b;var g=t.TokenSet.fromClause(u),E=this.tokenSet.intersect(g).toArray();if(E.length===0&&u.presence===t.Query.presence.REQUIRED){for(var f=0;f<u.fields.length;f++){var p=u.fields[f];o[p]=t.Set.empty}break}for(var w=0;w<E.length;w++)for(var S=E[w],k=this.invertedIndex[S],_=k._index,f=0;f<u.fields.length;f++){var p=u.fields[f],B=k[p],A=Object.keys(B),j=S+"/"+p,q=new t.Set(A);if(u.presence==t.Query.presence.REQUIRED&&(m=m.union(q),o[p]===void 0&&(o[p]=t.Set.complete)),u.presence==t.Query.presence.PROHIBITED){a[p]===void 0&&(a[p]=t.Set.empty),a[p]=a[p].union(q);continue}if(i[p].upsert(_,u.boost,function(Ee,be){return Ee+be}),!s[j]){for(var V=0;V<A.length;V++){var $=A[V],I=new t.FieldRef($,p),z=B[$],W;(W=n[I])===void 0?n[I]=new t.MatchData(S,p,z):W.add(S,p,z)}s[j]=!0}}}if(u.presence===t.Query.presence.REQUIRED)for(var f=0;f<u.fields.length;f++){var p=u.fields[f];o[p]=o[p].intersect(m)}}for(var H=t.Set.complete,R=t.Set.empty,l=0;l<this.fields.length;l++){var p=this.fields[l];o[p]&&(H=H.intersect(o[p])),a[p]&&(R=R.union(a[p]))}var c=Object.keys(n),v=[],C=Object.create(null);if(r.isNegated()){c=Object.keys(this.fieldVectors);for(var l=0;l<c.length;l++){var I=c[l],T=t.FieldRef.fromString(I);n[I]=new t.MatchData}}for(var l=0;l<c.length;l++){var T=t.FieldRef.fromString(c[l]),h=T.docRef;if(H.contains(h)&&!R.contains(h)){var x=this.fieldVectors[T],O=i[T.fieldName].similarity(x),F;if((F=C[h])!==void 0)F.score+=O,F.matchData.combine(n[T]);else{var L={ref:h,score:O,matchData:n[T]};C[h]=L,v.push(L)}}}return v.sort(function(xe,Le){return Le.score-xe.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(n){return[n,this.invertedIndex[n]]},this),r=Object.keys(this.fieldVectors).map(function(n){return[n,this.fieldVectors[n].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:r,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var r={},n={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,l=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var u=0;u<i.length;u++){var d=i[u],m=d[0],y=d[1];n[m]=new t.Vector(y)}for(var u=0;u<o.length;u++){var d=o[u],b=d[0],g=d[1];a.insert(b),s[b]=g}return a.finish(),r.fields=e.fields,r.fieldVectors=n,r.invertedIndex=s,r.tokenSet=a.root,r.pipeline=l,new t.Index(r)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,r){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=r||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,l=a?a(e):e[o],u=this.tokenizer(l,{fields:[o]}),d=this.pipeline.run(u),m=new t.FieldRef(n,o),y=Object.create(null);this.fieldTermFrequencies[m]=y,this.fieldLengths[m]=0,this.fieldLengths[m]+=d.length;for(var b=0;b<d.length;b++){var g=d[b];if(y[g]==null&&(y[g]=0),y[g]+=1,this.invertedIndex[g]==null){var E=Object.create(null);E._index=this.termIndex,this.termIndex+=1;for(var f=0;f<i.length;f++)E[i[f]]=Object.create(null);this.invertedIndex[g]=E}this.invertedIndex[g][o][n]==null&&(this.invertedIndex[g][o][n]=Object.create(null));for(var p=0;p<this.metadataWhitelist.length;p++){var w=this.metadataWhitelist[p],S=g.metadata[w];this.invertedIndex[g][o][n][w]==null&&(this.invertedIndex[g][o][n][w]=[]),this.invertedIndex[g][o][n][w].push(S)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),r=e.length,n={},i={},s=0;s<r;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,n[a]||(n[a]=0),n[a]+=this.fieldLengths[o]}for(var l=Object.keys(this._fields),s=0;s<l.length;s++){var u=l[s];n[u]=n[u]/i[u]}this.averageFieldLength=n},t.Builder.prototype.createFieldVectors=function(){for(var e={},r=Object.keys(this.fieldTermFrequencies),n=r.length,i=Object.create(null),s=0;s<n;s++){for(var o=t.FieldRef.fromString(r[s]),a=o.fieldName,l=this.fieldLengths[o],u=new t.Vector,d=this.fieldTermFrequencies[o],m=Object.keys(d),y=m.length,b=this._fields[a].boost||1,g=this._documents[o.docRef].boost||1,E=0;E<y;E++){var f=m[E],p=d[f],w=this.invertedIndex[f]._index,S,k,_;i[f]===void 0?(S=t.idf(this.invertedIndex[f],this.documentCount),i[f]=S):S=i[f],k=S*((this._k1+1)*p)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+p),k*=b,k*=g,_=Math.round(k*1e3)/1e3,u.insert(w,_)}e[o]=u}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var r=Array.prototype.slice.call(arguments,1);r.unshift(this),e.apply(this,r)},t.MatchData=function(e,r,n){for(var i=Object.create(null),s=Object.keys(n||{}),o=0;o<s.length;o++){var a=s[o];i[a]=n[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][r]=i)},t.MatchData.prototype.combine=function(e){for(var r=Object.keys(e.metadata),n=0;n<r.length;n++){var i=r[n],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],l=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var u=0;u<l.length;u++){var d=l[u];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,r,n){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][r]=n;return}if(!(r in this.metadata[e])){this.metadata[e][r]=n;return}for(var i=Object.keys(n),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][r]?this.metadata[e][r][o]=this.metadata[e][r][o].concat(n[o]):this.metadata[e][r][o]=n[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,r){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(r))},this),this;var n=r||{};return n.term=e.toString(),this.clause(n),this},t.QueryParseError=function(e,r,n){this.name="QueryParseError",this.message=e,this.start=r,this.end=n},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],r=this.start,n=this.pos,i=0;i<this.escapeCharPositions.length;i++)n=this.escapeCharPositions[i],e.push(this.str.slice(r,n)),r=n+1;return e.push(this.str.slice(r,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof se=="object"?oe.exports=r():e.lunr=r()}(this,function(){return t})})()});var ne=[];function G(t,e){ne.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureActivePageVisible(),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){ne.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n,app:this}),n.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),r=e?.parentElement;for(;r&&!r.classList.contains(".tsd-navigation");)r instanceof HTMLDetailsElement&&(r.open=!0),r=r.parentElement;if(e){let n=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=n}}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let r=e.parentElement;for(;r&&r.tagName!=="SECTION";)r=r.parentElement;if(r&&r.offsetParent==null){this.alwaysVisibleMember=r,r.classList.add("always-visible");let n=document.createElement("p");n.classList.add("warning"),n.textContent="This member is normally hidden due to your filter settings.",r.prepend(n)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let r;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(r),r=setTimeout(()=>{e.classList.remove("visible"),r=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let r;return()=>{clearTimeout(r),r=setTimeout(()=>t(),e)}};var ce=Ce(ae());function de(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("tsd-search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let r=document.querySelector("#tsd-search input"),n=document.querySelector("#tsd-search .results");if(!r||!n)throw new Error("The input field or the result list wrapper was not found");let i=!1;n.addEventListener("mousedown",()=>i=!0),n.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Oe(t,n,r,s)}function Oe(t,e,r,n){r.addEventListener("input",ie(()=>{Re(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Fe(e,r):s.key=="Escape"?r.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),r.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!r.matches(":focus")&&s.key==="/"&&(r.focus(),s.preventDefault())})}function _e(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=ce.Index.load(window.searchData.index))}function Re(t,e,r,n){if(_e(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=i?n.index.search(`*${i}*`):[];for(let o=0;o<s.length;o++){let a=s[o],l=n.data.rows[Number(a.ref)],u=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(u*=1+1/(1+Math.abs(l.name.length-i.length))),a.score*=u}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let l=n.data.rows[Number(s[o].ref)],u=le(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(u+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(u=`<span class="parent">${le(l.parent,i)}.</span>${u}`);let d=document.createElement("li");d.classList.value=l.classes??"";let m=document.createElement("a");m.href=n.base+l.url,m.innerHTML=u,d.append(m),e.appendChild(d)}}function ue(t,e){let r=t.querySelector(".current");if(!r)r=t.querySelector(e==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let n=r;if(e===1)do n=n.nextElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);else do n=n.previousElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);n&&(r.classList.remove("current"),n.classList.add("current"))}}function Fe(t,e){let r=t.querySelector(".current");if(r||(r=t.querySelector("li:first-child")),r){let n=r.querySelector("a");n&&(window.location.href=n.href),e.blur()}}function le(t,e){if(e==="")return t;let r=t.toLocaleLowerCase(),n=e.toLocaleLowerCase(),i=[],s=0,o=r.indexOf(n);for(;o!=-1;)i.push(K(t.substring(s,o)),`<b>${K(t.substring(o,o+n.length))}</b>`),s=o+n.length,o=r.indexOf(n,s);return i.push(K(t.substring(s))),i.join("")}var Me={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>Me[e])}var P=class{constructor(e){this.el=e.el,this.app=e.app}};var M="mousedown",fe="mousemove",N="mouseup",J={x:0,y:0},he=!1,ee=!1,De=!1,D=!1,pe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(pe?"is-mobile":"not-mobile");pe&&"ontouchstart"in document.documentElement&&(De=!0,M="touchstart",fe="touchmove",N="touchend");document.addEventListener(M,t=>{ee=!0,D=!1;let e=M=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=M=="touchstart"?t.targetTouches[0]:t,r=J.x-(e.pageX||0),n=J.y-(e.pageY||0);D=Math.sqrt(r*r+n*n)>10}});document.addEventListener(N,()=>{ee=!1});document.addEventListener("click",t=>{he&&(t.preventDefault(),t.stopImmediatePropagation(),he=!1)});var X=class extends P{constructor(r){super(r);this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(M,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(r){if(this.active==r)return;this.active=r,document.documentElement.classList.toggle("has-"+this.className,r),this.el.classList.toggle("active",r);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(r){D||(this.setActive(!0),r.preventDefault())}onDocumentPointerDown(r){if(this.active){if(r.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(r){if(!D&&this.active&&r.target.closest(".col-sidebar")){let n=r.target.closest("a");if(n){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),n.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var me=document.head.appendChild(document.createElement("style"));me.dataset.for="filters";var Y=class extends P{constructor(r){super(r);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),me.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
|
|
4
|
+
`}fromLocalStorage(){let r=Q.getItem(this.key);return r?r==="true":this.el.checked}setLocalStorage(r){Q.setItem(this.key,r.toString()),this.value=r,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let n=Array.from(r.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);r.style.display=n?"none":"block"})}};var Z=class extends P{constructor(r){super(r);this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update()),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ve(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}de();G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var ge=document.getElementById("tsd-theme");ge&&ve(ge);var Ae=new U;Object.defineProperty(window,"app",{value:Ae});document.querySelectorAll("summary a").forEach(t=>{t.addEventListener("click",()=>{location.assign(t.href)})});})();
|
|
5
|
+
/*! Bundled license information:
|
|
6
|
+
|
|
7
|
+
lunr/lunr.js:
|
|
8
|
+
(**
|
|
9
|
+
* lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
|
|
10
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
11
|
+
* @license MIT
|
|
12
|
+
*)
|
|
13
|
+
(*!
|
|
14
|
+
* lunr.utils
|
|
15
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
16
|
+
*)
|
|
17
|
+
(*!
|
|
18
|
+
* lunr.Set
|
|
19
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
20
|
+
*)
|
|
21
|
+
(*!
|
|
22
|
+
* lunr.tokenizer
|
|
23
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
24
|
+
*)
|
|
25
|
+
(*!
|
|
26
|
+
* lunr.Pipeline
|
|
27
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
28
|
+
*)
|
|
29
|
+
(*!
|
|
30
|
+
* lunr.Vector
|
|
31
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
32
|
+
*)
|
|
33
|
+
(*!
|
|
34
|
+
* lunr.stemmer
|
|
35
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
36
|
+
* Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
|
|
37
|
+
*)
|
|
38
|
+
(*!
|
|
39
|
+
* lunr.stopWordFilter
|
|
40
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
41
|
+
*)
|
|
42
|
+
(*!
|
|
43
|
+
* lunr.trimmer
|
|
44
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
45
|
+
*)
|
|
46
|
+
(*!
|
|
47
|
+
* lunr.TokenSet
|
|
48
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
49
|
+
*)
|
|
50
|
+
(*!
|
|
51
|
+
* lunr.Index
|
|
52
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
53
|
+
*)
|
|
54
|
+
(*!
|
|
55
|
+
* lunr.Builder
|
|
56
|
+
* Copyright (C) 2020 Oliver Nightingale
|
|
57
|
+
*)
|
|
58
|
+
*/
|