diff --git a/lnbits/core/static/js/wallet.js b/lnbits/core/static/js/wallet.js
index 1f64427f..054cb77e 100644
--- a/lnbits/core/static/js/wallet.js
+++ b/lnbits/core/static/js/wallet.js
@@ -158,12 +158,6 @@ new Vue({
return (this.payments)
? _.where(this.payments, {pending: 1}).length > 0
: false;
- },
- paymentsFiltered: function () {
- return this.payments;
- return this.payments.filter(function (obj) {
- return obj.isPaid;
- });
}
},
methods: {
@@ -325,6 +319,14 @@ new Vue({
this.fetchPayments(true).then(function () {
dismissMsg();
});
+ },
+ exportCSV: function () {
+ LNbits.utils.exportCSV(this.paymentsTable.columns, this.payments);
+ }
+ },
+ watch: {
+ 'payments': function () {
+ EventHub.$emit('update-wallet-balance', [this.w.wallet.id, this.balance]);
}
},
created: function () {
diff --git a/lnbits/core/templates/core/index.html b/lnbits/core/templates/core/index.html
index 5908129b..dd56cede 100644
--- a/lnbits/core/templates/core/index.html
+++ b/lnbits/core/templates/core/index.html
@@ -57,10 +57,10 @@
POST /api/v1/invoicesPOST /api/v1/payments
+ {"Grpc-Metadata-macaroon": "{{ wallet.inkey }}"}{"value": "200","memo": "beer"} {"pay_req": string,"pay_id": string} GET /api/v1/invoice/*payment_hash*{"Grpc-Metadata-macaroon": "{{ wallet.inkey }}"}{"PAID": "TRUE"}/{"PAID": "FALSE"} {"out": false, "value": <int>, "memo": <string>}
+ {"checking_id": <string>, "payment_request": <string>}
POST /api/v1/payments
+ {"Grpc-Metadata-macaroon": "{{ wallet.adminkey }}"}
+ {"out": true, "bolt11": <string>}
+ {"checking_id": <string>}
+ GET /api/v1/payments/<checking_id>
+ {"Grpc-Metadata-macaroon": "{{ wallet.inkey }}"}
+ {"paid": <bool>}
"+t.code+""},"size-1":{cmd:"fontSize",param:"1",icon:e.size1||e.size,tip:t.size1,htmlTip:''+t.size1+""},"size-2":{cmd:"fontSize",param:"2",icon:e.size2||e.size,tip:t.size2,htmlTip:''+t.size2+""},"size-3":{cmd:"fontSize",param:"3",icon:e.size3||e.size,tip:t.size3,htmlTip:''+t.size3+""},"size-4":{cmd:"fontSize",param:"4",icon:e.size4||e.size,tip:t.size4,htmlTip:''+t.size4+""},"size-5":{cmd:"fontSize",param:"5",icon:e.size5||e.size,tip:t.size5,htmlTip:''+t.size5+""},"size-6":{cmd:"fontSize",param:"6",icon:e.size6||e.size,tip:t.size6,htmlTip:''+t.size6+""},"size-7":{cmd:"fontSize",param:"7",icon:e.size7||e.size,tip:t.size7,htmlTip:''+t.size7+""}}},buttons:function(){var t=this,e=this.definitions||{},i=this.definitions||this.fonts?Yn(!0,{},this.buttonDef,e,function(t,e,i,s){void 0===s&&(s={});var n=Object.keys(s);if(0===n.length)return{};var o={default_font:{cmd:"fontName",param:t,icon:i,tip:e}};return n.forEach(function(t){var e=s[t];o[t]={cmd:"fontName",param:e,icon:i,tip:e,htmlTip:''+e+""}}),o}(this.defaultFont,this.$q.lang.editor.defaultFont,this.$q.iconSet.editor.font,this.fonts)):this.buttonDef;return this.toolbar.map(function(s){return s.map(function(s){if(s.options)return{type:"dropdown",icon:s.icon,label:s.label,size:"sm",dense:!0,fixedLabel:s.fixedLabel,fixedIcon:s.fixedIcon,highlight:s.highlight,list:s.list,options:s.options.map(function(t){return i[t]})};var n=i[s];return n?"no-state"===n.type||e[s]&&(void 0===n.cmd||t.buttonDef[n.cmd]&&"no-state"===t.buttonDef[n.cmd].type)?n:Object.assign({type:"toggle"},n):{type:"slot",slot:s}})})},keys:function(){var t={},e=function(e){e.key&&(t[e.key]={cmd:e.cmd,param:e.param})};return this.buttons.forEach(function(t){t.forEach(function(t){t.options?t.options.forEach(e):e(t)})}),t},innerStyle:function(){return this.inFullscreen?this.contentStyle:[{minHeight:this.minHeight,height:this.height,maxHeight:this.maxHeight},this.contentStyle]},innerClass:function(){return[this.contentClass,{col:this.inFullscreen,"overflow-auto":this.inFullscreen||this.maxHeight}]},attrs:function(){return!0===this.disable?{"aria-disabled":""}:!0===this.readonly?{"aria-readonly":""}:void 0}},data:function(){return{editWatcher:!0,editLinkUrl:null,isViewingSource:!1}},watch:{value:function(t){!0===this.editWatcher?this.__setContent(t):this.editWatcher=!0}},methods:{__onInput:function(){if(!0===this.editWatcher&&void 0!==this.$refs.content){var t=this.isViewingSource?this.$refs.content.innerText:this.$refs.content.innerHTML;t!==this.value&&(this.editWatcher=!1,this.$emit("input",t))}},__onKeydown:function(t){if(this.$emit("keydown",t),!0!==t.ctrlKey||!0===U(t))return this.refreshToolbar(),void(this.$q.platform.is.ie&&this.$nextTick(this.__onInput));var e=t.keyCode,i=this.keys[e];if(void 0!==i){var s=i.cmd,n=i.param;S(t),this.runCmd(s,n,!1)}},__onClick:function(t){this.refreshToolbar(),this.$emit("click",t)},__onBlur:function(){if(void 0!==this.$refs.content){var t=this.$refs.content,e=t.scrollTop,i=t.scrollHeight;this.__offsetBottom=i-e}!0!==this.$q.platform.is.ie&&this.caret.save(),this.$emit("blur")},__onFocus:function(){var t=this;this.$nextTick(function(){void 0!==t.$refs.content&&void 0!==t.__offsetBottom&&(t.$refs.content.scrollTop=t.$refs.content.scrollHeight-t.__offsetBottom)})},__onMouseup:function(t){this.caret.save(),void 0!==this.$listeners.mouseup&&this.$emit("mouseup",t)},__onKeyup:function(t){this.caret.save(),void 0!==this.$listeners.keyup&&this.$emit("keyup",t)},__onTouchend:function(t){this.caret.save(),void 0!==this.$listeners.touchend&&this.$emit("touchend",t)},runCmd:function(t,e,i){var s=this;void 0===i&&(i=!0),this.focus(),this.caret.restore(),this.caret.apply(t,e,function(){s.focus(),s.caret.save(),!0!==s.$q.platform.is.ie&&!0!==s.$q.platform.is.edge||s.$nextTick(s.__onInput),i&&s.refreshToolbar()})},refreshToolbar:function(){var t=this;setTimeout(function(){t.editLinkUrl=null,t.$forceUpdate()},1)},focus:function(){void 0!==this.$refs.content&&this.$refs.content.focus()},getContentEl:function(){return this.$refs.content},__setContent:function(t){void 0!==this.$refs.content&&(this.isViewingSource?this.$refs.content.innerText=t:this.$refs.content.innerHTML=t)}},created:function(){!1===i&&(document.execCommand("defaultParagraphSeparator",!1,"div"),this.defaultFont=window.getComputedStyle(document.body).fontFamily)},mounted:function(){this.caret=new Fn(this.$refs.content,this),this.__setContent(this.value),this.refreshToolbar()},render:function(t){var e;if(this.hasToolbar){var s=[];s.push(t("div",{key:"qedt_top",staticClass:"q-editor__toolbar row no-wrap scroll-x",class:this.toolbarBackgroundClass},An(t,this))),null!==this.editLinkUrl&&s.push(t("div",{key:"qedt_btm",staticClass:"q-editor__toolbar row no-wrap items-center scroll-x",class:this.toolbarBackgroundClass},function(t,e,i){if(e.caret){var s=e.toolbarColor||e.toolbarTextColor,n=e.editLinkUrl,o=function(){e.caret.restore(),n!==e.editLinkUrl&&document.execCommand("createLink",!1,""===n?" ":n),e.editLinkUrl=null,!0===i&&e.$nextTick(e.__onInput)};return[t("div",{staticClass:"q-mx-xs",class:"text-"+s},[e.$q.lang.editor.url+": "]),t(Mn,{key:"qedt_btm_input",staticClass:"q-ma-none q-pa-none col q-editor-input",props:{value:n,color:s,autofocus:!0,borderless:!0,dense:!0},on:{input:function(t){n=t},keydown:function(t){if(!0!==U(t))switch(t.keyCode){case 13:return w(t),o();case 27:w(t),e.caret.restore(),e.editLinkUrl&&"https://"!==e.editLinkUrl||document.execCommand("unlink"),e.editLinkUrl=null}}}}),En(t,[t(ce,{key:"qedt_btm_rem",attrs:{tabindex:-1},props:Object.assign({},e.buttonProps,{label:e.$q.lang.label.remove,noCaps:!0}),on:{click:function(){e.caret.restore(),document.execCommand("unlink"),e.editLinkUrl=null,!0===i&&e.$nextTick(e.__onInput)}}}),t(ce,{key:"qedt_btm_upd",props:Object.assign({},e.buttonProps,{label:e.$q.lang.label.update,noCaps:!0}),on:{click:o}})])]}}(t,this,this.$q.platform.is.ie))),e=t("div",{key:"toolbar_ctainer",staticClass:"q-editor__toolbars-container"},s)}var n=Object.assign({},this.$listeners,{input:this.__onInput,keydown:this.__onKeydown,click:this.__onClick,blur:this.__onBlur,focus:this.__onFocus,mouseup:this.__onMouseup,keyup:this.__onKeyup,touchend:this.__onTouchend});return t("div",{staticClass:"q-editor",style:{height:!0===this.inFullscreen?"100vh":null},class:{disabled:this.disable,"fullscreen column":this.inFullscreen,"q-editor--square no-border-radius":this.square,"q-editor--flat":this.flat,"q-editor--dense":this.dense,"q-editor--dark q-dark":this.isDark},attrs:this.attrs},[e,t("div",{ref:"content",staticClass:"q-editor__content",style:this.innerStyle,class:this.innerClass,attrs:{contenteditable:this.editable,placeholder:this.placeholder},domProps:i?{innerHTML:this.value}:void 0,on:n})])}}),Kn=t.extend({name:"QItemLabel",props:{overline:Boolean,caption:Boolean,header:Boolean,lines:[Number,String]},computed:{classes:function(){return{"q-item__label--overline text-overline":this.overline,"q-item__label--caption text-caption":this.caption,"q-item__label--header":this.header,ellipsis:1===parseInt(this.lines,10)}},style:function(){if(void 0!==this.lines&&parseInt(this.lines,10)>1)return{overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":this.lines}}},render:function(t){return t("div",{staticClass:"q-item__label",style:this.style,class:this.classes,on:this.$listeners},yt(this,"default"))}}),Xn=t.extend({name:"QSlideTransition",props:{appear:Boolean,duration:{type:Number,default:300}},methods:{__begin:function(t,e,i){t.style.overflowY="hidden",void 0!==e&&(t.style.height=e+"px"),t.style.transition="height "+this.duration+"ms cubic-bezier(.25, .8, .50, 1)",this.animating=!0,this.done=i},__end:function(t,e){t.style.overflowY=null,t.style.height=null,t.style.transition=null,this.__cleanup(),e!==this.lastEvent&&this.$emit(e)},__cleanup:function(){this.done&&this.done(),this.done=null,this.animating=!1,clearTimeout(this.timer),clearTimeout(this.timerFallback),void 0!==this.el&&this.el.removeEventListener("transitionend",this.animListener),this.animListener=null}},beforeDestroy:function(){this.animating&&this.__cleanup()},render:function(t){var e=this;return t("transition",{props:{css:!1,appear:this.appear},on:ye(this,"tr",{enter:function(t,i){var s=0;e.el=t,!0===e.animating?(e.__cleanup(),s=t.offsetHeight===t.scrollHeight?0:void 0):e.lastEvent="hide",e.__begin(t,s,i),e.timer=setTimeout(function(){t.style.height=t.scrollHeight+"px",e.animListener=function(i){Object(i)===i&&i.target!==t||e.__end(t,"show")},t.addEventListener("transitionend",e.animListener),e.timerFallback=setTimeout(e.animListener,1.1*e.duration)},100)},leave:function(t,i){var s;e.el=t,!0===e.animating?e.__cleanup():(e.lastEvent="show",s=t.scrollHeight),e.__begin(t,s,i),e.timer=setTimeout(function(){t.style.height=0,e.animListener=function(i){Object(i)===i&&i.target!==t||e.__end(t,"hide")},t.addEventListener("transitionend",e.animListener),e.timerFallback=setTimeout(e.animListener,1.1*e.duration)},100)}})},yt(this,"default"))}}),Zn=t.extend({name:"QSeparator",mixins:[$t],props:{spaced:Boolean,inset:[Boolean,String],vertical:Boolean,color:String},computed:{insetClass:function(){switch(this.inset){case!0:return" q-separator--inset";case"item":return" q-separator--item-inset";case"item-thumbnail":return" q-separator--item-thumbnail-inset";default:return""}},classes:function(){return"q-separator"+this.insetClass+" q-separator--"+(!0===this.vertical?"vertical self-stretch":"horizontal col-grow")+(void 0!==this.color?" bg-"+this.color:"")+(!0===this.isDark?" q-separator--dark":"")+(!0===this.spaced?" q-separator--spaced":"")},attrs:function(){return{role:"separator","aria-orientation":!0===this.vertical?"vertical":"horizontal"}}},render:function(t){return t("hr",{staticClass:"q-separator",class:this.classes,attrs:this.attrs,on:this.$listeners})}}),Gn="q:expansion-item:close",Jn=t.extend({name:"QExpansionItem",mixins:[$t,Dt,fe],props:{icon:String,label:String,labelLines:[Number,String],caption:String,captionLines:[Number,String],dense:Boolean,expandIcon:String,expandedIcon:String,expandIconClass:[Array,String,Object],duration:Number,headerInsetLevel:Number,contentInsetLevel:Number,expandSeparator:Boolean,defaultOpened:Boolean,expandIconToggle:Boolean,switchToggleSide:Boolean,denseToggle:Boolean,group:String,popup:Boolean,headerStyle:[Array,String,Object],headerClass:[Array,String,Object]},data:function(){return{showing:void 0!==this.value?this.value:this.defaultOpened}},watch:{showing:function(t){!0===t&&void 0!==this.group&&this.$root.$emit(Gn,this)},group:function(t,e){void 0!==t&&void 0===e?this.$root.$on(Gn,this.__eventHandler):void 0===t&&void 0!==e&&this.$root.$off(Gn,this.__eventHandler)}},computed:{classes:function(){return"q-expansion-item--"+(!0===this.showing?"expanded":"collapsed")+" q-expansion-item--"+(!0===this.popup?"popup":"standard")},contentStyle:function(){var t;if(void 0!==this.contentInsetLevel)return(t={})["padding"+(!0===this.$q.lang.rtl?"Right":"Left")]=56*this.contentInsetLevel+"px",t},isClickable:function(){return!0===this.hasRouterLink||!0!==this.expandIconToggle},expansionIcon:function(){return void 0!==this.expandedIcon&&!0===this.showing?this.expandedIcon:this.expandIcon||this.$q.iconSet.expansionItem[!0===this.denseToggle?"denseIcon":"icon"]},activeToggleIcon:function(){return!0!==this.disable&&(!0===this.hasRouterLink||!0===this.expandIconToggle)}},methods:{__onHeaderClick:function(t){!0!==this.hasRouterLink&&this.toggle(t),this.$emit("click",t)},__toggleIconKeyboard:function(t){13===t.keyCode&&this.__toggleIcon(t,!0)},__toggleIcon:function(t,e){!0!==e&&void 0!==this.$refs.blurTarget&&this.$refs.blurTarget.focus(),this.toggle(t),S(t)},__eventHandler:function(t){this!==t&&this.group===t.group&&this.hide()},__getToggleIcon:function(t){var e={staticClass:"q-focusable relative-position cursor-pointer"+(!0===this.denseToggle&&!0===this.switchToggleSide?" items-end":""),class:this.expandIconClass,props:{side:!0!==this.switchToggleSide,avatar:this.switchToggleSide}},i=[t(xt,{staticClass:"q-expansion-item__toggle-icon",class:void 0===this.expandedIcon&&!0===this.showing?"q-expansion-item__toggle-icon--rotated":void 0,props:{name:this.expansionIcon}})];return!0===this.activeToggleIcon&&(Object.assign(e,{attrs:{tabindex:0},on:ye(this,"inpExt",{click:this.__toggleIcon,keyup:this.__toggleIconKeyboard})}),i.unshift(t("div",{ref:"blurTarget",staticClass:"q-expansion-item__toggle-focus q-icon q-focus-helper q-focus-helper--rounded",attrs:{tabindex:-1}}))),t(zn,e,i)},__getHeader:function(t){var e;void 0!==this.$scopedSlots.header?e=this.$scopedSlots.header().slice():(e=[t(zn,[t(Kn,{props:{lines:this.labelLines}},[this.label||""]),this.caption?t(Kn,{props:{lines:this.captionLines,caption:!0}},[this.caption]):null])],this.icon&&e[!0===this.switchToggleSide?"push":"unshift"](t(zn,{props:{side:!0===this.switchToggleSide,avatar:!0!==this.switchToggleSide}},[t(xt,{props:{name:this.icon}})]))),!0!==this.disable&&e[!0===this.switchToggleSide?"unshift":"push"](this.__getToggleIcon(t));var i={ref:"item",style:this.headerStyle,class:this.headerClass,props:{dark:this.isDark,disable:this.disable,dense:this.dense,insetLevel:this.headerInsetLevel}};if(!0===this.isClickable){var s=!0===this.hasRouterLink?"nativeOn":"on";i.props.clickable=!0,i[s]=Object.assign({},this.$listeners,{click:this.__onHeaderClick}),!0===this.hasRouterLink&&Object.assign(i.props,this.routerLinkProps)}return t(Ln,i,e)},__getContent:function(t){var e=this,i=[this.__getHeader(t),t(Xn,{props:{duration:this.duration},on:ye(this,"slide",{show:function(){e.$emit("after-show")},hide:function(){e.$emit("after-hide")}})},[t("div",{staticClass:"q-expansion-item__content relative-position",style:this.contentStyle,directives:[{name:"show",value:this.showing}]},yt(this,"default"))])];return this.expandSeparator&&i.push(t(Zn,{staticClass:"q-expansion-item__border q-expansion-item__border--top absolute-top",props:{dark:this.isDark}}),t(Zn,{staticClass:"q-expansion-item__border q-expansion-item__border--bottom absolute-bottom",props:{dark:this.isDark}})),i}},render:function(t){return t("div",{staticClass:"q-expansion-item q-item-type",class:this.classes},[t("div",{staticClass:"q-expansion-item__container relative-position"},this.__getContent(t))])},created:function(){void 0!==this.group&&this.$root.$on(Gn,this.__eventHandler)},beforeDestroy:function(){void 0!==this.group&&this.$root.$off(Gn,this.__eventHandler)}}),to=["top","right","bottom","left"],eo={props:{type:{type:String,default:"a"},outline:Boolean,push:Boolean,flat:Boolean,unelevated:Boolean,color:String,textColor:String,glossy:Boolean,square:Boolean,label:{type:[String,Number],default:""},labelPosition:{type:String,default:"right",validator:function(t){return to.includes(t)}},externalLabel:Boolean,hideLabel:Boolean,labelClass:[Array,String,Object],labelStyle:[Array,String,Object],disable:Boolean},computed:{formClass:function(){return"q-fab--form-"+(!0===this.square?"square":"rounded")},stacked:function(){return!1===this.externalLabel&&["top","bottom"].includes(this.labelPosition)},labelProps:function(){if(!0===this.externalLabel){var t=null===this.hideLabel?!1===this.showing:this.hideLabel;return{action:"push",data:{staticClass:"q-fab__label q-tooltip--style q-fab__label--external q-fab__label--external-"+this.labelPosition+(!0===t?" q-fab__label--external-hidden":""),style:this.labelStyle,class:this.labelClass}}}return{action:["left","top"].includes(this.labelPosition)?"unshift":"push",data:{staticClass:"q-fab__label q-fab__label--internal q-fab__label--internal-"+this.labelPosition+(!0===this.hideLabel?" q-fab__label--internal-hidden":""),style:this.labelStyle,class:this.labelClass}}}}},io=["up","right","down","left"],so=["left","center","right"],no=t.extend({name:"QFab",mixins:[eo,fe],provide:function(){var t=this;return{__qFabClose:function(e){t.hide(e),t.$refs.trigger&&t.$refs.trigger.$el&&t.$refs.trigger.$el.focus()}}},props:{icon:String,activeIcon:String,hideLabel:{default:null},direction:{type:String,default:"right",validator:function(t){return io.includes(t)}},persistent:Boolean,verticalActionsAlign:{type:String,default:"center",validator:function(t){return so.includes(t)}}},data:function(){return{showing:!0===this.value}},computed:{hideOnRouteChange:function(){return!0!==this.persistent},classes:function(){return"q-fab--align-"+this.verticalActionsAlign+" "+this.formClass+(!0===this.showing?" q-fab--opened":"")}},render:function(t){var e=[t("div",{staticClass:"q-fab__icon-holder"},[t(xt,{staticClass:"q-fab__icon absolute-full",props:{name:this.icon||this.$q.iconSet.fab.icon}}),t(xt,{staticClass:"q-fab__active-icon absolute-full",props:{name:this.activeIcon||this.$q.iconSet.fab.activeIcon}})])];return""!==this.label&&e[this.labelProps.action](t("div",this.labelProps.data,[this.label])),t("div",{staticClass:"q-fab z-fab row inline justify-center",class:this.classes,on:this.$listeners},[t("div",{staticClass:"q-fab__actions flex no-wrap inline",class:"q-fab__actions--"+this.direction},yt(this,"default")),t(ce,{ref:"trigger",class:this.formClass,props:Object.assign({},this.$props,{noWrap:!0,stack:this.stacked,align:void 0,icon:void 0,label:void 0,noCaps:!0,fab:!0}),on:ye(this,"tog",{click:this.toggle})},St(e,this,"tooltip"))])}}),oo={start:"self-end",center:"self-center",end:"self-start"},ro=Object.keys(oo),ao=t.extend({name:"QFabAction",mixins:[eo],props:{icon:{type:String,required:!0},anchor:{type:String,validator:function(t){return ro.includes(t)}},to:[String,Object],replace:Boolean},inject:{__qFabClose:{default:function(){console.error("QFabAction needs to be child of QFab")}}},computed:{classes:function(){var t=oo[this.anchor];return this.formClass+(void 0!==t?" "+t:"")}},methods:{click:function(t){this.__qFabClose(),this.$emit("click",t)}},render:function(t){var e=[t(xt,{props:{name:this.icon}})];return""!==this.label&&e[this.labelProps.action](t("div",this.labelProps.data,[this.label])),t(ce,{class:this.classes,props:Object.assign({},this.$props,{noWrap:!0,stack:this.stacked,icon:void 0,label:void 0,noCaps:!0,fabMini:!0}),on:Object.assign({},this.$listeners,{click:this.click})},St(e,this,"default"))}}),lo=t.extend({name:"QFile",mixins:[mn,vn,Je,gn],props:{value:!0===i?{}:[File,FileList,Array],useChips:Boolean,displayValue:[String,Number],maxFiles:[Number,String],tabindex:{type:[String,Number],default:0},counterLabel:Function,inputClass:[Array,String,Object],inputStyle:[Array,String,Object]},data:function(){return{dnd:!1}},computed:{innerValue:function(){return Object(this.value)===this.value?"length"in this.value?Array.from(this.value):[this.value]:[]},selectedString:function(){return this.innerValue.map(function(t){return t.name}).join(", ")},totalSize:function(){return nt(this.innerValue.reduce(function(t,e){return t+e.size},0))},counterProps:function(){return{totalSize:this.totalSize,filesNumber:this.innerValue.length,maxFiles:this.maxFiles}},computedCounter:function(){if(void 0!==this.counterLabel)return this.counterLabel(this.counterProps);var t=this.maxFiles;return this.innerValue.length+(void 0!==t?" / "+t:"")+" ("+this.totalSize+")"}},methods:{removeAtIndex:function(t){var e=this.innerValue.slice();e.splice(t,1),this.__emitValue(e)},removeFile:function(t){var e=this.innerValue.findIndex(t);e>-1&&this.removeAtIndex(e)},__emitValue:function(t){this.$emit("input",!0===this.multiple?t:t[0])},__onKeyup:function(t){13===t.keyCode&&this.pickFiles(t)},__getFileInput:function(){return this.$refs.input},__addFiles:function(t,e){var i=this.__processFiles(t,e);void 0!==i&&this.__emitValue(void 0!==this.maxFiles?i.slice(0,parseInt(this.maxFiles,10)):i)},__getControl:function(t){var e={ref:"target",staticClass:"q-field__native row items-center cursor-pointer",attrs:{tabindex:this.tabindex}};return!0===this.editable&&(e.on=ye(this,"native",{dragover:this.__onDragOver,keyup:this.__onKeyup})),t("div",e,[this.__getInput(t)].concat(this.__getSelection(t)))},__getControlChild:function(t){return this.__getDnd(t,"file")},__getSelection:function(t){var e=this;return void 0!==this.$scopedSlots.file?this.innerValue.map(function(t,i){return e.$scopedSlots.file({index:i,file:t,ref:e})}):void 0!==this.$scopedSlots.selected?this.$scopedSlots.selected({files:this.innerValue,ref:this}):!0===this.useChips?this.innerValue.map(function(i,s){return t(Ci,{key:"file-"+s,props:{removable:e.editable,dense:!0,textColor:e.color,tabindex:e.tabindex},on:ye(e,"rem#"+s,{remove:function(){e.removeAtIndex(s)}})},[t("span",{staticClass:"ellipsis",domProps:{textContent:i.name}})])}):[t("div",{style:this.inputStyle,class:this.inputClass,domProps:{textContent:void 0!==this.displayValue?this.displayValue:this.selectedString}})]},__getInput:function(t){var e={ref:"input",staticClass:"q-field__input fit absolute-full cursor-pointer",attrs:Object.assign({},{tabindex:-1,type:"file",title:"",accept:this.accept,name:this.nameProp},this.$attrs,{id:this.targetUid,disabled:!0!==this.editable}),domProps:this.formDomProps,on:ye(this,"input",{change:this.__addFiles})};return!0===this.multiple&&(e.attrs.multiple=!0),t("input",e)}},created:function(){this.fieldClass="q-file q-field--auto-height",this.type="file"}}),co=t.extend({name:"QFooter",inject:{layout:{default:function(){console.error("QFooter needs to be child of QLayout")}}},props:{value:{type:Boolean,default:!0},reveal:Boolean,bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},data:function(){return{size:parseInt(this.heightHint,10),revealed:!0,windowHeight:n||this.layout.container?0:window.innerHeight}},watch:{value:function(t){this.__update("space",t),this.__updateLocal("revealed",!0),this.layout.__animate()},offset:function(t){this.__update("offset",t)},reveal:function(t){!1===t&&this.__updateLocal("revealed",this.value)},revealed:function(t){this.layout.__animate(),this.$emit("reveal",t)},"layout.scroll":function(){this.__updateRevealed()},"layout.height":function(){this.__updateRevealed()},size:function(){this.__updateRevealed()},"$q.screen.height":function(t){!0!==this.layout.container&&this.__updateLocal("windowHeight",t)}},computed:{fixed:function(){return!0===this.reveal||this.layout.view.indexOf("F")>-1||!0===this.layout.container},containerHeight:function(){return!0===this.layout.container?this.layout.containerHeight:this.windowHeight},offset:function(){if(!0!==this.value)return 0;if(!0===this.fixed)return!0===this.revealed?this.size:0;var t=this.layout.scroll.position+this.containerHeight+this.size-this.layout.height;return t>0?t:0},classes:function(){return(!0===this.fixed?"fixed":"absolute")+"-bottom"+(!0===this.value||!0===this.fixed?"":" hidden")+(!0===this.bordered?" q-footer--bordered":"")+(!0!==this.value||!0===this.fixed&&!0!==this.revealed?" q-footer--hidden":"")},style:function(){var t=this.layout.rows.bottom,e={};return"l"===t[0]&&!0===this.layout.left.space&&(e[!0===this.$q.lang.rtl?"right":"left"]=this.layout.left.size+"px"),"r"===t[2]&&!0===this.layout.right.space&&(e[!0===this.$q.lang.rtl?"left":"right"]=this.layout.right.size+"px"),e}},render:function(t){var e=[t(ji,{props:{debounce:0},on:ye(this,"resize",{resize:this.__onResize})})];return!0===this.elevated&&e.push(t("div",{staticClass:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),t("footer",{staticClass:"q-footer q-layout__section--marginal",class:this.classes,style:this.style,on:Object.assign({},this.$listeners,{input:y})},St(e,this,"default"))},created:function(){this.layout.instances.footer=this,!0===this.value&&this.__update("size",this.size),this.__update("space",this.value),this.__update("offset",this.offset)},beforeDestroy:function(){this.layout.instances.footer===this&&(this.layout.instances.footer=void 0,this.__update("size",0),this.__update("offset",0),this.__update("space",!1))},methods:{__onResize:function(t){var e=t.height;this.__updateLocal("size",e),this.__update("size",e)},__update:function(t,e){this.layout.footer[t]!==e&&(this.layout.footer[t]=e)},__updateLocal:function(t,e){this[t]!==e&&(this[t]=e)},__updateRevealed:function(){if(!0===this.reveal){var t=this.layout.scroll,e=t.direction,i=t.position,s=t.inflexionPosition;this.__updateLocal("revealed","up"===e||i-s<100||this.layout.height-this.containerHeight-i-this.size<300)}}}}),uo=t.extend({name:"QForm",props:{autofocus:Boolean,noErrorFocus:Boolean,noResetFocus:Boolean,greedy:Boolean},mounted:function(){this.validateIndex=0,!0===this.autofocus&&this.focus()},methods:{validate:function(t){var e=this,i=[],s="boolean"==typeof t?t:!0!==this.noErrorFocus;this.validateIndex++;for(var n=be(this),o=function(t,i){e.$emit("validation-"+(!0===t?"success":"error"),i)},r=function(t){var r=n[t];if("function"==typeof r.validate){var a=r.validate();if("function"==typeof a.then)i.push(a.then(function(t){return{valid:t,comp:r}},function(t){return{valid:!1,comp:r,error:t}}));else if(!0!==a){if(!1===e.greedy)return o(!1,r),!0===s&&"function"==typeof r.focus&&r.focus(),{v:Promise.resolve(!1)};i.push({valid:!1,comp:r})}}},a=0;a