Current section

Files

Jump to
wallabidi priv wallabidi.min.js
Raw

priv/wallabidi.min.js

if(window.__w)return;var W=window.__w={};W.queries={};function fireInputChange(e){e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}))}function send(e){try{__wallabidi(JSON.stringify(e))}catch{}}function newPageId(){return Date.now()+"-"+Math.random().toString(36).slice(2,8)}function wrapPatchEnd(e){var n=window.liveSocket;if(!n||!n.domCallbacks)return function(){};var t=n.domCallbacks.onPatchEnd;return n.domCallbacks.onPatchEnd=function(a){t&&t(a),e(a)},function(){n.domCallbacks.onPatchEnd=t}}W.isVisible=function(e){if(!e.isConnected||e.ownerDocument&&e.ownerDocument.head&&e.ownerDocument.head.contains(e))return!1;if(e.tagName==="OPTION"){var n=e.closest("select");if(!n)return!0;var t=getComputedStyle(n);return t.display!=="none"&&t.visibility!=="hidden"}var a=getComputedStyle(e);if(a.display==="none"||a.visibility==="hidden")return!1;var i=e.getBoundingClientRect();return!(i.width===0&&i.height===0&&e.offsetParent===null&&a.position!=="fixed")},W.clickEl=function(e){if(e){if(e.tagName!=="OPTION"&&e.scrollIntoView({block:"center",inline:"nearest"}),e.tagName==="OPTION"){var n=e.closest("select");n&&!n.multiple?(n.value=e.value,Array.from(n.options).forEach(function(a){a.selected=a===e})):e.selected=!e.selected,n&&n.dispatchEvent(new Event("change",{bubbles:!0}));return}var t=e.closest("form");if(t&&(e.type==="reset"||e.tagName==="BUTTON"&&e.type==="reset")){Array.from(t.elements).forEach(function(a){a.type==="checkbox"||a.type==="radio"?a.checked=a.defaultChecked:a.tagName==="SELECT"?Array.from(a.options).forEach(function(i){i.selected=i.defaultSelected}):"defaultValue"in a&&(a.value=a.defaultValue)}),t.dispatchEvent(new Event("reset",{bubbles:!0}));return}e.focus(),e.click()}},W.classify=function(e,n){if(!e)return"none";if(n==="click"){var t=e.closest("[data-phx-link]");if(t)return t.getAttribute("data-phx-link")==="redirect"?"navigate":"patch";var a=e.getAttribute("phx-click");if(a)return a.startsWith("[")?a.indexOf('"navigate"')!==-1?"navigate":a.indexOf('"patch"')!==-1||a.indexOf('"push"')!==-1?"patch":"none":"patch";var i=e.type==="submit"||e.type==="image"||e.tagName==="BUTTON"&&e.type!=="reset"&&e.type!=="button";if(i){var r=e.closest("form");if(r&&r.hasAttribute("phx-trigger-action"))return"full_page";if(r&&r.getAttribute("phx-submit"))return"patch";if(r)return"full_page"}var c=e.closest("a[href]");if(c&&c.getAttribute("href")&&!c.getAttribute("href").startsWith("#")){var o=c.getAttribute("target");return o&&o!=="_self"&&o!=="_top"&&o!=="_parent"||c.hasAttribute("onclick")?"none":"full_page"}return"none"}if(n==="change"){var u=e.getAttribute("phx-change")||e.form&&e.form.getAttribute("phx-change");return u?"patch":"none"}return"none"},W.STALE={__wallabidi_stale:!0},W.attribute=function(e,n){return e&&!e.isConnected?W.STALE:n==="value"&&"value"in e?e.value:n==="checked"?e.checked?"true":null:n==="selected"?e.selected?"true":null:n==="outerHTML"?e.outerHTML:n==="innerHTML"?e.innerHTML:e.getAttribute(n)},W.text=function(e){var n=["DIV","P","H1","H2","H3","H4","H5","H6","LI","TR","BR","SECTION","ARTICLE","HEADER","FOOTER","NAV","MAIN","UL","OL","DL","BLOCKQUOTE","PRE","TABLE","THEAD","TBODY","TFOOT","FORM","FIELDSET","HR"];function t(i){if(i.nodeType===3)return i.nodeValue.replace(/\s+/g," ");if(i.nodeType!==1)return"";if(i.tagName==="BR")return`
`;for(var r=[],c=0;c<i.childNodes.length;c++)r.push(t(i.childNodes[c]));var o=r.join("");return n.indexOf(i.tagName)>=0&&(o=`
`+o+`
`),o}var a=t(e);return a.split(`
`).map(function(i){return i.trim()}).filter(Boolean).join(`
`)},W.rect=function(e,n){var t=e.getBoundingClientRect();switch(n){case"size":return[Math.round(t.width),Math.round(t.height)];case"position":return[Math.round(t.x),Math.round(t.y)];case"center":return{x:t.x+t.width/2,y:t.y+t.height/2};case"origin":return{x:t.x,y:t.y};default:return{x:t.x,y:t.y,width:t.width,height:t.height}}},W.setValue=function(e,n){var t=e.tagName,a=(e.type||"").toLowerCase();if(t==="INPUT"&&(a==="checkbox"||a==="radio"))return e.checked=!!n,fireInputChange(e),null;if(t==="OPTION"){var i=e.closest("select");if(i){if(i.multiple)e.selected=!!n;else{i.value=e.value;for(var r=0;r<i.options.length;r++)i.options[r].selected=i.options[r]===e}fireInputChange(i)}else e.selected=!!n;return null}return e.value=n,fireInputChange(e),null},W.clear=function(e,n){return e.value="",n||fireInputChange(e),null},W.sendKeysText=function(e,n){return e.value=(e.value||"")+n,fireInputChange(e),null},W.isFileInput=function(e){return e.tagName==="INPUT"&&(e.type||"").toLowerCase()==="file"},W.isSelected=function(e){return e.checked===!0||e.selected===!0},W.focus=function(e){return e.focus(),null},W.awaitElementMatch=function(e,n,t,a){function i(){if(!e||!e.isConnected)return!1;if(n==="value")return e.value===t;if(n==="text_contains"){var r=e.innerText||e.textContent||"";return r.indexOf(t)!==-1}return!1}return i()?Promise.resolve(!0):new Promise(function(r){var c=!1;function o(){c||(c=!0,clearTimeout(f),l.disconnect(),d())}function u(h){o(),r(h)}var f=setTimeout(function(){u(!1)},a||5e3),d=wrapPatchEnd(function(){i()&&u(!0)}),l=new MutationObserver(function(){requestAnimationFrame(function(){i()&&u(!0)})});l.observe(document.body,{childList:!0,subtree:!0,attributes:!0,characterData:!0})})},W.setChecked=function(e,n){return W.isSelected(e)===!!n?null:(W.clickEl(e),!0)},W.fillIn=function(e,n,t){return W.clear(e,!0),W.setValue(e,n),t?W.drainPatches(t):null},W.awaitReadyClassifyAndClick=function(e,n){return W.awaitLvReadyAndClassify(e,"click",n).then(function(t){var a=W.pageId,i=null;if(t==="patch"||t==="navigate"){W.preparePatch();var r=window.liveSocket;r&&r.main&&typeof r.main.ref=="number"&&(i=r.main.ref)}return W.clickEl(e),{classification:t,prePageId:a,preRef:i}})},W.awaitLvReadyAndClassify=function(e,n,t){return new Promise(function(a){var i=W.classify(e,n);if(i==="none"||i==="full_page")return a(i);function r(){a(i)}function c(){if(W.observedPatch===!0)return!0;var f=window.liveSocket;return!!(!f||!f.main||typeof f.main.isJoined=="function"&&f.main.isJoined()||f.main.joinPending!==!0)}if(c())return r();var o=Date.now()+(t||5e3);function u(){if(c()||Date.now()>o)return r();setTimeout(u,20)}u()})},W.preparePatch=function(){return!window.liveSocket||!window.liveSocket.main?!1:(window.__wallabidi_patch_hooked||(wrapPatchEnd(function(){if(window.__wallabidi_patch_resolve){var e=window.__wallabidi_patch_resolve;window.__wallabidi_patch_resolve=null,e(!0)}}),window.__wallabidi_patch_hooked=!0),window.__wallabidi_patch_promise=new Promise(function(e){window.__wallabidi_patch_resolve=e,window.addEventListener("beforeunload",function(){window.__wallabidi_patch_resolve&&(window.__wallabidi_patch_resolve=null,e("navigated"))},{once:!0})}),!0)},W.awaitPatch=function(e){if(!window.__wallabidi_patch_promise)return Promise.resolve("no-promise");var n=window.__wallabidi_patch_promise;return window.__wallabidi_patch_promise=null,Promise.race([n,new Promise(function(t){setTimeout(function(){t(!1)},e||5e3)})])},W.drainPatches=function(e){return!window.liveSocket||!window.liveSocket.domCallbacks?Promise.resolve(!0):new Promise(function(n){var t=null,a=e||300,i;function r(){i(),n(!0)}function c(){t&&clearTimeout(t),t=setTimeout(r,a)}i=wrapPatchEnd(c),c()})},W.awaitAck=function(e,n){return new Promise(function(t){var a=Date.now()+(n||5e3);function i(){var r=window.liveSocket;if(!r||!r.main)return t("no-liveview");if(r.main.lastAckRef!==null&&r.main.lastAckRef>=e)return t("acked");if(Date.now()>a)return t(!1);setTimeout(i,20)}window.addEventListener("beforeunload",function(){t("navigated")},{once:!0}),i()})},W.liveViewConnected=function(){var e=window.liveSocket;return!e||!e.main?!1:!e.main.joinPending},W.awaitLiveViewConnected=function(e,n){return new Promise(function(t){var a=Date.now()+(n||5e3);function i(){if(e&&window.location.href===e)return Date.now()>a?t(!1):setTimeout(i,30);if(document.readyState==="loading")return Date.now()>a?t(!1):setTimeout(i,20);if(!document.querySelector("[data-phx-session]"))return t("no-liveview");var r=window.liveSocket;if(r&&r.main&&!r.main.joinPending)return t(!0);if(Date.now()>a)return t(typeof window.liveSocket>"u"?"no-livesocket":!1);setTimeout(i,30)}i()})},W.url=function(){return location.href},W.path=function(){return location.pathname},W.title=function(){return document.title},W.source=function(){return document.documentElement.outerHTML},W.getWindowSize=function(){return JSON.stringify(window.__wallabidi_window_size||{width:window.innerWidth,height:window.innerHeight})},W.setWindowSize=function(e,n){window.__wallabidi_window_size={width:e,height:n}},W.registerQuery=function(e,n,t,a){W.queries[e]={ops:n,count:t,resolved:!1,elements:[],root:a},W.check()},W.cleanupQuery=function(e){W.queries&&delete W.queries[e]},W.run=function(e,n){for(var t=[],a={},i=null,r,c=!1,o=0;o<e.length;o++){var u=e[o]||[],f=u[0];try{switch(f){case"query":{var d=n||document;if(u[1]==="css")t=Array.from(d.querySelectorAll(u[2]));else{d.nodeType||(d=document);var l=document.evaluate(u[2],d,null,7,null);t=[];for(var h=0;h<l.snapshotLength;h++)t.push(l.snapshotItem(h))}c=!0;break}case"visible":t=u[1]?t.filter(W.isVisible):t.filter(function(s){return!W.isVisible(s)}),c=!0;break;case"text_includes":{var w=u[1];t=t.filter(function(s){var v=(s.innerText||s.textContent||"").replace(/[\s ]+/g," ").trim();return v.indexOf(w)!==-1}),c=!0;break}case"selected":t=u[1]?t.filter(W.isSelected):t.filter(function(s){return!W.isSelected(s)}),c=!0;break;case"classify_first":a.classification=t.length>0?W.classify(t[0],u[1]):"none",c=!0;break;case"click_first":a.count=t.length,W.clickEl(t[0]),c=!0;break;case"prepare_patch_filter":W.preparePatch()&&(a.prepared=!0),c=!0;break;case"target":t.length>u[1]?n=t[u[1]]:i="stale_reference";break;case"text":r=W.text(n);break;case"attribute":r=W.attribute(n,u[1]);break;case"displayed":r=W.isVisible(n);break;case"rect":r=W.rect(n,u[1]);break;case"set_value_dom":r=W.setValue(n,u[1]);break;case"clear":r=W.clear(n,u[1]);break;case"send_keys_text":r=W.sendKeysText(n,u[1]);break;case"is_file_input":r=W.isFileInput(n);break;case"is_selected":r=W.isSelected(n);break;case"focus":r=W.focus(n);break;case"click":r=W.clickEl(n);break;case"classify":r=W.classify(n,u[1]);break;case"await_ready_classify_and_click":r=W.awaitReadyClassifyAndClick(n,u[1]);break;case"fill_in":r=W.fillIn(n,u[1],u[2]);break;case"set_checked":r=W.setChecked(n,u[1]);break;case"await_element_match":r=W.awaitElementMatch(n,u[1],u[2],u[3]);break;case"prepare_patch":r=W.preparePatch();break;case"await_patch":r=W.awaitPatch(u[1]);break;case"drain_patches":r=W.drainPatches(u[1]);break;case"await_ack":r=W.awaitAck(u[1],u[2]);break;case"live_view_connected":r=W.liveViewConnected();break;case"await_lv_connected":r=W.awaitLiveViewConnected(u[1],u[2]);break;case"url":r=W.url();break;case"path":r=W.path();break;case"title":r=W.title();break;case"source":r=W.source();break;case"get_window_size":r=W.getWindowSize();break;case"set_window_size":r=W.setWindowSize(u[1],u[2]);break;default:i="unknown op: "+f;break}if(i)break}catch(s){i=s.message||String(s),t=[];break}}return r&&typeof r.then=="function"?r.then(function(s){return c?{els:t,meta:a,error:i,value:s}:s}):c?{els:t,meta:a,error:i,value:r}:r},W.check=function(){for(var e in W.queries){var n=W.queries[e];if(!n.resolved){var t=W.run(n.ops,n.root);if(t.error){n.resolved=!0,send({id:e,count:0,error:t.error});continue}var a=t.meta.count!=null?t.meta.count:t.els.length,i=n.count==null?a>0:a===n.count;i&&(n.resolved=!0,n.elements=t.els,n.meta=t.meta,send({id:e,count:a,meta:t.meta}))}}};var checkScheduled=!1;function scheduleCheck(){if(!checkScheduled){var e=!1;for(var n in W.queries){e=!0;break}e&&(checkScheduled=!0,requestAnimationFrame(function(){checkScheduled=!1,W.check()}))}}new MutationObserver(scheduleCheck).observe(document,{childList:!0,subtree:!0,attributes:!0,characterData:!0}),W.pageId=newPageId(),W.docId=W.pageId,W.pageReady=!1,W.lvHooked=!1,W.observedPatch=!1,W.state="Initial";function transition(e){W.state=e}function notify(e){send({type:"page_ready",pageId:W.pageId,docId:W.docId,state:W.state,reason:e})}function bumpPageId(e){W.pageId=newPageId(),W.pageReady=!0,notify(e||"patch")}function installLvHook(){if(W.lvHooked)return!0;try{var e=window.liveSocket;if(e&&e.domCallbacks){var n=e.domCallbacks.onPatchEnd;e.domCallbacks.onPatchEnd=function(i){n&&n(i),W.observedPatch||(W.observedPatch=!0,transition("LVReady")),W.check(),bumpPageId("onPatchEnd")};var t=e.socket;if(t&&typeof t.decode=="function"&&!t.__wallabidiDecodeHooked){var a=t.decode.bind(t);t.decode=function(i,r){return a(i,function(c){try{var o=c&&c.payload&&c.payload.response;if(o&&(o.live_redirect||o.redirect)){var u=o.live_redirect||o.redirect;send({type:"nav_pending",to:u.to||null,kind:u.kind||(o.redirect?"hard":"push")})}}catch{}return r(c)})},t.__wallabidiDecodeHooked=!0}return W.lvHooked=!0,transition("HookInstalled"),!0}}catch{}return!1}function markReady(e){W.pageReady||(W.pageReady=!0,notify(e))}function detectReady(){if(!document.querySelector("[data-phx-session]"))return transition("NonLVReady"),markReady("non-lv");W.state==="Initial"&&transition("AwaitingHook");var e=installLvHook();if(e&&W.observedPatch)return markReady("lv-ready");W.pageReady||requestAnimationFrame(detectReady)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",detectReady):detectReady();