@@ -129,7 +129,7 @@ const CoCreateApi = {
129129 } else {
130130 CoCreateApi . setData ( object ) ;
131131
132- document . dispatchEvent (
132+ object . element . dispatchEvent (
133133 new CustomEvent ( object . endEvent , {
134134 detail : {
135135 data : object
@@ -167,13 +167,14 @@ const CoCreateApi = {
167167 if ( ! elements [ i ] || elements [ i ] . closest ( "[template]" ) ) continue ;
168168 let key = elements [ i ] . getAttribute ( `${ name } -key` ) ;
169169 if ( key ) {
170- let value = await elements [ i ] . getValue ( ) ;
170+ let value =
171+ elements [ i ] . stripeElement || ( await elements [ i ] . getValue ( ) ) ;
171172 if ( key . endsWith ( "[]" ) ) {
172173 if ( ! data [ key ] ) data [ key ] = [ ] ;
173174
174175 if ( Array . isArray ( value ) ) data [ key ] . push ( ...value ) ;
175176 else data [ key ] . push ( value ) ;
176- } else data [ key ] = await elements [ i ] . getValue ( ) ;
177+ } else data [ key ] = value ;
177178 }
178179
179180 let endpoint = elements [ i ] . getAttribute ( "endpoint" ) ;
@@ -212,7 +213,9 @@ const CoCreateApi = {
212213 let form = object . form ;
213214 if ( ! form ) form = document ;
214215
215- let elements = form . querySelectorAll ( `[${ name } ="${ object . method } "]` ) ;
216+ let elements = form . querySelectorAll (
217+ `[${ name } ="${ object . method } "]:not([${ name } -response="false"])`
218+ ) ;
216219 if ( ! elements || elements . length == 0 ) return ;
217220
218221 for ( let i = 0 ; i < elements . length ; i ++ ) {
@@ -229,13 +232,24 @@ const CoCreateApi = {
229232 selector : `[template="${ templateid } "]` ,
230233 data
231234 } ) ;
235+ } else if ( elements [ i ] . renderValue ) {
236+ let key = elements [ i ] . getAttribute ( `${ name } -key` ) ;
237+ if ( key === "{}" ) {
238+ elements [ i ] . renderValue ( data [ name ] ) ;
239+ } else {
240+ let value = getValueFromObject ( data [ name ] , key ) ;
241+ if ( typeof value === "function" ) {
242+ value = value ( ) ; // Call the function and assign its return value.
243+ }
244+ elements [ i ] . renderValue ( value ) ;
245+ }
232246 } else {
233247 let key = elements [ i ] . getAttribute ( `${ name } -key` ) ;
234248 if ( key === "{}" ) elements [ i ] . setValue ( data [ name ] ) ;
235249 else {
236250 let value = getValueFromObject ( data [ name ] , key ) ;
237251 if ( typeof value === "function" ) {
238- value = value ( ) ; // Call the function and assign its return value
252+ value = value ( ) ; // Call the function and assign its return value.
239253 }
240254 elements [ i ] . setValue ( value ) ;
241255 }
0 commit comments