22*
33* ModelView.js
44* @version : 5.0.0
5- * @built on 2022-03-28 13:18:57
5+ * @built on 2022-03-28 20:00:42
66*
77* A simple, light-weight, versatile and fast isomorphic MVVM JavaScript framework (Browser and Server)
88* https://github.com/foo123/modelview.js
1111*
1212* ModelView.js
1313* @version : 5.0.0
14- * @built on 2022-03-28 13:18:57
14+ * @built on 2022-03-28 20:00:42
1515*
1616* A simple, light-weight, versatile and fast isomorphic MVVM JavaScript framework (Browser and Server)
1717* https://github.com/foo123/modelview.js
@@ -1492,7 +1492,7 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
14921492 return function ( view , r , v ) {
14931493 u && u ( view , r , v ) ;
14941494 if ( false === val ) del_att ( r , att , v . nodeType ) ;
1495- else set_att ( r , att , val , v . nodeType ) ;
1495+ else set_att ( r , att , val , v . nodeType , true ) ;
14961496 } ;
14971497 } ) ( node . uAtts , a [ i ] . name , v ) ;
14981498 }
@@ -1514,7 +1514,7 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
15141514 return function ( view , r , v , forced ) {
15151515 u && u ( view , r , v , forced ) ;
15161516 if ( false === val ) del_att ( r , att , v . nodeType ) ;
1517- else set_att ( r , att , val , v . nodeType ) ;
1517+ else set_att ( r , att , val , v . nodeType , forced ) ;
15181518 } ;
15191519 } ) ( node . uFAtts , a [ i ] . name , v . val ( ) ) ;
15201520 }
@@ -1554,6 +1554,7 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
15541554 node . changed = node . changed || nn . changed ;
15551555 node . simple = false ;
15561556 node . uNodes = null ;
1557+ node . uFNodes = null ;
15571558 return childNodes ;
15581559 }
15591560 else if ( is_array ( n ) )
@@ -1562,6 +1563,7 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
15621563 node . changed = true ;
15631564 node . simple = false ;
15641565 node . uNodes = null ;
1566+ node . uFNodes = null ;
15651567 if ( ! node . modified ) node . modified = { atts : [ ] , nodes : [ ] } ;
15661568 childNodes = flatten ( n ) . reduce ( process , childNodes ) ;
15671569 insMod ( node . modified . nodes , i , index - 1 , true , 'array' ) ;
@@ -1581,8 +1583,9 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
15811583 if ( n . changed )
15821584 {
15831585 n . uNodes = ( function ( val ) {
1584- return function ( view , r , v , forced ) {
1585- r . nodeValue = val ;
1586+ return function ( view , r , v ) {
1587+ //if (r.nodeValue !== val)
1588+ r . nodeValue = val ;
15861589 } ;
15871590 } ) ( v ) ;
15881591 }
@@ -1617,48 +1620,16 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
16171620 if ( ! node . modified ) node . modified = { atts : [ ] , nodes : [ ] } ;
16181621 new_mod = insMod ( node . modified . nodes , index , index + n . childNodes . length - 1 , new_mod , '' ) ;
16191622 node . changed = node . changed || n . changed ;
1620- if ( ! n . simple )
1621- {
1622- node . simple = false ;
1623- node . uNodes = null ;
1624- }
1623+ node . simple = false ;
1624+ node . uNodes = null ;
1625+ node . uFNodes = null ;
16251626 AP . push . apply ( childNodes , n . childNodes . map ( function ( nn ) {
16261627 nn . parentNode = node ;
16271628 nn . index = index ++ ;
16281629 //nn.changed = nn.changed || n.changed;
16291630 nn . component = nn . component || n . component ;
16301631 nn . unit = nn . unit || n . unit ;
1631- if ( nn . unit )
1632- {
1633- node . changed = true ;
1634- node . simple = false ;
1635- node . uNodes = null ;
1636- }
1637- if ( node . simple )
1638- {
1639- if ( nn . uAtts || nn . uNodes )
1640- {
1641- node . uNodes = ( function ( u , ua , un , index ) {
1642- return function ( view , r , v ) {
1643- u && u ( view , r , v ) ;
1644- var rnode = r . childNodes [ index ] , vnode = v . childNodes [ index ] ;
1645- ua && ua ( view , rnode , vnode ) ;
1646- un && un ( view , rnode , vnode ) ;
1647- } ;
1648- } ) ( node . uNodes , nn . uAtts , nn . uNodes , nn . index ) ;
1649- }
1650- if ( nn . uFAtts || nn . uFNodes )
1651- {
1652- node . uFNodes = ( function ( u , ua , un , index ) {
1653- return function ( view , r , v , forced ) {
1654- u && u ( view , r , v , forced ) ;
1655- var rnode = r . childNodes [ index ] , vnode = v . childNodes [ index ] ;
1656- ua && ua ( view , rnode , vnode , forced ) ;
1657- un && un ( view , rnode , vnode , forced ) ;
1658- } ;
1659- } ) ( node . uFNodes , nn . uFAtts , nn . uFNodes , nn . index ) ;
1660- }
1661- }
1632+ if ( nn . unit ) node . changed = true ;
16621633 return nn ;
16631634 } ) ) ;
16641635 return childNodes ;
@@ -1676,6 +1647,7 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
16761647 node . changed = node . changed || n . changed ;
16771648 node . simple = false ;
16781649 node . uNodes = null ;
1650+ node . uFNodes = null ;
16791651 return childNodes ;
16801652 }
16811653 else if ( 'dyn' === n . nodeType )
@@ -1696,6 +1668,7 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
16961668 node . changed = true ;
16971669 node . simple = false ;
16981670 node . uNodes = null ;
1671+ node . uFNodes = null ;
16991672 return childNodes ;
17001673 }
17011674 else if ( ! n . nodeType || ! n . nodeType . length )
@@ -1718,6 +1691,7 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
17181691 node . changed = true ;
17191692 node . simple = false ;
17201693 node . uNodes = null ;
1694+ node . uFNodes = null ;
17211695 }
17221696 if ( node . simple )
17231697 {
@@ -1762,12 +1736,14 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified, cr
17621736 {
17631737 node . simple = false ;
17641738 node . uNodes = null ;
1739+ node . uFNodes = null ;
17651740 }
17661741 if ( n . unit )
17671742 {
17681743 node . changed = true ;
17691744 node . simple = false ;
17701745 node . uNodes = null ;
1746+ node . uFNodes = null ;
17711747 }
17721748 if ( node . simple )
17731749 {
@@ -2111,7 +2087,7 @@ function del_att(r, n, T/*, TT*/)
21112087 }
21122088 return r ;
21132089}
2114- function set_att ( r , n , s , T , TT , forced )
2090+ function set_att ( r , n , s , T /* , TT*/ , forced )
21152091{
21162092 var t ;
21172093 if ( 'id' === n )
@@ -2133,7 +2109,7 @@ function set_att(r, n, s, T, TT, forced)
21332109 'indeterminate' === n || 'loop' === n || 'muted' === n || 'novalidate' === n ||
21342110 'open' === n || 'readOnly' === n || 'reversed' === n || 'scoped' === n || 'seamless' === n )
21352111 {
2136- r [ n ] = true ;
2112+ r [ n ] = ! ! s ;
21372113 }
21382114 else if ( 'value' === n )
21392115 {
@@ -2225,7 +2201,7 @@ function morphAttsAll(view, r, v)
22252201 av = av . val ( ) ;
22262202 }
22272203 if ( false === av ) del_att ( r , n , T /*, TT*/ ) ;
2228- else set_att ( r , n , av , T , TT , true ) ;
2204+ else set_att ( r , n , av , T /* , TT*/ , true ) ;
22292205 }
22302206 return r ;
22312207}
@@ -2313,9 +2289,12 @@ function morphSingle(view, r, rnode, vnode, forced)
23132289 {
23142290 // skips further modifiedNodes matched tests, assumes matched
23152291 vnode . uAtts && vnode . uAtts ( view , rnode , vnode ) ;
2316- forced && vnode . uFAtts && vnode . uFAtts ( view , rnode , vnode , forced ) ;
23172292 changed && vnode . uNodes && vnode . uNodes ( view , rnode , vnode ) ;
2318- forced && vnode . uFNodes && vnode . uFNodes ( view , rnode , vnode , forced ) ;
2293+ if ( forced )
2294+ {
2295+ vnode . uFAtts && vnode . uFAtts ( view , rnode , vnode , forced ) ;
2296+ vnode . uFNodes && vnode . uFNodes ( view , rnode , vnode , forced ) ;
2297+ }
23192298 }
23202299 else if ( '<textarea>' === T )
23212300 {
@@ -2943,7 +2922,7 @@ function morph(view, r, v, forced)
29432922 else
29442923 {
29452924 count = ( modifiedNodesPrev [ mi ] . to - modifiedNodesPrev [ mi ] . from + 1 ) - ( m . to - m . from + 1 ) ;
2946- morphSelectedNodes ( view , r , v , m . from , m . to , m . to , m . from - offset , count , ( 'array' === m . type ) || forced ) ;
2925+ morphSelectedNodes ( view , r , v , m . from , m . to , m . to , m . from - offset , count , 'array' === m . type ? true : forced ) ;
29472926 }
29482927 offset += ( vc !== vpc && 'collection' === vNodes [ m . from - offset ] . nodeType ? m . to - m . from : 0 ) ;
29492928 }
@@ -6864,11 +6843,8 @@ collection.set(newData);
68646843 var self = this ;
68656844 if ( 1 === arguments . length )
68666845 {
6867- if ( self . _items !== index )
6868- {
6869- self . _items = index ;
6870- self . reset ( ) . _upd ( 'set' , 0 , self . _items . length - 1 ) ;
6871- }
6846+ self . _items = index ;
6847+ self . reset ( ) . _upd ( 'set' , 0 , self . _items . length - 1 ) ;
68726848 }
68736849 else if ( 2 === arguments . length )
68746850 {
0 commit comments