[unreleased]
UpdateEl for Filter and FilterMap.El::is_custom(&self).update and trigger_update_ev.value and checked setting for input elements (a bug in VirtualDOM patch algorithm).EventHandler instead of Listener. (Listener is now used as the internal DOM EventListener representation.)raw_ev is deprecated in favor of ev. Functionality is the same.ElRef and examples (canvas, user_media or todomvc) (#115).Ms: Clone restriction as much as possible.Custom variant from Custom(String) to Custom(Cow<'static, str>) in Ev, Tag, At and St. Use function from to create custom entities (e.g. At::from("my-attribute")) (#208).nodes!. It accepts Node<Msg> and Vec<Node<Msg, returns flattened Vec<Node<Msg>.todomvc.counter example to counter_advanced.drop example to drop_zone.server_interaction_detailed example.counter example.README.md.#![forbid(unsafe_code)] so the Seed will be marked as a safe library by the Rust community tools.clone restriction from the method Effect::map_msg.UpdateEl for FlatMap.MessageMapper::map_message changed to MessageMapper::map_msg.fetch and storage moved to seed::browser::service::{fetch, storage}, but reimported at the lib level. Ie: seed::fetch, and seed::storage.Vec<Attr> and Vec<Style> in view macros.App included in prelude.async/.await. fetch.rs docs updated.Attrs, Style, Listener. ie, can import with seed::Style etc.seed::canvas(), and seed::canvas_context() helper functions.Url parsing (resolves issue with hash routing).From<String> for Url changed to TryFrom<String> for Url.orders.after_next_render(Option<RenderTimestampDelta>) (#207).Init struct, replacing it with BeforeMount and AfterMount structs to better denote state before and after mounting the App occurs.builder which replaces build as part of deprecating Init.build_and_start which replaces finish as part of deprecating Init.IntoInitand IntoAfterMount traits. It is possible to use these in place of a closure or function to produce the corresponding Init and AfterMount structs.IntoAfterMount will now be run after the routing message.app_builder.events::Listener is included in prelude.()s have been replaced with structs - e.g. GMs = () => GMs = UndefinedGMs.WindowEvents alias changed to WindowEventsFn for consistency with other *Fn.Init struct, which can help with initial routing (Breaking)routes function now returns an Option<Msg> (Breaking)Tag::from() to accept more input typesstyle! now accepts also Option<impl ToString>hashchange listenermain_el_vdom is initialized first (internal)custom! checks if you set tag, and panics when you forgetSvg elementsseed::html_document() and seed::cookies convenience functionsAt variantsSt enum, for style keys; similar to Atadd_child, add_attr, add_class, add_style, replace_text, and add_text, Node methodsElContainer, imported in prelude, renamed to View. (Breaking)El: Now wrapped in Node, along with Empty and Text. Creation macros return Node(Element). (Breaking)disabled, autofocus, and checked are handled (Breaking)MessageMapper now accepts closuresOrders is a trait now instead of a struct. (Breaking)clone_app and msg_mapper which can allow access to app instance.routes now accepts Url instead of &Url (Breaking)raw!, md!, and plain! macros that alias El::from_html, El::from_markdown, and El::new_text respectivelyAttrs! and Style! macros can now use commas and whitespace as separators, in addition to semicolonsclass! macro, similar to Elm's classListListener now implements MessageMapperEl methods add_child, add_style, add_attr, and set_text now return the elements, allowing chainingset_text. Renamed to replace_text. Added add_text, which adds a text node, but doesn't remove existing ones. Added add_class. (Breaking)request​Animation​Frame, which improves render performance, especially for animationspx. Added unit! macro in its placeMap can now be used directly in elements, without needing to annotate type and collect (ie for child Elements, and Listeners)clone_app and msg_mapper that allow access to app instance.empty elements at the top-level were rendering in the wrong orderempty! macro, which is similar to seed::emptyVec<El> weren't rendering properlyviewBox attributeupdate fn now accepts a (new) Orders struct, and returns nothing. Renders occur implicitly, with the option to skip rendering, update with an additional message, or perform an asynchronous action. (Breaking).mount() now accepts elements. Deprecated .mount_el()log function and macro now support items which implement Debugrouting::push_path function (breaking)seed::update function, which allows custom events, and updates from JSVec<El<Ms>>, El<Ms>, or something else implementing the new ElContainer traitVec<El<Ms>> instead of El<Ms>, mounted directly to the mount point. (Breaking)push_route() can now accept a Vec<&str>, depreciating push_path()update function now takes a mutable ref of the model. (Breaking)Update (update's return type) is now a struct. (Breaking)App through the view func. (Breaking)Href attribute with value as a relative linkCloneselect elementsRenderThen option to Update, which allows chaining update messages.model method to Update, allowing for cleaner recursion in updatesEl::from_html and El::from_markdown to return Vecs of Els, instead of wrapping them in a single span.set_timeout wrapperline! macro interfered with builtin?)At and Ev enumsclass! and id! convenience macros for setting style