Project: chart
Task (challenging): - In `./common/BarChart.js`, class `BarChart` inherits from `Chart`, `BarChart`:
  - there is 1 more grid-x line than LineChart, all the grid-x lines are evenly distributed in `.grids`
  - axis-x labels are placed between 2 adjacent grids below the `.axis-x`
  - append g element (class `datasets`) inside `svg` and make it fill the entire `svg` (no padding between them)
  - append g element (class `dataset dataset-${index}`) inside `.datasets` for each `datasets` item
  - append bars (rect elements, class `bar bar-{index}`) with the same color inside `.dataset` for each `dataset.data` item
    - bars are distributed within each column enclosed by 2 adjacent grid-x lines  
    - bars in different `.dataset` have unique colors
    - bars in the same column are evenly distributed
- Select the option `Bar Chart` of `#type` to create `BarChart` instance