13.1.6 • Published 5 months ago

@sonatype/react-shared-components v13.1.6

Weekly downloads
1,915
License
EPL-2.0
Repository
github
Last release
5 months ago

Sonatype's React Shared Components

This is the Sonatype shared library of React UI components and related JavaScript modules. This repo builds an npm package exposing the shared components for use in other projects. Additionally this repo contains a "gallery" application which demonstrates the appropriate usage of the components as well as Sonatype's standard CSS styles.

This library is not intended for direct public usage. It is intended for usage internally within Sonatype products, and has been made open-source so that it may be used within Sonatype's other open-source products.

Goals

  • Use technologies that lend themselves to clear, stable, self-documenting APIs

    • Example: TypeScript
  • Clearly document the usage of the components via API typings, code comments, and gallery examples

  • Although the components are written in TypeScript, plain JavaScript projects should still receive every reasonable benefit.

    • Example: React propTypes allow runtime type checking for react component props. In a fully TypeScript environment, this feature would be fairly redundant with TypeScript's compile-time type checking. However, as the components may be used in non-TypeScript projects, react propType declarations should still be provided in addition to the TypeScript typings
  • Export components in formats that are widely usable, as well as in formats that provide maximum benefit for projects built in similar technologies

    • Example: Components styles are written in scss, and the original scss files are to be included in the build output so that a consuming project may take full scss advantage of them. However, a compiled CSS file for the entire library is also to be included in the output so that non-scss based projects can still easily pull in the component styles.
    • Example 2: Components are written in typescript but exported as JavaScript plus TS definition (.d.ts) files, allowing consuming projects to be written in either language
  • Export components in a manner which primarily assumes the usage of an ES6 module system, and which works efficiently with such a system

    • Example: A project which only uses a single component from this repo should not have to jump through hoops to avoid building the entire library into their bundle
  • The gallery's own infrastructure should serve as an example of how a react-based application may be set up

  • Components should be written in a way that is architecturally flexible. Particularly, components should be written to be stateless first and foremost, to allow their usage in Redux and similar workflows. Once the stateless component is written, a stateful wrapper may also be written as a convenience for more traditional non-redux architectures.

    • Example: The base NxCheckbox component should not have a field that actually tracks whether it is checked and which gets flipped in response to user input. It should simply render the checked state that it receives as a prop, and call a callback when it is toggled. Then, a second component can be written as a stateful wrapper around the first which tracks the checked state and flips it in response to user input. Consumers of this library would be free to use either implementation depending on their architectural needs.
  • Components should generally be able to receive a ref, so that they can be used with things like the Material-UI tooltip library

  • For components that have complex state needs, any reusable state management should be separated out into pure functions, exported separately, which are suitable for use in a redux reducer. The stateful version of the component would then ideally be a wrapper around those same pure functions in conjunction with the stateless component

  • Include highly reusable non-react code (such as redux utilities and validation handling strategies) as the need arises

  • Import things where they are used, rather than in a single top-level imports file. This allows consuming code to pull in modules individually, with the assurance that they will bring all of their dependencies with them. This applies to both JS/TS files and SCSS files.

  • Provide solid automated testing of the reusable components including unit tests and possibly visual tests of the gallery

Build layout

The RSC code is split into two separate codebases: the library itself which lives in lib/, and the gallery, which lives in gallery/

RSC library layout

