std.dom.diff
diff-list
added in 3.0
(diff-list list-old list-new)constructs diffs for a lists
(diff-list :a :b :c :b) => [:list-remove 0 1 :list-remove 1 1]
diff-list-dom
added in 3.0
(diff-list-dom list-old list-new)simplified list comparison using :dom/key
(diff-list-dom [(base/dom-compile :mock/pane {:dom/key 3}) (base/dom-compile :mock/pane {:dom/key 1}) (base/dom-compile :mock/pane {:dom/key 2}) (base/dom-compile :mock/pane {:dom/key 4})] [(base/dom-compile :mock/pane {:dom/key 1}) (base/dom-compile :mock/pane {:dom/key 2})]) => [:list-remove 0 1 :list-remove 2 1]
diff-list-element
added in 3.0
(diff-list-element i x-old x-new)diffs for elements within a list
(diff-list-element 0 1 2) => :list-set 0 2 1
diff-list-elements
added in 3.0
(diff-list-elements list-old list-new)diff elements in array, limit to shortest array
(diff-list-elements :a :b :c :b) => :list-set 0 :b :a
(diff-list-elements [(base/dom-create :mock/label {} “hello”)] [(base/dom-create :mock/label {} “world”)]) => :list-update 0 :set :text "world" "hello"
diff-props
added in 3.0
(diff-props props-old props-new)constructs diff for a set of props
(diff-props {:top (base/dom-create :mock/label {} “hello”)} {:top (base/dom-create :mock/label {} “world”)}) => :update :top :set :text "world" "hello"
diff-props-element
added in 3.0
(diff-props-element pk pv-old pv-new)diffs for elements within a props map
(diff-props-element :text “hello” “world”) => :set :text “world” “hello”
dom-diff
added in 3.0
(dom-diff old new)returns ops for dom transform
(dom-diff (base/dom-create :mock/pane {:hello 1} :a :b :c) (base/dom-create :mock/pane {:hello 2} :a :B :c)) => [:set :hello 2 1 [:update :children [:list-remove 1 1 [:list-insert 1 :B]]]]
dom-ops
multimethod
added in 3.0
converts a set of props into operations
(dom-ops :mock/pane {:a 1} {:b 2}) => [:set :b 2 nil :delete :a 1]
dom-ops-default
added in 3.0
(dom-ops-default tag props-old props-new)default implementation for diff-ops
(dom-ops-default :mock/pane {:a 1} {:b 2}) => [:set :b 2 nil :delete :a 1]