Skip to content

Animate API - #802

Merged
rreusser merged 45 commits into
masterfrom
animate-api-take-4
Sep 6, 2016
Merged

Animate API#802
rreusser merged 45 commits into
masterfrom
animate-api-take-4

Conversation

@rreusser

@rreusserrreusser commented Aug 1, 2016

Copy link
Copy Markdown
Contributor

I made a mess of #717 by letting it go too long and performing a bad merge/rebase or two. This PR handles animation and attempts to get all tests passing.

Checklist:

  • disable dragbox while transitioning
  • master autorange-disable override (set/unset before/after transition)
  • .animate queues frames
    • frame groups
    • frame lists
    • individual frames
    • raf loop timing
    • accept and coerce animation config
    • 'immediate' mode to flush queue and interrupt
    • add defaultduration and frameduration defaults
  • maybe improve how error bars are updated
  • confirm whether subplot transition was getting interrupted by the other subplot
  • restore point fade in/out behavior
  • ensure all fields are purged: https://github.com/plotly/plotly.js/blob/master/src/plots/plots.js#L779

@rreusser
rreusserforce-pushed the animate-api-take-4 branch 4 times, most recently from 7bf81a0 to 06d1e46CompareAugust 5, 2016 16:57
@etpinardetpinard added this to the v1.17.0 milestone Aug 5, 2016
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from d14cc15 to fbfbf53CompareAugust 11, 2016 19:52
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from 0f92220 to 7447887CompareAugust 12, 2016 17:16
@etpinard

Copy link
Copy Markdown
Contributor

@rreusser what's the current status of this PR?

@rreusser

rreusser commented Aug 22, 2016

Copy link
Copy Markdown
ContributorAuthor

Currently trying to solve race condition with the autolayout feature. I was cheating a bit and timing transitions independently of d3's execution of the transitions, but that tends to result in problematic race conditions in which every now and then a d3 update comes through after the transitions has been redrawn. I feel like I'm attempting to group my transitions correctly, but the just don't group.

@monfera, do you have experience with grouping d3 v3 transitions? I put large chunks that create more transitions inside a .transition().each(...), but the properties don't seem to get inherited.

Also, @etpinard, are you aware of a straightforward way to temporarily disable autorange while performing a redraw? With the cleanup, it now autoranges when redraw is called at the end of transitions, which is rarely desirable.

@rreusser

rreusser commented Aug 23, 2016

Copy link
Copy Markdown
ContributorAuthor

To do:

  • disable dragbox while axis transition is in progress

Comment threadsrc/components/errorbars/plot.js Outdated
}