(All paths here relative to lib/)

  • Source code lives in src/. Typescript components live within src/components

    • The main entrypoint for the library is src/index.ts (which compiles to index.js). All react components are re-exported from this file. Consuming projects should import the components here, not from their individual source files.
  • Static assets live in src/assets, which is copied wholesale to dist/assets and thus included in the package

  • scss files are also all copied into dist, preserving their directory structure and thus their relative paths to components, static assets, and each other. This facilitates a consuming project using its own scss build and provides a sane starting point for relative path references

  • Icons are intended to be done using SVG, though an icon font would also work (the same way as any other static asset). SVG icons will be encapsulated as react components that render the icon's SVG nodes inline in the document. This provides maximum power to style the icons. The inline rendering may be mildly duplicative, compared to a separate SVG "sprite" in conjunction with SVG <use> tags, but the latter setup can't really be accomplished without making far more assumptions about the consuming project's tooling.

    • Font Awesome 5 provides icons via @fortawesome/react-fontawesome, @fortawesome/free-solid-svg-icons, and similar packages
    • Custom SVG icons can be converted to react components either manually or via tooling like svgr
  • Styles have the following directory structure
    • Component-specific stylesheets live alongside their respective component ts files
    • Non-emitting scss partials, such as files that only define variables and mixins, are in src/scss-shared. Because they are non-emitting, these files can be imported freely and should be imported where needed (ie if you need a mixin in a given file, don't just assume it's already been imported elsewhere, go ahead and import it yourself)
    • Styles which form a foundation which other stylesheets assume is already in place go in src/base-styles. Within this directory is a _base.scss file which serves as a centralized import. Any other files created in this directory should be imported by that file, and that file is then imported by index.ts so that any use of the library will pick it up
      • All "non-component" styles are also considered to be base styles, so that future components can make use of them without needing to re-arrange things
  • A precompiled stylesheet including all of the styles is built as react-shared-components.css. The build of this file is performed via webpack using an entrypoint of src/react-shared-components-css.ts, which has typescript imports of index.ts (in order to get the base and component styles). URL references within react-shared-components.css are correct to its location within the built package relative to the things being referenced.

Building

Required software

Node 10.16.0 npm 6.7.0 yarn 1.21.1

Installation of Dependencies

In the lib/ directory, run yarn install

Build

For a one-time build, npm run build in the lib/ directory.

When developing, you probably want to use npm run watch instead.

Running Unit Tests

Run the following commands in the lib/ directory

Single run

npm run test

Watch in console

npm run test-watch

Watch in console, debug in browser

Jest runs in node, as opposed to in a browser like some other test setups. This makes debugging of tests a little bit more difficult.

To debug the unit tests, take the following steps

  • Run npm run test-watch-debug in the console
  • Go to chrome://inspect in Google Chrome
  • Find and connect to the node process in Chrome by clicking Inspect in Chrome (this will open up a Chrome Dev Tools window)
  • When Dev Tools is first opened, it will be stopped at a breakpoint in Jest. Hit play and you will notice in your console window that Jest is running the tests. Sometimes Jest outsmarts itself and does not automatically run the tests, in which case you may have to hit 'a' in your console window to run the tests.
  • Once the tests are done running the first time, you can find your test files in the dev tools file list, and then debug as normal. Be aware of the test filtering options in the console which can cut down on extraneous breakpoint hits.

Component Gallery

You can view components in your browser by running the gallery.

Installation

First, ensure the component library is built using npm run build or npm run watch from the lib/ dir. Then, from gallery/, run yarn install.

Running the Gallery

From gallery/, run npm start.

To view the gallery, point your browser to http://localhost:4043/.

PR commenting protocol

Here are the general rules to follow when commenting on PRs for this repo:

  • When leaving comments on a PR, leave them all as individual comments as opposed to "Starting a Review". This is because some people prefer to receive each comment as a separate email.
  • When responding to a comment, always blockquote what you are responding to (even if it is the entire previous comment). This allows the emails to have the necessary conversation context that they otherwise lack
  • When you as the PR author make a change in response to a comment, respond to that comment and include the commit hash where you made the fix. Do not resolve the thread
  • The originator of a thread should be the person to mark that thread resolved, typically after reviewing the commit referenced in the response comment from the PR author and finding it acceptable.
  • Unless stated otherwise by the commenter, or clearly not meant to be responded to, all comments on a PR are expected to be addressed before it is merged. Sometimes it is alright for a reviewer to approve the PR before all of their comments are addressed, but generally only when those comments are expected to be easily addressable without further discussion (for example simple formatting issues). Even in this case though, the comments should still be addressed post-approval

Continuous Integration and Releases

This library has CI builds set up for both master and its dev branches. Builds of the master branch automatically get released as new versions. As part of this, dev branch builds have enforcement that they must increment the version number from what is on master - this way, when the branch is merged, a new release can be made using the human-specified semantic version from the branch.

To increment the version on your branch, use the following command in the lib/ directory: npm version --no-git-tag-version <new_version>. This will ensure that the version number gets updated in all of the appropriate places (both package.json files and both package-lock.json files). Do not create or push git tags for versions, as the master CI build does that.

13.1.6

5 months ago

12.16.15

5 months ago

13.0.0

9 months ago

13.0.1

9 months ago

12.16.9

9 months ago

12.16.8

9 months ago

12.16.5

10 months ago

12.16.4

10 months ago

