!function(global){var transport=global._Brackets_LiveDev_Transport,MessageBroker={handlers:{},trigger:function(msg){var msgHandlers;msg.method?(msgHandlers=this.handlers[msg.method])&&msgHandlers.length>0?msgHandlers.forEach(function(handler){try{return void handler(msg)}catch(e){return void console.error("[Brackets LiveDev] Error executing a handler for "+msg.method,e.stack)}}):console.warn("[Brackets LiveDev] No subscribers for message "+msg.method):console.error("[Brackets LiveDev] Received message without method.")},respond:function(orig,response){orig.id?(response.id=orig.id,this.send(response)):console.error("[Brackets LiveDev] Trying to send a response for a message with no ID")},on:function(method,handler){method&&handler&&(this.handlers[method]||(this.handlers[method]=[]),this.handlers[method].push(handler))},send:function(msgStr){transport.send(JSON.stringify(msgStr))}};global._Brackets_MessageBroker=MessageBroker;var Runtime={evaluate:function(msg){try{var result=eval(msg.params.expression);MessageBroker.respond(msg,{result:JSON.stringify(result)})}catch(e){console.error("[Brackets LiveDev] Runtime.evaluate failed",e),MessageBroker.respond(msg,{error:String(e&&e.message||e)})}}};MessageBroker.on("Runtime.evaluate",Runtime.evaluate);var CSS={setStylesheetText:function(msg){if(msg&&msg.params&&msg.params.text&&msg.params.url){var i,node,head=window.document.getElementsByTagName("head")[0],s=window.document.createElement("style");for(s.type="text/css",s.appendChild(window.document.createTextNode(msg.params.text)),i=0;i{console.error(`PhoenixComm: Error executing LP function ${fnName}`,err)})}catch(e){console.error(`PhoenixComm: Error executing LP function ${fnName}`,e)}else console.error(`PhoenixComm: No such LP function ${fnName}`)}let currentFnExecID=1,lpCommReady=!1;const pendingExecPromises=new Map;let queuedExecRequests=[];const PHOENIX_FN_TIMEOUT_MS=3e4;function _sendOrQueueExec(payload){lpCommReady?MessageBroker.send(payload):queuedExecRequests.push(payload)}function _flushQueuedExecRequests(){if(lpCommReady&&0!==queuedExecRequests.length){for(let i=0;i{const fnExecID=currentFnExecID++,timer=setTimeout(function(){pendingExecPromises.has(fnExecID)&&(pendingExecPromises.delete(fnExecID),queuedExecRequests=queuedExecRequests.filter(function(req){return req.fnExecID!==fnExecID}),reject(new Error(`execPhoenixFn timed out: ${fnName}`)))},PHOENIX_FN_TIMEOUT_MS);pendingExecPromises.set(fnExecID,{resolve:resolve,reject:reject,timer:timer}),_sendOrQueueExec({execFnName:fnName,paramObj:paramObj,fnExecID:fnExecID})})}};function _setPCommReady(){lpCommReady=!0,_flushQueuedExecRequests()}function _onPhoenixExecResponse(fnName,fnExecID,resolveWith,rejectWith){const pendingPromise=pendingExecPromises.get(fnExecID);pendingPromise?(pendingExecPromises.delete(fnExecID),pendingPromise.timer&&clearTimeout(pendingPromise.timer),rejectWith?pendingPromise.reject(rejectWith):pendingPromise.resolve(resolveWith)):console.error(`execPhoenixFn: No response promise found! for ${fnName}: ${fnExecID}`)}function getAllInheritedSelectorsInOrder(element){let selectorsFound=new Map;const selectorsList=[];for(;element;)element.id&&selectorsList.push(`#${element.id}`),element.classList&&element.classList.forEach(cls=>{selectorsFound.get(cls)||(selectorsFound.set(cls,!0),selectorsList.push(`.${cls}`))}),element=element.parentElement;return selectorsList}function onDocumentClick(event){const selection=window.getSelection();var element=event.target;if(element&&(element.closest(".phcode-dismiss-lp-edit")||element.classList.contains("phcode-dismiss-lp-edit-this")))return window._LD&&window._LD.dismissUIAndCleanupState&&window._LD.dismissUIAndCleanupState(),event.preventDefault(),void event.stopPropagation();if((!element||!element.closest(".phcode-no-lp-edit")&&!element.classList.contains("phcode-no-lp-edit-this"))&&element&&element.hasAttribute("data-brackets-id"))if(2!==event.detail||["INPUT","TEXTAREA","SELECT"].includes(element.tagName)){if(selection.toString().length>0)return;if(window._LD&&!window._LD.isSyncEnabled()){var tagId=element.getAttribute("data-brackets-id");return void window._LD.highlightRule("[data-brackets-id='"+tagId+"']")}MessageBroker.send({tagId:element.getAttribute("data-brackets-id"),nodeID:element.id,nodeClassList:element.classList,nodeName:element.nodeName,allSelectors:getAllInheritedSelectorsInOrder(element),contentEditable:"true"===element.contentEditable,clicked:!0})}else window._LD&&window._LD.DOMEditHandler?window._LD.startEditing(element):MessageBroker.send({tagId:element.getAttribute("data-brackets-id"),nodeID:element.id,nodeClassList:element.classList,nodeName:element.nodeName,allSelectors:getAllInheritedSelectorsInOrder(element),contentEditable:"true"===element.contentEditable,clicked:!0,edit:!0}),event.preventDefault(),event.stopPropagation()}PhoenixComm.registerLpFn("PH_LP_COMM_READY",_setPCommReady),global._Brackets_LiveDev_PhoenixComm=PhoenixComm,window.addEventListener("load",function(){ProtocolManager.enable()}),global.getAllInheritedSelectorsInOrder=getAllInheritedSelectorsInOrder,window.document.addEventListener("click",onDocumentClick)}(this);