1- import { $ , contains , isEmpty , walk } from "./utils.js" ;
1+ import { $ , contains , hasValue , isEmpty , walk } from "./utils.js" ;
22import { debounce } from "./delayers.js" ;
33import { Element } from "./element.js" ;
44import { send } from "./messageSender.js" ;
@@ -80,30 +80,28 @@ export class Component {
8080
8181 if ( element . isUnicorn ) {
8282 if (
83- ! isEmpty ( element . field ) &&
84- ! ( isEmpty ( element . db ) && isEmpty ( element . model ) )
83+ hasValue ( element . field ) &&
84+ ( hasValue ( element . db ) || hasValue ( element . model ) )
8585 ) {
86- if ( ! this . attachedDbEvents . some ( ( e ) => e . el . isSameNode ( element . el ) ) ) {
86+ if ( ! this . attachedDbEvents . some ( ( e ) => e . isSame ( element ) ) ) {
8787 this . attachedDbEvents . push ( element ) ;
8888 addDbEventListener ( this , element . el , element . field . eventType ) ;
8989 }
9090
91- if ( ! this . dbEls . some ( ( e ) => e . el . isSameNode ( element . el ) ) ) {
91+ if ( ! this . dbEls . some ( ( e ) => e . isSame ( element ) ) ) {
9292 this . dbEls . push ( element ) ;
9393 }
9494 } else if (
95- ! isEmpty ( element . model ) &&
95+ hasValue ( element . model ) &&
9696 isEmpty ( element . db ) &&
9797 isEmpty ( element . field )
9898 ) {
99- if (
100- ! this . attachedModelEvents . some ( ( e ) => e . el . isSameNode ( element . el ) )
101- ) {
99+ if ( ! this . attachedModelEvents . some ( ( e ) => e . isSame ( element ) ) ) {
102100 this . attachedModelEvents . push ( element ) ;
103101 addModelEventListener ( this , element . el , element . model . eventType ) ;
104102 }
105103
106- if ( ! this . modelEls . some ( ( e ) => e . el . isSameNode ( element . el ) ) ) {
104+ if ( ! this . modelEls . some ( ( e ) => e . isSame ( element ) ) ) {
107105 this . modelEls . push ( element ) ;
108106 }
109107 }
@@ -154,7 +152,7 @@ export class Component {
154152 initPolling ( ) {
155153 const rootElement = new Element ( this . root ) ;
156154
157- if ( rootElement . isUnicorn && ! isEmpty ( rootElement . poll ) ) {
155+ if ( rootElement . isUnicorn && hasValue ( rootElement . poll ) ) {
158156 this . poll = rootElement . poll ;
159157 this . poll . timer = null ;
160158
@@ -250,7 +248,7 @@ export class Component {
250248 // Empty string for the PK implies that the model is not associated to an actual model instance
251249 element . setValue ( "" ) ;
252250 } else {
253- if ( typeof element . model . name === "undefined" ) {
251+ if ( isEmpty ( element . model . name ) ) {
254252 throw Error ( "Setting a field value requires a model to be set" ) ;
255253 }
256254
@@ -285,8 +283,8 @@ export class Component {
285283 const lastTriggeringElement = triggeringElements . slice ( - 1 ) [ 0 ] ;
286284
287285 if (
288- typeof lastTriggeringElement !== "undefined" &&
289- ! isEmpty ( lastTriggeringElement . model ) &&
286+ hasValue ( lastTriggeringElement ) &&
287+ hasValue ( lastTriggeringElement . model ) &&
290288 ! lastTriggeringElement . model . isLazy
291289 ) {
292290 [ "id" , "key" ] . forEach ( ( attr ) => {
@@ -309,7 +307,7 @@ export class Component {
309307 let shouldSetValue = false ;
310308
311309 triggeringElements . forEach ( ( triggeringElement ) => {
312- if ( ! element . el . isSameNode ( triggeringElement . el ) ) {
310+ if ( ! element . isSame ( triggeringElement ) ) {
313311 shouldSetValue = true ;
314312 }
315313 } ) ;
0 commit comments