12.16.7

10 months ago

12.16.6

10 months ago

13.1.5

6 months ago

13.1.3

6 months ago

13.1.1

7 months ago

13.1.2

6 months ago

13.1.0

8 months ago

12.16.11

9 months ago

12.16.12

7 months ago

12.16.13

6 months ago

12.16.14

6 months ago

12.16.10

9 months ago

12.16.3

10 months ago

12.12.3

12 months ago

12.12.2

1 year ago

12.13.0

12 months ago

12.14.7

12 months ago

12.14.6

12 months ago

12.14.3

12 months ago

12.14.2

12 months ago

12.14.5

12 months ago

12.14.4

12 months ago

12.14.1

12 months ago

12.14.0

12 months ago

12.15.2

12 months ago

12.15.1

12 months ago

12.15.4

11 months ago

12.15.3

12 months ago

12.15.0

12 months ago

12.16.1

11 months ago

12.16.0

11 months ago

12.16.2

11 months ago

12.11.9

1 year ago

12.11.6

1 year ago

12.11.5

1 year ago

12.11.8

1 year ago

12.11.7

1 year ago

12.11.2

1 year ago

12.11.1

1 year ago

12.11.4

1 year ago

12.11.3

1 year ago

12.11.0

1 year ago

12.12.1

1 year ago

12.12.0

1 year ago

12.11.12

1 year ago

12.11.10

1 year ago

12.11.11

1 year ago

12.10.33

1 year ago

12.10.31

1 year ago

12.10.32

1 year ago

12.10.26

1 year ago

12.10.27

1 year ago

12.10.24

1 year ago

12.10.25

1 year ago

12.10.22

1 year ago

12.10.23

1 year ago

12.10.20

1 year ago

12.10.21

1 year ago

12.10.28

1 year ago

12.10.29

1 year ago

12.10.30

1 year ago

12.10.19

1 year ago

12.10.18

1 year ago

12.10.15

1 year ago

12.10.16

1 year ago

12.10.13

1 year ago

12.10.14

1 year ago

12.10.11

1 year ago

12.10.12

1 year ago

12.10.17

1 year ago

12.10.7

1 year ago

12.10.6

1 year ago

12.10.9

1 year ago

12.10.8

1 year ago

12.10.3

1 year ago

12.10.2

1 year ago

12.10.5

1 year ago

12.10.4

1 year ago

12.10.1

1 year ago

12.10.0

1 year ago

12.5.20

1 year ago

12.5.19

1 year ago

12.5.18

1 year ago

12.10.10

1 year ago

12.6.0

1 year ago

12.8.1

1 year ago

12.8.2

1 year ago

12.8.3

1 year ago

12.7.0

1 year ago

12.7.1

1 year ago

12.7.2

1 year ago

12.7.3

1 year ago

12.7.4

1 year ago

12.9.0

1 year ago

12.9.1

1 year ago

12.9.2

1 year ago

11.5.20

2 years ago

11.5.21

2 years ago

11.5.10

2 years ago

11.5.11

2 years ago

11.5.12

2 years ago

11.5.13

2 years ago

11.5.14

2 years ago

11.5.15

2 years ago

11.5.16

2 years ago

11.5.17

2 years ago

11.5.19

2 years ago

12.0.3

2 years ago

12.0.4

2 years ago

12.0.5

2 years ago

12.0.6

2 years ago

12.0.0

2 years ago

12.0.1

2 years ago

12.0.2

2 years ago

12.2.1

2 years ago

12.2.0

2 years ago

12.5.16

1 year ago

12.5.15

1 year ago

12.5.14

1 year ago

12.5.13

1 year ago

12.5.17

1 year ago

12.5.12

1 year ago

12.5.11

1 year ago

12.1.0

2 years ago

12.4.3

1 year ago

12.4.0

1 year ago

12.4.1

1 year ago

11.6.0

2 years ago

12.3.4

2 years ago

12.3.5

2 years ago

12.3.6

2 years ago

12.3.7

2 years ago

12.3.0

2 years ago

12.3.1

2 years ago

12.3.2

2 years ago

12.3.3

2 years ago

11.5.9

2 years ago

11.8.0

1 year ago

11.8.1

1 year ago

12.5.2

1 year ago

12.5.3

1 year ago

12.5.4

1 year ago

12.5.5

1 year ago

12.5.0

1 year ago

12.5.1

