Commit Graph

128 Commits

Author SHA1 Message Date
Tony Garnock-Jones 2c351d7352 todomvc: BUG: transitions don't happen because the nodes are being replaced rather than edited. 2016-05-17 13:03:09 -04:00
Tony Garnock-Jones 299be35d8f todomvc: Implement many more features; redesign to fix bug 2016-05-17 13:03:09 -04:00
Tony Garnock-Jones 9e673c1588 todomvc: Sort todos in display by ID 2016-05-17 13:03:09 -04:00
Tony Garnock-Jones 7a759de5a1 todomvc: Progress 2016-05-17 13:03:09 -04:00
Tony Garnock-Jones 5c80c2f3bd todomvc: Noticed a bug 2016-05-17 13:03:09 -04:00
Tony Garnock-Jones a7ad6355f5 todomvc: Follow HTML template and file layout more closely; use new locationHash 2016-05-17 13:03:09 -04:00
Tony Garnock-Jones eafcff8f75 todomvc: Various additional features toward the spec 2016-05-17 13:03:08 -04:00
Sam Caldwell e18b2a8062 todomvc: progress 2016-05-17 13:03:04 -04:00
Sam Caldwell d316449538 todomvc: switch to new ui library 2016-05-17 13:01:09 -04:00
Tony Garnock-Jones 4acb32813e todomvc: Initial steps 2016-05-17 13:01:03 -04:00
Tony Garnock-Jones df7908d5a7 examples/motion 2016-05-15 20:41:44 -04:00
Tony Garnock-Jones 1aead77a72 Do facet terminate() phase before handleEvent() phase 2016-05-15 16:16:36 -04:00
Tony Garnock-Jones 61ca89ce04 Post-insertion configureNode() 2016-05-15 14:58:28 -04:00
Tony Garnock-Jones 152a76af5e uiProperty 2016-05-15 14:58:13 -04:00
Tony Garnock-Jones b92c439f07 Introduce selectorMatch and eventUpdater 2016-05-15 14:57:56 -04:00
Tony Garnock-Jones 6a204a9085 Process many internal cycles per wakeup; avoid reentrancy 2016-05-15 14:56:19 -04:00
Tony Garnock-Jones 51d9d4b64e Track Actors' knowledge to properly initialize new facets 2016-05-15 14:55:48 -04:00
Tony Garnock-Jones 1f8b3eeb3f Attribute and property update/remove protocol 2016-05-15 06:14:31 -04:00
Tony Garnock-Jones 097641ffff Name Structs for compatibility with Racket 2016-05-15 06:13:31 -04:00
Tony Garnock-Jones 0653bdae3c key.instantiate needs an Array, not an Immutable.List 2016-05-15 06:12:37 -04:00
Tony Garnock-Jones a55ed180db Properly handle the first (interesting) patch after a broken connection. 2016-05-15 06:12:09 -04:00
Tony Garnock-Jones e55e19d5e4 Add "on event ID BLOCK" support 2016-05-14 19:06:00 -04:00
Tony Garnock-Jones 0561a02e78 onTaskExit, matching the Racket 2016-05-14 17:12:41 -04:00
Tony Garnock-Jones c7d91ac37f Incorrect loop logic in updateEventListeners meant that nodes right at the end of the anchorNode were skipped. 2016-05-14 10:34:22 -04:00
Tony Garnock-Jones bf532edd28 UIAttribute doesn't have fragmentId. 2016-05-14 02:26:24 -04:00
Tony Garnock-Jones 16365e7e95 Table example 2016-05-14 02:21:56 -04:00
Tony Garnock-Jones 35f0b75389 UIFragment orderBy, for features and speed 2016-05-14 02:21:43 -04:00
Tony Garnock-Jones 372652c49d Syndicate.UI.uiAttribute 2016-05-13 20:17:16 -04:00
Tony Garnock-Jones f64491c0a7 Better use of console.warn and console.error in dataspace.js 2016-05-13 20:17:16 -04:00
Tony Garnock-Jones 628ba87c54 Rewrite JS DemandMatcher to handle important latency-related corner cases. 2016-05-13 20:14:01 -04:00
Tony Garnock-Jones 68cde5be6c DemandMatcher: overlap not ruled out! Remove it. 2016-05-12 22:18:57 -04:00
Tony Garnock-Jones b51e7f99d9 LocationHashTracker 2016-05-12 20:11:22 -04:00
Tony Garnock-Jones 6d305e6b00 Hoist .refresh out from .handleEvent; makes assertions depend on state that might have been changed in event handlers properly. 2016-05-12 17:37:14 -04:00
Tony Garnock-Jones a433a054b8 Syndicate.UI.windowEvent 2016-05-12 15:56:42 -04:00
Tony Garnock-Jones e0bd8d08c2 Re-register UIFragment event handlers on node replacement 2016-05-12 15:19:37 -04:00
Tony Garnock-Jones 4eb29832df Correct stupid mistake 2016-05-12 14:52:55 -04:00
Tony Garnock-Jones fb89954158 Only try to attach events to things that might emit them 2016-05-12 14:46:39 -04:00
Tony Garnock-Jones 7b26b4bf14 Switch to FunctionBody from plain Block, to allow function definitions. 2016-05-12 00:01:09 -04:00
Tony Garnock-Jones 879e2425b9 Make Anchor.prototype.context n-ary 2016-05-11 22:13:35 -04:00
Tony Garnock-Jones e67d018079 Make the TV catch fire eventually. 2016-05-11 21:22:26 -04:00
Tony Garnock-Jones 7b9f5a54e8 Use "message type" in demo-*.js 2016-05-11 21:05:40 -04:00
Tony Garnock-Jones 0208ae7a7d A better UI library. Replaces DOM and jQuery support. 2016-05-11 21:03:11 -04:00
Tony Garnock-Jones 23f269fba6 Use Syndicate.Timer in SVG example 2016-05-11 11:13:14 -04:00
Tony Garnock-Jones 6ba9b402ec Only trigger onStateChange with non-empty patch (?) 2016-05-11 10:59:44 -04:00
Tony Garnock-Jones 0693e88031 Allow "message type ..." as well as "assertion type ...". 2016-05-11 10:59:27 -04:00
Tony Garnock-Jones 4a2c8147aa Enable and disable the IoT demo spawn/kill buttons.
Previous commit changed DOM fragment representation to use strings
instead of Seal'd quasi-sexprs, and so eliminated any distinction
between textually-identical DOM fragments in the dataspace.

This patch disables the "spawn" buttons for components in the IoT demo
to avoid (mostly harmless) duplication of actor instances.

It also demonstrates use of react{} outside a *lexically*-enclosing
actor{}.
2016-05-10 22:40:49 -04:00
Tony Garnock-Jones dede7f08a7 Use strings-of-HTML and mustache.js for DOM fragments.
This avoids churn in the dataspace for no-op DOM updates, but at the
cost of losing the identity of multiple pieces of asserted DOM when
they end up being textually identical.

The fix is, generally, to make sure your DOM fragments are different
in some (perhaps invisible when rendered) way. Next commit updates the
IoT demo to avoid duplicate fragments.
2016-05-10 22:38:40 -04:00
Tony Garnock-Jones efc444ac37 forever => react, state => react, init => do, done => finally, until => react until 2016-05-10 18:49:12 -04:00
Tony Garnock-Jones e54b6566f5 Use Timer driver in IoT example. 2016-05-10 17:04:39 -04:00
Tony Garnock-Jones 43e94b83b4 Timer driver 2016-05-10 17:04:16 -04:00