davekinkead / reasons Goto Github PK
View Code? Open in Web Editor NEWWeb based argument mapping tools
Home Page: https://dave.kinkead.com.au/reasons
License: MIT License
Web based argument mapping tools
Home Page: https://dave.kinkead.com.au/reasons
License: MIT License
When zoomed out, dragging a node leads to weird behaviour.
Touch actions ...
Hi @davekinkead !
Do you think it's possible to include in your code a function to save the argument map as SVG (maybe with canvas2svg) ?
Thanks again for your wonderful app!
The graph elements are present on the screen if I edit the DOM to give the canvas element height.
Tested on both ff and chrome, on 1.0.0 and the master branch.
As per openjournals/joss-reviews#1044
Please add text as suggested:
"Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support"
A single click & drag on a blank bit of canvas should pan the the map by the pan vector.
When in drag mode, the mouse pointer should offer some affordance like this (bottom left)
cc/ @geoffreyd
Your app is incredible! It's the best argument mapping software I've ever used.
I have a suggestion : would you consider including the possibility to edit the color of nodes and edges?
This would allow distinctions to be made between different types of reasons (weak vs. strong, reasons for / reasons against, โฆ)
Thank you again for your work!
Is there a way to reduce the toDataURL() function by the dpr ratio?
@geoffreyd - what would be the best way to provide a compatibility warning for non-conforming browsers.
IE & iOS 11.4 and below don't work for me and silently fail.
I was thinking a general try-catch block to trigger on error but then any error would cause a warning even on compatible browsers.
as reported by @davekinkead
Get test/dual-maps.html working so that local CSS can specify size but edit overlay defaults to 100%
As per openjournals/joss-reviews#1044
Can you explicitly spell out how to run the tests. Ideally I could copy/paste.
Hiya @geoffreyd
I would like to add custom line types to the display of nodes. The first types should be solid
(the current version) and then dashed
.
I thought they could be specified in an element.lineType
property that is get/set in view.js
As per openjournals/joss-reviews#1044 Functionality, Installation.
I couldnt get this to work:
https://github.com/davekinkead/reasons#embedding-reasons
I got it to work this the below. Perhaps you want to add an eg div instead of body though.
<html>
<body>
<script src="reasons.js"></script>
<script>
let graph = [
{id: 'p1', text: "Circular arguments work"},
{id: 'c1', text: "Circular arguments work"},
{from: 'p1', to: 'c1', type: "because"},
{from: 'c1', to: 'p1', type: "because"}
]
Reasons.mapper('body').render(graph)
</script>
</body>
</html>
When a node is added or moved, a minimum buffer between them should be applied so that there is no overlap/collision between nodes.
My first thought would be to iteratively move each node away from the map centre by the amount of overlap + some buffer (say 25px).
#pseudocode
after node add or move
while map.overlap?
nodes.map => node.overlap?
node.padout
The wordwrap function is buggy in that depending on which element is focused, a different line count will be generated.
One maybe bug I've found is that the undo stack remembers the panning offset/zoom levels (since these values are being updated on the node x/y's instead of just at draw time ... I'll take a look at moving the scaling/panning value adjustments to the canvas drawing code.
Agree @geoffreyd - the only thing that should be added to history is x&y on node move, not pan or zoom.
The resize event is attached to window
and on scroll, the event.target
is the map canvas in Chrome & Safari but resolves to the canvas' parent (mapper.DOM) in Firefox. This means the zoom function doesn't work because return
Any ideas why this is happening @geoffreyd ? should be a very easy fix but I'm stumped!
Hi Geoff,
This feature should do the following:
Happy to change any code but would like the API in lib/reasons.js to remain the same if possible
Hi @geoffreyd
I'd like the mousewheel event (and later pinch/expand) to zoom the map in & out.
The event listener will be in ui.js and then rendered via view.js
Ta
As per openjournals/joss-reviews#1044 Functionality, functionality.
on windows, in chrome, I couldn't undo via control-z.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.