* Network: Retain constraint values in label font handling
Fixes#3517.
Due to changed logic in the label font handling, the option values for `widthConstraint` and `heightConstraint` were overwritten.
The fix is in effect a reversal of two code lines: parsing constraint options should come *after* parsing (multi)font options.
Further changes:
- Additional 1-liner fix: constraint values were not copied for edge-instance specific options.
- Small refactoriing of `Label#constrain()` in order to separate concerns
- Added unit test for regression testing of this issue.
This leads to the curious observation that, while the actual change is two lines of source code, this resulted in a +-150 line regression test.
* Made unit test more linear, removed tabs
* Made 'enhanced subset' of unit test
* Removed TODO from comment
* Culled redundant nodes from unit test
* Network: Add extra check on null value during label handling
This fixes an oversight in #3486. Unit tests added, not only for null labels, but for all weird label values I could thing of.
* Enhanced unit tests, adjusted label check
* Small refactoring in Label._drawBackground()
* Added size calculation to Label, basic framework for detecting click on label.
* First fully working version of label click.
* Put in extra checks, refactored visibility of labels for more general usage.
* Final fixes to code; added to example and in docs
* Adressed review comments
* Add next attempt to fix Travis unit test bug
* Addressed review issues
Fixes#3483.
If `shape: 'image'` is defined as option, this was used for initializing hidden cluster nodes during layout initialization.
However, because no image is being passed, this led to an exception.
This fix prevens shape `image` from being used for hidden cluster nodes. In addition, some extra fields for these nodes are
now overridden for some performance improvament.
* The next fix on Travis unit test failure
This is the next escalation on the war against the Travis unit tests failing (which came into being by yours truly).
By accident, I could recreate the unit test failure on my development machine. This led to a more directed effort to
squash the bug.
The insight here is that test `(window === undefined)` fails, but `(typeof window === 'undefined`)` succeeds. This undoubtedly has to do with the special status `window` has as a global object.
Changes:
- Added check on presence of `window` in `Canvas._requestNextFrame()`, fixed local source errors.
- Added catch clause in `CanvasRendered._determinePixelRatio()`
- small fix: raised timeout for the network `worldCup2014` unit test
* Preliminary refactoring in utils.js
* Added unit tests for extend routines, commenting and small fixes
* More unit tests for extend routines
* - Completed unit tests for extend routines in
- Small fixes and cleanup in `util.js`
- Removed `util.protoExtend()`, not used anywhere
* Added unit tests for known font options
* Interim save before trying out another proto chain strategy
* Fixed problem in first example #3408
* Removed silly file that shouldn't be there
* Added unit test for multi-fonts
* Comment edits
* Verufy unit tests, small adjustments for groups
* Further work on getting unit tests to work. PARTS NEED TO BE CLEANED UP!
* Further tweaks to get unit tests working
* All unit tests passing
* Fixes due to linting
* Small edits
* Removed prototype handling from font pile
* Fixes during testing examples of #3408
* Added unit test for edge labels, small fixes
* Added unit tests for shorthand string fonts; some tests still failing
* All unit tests pass
* Removed Label.parseOptions()
* Completed shorthand font tests, code cleanup, fixed choosify for edges
* Addressed review comments
* Addressed review comments, cleanup
* Added default sizes for nodes without labels
* Next attempt at fixing travis problem
* Fix on calculation of multifont labels - the height was calculated too large.
* Corrects usage of @static jsdoc annotation
* Correct unresolvable types
* Correct types in jsdoc and remove extraneous @class & @constructor jsdoc
* Remove incorrect @static jsdoc
* Adds missing jsdoc for param copyFromGlobals
* correct jsdoc in util
* Corrects casing on jsdocs
* Swaps @inheritDoc to @ignore for constructors where constructor args are documented in the class
* Instantiates Errors with `new`
* Addresses improperly defined @callback tags.
* Split callbacks out to separate jsdoc
* Moves constructor jsdocs back to constructor and drop @ignore.
* Added commenting for options, refactored choosify()
* Refactored updateLabelModule()
* added comment at node creation
* Completed fix for #3350
* parseOptions() different handling for bridged/extended; unit tests for reversal of options
* Fixes on linting and unit testing
* Enables require MethodDefinition for require-jsdoc lint rule and corrects 66% of missing Method Definitions
* Adds jsdoc for all remaining methods and corrects @class/@constructor documentation
* Define values more accurately
* Correct bugs that prevent jsdoc generation
* Makes network eslint compliant
Unused variables in private functions, who were never called internally with those arguments were removed.
lint rule was disabled for public functions, and in private functions which were called internally with those unused arguments
* Disables linting for unused args passed into DataSet and DataView
* Code cleanup, for better understanding
* Further refactoring; text processing to blocks in separate method
* Added unit test for labels - tests standard text and html tags
* Labels added unit tests for markdown
* Further refactoring; made multi and regular handling more congruent
* Interim save, not there yet
* Unit tests done, first working version
* Added test case with two big words
* Code cleanup
* Break up huge words into lines.
* Restore unrelated code change
Call on issue brought to light by #2990.
`ctx` should not be passed as a parameter to the call - not needed and not conform to documentation.
Also cleaned up the calling code to remove the double `fontOptions.chooser()` call.
* maximum width constraints must be violated by long words. Fixes#2604.
* chore: moved examples/network/_tests/maximumWidthEdgeCase.html to test/network/
* element characteristic changes
* assume edge color inheritance is correct before choosing
* Adjust nodes’ chosen’s boolean -> bool
* Need to get user-reset size
* make example edges thicker for more noticeable shadow
* preemptive ES6 fix (see #2500/#2501)
* documentation for the feature that was previously overwritten
Node labels don't currently make use of the 'align' property, so this reuses
the existing property.
The label code has a number of alignment options that make sense to edges only,
so the Edge/Node now passes a boolean to the Label ctor to explain which the label
is being rendered for
Will only apply to Network nodes with a shape: 'box' property, as most
other shapes this will not make sense for. This enables the box shape
to be used, for instance, for diagraming CFG data from source code.