Skip to content

Changelog

Sascha Klatt edited this page Feb 28, 2022 · 32 revisions

v0.11.12

2022-02-28

Fixed

  • wrong homepage url in package.json

v0.11.11

2022-02-28

Fixed

  • vulnerability issues with build tools

Changed

  • links to new domain gridl.js.org

v0.11.10

2021-10-26

Fixed

  • vulnerability issues with build tools

Added

  • example docs for addColumns

v0.11.9

2021-04-17

Added

  • new transformer function addColumns

Changed

  • simplified addColumn and addRow transformer functions

v0.11.8

2021-10-04

Added

  • new transformer function addRows

v0.11.7

2021-03-27

Added

  • new transformer function swapCellGroups
  • new utility functions isOutOfArea, isWithinArea and subtractPositions
  • new option includeOutsideValues to selectSubGrid selector

v0.11.6

2021-03-21

Added

  • new transformer functions shiftColumn and shiftRow

v0.11.5

2021-03-20

Added

  • added new search functions includes and includesWhere

v0.11.4

2021-03-20

Added

  • new search functions findMax and findMin

v0.11.3

2021-03-13

Added

  • new reducers functions everyCell, isEmptyGrid, noCells and someCells

v0.11.2

2021-03-07

Changed

  • updated documentation, no functional changes

v0.11.1

2021-03-07

  • First usable version of the rewrite (since v0.11.0 was unpublished from npm)

v0.11.0

2021-03-07

Breaking changes

  • Complete rewrite of gridl to provide a functional API
  • New concept of traversing the grid with so called walkers
  • Accompanying documentation website at https://gridl.dev
  • Note: This version was unpublished from npm because I screwed up the publishing process :/ v0.11.1 is the first usable version of the 0.11.x releases

v0.10.5

2018-03-24

Added

  • new functions area.clone(), area.row() and area.column()

v0.10.4

2018-03-24

Fixed

  • area intersection bug

Changed

  • updated documentation

v0.10.3

2018-03-18

Added

  • new area function .area(areaDesc).intersection(areaDesc) that returns the intersection of two areas as a new area

v0.10.2

2018-03-18

Changed

  • .area(areaDesc).data(array2D) just ignores values that don't fit instead of throwing an error

v0.10.1

2018-03-18

Added

  • new area functions
    • .area(areaDesc).forEach((val, pos, src) => {...})
    • .area(areaDesc).globalToLocal(globalPosition)

v0.10.0

2018-03-17

Breaking changes

  • New area api
    • areas are described by an area description array: [width = 0, height = 0, x = 0, y = 0, anchorX = 0, anchorY = 0]
    • areas can be accessed by using gridl(data).area(areaDescription)
    • added new area functions
      • .area(areaDesc).numRows()
      • .area(areaDesc).numColumns()
      • .area(areaDesc).size()
      • .area(areaDesc).position()
      • .area(areaDesc).anchor()
      • .area(areaDesc).valueAt(localPosition)
      • .area(areaDesc).localToGlobal(localPosition)
      • .area(areaDesc).data([areaData])
      • .area(areaDesc).apply()
      • .area(areaDesc).parent()
      • .area(areaDesc).reduce((acc, val, pos, src) => {...})
      • .area(areaDesc).map((val, pos, src) => {...})
      • .area(areaDesc).fill((val, pos, src) => {...})
      • .area(areaDesc).find((val, pos, src) => {})
      • .area(areaDesc).description()
      • .area(areaDesc).isInside(areaDesc)
      • .area(areaDesc).contains(areaDesc)
      • .area(areaDesc).intersectsWith(otherArea)
    • removed all former area functions
      • areaFitsAt()
      • getAreaAt()
      • setAreaAt()
      • findInArea()
      • positionInArea()
      • reduceAreaAt()
  • Refactored plugin api
    • replaced gridl.fn with gridl.use(key, plugin)
  • removed navigation api to simplify things
    • there's no more internal position inside of gridl
    • removed goto(), walk(), position()
    • removed all functions that were using the internal position
  • allow importing empty data (no rows and no columns)

v0.9.0

2018-02-26

  • Plugin api !!!
    • You can now add custom functions to gridl and mess around with the internal state. Note: all responsibility lies with the plugin creator!
    • heavy internal refactoring (every public gridl function is now implemented via a core plugin)
    • support for namespaces: functions can be scoped with the name of the plugin
  • new fill() method: similar to map/forEach, but returns the current gridl instance, not a copy
    • fill all cells with a fixed value: gridl(data).fill('bam')
    • fill all cells using a callback function: gridl(data).fill((v, pos, src) => 'bam')
  • data() can also be used as setter now: gridl(data).data(newData)
  • generators
    • moved generators into their own namespace generators
    • renamed generators
      • gridl.make() to import { generators } from gridl; generators.makeGridl();
      • gridl.makeGrid() to import { generators } from gridl; generators.makeDataGrid()
      • gridl.makeList() to import { generators } from gridl; generators.makeDataList()
  • constants
    • moved constants into their own namespaces: adjacences and directions
    • gridl.adjacences is not supported anymore - use import { adjacences } from 'gridl' instead
    • gridl.directions is not supported anymore - use import { directions } from 'gridl' instead
  • removed setValue() and setValueAt(), they are now fully replaced by value() and valueAt()
  • renamed mirror functions
    • mirrorX() to flipX()
    • mirrorY() to flipY()
  • don't throw error when walk() outside the grid
  • integrated tutorials into JSDoc

v0.8.7

2018-02-17

Added

  • reduceArea() and reduceAreaAt() functions

v0.8.6

2018-02-17

Added

  • more predefined adjacence sets
    • adjacences.ALL_CW
    • adjacences.ALL_CCW
    • adjacences.DIAGONAL_CW
    • adjacences.DIAGONAL_CCW
    • adjacences.HORIZONTAL_CW
    • adjacences.HORIZONTAL_CCW

Changed

  • made all adjacence and direction constants immutable

v0.8.5

2018-12-02

Added

  • reduce() method
  • a changelog 🥳