data-structure-typed 2.5.0 → 2.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +12984 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/package.json +3 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +4505 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +9731 -0
- package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +347 -0
- package/CHANGELOG.md +5 -1
- package/README.md +124 -29
- package/dist/cjs/binary-tree.cjs +26282 -0
- package/dist/cjs/graph.cjs +5422 -0
- package/dist/cjs/hash.cjs +1310 -0
- package/dist/cjs/heap.cjs +1602 -0
- package/dist/cjs/index.cjs +31257 -14673
- package/dist/cjs/linked-list.cjs +4576 -0
- package/dist/cjs/matrix.cjs +1080 -0
- package/dist/cjs/priority-queue.cjs +1376 -0
- package/dist/cjs/queue.cjs +4264 -0
- package/dist/cjs/stack.cjs +907 -0
- package/dist/cjs/trie.cjs +1223 -0
- package/dist/cjs-legacy/binary-tree.cjs +26319 -0
- package/dist/cjs-legacy/graph.cjs +5420 -0
- package/dist/cjs-legacy/hash.cjs +1310 -0
- package/dist/cjs-legacy/heap.cjs +1599 -0
- package/dist/cjs-legacy/index.cjs +31268 -14679
- package/dist/cjs-legacy/linked-list.cjs +4582 -0
- package/dist/cjs-legacy/matrix.cjs +1083 -0
- package/dist/cjs-legacy/priority-queue.cjs +1374 -0
- package/dist/cjs-legacy/queue.cjs +4262 -0
- package/dist/cjs-legacy/stack.cjs +907 -0
- package/dist/cjs-legacy/trie.cjs +1222 -0
- package/dist/esm/binary-tree.mjs +26267 -0
- package/dist/esm/graph.mjs +5409 -0
- package/dist/esm/hash.mjs +1307 -0
- package/dist/esm/heap.mjs +1596 -0
- package/dist/esm/index.mjs +31254 -14674
- package/dist/esm/linked-list.mjs +4569 -0
- package/dist/esm/matrix.mjs +1076 -0
- package/dist/esm/priority-queue.mjs +1372 -0
- package/dist/esm/queue.mjs +4260 -0
- package/dist/esm/stack.mjs +905 -0
- package/dist/esm/trie.mjs +1220 -0
- package/dist/esm-legacy/binary-tree.mjs +26304 -0
- package/dist/esm-legacy/graph.mjs +5407 -0
- package/dist/esm-legacy/hash.mjs +1307 -0
- package/dist/esm-legacy/heap.mjs +1593 -0
- package/dist/esm-legacy/index.mjs +31265 -14680
- package/dist/esm-legacy/linked-list.mjs +4575 -0
- package/dist/esm-legacy/matrix.mjs +1079 -0
- package/dist/esm-legacy/priority-queue.mjs +1370 -0
- package/dist/esm-legacy/queue.mjs +4258 -0
- package/dist/esm-legacy/stack.mjs +905 -0
- package/dist/esm-legacy/trie.mjs +1219 -0
- package/dist/types/common/error.d.ts +9 -0
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/data-structures/base/index.d.ts +1 -0
- package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
- package/dist/types/data-structures/base/linear-base.d.ts +3 -3
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +288 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +336 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +618 -18
- package/dist/types/data-structures/binary-tree/bst.d.ts +676 -1
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +456 -0
- package/dist/types/data-structures/binary-tree/segment-tree.d.ts +144 -1
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +3307 -399
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3285 -360
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2674 -325
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +3072 -287
- package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
- package/dist/types/data-structures/graph/directed-graph.d.ts +240 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +216 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +274 -10
- package/dist/types/data-structures/heap/heap.d.ts +336 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +411 -3
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +363 -3
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +434 -2
- package/dist/types/data-structures/matrix/matrix.d.ts +192 -0
- package/dist/types/data-structures/queue/deque.d.ts +364 -4
- package/dist/types/data-structures/queue/queue.d.ts +288 -0
- package/dist/types/data-structures/stack/stack.d.ts +240 -0
- package/dist/types/data-structures/trie/trie.d.ts +292 -4
- package/dist/types/interfaces/graph.d.ts +1 -1
- package/dist/types/types/common.d.ts +2 -2
- package/dist/types/types/data-structures/binary-tree/bst.d.ts +1 -0
- package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +5 -0
- package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +4 -0
- package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +4 -0
- package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
- package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
- package/dist/types/types/utils/validate-type.d.ts +4 -4
- package/dist/umd/data-structure-typed.js +31196 -14608
- package/dist/umd/data-structure-typed.min.js +11 -5
- package/docs-site-docusaurus/README.md +41 -0
- package/docs-site-docusaurus/docs/api/README.md +52 -0
- package/docs-site-docusaurus/docs/api/classes/AVLTree.md +6644 -0
- package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +282 -0
- package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +2266 -0
- package/docs-site-docusaurus/docs/api/classes/BST.md +6293 -0
- package/docs-site-docusaurus/docs/api/classes/BSTNode.md +333 -0
- package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +455 -0
- package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +4647 -0
- package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +331 -0
- package/docs-site-docusaurus/docs/api/classes/Deque.md +2767 -0
- package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +2999 -0
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +2685 -0
- package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +221 -0
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +253 -0
- package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +21 -0
- package/docs-site-docusaurus/docs/api/classes/HashMap.md +1333 -0
- package/docs-site-docusaurus/docs/api/classes/Heap.md +1881 -0
- package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +800 -0
- package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +644 -0
- package/docs-site-docusaurus/docs/api/classes/LinearBase.md +1632 -0
- package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +1853 -0
- package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +1108 -0
- package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +156 -0
- package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +2824 -0
- package/docs-site-docusaurus/docs/api/classes/MapGraph.md +2929 -0
- package/docs-site-docusaurus/docs/api/classes/Matrix.md +1026 -0
- package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +1866 -0
- package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +1883 -0
- package/docs-site-docusaurus/docs/api/classes/MinHeap.md +1879 -0
- package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +1882 -0
- package/docs-site-docusaurus/docs/api/classes/Navigator.md +109 -0
- package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +1839 -0
- package/docs-site-docusaurus/docs/api/classes/Queue.md +2244 -0
- package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +6888 -0
- package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +372 -0
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +2897 -0
- package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +169 -0
- package/docs-site-docusaurus/docs/api/classes/SkipList.md +1229 -0
- package/docs-site-docusaurus/docs/api/classes/Stack.md +1573 -0
- package/docs-site-docusaurus/docs/api/classes/TreeMap.md +1389 -0
- package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +1591 -0
- package/docs-site-docusaurus/docs/api/classes/TreeSet.md +1246 -0
- package/docs-site-docusaurus/docs/api/classes/Trie.md +1708 -0
- package/docs-site-docusaurus/docs/api/classes/TrieNode.md +199 -0
- package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +2979 -0
- package/docs-site-docusaurus/docs/guide/_category_.json +6 -0
- package/docs-site-docusaurus/docs/guide/architecture.md +615 -0
- package/docs-site-docusaurus/docs/guide/concepts.md +451 -0
- package/docs-site-docusaurus/docs/guide/faq.md +180 -0
- package/docs-site-docusaurus/docs/guide/guides.md +597 -0
- package/docs-site-docusaurus/docs/guide/installation.md +62 -0
- package/docs-site-docusaurus/docs/guide/integrations.md +825 -0
- package/docs-site-docusaurus/docs/guide/overview.md +645 -0
- package/docs-site-docusaurus/docs/guide/performance.md +835 -0
- package/docs-site-docusaurus/docs/guide/quick-start.md +104 -0
- package/docs-site-docusaurus/docs/guide/use-cases/_category_.json +6 -0
- package/docs-site-docusaurus/docs/guide/use-cases/array-sort-alternative.md +158 -0
- package/docs-site-docusaurus/docs/guide/use-cases/heap-vs-sorting.md +92 -0
- package/docs-site-docusaurus/docs/guide/use-cases/map-vs-treemap.md +151 -0
- package/docs-site-docusaurus/docs/guide/use-cases/priority-queue-typescript.md +113 -0
- package/docs-site-docusaurus/docs/guide/use-cases/treemap-javascript.md +151 -0
- package/docs-site-docusaurus/docusaurus.config.ts +159 -0
- package/docs-site-docusaurus/fix-mdx-generics.mjs +75 -0
- package/docs-site-docusaurus/package-lock.json +18667 -0
- package/docs-site-docusaurus/package.json +50 -0
- package/docs-site-docusaurus/prefix-class-to-methods.mjs +48 -0
- package/docs-site-docusaurus/sidebars.ts +23 -0
- package/docs-site-docusaurus/sort-protected.mjs +87 -0
- package/docs-site-docusaurus/src/css/custom.css +96 -0
- package/docs-site-docusaurus/src/pages/index.module.css +13 -0
- package/docs-site-docusaurus/src/pages/index.tsx +120 -0
- package/docs-site-docusaurus/src/pages/markdown-page.md +7 -0
- package/docs-site-docusaurus/src/theme/TOCItems/index.tsx +34 -0
- package/docs-site-docusaurus/static/.nojekyll +0 -0
- package/docs-site-docusaurus/static/img/docusaurus-social-card.jpg +0 -0
- package/docs-site-docusaurus/static/img/docusaurus.png +0 -0
- package/docs-site-docusaurus/static/img/favicon.ico +0 -0
- package/docs-site-docusaurus/static/img/favicon.png +0 -0
- package/docs-site-docusaurus/static/img/logo-180.png +0 -0
- package/docs-site-docusaurus/static/img/logo.jpg +0 -0
- package/docs-site-docusaurus/static/img/logo.png +0 -0
- package/docs-site-docusaurus/static/img/logo.svg +1 -0
- package/docs-site-docusaurus/static/img/og-image.png +0 -0
- package/docs-site-docusaurus/static/img/undraw_docusaurus_mountain.svg +171 -0
- package/docs-site-docusaurus/static/img/undraw_docusaurus_react.svg +170 -0
- package/docs-site-docusaurus/static/img/undraw_docusaurus_tree.svg +40 -0
- package/docs-site-docusaurus/static/llms.txt +37 -0
- package/docs-site-docusaurus/static/robots.txt +4 -0
- package/docs-site-docusaurus/typedoc.json +23 -0
- package/llms.txt +37 -0
- package/package.json +159 -55
- package/src/common/error.ts +19 -1
- package/src/common/index.ts +1 -1
- package/src/data-structures/base/index.ts +1 -0
- package/src/data-structures/base/iterable-element-base.ts +3 -2
- package/src/data-structures/base/iterable-entry-base.ts +8 -8
- package/src/data-structures/base/linear-base.ts +3 -3
- package/src/data-structures/binary-tree/avl-tree.ts +287 -0
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +327 -5
- package/src/data-structures/binary-tree/binary-tree.ts +581 -6
- package/src/data-structures/binary-tree/bst.ts +922 -7
- package/src/data-structures/binary-tree/red-black-tree.ts +453 -0
- package/src/data-structures/binary-tree/segment-tree.ts +139 -2
- package/src/data-structures/binary-tree/tree-map.ts +3300 -495
- package/src/data-structures/binary-tree/tree-multi-map.ts +3384 -563
- package/src/data-structures/binary-tree/tree-multi-set.ts +2757 -493
- package/src/data-structures/binary-tree/tree-set.ts +3122 -440
- package/src/data-structures/graph/abstract-graph.ts +6 -6
- package/src/data-structures/graph/directed-graph.ts +230 -0
- package/src/data-structures/graph/undirected-graph.ts +207 -0
- package/src/data-structures/hash/hash-map.ts +270 -19
- package/src/data-structures/heap/heap.ts +326 -4
- package/src/data-structures/heap/max-heap.ts +2 -2
- package/src/data-structures/linked-list/doubly-linked-list.ts +394 -3
- package/src/data-structures/linked-list/singly-linked-list.ts +348 -3
- package/src/data-structures/linked-list/skip-linked-list.ts +421 -7
- package/src/data-structures/matrix/matrix.ts +194 -10
- package/src/data-structures/priority-queue/max-priority-queue.ts +2 -2
- package/src/data-structures/queue/deque.ts +350 -5
- package/src/data-structures/queue/queue.ts +276 -0
- package/src/data-structures/stack/stack.ts +230 -0
- package/src/data-structures/trie/trie.ts +283 -7
- package/src/interfaces/graph.ts +1 -1
- package/src/types/common.ts +2 -2
- package/src/types/data-structures/binary-tree/bst.ts +1 -0
- package/src/types/data-structures/binary-tree/tree-map.ts +6 -0
- package/src/types/data-structures/binary-tree/tree-multi-set.ts +5 -0
- package/src/types/data-structures/binary-tree/tree-set.ts +5 -0
- package/src/types/data-structures/heap/heap.ts +1 -0
- package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
- package/src/types/utils/validate-type.ts +4 -4
- package/vercel.json +6 -0
- package/dist/leetcode/avl-tree-counter.mjs +0 -2957
- package/dist/leetcode/avl-tree-multi-map.mjs +0 -2889
- package/dist/leetcode/avl-tree.mjs +0 -2720
- package/dist/leetcode/binary-tree.mjs +0 -1594
- package/dist/leetcode/bst.mjs +0 -2398
- package/dist/leetcode/deque.mjs +0 -683
- package/dist/leetcode/directed-graph.mjs +0 -1733
- package/dist/leetcode/doubly-linked-list.mjs +0 -709
- package/dist/leetcode/hash-map.mjs +0 -493
- package/dist/leetcode/heap.mjs +0 -542
- package/dist/leetcode/max-heap.mjs +0 -375
- package/dist/leetcode/max-priority-queue.mjs +0 -383
- package/dist/leetcode/min-heap.mjs +0 -363
- package/dist/leetcode/min-priority-queue.mjs +0 -371
- package/dist/leetcode/priority-queue.mjs +0 -363
- package/dist/leetcode/queue.mjs +0 -943
- package/dist/leetcode/red-black-tree.mjs +0 -2765
- package/dist/leetcode/singly-linked-list.mjs +0 -754
- package/dist/leetcode/stack.mjs +0 -217
- package/dist/leetcode/tree-counter.mjs +0 -3039
- package/dist/leetcode/tree-multi-map.mjs +0 -2913
- package/dist/leetcode/trie.mjs +0 -413
- package/dist/leetcode/undirected-graph.mjs +0 -1650
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "docs-site-docusaurus",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"docusaurus": "docusaurus",
|
|
7
|
+
"start": "docusaurus start",
|
|
8
|
+
"build": "docusaurus build",
|
|
9
|
+
"swizzle": "docusaurus swizzle",
|
|
10
|
+
"deploy": "docusaurus deploy",
|
|
11
|
+
"clear": "docusaurus clear",
|
|
12
|
+
"serve": "docusaurus serve",
|
|
13
|
+
"write-translations": "docusaurus write-translations",
|
|
14
|
+
"write-heading-ids": "docusaurus write-heading-ids",
|
|
15
|
+
"typecheck": "tsc"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@docusaurus/core": "3.9.2",
|
|
19
|
+
"@docusaurus/preset-classic": "3.9.2",
|
|
20
|
+
"@mdx-js/react": "^3.0.0",
|
|
21
|
+
"clsx": "^2.0.0",
|
|
22
|
+
"docusaurus-plugin-typedoc": "^1.4.2",
|
|
23
|
+
"prism-react-renderer": "^2.3.0",
|
|
24
|
+
"react": "^19.0.0",
|
|
25
|
+
"react-dom": "^19.0.0",
|
|
26
|
+
"typedoc": "^0.28.18",
|
|
27
|
+
"typedoc-plugin-markdown": "^4.11.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@docusaurus/module-type-aliases": "3.9.2",
|
|
31
|
+
"@docusaurus/tsconfig": "3.9.2",
|
|
32
|
+
"@docusaurus/types": "3.9.2",
|
|
33
|
+
"typescript": "~5.6.2"
|
|
34
|
+
},
|
|
35
|
+
"browserslist": {
|
|
36
|
+
"production": [
|
|
37
|
+
">0.5%",
|
|
38
|
+
"not dead",
|
|
39
|
+
"not op_mini all"
|
|
40
|
+
],
|
|
41
|
+
"development": [
|
|
42
|
+
"last 3 chrome version",
|
|
43
|
+
"last 3 firefox version",
|
|
44
|
+
"last 5 safari version"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=20.0"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DISABLED — prefixing moved to CSS search display.
|
|
3
|
+
* Page TOC stays clean (just `add()`), search results show `Class: TreeSet<K,R>.add()` via CSS order swap.
|
|
4
|
+
*/
|
|
5
|
+
console.log('⏭️ prefix-class-to-methods.mjs SKIPPED (display handled by CSS)');
|
|
6
|
+
process.exit(0);
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Original code below (kept for reference):
|
|
10
|
+
*/
|
|
11
|
+
import { readFileSync, writeFileSync, readdirSync, statSync } from 'fs';
|
|
12
|
+
import { join, basename } from 'path';
|
|
13
|
+
|
|
14
|
+
function walk(dir) {
|
|
15
|
+
const results = [];
|
|
16
|
+
for (const f of readdirSync(dir)) {
|
|
17
|
+
const full = join(dir, f);
|
|
18
|
+
if (statSync(full).isDirectory()) results.push(...walk(full));
|
|
19
|
+
else if (full.endsWith('.md')) results.push(full);
|
|
20
|
+
}
|
|
21
|
+
return results;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const files = walk('docs/api/classes');
|
|
25
|
+
let count = 0;
|
|
26
|
+
|
|
27
|
+
for (const f of files) {
|
|
28
|
+
const className = basename(f, '.md');
|
|
29
|
+
const content = readFileSync(f, 'utf8');
|
|
30
|
+
|
|
31
|
+
// Replace ### methodName() with ### ClassName.methodName()
|
|
32
|
+
// But skip ### ClassName (the constructor heading) and ### K, V, R (type params)
|
|
33
|
+
const fixed = content.replace(/^### ([a-z_]\w*\()/gm, `### ${className}.$1`);
|
|
34
|
+
|
|
35
|
+
// Also prefix property/accessor names (lowercase start, no parens)
|
|
36
|
+
const fixed2 = fixed.replace(/^### ([a-z_]\w*)$/gm, (match, name) => {
|
|
37
|
+
// Skip single-letter type params
|
|
38
|
+
if (name.length <= 2) return match;
|
|
39
|
+
return `### ${className}.${name}`;
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
if (fixed2 !== content) {
|
|
43
|
+
writeFileSync(f, fixed2);
|
|
44
|
+
count++;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
console.log(`✅ Prefixed class name to methods in ${count}/${files.length} files`);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
|
|
2
|
+
|
|
3
|
+
const sidebars: SidebarsConfig = {
|
|
4
|
+
guideSidebar: [
|
|
5
|
+
{
|
|
6
|
+
type: 'category',
|
|
7
|
+
label: 'Getting Started',
|
|
8
|
+
items: ['guide/installation', 'guide/quick-start'],
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
type: 'category',
|
|
12
|
+
label: 'Learn',
|
|
13
|
+
items: ['guide/concepts', 'guide/overview', 'guide/guides', 'guide/integrations'],
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
type: 'category',
|
|
17
|
+
label: 'Deep Dive',
|
|
18
|
+
items: ['guide/architecture', 'guide/performance'],
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default sidebars;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Post-process TypeDoc markdown: move protected members to end of file.
|
|
3
|
+
* Operates on H3 sections (### methodName) — checks for `protected` keyword.
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync, writeFileSync, readdirSync, statSync } from 'fs';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
|
|
8
|
+
function walk(dir) {
|
|
9
|
+
const results = [];
|
|
10
|
+
for (const f of readdirSync(dir)) {
|
|
11
|
+
const full = join(dir, f);
|
|
12
|
+
if (statSync(full).isDirectory()) results.push(...walk(full));
|
|
13
|
+
else if (full.endsWith('.md')) results.push(full);
|
|
14
|
+
}
|
|
15
|
+
return results;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function processFile(content) {
|
|
19
|
+
const lines = content.split('\n');
|
|
20
|
+
|
|
21
|
+
// Split into sections by H3 (### name)
|
|
22
|
+
// Keep everything before first H3 as header
|
|
23
|
+
const sections = [];
|
|
24
|
+
let current = [];
|
|
25
|
+
let inH3 = false;
|
|
26
|
+
|
|
27
|
+
for (const line of lines) {
|
|
28
|
+
if (line.startsWith('### ') && inH3) {
|
|
29
|
+
sections.push(current);
|
|
30
|
+
current = [line];
|
|
31
|
+
} else if (line.startsWith('### ')) {
|
|
32
|
+
// First H3 — push header
|
|
33
|
+
sections.push(current);
|
|
34
|
+
current = [line];
|
|
35
|
+
inH3 = true;
|
|
36
|
+
} else {
|
|
37
|
+
current.push(line);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
sections.push(current);
|
|
41
|
+
|
|
42
|
+
if (sections.length <= 2) return { content, changed: false }; // no H3 sections
|
|
43
|
+
|
|
44
|
+
const header = sections[0]; // everything before first H3
|
|
45
|
+
const h3Sections = sections.slice(1);
|
|
46
|
+
|
|
47
|
+
// Classify: protected vs public
|
|
48
|
+
const publicSections = [];
|
|
49
|
+
const protectedSections = [];
|
|
50
|
+
|
|
51
|
+
for (const section of h3Sections) {
|
|
52
|
+
const text = section.slice(0, 10).join('\n'); // check first 10 lines
|
|
53
|
+
if (text.includes('`protected`') || text.includes('protected ')) {
|
|
54
|
+
protectedSections.push(section);
|
|
55
|
+
} else {
|
|
56
|
+
publicSections.push(section);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (protectedSections.length === 0) return { content, changed: false };
|
|
61
|
+
|
|
62
|
+
// Add a divider before protected section
|
|
63
|
+
const protectedHeader = ['', '---', '', '## Protected Members', ''];
|
|
64
|
+
|
|
65
|
+
const result = [
|
|
66
|
+
...header,
|
|
67
|
+
...publicSections.flat(),
|
|
68
|
+
...protectedHeader,
|
|
69
|
+
...protectedSections.flat(),
|
|
70
|
+
].join('\n');
|
|
71
|
+
|
|
72
|
+
return { content: result, changed: true };
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const files = walk('docs/api/classes');
|
|
76
|
+
let count = 0;
|
|
77
|
+
|
|
78
|
+
for (const f of files) {
|
|
79
|
+
const original = readFileSync(f, 'utf8');
|
|
80
|
+
const { content, changed } = processFile(original);
|
|
81
|
+
if (changed) {
|
|
82
|
+
writeFileSync(f, content);
|
|
83
|
+
count++;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
console.log(`✅ Sorted protected members to bottom in ${count}/${files.length} files`);
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Any CSS included here will be global. The classic template
|
|
3
|
+
* bundles Infima by default. Infima is a CSS framework designed to
|
|
4
|
+
* work well for content-centric websites.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* You can override the default Infima variables here. */
|
|
8
|
+
:root {
|
|
9
|
+
--ifm-color-primary: #2e8555;
|
|
10
|
+
--ifm-color-primary-dark: #29784c;
|
|
11
|
+
--ifm-color-primary-darker: #277148;
|
|
12
|
+
--ifm-color-primary-darkest: #205d3b;
|
|
13
|
+
--ifm-color-primary-light: #33925d;
|
|
14
|
+
--ifm-color-primary-lighter: #359962;
|
|
15
|
+
--ifm-color-primary-lightest: #3cad6e;
|
|
16
|
+
--ifm-code-font-size: 95%;
|
|
17
|
+
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Active sidebar item: green background + white text */
|
|
21
|
+
.menu__link--active:not(.menu__link--sublist) {
|
|
22
|
+
background-color: var(--ifm-color-primary) !important;
|
|
23
|
+
color: #fff !important;
|
|
24
|
+
border-radius: 4px;
|
|
25
|
+
}
|
|
26
|
+
.menu__link--active:not(.menu__link--sublist):hover {
|
|
27
|
+
background-color: var(--ifm-color-primary-dark) !important;
|
|
28
|
+
color: #fff !important;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* Right-side TOC: single scrollbar on the wrapper only */
|
|
32
|
+
.theme-doc-toc-desktop {
|
|
33
|
+
position: sticky;
|
|
34
|
+
top: calc(var(--ifm-navbar-height) + 1rem);
|
|
35
|
+
max-height: calc(100vh - var(--ifm-navbar-height) - 2rem);
|
|
36
|
+
overflow-y: auto;
|
|
37
|
+
}
|
|
38
|
+
.table-of-contents {
|
|
39
|
+
overflow-y: visible; /* no inner scrollbar */
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Active TOC item: green background + white text */
|
|
43
|
+
.table-of-contents__link--active {
|
|
44
|
+
background-color: var(--ifm-color-primary) !important;
|
|
45
|
+
color: #fff !important;
|
|
46
|
+
border-radius: 4px;
|
|
47
|
+
padding: 2px 6px;
|
|
48
|
+
}
|
|
49
|
+
.table-of-contents__link--active:hover {
|
|
50
|
+
background-color: var(--ifm-color-primary-dark) !important;
|
|
51
|
+
color: #fff !important;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* DocSearch: single-line — method left, class right */
|
|
55
|
+
.DocSearch-Hit-content-wrapper {
|
|
56
|
+
display: flex !important;
|
|
57
|
+
flex-direction: row !important;
|
|
58
|
+
align-items: baseline !important;
|
|
59
|
+
justify-content: space-between !important;
|
|
60
|
+
width: 100% !important;
|
|
61
|
+
gap: 8px !important;
|
|
62
|
+
}
|
|
63
|
+
.DocSearch-Hit-title {
|
|
64
|
+
font-size: 16px !important;
|
|
65
|
+
flex-shrink: 0;
|
|
66
|
+
white-space: nowrap;
|
|
67
|
+
}
|
|
68
|
+
.DocSearch-Hit-path {
|
|
69
|
+
font-size: 16px !important;
|
|
70
|
+
color: #888 !important;
|
|
71
|
+
white-space: nowrap;
|
|
72
|
+
text-align: right !important;
|
|
73
|
+
flex-shrink: 1;
|
|
74
|
+
overflow: hidden;
|
|
75
|
+
text-overflow: ellipsis;
|
|
76
|
+
}
|
|
77
|
+
/* Highlight matching text in search results */
|
|
78
|
+
.DocSearch-Hit-title mark,
|
|
79
|
+
.DocSearch-Hit-path mark {
|
|
80
|
+
background-color: var(--ifm-color-primary) !important;
|
|
81
|
+
color: #fff !important;
|
|
82
|
+
padding: 1px 3px;
|
|
83
|
+
border-radius: 2px;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
|
87
|
+
[data-theme='dark'] {
|
|
88
|
+
--ifm-color-primary: #25c2a0;
|
|
89
|
+
--ifm-color-primary-dark: #21af90;
|
|
90
|
+
--ifm-color-primary-darker: #1fa588;
|
|
91
|
+
--ifm-color-primary-darkest: #1a8870;
|
|
92
|
+
--ifm-color-primary-light: #29d5b0;
|
|
93
|
+
--ifm-color-primary-lighter: #32d8b4;
|
|
94
|
+
--ifm-color-primary-lightest: #4fddbf;
|
|
95
|
+
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
|
96
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import Link from '@docusaurus/Link';
|
|
4
|
+
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
5
|
+
import Layout from '@theme/Layout';
|
|
6
|
+
import styles from './index.module.css';
|
|
7
|
+
|
|
8
|
+
function HomepageHeader() {
|
|
9
|
+
const {siteConfig} = useDocusaurusContext();
|
|
10
|
+
return (
|
|
11
|
+
<header className={clsx('hero hero--primary', styles.heroBanner)}>
|
|
12
|
+
<div className="container">
|
|
13
|
+
<h1 className="hero__title">{siteConfig.title}</h1>
|
|
14
|
+
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
|
15
|
+
<div className={styles.buttons}>
|
|
16
|
+
<Link className="button button--secondary button--lg" to="/docs/guide/installation">
|
|
17
|
+
Get Started →
|
|
18
|
+
</Link>
|
|
19
|
+
<Link className="button button--secondary button--lg" to="/docs/api/">
|
|
20
|
+
API Reference
|
|
21
|
+
</Link>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</header>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const features = [
|
|
29
|
+
{
|
|
30
|
+
title: '🏠 Uniform API',
|
|
31
|
+
description: 'push, pop, shift, map, filter, reduce — same methods across all structures. Learn once, use everywhere.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: '🛡️ Type Safe',
|
|
35
|
+
description: 'Full generics with strict TypeScript support. Every method returns the correct type — no casting needed.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
title: '✨ Zero Friction',
|
|
39
|
+
description: 'Spread it [...tree], loop it for...of, pass it to new Set(). Works with every JavaScript API out of the box.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: '📦 Zero Dependencies',
|
|
43
|
+
description: 'Pure TypeScript. No runtime dependencies. Tree-shakeable with subpath exports — bundle only what you use.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
title: '✅ Battle-Tested',
|
|
47
|
+
description: '2600+ tests, 99%+ coverage. CLRS-correct Red-Black Tree, ACL-style Segment Tree. Production-ready.',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
const structures = [
|
|
52
|
+
{ category: 'Trees', items: 'RedBlackTree, AVLTree, BST, TreeMap, TreeSet, TreeMultiMap, TreeMultiSet' },
|
|
53
|
+
{ category: 'Heaps', items: 'Heap, MinHeap, MaxHeap, MinPriorityQueue, MaxPriorityQueue' },
|
|
54
|
+
{ category: 'Queues & Stacks', items: 'Queue, Deque, Stack' },
|
|
55
|
+
{ category: 'Linked Lists', items: 'SinglyLinkedList, DoublyLinkedList, SkipList' },
|
|
56
|
+
{ category: 'Hashing', items: 'HashMap' },
|
|
57
|
+
{ category: 'Graphs', items: 'DirectedGraph, UndirectedGraph' },
|
|
58
|
+
{ category: 'Strings', items: 'Trie' },
|
|
59
|
+
{ category: 'Arrays', items: 'SegmentTree, BinaryIndexedTree, Matrix' },
|
|
60
|
+
];
|
|
61
|
+
|
|
62
|
+
const useCases = [
|
|
63
|
+
{ title: 'Priority Queue', link: '/docs/guide/use-cases/priority-queue-typescript', desc: 'Task scheduling, top-k problems, Dijkstra' },
|
|
64
|
+
{ title: 'TreeMap / TreeSet', link: '/docs/guide/use-cases/treemap-javascript', desc: 'Sorted maps, floor/ceiling, range queries' },
|
|
65
|
+
{ title: 'Array + Sort Too Slow?', link: '/docs/guide/use-cases/array-sort-alternative', desc: 'O(log n) insert vs O(n log n) re-sort' },
|
|
66
|
+
{ title: 'Heap vs Sorting', link: '/docs/guide/use-cases/heap-vs-sorting', desc: 'When to use which' },
|
|
67
|
+
{ title: 'Map vs TreeMap', link: '/docs/guide/use-cases/map-vs-treemap', desc: 'When native Map isn\'t enough' },
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
export default function Home(): React.JSX.Element {
|
|
71
|
+
return (
|
|
72
|
+
<Layout title="Home" description="Production-ready TypeScript data structures library — Heap, TreeMap, TreeSet, Trie, Graph, Priority Queue, Deque, and more. Zero dependencies, type-safe, with rank and range query support.">
|
|
73
|
+
<HomepageHeader />
|
|
74
|
+
<main>
|
|
75
|
+
<section style={{padding: '4rem 0'}}>
|
|
76
|
+
<div className="container">
|
|
77
|
+
<div className="row" style={{justifyContent: 'center'}}>
|
|
78
|
+
{features.map((f, i) => (
|
|
79
|
+
<div key={i} className={clsx('col col--4')} style={{marginBottom: '2rem'}}>
|
|
80
|
+
<h3>{f.title}</h3>
|
|
81
|
+
<p>{f.description}</p>
|
|
82
|
+
</div>
|
|
83
|
+
))}
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
</section>
|
|
87
|
+
|
|
88
|
+
<section style={{padding: '2rem 0 4rem', background: 'var(--ifm-background-surface-color)'}}>
|
|
89
|
+
<div className="container">
|
|
90
|
+
<h2 style={{textAlign: 'center', marginBottom: '2rem'}}>📚 Data Structures Available</h2>
|
|
91
|
+
<div className="row" style={{justifyContent: 'center'}}>
|
|
92
|
+
{structures.map((s, i) => (
|
|
93
|
+
<div key={i} className={clsx('col col--6')} style={{marginBottom: '1.5rem'}}>
|
|
94
|
+
<h4>{s.category}</h4>
|
|
95
|
+
<p style={{color: 'var(--ifm-color-emphasis-700)', fontSize: '0.95rem'}}>{s.items}</p>
|
|
96
|
+
</div>
|
|
97
|
+
))}
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</section>
|
|
101
|
+
|
|
102
|
+
<section style={{padding: '4rem 0'}}>
|
|
103
|
+
<div className="container">
|
|
104
|
+
<h2 style={{textAlign: 'center', marginBottom: '2rem'}}>🎯 Use Cases & Guides</h2>
|
|
105
|
+
<div className="row" style={{justifyContent: 'center'}}>
|
|
106
|
+
{useCases.map((u, i) => (
|
|
107
|
+
<div key={i} className={clsx('col col--4')} style={{marginBottom: '1.5rem'}}>
|
|
108
|
+
<Link to={u.link} style={{textDecoration: 'none'}}>
|
|
109
|
+
<h4>{u.title}</h4>
|
|
110
|
+
<p style={{color: 'var(--ifm-color-emphasis-700)', fontSize: '0.9rem'}}>{u.desc}</p>
|
|
111
|
+
</Link>
|
|
112
|
+
</div>
|
|
113
|
+
))}
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
</section>
|
|
117
|
+
</main>
|
|
118
|
+
</Layout>
|
|
119
|
+
);
|
|
120
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import TOCItems from '@theme-original/TOCItems';
|
|
3
|
+
import type { WrapperProps } from '@docusaurus/types';
|
|
4
|
+
|
|
5
|
+
type Props = WrapperProps<typeof TOCItems>;
|
|
6
|
+
|
|
7
|
+
export default function TOCItemsWrapper(props: Props): React.JSX.Element {
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
// Auto-scroll active TOC item into view
|
|
10
|
+
const observer = new MutationObserver(() => {
|
|
11
|
+
const active = document.querySelector('.table-of-contents__link--active');
|
|
12
|
+
if (active) {
|
|
13
|
+
const container = active.closest('.theme-doc-toc-desktop');
|
|
14
|
+
if (container) {
|
|
15
|
+
const containerRect = container.getBoundingClientRect();
|
|
16
|
+
const activeRect = active.getBoundingClientRect();
|
|
17
|
+
// Only scroll if active item is outside visible area
|
|
18
|
+
if (activeRect.top < containerRect.top || activeRect.bottom > containerRect.bottom) {
|
|
19
|
+
active.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const toc = document.querySelector('.table-of-contents');
|
|
26
|
+
if (toc) {
|
|
27
|
+
observer.observe(toc, { attributes: true, subtree: true, attributeFilter: ['class'] });
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return () => observer.disconnect();
|
|
31
|
+
}, []);
|
|
32
|
+
|
|
33
|
+
return <TOCItems {...props} />;
|
|
34
|
+
}
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path fill="#FFF" d="M99 52h84v34H99z"/><path d="M23 163c-7.398 0-13.843-4.027-17.303-10A19.886 19.886 0 0 0 3 163c0 11.046 8.954 20 20 20h20v-20H23z" fill="#3ECC5F"/><path d="M112.98 57.376L183 53V43c0-11.046-8.954-20-20-20H73l-2.5-4.33c-1.112-1.925-3.889-1.925-5 0L63 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L53 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L43 23c-.022 0-.042.003-.065.003l-4.142-4.141c-1.57-1.571-4.252-.853-4.828 1.294l-1.369 5.104-5.192-1.392c-2.148-.575-4.111 1.389-3.535 3.536l1.39 5.193-5.102 1.367c-2.148.576-2.867 3.259-1.296 4.83l4.142 4.142c0 .021-.003.042-.003.064l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 53l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 63l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 73l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 83l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 93l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 103l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 113l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 123l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 133l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 143l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 153l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 163c0 11.046 8.954 20 20 20h120c11.046 0 20-8.954 20-20V83l-70.02-4.376A10.645 10.645 0 0 1 103 68c0-5.621 4.37-10.273 9.98-10.624" fill="#3ECC5F"/><path fill="#3ECC5F" d="M143 183h30v-40h-30z"/><path d="M193 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 190.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5" fill="#44D860"/><path fill="#3ECC5F" d="M153 123h30v-20h-30z"/><path d="M193 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 183 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032" fill="#44D860"/><path d="M63 55.5a2.5 2.5 0 0 1-2.5-2.5c0-4.136-3.364-7.5-7.5-7.5s-7.5 3.364-7.5 7.5a2.5 2.5 0 1 1-5 0c0-6.893 5.607-12.5 12.5-12.5S65.5 46.107 65.5 53a2.5 2.5 0 0 1-2.5 2.5" fill="#000"/><path d="M103 183h60c11.046 0 20-8.954 20-20V93h-60c-11.046 0-20 8.954-20 20v70z" fill="#FFFF50"/><path d="M168.02 124h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0-49.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 19.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2M183 61.611c-.012 0-.022-.006-.034-.005-3.09.105-4.552 3.196-5.842 5.923-1.346 2.85-2.387 4.703-4.093 4.647-1.889-.068-2.969-2.202-4.113-4.46-1.314-2.594-2.814-5.536-5.963-5.426-3.046.104-4.513 2.794-5.807 5.167-1.377 2.528-2.314 4.065-4.121 3.994-1.927-.07-2.951-1.805-4.136-3.813-1.321-2.236-2.848-4.75-5.936-4.664-2.994.103-4.465 2.385-5.763 4.4-1.373 2.13-2.335 3.428-4.165 3.351-1.973-.07-2.992-1.51-4.171-3.177-1.324-1.873-2.816-3.993-5.895-3.89-2.928.1-4.399 1.97-5.696 3.618-1.232 1.564-2.194 2.802-4.229 2.724a1 1 0 0 0-.072 2c3.017.101 4.545-1.8 5.872-3.487 1.177-1.496 2.193-2.787 4.193-2.855 1.926-.082 2.829 1.115 4.195 3.045 1.297 1.834 2.769 3.914 5.731 4.021 3.103.104 4.596-2.215 5.918-4.267 1.182-1.834 2.202-3.417 4.15-3.484 1.793-.067 2.769 1.35 4.145 3.681 1.297 2.197 2.766 4.686 5.787 4.796 3.125.108 4.634-2.62 5.949-5.035 1.139-2.088 2.214-4.06 4.119-4.126 1.793-.042 2.728 1.595 4.111 4.33 1.292 2.553 2.757 5.445 5.825 5.556l.169.003c3.064 0 4.518-3.075 5.805-5.794 1.139-2.41 2.217-4.68 4.067-4.773v-2z" fill="#000"/><path fill="#3ECC5F" d="M83 183h40v-40H83z"/><path d="M143 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 140.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5" fill="#44D860"/><path fill="#3ECC5F" d="M83 123h40v-20H83z"/><path d="M133 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 123 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032" fill="#44D860"/><path d="M143 41.75c-.16 0-.33-.02-.49-.05a2.52 2.52 0 0 1-.47-.14c-.15-.06-.29-.14-.431-.23-.13-.09-.259-.2-.38-.31-.109-.12-.219-.24-.309-.38s-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.16.02-.33.05-.49.03-.16.08-.31.139-.47.061-.15.141-.29.231-.43.09-.13.2-.26.309-.38.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.65-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.11.12.22.25.31.38.09.14.17.28.23.43.06.16.11.31.14.47.029.16.05.33.05.49 0 .66-.271 1.31-.73 1.77-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19m20-1.25c-.66 0-1.3-.27-1.771-.73a3.802 3.802 0 0 1-.309-.38c-.09-.14-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.66.27-1.3.729-1.77.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.66-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.459.47.73 1.11.73 1.77 0 .16-.021.33-.05.49-.03.16-.08.32-.14.47-.07.15-.14.29-.23.43-.09.13-.2.26-.31.38-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19" fill="#000"/></g></svg>
|
|
Binary file
|