react-wordcloud
Version:
Simple React + D3 wordcloud component with powerful features.
158 lines (97 loc) • 8.03 kB
Markdown
# Changelog
## [1.2.7](https://github.com/chrisrzhou/react-wordcloud/compare/v1.2.7...v1.2.6) (2020-08-07)
- Internal code cleanup (detypscriptify source code)
- Update docs, readme and other configs.
### 'Breaking' Changes: Tooltip CSS and Typings
Decoupled the `tippy` CSS from the package. This will improve future versioning of the project, and is also the recommendation set by the `tippy` project. Tooltips with this new versions might look off without CSS styles, but not considering this a breaking change because you can easily add the following imports to address the issue:
```js
import 'tippy.js/dist/tippy.css';
import 'tippy.js/animations/scale.css'
```
Some rarely used typings are no longer exported (e.g. `Enter`, `Spiral`, `WordToStringCallback`, `WordEventCallback`, `MinMaxPair`, `AttributeValue`). While this is a breaking change, taking the liberty to assume this as non-breaking in an effort to constrain the exposed typings for improved future versioning of the project.
## [1.2.6](https://github.com/chrisrzhou/react-wordcloud/compare/v1.2.6...v1.2.5) (2020-07-21)
- Correctly expose typings that were missing in `v1.2.5`.
- Fix docs deploy by adding `.node-version`.
## [1.2.5](https://github.com/chrisrzhou/react-wordcloud/compare/v1.2.5...v1.2.4) (2020-07-21)
`v1.2.4` is a working build, but it accidentally shipped `.docz` cache to the NPM registry... Fix this by explicitly setting `files` in `package.json`.
## [1.2.4](https://github.com/chrisrzhou/react-wordcloud/compare/v1.2.4...v1.2.3) (2020-07-21)
- Added `...rest` props (@davidjb)
- Added `tooltipOptions` to `options` (@davidjb) to configure `tippy` tooltips.
- Added `svgAttributes` and `textAttributes` to `options` to configure attributes on `svg` and `text` nodes.
- Development: updated dependencies, XO lint rules, use absolute imports with `~`, spaces over tabs, `microbundle` over `rollup`, `npm` over `yarn`.
- Updated docs
## [1.2.3](https://github.com/chrisrzhou/react-wordcloud/compare/v1.2.3...v1.2.2) (2020-05-02)
Add `randomSeed` option to provide and control a seed for the random function when `deterministic` option is set to `true`.
## [1.2.2](https://github.com/chrisrzhou/react-wordcloud/compare/v1.2.2...v1.2.1) (2020-03-14)
### Typescript fix
Fix incorrect `'linearl'` literal type value for `Scale`.
## [1.2.1](https://github.com/chrisrzhou/react-wordcloud/compare/v1.2.0...v1.2.1) (2020-03-13)
Cleanup and fix `index.d.ts`.
## [1.2.0](https://github.com/chrisrzhou/react-wordcloud/compare/v1.1.1...v1.2.0) (2020-03-07)
This release is largely internal refactoring and updating dependencies, as well as 'de-typescripting' the codebase
### API additions:
- Improve rendering performance for larger clouds and multiple cloud instances with the `options.enableOptimizations` flag.
### Small Typescript breaking changes:
- `Spiral` and `Scale` enums are removed in favor of whitelisted string values. As part of moving to ambient declarations, these enums will not materialize in the compiled code.
### Internal code changes:
- Update underlying dependencies via `yarn upgrade --latest`. Remove a ton of unneeded dependencies and correctly move `@types/*` deps to `devDependencies`.
- Remove custom `eslint`, `prettier` config and use `xo` for a simpler linting setup.
- Add `husky` pre-push hook.
- Update and improve documentation with `docz@2.2.0`. Improved various doc pages (`Common Issues`) and added the `Optimizations` and `Home` page
- Take the approach in various projects (e.g. [three](https://github.com/mrdoob/three.js/)) to "de-typescript" the codebase and use `*.d.ts` files for typing in development. Continue to expose Typescript types to consumers.
## [1.1.1](https://github.com/chrisrzhou/react-wordcloud/compare/v1.1.0...v1.1.1) (2019-09-27)
- Update dependencies and fix `eval` error in `seedrandom` package ([link](https://github.com/davidbau/seedrandom/issues/64)).
## [1.1.0](https://github.com/chrisrzhou/react-wordcloud/compare/v1.0.8...v1.1.0) (2019-09-08)
- Update dev configs + dependencies. Check with `yarn audit`.
- Add documentation for `Options` and `Callbacks` props.
- Remove ignored Typescript errors, and fix typings in `render.ts`.
- Simplify code in `hooks.ts`.
- Simplify typed code.
- Expose `MouseEvent` object in `onWordClick`, `onWordMouseOut` and `onWordMouseOver` callbacks.
### Minor Typescript API Changes
- Exported Typescript types for component props have been changed slightly due to refactoring.
## [1.0.8](https://github.com/chrisrzhou/react-wordcloud/compare/v1.0.7...v1.0.8) (2019-06-08)
Correctly type optional `callbacks` and `options` props. Remove enums in favor of simpler union types.
## [1.0.7](https://github.com/chrisrzhou/react-wordcloud/compare/v1.0.6...v1.0.7) (2019-06-08)
Fix emitted types.
## [1.0.6](https://github.com/chrisrzhou/react-wordcloud/compare/v1.0.5...v1.0.6) (2019-06-08)
- Support deterministic behavior for randomn layout and colors by configuring the `options.deterministic` field. This makes testing and creating fixed wordcloud views convenient.
- Expose Typescript types.
- Use various `d3-*` packages instead of importing `d3` entirely.
- Update `docz` and docs. Add Codesandbox examples.
- Move prettier rules from `.eslintrc.js` to `.prettierrc.js`. This supports better formatting in MDX files with VSCode.
## [1.0.5](https://github.com/chrisrzhou/react-wordcloud/compare/v1.0.4...v1.0.5) (2019-03-16)
### New
- Added `FAQ` page explaining common 'bugs', and updated `Options` page with more examples
- Handled recursive attempts to layout 'bad' clouds. Provide a console warning when max attempts have been made to layout 'bad' clouds.
- Changed default `minSize` and `options.fontSizes` value to make things less buggy.
### Bug fixes
- Fixed a bug where `rotationAngles` was mutated.
## [1.0.4](https://github.com/chrisrzhou/react-wordcloud/compare/v1.0.3...v1.0.4) (2019-03-16)
Improve and simplify React hooks code after detailed understanding of: https://overreacted.io/a-complete-guide-to-useeffect/
### Bug fixes
- Handle words that don't fit in the boundary of the SVG by applying a font-size scale factor
- Handle large number of words
## [1.0.3](https://github.com/chrisrzhou/react-wordcloud/compare/v1.0.2...v1.0.3) (2019-03-14)
### Bug fixes
- https://github.com/chrisrzhou/react-wordcloud/issues/5
- https://github.com/chrisrzhou/react-wordcloud/issues/11
Tooltip bug is fixed by programmatically creating and destroying the `tippy` instance. Word implosion and missing words are related to https://github.com/jasondavies/d3-cloud/issues/36, and is fixed with a recursive solution.
## [1.0.2](https://github.com/chrisrzhou/react-wordcloud/compare/v1.0.1...v1.0.2) (2019-03-06)
Thanks to @warlock for transferring the NPM `react-wordcloud` to me!
Updating `package.json` and pushing package to NPM.
## [1.0.1](https://github.com/chrisrzhou/react-wordcloud/compare/v1.0.0...v1.0.1) (2019-03-06)
Change `word.count` to `word.key` because the weight of the word could be a float.
## [1.0.0](https://github.com/chrisrzhou/react-wordcloud/compare/v0.1.1...v1.0.0) (2019-03-03)
### Features
As part of learning and ramping up with better JS tools and frameworks, v1.0.0 is a modern rewrite that focuses on:
- Simplifying and decoupling React/D3 code with React hooks.
- Document examples with `docz`.
- Typescript support.
- Minimize build size with `rollup` and `bundlesize`.
### Breaking Changes
Compared to v0, there are a number of breaking changes.
- **React Dependency**: You need at least `react^16.8.3` installed to access hook functionality.
- **Features**: Most features of the component still remain the same (e.g. tooltips, min/max font size, responsive).
- **Props**: Many v0 props have been merged into `options` and `callbacks` with potentially different names.
- **Development**: Previous developments were done in `flow` and a lot of dev dependencies have changed. The scripts in `package.json` should help handle most of these changes.