* d3-path strictNullChecks and JSDoc
* (d3-path) [Chore] Added complete JSDoc comments
* (d3-path) [Enhancement] Validated and activated for use with `strictNullChecks`
* d3-chord: Enhancement, Fixes, Chore
* (d3-chord) [BREAKING FIX] Added additional interfaces Ribbon and RibbonSubgroup to reflect the interfaces actually assumed by default by RibbonGenerator. While the API documentation refers to passing in a Chord object when invoking the RibbonGenerator by default, this actually means the default radius accessor returns undefined, which is then coerced to NaN. To avoid this "silent" fail, Ribbon and RibbonSubgroup are now used as the datum types returned by the default `ribbon()` factory without explicit generics. This is a purposely accepted breaking change, as it means that passing in a Chord object will now fail. The correct way, will be to use the generics of the `ribbon<...>()` factory to cast the datum type to work with Chord. This should serve as a mental cue to ensure the accessors are customized accordingly. E.g. by setting a constant radius.
* (d3-chords) [Chore]: Added JSDoc comments
* (d3-chords) [Enhancement]: Validated, updated and activated for use with `strictNullChecks`. Note,in particular the updated signatures for invoking the RibbonGenerator. These are now overloaded with one returning `void` (canvas context), and the other returning `string | null`, where the rendering context is `null`. Note that teh API suggests a string is returned in this case, however, it may actually return `null` as well as per source code. It is at the developers discretion to ensure return value expectations correspond to rendering context.
* (d3-chords) [Chore] Updated tests and bumped patch version number to indicate which version was last fully reviewed.
* d3-time: strictNullChecks, JSDoc and Fix
* (d3-time) [Fix]: Return type of method `TimeInterval.filter(...)` changed from `this` to `TimeInterval`. This corrects an earlier regression, whereby applying `filter(...)` on a `CountableTimeInterval` incorrectly returns `CountableTimeInterval`. The correct return type is restricted to `TimeInterval`. Tests updated.
* (d3-time) [Enhancement]: Validated, updated and activated for use with `strictNullChecks`. Tests updated.
* (d3-time) [Chore]: Complete JSDoc comments.
* (d3-time) [Chore]: Updated patch version to reflect latest validated release of d3-time
* d3-scale:
* (d3-scale) [Refactoring]: Added interface `ScaleContinuousNumeric<Range, Output>` to consolidate some of the repeatable properties for numeric continuous scales. Use extension and scale-specific implementations as needed
* (d3-scale) [Fix]: `ScaleLogarithmic.nice()` does not have `count` argument
* (d3-scale) [Fix]: Relaxed constraint on data type for `domain(...)` setter and scale application for `ScaleTime` to allow numeric values, which are coerced to Date internally by d3-scale.
* (d3-scale) [Enhancement]: Validated, updated and acrivated for use with `strictNullChecks`
* (d3-scale) [Chore]: JSDoc comments completed
* d3-shape
* (d3-shape) [Fix]: Signatures for invoking a generator which renders have been changed as follows: There used to be one signature which returned `string | undefined` depending on whether a rendering context was or not. This had been split into two signatures, the first returns `string | null` when creating a path string with rendering context "null", the second returns `void` when a rendering context is set. The change was made, so that the configured generator can be passed into a `Selection.attr('d', ...)` call without issues. Note that the `string | null` return type for the path string option is based on the actual code, which may return `null` if path string generation "fails".
* (d3-shape) [Fix]: Added missing `padRadius` signature to `Arc` generator.
* (d3-shape) [Fix]: Removed `line<This, Datum>(): Line<Datum>` signature, as there is not "this" context for line generator
* (d3-shape) [Enhanced]: Where generators allow configurations of curve factories to be used, as second signature was added to allow casting the return type of the `curve<C extends CurveFactory | CurveFactoryLineOnly>(): C` getter
* (d3-shape) [Fix]: Fixed invocation signatures for `CurveFactoryLineOnly` and `CurveFactory`. The signature incorrectly used to allow null: `CanvasRenderingContext2D | null`. It has been changed to `CanvasRenderingContext2D | Path`, `Path` has been added as this is actually the rendering context used internally by the generators in d3-shape, when creating an SVG path string.
* (d3-shape) [Fix]: Moved `index` property from `SeriesPoint` to `Series` interface. This corresponds to actual D3 data structure/API.
* (d3-shape) [Enhancement]: Validated, updated and enhanced for use with `strictNullChecks`.
* (d3-shape) [chore] Changes related to linting, Disabled "unified-signatures" in tsling.json due to usability considerations.
* d3-chord and d3-scale:
* (d3-chord) [Fix]: Minor fixes to correct comments
* (d3-chord) [Chore]: Completed linting and added `tslint.json` to disable "unified-signatures" rule due to usability considerations.
* (d3-scale) [Chore]: Completed linting and added `tslint.json` to disable "unified-signatures" rule due to usability considerations.
* d3-shape:
* (d3-shape) [Chore]: Selectively disable linting rule for functional interfaces which are extended. (As per @gustavderdrache)
* d3-scale:
* (d3-scale) [Chore]: Selectively disable lint warning on extended functional interface
* Removed comment from `tslint.json` files.
* strictNullChecks chore
* (d3-chord) [Chore]: Use postfix to assert non-null for a test variable.
* (d3-shape) [Chore]: Use postfix to assert non-null for a test variable.
* Updated header comments to new convention.
* d3-chord
* (d3-chord) [Chore]: Change occurrence of double-quotation mark for single-quotation mark in test file
* d3 (Update to version 4.4)
* Pin dependency for d3-geo to version 1.4
* Pin dependency for d3-zoom to version 1.1
* Update header comment version to 4.4
* d3 legacy linting
* disabled linting of legacy definitions and tests at file level.
* Remove tslint:disable from legacy tests
* [Enhancements]: strictNullCheck and filtering:
* (d3-selection) [Enhancement]: Validated, updated and activated to enforece `strictNullChecks`. `BaseType` updated to include `null`. As a result of this approach, the developer must explicitly include `| null`, if a Selection or a (sub-)selecting method may contain `null` element(s). By the same token, the `node()` method, will return `null` only, if the Selection to which it was applied may contain `null` element(s).
* (d3-selection) [Enhancement]: Added additional signature to `filter(...)` method such that a generic can be used to control the type of the filtered elements, should they be a subset of the unfiltered types.
* (d3-selection) [Enhancement]: Added `Document` to `BaseType` union type.
* (d3-transition) [Enhancement]: Validated, updated and activated to enforece `strictNullChecks`. `BaseType` updated to include `null`. As a result of this approach, the developer must explicitly include `| null`, if a Transition or a (sub-)selecting method may contain `null` element(s). By the same token, the `node()` method, will return `null` only, if the Transition to which it was applied may contain `null` element(s).
* (d3-transition) [Enhancement]: Added additional signature to `filter(...)` method such that a generic can be used to control the type of the filtered elements, should they be a subset of the unfiltered types.
* (d3-selection-multi) [Enhancement]: updated `ValueMap` type use extension of selection/transition `BaseType` as defined above consistent with `strictNullChecks`.
* (d3-selection-multi) [Test Fix]: Updated tests where a Value Function is used to return a ValueMap for each selected item, as the ValueMap must be defined as a mapping object idiomatically, the test was changed to never return `null` as a result of the value function. Instead it returns `{}`, when no updates are required for the currently iterated selected element.
* In general, for all three above modules: Tests have been updated to be more explicit about type-checking inside callback functions. Also, where shortcuts where taken in the shape tests to simply test interface/signature contracts, without necessary variable initialization, mock initializations have been included. This is necessitated by enabling `strictNullChecks`.
* d3-force
* (d3-force) [Enhancement]: Validated, updated and activated to allow for `strictNullChecks`. When using `force(name)` getter on `Simulation`, it is now up to the developer to use the right generic narrowing to exclude `undefined` as a return type, if it is known with certainty that the retrieved force has prevsiously been defined. By default, it may be `undefined` as is the standard API specification.
* (d3-force) [Fix]: The initialize method has been added explicitly to the predefined forces `ForceCollide`, `ForceCenter`, `ForceLink`, `ForceManyBody`, `ForceX` and `ForceY`. This conforms to the implementation of these forces, where it is implemented. Inhertitance from the generic `Force` inaccurately let it appear optional.
* (d3-force) [Chore] Tests added/updated and some linting.
* d3-force ForceLink JSDoc update:
* (d3-force) [Chore] Update JSDoc comment for `id(...)` accessor on `ForceLink`. This is related to the corresponding wording change in the API documentation in follow-up to the changes made to d3-force issue 72.
* d3-zoom strictNullChecks
* (d3-zoom) [Enhancement] Validated, updated and activated for use with `strictNullChecks`. Tests updated.
* d3-brush strictNullChecks
* (d3-brush) [Enhancement] Validate, update and activate for use with `strictNullChecks`. Tests updated.
* d3-drag strictNullChecks
* (d3-drag) [Enhancement]: Validate, update and activate for use with strictNullChecks.
* (d3-zoom) to v1.1.0
* (d3-zoom) [Feature]: Adds suppport for `zoom.interpolate(...)`. Tests added
* (d3-zoom) [Chore]: Updated JSDoc comment for `zoomTransform(...)`
* (d3-transition) JSDoc comment
* (d3-transition) [Chore] Updated JSDoc comment on `selection.transition(...)`
* (d3-transition) [Chore] bumped version to 1.0.3 to indicate up to which module version the definitions were reviewed
* Bump patch versions of underlying modules
* (d3-brush) (d3-drag) (d3-force) [Chore]: To indicate up to which patch version the files definitions were validated, patch version number has been bumped
* TS Lint and Minor Changes:
* (d3-brush) [Chore]: Added tslint.json to disable "unified-signatures" rule
* (d3-drag) [Chore]: Added tslint.json to disable "unified-signatures" rule. Linted tests.
* (d3-force) [Chore]: Added tslint.json to disable "unified-signatures" rule
* (d3-force) [Chore]: Completed linting.
* (d3-selection) [Chore]: Added tslint.json to disable "unified-signatures" rule
* (d3-selection) [Fix]: Changed `CustomEventParameters` and `NamespaceLocalObject` and `NamespaceMap` to be interfaces as opposed to types.
* (d3-selection) [Chore]: Completed linting of defintion and tests,
* (d3-selection-multi) [Chore]: Added tslint.json to disable "unified-signatures" rule
* (d3-selection-multi) [Chore]: Completed linting of definition and tests. Used `// tslint:disable-next-line:interface-over-type-literal` for type alias ValueMap. Using type is better here for IDE hints, as the hint replaces alias with its content. This saves separate "peeking" as would be the case for interface. Also, there is no need to extend the type. For the entire test file `// tslint:disable:object-literal-shorthand` was applied, as the object literals actually need to use functions and not arrow function "short hand" ("this" context will be bound rather than lexically scoped)
* (d3-selection-multi) [Chore]: Minor JSDoc comment additions for completeness.
* (d3-transition) [Chore]: Added tslint.json to disable "unified-signatures" rule
* (d3-transition) [Chore]: Minor JSDoc comment additions for completeness.
* (d3-transition) [Chore]: Completed linting.
* (d3-zoom) [Chore]: Added tslint.json to disable "unified-signatures" rule
* (d3-zoom) [Chore]: Completed linting.
* strictNullChecks
* (d3-selection) [Fix]: Re-inserted `| null` into return type of `node()`. Fixed all tests, for mock-purposes using `!` post-fix where necessary. Note, this includes using post-fix on document.querySelector(...) which now also includes possible `null` return type.
* (d3-transition) [Fix]: Re-inserted `| null` into return type of `node()`. Fixed all tests, for mock-purposes using `!` post-fix where necessary. Note, this includes using post-fix on document.querySelector(...) which now also includes possible `null` return type.
* (d3-force) [Fix]: Moved return type of `force('forcename')` getter to include `| undefined` unconditionally. This is a change from allowing the casting using the generic to exclude `undefined`. This change was made for consistency with the treatment of e.g. `node()` (see above)
* (d3-drag) [Chore]: Adjust test to mock-assert non-null using `!` when using `node()`
* d3-zoom fix test
* (d3-zoom) [Chore] Needed to assert non-null node() return-type for testing purposes only.
* Update header comments to new convention
* Removed "v" from version header.