1 year ago

11.7.0

1 year ago

11.7.1

1 year ago

12.5.6

1 year ago

12.5.7

1 year ago

12.5.8

1 year ago

12.5.9

1 year ago

11.0.0

2 years ago

11.2.2

2 years ago

11.2.0

2 years ago

11.2.1

2 years ago

11.1.5

2 years ago

11.1.6

2 years ago

11.1.3

2 years ago

11.1.4

2 years ago

11.1.7

2 years ago

11.1.1

2 years ago

11.1.2

2 years ago

11.1.0

2 years ago

11.4.2

2 years ago

11.4.3

2 years ago

11.4.0

2 years ago

11.4.1

2 years ago

11.4.6

2 years ago

11.4.4

2 years ago

11.4.5

2 years ago

11.3.1

2 years ago

11.3.2

2 years ago

11.3.0

2 years ago

10.7.1

2 years ago

11.5.7

2 years ago

11.5.1

2 years ago

11.5.2

2 years ago

11.5.0

2 years ago

11.5.5

2 years ago

11.5.6

2 years ago

11.5.3

2 years ago

11.5.4

2 years ago

10.6.0

2 years ago

10.5.5

2 years ago

10.7.0

2 years ago

10.2.3

2 years ago

10.2.4

2 years ago

10.2.5

2 years ago

10.2.6

2 years ago

10.2.7

2 years ago

10.2.8

2 years ago

10.2.9

2 years ago

10.2.0

2 years ago

10.2.1

2 years ago

10.2.2

2 years ago

10.2.12

2 years ago

10.2.10

2 years ago

10.2.11

2 years ago

10.1.6

2 years ago

10.4.1

2 years ago

10.4.2

2 years ago

10.4.3

2 years ago

10.4.4

2 years ago

10.4.5

2 years ago

10.4.6

2 years ago

10.4.7

2 years ago

10.4.8

2 years ago

10.4.0

2 years ago

10.4.9

2 years ago

10.3.0

2 years ago

10.5.0

2 years ago

10.5.1

2 years ago

10.5.2

2 years ago

10.5.3

2 years ago

10.5.4

2 years ago

10.4.11

2 years ago

10.4.10

2 years ago

10.0.7

2 years ago

10.0.8

2 years ago

10.1.4

2 years ago

10.1.5

2 years ago

10.1.0

2 years ago

10.1.1

2 years ago

10.1.2

2 years ago

10.1.3

2 years ago

10.0.5

2 years ago

10.0.6

2 years ago

10.0.0

2 years ago

10.0.1

2 years ago

10.0.2

2 years ago

10.0.3

2 years ago

10.0.4

2 years ago

9.21.0

2 years ago

9.20.3

2 years ago

9.20.0

2 years ago

9.20.1

2 years ago

9.20.2

2 years ago

9.19.0

2 years ago

9.18.0

2 years ago

9.17.0

2 years ago

9.17.1

2 years ago

9.17.2

2 years ago

9.16.0

2 years ago

9.16.1

2 years ago

9.16.2

2 years ago

9.15.1

2 years ago

9.15.2

2 years ago

9.15.3

2 years ago

9.15.0

2 years ago

9.14.2

2 years ago

9.14.3

2 years ago

9.14.4

2 years ago

9.14.0

2 years ago

9.14.1

2 years ago

9.13.3

2 years ago

9.13.4

2 years ago

9.13.5

2 years ago

9.13.6

2 years ago

9.12.0

2 years ago

9.12.1

2 years ago

9.11.5

2 years ago

9.11.3

2 years ago

9.11.4

2 years ago

9.13.0

2 years ago

9.13.1

2 years ago

9.13.2

2 years ago

9.8.0

2 years ago

9.9.0

2 years ago

9.11.1

2 years ago

9.11.2

2 years ago

9.11.0

2 years ago

9.10.0

2 years ago

9.10.1

2 years ago

9.5.9

2 years ago

9.5.8

2 years ago

9.6.3

2 years ago

9.6.2

2 years ago

9.6.1

2 years ago

9.6.0

2 years ago

9.7.2

2 years ago

9.7.1

2 years ago

9.7.0

2 years ago

9.5.15

2 years ago

9.5.16

2 years ago

9.5.13

2 years ago

9.5.14

2 years ago

9.5.17

2 years ago

9.5.12

2 years ago

9.5.10

2 years ago

9.4.2

