Skip to content

Commit 405d3c0

Browse files
committed
Merge branch 'release/2.5.0'
2 parents 9f7b2db + 1f0e2a3 commit 405d3c0

File tree

111 files changed

+5883
-5412
lines changed

Some content is hidden

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

111 files changed

+5883
-5412
lines changed

.config/webpack/languages.js

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
/**
22
* Config responsible for building not minified Handsontable `languages/` files.
33
*/
4-
const NEW_LINE_CHAR = '\n';
54
const SOURCE_LANGUAGES_DIRECTORY = 'lib/i18n/languages';
65
const OUTPUT_LANGUAGES_DIRECTORY = 'languages';
76

87
const path = require('path');
9-
const StringReplacePlugin = require('string-replace-webpack-plugin');
108
const WebpackOnBuildPlugin = require('on-build-webpack');
119
const fs = require('fs');
1210
const fsExtra = require('fs-extra');
@@ -34,31 +32,23 @@ function getEntryJsFiles() {
3432

3533
const ruleForSnippetsInjection = {
3634
test: /\.js$/,
37-
loader: StringReplacePlugin.replace({
38-
replacements: [
39-
{
40-
pattern: /\/\/.import/,
41-
replacement: function() {
42-
const snippet1 = `import HyperFormula from '../..';`;
43-
44-
return `${snippet1}${NEW_LINE_CHAR.repeat(2)}`;
35+
loader: 'string-replace-loader',
36+
options: {
37+
multiple: [
38+
{ search: 'export default dictionary', replace: `
39+
if (!HyperFormula.languages) {
40+
HyperFormula.languages = {};
4541
}
46-
},
47-
{
48-
pattern: /export default dictionary/,
49-
replacement: function(matchingPhrase) {
50-
const snippet = `
51-
if (!HyperFormula.languages) {
52-
HyperFormula.languages = {};
53-
}
54-
HyperFormula.languages[dictionary.langCode] = dictionary;
55-
`;
56-
57-
return `${snippet}${NEW_LINE_CHAR.repeat(2)}${matchingPhrase}`;
58-
}
59-
}
42+
HyperFormula.languages[dictionary.langCode] = dictionary;
43+
44+
export default dictionary
45+
`},
46+
{ search: /\/\/.import/, replace: `
47+
import HyperFormula from '../..';
48+
49+
`}
6050
]
61-
})
51+
}
6252
};
6353

6454
module.exports.create = function create() {

.eslintrc.js

Lines changed: 42 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module.exports = {
22
root: true,
3+
ignorePatterns: ['.eslintrc.js'],
34
parser: '@typescript-eslint/parser',
45
plugins: [
56
'@typescript-eslint',
@@ -27,17 +28,21 @@ module.exports = {
2728
delimiter: 'comma',
2829
},
2930
}],
30-
'@typescript-eslint/camelcase': 'error',
31+
'@typescript-eslint/naming-convention': [
32+
'error',
33+
{ 'selector': 'variableLike', 'format': ['camelCase', 'UPPER_CASE', 'PascalCase'], 'leadingUnderscore': 'allow' },
34+
{ 'selector': 'interface', 'format': ['PascalCase'], 'custom': { 'regex': '^I[A-Z]', 'match': false } },
35+
],
3136
'@typescript-eslint/semi': ['error', 'never'],
32-
'@typescript-eslint/brace-style': 'error', // wtf
37+
'@typescript-eslint/brace-style': 'error',
3338
'@typescript-eslint/no-unnecessary-boolean-literal-compare': ['error'],
3439
'@typescript-eslint/no-extra-non-null-assertion': ['error'],
3540
'@typescript-eslint/no-throw-literal': ['error'],
3641
'@typescript-eslint/array-type': ['error'],
37-
'@typescript-eslint/space-before-function-paren': ["error", {
38-
"anonymous": "never",
39-
"named": "never",
40-
"asyncArrow": "always"
42+
'@typescript-eslint/space-before-function-paren': ['error', {
43+
'anonymous': 'never',
44+
'named': 'never',
45+
'asyncArrow': 'always'
4146
}],
4247
'@typescript-eslint/quotes': ['error', 'single', { avoidEscape: true }],
4348
'@typescript-eslint/no-extra-semi': ['error'],
@@ -64,35 +69,41 @@ module.exports = {
6469
'no-useless-escape': 'off',
6570
'no-inner-declarations': 'off',
6671

72+
// Overrides
6773
'@typescript-eslint/no-non-null-assertion': 'warn',
6874
'@typescript-eslint/prefer-regexp-exec': 'warn',
6975
'@typescript-eslint/no-unused-vars': ['warn', { 'argsIgnorePattern': '^_' }],
7076
'@typescript-eslint/no-explicit-any': 'warn',
71-
'@typescript-eslint/interface-name-prefix': 'warn',
77+
'@typescript-eslint/no-unsafe-argument': 'warn',
78+
'@typescript-eslint/no-unsafe-return': 'warn',
79+
'@typescript-eslint/no-unsafe-member-access': 'warn',
80+
'@typescript-eslint/no-unsafe-assignment': 'warn',
81+
'@typescript-eslint/restrict-template-expressions': 'warn',
82+
'@typescript-eslint/no-unsafe-call': 'warn',
7283

73-
"jsdoc/check-access": 'warn',
74-
"jsdoc/check-alignment": 'warn',
75-
"jsdoc/check-param-names": 'warn',
76-
"jsdoc/check-property-names": 'warn',
77-
"jsdoc/check-tag-names": ['warn', {definedTags: ['category']}],
78-
"jsdoc/check-types": 'warn',
79-
"jsdoc/empty-tags": 'warn',
80-
"jsdoc/implements-on-classes": 'warn',
81-
"jsdoc/multiline-blocks": 'warn',
82-
"jsdoc/newline-after-description": 'warn',
83-
"jsdoc/no-multi-asterisks": 'warn',
84-
"jsdoc/require-param-description": 'warn',
85-
"jsdoc/require-param-name": 'warn',
86-
"jsdoc/require-param-type": 'warn',
87-
"jsdoc/require-property-description": 'warn',
88-
"jsdoc/require-property-name": 'warn',
89-
"jsdoc/require-property-type": 'warn',
90-
"jsdoc/require-returns-check": 'warn',
91-
"jsdoc/require-returns-description": 'warn',
92-
"jsdoc/require-returns-type": 'warn',
93-
"jsdoc/require-yields-check": 'warn',
94-
"jsdoc/valid-types": 'warn',
95-
"jsdoc/require-jsdoc": ['warn', {
84+
'jsdoc/check-access': 'warn',
85+
'jsdoc/check-alignment': 'warn',
86+
'jsdoc/check-param-names': 'warn',
87+
'jsdoc/check-property-names': 'warn',
88+
'jsdoc/check-tag-names': ['warn', { definedTags: ['category', 'internal'] }],
89+
'jsdoc/check-types': 'warn',
90+
'jsdoc/empty-tags': 'warn',
91+
'jsdoc/implements-on-classes': 'warn',
92+
'jsdoc/multiline-blocks': 'warn',
93+
'jsdoc/tag-lines': 'warn',
94+
'jsdoc/no-multi-asterisks': 'warn',
95+
'jsdoc/require-param-description': 'warn',
96+
'jsdoc/require-param-name': 'warn',
97+
'jsdoc/require-param-type': 'warn',
98+
'jsdoc/require-property-description': 'warn',
99+
'jsdoc/require-property-name': 'warn',
100+
'jsdoc/require-property-type': 'warn',
101+
'jsdoc/require-returns-check': 'warn',
102+
'jsdoc/require-returns-description': 'warn',
103+
'jsdoc/require-returns-type': 'warn',
104+
'jsdoc/require-yields-check': 'warn',
105+
'jsdoc/valid-types': 'warn',
106+
'jsdoc/require-jsdoc': ['warn', {
96107
require: {
97108
ArrowFunctionExpression: true,
98109
ClassDeclaration: true,
@@ -117,4 +128,4 @@ module.exports = {
117128
}
118129
},
119130
],
120-
};
131+
}

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Bug report
2+
description: Is something not working? Report a bug to help us improve.
3+
title: "[Bug]: "
4+
labels: [bug]
5+
body:
6+
- type: textarea
7+
id: describe-bug
8+
attributes:
9+
label: Description
10+
description: Describe what happens, and specify the exact steps to reproduce the problem. If we can't recreate the issue, we'll close it down.
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: screenshots
15+
attributes:
16+
label: Video or screenshots
17+
description: Add a screenshot or a short video that clearly illustrates the problem.
18+
- type: input
19+
id: demo
20+
attributes:
21+
label: Demo
22+
description: Add a link to a demo that will let us reproduce the bug. Use StackBlitz, CodeSandbox, CodePen, JSFiddle, or any other online sandbox.
23+
validations:
24+
required: true
25+
- type: input
26+
id: hf-version
27+
attributes:
28+
label: HyperFormula version
29+
description: Which version of HyperFormula are you using?
30+
validations:
31+
required: true
32+
- type: input
33+
id: framework
34+
attributes:
35+
label: Your framework
36+
description: What framework are you using? For example, React 16.0, Angular v15 or Vue 3.
37+
- type: input
38+
id: environment
39+
attributes:
40+
label: Your environment
41+
description: What's your browser and operating system? For example, Chrome 90 on macOS 11.3.
42+
validations:
43+
required: true
44+
- type: markdown
45+
attributes:
46+
value: |
47+
Thank you for taking the time to report the issue! ❤️

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
contact_links:
2+
- name: Feature requests and questions
3+
url: https://github.com/handsontable/hyperformula/discussions
4+
about: Start a new discussion about your idea.

.github/ISSUE_TEMPLATE/default_template.md

Lines changed: 0 additions & 30 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/documentation.md

Lines changed: 0 additions & 20 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Documentation improvement
2+
description: Suggest an improvement to the docs.
3+
labels: [docs]
4+
body:
5+
- type: input
6+
id: link
7+
attributes:
8+
label: Page URL
9+
description: Which page are you referring to?
10+
placeholder: https://hyperformula.handsontable.com/…
11+
- type: textarea
12+
id: improvement
13+
attributes:
14+
label: Improvement description
15+
- type: markdown
16+
attributes:
17+
value: |
18+
Thank you for contributing by creating this issue! ❤️

.github/ISSUE_TEMPLATE/new_function.md

Lines changed: 0 additions & 17 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,27 @@ and this project adheres to
88

99
## [Unreleased]
1010

11+
## [2.5.0] - 2023-05-29
12+
13+
### Added
14+
15+
- Added a new function: ADDRESS.
16+
[#1221](https://github.com/handsontable/hyperformula/issues/1221)
17+
- Added a new function: HYPERLINK.
18+
[#1215](https://github.com/handsontable/hyperformula/issues/1215)
19+
- Added a new function: IFS.
20+
[#1157](https://github.com/handsontable/hyperformula/issues/1157)
21+
22+
### Changed
23+
24+
- Optimized the `updateConfig()` method to rebuild HyperFormula only when the new configuration is different from the old one.
25+
[#1251](https://github.com/handsontable/hyperformula/issues/1251)
26+
27+
### Fixed
28+
29+
- Fixed the SEARCH function to be case-insensitive regardless of HyperFormula's configuration.
30+
[#1225](https://github.com/handsontable/hyperformula/issues/1225)
31+
1132
## [2.4.0] - 2023-04-24
1233

1334
### Added

docs/guide/advanced-usage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ console.log(winningTeam)
122122
## Demo
123123

124124
<iframe
125-
src="https://codesandbox.io/embed/github/handsontable/hyperformula-demos/tree/2.4.x/advanced-usage?autoresize=1&fontsize=11&hidenavigation=1&theme=light&view=preview"
125+
src="https://codesandbox.io/embed/github/handsontable/hyperformula-demos/tree/2.5.x/advanced-usage?autoresize=1&fontsize=11&hidenavigation=1&theme=light&view=preview"
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"

0 commit comments

Comments
 (0)