Skip to content

Commit 14f7ffc

Browse files
committed
Merge branch 'release/2.6.2'
2 parents 9981e1b + dd75fef commit 14f7ffc

File tree

212 files changed

+2996
-1137
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

212 files changed

+2996
-1137
lines changed

.config/source-license-header.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
/**
22
* @license
3-
* Copyright (c) 2023 Handsoncode. All rights reserved.
3+
* Copyright (c) 2024 Handsoncode. All rights reserved.
44
*/

.config/webpack/development.js

-6
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,6 @@ module.exports.create = function create() {
2929
commonjs: 'tiny-emitter',
3030
amd: 'tiny-emitter',
3131
},
32-
unorm: {
33-
root: 'unorm',
34-
commonjs2: 'unorm',
35-
commonjs: 'unorm',
36-
amd: 'unorm',
37-
},
3832
};
3933
c.plugins.push(new WebpackBar({ name: ` ${PACKAGE_FILENAME}.js` }));
4034
});

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
77

88
## [Unreleased]
99

10+
## [2.6.2] - 2024-02-15
11+
12+
### Changed
13+
14+
- Removed `unorm` dependency. [#1370](https://github.com/handsontable/hyperformula/issues/1370)
15+
1016
## [2.6.1] - 2023-12-27
1117

1218
### Fixed

docs/.vuepress/config.js

+25
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,31 @@ module.exports = {
2222
`],
2323
// Google Console
2424
['meta', { name: 'google-site-verification', content: 'MZpSOa8SNvFLRRGwUQpYVZ78kIHQoPVdVbafHhJ_d4Q' }],
25+
// Sentry monitoring
26+
[
27+
'script', {}, `
28+
window.sentryOnLoad = function () {
29+
Sentry.init({
30+
integrations: [
31+
// If you use a bundle with performance monitoring enabled, add the BrowserTracing integration
32+
new Sentry.BrowserTracing(),
33+
// If you use a bundle with session replay enabled, add the SessionReplay integration
34+
new Sentry.Replay({
35+
maskAllText: false,
36+
blockAllMedia: false,
37+
}),
38+
],
39+
});
40+
};
41+
`],
42+
[
43+
'script',
44+
{
45+
id: 'Sentry.io',
46+
src: 'https://js.sentry-cdn.com/50617701901516ce348cb7b252564a60.min.js',
47+
crossorigin: 'anonymous',
48+
},
49+
],
2550
// Favicon
2651
['link', { rel: 'apple-touch-icon', sizes: '180x180', href: '/favicon/apple-touch-icon.png' }],
2752
['link', { rel: 'icon', sizes: '32x32', type: 'image/png', href: '/favicon/favicon-32x32.png' }],

docs/guide/advanced-usage.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,5 +126,5 @@ console.log(winningTeam)
126126
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
127127
title="handsontable/hyperformula-demos: advanced-usage"
128128
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
129-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
129+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
130130
</iframe>

docs/guide/basic-operations.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -411,5 +411,5 @@ sample UI.
411411
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
412412
title="handsontable/hyperformula-demos: basic-operations"
413413
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
414-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
414+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
415415
</iframe>

docs/guide/basic-usage.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,5 @@ works. It's time to move on to a more
6969
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
7070
title="handsontable/hyperformula-demos: basic-usage"
7171
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
72-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
72+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
7373
></iframe>

docs/guide/batch-operations.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,5 +128,5 @@ The [paste](../api/classes/hyperformula.md#paste) method also can't be called wh
128128
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
129129
title="handsontable/hyperformula-demos: batch-operations"
130130
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
131-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
131+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
132132
</iframe>

docs/guide/client-side-installation.md

-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ Or you may load just a minimal build and add the dependencies on your own:
4747
```html
4848
<script src="https://cdn.jsdelivr.net/npm/chevrotain@6/lib/chevrotain.min.js"></script>
4949
<script src="https://cdn.jsdelivr.net/npm/tiny-emitter@2/dist/tinyemitter.min.js"></script>
50-
<script src="https://cdn.jsdelivr.net/npm/unorm@1/lib/unorm.js"></script>
5150
<script src="https://cdn.jsdelivr.net/npm/hyperformula/dist/hyperformula.min.js"></script>
5251
```
5352

docs/guide/clipboard-operations.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,10 @@ Depending on what was cut, the data is stored as:
112112

113113
## Demo
114114

115-
<iframe src="https://codesandbox.io/embed/github/handsontable/hyperformula-demos/tree/2.6.x/clipboard-operations?autoresize=1&fontsize=11&hidenavigation=1&theme=light&view=preview" style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;" title="handsontable/hyperformula-demos: clipboard-operations" allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking" sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"></iframe>
115+
<iframe
116+
src="https://codesandbox.io/embed/github/handsontable/hyperformula-demos/tree/2.6.x/clipboard-operations?autoresize=1&fontsize=11&hidenavigation=1&theme=light&view=preview"
117+
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
118+
title="handsontable/hyperformula-demos: clipboard-operations"
119+
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
120+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
121+
</iframe>

docs/guide/custom-functions.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ This demo contains the implementation of both the
367367
style="width:100%; height:300px; border:0; border-radius: 4px; overflow:hidden;"
368368
title="handsontable/hyperformula-demos: custom-functions"
369369
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
370-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
370+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
371371
</iframe>
372372
373373
## Function options

docs/guide/date-and-time-handling.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,5 +103,5 @@ And now, HyperFormula recognizes these values as valid dates and can operate on
103103
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
104104
title="handsontable/hyperformula-demos: date-time"
105105
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
106-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
106+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
107107
</iframe>

docs/guide/demo.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
style="width:100%; height:500px; margin-bottom: 50px; border:0; border-radius: 4px; overflow:hidden;"
66
title="handsontable/hyperformula-demos: vanillajs-demo"
77
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
8-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
8+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
99
></iframe>
1010
1111
In this demo, you can see how HyperFormula handles basic operations by using API methods, such as:

docs/guide/dependencies.md

-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ features.
1111
| [core-js](https://github.com/zloirock/core-js) | The MIT License | Denis Pushkarev |
1212
| [jStat](https://github.com/jstat/jstat) | The MIT License | jStat |
1313
| [tiny-emitter](https://github.com/scottcorgan/tiny-emitter) | The MIT License | Scott Corgan |
14-
| [unorm](https://github.com/walling/unorm) | The MIT License | Matsuza, Bjarke Walling |
15-
1614

1715
The _bessel_ and _jStat_ projects are distributed with the code repository at the path `src/interpreter/plugin/3rdparty` and bundled with the code package.
1816

docs/guide/dependency-graph.md

+32-24
Original file line numberDiff line numberDiff line change
@@ -97,32 +97,40 @@ hfInstance.getCellDependents({ sheet: 0, col: 0, row: 0 })
9797

9898
To get all precedents of a cell or a range (all precedent nodes reachable from the cell node or the range node), use the [`getCellPrecedents()`](../api/classes/hyperformula.html#getcellprecedents) method to implement a [Breadth-first search (BFS)](https://en.wikipedia.org/wiki/Breadth-first_search) algorithm:
9999

100-
```
101-
1 AllCellPrecedents={start}
102-
2 let Q be an empty queue
103-
4 Q.enqueue(start)
104-
5 while Q is not empty do
105-
6 cell := Q.dequeue()
106-
7 S := getCellPrecedents(cell)
107-
9 for all cells c in S do:
108-
10 if c is not in AllCellPrecedents then:
109-
11 insert w to AllCellPrecedents
110-
12 Q.enqueue(c)
111-
```
100+
<div class="language- extra-class">
101+
<pre class="language-text" style="margin: 0; padding: 0;">
102+
<code style="margin: 0; padding: 0;">
103+
<span class="token">AllCellPrecedents</span>={<span class="token variable">start</span>}
104+
<span class="token keyword">let</span> <span class="token variable">Q</span> <span class="token keyword">be</span> <span class="token keyword">an</span> <span class="token keyword">empty</span> <span class="token keyword">queue</span>
105+
<span class="token variable">Q</span>.<span class="token function">enqueue</span>(<span class="token variable">start</span>)
106+
<span class="token keyword">while</span> <span class="token variable">Q</span> <span class="token keyword">is</span> <span class="token keyword">not</span> <span class="token keyword">empty</span> <span class="token keyword">do</span>
107+
<span class="token variable">cell</span> := <span class="token variable">Q</span>.<span class="token function">dequeue</span>()
108+
<span class="token variable">S</span> := <span class="token function">getCellPrecedents</span>(<span class="token variable">cell</span>)
109+
<span class="token keyword">for</span> <span class="token keyword">all</span> <span class="token variable">cells</span> <span class="token variable">c</span> <span class="token keyword">in</span> <span class="token variable">S</span> <span class="token keyword">do</span>:
110+
<span class="token keyword">if</span> <span class="token variable">c</span> <span class="token keyword">is</span> <span class="token keyword">not</span> <span class="token keyword">in</span> <span class="token variable">AllCellPrecedents</span> <span class="token keyword">then</span>:
111+
<span class="token function">insert</span> <span class="token variable">w</span> <span class="token keyword">to</span> <span class="token variable">AllCellPrecedents</span>
112+
<span class="token variable">Q</span>.<span class="token function">enqueue</span>(<span class="token variable">c</span>)
113+
</code>
114+
</pre>
115+
</div>
112116

113117
## Getting all dependents of a cell or a range
114118

115119
To get all dependents of a cell or a range (all dependent nodes reachable from the cell node or the range node), use the [`getCellDependents()`](../api/classes/hyperformula.html#getcelldependents) method to implement a [Breadth-first search (BFS)](https://en.wikipedia.org/wiki/Breadth-first_search) algorithm:
116120

117-
```
118-
1 AllCellDependents={start}
119-
2 let Q be an empty queue
120-
4 Q.enqueue(start)
121-
5 while Q is not empty do
122-
6 cell := Q.dequeue()
123-
7 S := getCellDependents(cell)
124-
9 for all cells c in S do:
125-
10 if c is not in AllCellDependents then:
126-
11 insert w to AllCellDependents
127-
12 Q.enqueue(c)
128-
```
121+
<div class="language- extra-class">
122+
<pre class="language-text" style="margin: 0; padding: 0;">
123+
<code style="margin: 0; padding: 0;">
124+
<span class="token">AllCellDependents</span>={<span class="token variable">start</span>}
125+
<span class="token keyword">let</span> <span class="token variable">Q</span> <span class="token keyword">be</span> <span class="token keyword">an</span> <span class="token keyword">empty</span> <span class="token keyword">queue</span>
126+
<span class="token variable">Q</span>.<span class="token function">enqueue</span>(<span class="token variable">start</span>)
127+
<span class="token keyword">while</span> <span class="token variable">Q</span> <span class="token keyword">is</span> <span class="token keyword">not</span> <span class="token keyword">empty</span> <span class="token keyword">do</span>
128+
<span class="token variable">cell</span> := <span class="token variable">Q</span>.<span class="token function">dequeue</span>()
129+
<span class="token variable">S</span> := <span class="token function">getCellDependents</span>(<span class="token variable">cell</span>)
130+
<span class="token keyword">for</span> <span class="token keyword">all</span> <span class="token variable">cells</span> <span class="token variable">c</span> <span class="token keyword">in</span> <span class="token variable">S</span> <span class="token keyword">do</span>:
131+
<span class="token keyword">if</span> <span class="token variable">c</span> <span class="token keyword">is</span> <span class="token keyword">not</span> <span class="token keyword">in</span> <span class="token variable">AllCellDependents</span> <span class="token keyword">then</span>:
132+
<span class="token function">insert</span> <span class="token variable">w</span> <span class="token keyword">to</span> <span class="token variable">AllCellDependents</span>
133+
<span class="token variable">Q</span>.<span class="token function">enqueue</span>(<span class="token variable">c</span>)
134+
</code>
135+
</pre>
136+
</div>

docs/guide/i18n-features.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,5 +110,5 @@ This demo shows HyperFormula configured for the `en-US` locale.
110110
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
111111
title="handsontable/hyperformula-demos: basic-operations"
112112
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
113-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
113+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
114114
</iframe>

docs/guide/integration-with-angular.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ For more details, see the [client-side installation](client-side-installation.md
1212
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
1313
title="handsontable/hyperformula-demos: angular-demo"
1414
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
15-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
15+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
1616
></iframe>

docs/guide/integration-with-react.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ For more details, see the [client-side installation](client-side-installation.md
1111
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
1212
title="handsontable/hyperformula-demos: react-demo"
1313
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
14-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
14+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
1515
></iframe>

docs/guide/integration-with-svelte.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ For more details, see the [client-side installation](client-side-installation.md
77
## Demo
88

99
<iframe
10-
src="https://codesandbox.io/embed/github/handsontable/hyperformula-demos/tree/2.6.x/svelte-demo?autoresize=1&fontsize=11&hidenavigation=1&theme=light&view=preview"
11-
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
10+
src="https://codesandbox.io/p/devbox/github/handsontable/hyperformula-demos/tree/2.6.x/svelte-demo"
11+
style="width:100%; height:900px; border:0; border-radius: 4px; overflow:hidden;"
1212
title="handsontable/hyperformula-demos: react-demo"
1313
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
14-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
14+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
1515
</iframe>

docs/guide/integration-with-vue.md

+9-5
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ For more details, see the [client-side installation](client-side-installation.md
66

77
## Demo
88

9+
::: tip
10+
This demo uses the [Vue 3](https://v3.vuejs.org/) framework. If you are looking for an example using Vue 2, check out the [code on GitHub](https://github.com/handsontable/hyperformula-demos/tree/2.5.x/vue-demo).
11+
:::
12+
913
<iframe
10-
src="https://codesandbox.io/embed/github/handsontable/hyperformula-demos/tree/2.6.x/vue-3-demo?autoresize=1&fontsize=11&hidenavigation=1&theme=light&view=preview"
11-
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
12-
title="handsontable/hyperformula-demos: vue-demo"
13-
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
14-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
14+
src="https://codesandbox.io/p/devbox/github/handsontable/hyperformula-demos/tree/2.6.x/vue-3-demo"
15+
style="width:100%; height:1070px; border:0; border-radius: 4px; overflow:hidden;"
16+
title="handsontable/hyperformula-demos: vue-demo"
17+
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
18+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
1519
</iframe>

docs/guide/localizing-functions.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,5 +101,5 @@ You can localize your custom functions as well. For details, see the [Custom fun
101101
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
102102
title="handsontable/hyperformula-demos: localizing-functions"
103103
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
104-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
104+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
105105
</iframe>

docs/guide/named-expressions.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,5 +154,5 @@ described in [that section](basic-operations.md#isitpossibleto-methods).
154154
style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;"
155155
title="handsontable/hyperformula-demos: named-expressions"
156156
allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking"
157-
sandbox="allow-autoplay allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
157+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts">
158158
</iframe>

docs/guide/release-notes.md

+8
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ This page lists HyperFormula release notes. The format is based on
66
HyperFormula adheres to
77
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
88

9+
## 2.6.2
10+
11+
**Release date: Feb 15, 2024**
12+
13+
### Changed
14+
15+
- Removed `unorm` dependency. [#1370](https://github.com/handsontable/hyperformula/issues/1370)
16+
917
## 2.6.1
1018

1119
**Release date: Dec 27, 2023**

0 commit comments

Comments
 (0)