Releases: finom/seemple
v2.0.0-alpha.5
<a name"2.0.0-alpha.5">
2.0.0-alpha.5 (2016-09-20)
Bug Fixes
- Move isMatreshka, isMatreshkaObject, isMatreshkaArray to prototype (53b3806a)
v2.0.0-alpha.4
<a name"2.0.0-alpha.4">
2.0.0-alpha.4 (2016-09-20)
Bug Fixes
- Return 'this' from Array#rerender (fdbd1e89)
v2.0.0-alpha.3
v2.0.0-alpha.2
<a name"2.0.0-alpha.2">
2.0.0-alpha.2 (2016-09-19)
Bug Fixes
- Trim renderer HTML if selector is used (3b6defb5)
v2.0.0-alpha.0
The documentation for v2 lives there, the branch of the repo is "next".
There are many changes described below but the main change is ideological one: Matreshka.js is now positioned as "framework for beginners". This solution is made watching on whos usually used Matreshka.js for the last few years.
Another big change is that releases will be published right after a fix is made or a feature is added, thanks to semantic-release. That means sometimes you can notice few releases at the same day but this is normal.
The changes
Matreshka is rewritten from scratch and the goals was to
- Get rid of things that the framework actually doesn't need
- Increase the performance
- Get rid of potential memory leaks
- Split features into small modules
- Make nice ECMAScript 2015+ code
- Make f..g huge review of everything
❗ - breaking change
❕ - unlikely breaking change
Removed things
- ❗
Matreshka.delay
- ❗
Matreshka#delay
- ❗
Matreshka.define
- ❗
Matreshka#define
- ❗
Matreshka.defineSetter
- ❗
Matreshka#defineSetter
- ❗
Matreshka.defineGetter
- ❗
Matreshka#defineGetter
- ❗
Matreshka#getAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything
- ❗
Matreshka.trim
- ❗
Matreshka.orderBy
- ❗
Matreshka.noop
- ❗
Matreshka.extend
- ❗
Matreshka.each
- ❗
Matreshka.bound
- ❗
Matreshka#bound
- ❗
Matreshka.$bound
- ❗
Matreshka#$bound
- ❗
Matreshka.boundAll
- ❗
Matreshka#boundAll
- ❗
Matreshka.randomString
(moved there) - ❗
Matreshka.get
- ❗
Matreshka#get
- ❗
Matreshka.deepFind
- ❗
Matreshka.setProto
- ❗
Matreshka.toArray
- ❗
Matreshka.version
- ❗
Matreshka#sandbox
- ❗
Matreshka#$sandbox
- ❗
Matreshka.Object#toNative
- ❗
Matreshka.Object#toObject
- ❗
Matreshka.Array#toNative
- ❗
Matreshka.Array#toArray
- ❗
Matreshka.binders.file
(moved there) - ❗
Matreshka.binders.dropFile
(moved there) - ❗
Matreshka.binders.dragOver
(moved there) - ❗
Matreshka.Array#each
- ❗
Matreshka.Array#hasOwnProperty
- ❗
Matreshka.Array#useBindingsParser
- ❗
Matreshka.Object#hasOwnProperty
- ❗
window.Class
(use `Matreshka.Class`` instead) - ❗
window.$b
,Matreshka.$b
- ❗
Matreshka.$
- ❗
matreshka-magic
library - ❗
Matreshka.binders.innerHTML
- ❗
Matreshka.binders.innerText
- ❗
Matreshka.binders.attribute
- ❗
Matreshka.binders.property
Renamed methods and properties
- ❗
Matreshka#linkProps
->Matreshka#calc
- ❗
Matreshka.to
->Matreshka.toMatreshka
- ❗
Matreshka#setClassFor
->Matreshka#instantiate
Matreshka.Object#jset
->Matreshka.Object#setData
(jset
still exists)- ❗
Matreshka#isMK
->Matreshka#isMatreshka
- ❗
Matreshka.Object#isMKObject
->Matreshka.Object#isMatreshkaObject
- ❗
Matreshka.Array#isMKArray
->Matreshka#isMatreshkaArray
- ❗
Matreshka.useAs$
->Matreshka.useDOMLibrary
Changes in methods bindNode
and unbindNode
- ❗ No more
{ key: [node, binder] }
syntax. - ❗ No more "heap of arguments" syntax.
- New syntax
([{key, node, binder, event}], commonEventOptions)
. - New syntax
{key: { node, binder }}
and{key: [{ node, binder }]}
. (Eureka! It makes us to callbindNode
only once per many bindings). - ❕ Events
bind
,bind:KEY
are fired once per node. - ❕
unbind
,unbind:KEY
are fired once per node. useExactBinder
event option- ❗
assignDefaultValue
event option is renamed togetValueOnBind
setValueOnBind
event option- ❗
debounce
event option is removed - ❕
debounceSetValue
event option (now true by default) - ❕
debounceGetValue
event option (now true by default) debounceSetValueOnBind
event optiondebounceGetValueOnBind
event option- ❗
exactKey
event option instead ofdeep
For more info check out bindNode and unbindNode
Changes in binders
destroy
member for binders.- ❗
className
binder doesn't support "!" syntax anymore, useswitcher=false
instead. bindingOptions
argument for all binder members (eggetValue(bindingOptions) {...}
).
For more info check out bindNode and binders
Changes in parseBindings
- The method accepts
eventOptions
argument {{things}}
are not replaced byspan
element.- ❗ The first argument is required.
For more info check out parseBindings
Changes in bindSandbox
- It now re-binds sandbox.
For more info check out bindSandbox
Changes in calc
(previously called linkProps
)
- ❗
debounce
event option is renamed todebounceCalc
- ❕
debounceCalc
is true by default debounceCalcOnInit
event optionexactKey
event option- ❗
skipCalc
can be used instead ofskipLinks
can be used inset
methd to skipcalc
handlers - ❗ No more
[inst, key, inst, key]
syntax - New syntax
{ target: {source, event, handler} }
(Eureka! It makes us to callcalc
only once per many definitions). - New syntax
[{object, key}]
.
For more info check out calc
Changes in Matreshka.Array
- ❗
skipMediator
event option is renamed toskipItemMediator
. - ❕
pull
method supports only object or number as its argument. from
andof
static methods can be inherited.- ❗
addone
event object containsaddedItem
instead ofadded
. - ❗
removeone
event object containsremovedItem
instead ofremoved
. - ❕ does not wrap renderer with
span
element. useBindingsParser
property is removed.- ❗ Bindings parser is enabled by default for renderer.
For more info check out Matreshka.Array, pull, from, of, itemRenderer
Changes in Matreshka.Object
set
event is fired when data property was reassigned but not removed.jset
method is renamed tosetData
(but still exists in the framework)replaceData
event option forsetData
method.isDataKey
method
For more info check out Matreshka.Object, setData, isDataKey
Changes in Matreshka.Class
- Static methods are inherited
- Symbols are supported as prototype and static properties/methods
For more info check out Matreshka.Class
Other changes
- ❗ Not allowed to get ot set
sandbox
for all objects used in the framework. - ❗ Not allowed to get ot set
container
forMatreshka.Array
instances. - ❗ "List of the keys separated by spaces" no longer supported in all methods.
- Some hidden bugs are fixed
- All classes and functions can be imported nicely (eg
import text from 'matreshka/binders/text'
) - Clear errors
Matreshka v1.9.1
setValue
for all built-in binders has non-undefined value. It allows to usefile
anddropFiles
together.
Matreshka v1.9.0
- New binder Matreshka.binders.dragOver.
- Minor changes in
linkProps
algorithm. - Fixed bugs:
addDataKeys
didn't work correctly when many keys are passed.- An argument of
getValue
always gotundefined
as value ofnode
property. bindNode
: couldn't use same key-value pair more than once.
Matreshka v1.8.1
- Fixed some issues in bindings parser
- Fixed weird behavior of MK.Array#restore
Matreshka v1.8.0
- The new binder Matreshka.binders.dropFiles which allows to drop files to given block from file manager.
- Fixed bug: delegated events didn't work correctly when a selector with commas is given (eg
click::key(.a, .b, .c)
). - Fixed bug:
assignDefaultProperty: true
forMatreshka#bindNode
didn't force extraction of property value from given node. - The
Matreshka
class is inherited fromObject.prototype
instead ofnull
. It fixes two issues: invisible__proto__
and an absence of an autocompletition in developer tools.
Matreshka v1.7.1
- Fixed bug:
unbindNode
didn't accept key-node object.