@live-change/flatten-interval-tree 0.8.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/.babelrc +8 -0
  2. package/.travis.yml +14 -0
  3. package/LICENSE +21 -0
  4. package/README.md +172 -0
  5. package/dist/main.cjs.js +799 -0
  6. package/dist/main.esm.js +794 -0
  7. package/dist/main.umd.js +805 -0
  8. package/docs/Interval.html +1609 -0
  9. package/docs/IntervalTree.html +1506 -0
  10. package/docs/classes_interval.js.html +173 -0
  11. package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  12. package/docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
  13. package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  14. package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  15. package/docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  16. package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  17. package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  18. package/docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
  19. package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  20. package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
  21. package/docs/fonts/OpenSans-Light-webfont.svg +1831 -0
  22. package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
  23. package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  24. package/docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  25. package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  26. package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  27. package/docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
  28. package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  29. package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
  30. package/docs/fonts/OpenSans-Semibold-webfont.svg +1830 -0
  31. package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  32. package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
  33. package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  34. package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
  35. package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  36. package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  37. package/docs/index.html +197 -0
  38. package/docs/index.js.html +624 -0
  39. package/docs/interval.js.html +184 -0
  40. package/docs/intervalTree.js.html +624 -0
  41. package/docs/scripts/linenumber.js +25 -0
  42. package/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  43. package/docs/scripts/prettify/lang-css.js +2 -0
  44. package/docs/scripts/prettify/prettify.js +28 -0
  45. package/docs/styles/jsdoc-default.css +692 -0
  46. package/docs/styles/prettify-jsdoc.css +111 -0
  47. package/docs/styles/prettify-tomorrow.css +132 -0
  48. package/examples/browser/index.html +49 -0
  49. package/examples/create-react-app/package.json +15 -0
  50. package/examples/create-react-app/public/index.html +11 -0
  51. package/examples/create-react-app/src/App.js +38 -0
  52. package/examples/create-react-app/src/ComposersList.js +15 -0
  53. package/examples/create-react-app/src/index.js +5 -0
  54. package/examples/es6-module/index.html +50 -0
  55. package/examples/nodejs/index.js +23 -0
  56. package/index.d.ts +65 -0
  57. package/index.js +6 -0
  58. package/package.json +52 -0
  59. package/rollup.config.js +21 -0
  60. package/src/classes/interval.js +131 -0
  61. package/src/classes/intervalTree.js +564 -0
  62. package/src/classes/node.js +97 -0
  63. package/src/utils/constants.js +16 -0
  64. package/test/intervalTree.js +232 -0
  65. package/test/node.js +64 -0
