-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Open
Milestone
Description
Brainstorming of improvements that would cause breaking changes for a potential, future v4:
Modernising:
- Add support for ESM bundles referenced by
package.json
. This breaks support for CJS code that is bundled by Webpack. See alsoexports
(e.g. is-promise). - Remove internal polyfills. If you want to support old browsers that are missing these objects, use a polyfill like core-js. Note which objects in the stdlib need polyfilling:
Promise
,Set
,Map
, etc. - Use browser-friendly module links Use browser-friendly module links #2661
- Use Rust/WASM for increased performance (e.g. threading) Support Multithreading #2799
- Use WebGL Hardware Supported Renderer #2798
Improving formatting & naming:
-
ele.json()
returnsclasses
as an array - Make percent values be specified on [0, 1] when no units are specified, e.g.
0.5
is the same as50%
. In v3, if you specify0.5
, you will get0.5%
. - Make the
{ nodes: [], edges: [] }
elements JSON format no longer the default forcy.json()
export. Instead use, the plain array format. - Rename the
core
selector tocy
, by default. Thecore
value should still work, but it won't be returned bycy.json()
.
Improved defaults:
- Set the default
<position>-arrow-width
value tomatch-line
(previously1px
) (✨ Add <position>-arrow-width property for hollow shapes #3194 Add edge <position>-arrow-width for hollow shapes #3191)
Removing deprecated features & other mistakes:
- Remove
cy.forceRender()
. Deprecated long ago. - Remove
ele.renderedStyle()
(Deprecated in Deprecateele.renderedStyle()
#2223) - Remove
cy.batchData()
. Deprecated long ago. - Don't set
concentric
scratch values when running the concentric layout. The programmer can store values themselves. - Remove support for event namespaces. It's not all that useful and it adds complexity.
- Remove non-JSON style formats and revise
cy.style()
to only be a JSON setter. Ref: remove/update a cytoscape.js style #2637 (comment) - Remove
width: label
andheight: label
. Ref. Background SVG image shrinking on newer versions (on 3.1.2 works ok) #2713
Moving features to external extensions or libraries:
- Remove
cose
from the core bundle and make it an external extension. The force-directed layout that a programmer should choose by default isfcose
. - Remove
selectionType: 'additive'
from the core lib and turn it into an extension
avidrucker
Metadata
Metadata
Assignees
Labels
No labels