2 years ago

9.4.1

2 years ago

9.4.0

2 years ago

9.5.5

2 years ago

9.5.4

2 years ago

9.5.3

2 years ago

9.5.2

2 years ago

9.5.1

2 years ago

9.5.0

2 years ago

9.5.7

2 years ago

9.5.6

2 years ago

9.1.13

2 years ago

9.1.14

2 years ago

9.1.10

2 years ago

9.1.11

2 years ago

9.1.12

2 years ago

9.1.9

2 years ago

9.1.8

2 years ago

9.3.2

2 years ago

9.3.1

2 years ago

9.1.7

3 years ago

9.1.6

3 years ago

9.1.5

3 years ago

9.1.4

3 years ago

9.1.3

3 years ago

9.1.2

3 years ago

9.1.0

3 years ago

9.0.13

3 years ago

9.0.12

3 years ago

9.0.15

3 years ago

9.0.14

3 years ago

9.0.11

3 years ago

9.0.10

3 years ago

8.10.6

3 years ago

8.10.5

3 years ago

8.10.7

3 years ago

9.0.9

3 years ago

9.0.8

3 years ago

9.0.7

3 years ago

9.0.6

3 years ago

9.0.5

3 years ago

9.0.4

3 years ago

9.0.3

3 years ago

8.11.1

3 years ago

8.11.0

3 years ago

8.11.3

3 years ago

8.11.2

3 years ago

8.11.4

3 years ago

9.0.2

3 years ago

9.0.1

3 years ago

9.0.0

3 years ago

8.8.9

3 years ago

8.8.8

3 years ago

8.10.2

3 years ago

8.10.1

3 years ago

8.10.3

3 years ago

8.9.0

3 years ago

8.9.2

3 years ago

8.9.1

3 years ago

8.9.4

3 years ago

8.9.3

3 years ago

8.9.6

3 years ago

8.9.5

3 years ago

8.7.8

3 years ago

8.8.1

3 years ago

8.8.0

3 years ago

8.8.5

3 years ago

8.8.4

3 years ago

8.8.7

3 years ago

8.8.6

3 years ago

8.7.4

3 years ago

8.7.3

3 years ago

8.7.6

3 years ago

8.7.5

3 years ago

8.7.7

3 years ago

8.7.2

3 years ago

8.7.1

3 years ago

8.7.0

3 years ago

8.6.1

3 years ago

8.6.0

3 years ago

8.5.0

3 years ago

8.4.1

3 years ago

8.4.0

3 years ago

8.3.0

3 years ago

8.2.6

3 years ago

8.2.5

3 years ago

8.2.3

3 years ago

8.2.4

3 years ago

8.2.2

3 years ago

8.1.0

3 years ago

8.2.1

3 years ago

8.0.4

3 years ago

8.0.3

3 years ago

7.8.8

3 years ago

8.0.1

3 years ago

8.0.2

3 years ago

7.8.7

3 years ago

7.8.6

3 years ago

7.8.5

3 years ago

7.8.4

3 years ago

7.8.3

3 years ago

7.8.2

3 years ago

7.7.1

3 years ago

7.7.2

3 years ago

7.8.0

3 years ago

7.8.1

3 years ago

7.6.1

3 years ago

7.6.0

3 years ago

7.7.0

3 years ago

7.5.5

3 years ago

7.5.4

3 years ago

7.5.3

3 years ago

7.5.2

3 years ago

7.5.1

3 years ago

7.4.7

3 years ago

7.4.6

3 years ago

7.4.5

3 years ago

7.5.0

3 years ago

7.4.4

3 years ago

7.4.3

3 years ago

7.4.2

3 years ago

7.4.1

3 years ago

7.4.0

3 years ago

7.3.4

3 years ago

7.3.1

3 years ago

7.3.0

3 years ago

7.3.3

3 years ago

7.3.2

3 years ago

7.2.6

3 years ago

7.2.5

3 years ago

7.2.4

3 years ago

7.2.3

3 years ago

7.2.2

3 years ago

7.2.1

3 years ago

7.2.0

3 years ago

7.1.6

3 years ago

7.1.5

3 years ago

7.1.4

3 years ago

7.1.3

3 years ago

7.1.2

3 years ago

7.0.14

3 years ago

7.1.1

3 years ago

7.1.0

3 years ago

7.0.13

3 years ago

7.0.12

3 years ago

