From b4e8349efc35ec3c5216c1e85136a7898b20fb32 Mon Sep 17 00:00:00 2001 From: Ruud Schuurmans Date: Tue, 4 Feb 2020 08:29:24 +0100 Subject: [PATCH 1/6] fix broken ie11 support by transpiling spread syntax using babel --- babel.config.js | 2 ++ dist/livewire.js | 14 +------------- dist/livewire.js.map | 2 +- dist/manifest.json | 2 +- package.json | 1 + 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/babel.config.js b/babel.config.js index d7c97f55c..1f00ef15d 100644 --- a/babel.config.js +++ b/babel.config.js @@ -5,8 +5,10 @@ module.exports = { { targets: { node: 'current', + ie: "11" }, }, ], ], + plugins: ["@babel/plugin-proposal-object-rest-spread"] }; diff --git a/dist/livewire.js b/dist/livewire.js index e08df42b5..362c57614 100644 --- a/dist/livewire.js +++ b/dist/livewire.js @@ -1,14 +1,2 @@ -!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?module.exports=factory():"function"==typeof define&&define.amd?define(factory):(global=global||self).Livewire=factory()}(this,(function(){"use strict";class Action{constructor(el){this.el=el}get ref(){return this.el?this.el.ref:null}toId(){return btoa(encodeURIComponent(this.el.el.outerHTML))}}class EventAction extends Action{constructor(event,params,el){super(el),this.type="fireEvent",this.payload={event:event,params:params}}toId(){return btoa(encodeURIComponent(this.type,this.payload.event,JSON.stringify(this.payload.params)))}}class MessageBus{constructor(){this.listeners={}}register(name,callback){this.listeners[name]||(this.listeners[name]=[]),this.listeners[name].push(callback)}call(name,...params){(this.listeners[name]||[]).forEach(callback=>{callback(...params)})}has(name){return Object.keys(this.listeners).includes(name)}}var HookManager={availableHooks:["componentInitialized","elementInitialized","elementRemoved","messageSent","messageFailed","responseReceived","beforeDomUpdate","afterDomUpdate","interceptWireModelSetValue","interceptWireModelAttachListener"],bus:new MessageBus,register(name,callback){if(!this.availableHooks.includes(name))throw`Livewire: Referencing unknown hook: [${name}]`;this.bus.register(name,callback)},call(name,...params){this.bus.call(name,...params)}},DirectiveManager={directives:new MessageBus,register(name,callback){if(this.has(name))throw`Livewire: Directive already registered: [${name}]`;this.directives.register(name,callback)},call(name,el,directive,component){this.directives.call(name,el,directive,component)},has(name){return this.directives.has(name)}};const store={componentsById:{},listeners:new MessageBus,livewireIsInBackground:!1,livewireIsOffline:!1,hooks:HookManager,directives:DirectiveManager,components(){return Object.keys(this.componentsById).map(key=>this.componentsById[key])},addComponent(component){return this.componentsById[component.id]=component},findComponent(id){return this.componentsById[id]},hasComponent(id){return!!this.componentsById[id]},tearDownComponents(){this.components().forEach(component=>{this.removeComponent(component)})},on(event,callback){this.listeners.register(event,callback)},emit(event,...params){this.listeners.call(event,...params),this.componentsListeningForEvent(event).forEach(component=>component.addAction(new EventAction(event,params)))},emitUp(el,event,...params){this.componentsListeningForEventThatAreTreeAncestors(el,event).forEach(component=>component.addAction(new EventAction(event,params)))},componentsListeningForEventThatAreTreeAncestors(el,event){for(var parentIds=[],parent=el.rawNode().parentElement.closest("[wire\\:id]");parent;)parentIds.push(parent.getAttribute("wire:id")),parent=parent.parentElement.closest("[wire\\:id]");return this.components().filter(component=>component.events.includes(event)&&parentIds.includes(component.id))},componentsListeningForEvent(event){return this.components().filter(component=>component.events.includes(event))},registerDirective(name,callback){this.directives.register(name,callback)},registerHook(name,callback){this.hooks.register(name,callback)},callHook(name,...params){this.hooks.call(name,...params)},removeComponent(component){component.tearDown(),delete this.componentsById[component.id]}};class ElementDirective{constructor(type,modifiers,rawName,el){this.type=type,this.modifiers=modifiers,this.rawName=rawName,this.el=el,this.eventContext}setEventContext(context){this.eventContext=context}get value(){return this.el.getAttribute(this.rawName)}get method(){const{method:method}=this.parseOutMethodAndParams(this.value);return method}get params(){const{params:params}=this.parseOutMethodAndParams(this.value);return params}durationOr(defaultDuration){let durationInMilliSeconds;const durationInMilliSecondsString=this.modifiers.find(mod=>mod.match(/([0-9]+)ms/)),durationInSecondsString=this.modifiers.find(mod=>mod.match(/([0-9]+)s/));return durationInMilliSecondsString?durationInMilliSeconds=Number(durationInMilliSecondsString.replace("ms","")):durationInSecondsString&&(durationInMilliSeconds=1e3*Number(durationInSecondsString.replace("s",""))),durationInMilliSeconds||defaultDuration}parseOutMethodAndParams(rawMethod){let method=rawMethod,params=[];const methodAndParamString=method.match(/(.*?)\((.*)\)/);if(methodAndParamString){const $event=this.eventContext;method=methodAndParamString[1],params=methodAndParamString[2].split(/\s?,\s?/).map(param=>eval(param))}return{method:method,params:params}}cardinalDirectionOr(fallback="right"){return this.modifiers.includes("up")?"up":this.modifiers.includes("down")?"down":this.modifiers.includes("left")?"left":this.modifiers.includes("right")?"right":fallback}}var prefix=null;function findPrefix(){return null===prefix&&(prefix=(document.querySelector('meta[name="livewire-prefix"]')||{content:"wire"}).content),prefix}const prefix$1=findPrefix();class ElementDirectives{constructor(el){this.el=el,this.directives=this.extractTypeModifiersAndValue()}all(){return this.directives}has(type){return this.directives.map(directive=>directive.type).includes(type)}missing(type){return!this.has(type)}get(type){return this.directives.find(directive=>directive.type===type)}extractTypeModifiersAndValue(){return Array.from(this.el.getAttributeNames().filter(name=>name.match(new RegExp(prefix$1+":"))).map(name=>{const[type,...modifiers]=name.replace(new RegExp(prefix$1+":"),"").split(".");return new ElementDirective(type,modifiers,name,this.el)}))}} -/*! - * isobject - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */var isobject=function(val){return null!=val&&"object"==typeof val&&!1===Array.isArray(val)},getValue=function(target,path,options){if(isobject(options)||(options={default:options}),!isValidObject(target))return void 0!==options.default?options.default:target;"number"==typeof path&&(path=String(path));const isArray=Array.isArray(path),isString="string"==typeof path,splitChar=options.separator||".",joinChar=options.joinChar||("string"==typeof splitChar?splitChar:".");if(!isString&&!isArray)return target;if(isString&&path in target)return isValid(path,target,options)?target[path]:options.default;let segs=isArray?path:split(path,splitChar,options),len=segs.length,idx=0;do{let prop=segs[idx];for("number"==typeof prop&&(prop=String(prop));prop&&"\\"===prop.slice(-1);)prop=join([prop.slice(0,-1),segs[++idx]||""],joinChar,options);if(prop in target){if(!isValid(prop,target,options))return options.default;target=target[prop]}else{let hasProp=!1,n=idx+1;for(;n - * - * Copyright (c) 2014-2018, Jon Schlinkert. - * Released under the MIT License. - */function join(segs,joinChar,options){return"function"==typeof options.join?options.join(segs):segs[0]+joinChar+segs[1]}function split(path,splitChar,options){return"function"==typeof options.split?options.split(path):path.split(splitChar)}function isValid(key,target,options){return"function"!=typeof options.isValid||options.isValid(key,target)}function isValidObject(val){return isobject(val)||Array.isArray(val)||"function"==typeof val}const prefix$2=findPrefix();class DOMElement{constructor(el){this.el=el,this.directives=new ElementDirectives(el)}nextFrame(fn){requestAnimationFrame(()=>{requestAnimationFrame(fn.bind(this))})}rawNode(){return this.el}transitionElementIn(){if(!this.directives.has("transition"))return;const directive=this.directives.get("transition");if(directive.modifiers.includes("out")&&!directive.modifiers.includes("in"))return!0;if(directive.modifiers.includes("fade"))return void this.fadeIn(directive);if(directive.modifiers.includes("slide"))return void this.slideIn(directive);const transitionName=directive.value;this.el.classList.add(`${transitionName}-enter`),this.el.classList.add(`${transitionName}-enter-active`),this.nextFrame(()=>{this.el.classList.remove(`${transitionName}-enter`);const duration=1e3*Number(getComputedStyle(this.el).transitionDuration.replace("s",""));setTimeout(()=>{this.el.classList.remove(`${transitionName}-enter-active`)},duration)})}transitionElementOut(onDiscarded){if(!this.directives.has("transition"))return!0;const directive=this.directives.get("transition");if(directive.modifiers.includes("in")&&!directive.modifiers.includes("out"))return!0;if(directive.modifiers.includes("fade"))return this.fadeOut(directive,onDiscarded),!1;if(directive.modifiers.includes("slide"))return this.slideOut(directive,onDiscarded),!1;const transitionName=directive.value;return this.el.classList.add(`${transitionName}-leave-active`),this.nextFrame(()=>{this.el.classList.add(`${transitionName}-leave`);const duration=1e3*Number(getComputedStyle(this.el).transitionDuration.replace("s",""));setTimeout(()=>{onDiscarded(this.el),this.el.remove()},duration)}),!1}fadeIn(directive){this.el.style.opacity=0,this.el.style.transition=`opacity ${directive.durationOr(300)/1e3}s ease`,this.nextFrame(()=>{this.el.style.opacity=1})}slideIn(directive){this.el.style.opacity=0,this.el.style.transform={up:"translateY(10px)",down:"translateY(-10px)",left:"translateX(-10px)",right:"translateX(10px)"}[directive.cardinalDirectionOr("right")],this.el.style.transition=`opacity ${directive.durationOr(300)/1e3}s ease, transform ${directive.durationOr(300)/1e3}s ease`,this.nextFrame(()=>{this.el.style.opacity=1,this.el.style.transform=""})}fadeOut(directive,onDiscarded){this.nextFrame(()=>{this.el.style.opacity=0,setTimeout(()=>{onDiscarded(this.el),this.el.remove()},directive.durationOr(300))})}slideOut(directive,onDiscarded){const directions={up:"translateY(10px)",down:"translateY(-10px)",left:"translateX(-10px)",right:"translateX(10px)"};this.nextFrame(()=>{this.el.style.opacity=0,this.el.style.transform=directions[directive.cardinalDirectionOr("right")],setTimeout(()=>{onDiscarded(this.el),this.el.remove()},directive.durationOr(300))})}closestRoot(){return this.closestByAttribute("id")}closestByAttribute(attribute){const closestEl=this.el.closest(`[${prefix$2}\\:${attribute}]`);if(!closestEl)throw`\nLivewire Error:\n\nCannot find parent element in DOM tree containing attribute: [${prefix$2}:${attribute}].\n\nUsually this is caused by Livewire's DOM-differ not being able to properly track changes.\n\nReference the following guide for common causes: https://laravel-livewire.com/docs/troubleshooting \n\nReferenced element:\n\n${this.el.outerHTML}\n`;return new DOMElement(closestEl)}isComponentRootEl(){return this.hasAttribute("id")}hasAttribute(attribute){return this.el.hasAttribute(`${prefix$2}:${attribute}`)}getAttribute(attribute){return this.el.getAttribute(`${prefix$2}:${attribute}`)}removeAttribute(attribute){return this.el.removeAttribute(`${prefix$2}:${attribute}`)}setAttribute(attribute,value){return this.el.setAttribute(`${prefix$2}:${attribute}`,value)}isFocused(){return this.el===document.activeElement}hasFocus(){return this.el===document.activeElement}isInput(){return["INPUT","TEXTAREA","SELECT"].includes(this.el.tagName.toUpperCase())}isTextInput(){return["INPUT","TEXTAREA"].includes(this.el.tagName.toUpperCase())&&!["checkbox","radio"].includes(this.el.type)}valueFromInput(component){if("checkbox"===this.el.type){const modelName=this.directives.get("model").value;var modelValue=getValue(component.data,modelName);return Array.isArray(modelValue)?modelValue=this.el.checked?modelValue.includes(this.el.value)?modelValue:modelValue.concat(this.el.value):modelValue.filter(item=>item!==this.el.value):this.el.checked}return"SELECT"===this.el.tagName&&this.el.multiple?this.getSelectValues():this.el.value}setInputValueFromModel(component){const modelString=this.directives.get("model").value,modelValue=getValue(component.data,modelString);void 0!==modelValue&&this.setInputValue(modelValue)}setInputValue(value){if(store.callHook("interceptWireModelSetValue",this,value),"radio"===this.el.type)this.el.checked=this.el.value==value;else if("checkbox"===this.el.type)if(Array.isArray(value)){let valueFound=!1;value.forEach(val=>{val==this.el.value&&(valueFound=!0)}),this.el.checked=valueFound}else this.el.checked=!!value;else"SELECT"===this.el.tagName?this.updateSelect(value):this.el.value=value}getSelectValues(){return Array.from(this.el.options).filter(option=>option.selected).map(option=>option.value||option.text)}updateSelect(value){const arrayWrappedValue=[].concat(value).map(value=>value+"");Array.from(this.el.options).forEach(option=>{option.selected=arrayWrappedValue.includes(option.value)})}get ref(){return this.directives.has("ref")?this.directives.get("ref").value:null}isSameNode(el){return"function"==typeof el.rawNode?this.el.isSameNode(el.rawNode()):this.el.isSameNode(el)}getAttributeNames(){return this.el.getAttributeNames(...arguments)}addEventListener(){return this.el.addEventListener(...arguments)}removeEventListener(){return this.el.removeEventListener(...arguments)}get classList(){return this.el.classList}querySelector(){return this.el.querySelector(...arguments)}querySelectorAll(){return this.el.querySelectorAll(...arguments)}}const prefix$3=findPrefix();class DOM{static get prefix(){return prefix$3}static rootComponentElements(){return Array.from(document.querySelectorAll(`[${prefix$3}\\:id]`)).map(el=>new DOMElement(el))}static rootComponentElementsWithNoParents(){const allEls=Array.from(document.querySelectorAll(`[${prefix$3}\\:id]`)),onlyChildEls=Array.from(document.querySelectorAll(`[${prefix$3}\\:id] [${prefix$3}\\:id]`));return allEls.filter(el=>!onlyChildEls.includes(el)).map(el=>new DOMElement(el))}static allModelElementsInside(root){return Array.from(root.querySelectorAll(`[${prefix$3}\\:model]`)).map(el=>new DOMElement(el))}static getByAttributeAndValue(attribute,value){return new DOMElement(document.querySelector(`[${prefix$3}\\:${attribute}="${value}"]`))}}class Message{constructor(component,actionQueue){this.component=component,this.actionQueue=actionQueue}get refs(){return this.actionQueue.map(action=>action.ref).filter(ref=>ref)}payload(){let payload={id:this.component.id,data:this.component.data,name:this.component.name,checksum:this.component.checksum,children:this.component.children,actionQueue:this.actionQueue.map(action=>({type:action.type,payload:action.payload}))};return Object.keys(this.component.errorBag).length>0&&(payload.errorBag=this.component.errorBag),payload}storeResponse(payload){return this.response={id:payload.id,dom:payload.dom,checksum:payload.checksum,children:payload.children,dirtyInputs:payload.dirtyInputs,eventQueue:payload.eventQueue,dispatchQueue:payload.dispatchQueue,events:payload.events,data:payload.data,redirectTo:payload.redirectTo,errorBag:payload.errorBag||{},updatesQueryString:payload.updatesQueryString}}}class PrefetchMessage extends Message{constructor(component,action){super(component,[action])}get prefetchId(){return this.actionQueue[0].toId()}payload(){return{fromPrefetch:this.prefetchId,...super.payload()}}storeResponse(payload){return super.storeResponse(payload),this.response.fromPrefetch=payload.fromPrefetch,this.response}}function debounce(func,wait,immediate){var timeout;return function(){var context=this,args=arguments,later=function(){timeout=null,immediate||func.apply(context,args)},callNow=immediate&&!timeout;clearTimeout(timeout),timeout=setTimeout(later,wait),callNow&&func.apply(context,args)}}function walk(root,callback){if(!1===callback(root))return;let node=root.firstElementChild;for(;node;)walk(node,callback),node=node.nextElementSibling}function dispatch(eventName,{target:target,cancelable:cancelable,data:data}={}){const event=document.createEvent("Events");if(event.initEvent(eventName,!0,1==cancelable),event.data=data||{},event.cancelable&&!preventDefaultSupported){const{preventDefault:preventDefault}=event;event.preventDefault=function(){this.defaultPrevented||Object.defineProperty(this,"defaultPrevented",{get:()=>!0}),preventDefault.call(this)}}return(target||document).dispatchEvent(event),event}const preventDefaultSupported=(()=>{const event=document.createEvent("Events");return event.initEvent("test",!0,!0),event.preventDefault(),event.defaultPrevented})();function kebabCase(subject){return subject.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]/,"-").toLowerCase()}function morphAttrs(fromNode,toNode){var i,attr,attrName,attrNamespaceURI,attrValue,attrs=toNode.attributes;for(i=attrs.length-1;i>=0;--i)attrName=(attr=attrs[i]).name,attrNamespaceURI=attr.namespaceURI,attrValue=attr.value,attrNamespaceURI?(attrName=attr.localName||attrName,fromNode.getAttributeNS(attrNamespaceURI,attrName)!==attrValue&&("xmlns"===attr.prefix&&(attrName=attr.name),fromNode.setAttributeNS(attrNamespaceURI,attrName,attrValue))):fromNode.getAttribute(attrName)!==attrValue&&fromNode.setAttribute(attrName,attrValue);for(i=(attrs=fromNode.attributes).length-1;i>=0;--i)!1!==(attr=attrs[i]).specified&&(attrName=attr.name,(attrNamespaceURI=attr.namespaceURI)?(attrName=attr.localName||attrName,toNode.hasAttributeNS(attrNamespaceURI,attrName)||fromNode.removeAttributeNS(attrNamespaceURI,attrName)):toNode.hasAttribute(attrName)||fromNode.removeAttribute(attrName))}var range,NS_XHTML="http://www.w3.org/1999/xhtml",doc="undefined"==typeof document?void 0:document,HAS_TEMPLATE_SUPPORT=!!doc&&"content"in doc.createElement("template"),HAS_RANGE_SUPPORT=!!doc&&doc.createRange&&"createContextualFragment"in doc.createRange();function createFragmentFromTemplate(str){var template=doc.createElement("template");return template.innerHTML=str,template.content.childNodes[0]}function createFragmentFromRange(str){return range||(range=doc.createRange()).selectNode(doc.body),range.createContextualFragment(str).childNodes[0]}function createFragmentFromWrap(str){var fragment=doc.createElement("body");return fragment.innerHTML=str,fragment.childNodes[0]}function toElement(str){return str=str.trim(),HAS_TEMPLATE_SUPPORT?createFragmentFromTemplate(str):HAS_RANGE_SUPPORT?createFragmentFromRange(str):createFragmentFromWrap(str)}function compareNodeNames(fromEl,toEl){var fromNodeName=fromEl.nodeName,toNodeName=toEl.nodeName;return fromNodeName===toNodeName||!!(toEl.actualize&&fromNodeName.charCodeAt(0)<91&&toNodeName.charCodeAt(0)>90)&&fromNodeName===toNodeName.toUpperCase()}function createElementNS(name,namespaceURI){return namespaceURI&&namespaceURI!==NS_XHTML?doc.createElementNS(namespaceURI,name):doc.createElement(name)}function moveChildren(fromEl,toEl){for(var curChild=fromEl.firstChild;curChild;){var nextChild=curChild.nextSibling;toEl.appendChild(curChild),curChild=nextChild}return toEl}function syncBooleanAttrProp(fromEl,toEl,name){fromEl[name]!==toEl[name]&&(fromEl[name]=toEl[name],fromEl[name]?fromEl.setAttribute(name,""):fromEl.removeAttribute(name))}var specialElHandlers={OPTION:function(fromEl,toEl){var parentNode=fromEl.parentNode;if(parentNode){var parentName=parentNode.nodeName.toUpperCase();"OPTGROUP"===parentName&&(parentName=(parentNode=parentNode.parentNode)&&parentNode.nodeName.toUpperCase()),"SELECT"!==parentName||parentNode.hasAttribute("multiple")||(fromEl.hasAttribute("selected")&&!toEl.selected&&(fromEl.setAttribute("selected","selected"),fromEl.removeAttribute("selected")),parentNode.selectedIndex=-1)}syncBooleanAttrProp(fromEl,toEl,"selected")},INPUT:function(fromEl,toEl){syncBooleanAttrProp(fromEl,toEl,"checked"),syncBooleanAttrProp(fromEl,toEl,"disabled"),fromEl.value!==toEl.value&&(fromEl.value=toEl.value),toEl.hasAttribute("value")||fromEl.removeAttribute("value")},TEXTAREA:function(fromEl,toEl){var newValue=toEl.value;fromEl.value!==newValue&&(fromEl.value=newValue);var firstChild=fromEl.firstChild;if(firstChild){var oldValue=firstChild.nodeValue;if(oldValue==newValue||!newValue&&oldValue==fromEl.placeholder)return;firstChild.nodeValue=newValue}},SELECT:function(fromEl,toEl){if(!toEl.hasAttribute("multiple")){for(var optgroup,nodeName,selectedIndex=-1,i=0,curChild=fromEl.firstChild;curChild;)if("OPTGROUP"===(nodeName=curChild.nodeName&&curChild.nodeName.toUpperCase()))curChild=(optgroup=curChild).firstChild;else{if("OPTION"===nodeName){if(curChild.hasAttribute("selected")){selectedIndex=i;break}i++}!(curChild=curChild.nextSibling)&&optgroup&&(curChild=optgroup.nextSibling,optgroup=null)}fromEl.selectedIndex=selectedIndex}}},ELEMENT_NODE=1,DOCUMENT_FRAGMENT_NODE=11,TEXT_NODE=3,COMMENT_NODE=8;function noop(){}function defaultGetNodeKey(node){return node.id}function callHook(hook,...params){if("getNodeKey"!==hook.name&&hook.name,"function"==typeof params[0].hasAttribute)return hook(...params)}function morphdomFactory(morphAttrs){return function(fromNode,toNode,options){if(options||(options={}),"string"==typeof toNode)if("#document"===fromNode.nodeName||"HTML"===fromNode.nodeName){var toNodeHtml=toNode;(toNode=doc.createElement("html")).innerHTML=toNodeHtml}else toNode=toElement(toNode);var getNodeKey=options.getNodeKey||defaultGetNodeKey,onBeforeNodeAdded=options.onBeforeNodeAdded||noop,onNodeAdded=options.onNodeAdded||noop,onBeforeElUpdated=options.onBeforeElUpdated||noop,onElUpdated=options.onElUpdated||noop,onBeforeNodeDiscarded=options.onBeforeNodeDiscarded||noop,onNodeDiscarded=options.onNodeDiscarded||noop,onBeforeElChildrenUpdated=options.onBeforeElChildrenUpdated||noop,childrenOnly=!0===options.childrenOnly,fromNodesLookup=Object.create(null),keyedRemovalList=[];function addKeyedRemoval(key){keyedRemovalList.push(key)}function removeNode(node,parentNode,skipKeyedNodes){!1!==callHook(onBeforeNodeDiscarded,node)&&(parentNode&&parentNode.removeChild(node),callHook(onNodeDiscarded,node),function walkDiscardedChildNodes(node,skipKeyedNodes){if(node.nodeType===ELEMENT_NODE)for(var curChild=node.firstChild;curChild;){var key=void 0;skipKeyedNodes&&(key=callHook(getNodeKey,curChild))?addKeyedRemoval(key):(callHook(onNodeDiscarded,curChild),curChild.firstChild&&walkDiscardedChildNodes(curChild,skipKeyedNodes)),curChild=curChild.nextSibling}}(node,skipKeyedNodes))}function handleNodeAdded(el){if(callHook(onNodeAdded,el),!el.skipAddingChildren)for(var curChild=el.firstChild;curChild;){var nextSibling=curChild.nextSibling,key=callHook(getNodeKey,curChild);if(key){var unmatchedFromEl=fromNodesLookup[key];unmatchedFromEl&&compareNodeNames(curChild,unmatchedFromEl)&&(curChild.parentNode.replaceChild(unmatchedFromEl,curChild),morphEl(unmatchedFromEl,curChild))}handleNodeAdded(curChild),curChild=nextSibling}}function morphEl(fromEl,toEl,childrenOnly){var toElKey=callHook(getNodeKey,toEl);if(toElKey&&delete fromNodesLookup[toElKey],!childrenOnly){if(!1===callHook(onBeforeElUpdated,fromEl,toEl))return;if(fromEl.skipElUpdatingButStillUpdateChildren||morphAttrs(fromEl,toEl),callHook(onElUpdated,fromEl),!1===callHook(onBeforeElChildrenUpdated,fromEl,toEl))return}"TEXTAREA"!==fromEl.nodeName?function(fromEl,toEl){var curToNodeKey,curFromNodeKey,fromNextSibling,toNextSibling,matchingFromEl,curToNodeChild=toEl.firstChild,curFromNodeChild=fromEl.firstChild;outer:for(;curToNodeChild;){for(toNextSibling=curToNodeChild.nextSibling,curToNodeKey=callHook(getNodeKey,curToNodeChild);curFromNodeChild;){if(fromNextSibling=curFromNodeChild.nextSibling,curToNodeChild.isSameNode&&curToNodeChild.isSameNode(curFromNodeChild)){curToNodeChild=toNextSibling,curFromNodeChild=fromNextSibling;continue outer}curFromNodeKey=callHook(getNodeKey,curFromNodeChild);var curFromNodeType=curFromNodeChild.nodeType,isCompatible=void 0;if(curFromNodeType===curToNodeChild.nodeType&&(curFromNodeType===ELEMENT_NODE?(curToNodeKey?curToNodeKey!==curFromNodeKey&&((matchingFromEl=fromNodesLookup[curToNodeKey])?fromNextSibling===matchingFromEl?isCompatible=!1:(fromEl.insertBefore(matchingFromEl,curFromNodeChild),curFromNodeKey?addKeyedRemoval(curFromNodeKey):removeNode(curFromNodeChild,fromEl,!0),curFromNodeChild=matchingFromEl):isCompatible=!1):curFromNodeKey&&(isCompatible=!1),(isCompatible=!1!==isCompatible&&compareNodeNames(curFromNodeChild,curToNodeChild))&&(!curToNodeChild.isEqualNode(curFromNodeChild)&&curToNodeChild.nextElementSibling&&curToNodeChild.nextElementSibling.isEqualNode(curFromNodeChild)?isCompatible=!1:morphEl(curFromNodeChild,curToNodeChild))):curFromNodeType!==TEXT_NODE&&curFromNodeType!=COMMENT_NODE||(isCompatible=!0,curFromNodeChild.nodeValue!==curToNodeChild.nodeValue&&(curFromNodeChild.nodeValue=curToNodeChild.nodeValue))),isCompatible){curToNodeChild=toNextSibling,curFromNodeChild=fromNextSibling;continue outer}if(curFromNodeKey)addKeyedRemoval(curFromNodeKey);else{if(curToNodeChild.nextElementSibling&&curToNodeChild.nextElementSibling.isEqualNode(curFromNodeChild)){const nodeToBeAdded=curToNodeChild.cloneNode(!0);fromEl.insertBefore(nodeToBeAdded,curFromNodeChild),handleNodeAdded(nodeToBeAdded),curToNodeChild=curToNodeChild.nextElementSibling.nextSibling,curFromNodeChild=fromNextSibling;continue outer}removeNode(curFromNodeChild,fromEl,!0)}curFromNodeChild=fromNextSibling}if(curToNodeKey&&(matchingFromEl=fromNodesLookup[curToNodeKey])&&compareNodeNames(matchingFromEl,curToNodeChild))fromEl.appendChild(matchingFromEl),morphEl(matchingFromEl,curToNodeChild);else{var onBeforeNodeAddedResult=callHook(onBeforeNodeAdded,curToNodeChild);!1!==onBeforeNodeAddedResult&&(onBeforeNodeAddedResult&&(curToNodeChild=onBeforeNodeAddedResult),curToNodeChild.actualize&&(curToNodeChild=curToNodeChild.actualize(fromEl.ownerDocument||doc)),fromEl.appendChild(curToNodeChild),handleNodeAdded(curToNodeChild))}curToNodeChild=toNextSibling,curFromNodeChild=fromNextSibling}!function(fromEl,curFromNodeChild,curFromNodeKey){for(;curFromNodeChild;){var fromNextSibling=curFromNodeChild.nextSibling;(curFromNodeKey=callHook(getNodeKey,curFromNodeChild))?addKeyedRemoval(curFromNodeKey):removeNode(curFromNodeChild,fromEl,!0),curFromNodeChild=fromNextSibling}}(fromEl,curFromNodeChild,curFromNodeKey);var specialElHandler=specialElHandlers[fromEl.nodeName];specialElHandler&&!fromEl.isLivewireModel&&specialElHandler(fromEl,toEl)}(fromEl,toEl):specialElHandlers.TEXTAREA(fromEl,toEl)}!function indexTree(node){if(node.nodeType===ELEMENT_NODE||node.nodeType===DOCUMENT_FRAGMENT_NODE)for(var curChild=node.firstChild;curChild;){var key=callHook(getNodeKey,curChild);key&&(fromNodesLookup[key]=curChild),indexTree(curChild),curChild=curChild.nextSibling}}(fromNode);var morphedNode=fromNode,morphedNodeType=morphedNode.nodeType,toNodeType=toNode.nodeType;if(!childrenOnly)if(morphedNodeType===ELEMENT_NODE)toNodeType===ELEMENT_NODE?compareNodeNames(fromNode,toNode)||(callHook(onNodeDiscarded,fromNode),morphedNode=moveChildren(fromNode,createElementNS(toNode.nodeName,toNode.namespaceURI))):morphedNode=toNode;else if(morphedNodeType===TEXT_NODE||morphedNodeType===COMMENT_NODE){if(toNodeType===morphedNodeType)return morphedNode.nodeValue!==toNode.nodeValue&&(morphedNode.nodeValue=toNode.nodeValue),morphedNode;morphedNode=toNode}if(morphedNode===toNode)callHook(onNodeDiscarded,fromNode);else{if(toNode.isSameNode&&toNode.isSameNode(morphedNode))return;if(morphEl(morphedNode,toNode,childrenOnly),keyedRemovalList)for(var i=0,len=keyedRemovalList.length;i{switch(directive.type){case"init":this.fireActionRightAway(el,directive,component);break;case"model":el.setInputValueFromModel(component),this.attachModelListener(el,directive,component);break;default:store.directives.has(directive.type)&&store.directives.call(directive.type,el.el,directive,component),this.attachDomListener(el,directive,component)}}),store.callHook("elementInitialized",el,component)},fireActionRightAway(el,directive,component){const method=directive.value?directive.method:"$refresh";component.addAction(new MethodAction(method,directive.params,el))},attachModelListener(el,directive,component){el.el.isLivewireModel=!0;const isLazy=directive.modifiers.includes("lazy"),debounceIf=(condition,callback,time)=>condition?component.modelSyncDebounce(callback,time):callback,hasDebounceModifier=directive.modifiers.includes("debounce");store.callHook("interceptWireModelAttachListener",el,directive,component,debounceIf);const defaultEventType=el.isTextInput()?"input":"change",event=isLazy?"change":defaultEventType,handler=debounceIf(hasDebounceModifier||el.isTextInput()&&!isLazy,e=>{const model=directive.value,el=new DOMElement(e.target),value=el.valueFromInput(component);component.addAction(new ModelAction(model,value,el))},directive.durationOr(150));el.addEventListener(event,handler),component.addListenerForTeardown(()=>{el.removeEventListener(event,handler)})},attachDomListener(el,directive,component){switch(directive.type){case"keydown":case"keyup":this.attachListener(el,directive,component,e=>{const selectedSystemKeyModifiers=["ctrl","shift","alt","meta","cmd","super"].filter(key=>directive.modifiers.includes(key));if(selectedSystemKeyModifiers.length>0){if(selectedSystemKeyModifiers.filter(key=>("cmd"!==key&&"super"!==key||(key="meta"),!e[`${key}Key`])).length>0)return!1}return 0===directive.modifiers.length||directive.modifiers.includes(kebabCase(e.key))});break;case"click":this.attachListener(el,directive,component,e=>{if(directive.modifiers.includes("self"))return el.isSameNode(e.target)});break;default:this.attachListener(el,directive,component)}},attachListener(el,directive,component,callback){directive.modifiers.includes("prefetch")&&el.addEventListener("mouseenter",()=>{component.addPrefetchAction(new MethodAction(directive.method,directive.params,el))});const event=directive.type,handler=e=>{callback&&!1===callback(e)||component.callAfterModelDebounce(()=>{const el=new DOMElement(e.target);directive.setEventContext(e),this.preventAndStop(e,directive.modifiers);const method=directive.method,params=directive.params;if("$emit"===method)return component.scopedListeners.call(...params),void store.emit(...params);"$emitUp"!==method?directive.value&&component.addAction(new MethodAction(method,params,el)):store.emitUp(el,...params)})};el.addEventListener(event,handler),component.addListenerForTeardown(()=>{el.removeEventListener(event,handler)})},preventAndStop(event,modifiers){modifiers.includes("prevent")&&event.preventDefault(),modifiers.includes("stop")&&event.stopPropagation()}};class PrefetchManager{constructor(component){this.component=component,this.prefetchMessagesByActionId={}}addMessage(message){this.prefetchMessagesByActionId[message.prefetchId]=message}storeResponseInMessageForPayload(payload){const message=this.prefetchMessagesByActionId[payload.fromPrefetch];message&&message.storeResponse(payload)}actionHasPrefetch(action){return Object.keys(this.prefetchMessagesByActionId).includes(action.toId())}actionPrefetchResponseHasBeenReceived(action){return!!this.getPrefetchMessageByAction(action).response}getPrefetchMessageByAction(action){return this.prefetchMessagesByActionId[action.toId()]}clearPrefetches(){this.prefetchMessagesByActionId={}}}class Component{constructor(el,connection){el.rawNode().__livewire=this,this.id=el.getAttribute("id");const initialData=JSON.parse(this.extractLivewireAttribute("initial-data"));this.data=initialData.data||{},this.events=initialData.events||[],this.children=initialData.children||{},this.checksum=initialData.checksum||"",this.name=initialData.name||"",this.errorBag=initialData.errorBag||{},this.redirectTo=initialData.redirectTo||!1,this.scopedListeners=new MessageBus,this.connection=connection,this.actionQueue=[],this.messageInTransit=null,this.modelTimeout=null,this.tearDownCallbacks=[],this.prefetchManager=new PrefetchManager(this),store.callHook("componentInitialized",this),this.initialize(),this.registerEchoListeners(),this.redirectTo&&this.redirect(this.redirectTo)}get el(){return DOM.getByAttributeAndValue("id",this.id)}get root(){return this.el}extractLivewireAttribute(name){const value=this.el.getAttribute(name);return this.el.removeAttribute(name),value}initialize(){this.walk(el=>{nodeInitializer.initialize(el,this)},el=>{store.addComponent(new Component(el,this.connection))})}get(name){return this.data[name]}set(name,value){this.addAction(new ModelAction(name,value,this.el))}call(method,...params){this.addAction(new MethodAction(method,params,this.el))}on(event,callback){this.scopedListeners.register(event,callback)}addAction(action){if(this.prefetchManager.actionHasPrefetch(action)&&this.prefetchManager.actionPrefetchResponseHasBeenReceived(action)){const message=this.prefetchManager.getPrefetchMessageByAction(action);return this.handleResponse(message.response),void this.prefetchManager.clearPrefetches()}this.actionQueue.push(action),debounce(this.fireMessage,5).apply(this),this.prefetchManager.clearPrefetches()}fireMessage(){this.messageInTransit||(this.messageInTransit=new Message(this,this.actionQueue),this.connection.sendMessage(this.messageInTransit),store.callHook("messageSent",this,this.messageInTransit),this.actionQueue=[])}messageSendFailed(){store.callHook("messageFailed",this),this.messageInTransit=null}receiveMessage(payload){var response=this.messageInTransit.storeResponse(payload);this.handleResponse(response),this.actionQueue.length>0&&this.fireMessage()}handleResponse(response){this.data=response.data,this.checksum=response.checksum,this.children=response.children,this.errorBag=response.errorBag,response.redirectTo?this.redirect(response.redirectTo):(store.callHook("responseReceived",this,response),this.replaceDom(response.dom,response.dirtyInputs),this.forceRefreshDataBoundElementsMarkedAsDirty(response.dirtyInputs),this.messageInTransit=null,response.eventQueue&&response.eventQueue.length>0&&response.eventQueue.forEach(event=>{this.scopedListeners.call(event.event,...event.params),event.ancestorsOnly?store.emitUp(this.el,event.event,...event.params):store.emit(event.event,...event.params)}),response.dispatchQueue&&response.dispatchQueue.length>0&&response.dispatchQueue.forEach(event=>{const data=event.data?event.data:{},e=new CustomEvent(event.event,{bubbles:!0,detail:data});this.el.el.dispatchEvent(e)}))}redirect(url){window.Turbolinks&&window.Turbolinks.supported?window.Turbolinks.visit(url):window.location.href=url}forceRefreshDataBoundElementsMarkedAsDirty(dirtyInputs){this.walk(el=>{if(el.directives.missing("model"))return;const modelValue=el.directives.get("model").value;el.isFocused()&&!dirtyInputs.includes(modelValue)||el.setInputValueFromModel(this)})}replaceDom(rawDom){let objectContainingRawDomToFakePassingByReferenceToBeAbleToMutateFromWithinAHook={html:rawDom};store.callHook("beforeDomUpdate",this,objectContainingRawDomToFakePassingByReferenceToBeAbleToMutateFromWithinAHook),this.handleMorph(objectContainingRawDomToFakePassingByReferenceToBeAbleToMutateFromWithinAHook.html.trim()),store.callHook("afterDomUpdate",this)}addPrefetchAction(action){if(this.prefetchManager.actionHasPrefetch(action))return;const message=new PrefetchMessage(this,action);this.prefetchManager.addMessage(message),this.connection.sendMessage(message)}receivePrefetchMessage(payload){this.prefetchManager.storeResponseInMessageForPayload(payload)}handleMorph(dom){this.morphChanges={changed:[],added:[],removed:[]},morphdom(this.el.rawNode(),dom,{childrenOnly:!1,getNodeKey:node=>node.hasAttribute(`${DOM.prefix}:key`)?node.getAttribute(`${DOM.prefix}:key`):node.hasAttribute(`${DOM.prefix}:id`)?node.getAttribute(`${DOM.prefix}:id`):node.id,onBeforeNodeAdded:node=>new DOMElement(node).transitionElementIn(),onBeforeNodeDiscarded:node=>{const el=new DOMElement(node);return el.transitionElementOut(nodeDiscarded=>{store.callHook("elementRemoved",el,this)})},onNodeDiscarded:node=>{const el=new DOMElement(node);store.callHook("elementRemoved",el,this),node.__livewire&&store.removeComponent(node.__livewire),this.morphChanges.removed.push(node)},onBeforeElChildrenUpdated:node=>{},onBeforeElUpdated:(from,to)=>{if(from.isEqualNode(to))return!1;const fromEl=new DOMElement(from);if(fromEl.directives.has("ignore")||!0===from.__livewire_ignore||!0===from.__livewire_ignore_self){if(!(fromEl.directives.has("ignore")&&fromEl.directives.get("ignore").modifiers.includes("self")||!0===from.__livewire_ignore_self))return!1;from.skipElUpdatingButStillUpdateChildren=!0}return(!fromEl.isComponentRootEl()||fromEl.getAttribute("id")===this.id)&&void 0},onElUpdated:node=>{this.morphChanges.changed.push(node)},onNodeAdded:node=>{const el=new DOMElement(node);el.closestRoot().getAttribute("id")===this.id?nodeInitializer.initialize(el,this):el.isComponentRootEl()&&(store.addComponent(new Component(el,this.connection)),node.skipAddingChildren=!0),this.morphChanges.added.push(node)}})}walk(callback,callbackWhenNewComponentIsEncountered=(el=>{})){walk(this.el.rawNode(),node=>{const el=new DOMElement(node);if(!el.isSameNode(this.el))return el.isComponentRootEl()?(callbackWhenNewComponentIsEncountered(el),!1):void callback(el);callback(el)})}registerEchoListeners(){Array.isArray(this.events)&&this.events.forEach(event=>{if(event.startsWith("echo")){if("undefined"==typeof Echo)return void console.warn("Laravel Echo cannot be found");let event_parts=event.split(/(echo:|echo-)|:|,/);"echo:"==event_parts[1]&&event_parts.splice(2,0,"channel",void 0),"notification"==event_parts[2]&&event_parts.push(void 0,void 0);let[s1,signature,channel_type,s2,channel,s3,event_name]=event_parts;["channel","private"].includes(channel_type)?Echo[channel_type](channel).listen(event_name,e=>{store.emit(event,e)}):"presence"==channel_type?Echo.join(channel)[event_name](e=>{store.emit(event,e)}):"notification"==channel_type?Echo.private(channel).notification(notification=>{store.emit(event,notification)}):console.warn("Echo channel type not yet supported")}})}modelSyncDebounce(callback,time){return e=>{clearTimeout(this.modelTimeout),this.modelTimeoutCallback=()=>{callback(e)},this.modelTimeout=setTimeout(()=>{callback(e),this.modelTimeout=null,this.modelTimeoutCallback=null},time)}}callAfterModelDebounce(callback){this.modelTimeout&&(clearTimeout(this.modelTimeout),this.modelTimeoutCallback(),this.modelTimeout=null,this.modelTimeoutCallback=null),callback()}addListenerForTeardown(teardownCallback){this.tearDownCallbacks.push(teardownCallback)}tearDown(){this.tearDownCallbacks.forEach(callback=>callback())}}class Connection{constructor(driver){this.driver=driver,this.driver.onMessage=payload=>{this.onMessage(payload)},this.driver.onError=payload=>{this.onError(payload)},this.driver.init()}onMessage(payload){payload.fromPrefetch?store.findComponent(payload.id).receivePrefetchMessage(payload):(store.findComponent(payload.id).receiveMessage(payload),dispatch("livewire:update"))}onError(payloadThatFailedSending){store.findComponent(payloadThatFailedSending.id).messageSendFailed()}sendMessage(message){this.driver.sendMessage(message.payload())}}var http={onError:null,onMessage:null,init(){},sendMessage(payload){fetch(`${window.livewire_app_url}/livewire/message/${payload.name}${window.location.search}`,{method:"POST",body:JSON.stringify(payload),credentials:"same-origin",headers:{"Content-Type":"application/json",Accept:"text/html, application/xhtml+xml","X-CSRF-TOKEN":this.getCSRFToken(),"X-Socket-ID":this.getSocketId(),"X-Livewire":!0}}).then(response=>{response.ok?response.text().then(response=>{this.isOutputFromDump(response)?(this.onError(payload),this.showHtmlModal(response)):this.onMessage.call(this,JSON.parse(response))}):response.text().then(response=>{this.onError(payload),this.showHtmlModal(response)})}).catch(()=>{this.onError(payload)})},isOutputFromDump:output=>!!output.match(/