@@ -6,6 +6,7 @@ import events from "../../core/events";
66import logging from "../../core/logging" ;
77import Parser from "../../core/parser" ;
88import registry from "../../core/registry" ;
9+ import create_uuid from "../../core/uuid" ;
910import utils from "../../core/utils" ;
1011
1112const log = logging . getLogger ( "pat.inject" ) ;
@@ -136,26 +137,28 @@ const inject = {
136137 if ( ! cfgs [ 0 ] . delay ) {
137138 this . onTrigger ( { currentTarget : el } ) ;
138139 } else {
139- // generate UID
140- const uid = Math . random ( ) . toString ( 36 ) ;
141- el . setAttribute ( "data-pat-inject-uid " , uid ) ;
140+ // generate UUID
141+ const uuid = create_uuid ( ) ;
142+ el . setAttribute ( "data-pat-inject-uuid " , uuid ) ;
142143
143144 // function to trigger the autoload and mark as triggered
144- const delayed_trigger = ( uid_ ) => {
145+ const delayed_trigger = ( uuid_ ) => {
145146 // Check if the element has been removed from the dom
146147 const still_there = document . querySelector (
147- `[data-pat-inject-uid ="${ uid_ } "]`
148+ `[data-pat-inject-uuid ="${ uuid_ } "]`
148149 ) ;
149150 if ( ! still_there ) {
150151 return false ;
151152 }
152153
153154 $el . data ( "pat-inject-autoloaded" , true ) ;
154155 this . onTrigger ( { currentTarget : el } ) ;
156+ // Cleanup again.
157+ still_there . removeAttribute ( "data-pat-inject-uuid" ) ;
155158 return true ;
156159 } ;
157160 window . setTimeout (
158- delayed_trigger . bind ( null , uid ) ,
161+ delayed_trigger . bind ( null , uuid ) ,
159162 cfgs [ 0 ] . delay
160163 ) ;
161164 }
0 commit comments