if(xObj.visible && isNumeric(coords.y) &&
if(xObj.visible && isNumeric(coords.x) &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, good catch. 😬

@etpinard

Copy link
Copy Markdown
Contributor

@rreusser a very well-deserved 💃

cc @chriddyp@jackparmer@cldougl

@jackparmer

Copy link
Copy Markdown
Contributor

image

An epic piece of work @rreusser !

@etpinard
etpinard deleted the animate-api-take-4 branch September 6, 2016 22:09
@etpinardetpinard mentioned this pull request Sep 6, 2016
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

featuresomething new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@rreusser@etpinard@jackparmer@cldougl
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Animate API by rreusser · Pull Request #802 · plotly/plotly.js · GitHub
Skip to content

Animate API - #802

Merged
rreusser merged 45 commits into
masterfrom
animate-api-take-4
Sep 6, 2016
Merged

Animate API#802
rreusser merged 45 commits into
masterfrom
animate-api-take-4

Conversation

@rreusser

@rreusserrreusser commented Aug 1, 2016

Copy link
Copy Markdown
Contributor

I made a mess of #717 by letting it go too long and performing a bad merge/rebase or two. This PR handles animation and attempts to get all tests passing.

Checklist:

  • disable dragbox while transitioning
  • master autorange-disable override (set/unset before/after transition)
  • .animate queues frames
    • frame groups
    • frame lists
    • individual frames
    • raf loop timing
    • accept and coerce animation config
    • 'immediate' mode to flush queue and interrupt
    • add defaultduration and frameduration defaults
  • maybe improve how error bars are updated
  • confirm whether subplot transition was getting interrupted by the other subplot
  • restore point fade in/out behavior
  • ensure all fields are purged: https://github.com/plotly/plotly.js/blob/master/src/plots/plots.js#L779

@rreusser
rreusserforce-pushed the animate-api-take-4 branch 4 times, most recently from 7bf81a0 to 06d1e46CompareAugust 5, 2016 16:57
@etpinardetpinard added this to the v1.17.0 milestone Aug 5, 2016
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from d14cc15 to fbfbf53CompareAugust 11, 2016 19:52
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from 0f92220 to 7447887CompareAugust 12, 2016 17:16
@etpinard

Copy link
Copy Markdown
Contributor

@rreusser what's the current status of this PR?

@rreusser

rreusser commented Aug 22, 2016

Copy link
Copy Markdown
ContributorAuthor

Currently trying to solve race condition with the autolayout feature. I was cheating a bit and timing transitions independently of d3's execution of the transitions, but that tends to result in problematic race conditions in which every now and then a d3 update comes through after the transitions has been redrawn. I feel like I'm attempting to group my transitions correctly, but the just don't group.

@monfera, do you have experience with grouping d3 v3 transitions? I put large chunks that create more transitions inside a .transition().each(...), but the properties don't seem to get inherited.

Also, @etpinard, are you aware of a straightforward way to temporarily disable autorange while performing a redraw? With the cleanup, it now autoranges when redraw is called at the end of transitions, which is rarely desirable.

@rreusser

rreusser commented Aug 23, 2016

Copy link
Copy Markdown
ContributorAuthor

To do:

  • disable dragbox while axis transition is in progress

Comment threadsrc/components/errorbars/plot.js Outdated
}

if(xObj.visible && isNumeric(coords.y) &&
if(xObj.visible && isNumeric(coords.x) &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, good catch. 😬

@etpinard

Copy link
Copy Markdown
Contributor

@rreusser a very well-deserved 💃

cc @chriddyp@jackparmer@cldougl

@jackparmer

Copy link
Copy Markdown
Contributor

image

An epic piece of work @rreusser !

@etpinard
etpinard deleted the animate-api-take-4 branch September 6, 2016 22:09
@etpinardetpinard mentioned this pull request Sep 6, 2016
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

featuresomething new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@rreusser@etpinard@jackparmer@cldougl
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Animate API by rreusser · Pull Request #802 · plotly/plotly.js · GitHub
Skip to content

Animate API - #802

Merged
rreusser merged 45 commits into
masterfrom
animate-api-take-4
Sep 6, 2016
Merged

Animate API#802
rreusser merged 45 commits into
masterfrom
animate-api-take-4

Conversation

@rreusser

@rreusserrreusser commented Aug 1, 2016

Copy link
Copy Markdown
Contributor

I made a mess of #717 by letting it go too long and performing a bad merge/rebase or two. This PR handles animation and attempts to get all tests passing.

Checklist:

  • disable dragbox while transitioning
  • master autorange-disable override (set/unset before/after transition)
  • .animate queues frames
    • frame groups
    • frame lists
    • individual frames
    • raf loop timing
    • accept and coerce animation config
    • 'immediate' mode to flush queue and interrupt
    • add defaultduration and frameduration defaults
  • maybe improve how error bars are updated
  • confirm whether subplot transition was getting interrupted by the other subplot
  • restore point fade in/out behavior
  • ensure all fields are purged: https://github.com/plotly/plotly.js/blob/master/src/plots/plots.js#L779

@rreusser
rreusserforce-pushed the animate-api-take-4 branch 4 times, most recently from 7bf81a0 to 06d1e46CompareAugust 5, 2016 16:57
@etpinardetpinard added this to the v1.17.0 milestone Aug 5, 2016
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from d14cc15 to fbfbf53CompareAugust 11, 2016 19:52
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from 0f92220 to 7447887CompareAugust 12, 2016 17:16
@etpinard

Copy link
Copy Markdown
Contributor

@rreusser what's the current status of this PR?

@rreusser

rreusser commented Aug 22, 2016

Copy link
Copy Markdown
ContributorAuthor

Currently trying to solve race condition with the autolayout feature. I was cheating a bit and timing transitions independently of d3's execution of the transitions, but that tends to result in problematic race conditions in which every now and then a d3 update comes through after the transitions has been redrawn. I feel like I'm attempting to group my transitions correctly, but the just don't group.

@monfera, do you have experience with grouping d3 v3 transitions? I put large chunks that create more transitions inside a .transition().each(...), but the properties don't seem to get inherited.

Also, @etpinard, are you aware of a straightforward way to temporarily disable autorange while performing a redraw? With the cleanup, it now autoranges when redraw is called at the end of transitions, which is rarely desirable.

@rreusser

rreusser commented Aug 23, 2016

Copy link
Copy Markdown
ContributorAuthor

To do:

  • disable dragbox while axis transition is in progress

Comment threadsrc/components/errorbars/plot.js Outdated
}

if(xObj.visible && isNumeric(coords.y) &&
if(xObj.visible && isNumeric(coords.x) &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, good catch. 😬

@etpinard

Copy link
Copy Markdown
Contributor

@rreusser a very well-deserved 💃

cc @chriddyp@jackparmer@cldougl

@jackparmer

Copy link
Copy Markdown
Contributor

image

An epic piece of work @rreusser !

@etpinard
etpinard deleted the animate-api-take-4 branch September 6, 2016 22:09
@etpinardetpinard mentioned this pull request Sep 6, 2016
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

featuresomething new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@rreusser@etpinard@jackparmer@cldougl
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Animate API by rreusser · Pull Request #802 · plotly/plotly.js · GitHub
Skip to content

Animate API - #802

Merged
rreusser merged 45 commits into
masterfrom
animate-api-take-4
Sep 6, 2016
Merged

Animate API#802
rreusser merged 45 commits into
masterfrom
animate-api-take-4

Conversation

@rreusser

@rreusserrreusser commented Aug 1, 2016

Copy link
Copy Markdown
Contributor

I made a mess of #717 by letting it go too long and performing a bad merge/rebase or two. This PR handles animation and attempts to get all tests passing.

Checklist:

  • disable dragbox while transitioning
  • master autorange-disable override (set/unset before/after transition)
  • .animate queues frames
    • frame groups
    • frame lists
    • individual frames
    • raf loop timing
    • accept and coerce animation config
    • 'immediate' mode to flush queue and interrupt
    • add defaultduration and frameduration defaults
  • maybe improve how error bars are updated
  • confirm whether subplot transition was getting interrupted by the other subplot
  • restore point fade in/out behavior
  • ensure all fields are purged: https://github.com/plotly/plotly.js/blob/master/src/plots/plots.js#L779

@rreusser
rreusserforce-pushed the animate-api-take-4 branch 4 times, most recently from 7bf81a0 to 06d1e46CompareAugust 5, 2016 16:57
@etpinardetpinard added this to the v1.17.0 milestone Aug 5, 2016
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from d14cc15 to fbfbf53CompareAugust 11, 2016 19:52
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from 0f92220 to 7447887CompareAugust 12, 2016 17:16
@etpinard

Copy link
Copy Markdown
Contributor

@rreusser what's the current status of this PR?

@rreusser

rreusser commented Aug 22, 2016

Copy link
Copy Markdown
ContributorAuthor

Currently trying to solve race condition with the autolayout feature. I was cheating a bit and timing transitions independently of d3's execution of the transitions, but that tends to result in problematic race conditions in which every now and then a d3 update comes through after the transitions has been redrawn. I feel like I'm attempting to group my transitions correctly, but the just don't group.

@monfera, do you have experience with grouping d3 v3 transitions? I put large chunks that create more transitions inside a .transition().each(...), but the properties don't seem to get inherited.

Also, @etpinard, are you aware of a straightforward way to temporarily disable autorange while performing a redraw? With the cleanup, it now autoranges when redraw is called at the end of transitions, which is rarely desirable.

@rreusser

rreusser commented Aug 23, 2016

Copy link
Copy Markdown
ContributorAuthor

To do:

  • disable dragbox while axis transition is in progress

Comment threadsrc/components/errorbars/plot.js Outdated
}

if(xObj.visible && isNumeric(coords.y) &&
if(xObj.visible && isNumeric(coords.x) &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, good catch. 😬

@etpinard

Copy link
Copy Markdown
Contributor

@rreusser a very well-deserved 💃

cc @chriddyp@jackparmer@cldougl

@jackparmer

Copy link
Copy Markdown
Contributor

image

An epic piece of work @rreusser !

@etpinard
etpinard deleted the animate-api-take-4 branch September 6, 2016 22:09
@etpinardetpinard mentioned this pull request Sep 6, 2016
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

featuresomething new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@rreusser@etpinard@jackparmer@cldougl
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Animate API by rreusser · Pull Request #802 · plotly/plotly.js · GitHub
Skip to content

Animate API - #802

Merged
rreusser merged 45 commits into
masterfrom
animate-api-take-4
Sep 6, 2016
Merged

Animate API#802
rreusser merged 45 commits into
masterfrom
animate-api-take-4

Conversation

@rreusser

@rreusserrreusser commented Aug 1, 2016

Copy link
Copy Markdown
Contributor

I made a mess of #717 by letting it go too long and performing a bad merge/rebase or two. This PR handles animation and attempts to get all tests passing.

Checklist:

  • disable dragbox while transitioning
  • master autorange-disable override (set/unset before/after transition)
  • .animate queues frames
    • frame groups
    • frame lists
    • individual frames
    • raf loop timing
    • accept and coerce animation config
    • 'immediate' mode to flush queue and interrupt
    • add defaultduration and frameduration defaults
  • maybe improve how error bars are updated
  • confirm whether subplot transition was getting interrupted by the other subplot
  • restore point fade in/out behavior
  • ensure all fields are purged: https://github.com/plotly/plotly.js/blob/master/src/plots/plots.js#L779

@rreusser
rreusserforce-pushed the animate-api-take-4 branch 4 times, most recently from 7bf81a0 to 06d1e46CompareAugust 5, 2016 16:57
@etpinardetpinard added this to the v1.17.0 milestone Aug 5, 2016
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from d14cc15 to fbfbf53CompareAugust 11, 2016 19:52
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from 0f92220 to 7447887CompareAugust 12, 2016 17:16
@etpinard

Copy link
Copy Markdown
Contributor

@rreusser what's the current status of this PR?

@rreusser

rreusser commented Aug 22, 2016

Copy link
Copy Markdown
ContributorAuthor

Currently trying to solve race condition with the autolayout feature. I was cheating a bit and timing transitions independently of d3's execution of the transitions, but that tends to result in problematic race conditions in which every now and then a d3 update comes through after the transitions has been redrawn. I feel like I'm attempting to group my transitions correctly, but the just don't group.

@monfera, do you have experience with grouping d3 v3 transitions? I put large chunks that create more transitions inside a .transition().each(...), but the properties don't seem to get inherited.

Also, @etpinard, are you aware of a straightforward way to temporarily disable autorange while performing a redraw? With the cleanup, it now autoranges when redraw is called at the end of transitions, which is rarely desirable.

@rreusser

rreusser commented Aug 23, 2016

Copy link
Copy Markdown
ContributorAuthor

To do:

  • disable dragbox while axis transition is in progress

Comment threadsrc/components/errorbars/plot.js Outdated
}

if(xObj.visible && isNumeric(coords.y) &&
if(xObj.visible && isNumeric(coords.x) &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, good catch. 😬

@etpinard

Copy link
Copy Markdown
Contributor

@rreusser a very well-deserved 💃

cc @chriddyp@jackparmer@cldougl

@jackparmer

Copy link
Copy Markdown
Contributor

image

An epic piece of work @rreusser !

@etpinard
etpinard deleted the animate-api-take-4 branch September 6, 2016 22:09
@etpinardetpinard mentioned this pull request Sep 6, 2016
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

featuresomething new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@rreusser@etpinard@jackparmer@cldougl
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Animate API by rreusser · Pull Request #802 · plotly/plotly.js · GitHub
Skip to content

Animate API - #802

Merged
rreusser merged 45 commits into
masterfrom
animate-api-take-4
Sep 6, 2016
Merged

Animate API#802
rreusser merged 45 commits into
masterfrom
animate-api-take-4

Conversation

@rreusser

@rreusserrreusser commented Aug 1, 2016

Copy link
Copy Markdown
Contributor

I made a mess of #717 by letting it go too long and performing a bad merge/rebase or two. This PR handles animation and attempts to get all tests passing.

Checklist:

  • disable dragbox while transitioning
  • master autorange-disable override (set/unset before/after transition)
  • .animate queues frames
    • frame groups
    • frame lists
    • individual frames
    • raf loop timing
    • accept and coerce animation config
    • 'immediate' mode to flush queue and interrupt
    • add defaultduration and frameduration defaults
  • maybe improve how error bars are updated
  • confirm whether subplot transition was getting interrupted by the other subplot
  • restore point fade in/out behavior
  • ensure all fields are purged: https://github.com/plotly/plotly.js/blob/master/src/plots/plots.js#L779

@rreusser
rreusserforce-pushed the animate-api-take-4 branch 4 times, most recently from 7bf81a0 to 06d1e46CompareAugust 5, 2016 16:57
@etpinardetpinard added this to the v1.17.0 milestone Aug 5, 2016
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from d14cc15 to fbfbf53CompareAugust 11, 2016 19:52
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from 0f92220 to 7447887CompareAugust 12, 2016 17:16
@etpinard

Copy link
Copy Markdown
Contributor

@rreusser what's the current status of this PR?

@rreusser

rreusser commented Aug 22, 2016

Copy link
Copy Markdown
ContributorAuthor

Currently trying to solve race condition with the autolayout feature. I was cheating a bit and timing transitions independently of d3's execution of the transitions, but that tends to result in problematic race conditions in which every now and then a d3 update comes through after the transitions has been redrawn. I feel like I'm attempting to group my transitions correctly, but the just don't group.

@monfera, do you have experience with grouping d3 v3 transitions? I put large chunks that create more transitions inside a .transition().each(...), but the properties don't seem to get inherited.

Also, @etpinard, are you aware of a straightforward way to temporarily disable autorange while performing a redraw? With the cleanup, it now autoranges when redraw is called at the end of transitions, which is rarely desirable.

@rreusser

rreusser commented Aug 23, 2016

Copy link
Copy Markdown
ContributorAuthor

To do:

  • disable dragbox while axis transition is in progress

Comment threadsrc/components/errorbars/plot.js Outdated
}

if(xObj.visible && isNumeric(coords.y) &&
if(xObj.visible && isNumeric(coords.x) &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, good catch. 😬

@etpinard

Copy link
Copy Markdown
Contributor

@rreusser a very well-deserved 💃

cc @chriddyp@jackparmer@cldougl

@jackparmer

Copy link
Copy Markdown
Contributor

image

An epic piece of work @rreusser !

@etpinard
etpinard deleted the animate-api-take-4 branch September 6, 2016 22:09
@etpinardetpinard mentioned this pull request Sep 6, 2016
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

featuresomething new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@rreusser@etpinard@jackparmer@cldougl
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Animate API by rreusser · Pull Request #802 · plotly/plotly.js · GitHub
Skip to content

Animate API - #802

Merged
rreusser merged 45 commits into
masterfrom
animate-api-take-4
Sep 6, 2016
Merged

Animate API#802
rreusser merged 45 commits into
masterfrom
animate-api-take-4

Conversation

@rreusser

@rreusserrreusser commented Aug 1, 2016

Copy link
Copy Markdown
Contributor

I made a mess of #717 by letting it go too long and performing a bad merge/rebase or two. This PR handles animation and attempts to get all tests passing.

Checklist:

  • disable dragbox while transitioning
  • master autorange-disable override (set/unset before/after transition)
  • .animate queues frames
    • frame groups
    • frame lists
    • individual frames
    • raf loop timing
    • accept and coerce animation config
    • 'immediate' mode to flush queue and interrupt
    • add defaultduration and frameduration defaults
  • maybe improve how error bars are updated
  • confirm whether subplot transition was getting interrupted by the other subplot
  • restore point fade in/out behavior
  • ensure all fields are purged: https://github.com/plotly/plotly.js/blob/master/src/plots/plots.js#L779

@rreusser
rreusserforce-pushed the animate-api-take-4 branch 4 times, most recently from 7bf81a0 to 06d1e46CompareAugust 5, 2016 16:57
@etpinardetpinard added this to the v1.17.0 milestone Aug 5, 2016
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from d14cc15 to fbfbf53CompareAugust 11, 2016 19:52
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from 0f92220 to 7447887CompareAugust 12, 2016 17:16
@etpinard

Copy link
Copy Markdown
Contributor

@rreusser what's the current status of this PR?

@rreusser

rreusser commented Aug 22, 2016

Copy link
Copy Markdown
ContributorAuthor

Currently trying to solve race condition with the autolayout feature. I was cheating a bit and timing transitions independently of d3's execution of the transitions, but that tends to result in problematic race conditions in which every now and then a d3 update comes through after the transitions has been redrawn. I feel like I'm attempting to group my transitions correctly, but the just don't group.

@monfera, do you have experience with grouping d3 v3 transitions? I put large chunks that create more transitions inside a .transition().each(...), but the properties don't seem to get inherited.

Also, @etpinard, are you aware of a straightforward way to temporarily disable autorange while performing a redraw? With the cleanup, it now autoranges when redraw is called at the end of transitions, which is rarely desirable.

@rreusser

rreusser commented Aug 23, 2016

Copy link
Copy Markdown
ContributorAuthor

To do:

  • disable dragbox while axis transition is in progress

Comment threadsrc/components/errorbars/plot.js Outdated
}

if(xObj.visible && isNumeric(coords.y) &&
if(xObj.visible && isNumeric(coords.x) &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, good catch. 😬

@etpinard

Copy link
Copy Markdown
Contributor

@rreusser a very well-deserved 💃

cc @chriddyp@jackparmer@cldougl

@jackparmer

Copy link
Copy Markdown
Contributor

image

An epic piece of work @rreusser !

@etpinard
etpinard deleted the animate-api-take-4 branch September 6, 2016 22:09
@etpinardetpinard mentioned this pull request Sep 6, 2016
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

featuresomething new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@rreusser@etpinard@jackparmer@cldougl
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Animate API by rreusser · Pull Request #802 · plotly/plotly.js · GitHub
Skip to content

Animate API - #802

Merged
rreusser merged 45 commits into
masterfrom
animate-api-take-4
Sep 6, 2016
Merged

Animate API#802
rreusser merged 45 commits into
masterfrom
animate-api-take-4

Conversation

@rreusser

@rreusserrreusser commented Aug 1, 2016

Copy link
Copy Markdown
Contributor

I made a mess of #717 by letting it go too long and performing a bad merge/rebase or two. This PR handles animation and attempts to get all tests passing.

Checklist:

  • disable dragbox while transitioning
  • master autorange-disable override (set/unset before/after transition)
  • .animate queues frames
    • frame groups
    • frame lists
    • individual frames
    • raf loop timing
    • accept and coerce animation config
    • 'immediate' mode to flush queue and interrupt
    • add defaultduration and frameduration defaults
  • maybe improve how error bars are updated
  • confirm whether subplot transition was getting interrupted by the other subplot
  • restore point fade in/out behavior
  • ensure all fields are purged: https://github.com/plotly/plotly.js/blob/master/src/plots/plots.js#L779

@rreusser
rreusserforce-pushed the animate-api-take-4 branch 4 times, most recently from 7bf81a0 to 06d1e46CompareAugust 5, 2016 16:57
@etpinardetpinard added this to the v1.17.0 milestone Aug 5, 2016
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from d14cc15 to fbfbf53CompareAugust 11, 2016 19:52
@rreusser
rreusserforce-pushed the animate-api-take-4 branch 3 times, most recently from 0f92220 to 7447887CompareAugust 12, 2016 17:16
@etpinard

Copy link
Copy Markdown
Contributor

@rreusser what's the current status of this PR?

@rreusser

rreusser commented Aug 22, 2016

Copy link
Copy Markdown
ContributorAuthor

Currently trying to solve race condition with the autolayout feature. I was cheating a bit and timing transitions independently of d3's execution of the transitions, but that tends to result in problematic race conditions in which every now and then a d3 update comes through after the transitions has been redrawn. I feel like I'm attempting to group my transitions correctly, but the just don't group.

@monfera, do you have experience with grouping d3 v3 transitions? I put large chunks that create more transitions inside a .transition().each(...), but the properties don't seem to get inherited.

Also, @etpinard, are you aware of a straightforward way to temporarily disable autorange while performing a redraw? With the cleanup, it now autoranges when redraw is called at the end of transitions, which is rarely desirable.

@rreusser

rreusser commented Aug 23, 2016

Copy link
Copy Markdown
ContributorAuthor

To do:

  • disable dragbox while axis transition is in progress

Comment threadsrc/components/errorbars/plot.js Outdated
}

if(xObj.visible && isNumeric(coords.y) &&
if(xObj.visible && isNumeric(coords.x) &&

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wow, good catch. 😬

@etpinard

Copy link
Copy Markdown
Contributor

@rreusser a very well-deserved 💃

cc @chriddyp@jackparmer@cldougl

@jackparmer

Copy link
Copy Markdown
Contributor

image

An epic piece of work @rreusser !

@etpinard
etpinard deleted the animate-api-take-4 branch September 6, 2016 22:09
@etpinardetpinard mentioned this pull request Sep 6, 2016
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
etpinard added a commit that referenced this pull request Sep 8, 2016
- as of PR #802, scatter traces are no longer purged
in the per-subplot cartesian plot step - to maintain
consistency between transitions.
- While the scatter plot module can remove individual
'visible: false' traces, when all scatter traces are restyled
to 'visible: false' the scatter plot module is currently not called!
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

featuresomething new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@rreusser@etpinard@jackparmer@cldougl