7.0.11

3 years ago

7.0.10

3 years ago

7.0.9

3 years ago

7.0.8

3 years ago

7.0.7

3 years ago

7.0.6

3 years ago

7.0.5

3 years ago

7.0.3

3 years ago

7.0.2

3 years ago

7.0.1

3 years ago

7.0.0

3 years ago

6.4.3

3 years ago

6.4.2

3 years ago

6.4.4

3 years ago

6.4.1

3 years ago

6.3.0

3 years ago

6.2.2

3 years ago

6.2.0

3 years ago

6.1.0

3 years ago

6.0.1

3 years ago

6.0.0

3 years ago

5.7.0

3 years ago

5.6.4

3 years ago

5.6.2

3 years ago

5.6.1

3 years ago

5.6.0

3 years ago

5.5.1

3 years ago

5.4.1

3 years ago

5.5.0

3 years ago

5.4.0

3 years ago

5.3.1

3 years ago

5.3.0

3 years ago

5.2.1

3 years ago

5.2.0

3 years ago

5.0.0

3 years ago

4.8.1

3 years ago

4.8.2

3 years ago

5.1.1

3 years ago

5.1.0

3 years ago

4.8.0

3 years ago

4.7.3

3 years ago

4.7.2

3 years ago

4.7.1

3 years ago

4.7.0

3 years ago

4.6.0

3 years ago

4.5.0

3 years ago

4.4.7

3 years ago

4.4.6

3 years ago

4.4.5

3 years ago

4.4.4

3 years ago

4.4.3

3 years ago

4.4.2

3 years ago

4.4.1

3 years ago

4.4.0

3 years ago

4.3.7

3 years ago

4.3.6

3 years ago

4.3.5

3 years ago

4.3.4

3 years ago

4.3.3

3 years ago

4.3.2

3 years ago

4.3.1

3 years ago

4.3.0

3 years ago

4.2.0

3 years ago

4.1.1

3 years ago

4.0.0

3 years ago

4.1.0

3 years ago

3.7.1

3 years ago

3.7.2

3 years ago

3.7.0

3 years ago

3.6.2

3 years ago

3.6.1

3 years ago

3.6.0

3 years ago

3.5.2

3 years ago

3.5.1

3 years ago

3.5.0

3 years ago

3.4.4

3 years ago

3.4.3

3 years ago

3.4.2

3 years ago

3.4.0

3 years ago

3.3.11

3 years ago

3.3.10

3 years ago

3.3.9

3 years ago

3.3.8

3 years ago

3.3.7

3 years ago

3.3.6

3 years ago

3.3.5

3 years ago

3.3.4

3 years ago

3.3.3

3 years ago

3.3.2

3 years ago

3.3.1

3 years ago

3.2.2

3 years ago

3.3.0

3 years ago

3.2.1

3 years ago

3.2.0

3 years ago

3.1.4

3 years ago

3.1.3

3 years ago

3.1.2

3 years ago

3.1.1

3 years ago

3.1.0

3 years ago

3.0.0

3 years ago

2.23.2

3 years ago

2.23.1

3 years ago

2.22.1

3 years ago

2.22.0

3 years ago

2.21.1

3 years ago

2.21.0

3 years ago

2.20.1

3 years ago

2.19.0

3 years ago

2.20.0

3 years ago

2.18.1

3 years ago

2.18.2

3 years ago

2.18.0

3 years ago

2.17.4

3 years ago

2.17.2

3 years ago

2.17.3

3 years ago

2.17.1

3 years ago

2.17.0

3 years ago

2.14.3

3 years ago

2.14.1

3 years ago

2.14.2

3 years ago

2.14.0

3 years ago

2.13.3

3 years ago

2.13.2

3 years ago

2.13.0

3 years ago

2.13.1

3 years ago

2.12.0

3 years ago

2.11.1

3 years ago

2.11.0

3 years ago

2.10.0

3 years ago

2.9.16

3 years ago

2.9.15

3 years ago

2.9.14

3 years ago

2.9.12

3 years ago

2.9.13

3 years ago

2.9.10

3 years ago

2.9.11

3 years ago

2.9.9

3 years ago

2.9.8

3 years ago

2.9.4

3 years ago

2.9.6

3 years ago

2.9.5

3 years ago

2.9.3

3 years ago

2.9.2

3 years ago

2.9.1

3 years ago

2.9.0

3 years ago

