;i:ddlZddlmZddlmZddlmZmZmZm Z m Z m Z m Z ddl mZmZmZddlmZddlmZmZddlmZdd lmZejd Zd Zd ZGd dZdS)N) defaultdictwraps)AnyCallableDictIterableListOptionalUnion)DOMEventHandlerManipulationMode _dnd_state) ClassList) DOMPropType PropsDict)JavascriptException)EventContainer pywebviewc<tfd}|S)Nc6|djdvrdS|i|S)Nr)windowdocument)_node_id)argskwargsfuncs GC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\webview/dom/element.pywrapperz(_ignore_window_document..wrappers0 7 5 5 54tT$V$$$rrrs` r_ignore_window_documentr"s3 4[[%%%%[% Nr c<tfd}|S)Nc|djs+td|djddS |i|S#t$rs}|jdddkr*td|djdnt|Yd}~dSd}~wwxYw)NrzElement with id z has been removedcauseELEMENT_NOT_FOUND)_existsloggerwarningrrrget exception)rrers rrz_exists..wrappersAw  NNQd1g.>QQQ R R R F 4((( ("   vay}}W%%)<<<U$q'2BUUUVVVV  ### FFFFF  sA C A(B;;Crr!s` rr'r's3 4[[    [  Nr c eZdZd7dZeeedefdZeeede efdZ e j eededdfdZ eeede fdZ e j d eddfd Z eeedeeeffd Zej eed eeefddfd ZeedeeeffdZeeedeeeffdZej eedeeefddfdZeeedefdZej eededdfdZeeedefdZej eededdfdZeeedefdZeeedefdZeeedefdZej eededdfdZeed7dZeed7dZeeededfdZeeeded fd!Z eeeded fd"Z!eeeded fd#Z"eed7d$Z#eed7d%Z$eed7d&Z%eee&j'fd'eddfd(Z(eed7d)Z)eed7d*Z*eede&j'dfd+eedfdeddfd,Z+eee&j'fd+eedfddfd-Z,ed.ed/ee-e.fddfd0Z/ed.ed/e-ddfd1Z0ed2Z1edefd3Z2edefd4Z3ed5ddefd6Z4dS)8ElementreturnNc ||_t|_||_d|jd|jd|jd|jd|jd dd|_t t|_i|_ d |_ t||_ t|tj|_t|tj|_d|_|dS) Nz, var element; if ('zP' === 'document') { element = document; } else if ('zL' === 'window') { element = window; } else if ('z' === 'body') { element = document.body; } else { element = document.querySelector('[data-pywebview-id="zl"]'); } if (!element) { throw new Error('Element with pywebview-id zD not found', { cause: 'ELEMENT_NOT_FOUND' }); }  T)_windowreventsrreplace_query_commandrlist_event_handlers_event_handler_idsr'r_classesrrStyle_style Attribute _attributes_Element__original_display_Element__generate_events)selfrnode_ids r__init__zElement.__init__.s $&&   -  -   -  HL}  =AM   GD"  ! " +400"$ !$ k&788 $T;+@AA"&      r cj|j|jdS)Nz; element.tagName)r3 evaluate_jsr6lowerrAs rtagz Element.tagMs2|''4+>(Q(Q(QRRXXZZZr cF|j|jdS)Nz ; element.idr3rEr6rGs ridz Element.idSs&|''4+>(L(L(LMMMr rKcP|j|jd|ddS)Nz; element.id = ''r3run_jsr6)rArKs rrKz Element.idYs4 t2IIBIIIJJJJJr c|jSN)r:rGs rclasseszElement.classes_s }r rRc0t|||_dSrQ)rr:)rArRs rrRzElement.classeses!$00 r c|jSrQ)r>rGs r attributeszElement.attributesis r rUcFt|tj||_dSrQ)rrr=r>)rArUs rrUzElement.attributesos!%T;+@*MMr cF|j|jdS)Nz7; var r2 = pywebview._processElements([element])[0]; r2rJrGs rnodez Element.nodeus-|''" [ [ [   r c|jSrQ)r<rGs rstylez Element.style|s {r rZcFt|tj||_dSrQ)rrr;r<)rArZs rrZz Element.styles k&7?? r cF|j|jdS)Nz; element.tabIndexrJrGs rtabindexzElement.tabindexs&|''4+>(R(R(RSSSr tab_indexcN|j|jd|dS)Nz; element.tabIndex = rN)rAr^s rr]zElement.tabindexs1 t2TTTTUUUUUr cF|j|jdS)Nz; element.textContentrJrGs rtextz Element.texts&|''4+>(U(U(UVVVr racP|j|jd|ddS)Nz; element.textContent = 'rMrN)rAras rraz Element.texts4 t2TTTTTTUUUUUr cF|j|jdS)Nz; element.valuerJrGs rvaluez Element.values&|''4+>(O(O(OPPPr cF|j|jdS)Nz; element.offsetParent !== nullrJrGs rvisiblezElement.visibles&|''4+>(_(_(_```r cF|j|jdS)Nz$; document.activeElement === elementrJrGs rfocusedzElement.focuseds-|''" H H H   r rdcP|j|jd|ddS)Nz-; if ('value' in element) { element.value = 'z' }rN)rArds rrdz Element.values@ " ] ]RW ] ] ]     r cJ|j|jddS)Nz; element.blur()rNrGs rblurz Element.blurs, t2DDDEEEEEr cJ|j|jddS)Nz; element.focus()rNrGs rfocusz Element.focuss, t2EEEFFFFFr cfjdjd}fd|DS)N a; var children = element.children; var nodeIds = [] for (var i = 0; i < children.length; i++) { var nodeId = pywebview._getNodeId(children[i]); nodeIds.push(nodeId); } nodeIds c:g|]}tj|S)r.r3).0rBrAs r z$Element.children..s%GGG7 g..GGGr rJ)rAchildrens` rrtzElement.childrensS<++ -   - - -   HGGGhGGGGr )r.Ncz|jd|jd}|rt|j|ndS)Nrozs; var parent = element.parentElement; parent ? pywebview._getNodeId(parent) : null r3rEr6r.rArBs rparentzElement.parentS,**,  , , ,    29Bwt|W---dBr cz|jd|jd}|rt|j|ndS)Nroz; var nextSibling = element.nextElementSibling; nextSibling ? pywebview._getNodeId(nextSibling) : null rvrws rnextz Element.nextryr cz|jd|jd}|rt|j|ndS)Nroz; var previousSibling = element.previousElementSibling; previousSibling ? pywebview._getNodeId(previousSibling) : null rvrws rpreviouszElement.previousryr c|j|jd|_|j|jddS)N; element.style.displayz ; element.style.display = 'none'r3rEr6r?rOrGs rhidez Element.hidesW#',":":" ; ; ;# #  t2TTTUUUUUr c|j|jd}|dkr0|jpd}|j|jd|ddSdS)Nrnoneblockz; element.style.display = 'rMr)rAcurrent_displaydisplays rshowz Element.showsv,22d6I3b3b3bcc f $ $-8G L  4#6 ] ]SZ ] ] ] ^ ^ ^ ^ ^ % $r c|j|jd}|dkr|dS|dS)Nrr)r3rEr6rr)rArs rtogglezElement.toggle sR,22d6I3b3b3bcc f $ $ IIKKKKK IIKKKKKr htmlcD|jj|||SrQ)r3domcreate_element)rArmodes rappendzElement.appends!|..tT4@@@r cJ|j|jddS)Nz; element.innerHTML = ''rNrGs remptyz Element.emptys, t2LLLMMMMMr c|j|jd|j|jjjvr)|jjj|jdd|j D}|jd|di|_tt|_ d|_ dS)Nz; element.remove(),cg|]}d|d S)"rq)rr handler_ids rrsz"Element.remove..&s$ R R R:     R R Rr z var handlerIds = [z]; handlerIds.forEach(function(handlerId) { delete pywebview._eventHandlers[handler_id] }) F)r3rOr6rr _elementspopjoinr9valuesrr7r8r')rA handler_idss rremovezElement.removes t2FFFGGG =DL,6 6 6 L  & * *4= 9 9 9hh R R1H1O1O1Q1Q R R R    *      #%*400 r targetc t|tr |jj|}n ||j}|rd|d}nd}|jd|jd|jd|d|j d }t|j|}|j D] \}}|D]} | || !|S) NznewElement.id = "rz newElement.removeAttribute("id")roG; var target = document.querySelector('[data-pywebview-id="z"]'); var newElement = element.cloneNode(true); newElement.removeAttribute('data-pywebview-id'); zu; var nodeId = pywebview._getNodeId(newElement); pywebview._insertNode(newElement, target, 'z') nodeId; ) isinstancestrr3r get_elementrxrEr6rrdr.r8itemson) rArrrK id_commandrB new_elementeventhandlershandlers rcopyz Element.copy2s# fc " " !\%11&99FF ^[F  <2R222JJ;J,** ,   , , GM , ,  , , 9=  , , ,   dlG44 #399;; / /OE8# / /ug.... /r c t|tr|jj|}|jd|jd|jd|jd|S)Nrorz:"]'); pywebview._insertNode(element, target, 'z ') ) rrr3rrrOr6rrd)rArrs rmovez Element.moveTs fc " " :\%11&99F     GM  6:Z       r rcallbackc |j|jjjvr||jjj|j<t |t r%|jrdnd}|jrdnd}|j}|j }nd}d}d}d|jd}|dkr d|d|d n|}|j d |j d |d |d |d |d }|r*|j | |||j|<|dkrtdxxdz cc<dSdS)Nze.preventDefault();r2ze.stopPropagation();rzNwindow.pywebview._jsApiCallback('pywebviewEventHandler', { event: e, nodeId: 'z' }, 'eventHandler')z!pywebview._debounce(function() { z }, )roz; var handlerId = null if (element) { handlerId = Math.random().toString(36).substr(2, 11); pywebview._eventHandlers[handlerId] = function(e) { z z?; } element.addEventListener('zW', pywebview._eventHandlers[handlerId]); }; handlerId; drop num_listeners)rr3rrrr prevent_defaultstop_propagationdebouncerrEr6r8rr9r) rArrrrr callback_funcdebounced_funcrs rrz Element.onas = 0 : : :8
> > > ? ?r c t|SrQ)reprrGs r__str__zElement.__str__sDzzr ch|jddkrdS|jddkrdS|jdS)NnodeNamez #documentrz#windowr outerHTML)rXrGs r__repr__zElement.__repr__s= 9Z K / /: Yz "i / /89[) )r othercBt|do|j|jkS)Nr)hasattrr)rArs r__eq__zElement.__eq__s uj))Mdmu~.MMr )r/N)5__name__ __module__ __qualname__rCpropertyr'r"rrHr rKsetterrrRr rrrUrXrZintr]rardboolrfrhrkrmr rtr rxr{r}rrrr LastChildrrrrrrr rrr@rrrrqr rr.r.-sS !!!!> [S[[[ WX[ NHSMNNN WXNY KSKTKKK WYK  WX ^1x1D111^1  DcN    WX  NT#s(^NNNN WN  d38n    WX  tCH~ WX \ @4S>@d@@@ W\@ T#TTT WXT_ V#V$VVV W_V WcWWW WXW [ VVVVV W[V QsQQQ WXQ aaaa WXa      WX  \  3 4    W\  FFF WF GGG WG  H$y/ H H H WX H Co.CCC WXC CeO,CCC WXC C%0CCC WXC VVV WV  ___ W_  W %5%?AA3AIAAA WA NNN WN  W& .29I9S_cCN+Y\  W@ 7G7Q  5i0 V_    W  +-+-uX-F'G+-D+-+-+- W+-Z RRRTRRR WR2 ?? W?.  W *#*** W* NIN$NNN WNNNr r.)logging collectionsr functoolsrtypingrrrr r r r webview.domr rrwebview.dom.classlistrwebview.dom.propsdictrrwebview.errorsr webview.eventr getLoggerr(r"r'r.rqr rrsJ######GGGGGGGGGGGGGGGGGGEEEEEEEEEE++++++88888888......((((((  ; ' '&cNcNcNcNcNcNcNcNcNcNr