@@ -0,0 +1,173 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <title>interval.js - Documentation</title>
7
+
8
+ <script src="scripts/prettify/prettify.js"></script>
9
+ <script src="scripts/prettify/lang-css.js"></script>
10
+ <!--[if lt IE 9]>
11
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
12
+ <![endif]-->
13
+ <link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
14
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
15
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
16
+ </head>
17
+ <body>
18
+
19
+ <input type="checkbox" id="nav-trigger" class="nav-trigger" />
20
+ <label for="nav-trigger" class="navicon-button x">
21
+ <div class="navicon"></div>
22
+ </label>
23
+
24
+ <label for="nav-trigger" class="overlay"></label>
25
+
26
+ <nav>
27
+ <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Interval.html">Interval</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Interval.html#.comparable_less_than">comparable_less_than</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Interval.html#.comparable_max">comparable_max</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Interval.html#clone">clone</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Interval.html#equal_to">equal_to</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Interval.html#intersect">intersect</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Interval.html#less_than">less_than</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Interval.html#not_intersect">not_intersect</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Interval.html#output">output</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="IntervalTree.html">IntervalTree</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="IntervalTree.html#exist">exist</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="IntervalTree.html#forEach">forEach</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="IntervalTree.html#insert">insert</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="IntervalTree.html#isEmpty">isEmpty</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="IntervalTree.html#map">map</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="IntervalTree.html#remove">remove</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="IntervalTree.html#search">search</a></span></li>
28
+ </nav>
29
+
30
+ <div id="main">
31
+
32
+ <h1 class="page-title">interval.js</h1>
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+ <section>
41
+ <article>
42
+ <pre class="prettyprint source linenums"><code>/**
43
+ * Created by Alex Bol on 4/1/2017.
44
+ */
45
+
46
+ /**
47
+ * Interval is a pair of numbers or a pair of any comparable objects on which may be defined predicates
48
+ * *equal*, *less* and method *max(p1, p1)* that returns maximum in a pair.
49
+ * When interval is an object rather than pair of numbers, this object should have properties *low*, *high*, *max*
50
+ * and implement methods *less_than(), equal_to(), intersect(), not_intersect(), clone(), output()*.
51
+ * Two static methods *comparable_max(), comparable_less_than()* define how to compare values in pair. &lt;br/>
52
+ * This interface is described in typescript definition file *index.d.ts*
53
+ *
54
+ * Axis aligned rectangle is an example of such interval.
55
+ * We may look at rectangle as an interval between its low left and top right corners.
56
+ * See **Box** class in [flatten-js](https://github.com/alexbol99/flatten-js) library as the example
57
+ * of Interval interface implementation
58
+ * @type {Interval}
59
+ */
60
+ const Interval = class Interval {
61
+ /**
62
+ * Accept two comparable values and creates new instance of interval
63
+ * Predicate Interval.comparable_less(low, high) supposed to return true on these values
64
+ * @param low
65
+ * @param high
66
+ */
67
+ constructor(low, high) {
68
+ this.low = low;
69
+ this.high = high;
70
+ }
71
+
72
+ /**
73
+ * Returns maximum value of the interval
74
+ * @returns {*|Comparable}
75
+ */
76
+ get max() {
77
+ return this.high;
78
+ }
79
+
80
+
81
+ /**
82
+ * Clone interval
83
+ * @returns {Interval}
84
+ */
85
+ clone() {
86
+ return new Interval(this.low, this.high);
87
+ }
88
+
89
+ /**
90
+ * Predicate returns true is this interval less than other interval
91
+ * @param other_interval
92
+ * @returns {boolean}
93
+ */
94
+ less_than(other_interval) {
95
+ return this.low &lt; other_interval.low ||
96
+ this.low == other_interval.low &amp;&amp; this.high &lt; other_interval.high;
97
+ }
98
+
99
+ /**
100
+ * Predicate returns true is this interval equals to other interval
101
+ * @param other_interval
102
+ * @returns {boolean}
103
+ */
104
+ equal_to(other_interval) {
105
+ return this.low == other_interval.low &amp;&amp; this.high == other_interval.high;
106
+ }
107
+
108
+ /**
109
+ * Predicate returns true if this interval intersects other interval
110
+ * @param other_interval
111
+ * @returns {boolean}
112
+ */
113
+ intersect(other_interval) {
114
+ return !this.not_intersect(other_interval);
115
+ }
116
+
117
+ /**
118
+ * Predicate returns true if this interval does not intersect other interval
119
+ * @param other_interval
120
+ * @returns {boolean}
121
+ */
122
+ not_intersect(other_interval) {
123
+ return (this.high &lt; other_interval.low || other_interval.high &lt; this.low);
124
+ }
125
+
126
+ /**
127
+ * Returns how key should return
128
+ */
129
+ output() {
130
+ return [this.low, this.high];
131
+ }
132
+
133
+ /**
134
+ * Function returns maximum between two comparable values
135
+ * @param val1
136
+ * @param val2
137
+ * @returns {number}
138
+ */
139
+ static comparable_max(val1, val2) {
140
+ return Math.max(val1, val2);
141
+ }
142
+
143
+ /**
144
+ * Predicate returns true if first value less than second value
145
+ * @param val1
146
+ * @param val2
147
+ * @returns {boolean}
148
+ */
149
+ static comparable_less_than(val1, val2 ) {
150
+ return val1 &lt; val2;
151
+ }
152
+ };
153
+
154
+ export default Interval;
155
+ </code></pre>
156
+ </article>
157
+ </section>
158
+
159
+
160
+
161
+
162
+ </div>
163
+
164
+ <br class="clear">
165
+
166
+ <footer>
167
+ Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sat Mar 16 2019 12:06:26 GMT+0200 (Israel Standard Time) using the Minami theme.
168
+ </footer>
169
+
170
+ <script>prettyPrint();</script>
171
+ <script src="scripts/linenumber.js"></script>
172
+ </body>
173
+ </html>