2.8.1

3 years ago

2.8.0

3 years ago

2.7.2

3 years ago

2.7.1

3 years ago

2.7.0

3 years ago

2.6.4

3 years ago

2.6.3

4 years ago

2.6.0

4 years ago

2.5.2

4 years ago

2.5.3

4 years ago

2.5.0

4 years ago

2.5.1

4 years ago

2.4.3

4 years ago

2.4.2

4 years ago

2.4.1

4 years ago

2.4.0

4 years ago

2.3.2

4 years ago

2.3.4

4 years ago

2.3.3

4 years ago

2.3.0

4 years ago

2.2.1

4 years ago

2.2.2

4 years ago

2.2.0

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.0.7

4 years ago

2.0.8

4 years ago

2.0.6

4 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.6.17

4 years ago

1.6.16

4 years ago

1.6.15

4 years ago

1.6.14

4 years ago

1.6.13

4 years ago

1.6.12

4 years ago

1.6.11

4 years ago

1.6.10

4 years ago

1.6.9

4 years ago

1.6.8

4 years ago

1.6.6

4 years ago

1.6.5

4 years ago

1.6.4

4 years ago

1.6.3

4 years ago

1.6.2

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.6

4 years ago

1.4.5

4 years ago

1.4.4

4 years ago

1.4.3

4 years ago

1.4.2

4 years ago

1.4.0

4 years ago

1.3.1

4 years ago

1.2.21

4 years ago

1.2.18

4 years ago

1.2.19

4 years ago

1.2.20

4 years ago

1.2.16

4 years ago

1.2.17

4 years ago

1.2.15

4 years ago

1.2.14

4 years ago

1.2.13

4 years ago

1.2.12

4 years ago

1.2.11

4 years ago

1.2.10

4 years ago

1.2.8

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.9

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.0.4

4 years ago

1.1.0

4 years ago

0.44.10

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.50.22

4 years ago

0.50.19

4 years ago

0.50.21

4 years ago

0.50.18

4 years ago

0.50.16

4 years ago

0.50.17

4 years ago

0.50.15

4 years ago

0.50.14

4 years ago

0.50.13

4 years ago

0.50.11

4 years ago

0.50.10

4 years ago

0.50.9

4 years ago

0.50.7

4 years ago

0.50.8

4 years ago

0.50.6

4 years ago

0.50.5

4 years ago

0.50.4

4 years ago

0.50.3

4 years ago

0.50.2

4 years ago

0.50.0

4 years ago

0.49.1

4 years ago

0.48.5

4 years ago

0.49.0

4 years ago

0.48.4

4 years ago

0.48.3

4 years ago

0.48.2

4 years ago

0.48.0

4 years ago

0.48.1

4 years ago

0.47.3

4 years ago

0.47.1

4 years ago

0.47.0

4 years ago

0.46.3

4 years ago

0.46.2

4 years ago

0.46.0

4 years ago

0.46.1

4 years ago

0.45.30

4 years ago

0.45.29

4 years ago

0.45.16

4 years ago

0.45.17

4 years ago

0.45.18

4 years ago

0.45.24

4 years ago

0.45.25

4 years ago

0.45.26

4 years ago

0.45.27

4 years ago

0.45.28

4 years ago

0.45.15

4 years ago

0.45.13

4 years ago

0.45.14

4 years ago

0.45.12

4 years ago

0.45.11

4 years ago

0.45.10

4 years ago

0.45.9

4 years ago

0.45.7

4 years ago

0.45.8

4 years ago

0.45.6

4 years ago

0.45.5

4 years ago

0.45.3

4 years ago

0.45.4

4 years ago

0.45.2

4 years ago

0.45.1

4 years ago

0.45.0

4 years ago

0.44.9

4 years ago

0.44.8

4 years ago

0.44.7

4 years ago

0.44.6

4 years ago

0.44.5

4 years ago

0.44.4

4 years ago

0.44.3

4 years ago

0.44.2

4 years ago

0.44.1

4 years ago

0.44.0

4 years ago

0.43.0

4 years ago

0.43.1

4 years ago

0.42.6

4 years ago

0.42.4

4 years ago

0.42.5

4 years ago

0.42.2

4 years ago

0.42.3

4 years ago

0.42.1

4 years ago

0.42.0

4 years ago

0.41.1

4 years ago

0.41.0

4 years ago

0.40.0

4 years ago