From 9c4b19399e16a926056c181515d9da26571adad4 Mon Sep 17 00:00:00 2001 From: Nerwyn Singh Date: Sat, 25 Jan 2025 21:09:31 -0500 Subject: [PATCH] remove pointer events polyfill since any device old enough to not support pointer events is too old to support HA frontend, change key action hold_secs to 1 second to support Apple TV hold actions --- README.md | 2 +- dist/universal-remote-card.min.js | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- src/classes/base-remote-element.ts | 2 +- src/universal-remote-card.ts | 18 +++++++----------- 6 files changed, 14 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 5e1efb0..9a95272 100644 --- a/README.md +++ b/README.md @@ -327,7 +327,7 @@ Actions follow the [Home Assistant actions](https://www.home-assistant.io/dashbo | URL | Navigate to an external URL. | | Perform action | Call any Home Assistant service action. | | Assist | Open the assist dialog. Uses the mobile dialog if available, like in the Home Assistant app. The pipeline ID and start listening options only work in the mobile assist dialog. | -| Key | Send a key to the media platform via the action `remote.send_command`. If no hold action is defined, then `hold_secs: 0.5` is added when a hold action is fired. | +| Key | Send a key to the media platform via the action `remote.send_command`. If no hold action is defined, then `hold_secs: 1` is added when a hold action is fired. | | Source | Open a source via the action `remote.turn_on`. | | Keyboard | Open a dialog for sending seamless keyboard input. | | Textbox | Open a dialog for sending bulk keyboard input. | diff --git a/dist/universal-remote-card.min.js b/dist/universal-remote-card.min.js index dddac6f..2e45290 100644 --- a/dist/universal-remote-card.min.js +++ b/dist/universal-remote-card.min.js @@ -1,5 +1,5 @@ /*! For license information please see universal-remote-card.min.js.LICENSE.txt */ -(()=>{var __webpack_modules__={894:function(t){var e;"undefined"!=typeof self&&self,e=function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var o=e[i]={i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=11)}([function(t,e,n){"use strict";var i=Array.prototype,o=Object.prototype,a={"&":"&",'"':""","'":"'","<":"<",">":">","\\":"\"},r=/[&"'<>\\]/g;function s(t,e){return o.hasOwnProperty.call(t,e)}function c(t){return a[t]}function l(t,e,n){var i,o,a;if(t instanceof Error&&(t=(o=t).name+": "+o.message),Object.setPrototypeOf?(i=new Error(t),Object.setPrototypeOf(i,l.prototype)):(i=this,Object.defineProperty(i,"message",{enumerable:!1,writable:!0,value:t})),Object.defineProperty(i,"name",{value:"Template render error"}),Error.captureStackTrace&&Error.captureStackTrace(i,this.constructor),o){var r=Object.getOwnPropertyDescriptor(o,"stack");(a=r&&(r.get||function(){return r.value}))||(a=function(){return o.stack})}else{var s=new Error(t).stack;a=function(){return s}}return Object.defineProperty(i,"stack",{get:function(){return a.call(i)}}),Object.defineProperty(i,"cause",{value:o}),i.lineno=e,i.colno=n,i.firstUpdate=!0,i.Update=function(t){var e="("+(t||"unknown path")+")";return this.firstUpdate&&(this.lineno&&this.colno?e+=" [Line "+this.lineno+", Column "+this.colno+"]":this.lineno&&(e+=" [Line "+this.lineno+"]")),e+="\n ",this.firstUpdate&&(e+=" "),this.message=e+(this.message||""),this.firstUpdate=!1,this},i}function u(t){return"[object Function]"===o.toString.call(t)}function p(t){return"[object Array]"===o.toString.call(t)}function d(t){return"[object String]"===o.toString.call(t)}function h(t){return"[object Object]"===o.toString.call(t)}function m(t){var e,n=(e=t)?"string"==typeof e?e.split("."):[e]:[];return function(t){for(var e=t,i=0;it.length)r=o.slice(0,t.length),o.slice(r.length,l).forEach((function(t,n){n2?o-2:0),r=2;r0||!n)&&process.stdout.write(" ".repeat(e));var a=o===i.length-1?"":"\n";process.stdout.write(""+t+a)}))}t.exports={Node:c,Root:p,NodeList:u,Value:l,Literal:d,Symbol:h,Group:m,Array:f,Pair:y,Dict:_,Output:U,Capture:j,TemplateData:B,If:v,IfAsync:g,InlineIf:k,For:w,AsyncEach:C,AsyncAll:x,Macro:E,Caller:L,Import:T,FromImport:A,FunCall:S,Filter:O,FilterAsync:M,KeywordArgs:$,Block:I,Super:P,Extends:D,Include:N,Set:R,Switch:V,Case:F,LookupVal:b,BinOp:H,In:Y,Is:Z,Or:q,And:z,Not:W,Add:G,Concat:X,Sub:J,Mul:Q,Div:tt,FloorDiv:et,Mod:nt,Pow:it,Neg:ot,Pos:at,Compare:rt,CompareOperand:st,CallExtension:ct,CallExtensionAsync:lt,printNodes:function t(e,n){if(n=n||0,ut(e.typename+": ",n),e instanceof u)ut("\n"),e.children.forEach((function(e){t(e,n+2)}));else if(e instanceof ct)ut(e.extName+"."+e.prop+"\n"),e.args&&t(e.args,n+2),e.contentArgs&&e.contentArgs.forEach((function(e){t(e,n+2)}));else{var i=[],o=null;e.iterFields((function(t,e){t instanceof c?i.push([e,t]):(o=o||{})[e]=t})),o?ut(JSON.stringify(o,null,2)+"\n",null,!0):ut("\n"),i.forEach((function(e){var i=e[0],o=e[1];ut("["+i+"] =>",n+2),t(o,n+4)}))}}}},function(t,e){},function(t,e,n){"use strict";function i(t,e){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},i(t,e)}var o=n(8),a=n(17),r=n(3),s=n(0).TemplateError,c=n(2).Frame,l=n(1).Obj,u={"==":"==","===":"===","!=":"!=","!==":"!==","<":"<",">":">","<=":"<=",">=":">="},p=function(t){var e,n;function o(){return t.apply(this,arguments)||this}n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,i(e,n);var a=o.prototype;return a.init=function(t,e){this.templateName=t,this.codebuf=[],this.lastId=0,this.buffer=null,this.bufferStack=[],this._scopeClosers="",this.inBlock=!1,this.throwOnUndefined=e},a.fail=function(t,e,n){throw void 0!==e&&(e+=1),void 0!==n&&(n+=1),new s(t,e,n)},a._pushBuffer=function(){var t=this._tmpid();return this.bufferStack.push(this.buffer),this.buffer=t,this._emit("var "+this.buffer+' = "";'),t},a._popBuffer=function(){this.buffer=this.bufferStack.pop()},a._emit=function(t){this.codebuf.push(t)},a._emitLine=function(t){this._emit(t+"\n")},a._emitLines=function(){for(var t=this,e=arguments.length,n=new Array(e),i=0;i0&&o._emit(","),o.compile(t,e)})),i&&this._emit(i)},a._compileExpression=function(t,e){this.assertType(t,r.Literal,r.Symbol,r.Group,r.Array,r.Dict,r.FunCall,r.Caller,r.Filter,r.LookupVal,r.Compare,r.InlineIf,r.In,r.Is,r.And,r.Or,r.Not,r.Add,r.Concat,r.Sub,r.Mul,r.Div,r.FloorDiv,r.Mod,r.Pow,r.Neg,r.Pos,r.Compare,r.NodeList),this.compile(t,e)},a.assertType=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i0&&i._emit(","),t){i._emitLine("function(cb) {"),i._emitLine("if(!cb) { cb = function(err) { if(err) { throw err; }}}");var o=i._pushBuffer();i._withScopedSyntax((function(){i.compile(t,e),i._emitLine("cb(null, "+o+");")})),i._popBuffer(),i._emitLine("return "+o+";"),i._emitLine("}")}else i._emit("null")})),n){var c=this._tmpid();this._emitLine(", "+this._makeCallback(c)),this._emitLine(this.buffer+" += runtime.suppressValue("+c+", "+s+" && env.opts.autoescape);"),this._addScopeLevel()}else this._emit(")"),this._emit(", "+s+" && env.opts.autoescape);\n")},a.compileCallExtensionAsync=function(t,e){this.compileCallExtension(t,e,!0)},a.compileNodeList=function(t,e){this._compileChildren(t,e)},a.compileLiteral=function(t){if("string"==typeof t.value){var e=t.value.replace(/\\/g,"\\\\");e=(e=(e=(e=(e=e.replace(/"/g,'\\"')).replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t")).replace(/\u2028/g,"\\u2028"),this._emit('"'+e+'"')}else null===t.value?this._emit("null"):this._emit(t.value.toString())},a.compileSymbol=function(t,e){var n=t.value,i=e.lookup(n);i?this._emit(i):this._emit('runtime.contextOrFrameLookup(context, frame, "'+n+'")')},a.compileGroup=function(t,e){this._compileAggregate(t,e,"(",")")},a.compileArray=function(t,e){this._compileAggregate(t,e,"[","]")},a.compileDict=function(t,e){this._compileAggregate(t,e,"{","}")},a.compilePair=function(t,e){var n=t.key,i=t.value;n instanceof r.Symbol?n=new r.Literal(n.lineno,n.colno,n.value):n instanceof r.Literal&&"string"==typeof n.value||this.fail("compilePair: Dict keys must be strings or names",n.lineno,n.colno),this.compile(n,e),this._emit(": "),this._compileExpression(i,e)},a.compileInlineIf=function(t,e){this._emit("("),this.compile(t.cond,e),this._emit("?"),this.compile(t.body,e),this._emit(":"),null!==t.else_?this.compile(t.else_,e):this._emit('""'),this._emit(")")},a.compileIn=function(t,e){this._emit("runtime.inOperator("),this.compile(t.left,e),this._emit(","),this.compile(t.right,e),this._emit(")")},a.compileIs=function(t,e){var n=t.right.name?t.right.name.value:t.right.value;this._emit('env.getTest("'+n+'").call(context, '),this.compile(t.left,e),t.right.args&&(this._emit(","),this.compile(t.right.args,e)),this._emit(") === true")},a._binOpEmitter=function(t,e,n){this.compile(t.left,e),this._emit(n),this.compile(t.right,e)},a.compileOr=function(t,e){return this._binOpEmitter(t,e," || ")},a.compileAnd=function(t,e){return this._binOpEmitter(t,e," && ")},a.compileAdd=function(t,e){return this._binOpEmitter(t,e," + ")},a.compileConcat=function(t,e){return this._binOpEmitter(t,e,' + "" + ')},a.compileSub=function(t,e){return this._binOpEmitter(t,e," - ")},a.compileMul=function(t,e){return this._binOpEmitter(t,e," * ")},a.compileDiv=function(t,e){return this._binOpEmitter(t,e," / ")},a.compileMod=function(t,e){return this._binOpEmitter(t,e," % ")},a.compileNot=function(t,e){this._emit("!"),this.compile(t.target,e)},a.compileFloorDiv=function(t,e){this._emit("Math.floor("),this.compile(t.left,e),this._emit(" / "),this.compile(t.right,e),this._emit(")")},a.compilePow=function(t,e){this._emit("Math.pow("),this.compile(t.left,e),this._emit(", "),this.compile(t.right,e),this._emit(")")},a.compileNeg=function(t,e){this._emit("-"),this.compile(t.target,e)},a.compilePos=function(t,e){this._emit("+"),this.compile(t.target,e)},a.compileCompare=function(t,e){var n=this;this.compile(t.expr,e),t.ops.forEach((function(t){n._emit(" "+u[t.type]+" "),n.compile(t.expr,e)}))},a.compileLookupVal=function(t,e){this._emit("runtime.memberLookup(("),this._compileExpression(t.target,e),this._emit("),"),this._compileExpression(t.val,e),this._emit(")")},a._getNodeName=function(t){switch(t.typename){case"Symbol":return t.value;case"FunCall":return"the return value of ("+this._getNodeName(t.name)+")";case"LookupVal":return this._getNodeName(t.target)+'["'+this._getNodeName(t.val)+'"]';case"Literal":return t.value.toString();default:return"--expression--"}},a.compileFunCall=function(t,e){this._emit("(lineno = "+t.lineno+", colno = "+t.colno+", "),this._emit("runtime.callWrap("),this._compileExpression(t.name,e),this._emit(', "'+this._getNodeName(t.name).replace(/"/g,'\\"')+'", context, '),this._compileAggregate(t.args,e,"[","])"),this._emit(")")},a.compileFilter=function(t,e){var n=t.name;this.assertType(n,r.Symbol),this._emit('env.getFilter("'+n.value+'").call(context, '),this._compileAggregate(t.args,e),this._emit(")")},a.compileFilterAsync=function(t,e){var n=t.name,i=t.symbol.value;this.assertType(n,r.Symbol),e.set(i,i),this._emit('env.getFilter("'+n.value+'").call(context, '),this._compileAggregate(t.args,e),this._emitLine(", "+this._makeCallback(i)),this._addScopeLevel()},a.compileKeywordArgs=function(t,e){this._emit("runtime.makeKeywordArgs("),this.compileDict(t,e),this._emit(")")},a.compileSet=function(t,e){var n=this,i=[];t.targets.forEach((function(t){var o=t.value,a=e.lookup(o);null==a&&(a=n._tmpid(),n._emitLine("var "+a+";")),i.push(a)})),t.value?(this._emit(i.join(" = ")+" = "),this._compileExpression(t.value,e),this._emitLine(";")):(this._emit(i.join(" = ")+" = "),this.compile(t.body,e),this._emitLine(";")),t.targets.forEach((function(t,e){var o=i[e],a=t.value;n._emitLine('frame.set("'+a+'", '+o+", true);"),n._emitLine("if(frame.topLevel) {"),n._emitLine('context.setVariable("'+a+'", '+o+");"),n._emitLine("}"),"_"!==a.charAt(0)&&(n._emitLine("if(frame.topLevel) {"),n._emitLine('context.addExport("'+a+'", '+o+");"),n._emitLine("}"))}))},a.compileSwitch=function(t,e){var n=this;this._emit("switch ("),this.compile(t.expr,e),this._emit(") {"),t.cases.forEach((function(t,i){n._emit("case "),n.compile(t.cond,e),n._emit(": "),n.compile(t.body,e),t.body.children.length&&n._emitLine("break;")})),t.default&&(this._emit("default:"),this.compile(t.default,e)),this._emit("}")},a.compileIf=function(t,e,n){var i=this;this._emit("if("),this._compileExpression(t.cond,e),this._emitLine(") {"),this._withScopedSyntax((function(){i.compile(t.body,e),n&&i._emit("cb()")})),t.else_?(this._emitLine("}\nelse {"),this._withScopedSyntax((function(){i.compile(t.else_,e),n&&i._emit("cb()")}))):n&&(this._emitLine("}\nelse {"),this._emit("cb()")),this._emitLine("}")},a.compileIfAsync=function(t,e){this._emit("(function(cb) {"),this.compileIf(t,e,!0),this._emit("})("+this._makeCallback()),this._addScopeLevel()},a._emitLoopBindings=function(t,e,n,i){var o=this;[{name:"index",val:n+" + 1"},{name:"index0",val:n},{name:"revindex",val:i+" - "+n},{name:"revindex0",val:i+" - "+n+" - 1"},{name:"first",val:n+" === 0"},{name:"last",val:n+" === "+i+" - 1"},{name:"length",val:i}].forEach((function(t){o._emitLine('frame.set("loop.'+t.name+'", '+t.val+");")}))},a.compileFor=function(t,e){var n=this,i=this._tmpid(),o=this._tmpid(),a=this._tmpid();if(e=e.push(),this._emitLine("frame = frame.push();"),this._emit("var "+a+" = "),this._compileExpression(t.arr,e),this._emitLine(";"),this._emit("if("+a+") {"),this._emitLine(a+" = runtime.fromIterator("+a+");"),t.name instanceof r.Array){this._emitLine("var "+i+";"),this._emitLine("if(runtime.isArray("+a+")) {"),this._emitLine("var "+o+" = "+a+".length;"),this._emitLine("for("+i+"=0; "+i+" < "+a+".length; "+i+"++) {"),t.name.children.forEach((function(o,r){var s=n._tmpid();n._emitLine("var "+s+" = "+a+"["+i+"]["+r+"];"),n._emitLine('frame.set("'+o+'", '+a+"["+i+"]["+r+"]);"),e.set(t.name.children[r].value,s)})),this._emitLoopBindings(t,a,i,o),this._withScopedSyntax((function(){n.compile(t.body,e)})),this._emitLine("}"),this._emitLine("} else {");var s=t.name.children,c=s[0],l=s[1],u=this._tmpid(),p=this._tmpid();e.set(c.value,u),e.set(l.value,p),this._emitLine(i+" = -1;"),this._emitLine("var "+o+" = runtime.keys("+a+").length;"),this._emitLine("for(var "+u+" in "+a+") {"),this._emitLine(i+"++;"),this._emitLine("var "+p+" = "+a+"["+u+"];"),this._emitLine('frame.set("'+c.value+'", '+u+");"),this._emitLine('frame.set("'+l.value+'", '+p+");"),this._emitLoopBindings(t,a,i,o),this._withScopedSyntax((function(){n.compile(t.body,e)})),this._emitLine("}"),this._emitLine("}")}else{var d=this._tmpid();e.set(t.name.value,d),this._emitLine("var "+o+" = "+a+".length;"),this._emitLine("for(var "+i+"=0; "+i+" < "+a+".length; "+i+"++) {"),this._emitLine("var "+d+" = "+a+"["+i+"];"),this._emitLine('frame.set("'+t.name.value+'", '+d+");"),this._emitLoopBindings(t,a,i,o),this._withScopedSyntax((function(){n.compile(t.body,e)})),this._emitLine("}")}this._emitLine("}"),t.else_&&(this._emitLine("if (!"+o+") {"),this.compile(t.else_,e),this._emitLine("}")),this._emitLine("frame = frame.pop();")},a._compileAsyncLoop=function(t,e,n){var i=this,o=this._tmpid(),a=this._tmpid(),s=this._tmpid(),c=n?"asyncAll":"asyncEach";if(e=e.push(),this._emitLine("frame = frame.push();"),this._emit("var "+s+" = runtime.fromIterator("),this._compileExpression(t.arr,e),this._emitLine(");"),t.name instanceof r.Array){var l=t.name.children.length;this._emit("runtime."+c+"("+s+", "+l+", function("),t.name.children.forEach((function(t){i._emit(t.value+",")})),this._emit(o+","+a+",next) {"),t.name.children.forEach((function(t){var n=t.value;e.set(n,n),i._emitLine('frame.set("'+n+'", '+n+");")}))}else{var u=t.name.value;this._emitLine("runtime."+c+"("+s+", 1, function("+u+", "+o+", "+a+",next) {"),this._emitLine('frame.set("'+u+'", '+u+");"),e.set(u,u)}this._emitLoopBindings(t,s,o,a),this._withScopedSyntax((function(){var a;n&&(a=i._pushBuffer()),i.compile(t.body,e),i._emitLine("next("+o+(a?","+a:"")+");"),n&&i._popBuffer()}));var p=this._tmpid();this._emitLine("}, "+this._makeCallback(p)),this._addScopeLevel(),n&&this._emitLine(this.buffer+" += "+p+";"),t.else_&&(this._emitLine("if (!"+s+".length) {"),this.compile(t.else_,e),this._emitLine("}")),this._emitLine("frame = frame.pop();")},a.compileAsyncEach=function(t,e){this._compileAsyncLoop(t,e)},a.compileAsyncAll=function(t,e){this._compileAsyncLoop(t,e,!0)},a._compileMacro=function(t,e){var n=this,i=[],o=null,a="macro_"+this._tmpid(),s=void 0!==e;t.args.children.forEach((function(e,a){a===t.args.children.length-1&&e instanceof r.Dict?o=e:(n.assertType(e,r.Symbol),i.push(e))}));var l,u=[].concat(i.map((function(t){return"l_"+t.value})),["kwargs"]),p=i.map((function(t){return'"'+t.value+'"'})),d=(o&&o.children||[]).map((function(t){return'"'+t.key.value+'"'}));l=s?e.push(!0):new c,this._emitLines("var "+a+" = runtime.makeMacro(","["+p.join(", ")+"], ","["+d.join(", ")+"], ","function ("+u.join(", ")+") {","var callerFrame = frame;","frame = "+(s?"frame.push(true);":"new runtime.Frame();"),"kwargs = kwargs || {};",'if (Object.prototype.hasOwnProperty.call(kwargs, "caller")) {','frame.set("caller", kwargs.caller); }'),i.forEach((function(t){n._emitLine('frame.set("'+t.value+'", l_'+t.value+");"),l.set(t.value,"l_"+t.value)})),o&&o.children.forEach((function(t){var e=t.key.value;n._emit('frame.set("'+e+'", '),n._emit('Object.prototype.hasOwnProperty.call(kwargs, "'+e+'")'),n._emit(' ? kwargs["'+e+'"] : '),n._compileExpression(t.value,l),n._emit(");")}));var h=this._pushBuffer();return this._withScopedSyntax((function(){n.compile(t.body,l)})),this._emitLine("frame = "+(s?"frame.pop();":"callerFrame;")),this._emitLine("return new runtime.SafeString("+h+");"),this._emitLine("});"),this._popBuffer(),a},a.compileMacro=function(t,e){var n=this._compileMacro(t),i=t.name.value;e.set(i,n),e.parent?this._emitLine('frame.set("'+i+'", '+n+");"):("_"!==t.name.value.charAt(0)&&this._emitLine('context.addExport("'+i+'");'),this._emitLine('context.setVariable("'+i+'", '+n+");"))},a.compileCaller=function(t,e){this._emit("(function (){");var n=this._compileMacro(t,e);this._emit("return "+n+";})()")},a._compileGetTemplate=function(t,e,n,i){var o=this._tmpid(),a=this._templateName(),r=this._makeCallback(o),s=n?"true":"false",c=i?"true":"false";return this._emit("env.getTemplate("),this._compileExpression(t.template,e),this._emitLine(", "+s+", "+a+", "+c+", "+r),o},a.compileImport=function(t,e){var n=t.target.value,i=this._compileGetTemplate(t,e,!1,!1);this._addScopeLevel(),this._emitLine(i+".getExported("+(t.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(i)),this._addScopeLevel(),e.set(n,i),e.parent?this._emitLine('frame.set("'+n+'", '+i+");"):this._emitLine('context.setVariable("'+n+'", '+i+");")},a.compileFromImport=function(t,e){var n=this,i=this._compileGetTemplate(t,e,!1,!1);this._addScopeLevel(),this._emitLine(i+".getExported("+(t.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(i)),this._addScopeLevel(),t.names.children.forEach((function(t){var o,a,s=n._tmpid();t instanceof r.Pair?(o=t.key.value,a=t.value.value):a=o=t.value,n._emitLine("if(Object.prototype.hasOwnProperty.call("+i+', "'+o+'")) {'),n._emitLine("var "+s+" = "+i+"."+o+";"),n._emitLine("} else {"),n._emitLine("cb(new Error(\"cannot import '"+o+"'\")); return;"),n._emitLine("}"),e.set(a,s),e.parent?n._emitLine('frame.set("'+a+'", '+s+");"):n._emitLine('context.setVariable("'+a+'", '+s+");")}))},a.compileBlock=function(t){var e=this._tmpid();this.inBlock||this._emit('(parentTemplate ? function(e, c, f, r, cb) { cb(""); } : '),this._emit('context.getBlock("'+t.name.value+'")'),this.inBlock||this._emit(")"),this._emitLine("(env, context, frame, runtime, "+this._makeCallback(e)),this._emitLine(this.buffer+" += "+e+";"),this._addScopeLevel()},a.compileSuper=function(t,e){var n=t.blockName.value,i=t.symbol.value,o=this._makeCallback(i);this._emitLine('context.getSuper(env, "'+n+'", b_'+n+", frame, runtime, "+o),this._emitLine(i+" = runtime.markSafe("+i+");"),this._addScopeLevel(),e.set(i,i)},a.compileExtends=function(t,e){var n=this._tmpid(),i=this._compileGetTemplate(t,e,!0,!1);this._emitLine("parentTemplate = "+i),this._emitLine("for(var "+n+" in parentTemplate.blocks) {"),this._emitLine("context.addBlock("+n+", parentTemplate.blocks["+n+"]);"),this._emitLine("}"),this._addScopeLevel()},a.compileInclude=function(t,e){this._emitLine("var tasks = [];"),this._emitLine("tasks.push("),this._emitLine("function(callback) {");var n=this._compileGetTemplate(t,e,!1,t.ignoreMissing);this._emitLine("callback(null,"+n+");});"),this._emitLine("});");var i=this._tmpid();this._emitLine("tasks.push("),this._emitLine("function(template, callback){"),this._emitLine("template.render(context.getVariables(), frame, "+this._makeCallback(i)),this._emitLine("callback(null,"+i+");});"),this._emitLine("});"),this._emitLine("tasks.push("),this._emitLine("function(result, callback){"),this._emitLine(this.buffer+" += result;"),this._emitLine("callback(null);"),this._emitLine("});"),this._emitLine("env.waterfall(tasks, function(){"),this._addScopeLevel()},a.compileTemplateData=function(t,e){this.compileLiteral(t,e)},a.compileCapture=function(t,e){var n=this,i=this.buffer;this.buffer="output",this._emitLine("(function() {"),this._emitLine('var output = "";'),this._withScopedSyntax((function(){n.compile(t.body,e)})),this._emitLine("return output;"),this._emitLine("})()"),this.buffer=i},a.compileOutput=function(t,e){var n=this;t.children.forEach((function(i){i instanceof r.TemplateData?i.value&&(n._emit(n.buffer+" += "),n.compileLiteral(i,e),n._emitLine(";")):(n._emit(n.buffer+" += runtime.suppressValue("),n.throwOnUndefined&&n._emit("runtime.ensureDefined("),n.compile(i,e),n.throwOnUndefined&&n._emit(","+t.lineno+","+t.colno+")"),n._emit(", env.opts.autoescape);\n"))}))},a.compileRoot=function(t,e){var n=this;e&&this.fail("compileRoot: root node can't have frame"),e=new c,this._emitFuncBegin(t,"root"),this._emitLine("var parentTemplate = null;"),this._compileChildren(t,e),this._emitLine("if(parentTemplate) {"),this._emitLine("parentTemplate.rootRenderFunc(env, context, frame, runtime, cb);"),this._emitLine("} else {"),this._emitLine("cb(null, "+this.buffer+");"),this._emitLine("}"),this._emitFuncEnd(!0),this.inBlock=!0;var i=[],o=t.findAll(r.Block);o.forEach((function(t,e){var o=t.name.value;if(-1!==i.indexOf(o))throw new Error('Block "'+o+'" defined more than once.');i.push(o),n._emitFuncBegin(t,"b_"+o);var a=new c;n._emitLine("var frame = frame.push(true);"),n.compile(t.body,a),n._emitFuncEnd()})),this._emitLine("return {"),o.forEach((function(t,e){var i="b_"+t.name.value;n._emitLine(i+": "+i+",")})),this._emitLine("root: root\n};")},a.compile=function(t,e){var n=this["compile"+t.typename];n?n.call(this,t,e):this.fail("compile: Cannot compile node: "+t.typename,t.lineno,t.colno)},a.getCode=function(){return this.codebuf.join("")},o}(l);t.exports={compile:function(t,e,n,i,r){void 0===r&&(r={});var s=new p(i,r.throwOnUndefined),c=(n||[]).map((function(t){return t.preprocess})).filter((function(t){return!!t})).reduce((function(t,e){return e(t)}),t);return s.compile(a.transform(o.parse(c,n,r),e,i)),s.getCode()},Compiler:p}},function(t,e,n){"use strict";function i(t,e){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},i(t,e)}var o=n(4),a=n(1).EmitterObj;t.exports=function(t){var e,n;function a(){return t.apply(this,arguments)||this}n=t,(e=a).prototype=Object.create(n.prototype),e.prototype.constructor=e,i(e,n);var r=a.prototype;return r.resolve=function(t,e){return o.resolve(o.dirname(t),e)},r.isRelative=function(t){return 0===t.indexOf("./")||0===t.indexOf("../")},a}(a)},function(t,e,n){"use strict";function i(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,o(t,e)}function o(t,e){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},o(t,e)}var a=n(12),r=n(15),s=n(0),c=n(5),l=n(18),u=n(10),p=u.FileSystemLoader,d=u.WebLoader,h=u.PrecompiledLoader,m=n(20),f=n(21),y=n(1),_=y.Obj,b=y.EmitterObj,v=n(2),g=v.handleError,k=v.Frame,w=n(22);function C(t,e,n){a((function(){t(e,n)}))}var x={type:"code",obj:{root:function(t,e,n,i,o){try{o(null,"")}catch(t){o(g(t,null,null))}}}},E=function(t){function e(){return t.apply(this,arguments)||this}i(e,t);var n=e.prototype;return n.init=function(t,e){var n=this;e=this.opts=e||{},this.opts.dev=!!e.dev,this.opts.autoescape=null==e.autoescape||e.autoescape,this.opts.throwOnUndefined=!!e.throwOnUndefined,this.opts.trimBlocks=!!e.trimBlocks,this.opts.lstripBlocks=!!e.lstripBlocks,this.loaders=[],t?this.loaders=s.isArray(t)?t:[t]:p?this.loaders=[new p("views")]:d&&(this.loaders=[new d("/views")]),"undefined"!=typeof window&&window.nunjucksPrecompiled&&this.loaders.unshift(new h(window.nunjucksPrecompiled)),this._initLoaders(),this.globals=f(),this.filters={},this.tests={},this.asyncFilters=[],this.extensions={},this.extensionsList=[],s._entries(l).forEach((function(t){var e=t[0],i=t[1];return n.addFilter(e,i)})),s._entries(m).forEach((function(t){var e=t[0],i=t[1];return n.addTest(e,i)}))},n._initLoaders=function(){var t=this;this.loaders.forEach((function(e){e.cache={},"function"==typeof e.on&&(e.on("update",(function(n,i){e.cache[n]=null,t.emit("update",n,i,e)})),e.on("load",(function(n,i){t.emit("load",n,i,e)})))}))},n.invalidateCache=function(){this.loaders.forEach((function(t){t.cache={}}))},n.addExtension=function(t,e){return e.__name=t,this.extensions[t]=e,this.extensionsList.push(e),this},n.removeExtension=function(t){var e=this.getExtension(t);e&&(this.extensionsList=s.without(this.extensionsList,e),delete this.extensions[t])},n.getExtension=function(t){return this.extensions[t]},n.hasExtension=function(t){return!!this.extensions[t]},n.addGlobal=function(t,e){return this.globals[t]=e,this},n.getGlobal=function(t){if(void 0===this.globals[t])throw new Error("global not found: "+t);return this.globals[t]},n.addFilter=function(t,e,n){var i=e;return n&&this.asyncFilters.push(t),this.filters[t]=i,this},n.getFilter=function(t){if(!this.filters[t])throw new Error("filter not found: "+t);return this.filters[t]},n.addTest=function(t,e){return this.tests[t]=e,this},n.getTest=function(t){if(!this.tests[t])throw new Error("test not found: "+t);return this.tests[t]},n.resolveTemplate=function(t,e,n){return t.isRelative&&e&&t.isRelative(n)&&t.resolve?t.resolve(e,n):n},n.getTemplate=function(t,e,n,i,o){var a,r=this,c=this,l=null;if(t&&t.raw&&(t=t.raw),s.isFunction(n)&&(o=n,n=null,e=e||!1),s.isFunction(e)&&(o=e,e=!1),t instanceof T)l=t;else{if("string"!=typeof t)throw new Error("template names must be a string: "+t);for(var u=0;u0&&!this.skip(o.TOKEN_COMMA)&&this.fail("parseFrom: expected comma",t.lineno,t.colno);var s=this.parsePrimary();if("_"===s.value.charAt(0)&&this.fail("parseFrom: names starting with an underscore cannot be imported",s.lineno,s.colno),this.skipSymbol("as")){var c=this.parsePrimary();i.addChild(new a.Pair(s.lineno,s.colno,s,c))}else i.addChild(s);n=this.parseWithContext()}return new a.FromImport(t.lineno,t.colno,e,i,n)},c.parseBlock=function(){var t=this.peekToken();this.skipSymbol("block")||this.fail("parseBlock: expected block",t.lineno,t.colno);var e=new a.Block(t.lineno,t.colno);e.name=this.parsePrimary(),e.name instanceof a.Symbol||this.fail("parseBlock: variable name expected",t.lineno,t.colno),this.advanceAfterBlockEnd(t.value),e.body=this.parseUntilBlocks("endblock"),this.skipSymbol("endblock"),this.skipSymbol(e.name.value);var n=this.peekToken();return n||this.fail("parseBlock: expected endblock, got end of file"),this.advanceAfterBlockEnd(n.value),e},c.parseExtends=function(){var t="extends",e=this.peekToken();this.skipSymbol(t)||this.fail("parseTemplateRef: expected "+t);var n=new a.Extends(e.lineno,e.colno);return n.template=this.parseExpression(),this.advanceAfterBlockEnd(e.value),n},c.parseInclude=function(){var t="include",e=this.peekToken();this.skipSymbol(t)||this.fail("parseInclude: expected "+t);var n=new a.Include(e.lineno,e.colno);return n.template=this.parseExpression(),this.skipSymbol("ignore")&&this.skipSymbol("missing")&&(n.ignoreMissing=!0),this.advanceAfterBlockEnd(e.value),n},c.parseIf=function(){var t,e=this.peekToken();this.skipSymbol("if")||this.skipSymbol("elif")||this.skipSymbol("elseif")?t=new a.If(e.lineno,e.colno):this.skipSymbol("ifAsync")?t=new a.IfAsync(e.lineno,e.colno):this.fail("parseIf: expected if, elif, or elseif",e.lineno,e.colno),t.cond=this.parseExpression(),this.advanceAfterBlockEnd(e.value),t.body=this.parseUntilBlocks("elif","elseif","else","endif");var n=this.peekToken();switch(n&&n.value){case"elseif":case"elif":t.else_=this.parseIf();break;case"else":this.advanceAfterBlockEnd(),t.else_=this.parseUntilBlocks("endif"),this.advanceAfterBlockEnd();break;case"endif":t.else_=null,this.advanceAfterBlockEnd();break;default:this.fail("parseIf: expected elif, else, or endif, got end of file")}return t},c.parseSet=function(){var t=this.peekToken();this.skipSymbol("set")||this.fail("parseSet: expected set",t.lineno,t.colno);for(var e,n=new a.Set(t.lineno,t.colno,[]);(e=this.parsePrimary())&&(n.targets.push(e),this.skip(o.TOKEN_COMMA)););return this.skipValue(o.TOKEN_OPERATOR,"=")?(n.value=this.parseExpression(),this.advanceAfterBlockEnd(t.value)):this.skip(o.TOKEN_BLOCK_END)?(n.body=new a.Capture(t.lineno,t.colno,this.parseUntilBlocks("endset")),n.value=null,this.advanceAfterBlockEnd()):this.fail("parseSet: expected = or block end in set tag",t.lineno,t.colno),n},c.parseSwitch=function(){var t="switch",e="endswitch",n="case",i="default",o=this.peekToken();this.skipSymbol(t)||this.skipSymbol(n)||this.skipSymbol(i)||this.fail('parseSwitch: expected "switch," "case" or "default"',o.lineno,o.colno);var r=this.parseExpression();this.advanceAfterBlockEnd(t),this.parseUntilBlocks(n,i,e);var s,c=this.peekToken(),l=[];do{this.skipSymbol(n);var u=this.parseExpression();this.advanceAfterBlockEnd(t);var p=this.parseUntilBlocks(n,i,e);l.push(new a.Case(c.line,c.col,u,p)),c=this.peekToken()}while(c&&c.value===n);switch(c.value){case i:this.advanceAfterBlockEnd(),s=this.parseUntilBlocks(e),this.advanceAfterBlockEnd();break;case e:this.advanceAfterBlockEnd();break;default:this.fail('parseSwitch: expected "case," "default" or "endswitch," got EOF.')}return new a.Switch(o.lineno,o.colno,r,l,s)},c.parseStatement=function(){var t=this.peekToken();if(t.type!==o.TOKEN_SYMBOL&&this.fail("tag name expected",t.lineno,t.colno),this.breakOnBlocks&&-1!==s.indexOf(this.breakOnBlocks,t.value))return null;switch(t.value){case"raw":return this.parseRaw();case"verbatim":return this.parseRaw("verbatim");case"if":case"ifAsync":return this.parseIf();case"for":case"asyncEach":case"asyncAll":return this.parseFor();case"block":return this.parseBlock();case"extends":return this.parseExtends();case"include":return this.parseInclude();case"set":return this.parseSet();case"macro":return this.parseMacro();case"call":return this.parseCall();case"import":return this.parseImport();case"from":return this.parseFrom();case"filter":return this.parseFilterStatement();case"switch":return this.parseSwitch();default:if(this.extensions.length)for(var e=0;e0;){var c=r[0],l=r[1],u=r[2];u===t?i+=1:u===e&&(i-=1),0===i?(o+=l,this.tokens.backN(c.length-l.length)):o+=c}return new a.Output(s.lineno,s.colno,[new a.TemplateData(s.lineno,s.colno,o)])},c.parsePostfix=function(t){for(var e,n=this.peekToken();n;){if(n.type===o.TOKEN_LEFT_PAREN)t=new a.FunCall(n.lineno,n.colno,t,this.parseSignature());else if(n.type===o.TOKEN_LEFT_BRACKET)(e=this.parseAggregate()).children.length>1&&this.fail("invalid index"),t=new a.LookupVal(n.lineno,n.colno,t,e.children[0]);else{if(n.type!==o.TOKEN_OPERATOR||"."!==n.value)break;this.nextToken();var i=this.nextToken();i.type!==o.TOKEN_SYMBOL&&this.fail("expected name as lookup value, got "+i.value,i.lineno,i.colno),e=new a.Literal(i.lineno,i.colno,i.value),t=new a.LookupVal(n.lineno,n.colno,t,e)}n=this.peekToken()}return t},c.parseExpression=function(){return this.parseInlineIf()},c.parseInlineIf=function(){var t=this.parseOr();if(this.skipSymbol("if")){var e=this.parseOr(),n=t;(t=new a.InlineIf(t.lineno,t.colno)).body=n,t.cond=e,this.skipSymbol("else")?t.else_=this.parseOr():t.else_=null}return t},c.parseOr=function(){for(var t=this.parseAnd();this.skipSymbol("or");){var e=this.parseAnd();t=new a.Or(t.lineno,t.colno,t,e)}return t},c.parseAnd=function(){for(var t=this.parseNot();this.skipSymbol("and");){var e=this.parseNot();t=new a.And(t.lineno,t.colno,t,e)}return t},c.parseNot=function(){var t=this.peekToken();return this.skipSymbol("not")?new a.Not(t.lineno,t.colno,this.parseNot()):this.parseIn()},c.parseIn=function(){for(var t=this.parseIs();;){var e=this.nextToken();if(!e)break;var n=e.type===o.TOKEN_SYMBOL&&"not"===e.value;if(n||this.pushToken(e),!this.skipSymbol("in")){n&&this.pushToken(e);break}var i=this.parseIs();t=new a.In(t.lineno,t.colno,t,i),n&&(t=new a.Not(t.lineno,t.colno,t))}return t},c.parseIs=function(){var t=this.parseCompare();if(this.skipSymbol("is")){var e=this.skipSymbol("not"),n=this.parseCompare();t=new a.Is(t.lineno,t.colno,t,n),e&&(t=new a.Not(t.lineno,t.colno,t))}return t},c.parseCompare=function(){for(var t=["==","===","!=","!==","<",">","<=",">="],e=this.parseConcat(),n=[];;){var i=this.nextToken();if(!i)break;if(-1===t.indexOf(i.value)){this.pushToken(i);break}n.push(new a.CompareOperand(i.lineno,i.colno,this.parseConcat(),i.value))}return n.length?new a.Compare(n[0].lineno,n[0].colno,e,n):e},c.parseConcat=function(){for(var t=this.parseAdd();this.skipValue(o.TOKEN_TILDE,"~");){var e=this.parseAdd();t=new a.Concat(t.lineno,t.colno,t,e)}return t},c.parseAdd=function(){for(var t=this.parseSub();this.skipValue(o.TOKEN_OPERATOR,"+");){var e=this.parseSub();t=new a.Add(t.lineno,t.colno,t,e)}return t},c.parseSub=function(){for(var t=this.parseMul();this.skipValue(o.TOKEN_OPERATOR,"-");){var e=this.parseMul();t=new a.Sub(t.lineno,t.colno,t,e)}return t},c.parseMul=function(){for(var t=this.parseDiv();this.skipValue(o.TOKEN_OPERATOR,"*");){var e=this.parseDiv();t=new a.Mul(t.lineno,t.colno,t,e)}return t},c.parseDiv=function(){for(var t=this.parseFloorDiv();this.skipValue(o.TOKEN_OPERATOR,"/");){var e=this.parseFloorDiv();t=new a.Div(t.lineno,t.colno,t,e)}return t},c.parseFloorDiv=function(){for(var t=this.parseMod();this.skipValue(o.TOKEN_OPERATOR,"//");){var e=this.parseMod();t=new a.FloorDiv(t.lineno,t.colno,t,e)}return t},c.parseMod=function(){for(var t=this.parsePow();this.skipValue(o.TOKEN_OPERATOR,"%");){var e=this.parsePow();t=new a.Mod(t.lineno,t.colno,t,e)}return t},c.parsePow=function(){for(var t=this.parseUnary();this.skipValue(o.TOKEN_OPERATOR,"**");){var e=this.parseUnary();t=new a.Pow(t.lineno,t.colno,t,e)}return t},c.parseUnary=function(t){var e,n=this.peekToken();return e=this.skipValue(o.TOKEN_OPERATOR,"-")?new a.Neg(n.lineno,n.colno,this.parseUnary(!0)):this.skipValue(o.TOKEN_OPERATOR,"+")?new a.Pos(n.lineno,n.colno,this.parseUnary(!0)):this.parsePrimary(),t||(e=this.parseFilter(e)),e},c.parsePrimary=function(t){var e,n=this.nextToken(),i=null;if(n?n.type===o.TOKEN_STRING?e=n.value:n.type===o.TOKEN_INT?e=parseInt(n.value,10):n.type===o.TOKEN_FLOAT?e=parseFloat(n.value):n.type===o.TOKEN_BOOLEAN?"true"===n.value?e=!0:"false"===n.value?e=!1:this.fail("invalid boolean: "+n.value,n.lineno,n.colno):n.type===o.TOKEN_NONE?e=null:n.type===o.TOKEN_REGEX&&(e=new RegExp(n.value.body,n.value.flags)):this.fail("expected expression, got end of file"),void 0!==e?i=new a.Literal(n.lineno,n.colno,e):n.type===o.TOKEN_SYMBOL?i=new a.Symbol(n.lineno,n.colno,n.value):(this.pushToken(n),i=this.parseAggregate()),t||(i=this.parsePostfix(i)),i)return i;throw this.error("unexpected token: "+n.value,n.lineno,n.colno)},c.parseFilterName=function(){for(var t=this.expect(o.TOKEN_SYMBOL),e=t.value;this.skipValue(o.TOKEN_OPERATOR,".");)e+="."+this.expect(o.TOKEN_SYMBOL).value;return new a.Symbol(t.lineno,t.colno,e)},c.parseFilterArgs=function(t){return this.peekToken().type===o.TOKEN_LEFT_PAREN?this.parsePostfix(t).args.children:[]},c.parseFilter=function(t){for(;this.skip(o.TOKEN_PIPE);){var e=this.parseFilterName();t=new a.Filter(e.lineno,e.colno,e,new a.NodeList(e.lineno,e.colno,[t].concat(this.parseFilterArgs(t))))}return t},c.parseFilterStatement=function(){var t=this.peekToken();this.skipSymbol("filter")||this.fail("parseFilterStatement: expected filter");var e=this.parseFilterName(),n=this.parseFilterArgs(e);this.advanceAfterBlockEnd(t.value);var i=new a.Capture(e.lineno,e.colno,this.parseUntilBlocks("endfilter"));this.advanceAfterBlockEnd();var o=new a.Filter(e.lineno,e.colno,e,new a.NodeList(e.lineno,e.colno,[i].concat(n)));return new a.Output(e.lineno,e.colno,[o])},c.parseAggregate=function(){var t,e=this.nextToken();switch(e.type){case o.TOKEN_LEFT_PAREN:t=new a.Group(e.lineno,e.colno);break;case o.TOKEN_LEFT_BRACKET:t=new a.Array(e.lineno,e.colno);break;case o.TOKEN_LEFT_CURLY:t=new a.Dict(e.lineno,e.colno);break;default:return null}for(;;){var n=this.peekToken().type;if(n===o.TOKEN_RIGHT_PAREN||n===o.TOKEN_RIGHT_BRACKET||n===o.TOKEN_RIGHT_CURLY){this.nextToken();break}if(t.children.length>0&&(this.skip(o.TOKEN_COMMA)||this.fail("parseAggregate: expected comma after expression",e.lineno,e.colno)),t instanceof a.Dict){var i=this.parsePrimary();this.skip(o.TOKEN_COLON)||this.fail("parseAggregate: expected colon after dict key",e.lineno,e.colno);var r=this.parseExpression();t.addChild(new a.Pair(i.lineno,i.colno,i,r))}else{var s=this.parseExpression();t.addChild(s)}}return t},c.parseSignature=function(t,e){var n=this.peekToken();if(!e&&n.type!==o.TOKEN_LEFT_PAREN){if(t)return null;this.fail("expected arguments",n.lineno,n.colno)}n.type===o.TOKEN_LEFT_PAREN&&(n=this.nextToken());for(var i=new a.NodeList(n.lineno,n.colno),r=new a.KeywordArgs(n.lineno,n.colno),s=!1;;){if(n=this.peekToken(),!e&&n.type===o.TOKEN_RIGHT_PAREN){this.nextToken();break}if(e&&n.type===o.TOKEN_BLOCK_END)break;if(s&&!this.skip(o.TOKEN_COMMA))this.fail("parseSignature: expected comma after expression",n.lineno,n.colno);else{var c=this.parseExpression();this.skipValue(o.TOKEN_OPERATOR,"=")?r.addChild(new a.Pair(c.lineno,c.colno,c,this.parseExpression())):i.addChild(c)}s=!0}return r.children.length&&i.addChild(r),i},c.parseUntilBlocks=function(){for(var t=this.breakOnBlocks,e=arguments.length,n=new Array(e),i=0;i=","//","**"],R=M+this.current();switch(-1!==i.indexOf(N,R)&&(this.forward(),M=R,-1!==i.indexOf(N,R+this.current())&&(M=R+this.current(),this.forward())),M){case"(":D=m;break;case")":D=f;break;case"[":D=y;break;case"]":D=_;break;case"{":D=b;break;case"}":D=v;break;case",":D=k;break;case":":D=w;break;case"~":D=C;break;case"|":D=x;break;default:D=g}return O(D,M,e,n)}if((t=this._extractUntil(o+a)).match(/^[-+]?[0-9]+$/)){if("."===this.current()){this.forward();var V=this._extract("0123456789");return O(E,t+"."+V,e,n)}return O("int",t,e,n)}if(t.match(/^(true|false)$/))return O(L,t,e,n);if("none"===t)return O(T,t,e,n);if("null"===t)return O(T,t,e,n);if(t)return O(A,t,e,n);throw new Error("Unexpected value while parsing: "+t)}var F,U=this.tags.BLOCK_START.charAt(0)+this.tags.VARIABLE_START.charAt(0)+this.tags.COMMENT_START.charAt(0)+this.tags.COMMENT_END.charAt(0);if(this.isFinished())return null;if((t=this._extractString(this.tags.BLOCK_START+"-"))||(t=this._extractString(this.tags.BLOCK_START)))return this.in_code=!0,O(l,t,e,n);if((t=this._extractString(this.tags.VARIABLE_START+"-"))||(t=this._extractString(this.tags.VARIABLE_START)))return this.in_code=!0,O(p,t,e,n);t="";var j=!1;for(this._matches(this.tags.COMMENT_START)&&(j=!0,t=this._extractString(this.tags.COMMENT_START));null!==(F=this._extractUntil(U));){if(t+=F,(this._matches(this.tags.BLOCK_START)||this._matches(this.tags.VARIABLE_START)||this._matches(this.tags.COMMENT_START))&&!j){if(this.lstripBlocks&&this._matches(this.tags.BLOCK_START)&&this.colno>0&&this.colno<=t.length){var B=t.slice(-this.colno);if(/^\s+$/.test(B)&&!(t=t.slice(0,-this.colno)).length)return this.nextToken()}break}if(this._matches(this.tags.COMMENT_END)){if(!j)throw new Error("unexpected end of comment");t+=this._extractString(this.tags.COMMENT_END);break}t+=this.current(),this.forward()}if(null===F&&j)throw new Error("expected end of comment, got end of file");return O(j?h:c,t,e,n)},e._parseString=function(t){this.forward();for(var e="";!this.isFinished()&&this.current()!==t;){var n=this.current();if("\\"===n){switch(this.forward(),this.current()){case"n":e+="\n";break;case"t":e+="\t";break;case"r":e+="\r";break;default:e+=this.current()}this.forward()}else e+=n,this.forward()}return this.forward(),e},e._matches=function(t){return this.index+t.length>this.len?null:this.str.slice(this.index,this.index+t.length)===t},e._extractString=function(t){return this._matches(t)?(this.forwardN(t.length),t):null},e._extractUntil=function(t){return this._extractMatching(!0,t||"")},e._extract=function(t){return this._extractMatching(!1,t)},e._extractMatching=function(t,e){if(this.isFinished())return null;var n=e.indexOf(this.current());if(t&&-1===n||!t&&-1!==n){var i=this.current();this.forward();for(var o=e.indexOf(this.current());(t&&-1===o||!t&&-1!==o)&&!this.isFinished();)i+=this.current(),this.forward(),o=e.indexOf(this.current());return i}return""},e._extractRegex=function(t){var e=this.currentStr().match(t);return e?(this.forwardN(e[0].length),e):null},e.isFinished=function(){return this.index>=this.len},e.forwardN=function(t){for(var e=0;e1024){for(var e=0,n=o.length-a;e0&&r.length>o&&!r.warned){r.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+r.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=r.length,s=c,console&&console.warn&&console.warn(s)}return t}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(t,e,n){var i={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},o=d.bind(i);return o.listener=n,i.wrapFn=o,o}function m(t,e,n){var i=t._events;if(void 0===i)return[];var o=i[e];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(t){for(var e=new Array(t.length),n=0;n0&&(r=e[0]),r instanceof Error)throw r;var s=new Error("Unhandled error."+(r?" ("+r.message+")":""));throw s.context=r,s}var c=o[t];if(void 0===c)return!1;if("function"==typeof c)a(c,this,e);else{var l=c.length,u=y(c,l);for(n=0;n=0;a--)if(n[a]===e||n[a].listener===e){r=n[a].listener,o=a;break}if(o<0)return this;0===o?n.shift():function(t,e){for(;e+1=0;i--)this.removeListener(t,e[i]);return this},s.prototype.listeners=function(t){return m(this,t,!0)},s.prototype.rawListeners=function(t){return m(this,t,!1)},s.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):f.call(t,e)},s.prototype.listenerCount=f,s.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},function(t,e,n){"use strict";var i=n(3),o=n(0),a=0;function r(){return"hole_"+a++}function s(t,e){for(var n=null,i=0;i=e)return t;var n=e-t.length,r=i.repeat(" ",n/2-n%2),s=i.repeat(" ",n/2);return o.copySafeness(t,r+t+s)},e.default=function(t,e,n){return n?t||e:void 0!==t?t:e},e.dictsort=function(t,e,n){if(!i.isObject(t))throw new i.TemplateError("dictsort filter: val must be an object");var o,a=[];for(var r in t)a.push([r,t[r]]);if(void 0===n||"key"===n)o=0;else{if("value"!==n)throw new i.TemplateError("dictsort filter: You can only sort by either key or value");o=1}return a.sort((function(t,n){var a=t[o],r=n[o];return e||(i.isString(a)&&(a=a.toUpperCase()),i.isString(r)&&(r=r.toUpperCase())),a>r?1:a===r?0:-1})),a},e.dump=function(t,e){return JSON.stringify(t,null,e)},e.escape=function(t){return t instanceof o.SafeString?t:(t=null==t?"":t,o.markSafe(i.escape(t.toString())))},e.safe=function(t){return t instanceof o.SafeString?t:(t=null==t?"":t,o.markSafe(t.toString()))},e.first=function(t){return t[0]},e.forceescape=function(t){return t=null==t?"":t,o.markSafe(i.escape(t.toString()))},e.groupby=function(t,e){return i.groupBy(t,e,this.env.opts.throwOnUndefined)},e.indent=function(t,e,n){if(""===(t=a(t,"")))return"";e=e||4;var r=t.split("\n"),s=i.repeat(" ",e),c=r.map((function(t,e){return 0!==e||n?""+s+t:t})).join("\n");return o.copySafeness(t,c)},e.join=function(t,e,n){return e=e||"",n&&(t=i.map(t,(function(t){return t[n]}))),t.join(e)},e.last=function(t){return t[t.length-1]},e.length=function(t){var e=a(t,"");return void 0!==e?"function"==typeof Map&&e instanceof Map||"function"==typeof Set&&e instanceof Set?e.size:!i.isObject(e)||e instanceof o.SafeString?e.length:i.keys(e).length:0},e.list=c,e.lower=function(t){return(t=a(t,"")).toLowerCase()},e.nl2br=function(t){return null==t?"":o.copySafeness(t,t.replace(/\r\n|\n/g,"
\n"))},e.random=function(t){return t[Math.floor(Math.random()*t.length)]},e.reject=l(!1),e.rejectattr=function(t,e){return t.filter((function(t){return!t[e]}))},e.select=l(!0),e.selectattr=function(t,e){return t.filter((function(t){return!!t[e]}))},e.replace=function(t,e,n,i){var a=t;if(e instanceof RegExp)return t.replace(e,n);void 0===i&&(i=-1);var r="";if("number"==typeof e)e=""+e;else if("string"!=typeof e)return t;if("number"==typeof t&&(t=""+t),"string"!=typeof t&&!(t instanceof o.SafeString))return t;if(""===e)return r=n+t.split("").join(n)+n,o.copySafeness(t,r);var s=t.indexOf(e);if(0===i||-1===s)return t;for(var c=0,l=0;s>-1&&(-1===i||l=o&&u.push(n),a.push(u)}return a},e.sum=function(t,e,n){return void 0===n&&(n=0),e&&(t=i.map(t,(function(t){return t[e]}))),n+t.reduce((function(t,e){return t+e}),0)},e.sort=o.makeMacro(["value","reverse","case_sensitive","attribute"],[],(function(t,e,n,o){var a=this,r=i.map(t,(function(t){return t})),s=i.getAttrGetter(o);return r.sort((function(t,r){var c=o?s(t):t,l=o?s(r):r;if(a.env.opts.throwOnUndefined&&o&&(void 0===c||void 0===l))throw new TypeError('sort: attribute "'+o+'" resolved to undefined');return!n&&i.isString(c)&&i.isString(l)&&(c=c.toLowerCase(),l=l.toLowerCase()),cl?e?-1:1:0})),r})),e.string=function(t){return o.copySafeness(t,t)},e.striptags=function(t,e){var n,i=u((t=a(t,"")).replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>|/gi,""));return n=e?i.replace(/^ +| +$/gm,"").replace(/ +/g," ").replace(/(\r\n)/g,"\n").replace(/\n\n\n+/g,"\n\n"):i.replace(/\s+/gi," "),o.copySafeness(t,n)},e.title=function(t){var e=(t=a(t,"")).split(" ").map((function(t){return s(t)}));return o.copySafeness(t,e.join(" "))},e.trim=u,e.truncate=function(t,e,n,i){var r=t;if(e=e||255,(t=a(t,"")).length<=e)return t;if(n)t=t.substring(0,e);else{var s=t.lastIndexOf(" ",e);-1===s&&(s=e),t=t.substring(0,s)}return t+=null!=i?i:"...",o.copySafeness(r,t)},e.upper=function(t){return(t=a(t,"")).toUpperCase()},e.urlencode=function(t){var e=encodeURIComponent;return i.isString(t)?e(t):(i.isArray(t)?t:i._entries(t)).map((function(t){var n=t[0],i=t[1];return e(n)+"="+e(i)})).join("&")};var p=/^(?:\(|<|<)?(.*?)(?:\.|,|\)|\n|>)?$/,d=/^[\w.!#$%&'*+\-\/=?\^`{|}~]+@[a-z\d\-]+(\.[a-z\d\-]+)+$/i,h=/^https?:\/\/.*$/,m=/^www\./,f=/\.(?:org|net|com)(?:\:|\/|$)/;e.urlize=function(t,e,n){r(e)&&(e=1/0);var i=!0===n?' rel="nofollow"':"";return t.split(/(\s+)/).filter((function(t){return t&&t.length})).map((function(t){var n=t.match(p),o=n?n[1]:t,a=o.substr(0,e);return h.test(o)?'"+a+"":m.test(o)?'"+a+"":d.test(o)?''+o+"":f.test(o)?'"+a+"":t})).join("")},e.wordcount=function(t){var e=(t=a(t,""))?t.match(/\w+/g):null;return e?e.length:null},e.float=function(t,e){var n=parseFloat(t);return r(n)?e:n};var y=o.makeMacro(["value","default","base"],[],(function(t,e,n){void 0===n&&(n=10);var i=parseInt(t,n);return r(i)?e:i}));e.int=y,e.d=e.default,e.e=e.escape},function(t,e,n){"use strict";function i(t,e){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},i(t,e)}var o=function(t){var e,n;function o(e){var n;return(n=t.call(this)||this).precompiled=e||{},n}return n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,i(e,n),o.prototype.getSource=function(t){return this.precompiled[t]?{src:{type:"code",obj:this.precompiled[t]},path:t}:null},o}(n(6));t.exports={PrecompiledLoader:o}},function(t,e,n){"use strict";var i=n(2).SafeString;e.callable=function(t){return"function"==typeof t},e.defined=function(t){return void 0!==t},e.divisibleby=function(t,e){return t%e==0},e.escaped=function(t){return t instanceof i},e.equalto=function(t,e){return t===e},e.eq=e.equalto,e.sameas=e.equalto,e.even=function(t){return t%2==0},e.falsy=function(t){return!t},e.ge=function(t,e){return t>=e},e.greaterthan=function(t,e){return t>e},e.gt=e.greaterthan,e.le=function(t,e){return t<=e},e.lessthan=function(t,e){return t0)for(var o=t;oe;a+=n)i.push(a);return i},cycler:function(){return t=Array.prototype.slice.call(arguments),e=-1,{current:null,reset:function(){e=-1,this.current=null},next:function(){return++e>=t.length&&(e=0),this.current=t[e],this.current}};var t,e},joiner:function(t){return function(t){t=t||",";var e=!0;return function(){var n=e?"":t;return e=!1,n}}(t)}}}},function(t,e,n){var i=n(4);t.exports=function(t,e){function n(t,e){if(this.name=t,this.path=t,this.defaultEngine=e.defaultEngine,this.ext=i.extname(t),!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");this.ext||(this.name+=this.ext=("."!==this.defaultEngine[0]?".":"")+this.defaultEngine)}return n.prototype.render=function(e,n){t.render(this.name,e,n)},e.set("view",n),e.set("nunjucksEnv",t),t}},function(t,e,n){"use strict";var i=n(4),o=n(4),a=n(0)._prettifyError,r=n(5),s=n(7).Environment,c=n(24);function l(t,e){return!!Array.isArray(e)&&e.some((function(e){return t.match(e)}))}function u(t,e){(e=e||{}).isString=!0;var n=e.env||new s([]),i=e.wrapper||c;if(!e.name)throw new Error('the "name" option is required when compiling a string');return i([p(t,e.name,n)],e)}function p(t,e,n){var i,o=(n=n||new s([])).asyncFilters,c=n.extensionsList;e=e.replace(/\\/g,"/");try{i=r.compile(t,o,c,e,n.opts)}catch(t){throw a(e,!1,t)}return{name:e,template:i}}t.exports={precompile:function(t,e){var n=(e=e||{}).env||new s([]),a=e.wrapper||c;if(e.isString)return u(t,e);var r=i.existsSync(t)&&i.statSync(t),d=[],h=[];if(r.isFile())d.push(p(i.readFileSync(t,"utf-8"),e.name||t,n));else if(r.isDirectory()){!function n(a){i.readdirSync(a).forEach((function(r){var s=o.join(a,r),c=s.substr(o.join(t,"/").length),u=i.statSync(s);u&&u.isDirectory()?l(c+="/",e.exclude)||n(s):l(c,e.include)&&h.push(s)}))}(t);for(var m=0;mt.length||o>0&&r>=i||o<0&&r<=i);r+=o)a.push(n.memberLookup(t,r));return a}function h(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var m={pop:function(t){if(void 0===t)return this.pop();if(t>=this.length||t<0)throw new Error("KeyError");return this.splice(t,1)},append:function(t){return this.push(t)},remove:function(t){for(var e=0;e{"use strict";__webpack_require__.d(__webpack_exports__,{W:()=>BaseRemoteElement});var lit__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(670),lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(837),ha_nunjucks__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(703),_models_constants__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(290),_models_maps__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(63),_utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(988),__decorate=function(t,e,n,i){var o,a=arguments.length,r=a<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(r=(a<3?o(r):a>3?o(e,n,r):o(e,n))||r);return a>3&&r&&Object.defineProperty(e,n,r),r};class BaseRemoteElement extends lit__WEBPACK_IMPORTED_MODULE_0__.WF{constructor(){super(...arguments),this.icons=[],this.renderRipple=!0,this.value=0,this.getValueFromHass=!0,this.unitOfMeasurement="",this.swiping=!1,this.pointers=0,this.fireMouseEvent=!0}fireHapticEvent(t){if(this.renderTemplate(this.config.haptics)??1){const e=new Event("haptic",{bubbles:!0,composed:!0});e.detail=t,window.dispatchEvent(e)}}endAction(){this.momentaryStart=void 0,this.momentaryEnd=void 0,this.swiping=!1,this.pointers=0,this.initialX=void 0,this.initialY=void 0,this.currentX=void 0,this.currentY=void 0,this.deltaX=void 0,this.deltaY=void 0}sendAction(t,e=this.config){let n;switch(t){case"drag_action":n=e.drag_action;break;case"multi_drag_action":n=e.multi_drag_action??e.drag_action;break;case"momentary_start_action":n=e.momentary_start_action;break;case"momentary_end_action":n=e.momentary_end_action;break;case"multi_hold_action":n=e.multi_hold_action??e.hold_action??e.multi_tap_action??e.tap_action;break;case"multi_double_tap_action":n=e.multi_double_tap_action??e.double_tap_action??e.multi_tap_action??e.tap_action;break;case"multi_tap_action":n=e.multi_tap_action??e.tap_action;break;case"hold_action":n=e.hold_action??e.tap_action;break;case"double_tap_action":n=e.double_tap_action??e.tap_action;break;default:n=e.tap_action}if(!n)return clearTimeout(this.getValueFromHassTimer),this.getValueFromHass=!0,void this.requestUpdate();if(n=this.deepRenderTemplate(n),n&&this.handleConfirmation(n))try{switch(n.action){case"navigate":this.navigate(n);break;case"url":this.url(n);break;case"assist":this.assist(n);break;case"more-info":this.moreInfo(n);break;case"toggle":this.toggle(n);break;case"call-service":case"perform-action":this.callService(n);break;case"source":this.source(n);break;case"key":this.key(n,t);break;case"fire-dom-event":this.fireDomEvent(n);break;case"eval":this.eval(n);break;case"textbox":case"search":case"keyboard":this.keyboard(n)}}catch(t){throw this.endAction(),t}else this.dispatchEvent(new CustomEvent("confirmation-failed"))}key(t,e){switch(t.platform){case"Unified Remote":break;case"Kodi":this.hass.callService("kodi","call_method",{entity_id:t.media_player_id,method:t.key});break;case"LG webOS":this.hass.callService("webostv","button",{entity_id:t.media_player_id,button:t.key});break;default:{const n={entity_id:t.remote_id??"",command:t.key??""};!e.includes("hold_action")||this.config.hold_action&&"none"!=this.config.hold_action.action||(n.hold_secs=.5),this.hass.callService("remote","send_command",n);break}}}source(t){switch(t.platform){case"Unified Remote":break;case"Fire TV":case"Roku":case"Kodi":case"Apple TV":case"Samsung TV":case"LG webOS":this.hass.callService("media_player","select_source",{entity_id:t.media_player_id,source:t.source});break;case"Sony BRAVIA":this.hass.callService("media_player","play_media",{entity_id:t.media_player_id,media_content_id:t.source,media_content_type:"app"});break;default:this.hass.callService("remote","turn_on",{entity_id:t.remote_id,activity:t.source})}}callService(t){const[e,n]=(t.perform_action??t.service).split(".");this.hass.callService(e,n,t.data,t.target)}navigate(t){const e=t.navigation_path??"",n=t.navigation_replace??!1;if(e.includes("//"))return void console.error('Protocol detected in navigation path. To navigate to another website use the action "url" with the key "url_path" instead.');1==n?window.history.replaceState(window.history.state?.root?{root:!0}:null,"",e):window.history.pushState(null,"",e);const i=new Event("location-changed",{bubbles:!1,cancelable:!0,composed:!1});i.detail={replace:1==n},window.dispatchEvent(i)}url(t){let e=t.url_path??"";e.includes("//")||(e=`https://${e}`),window.open(e)}assist(t){this.hass?.auth?.external?.config?.hasAssist?this.hass?.auth?.external?.fireMessage({type:"assist/show",payload:{pipeline_id:t.pipeline_id,start_listening:t.start_listening}}):window.open(`${window.location.href}?conversation=1`,"_self")}moreInfo(t){const e=new Event("hass-more-info",{bubbles:!0,cancelable:!0,composed:!0});e.detail={entityId:t.target?.entity_id??this.config.entity_id},this.dispatchEvent(e)}toggle(t){const e={...t.data,...t.target};if(Array.isArray(e.entity_id))for(const t of e.entity_id)this.toggleSingle(t);else e.entity_id?this.toggleSingle(e.entity_id):this.hass.callService("homeassistant","toggle",e)}toggleSingle(t){const e=["closed","locked","off"].includes(this.hass.states[t].state);let n,i=t.split(".")[0];switch(i){case"lock":n=e?"unlock":"lock";break;case"cover":n=e?"open_cover":"close_cover";break;case"button":case"input_button":n="press";break;case"scene":n="turn_on";break;case"valve":n=e?"open_valve":"close_valve";break;default:i="homeassistant",n=e?"turn_on":"turn_off"}this.hass.callService(i,n,{entity_id:t})}keyboard(t){const e=new Event("keyboard-dialog-open",{composed:!0,bubbles:!0});e.detail=t,this.getRootNode().querySelector("keyboard-dialog").shadowRoot?.querySelector("dialog")?.dispatchEvent(e)}fireDomEvent(t){const e=new Event(t.event_type??"ll-custom",{composed:!0,bubbles:!0});e.detail=t,this.dispatchEvent(e)}eval(action){eval(action.eval??"")}handleConfirmation(t){if(t.confirmation){let e=`Are you sure you want to run action '${t.action}'?`;return 1==t.confirmation?(this.fireHapticEvent("warning"),confirm(e)):(t.confirmation?.text&&(e=t.confirmation.text),!!t.confirmation?.exemptions?.map((t=>t.user)).includes(this.hass.user?.id)||(this.fireHapticEvent("warning"),confirm(e)))}return!0}firstUpdated(){this.addEventListener("confirmation-failed",this.confirmationFailed)}confirmationFailed(){clearTimeout(this.getValueFromHassTimer),this.getValueFromHass=!0,this.requestUpdate()}setValue(){if(this.entityId=this.renderTemplate(this.config.entity_id),this.unitOfMeasurement=this.renderTemplate(this.config.unit_of_measurement)??"",this.getValueFromHass&&this.entityId)if(clearInterval(this.valueUpdateInterval),this.valueUpdateInterval=void 0,this.valueAttribute=this.renderTemplate(this.config.value_attribute??"state").toLowerCase(),this.hass.states[this.entityId])if("state"==this.valueAttribute)this.value=this.hass.states[this.entityId].state;else{let t;const e=this.valueAttribute.match(/\[\d+\]$/);if(e){const n=parseInt(e[0].replace(/\[|\]/g,""));this.valueAttribute=this.valueAttribute.replace(e[0],""),t=this.hass.states[this.entityId]?.attributes?.[this.valueAttribute],t=t&&Array.isArray(t)&&t.length?t[n]:void 0}else t=this.hass.states[this.entityId]?.attributes?.[this.valueAttribute];if(null!=t||"elapsed"==this.valueAttribute)switch(this.valueAttribute){case"brightness":this.value=Math.round(100*parseInt(t??0)/255);break;case"media_position":try{const e=()=>{"playing"==this.hass.states[this.entityId].state?this.value=Math.min(Math.floor(Math.floor(t)+(Date.now()-Date.parse(this.hass.states[this.entityId].attributes?.media_position_updated_at))/1e3),Math.floor(this.hass.states[this.entityId].attributes?.media_duration)):this.value=t};e(),this.valueUpdateInterval=setInterval(e,500)}catch(e){console.error(e),this.value=t}break;case"elapsed":if(this.entityId.startsWith("timer.")){if("idle"==this.hass.states[this.entityId].state)this.value=0;else{const t=this.hass.states[this.entityId].attributes?.duration.split(":"),e=3600*parseInt(t[0])+60*parseInt(t[1])+parseInt(t[2]),n=Date.parse(this.hass.states[this.entityId].attributes?.finishes_at);try{const t=()=>{if("active"==this.hass.states[this.entityId].state){const t=(n-Date.now())/1e3,i=Math.floor(e-t);this.value=Math.min(i,e)}else{const t=this.hass.states[this.entityId].attributes?.remaining.split(":"),n=3600*parseInt(t[0])+60*parseInt(t[1])+parseInt(t[2]);this.value=Math.floor(e-n)}};t(),this.valueUpdateInterval=setInterval(t,500)}catch(t){console.error(t),this.value=0}}break}default:this.value=t}else this.value=t}else this.value=void 0}renderTemplate(t,e){let n=0;this.momentaryStart&&this.momentaryEnd&&(n=(this.momentaryEnd-this.momentaryStart)/1e3),e={VALUE:this.value,HOLD_SECS:n??0,UNIT:this.unitOfMeasurement,value:this.value,hold_secs:n??0,unit:this.unitOfMeasurement,initialX:this.initialX,initialY:this.initialY,currentX:this.currentX,currentY:this.currentY,deltaX:this.deltaX,deltaY:this.deltaY,config:{...this.config,entity:this.entityId,attribute:this.valueAttribute},...e};let i=(e={render:t=>this.renderTemplate(t,e),...e}).value;null!=i&&"number"==typeof i&&null!=this.precision&&(i=Number(i).toFixed(this.precision),e={...e,VALUE:i,value:i});try{const n=(0,ha_nunjucks__WEBPACK_IMPORTED_MODULE_2__.X)(this.hass,t,e);if(n!=t)return n}catch(t){return console.error(t),""}if("string"==typeof t&&/VALUE|UNIT|HOLD_SECS/g.test(t))for(const n of["VALUE","HOLD_SECS","UNIT"]){if(t==n)return e[n];t.includes(n)&&(t=t.replace(new RegExp(n,"g"),e[n]??""))}return t}deepRenderTemplate(t,e){const n=structuredClone(t),i=(0,_utils__WEBPACK_IMPORTED_MODULE_4__.b$)(n);for(const t of i)(0,_utils__WEBPACK_IMPORTED_MODULE_4__.HD)(n,t,this.renderTemplate((0,_utils__WEBPACK_IMPORTED_MODULE_4__.vz)(n,t),e));return n}resetGetValueFromHass(){const t=this.renderTemplate(this.config.value_from_hass_delay??_models_constants__WEBPACK_IMPORTED_MODULE_5__.s$);this.getValueFromHassTimer=setTimeout((()=>{this.getValueFromHass=!0,this.requestUpdate()}),t)}buildIcon(t,e){t=this.renderTemplate(t??"",e);let n=lit__WEBPACK_IMPORTED_MODULE_0__.qy``;if(t)if(t.includes(":"))n=lit__WEBPACK_IMPORTED_MODULE_0__.qy``;else{const e=(this.icons??[]).filter((e=>e.name==t))[0]??_models_maps__WEBPACK_IMPORTED_MODULE_3__.o$.filter((e=>e.name==t))[0];n=lit__WEBPACK_IMPORTED_MODULE_0__.qy``}return lit__WEBPACK_IMPORTED_MODULE_0__.qy`
${n}
`}buildLabel(t,e){if(t){const n=this.renderTemplate(t,e);if(n)return lit__WEBPACK_IMPORTED_MODULE_0__.qy`
${n}
`}return""}buildRipple(){return this.renderRipple?lit__WEBPACK_IMPORTED_MODULE_0__.qy``:""}buildStyles(t,e){return t?lit__WEBPACK_IMPORTED_MODULE_0__.qy``:""}onPointerDown(t){this.pointers++,this.initialX||this.initialY||(this.initialX=t.clientX,this.initialY=t.clientY,this.currentX=t.clientX,this.currentY=t.clientY,this.deltaX=0,this.deltaY=0)}onPointerUp(t){}onPointerMove(t){this.currentX&&this.currentY&&t.isPrimary&&(this.deltaX=t.clientX-this.currentX,this.deltaY=t.clientY-this.currentY,this.currentX=t.clientX,this.currentY=t.clientY)}onPointerCancel(t){this.endAction(),this.swiping=!0,this.toggleRipple()}onPointerLeave(t){"mouse"==t.pointerType&&this.initialX&&this.initialY&&this.onPointerCancel(t)}onContextMenu(t){"mouse"!=t.pointerType&&(t.preventDefault(),t.stopPropagation())}toggleRipple(){this.cancelRippleToggle(),this.renderRippleTransition=setTimeout((()=>this.rippleTransition=!1),400),this.renderRippleOff=setTimeout((()=>this.renderRipple=!1),800),this.renderRippleOn=setTimeout((()=>this.cancelRippleToggle()),850)}cancelRippleToggle(){clearTimeout(this.renderRippleOff),clearTimeout(this.renderRippleOn),clearTimeout(this.renderRippleTransition),this.renderRippleOff=void 0,this.renderRippleOn=void 0,this.renderRippleTransition=void 0,this.rippleTransition=!0,this.renderRipple=!0}static get styles(){return lit__WEBPACK_IMPORTED_MODULE_0__.AH`:host{display:flex;flex-flow:column;place-content:center space-evenly;align-items:center;position:relative;border:none;border-radius:10px;padding:0;box-sizing:border-box;outline:0;overflow:visible;font-size:inherit;color:inherit;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}md-ripple{height:var(--ha-ripple-height,100%);width:var(--ha-ripple-width,100%);top:var(--ha-ripple-top,0);left:var(--ha-ripple-left,0);--md-ripple-hover-opacity:var(--ha-ripple-hover-opacity, 0.08);--md-ripple-pressed-opacity:var( +(()=>{var __webpack_modules__={894:function(t){var e;"undefined"!=typeof self&&self,e=function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var o=e[i]={i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=11)}([function(t,e,n){"use strict";var i=Array.prototype,o=Object.prototype,a={"&":"&",'"':""","'":"'","<":"<",">":">","\\":"\"},r=/[&"'<>\\]/g;function s(t,e){return o.hasOwnProperty.call(t,e)}function c(t){return a[t]}function l(t,e,n){var i,o,a;if(t instanceof Error&&(t=(o=t).name+": "+o.message),Object.setPrototypeOf?(i=new Error(t),Object.setPrototypeOf(i,l.prototype)):(i=this,Object.defineProperty(i,"message",{enumerable:!1,writable:!0,value:t})),Object.defineProperty(i,"name",{value:"Template render error"}),Error.captureStackTrace&&Error.captureStackTrace(i,this.constructor),o){var r=Object.getOwnPropertyDescriptor(o,"stack");(a=r&&(r.get||function(){return r.value}))||(a=function(){return o.stack})}else{var s=new Error(t).stack;a=function(){return s}}return Object.defineProperty(i,"stack",{get:function(){return a.call(i)}}),Object.defineProperty(i,"cause",{value:o}),i.lineno=e,i.colno=n,i.firstUpdate=!0,i.Update=function(t){var e="("+(t||"unknown path")+")";return this.firstUpdate&&(this.lineno&&this.colno?e+=" [Line "+this.lineno+", Column "+this.colno+"]":this.lineno&&(e+=" [Line "+this.lineno+"]")),e+="\n ",this.firstUpdate&&(e+=" "),this.message=e+(this.message||""),this.firstUpdate=!1,this},i}function u(t){return"[object Function]"===o.toString.call(t)}function p(t){return"[object Array]"===o.toString.call(t)}function d(t){return"[object String]"===o.toString.call(t)}function h(t){return"[object Object]"===o.toString.call(t)}function m(t){var e,n=(e=t)?"string"==typeof e?e.split("."):[e]:[];return function(t){for(var e=t,i=0;it.length)r=o.slice(0,t.length),o.slice(r.length,l).forEach((function(t,n){n2?o-2:0),r=2;r0||!n)&&process.stdout.write(" ".repeat(e));var a=o===i.length-1?"":"\n";process.stdout.write(""+t+a)}))}t.exports={Node:c,Root:p,NodeList:u,Value:l,Literal:d,Symbol:h,Group:m,Array:f,Pair:y,Dict:_,Output:U,Capture:j,TemplateData:B,If:v,IfAsync:g,InlineIf:k,For:w,AsyncEach:C,AsyncAll:x,Macro:E,Caller:L,Import:T,FromImport:A,FunCall:S,Filter:O,FilterAsync:M,KeywordArgs:$,Block:I,Super:P,Extends:D,Include:N,Set:R,Switch:V,Case:F,LookupVal:b,BinOp:H,In:Y,Is:Z,Or:q,And:z,Not:W,Add:G,Concat:X,Sub:J,Mul:Q,Div:tt,FloorDiv:et,Mod:nt,Pow:it,Neg:ot,Pos:at,Compare:rt,CompareOperand:st,CallExtension:ct,CallExtensionAsync:lt,printNodes:function t(e,n){if(n=n||0,ut(e.typename+": ",n),e instanceof u)ut("\n"),e.children.forEach((function(e){t(e,n+2)}));else if(e instanceof ct)ut(e.extName+"."+e.prop+"\n"),e.args&&t(e.args,n+2),e.contentArgs&&e.contentArgs.forEach((function(e){t(e,n+2)}));else{var i=[],o=null;e.iterFields((function(t,e){t instanceof c?i.push([e,t]):(o=o||{})[e]=t})),o?ut(JSON.stringify(o,null,2)+"\n",null,!0):ut("\n"),i.forEach((function(e){var i=e[0],o=e[1];ut("["+i+"] =>",n+2),t(o,n+4)}))}}}},function(t,e){},function(t,e,n){"use strict";function i(t,e){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},i(t,e)}var o=n(8),a=n(17),r=n(3),s=n(0).TemplateError,c=n(2).Frame,l=n(1).Obj,u={"==":"==","===":"===","!=":"!=","!==":"!==","<":"<",">":">","<=":"<=",">=":">="},p=function(t){var e,n;function o(){return t.apply(this,arguments)||this}n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,i(e,n);var a=o.prototype;return a.init=function(t,e){this.templateName=t,this.codebuf=[],this.lastId=0,this.buffer=null,this.bufferStack=[],this._scopeClosers="",this.inBlock=!1,this.throwOnUndefined=e},a.fail=function(t,e,n){throw void 0!==e&&(e+=1),void 0!==n&&(n+=1),new s(t,e,n)},a._pushBuffer=function(){var t=this._tmpid();return this.bufferStack.push(this.buffer),this.buffer=t,this._emit("var "+this.buffer+' = "";'),t},a._popBuffer=function(){this.buffer=this.bufferStack.pop()},a._emit=function(t){this.codebuf.push(t)},a._emitLine=function(t){this._emit(t+"\n")},a._emitLines=function(){for(var t=this,e=arguments.length,n=new Array(e),i=0;i0&&o._emit(","),o.compile(t,e)})),i&&this._emit(i)},a._compileExpression=function(t,e){this.assertType(t,r.Literal,r.Symbol,r.Group,r.Array,r.Dict,r.FunCall,r.Caller,r.Filter,r.LookupVal,r.Compare,r.InlineIf,r.In,r.Is,r.And,r.Or,r.Not,r.Add,r.Concat,r.Sub,r.Mul,r.Div,r.FloorDiv,r.Mod,r.Pow,r.Neg,r.Pos,r.Compare,r.NodeList),this.compile(t,e)},a.assertType=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i0&&i._emit(","),t){i._emitLine("function(cb) {"),i._emitLine("if(!cb) { cb = function(err) { if(err) { throw err; }}}");var o=i._pushBuffer();i._withScopedSyntax((function(){i.compile(t,e),i._emitLine("cb(null, "+o+");")})),i._popBuffer(),i._emitLine("return "+o+";"),i._emitLine("}")}else i._emit("null")})),n){var c=this._tmpid();this._emitLine(", "+this._makeCallback(c)),this._emitLine(this.buffer+" += runtime.suppressValue("+c+", "+s+" && env.opts.autoescape);"),this._addScopeLevel()}else this._emit(")"),this._emit(", "+s+" && env.opts.autoescape);\n")},a.compileCallExtensionAsync=function(t,e){this.compileCallExtension(t,e,!0)},a.compileNodeList=function(t,e){this._compileChildren(t,e)},a.compileLiteral=function(t){if("string"==typeof t.value){var e=t.value.replace(/\\/g,"\\\\");e=(e=(e=(e=(e=e.replace(/"/g,'\\"')).replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t")).replace(/\u2028/g,"\\u2028"),this._emit('"'+e+'"')}else null===t.value?this._emit("null"):this._emit(t.value.toString())},a.compileSymbol=function(t,e){var n=t.value,i=e.lookup(n);i?this._emit(i):this._emit('runtime.contextOrFrameLookup(context, frame, "'+n+'")')},a.compileGroup=function(t,e){this._compileAggregate(t,e,"(",")")},a.compileArray=function(t,e){this._compileAggregate(t,e,"[","]")},a.compileDict=function(t,e){this._compileAggregate(t,e,"{","}")},a.compilePair=function(t,e){var n=t.key,i=t.value;n instanceof r.Symbol?n=new r.Literal(n.lineno,n.colno,n.value):n instanceof r.Literal&&"string"==typeof n.value||this.fail("compilePair: Dict keys must be strings or names",n.lineno,n.colno),this.compile(n,e),this._emit(": "),this._compileExpression(i,e)},a.compileInlineIf=function(t,e){this._emit("("),this.compile(t.cond,e),this._emit("?"),this.compile(t.body,e),this._emit(":"),null!==t.else_?this.compile(t.else_,e):this._emit('""'),this._emit(")")},a.compileIn=function(t,e){this._emit("runtime.inOperator("),this.compile(t.left,e),this._emit(","),this.compile(t.right,e),this._emit(")")},a.compileIs=function(t,e){var n=t.right.name?t.right.name.value:t.right.value;this._emit('env.getTest("'+n+'").call(context, '),this.compile(t.left,e),t.right.args&&(this._emit(","),this.compile(t.right.args,e)),this._emit(") === true")},a._binOpEmitter=function(t,e,n){this.compile(t.left,e),this._emit(n),this.compile(t.right,e)},a.compileOr=function(t,e){return this._binOpEmitter(t,e," || ")},a.compileAnd=function(t,e){return this._binOpEmitter(t,e," && ")},a.compileAdd=function(t,e){return this._binOpEmitter(t,e," + ")},a.compileConcat=function(t,e){return this._binOpEmitter(t,e,' + "" + ')},a.compileSub=function(t,e){return this._binOpEmitter(t,e," - ")},a.compileMul=function(t,e){return this._binOpEmitter(t,e," * ")},a.compileDiv=function(t,e){return this._binOpEmitter(t,e," / ")},a.compileMod=function(t,e){return this._binOpEmitter(t,e," % ")},a.compileNot=function(t,e){this._emit("!"),this.compile(t.target,e)},a.compileFloorDiv=function(t,e){this._emit("Math.floor("),this.compile(t.left,e),this._emit(" / "),this.compile(t.right,e),this._emit(")")},a.compilePow=function(t,e){this._emit("Math.pow("),this.compile(t.left,e),this._emit(", "),this.compile(t.right,e),this._emit(")")},a.compileNeg=function(t,e){this._emit("-"),this.compile(t.target,e)},a.compilePos=function(t,e){this._emit("+"),this.compile(t.target,e)},a.compileCompare=function(t,e){var n=this;this.compile(t.expr,e),t.ops.forEach((function(t){n._emit(" "+u[t.type]+" "),n.compile(t.expr,e)}))},a.compileLookupVal=function(t,e){this._emit("runtime.memberLookup(("),this._compileExpression(t.target,e),this._emit("),"),this._compileExpression(t.val,e),this._emit(")")},a._getNodeName=function(t){switch(t.typename){case"Symbol":return t.value;case"FunCall":return"the return value of ("+this._getNodeName(t.name)+")";case"LookupVal":return this._getNodeName(t.target)+'["'+this._getNodeName(t.val)+'"]';case"Literal":return t.value.toString();default:return"--expression--"}},a.compileFunCall=function(t,e){this._emit("(lineno = "+t.lineno+", colno = "+t.colno+", "),this._emit("runtime.callWrap("),this._compileExpression(t.name,e),this._emit(', "'+this._getNodeName(t.name).replace(/"/g,'\\"')+'", context, '),this._compileAggregate(t.args,e,"[","])"),this._emit(")")},a.compileFilter=function(t,e){var n=t.name;this.assertType(n,r.Symbol),this._emit('env.getFilter("'+n.value+'").call(context, '),this._compileAggregate(t.args,e),this._emit(")")},a.compileFilterAsync=function(t,e){var n=t.name,i=t.symbol.value;this.assertType(n,r.Symbol),e.set(i,i),this._emit('env.getFilter("'+n.value+'").call(context, '),this._compileAggregate(t.args,e),this._emitLine(", "+this._makeCallback(i)),this._addScopeLevel()},a.compileKeywordArgs=function(t,e){this._emit("runtime.makeKeywordArgs("),this.compileDict(t,e),this._emit(")")},a.compileSet=function(t,e){var n=this,i=[];t.targets.forEach((function(t){var o=t.value,a=e.lookup(o);null==a&&(a=n._tmpid(),n._emitLine("var "+a+";")),i.push(a)})),t.value?(this._emit(i.join(" = ")+" = "),this._compileExpression(t.value,e),this._emitLine(";")):(this._emit(i.join(" = ")+" = "),this.compile(t.body,e),this._emitLine(";")),t.targets.forEach((function(t,e){var o=i[e],a=t.value;n._emitLine('frame.set("'+a+'", '+o+", true);"),n._emitLine("if(frame.topLevel) {"),n._emitLine('context.setVariable("'+a+'", '+o+");"),n._emitLine("}"),"_"!==a.charAt(0)&&(n._emitLine("if(frame.topLevel) {"),n._emitLine('context.addExport("'+a+'", '+o+");"),n._emitLine("}"))}))},a.compileSwitch=function(t,e){var n=this;this._emit("switch ("),this.compile(t.expr,e),this._emit(") {"),t.cases.forEach((function(t,i){n._emit("case "),n.compile(t.cond,e),n._emit(": "),n.compile(t.body,e),t.body.children.length&&n._emitLine("break;")})),t.default&&(this._emit("default:"),this.compile(t.default,e)),this._emit("}")},a.compileIf=function(t,e,n){var i=this;this._emit("if("),this._compileExpression(t.cond,e),this._emitLine(") {"),this._withScopedSyntax((function(){i.compile(t.body,e),n&&i._emit("cb()")})),t.else_?(this._emitLine("}\nelse {"),this._withScopedSyntax((function(){i.compile(t.else_,e),n&&i._emit("cb()")}))):n&&(this._emitLine("}\nelse {"),this._emit("cb()")),this._emitLine("}")},a.compileIfAsync=function(t,e){this._emit("(function(cb) {"),this.compileIf(t,e,!0),this._emit("})("+this._makeCallback()),this._addScopeLevel()},a._emitLoopBindings=function(t,e,n,i){var o=this;[{name:"index",val:n+" + 1"},{name:"index0",val:n},{name:"revindex",val:i+" - "+n},{name:"revindex0",val:i+" - "+n+" - 1"},{name:"first",val:n+" === 0"},{name:"last",val:n+" === "+i+" - 1"},{name:"length",val:i}].forEach((function(t){o._emitLine('frame.set("loop.'+t.name+'", '+t.val+");")}))},a.compileFor=function(t,e){var n=this,i=this._tmpid(),o=this._tmpid(),a=this._tmpid();if(e=e.push(),this._emitLine("frame = frame.push();"),this._emit("var "+a+" = "),this._compileExpression(t.arr,e),this._emitLine(";"),this._emit("if("+a+") {"),this._emitLine(a+" = runtime.fromIterator("+a+");"),t.name instanceof r.Array){this._emitLine("var "+i+";"),this._emitLine("if(runtime.isArray("+a+")) {"),this._emitLine("var "+o+" = "+a+".length;"),this._emitLine("for("+i+"=0; "+i+" < "+a+".length; "+i+"++) {"),t.name.children.forEach((function(o,r){var s=n._tmpid();n._emitLine("var "+s+" = "+a+"["+i+"]["+r+"];"),n._emitLine('frame.set("'+o+'", '+a+"["+i+"]["+r+"]);"),e.set(t.name.children[r].value,s)})),this._emitLoopBindings(t,a,i,o),this._withScopedSyntax((function(){n.compile(t.body,e)})),this._emitLine("}"),this._emitLine("} else {");var s=t.name.children,c=s[0],l=s[1],u=this._tmpid(),p=this._tmpid();e.set(c.value,u),e.set(l.value,p),this._emitLine(i+" = -1;"),this._emitLine("var "+o+" = runtime.keys("+a+").length;"),this._emitLine("for(var "+u+" in "+a+") {"),this._emitLine(i+"++;"),this._emitLine("var "+p+" = "+a+"["+u+"];"),this._emitLine('frame.set("'+c.value+'", '+u+");"),this._emitLine('frame.set("'+l.value+'", '+p+");"),this._emitLoopBindings(t,a,i,o),this._withScopedSyntax((function(){n.compile(t.body,e)})),this._emitLine("}"),this._emitLine("}")}else{var d=this._tmpid();e.set(t.name.value,d),this._emitLine("var "+o+" = "+a+".length;"),this._emitLine("for(var "+i+"=0; "+i+" < "+a+".length; "+i+"++) {"),this._emitLine("var "+d+" = "+a+"["+i+"];"),this._emitLine('frame.set("'+t.name.value+'", '+d+");"),this._emitLoopBindings(t,a,i,o),this._withScopedSyntax((function(){n.compile(t.body,e)})),this._emitLine("}")}this._emitLine("}"),t.else_&&(this._emitLine("if (!"+o+") {"),this.compile(t.else_,e),this._emitLine("}")),this._emitLine("frame = frame.pop();")},a._compileAsyncLoop=function(t,e,n){var i=this,o=this._tmpid(),a=this._tmpid(),s=this._tmpid(),c=n?"asyncAll":"asyncEach";if(e=e.push(),this._emitLine("frame = frame.push();"),this._emit("var "+s+" = runtime.fromIterator("),this._compileExpression(t.arr,e),this._emitLine(");"),t.name instanceof r.Array){var l=t.name.children.length;this._emit("runtime."+c+"("+s+", "+l+", function("),t.name.children.forEach((function(t){i._emit(t.value+",")})),this._emit(o+","+a+",next) {"),t.name.children.forEach((function(t){var n=t.value;e.set(n,n),i._emitLine('frame.set("'+n+'", '+n+");")}))}else{var u=t.name.value;this._emitLine("runtime."+c+"("+s+", 1, function("+u+", "+o+", "+a+",next) {"),this._emitLine('frame.set("'+u+'", '+u+");"),e.set(u,u)}this._emitLoopBindings(t,s,o,a),this._withScopedSyntax((function(){var a;n&&(a=i._pushBuffer()),i.compile(t.body,e),i._emitLine("next("+o+(a?","+a:"")+");"),n&&i._popBuffer()}));var p=this._tmpid();this._emitLine("}, "+this._makeCallback(p)),this._addScopeLevel(),n&&this._emitLine(this.buffer+" += "+p+";"),t.else_&&(this._emitLine("if (!"+s+".length) {"),this.compile(t.else_,e),this._emitLine("}")),this._emitLine("frame = frame.pop();")},a.compileAsyncEach=function(t,e){this._compileAsyncLoop(t,e)},a.compileAsyncAll=function(t,e){this._compileAsyncLoop(t,e,!0)},a._compileMacro=function(t,e){var n=this,i=[],o=null,a="macro_"+this._tmpid(),s=void 0!==e;t.args.children.forEach((function(e,a){a===t.args.children.length-1&&e instanceof r.Dict?o=e:(n.assertType(e,r.Symbol),i.push(e))}));var l,u=[].concat(i.map((function(t){return"l_"+t.value})),["kwargs"]),p=i.map((function(t){return'"'+t.value+'"'})),d=(o&&o.children||[]).map((function(t){return'"'+t.key.value+'"'}));l=s?e.push(!0):new c,this._emitLines("var "+a+" = runtime.makeMacro(","["+p.join(", ")+"], ","["+d.join(", ")+"], ","function ("+u.join(", ")+") {","var callerFrame = frame;","frame = "+(s?"frame.push(true);":"new runtime.Frame();"),"kwargs = kwargs || {};",'if (Object.prototype.hasOwnProperty.call(kwargs, "caller")) {','frame.set("caller", kwargs.caller); }'),i.forEach((function(t){n._emitLine('frame.set("'+t.value+'", l_'+t.value+");"),l.set(t.value,"l_"+t.value)})),o&&o.children.forEach((function(t){var e=t.key.value;n._emit('frame.set("'+e+'", '),n._emit('Object.prototype.hasOwnProperty.call(kwargs, "'+e+'")'),n._emit(' ? kwargs["'+e+'"] : '),n._compileExpression(t.value,l),n._emit(");")}));var h=this._pushBuffer();return this._withScopedSyntax((function(){n.compile(t.body,l)})),this._emitLine("frame = "+(s?"frame.pop();":"callerFrame;")),this._emitLine("return new runtime.SafeString("+h+");"),this._emitLine("});"),this._popBuffer(),a},a.compileMacro=function(t,e){var n=this._compileMacro(t),i=t.name.value;e.set(i,n),e.parent?this._emitLine('frame.set("'+i+'", '+n+");"):("_"!==t.name.value.charAt(0)&&this._emitLine('context.addExport("'+i+'");'),this._emitLine('context.setVariable("'+i+'", '+n+");"))},a.compileCaller=function(t,e){this._emit("(function (){");var n=this._compileMacro(t,e);this._emit("return "+n+";})()")},a._compileGetTemplate=function(t,e,n,i){var o=this._tmpid(),a=this._templateName(),r=this._makeCallback(o),s=n?"true":"false",c=i?"true":"false";return this._emit("env.getTemplate("),this._compileExpression(t.template,e),this._emitLine(", "+s+", "+a+", "+c+", "+r),o},a.compileImport=function(t,e){var n=t.target.value,i=this._compileGetTemplate(t,e,!1,!1);this._addScopeLevel(),this._emitLine(i+".getExported("+(t.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(i)),this._addScopeLevel(),e.set(n,i),e.parent?this._emitLine('frame.set("'+n+'", '+i+");"):this._emitLine('context.setVariable("'+n+'", '+i+");")},a.compileFromImport=function(t,e){var n=this,i=this._compileGetTemplate(t,e,!1,!1);this._addScopeLevel(),this._emitLine(i+".getExported("+(t.withContext?"context.getVariables(), frame, ":"")+this._makeCallback(i)),this._addScopeLevel(),t.names.children.forEach((function(t){var o,a,s=n._tmpid();t instanceof r.Pair?(o=t.key.value,a=t.value.value):a=o=t.value,n._emitLine("if(Object.prototype.hasOwnProperty.call("+i+', "'+o+'")) {'),n._emitLine("var "+s+" = "+i+"."+o+";"),n._emitLine("} else {"),n._emitLine("cb(new Error(\"cannot import '"+o+"'\")); return;"),n._emitLine("}"),e.set(a,s),e.parent?n._emitLine('frame.set("'+a+'", '+s+");"):n._emitLine('context.setVariable("'+a+'", '+s+");")}))},a.compileBlock=function(t){var e=this._tmpid();this.inBlock||this._emit('(parentTemplate ? function(e, c, f, r, cb) { cb(""); } : '),this._emit('context.getBlock("'+t.name.value+'")'),this.inBlock||this._emit(")"),this._emitLine("(env, context, frame, runtime, "+this._makeCallback(e)),this._emitLine(this.buffer+" += "+e+";"),this._addScopeLevel()},a.compileSuper=function(t,e){var n=t.blockName.value,i=t.symbol.value,o=this._makeCallback(i);this._emitLine('context.getSuper(env, "'+n+'", b_'+n+", frame, runtime, "+o),this._emitLine(i+" = runtime.markSafe("+i+");"),this._addScopeLevel(),e.set(i,i)},a.compileExtends=function(t,e){var n=this._tmpid(),i=this._compileGetTemplate(t,e,!0,!1);this._emitLine("parentTemplate = "+i),this._emitLine("for(var "+n+" in parentTemplate.blocks) {"),this._emitLine("context.addBlock("+n+", parentTemplate.blocks["+n+"]);"),this._emitLine("}"),this._addScopeLevel()},a.compileInclude=function(t,e){this._emitLine("var tasks = [];"),this._emitLine("tasks.push("),this._emitLine("function(callback) {");var n=this._compileGetTemplate(t,e,!1,t.ignoreMissing);this._emitLine("callback(null,"+n+");});"),this._emitLine("});");var i=this._tmpid();this._emitLine("tasks.push("),this._emitLine("function(template, callback){"),this._emitLine("template.render(context.getVariables(), frame, "+this._makeCallback(i)),this._emitLine("callback(null,"+i+");});"),this._emitLine("});"),this._emitLine("tasks.push("),this._emitLine("function(result, callback){"),this._emitLine(this.buffer+" += result;"),this._emitLine("callback(null);"),this._emitLine("});"),this._emitLine("env.waterfall(tasks, function(){"),this._addScopeLevel()},a.compileTemplateData=function(t,e){this.compileLiteral(t,e)},a.compileCapture=function(t,e){var n=this,i=this.buffer;this.buffer="output",this._emitLine("(function() {"),this._emitLine('var output = "";'),this._withScopedSyntax((function(){n.compile(t.body,e)})),this._emitLine("return output;"),this._emitLine("})()"),this.buffer=i},a.compileOutput=function(t,e){var n=this;t.children.forEach((function(i){i instanceof r.TemplateData?i.value&&(n._emit(n.buffer+" += "),n.compileLiteral(i,e),n._emitLine(";")):(n._emit(n.buffer+" += runtime.suppressValue("),n.throwOnUndefined&&n._emit("runtime.ensureDefined("),n.compile(i,e),n.throwOnUndefined&&n._emit(","+t.lineno+","+t.colno+")"),n._emit(", env.opts.autoescape);\n"))}))},a.compileRoot=function(t,e){var n=this;e&&this.fail("compileRoot: root node can't have frame"),e=new c,this._emitFuncBegin(t,"root"),this._emitLine("var parentTemplate = null;"),this._compileChildren(t,e),this._emitLine("if(parentTemplate) {"),this._emitLine("parentTemplate.rootRenderFunc(env, context, frame, runtime, cb);"),this._emitLine("} else {"),this._emitLine("cb(null, "+this.buffer+");"),this._emitLine("}"),this._emitFuncEnd(!0),this.inBlock=!0;var i=[],o=t.findAll(r.Block);o.forEach((function(t,e){var o=t.name.value;if(-1!==i.indexOf(o))throw new Error('Block "'+o+'" defined more than once.');i.push(o),n._emitFuncBegin(t,"b_"+o);var a=new c;n._emitLine("var frame = frame.push(true);"),n.compile(t.body,a),n._emitFuncEnd()})),this._emitLine("return {"),o.forEach((function(t,e){var i="b_"+t.name.value;n._emitLine(i+": "+i+",")})),this._emitLine("root: root\n};")},a.compile=function(t,e){var n=this["compile"+t.typename];n?n.call(this,t,e):this.fail("compile: Cannot compile node: "+t.typename,t.lineno,t.colno)},a.getCode=function(){return this.codebuf.join("")},o}(l);t.exports={compile:function(t,e,n,i,r){void 0===r&&(r={});var s=new p(i,r.throwOnUndefined),c=(n||[]).map((function(t){return t.preprocess})).filter((function(t){return!!t})).reduce((function(t,e){return e(t)}),t);return s.compile(a.transform(o.parse(c,n,r),e,i)),s.getCode()},Compiler:p}},function(t,e,n){"use strict";function i(t,e){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},i(t,e)}var o=n(4),a=n(1).EmitterObj;t.exports=function(t){var e,n;function a(){return t.apply(this,arguments)||this}n=t,(e=a).prototype=Object.create(n.prototype),e.prototype.constructor=e,i(e,n);var r=a.prototype;return r.resolve=function(t,e){return o.resolve(o.dirname(t),e)},r.isRelative=function(t){return 0===t.indexOf("./")||0===t.indexOf("../")},a}(a)},function(t,e,n){"use strict";function i(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,o(t,e)}function o(t,e){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},o(t,e)}var a=n(12),r=n(15),s=n(0),c=n(5),l=n(18),u=n(10),p=u.FileSystemLoader,d=u.WebLoader,h=u.PrecompiledLoader,m=n(20),f=n(21),y=n(1),_=y.Obj,b=y.EmitterObj,v=n(2),g=v.handleError,k=v.Frame,w=n(22);function C(t,e,n){a((function(){t(e,n)}))}var x={type:"code",obj:{root:function(t,e,n,i,o){try{o(null,"")}catch(t){o(g(t,null,null))}}}},E=function(t){function e(){return t.apply(this,arguments)||this}i(e,t);var n=e.prototype;return n.init=function(t,e){var n=this;e=this.opts=e||{},this.opts.dev=!!e.dev,this.opts.autoescape=null==e.autoescape||e.autoescape,this.opts.throwOnUndefined=!!e.throwOnUndefined,this.opts.trimBlocks=!!e.trimBlocks,this.opts.lstripBlocks=!!e.lstripBlocks,this.loaders=[],t?this.loaders=s.isArray(t)?t:[t]:p?this.loaders=[new p("views")]:d&&(this.loaders=[new d("/views")]),"undefined"!=typeof window&&window.nunjucksPrecompiled&&this.loaders.unshift(new h(window.nunjucksPrecompiled)),this._initLoaders(),this.globals=f(),this.filters={},this.tests={},this.asyncFilters=[],this.extensions={},this.extensionsList=[],s._entries(l).forEach((function(t){var e=t[0],i=t[1];return n.addFilter(e,i)})),s._entries(m).forEach((function(t){var e=t[0],i=t[1];return n.addTest(e,i)}))},n._initLoaders=function(){var t=this;this.loaders.forEach((function(e){e.cache={},"function"==typeof e.on&&(e.on("update",(function(n,i){e.cache[n]=null,t.emit("update",n,i,e)})),e.on("load",(function(n,i){t.emit("load",n,i,e)})))}))},n.invalidateCache=function(){this.loaders.forEach((function(t){t.cache={}}))},n.addExtension=function(t,e){return e.__name=t,this.extensions[t]=e,this.extensionsList.push(e),this},n.removeExtension=function(t){var e=this.getExtension(t);e&&(this.extensionsList=s.without(this.extensionsList,e),delete this.extensions[t])},n.getExtension=function(t){return this.extensions[t]},n.hasExtension=function(t){return!!this.extensions[t]},n.addGlobal=function(t,e){return this.globals[t]=e,this},n.getGlobal=function(t){if(void 0===this.globals[t])throw new Error("global not found: "+t);return this.globals[t]},n.addFilter=function(t,e,n){var i=e;return n&&this.asyncFilters.push(t),this.filters[t]=i,this},n.getFilter=function(t){if(!this.filters[t])throw new Error("filter not found: "+t);return this.filters[t]},n.addTest=function(t,e){return this.tests[t]=e,this},n.getTest=function(t){if(!this.tests[t])throw new Error("test not found: "+t);return this.tests[t]},n.resolveTemplate=function(t,e,n){return t.isRelative&&e&&t.isRelative(n)&&t.resolve?t.resolve(e,n):n},n.getTemplate=function(t,e,n,i,o){var a,r=this,c=this,l=null;if(t&&t.raw&&(t=t.raw),s.isFunction(n)&&(o=n,n=null,e=e||!1),s.isFunction(e)&&(o=e,e=!1),t instanceof T)l=t;else{if("string"!=typeof t)throw new Error("template names must be a string: "+t);for(var u=0;u0&&!this.skip(o.TOKEN_COMMA)&&this.fail("parseFrom: expected comma",t.lineno,t.colno);var s=this.parsePrimary();if("_"===s.value.charAt(0)&&this.fail("parseFrom: names starting with an underscore cannot be imported",s.lineno,s.colno),this.skipSymbol("as")){var c=this.parsePrimary();i.addChild(new a.Pair(s.lineno,s.colno,s,c))}else i.addChild(s);n=this.parseWithContext()}return new a.FromImport(t.lineno,t.colno,e,i,n)},c.parseBlock=function(){var t=this.peekToken();this.skipSymbol("block")||this.fail("parseBlock: expected block",t.lineno,t.colno);var e=new a.Block(t.lineno,t.colno);e.name=this.parsePrimary(),e.name instanceof a.Symbol||this.fail("parseBlock: variable name expected",t.lineno,t.colno),this.advanceAfterBlockEnd(t.value),e.body=this.parseUntilBlocks("endblock"),this.skipSymbol("endblock"),this.skipSymbol(e.name.value);var n=this.peekToken();return n||this.fail("parseBlock: expected endblock, got end of file"),this.advanceAfterBlockEnd(n.value),e},c.parseExtends=function(){var t="extends",e=this.peekToken();this.skipSymbol(t)||this.fail("parseTemplateRef: expected "+t);var n=new a.Extends(e.lineno,e.colno);return n.template=this.parseExpression(),this.advanceAfterBlockEnd(e.value),n},c.parseInclude=function(){var t="include",e=this.peekToken();this.skipSymbol(t)||this.fail("parseInclude: expected "+t);var n=new a.Include(e.lineno,e.colno);return n.template=this.parseExpression(),this.skipSymbol("ignore")&&this.skipSymbol("missing")&&(n.ignoreMissing=!0),this.advanceAfterBlockEnd(e.value),n},c.parseIf=function(){var t,e=this.peekToken();this.skipSymbol("if")||this.skipSymbol("elif")||this.skipSymbol("elseif")?t=new a.If(e.lineno,e.colno):this.skipSymbol("ifAsync")?t=new a.IfAsync(e.lineno,e.colno):this.fail("parseIf: expected if, elif, or elseif",e.lineno,e.colno),t.cond=this.parseExpression(),this.advanceAfterBlockEnd(e.value),t.body=this.parseUntilBlocks("elif","elseif","else","endif");var n=this.peekToken();switch(n&&n.value){case"elseif":case"elif":t.else_=this.parseIf();break;case"else":this.advanceAfterBlockEnd(),t.else_=this.parseUntilBlocks("endif"),this.advanceAfterBlockEnd();break;case"endif":t.else_=null,this.advanceAfterBlockEnd();break;default:this.fail("parseIf: expected elif, else, or endif, got end of file")}return t},c.parseSet=function(){var t=this.peekToken();this.skipSymbol("set")||this.fail("parseSet: expected set",t.lineno,t.colno);for(var e,n=new a.Set(t.lineno,t.colno,[]);(e=this.parsePrimary())&&(n.targets.push(e),this.skip(o.TOKEN_COMMA)););return this.skipValue(o.TOKEN_OPERATOR,"=")?(n.value=this.parseExpression(),this.advanceAfterBlockEnd(t.value)):this.skip(o.TOKEN_BLOCK_END)?(n.body=new a.Capture(t.lineno,t.colno,this.parseUntilBlocks("endset")),n.value=null,this.advanceAfterBlockEnd()):this.fail("parseSet: expected = or block end in set tag",t.lineno,t.colno),n},c.parseSwitch=function(){var t="switch",e="endswitch",n="case",i="default",o=this.peekToken();this.skipSymbol(t)||this.skipSymbol(n)||this.skipSymbol(i)||this.fail('parseSwitch: expected "switch," "case" or "default"',o.lineno,o.colno);var r=this.parseExpression();this.advanceAfterBlockEnd(t),this.parseUntilBlocks(n,i,e);var s,c=this.peekToken(),l=[];do{this.skipSymbol(n);var u=this.parseExpression();this.advanceAfterBlockEnd(t);var p=this.parseUntilBlocks(n,i,e);l.push(new a.Case(c.line,c.col,u,p)),c=this.peekToken()}while(c&&c.value===n);switch(c.value){case i:this.advanceAfterBlockEnd(),s=this.parseUntilBlocks(e),this.advanceAfterBlockEnd();break;case e:this.advanceAfterBlockEnd();break;default:this.fail('parseSwitch: expected "case," "default" or "endswitch," got EOF.')}return new a.Switch(o.lineno,o.colno,r,l,s)},c.parseStatement=function(){var t=this.peekToken();if(t.type!==o.TOKEN_SYMBOL&&this.fail("tag name expected",t.lineno,t.colno),this.breakOnBlocks&&-1!==s.indexOf(this.breakOnBlocks,t.value))return null;switch(t.value){case"raw":return this.parseRaw();case"verbatim":return this.parseRaw("verbatim");case"if":case"ifAsync":return this.parseIf();case"for":case"asyncEach":case"asyncAll":return this.parseFor();case"block":return this.parseBlock();case"extends":return this.parseExtends();case"include":return this.parseInclude();case"set":return this.parseSet();case"macro":return this.parseMacro();case"call":return this.parseCall();case"import":return this.parseImport();case"from":return this.parseFrom();case"filter":return this.parseFilterStatement();case"switch":return this.parseSwitch();default:if(this.extensions.length)for(var e=0;e0;){var c=r[0],l=r[1],u=r[2];u===t?i+=1:u===e&&(i-=1),0===i?(o+=l,this.tokens.backN(c.length-l.length)):o+=c}return new a.Output(s.lineno,s.colno,[new a.TemplateData(s.lineno,s.colno,o)])},c.parsePostfix=function(t){for(var e,n=this.peekToken();n;){if(n.type===o.TOKEN_LEFT_PAREN)t=new a.FunCall(n.lineno,n.colno,t,this.parseSignature());else if(n.type===o.TOKEN_LEFT_BRACKET)(e=this.parseAggregate()).children.length>1&&this.fail("invalid index"),t=new a.LookupVal(n.lineno,n.colno,t,e.children[0]);else{if(n.type!==o.TOKEN_OPERATOR||"."!==n.value)break;this.nextToken();var i=this.nextToken();i.type!==o.TOKEN_SYMBOL&&this.fail("expected name as lookup value, got "+i.value,i.lineno,i.colno),e=new a.Literal(i.lineno,i.colno,i.value),t=new a.LookupVal(n.lineno,n.colno,t,e)}n=this.peekToken()}return t},c.parseExpression=function(){return this.parseInlineIf()},c.parseInlineIf=function(){var t=this.parseOr();if(this.skipSymbol("if")){var e=this.parseOr(),n=t;(t=new a.InlineIf(t.lineno,t.colno)).body=n,t.cond=e,this.skipSymbol("else")?t.else_=this.parseOr():t.else_=null}return t},c.parseOr=function(){for(var t=this.parseAnd();this.skipSymbol("or");){var e=this.parseAnd();t=new a.Or(t.lineno,t.colno,t,e)}return t},c.parseAnd=function(){for(var t=this.parseNot();this.skipSymbol("and");){var e=this.parseNot();t=new a.And(t.lineno,t.colno,t,e)}return t},c.parseNot=function(){var t=this.peekToken();return this.skipSymbol("not")?new a.Not(t.lineno,t.colno,this.parseNot()):this.parseIn()},c.parseIn=function(){for(var t=this.parseIs();;){var e=this.nextToken();if(!e)break;var n=e.type===o.TOKEN_SYMBOL&&"not"===e.value;if(n||this.pushToken(e),!this.skipSymbol("in")){n&&this.pushToken(e);break}var i=this.parseIs();t=new a.In(t.lineno,t.colno,t,i),n&&(t=new a.Not(t.lineno,t.colno,t))}return t},c.parseIs=function(){var t=this.parseCompare();if(this.skipSymbol("is")){var e=this.skipSymbol("not"),n=this.parseCompare();t=new a.Is(t.lineno,t.colno,t,n),e&&(t=new a.Not(t.lineno,t.colno,t))}return t},c.parseCompare=function(){for(var t=["==","===","!=","!==","<",">","<=",">="],e=this.parseConcat(),n=[];;){var i=this.nextToken();if(!i)break;if(-1===t.indexOf(i.value)){this.pushToken(i);break}n.push(new a.CompareOperand(i.lineno,i.colno,this.parseConcat(),i.value))}return n.length?new a.Compare(n[0].lineno,n[0].colno,e,n):e},c.parseConcat=function(){for(var t=this.parseAdd();this.skipValue(o.TOKEN_TILDE,"~");){var e=this.parseAdd();t=new a.Concat(t.lineno,t.colno,t,e)}return t},c.parseAdd=function(){for(var t=this.parseSub();this.skipValue(o.TOKEN_OPERATOR,"+");){var e=this.parseSub();t=new a.Add(t.lineno,t.colno,t,e)}return t},c.parseSub=function(){for(var t=this.parseMul();this.skipValue(o.TOKEN_OPERATOR,"-");){var e=this.parseMul();t=new a.Sub(t.lineno,t.colno,t,e)}return t},c.parseMul=function(){for(var t=this.parseDiv();this.skipValue(o.TOKEN_OPERATOR,"*");){var e=this.parseDiv();t=new a.Mul(t.lineno,t.colno,t,e)}return t},c.parseDiv=function(){for(var t=this.parseFloorDiv();this.skipValue(o.TOKEN_OPERATOR,"/");){var e=this.parseFloorDiv();t=new a.Div(t.lineno,t.colno,t,e)}return t},c.parseFloorDiv=function(){for(var t=this.parseMod();this.skipValue(o.TOKEN_OPERATOR,"//");){var e=this.parseMod();t=new a.FloorDiv(t.lineno,t.colno,t,e)}return t},c.parseMod=function(){for(var t=this.parsePow();this.skipValue(o.TOKEN_OPERATOR,"%");){var e=this.parsePow();t=new a.Mod(t.lineno,t.colno,t,e)}return t},c.parsePow=function(){for(var t=this.parseUnary();this.skipValue(o.TOKEN_OPERATOR,"**");){var e=this.parseUnary();t=new a.Pow(t.lineno,t.colno,t,e)}return t},c.parseUnary=function(t){var e,n=this.peekToken();return e=this.skipValue(o.TOKEN_OPERATOR,"-")?new a.Neg(n.lineno,n.colno,this.parseUnary(!0)):this.skipValue(o.TOKEN_OPERATOR,"+")?new a.Pos(n.lineno,n.colno,this.parseUnary(!0)):this.parsePrimary(),t||(e=this.parseFilter(e)),e},c.parsePrimary=function(t){var e,n=this.nextToken(),i=null;if(n?n.type===o.TOKEN_STRING?e=n.value:n.type===o.TOKEN_INT?e=parseInt(n.value,10):n.type===o.TOKEN_FLOAT?e=parseFloat(n.value):n.type===o.TOKEN_BOOLEAN?"true"===n.value?e=!0:"false"===n.value?e=!1:this.fail("invalid boolean: "+n.value,n.lineno,n.colno):n.type===o.TOKEN_NONE?e=null:n.type===o.TOKEN_REGEX&&(e=new RegExp(n.value.body,n.value.flags)):this.fail("expected expression, got end of file"),void 0!==e?i=new a.Literal(n.lineno,n.colno,e):n.type===o.TOKEN_SYMBOL?i=new a.Symbol(n.lineno,n.colno,n.value):(this.pushToken(n),i=this.parseAggregate()),t||(i=this.parsePostfix(i)),i)return i;throw this.error("unexpected token: "+n.value,n.lineno,n.colno)},c.parseFilterName=function(){for(var t=this.expect(o.TOKEN_SYMBOL),e=t.value;this.skipValue(o.TOKEN_OPERATOR,".");)e+="."+this.expect(o.TOKEN_SYMBOL).value;return new a.Symbol(t.lineno,t.colno,e)},c.parseFilterArgs=function(t){return this.peekToken().type===o.TOKEN_LEFT_PAREN?this.parsePostfix(t).args.children:[]},c.parseFilter=function(t){for(;this.skip(o.TOKEN_PIPE);){var e=this.parseFilterName();t=new a.Filter(e.lineno,e.colno,e,new a.NodeList(e.lineno,e.colno,[t].concat(this.parseFilterArgs(t))))}return t},c.parseFilterStatement=function(){var t=this.peekToken();this.skipSymbol("filter")||this.fail("parseFilterStatement: expected filter");var e=this.parseFilterName(),n=this.parseFilterArgs(e);this.advanceAfterBlockEnd(t.value);var i=new a.Capture(e.lineno,e.colno,this.parseUntilBlocks("endfilter"));this.advanceAfterBlockEnd();var o=new a.Filter(e.lineno,e.colno,e,new a.NodeList(e.lineno,e.colno,[i].concat(n)));return new a.Output(e.lineno,e.colno,[o])},c.parseAggregate=function(){var t,e=this.nextToken();switch(e.type){case o.TOKEN_LEFT_PAREN:t=new a.Group(e.lineno,e.colno);break;case o.TOKEN_LEFT_BRACKET:t=new a.Array(e.lineno,e.colno);break;case o.TOKEN_LEFT_CURLY:t=new a.Dict(e.lineno,e.colno);break;default:return null}for(;;){var n=this.peekToken().type;if(n===o.TOKEN_RIGHT_PAREN||n===o.TOKEN_RIGHT_BRACKET||n===o.TOKEN_RIGHT_CURLY){this.nextToken();break}if(t.children.length>0&&(this.skip(o.TOKEN_COMMA)||this.fail("parseAggregate: expected comma after expression",e.lineno,e.colno)),t instanceof a.Dict){var i=this.parsePrimary();this.skip(o.TOKEN_COLON)||this.fail("parseAggregate: expected colon after dict key",e.lineno,e.colno);var r=this.parseExpression();t.addChild(new a.Pair(i.lineno,i.colno,i,r))}else{var s=this.parseExpression();t.addChild(s)}}return t},c.parseSignature=function(t,e){var n=this.peekToken();if(!e&&n.type!==o.TOKEN_LEFT_PAREN){if(t)return null;this.fail("expected arguments",n.lineno,n.colno)}n.type===o.TOKEN_LEFT_PAREN&&(n=this.nextToken());for(var i=new a.NodeList(n.lineno,n.colno),r=new a.KeywordArgs(n.lineno,n.colno),s=!1;;){if(n=this.peekToken(),!e&&n.type===o.TOKEN_RIGHT_PAREN){this.nextToken();break}if(e&&n.type===o.TOKEN_BLOCK_END)break;if(s&&!this.skip(o.TOKEN_COMMA))this.fail("parseSignature: expected comma after expression",n.lineno,n.colno);else{var c=this.parseExpression();this.skipValue(o.TOKEN_OPERATOR,"=")?r.addChild(new a.Pair(c.lineno,c.colno,c,this.parseExpression())):i.addChild(c)}s=!0}return r.children.length&&i.addChild(r),i},c.parseUntilBlocks=function(){for(var t=this.breakOnBlocks,e=arguments.length,n=new Array(e),i=0;i=","//","**"],R=M+this.current();switch(-1!==i.indexOf(N,R)&&(this.forward(),M=R,-1!==i.indexOf(N,R+this.current())&&(M=R+this.current(),this.forward())),M){case"(":D=m;break;case")":D=f;break;case"[":D=y;break;case"]":D=_;break;case"{":D=b;break;case"}":D=v;break;case",":D=k;break;case":":D=w;break;case"~":D=C;break;case"|":D=x;break;default:D=g}return O(D,M,e,n)}if((t=this._extractUntil(o+a)).match(/^[-+]?[0-9]+$/)){if("."===this.current()){this.forward();var V=this._extract("0123456789");return O(E,t+"."+V,e,n)}return O("int",t,e,n)}if(t.match(/^(true|false)$/))return O(L,t,e,n);if("none"===t)return O(T,t,e,n);if("null"===t)return O(T,t,e,n);if(t)return O(A,t,e,n);throw new Error("Unexpected value while parsing: "+t)}var F,U=this.tags.BLOCK_START.charAt(0)+this.tags.VARIABLE_START.charAt(0)+this.tags.COMMENT_START.charAt(0)+this.tags.COMMENT_END.charAt(0);if(this.isFinished())return null;if((t=this._extractString(this.tags.BLOCK_START+"-"))||(t=this._extractString(this.tags.BLOCK_START)))return this.in_code=!0,O(l,t,e,n);if((t=this._extractString(this.tags.VARIABLE_START+"-"))||(t=this._extractString(this.tags.VARIABLE_START)))return this.in_code=!0,O(p,t,e,n);t="";var j=!1;for(this._matches(this.tags.COMMENT_START)&&(j=!0,t=this._extractString(this.tags.COMMENT_START));null!==(F=this._extractUntil(U));){if(t+=F,(this._matches(this.tags.BLOCK_START)||this._matches(this.tags.VARIABLE_START)||this._matches(this.tags.COMMENT_START))&&!j){if(this.lstripBlocks&&this._matches(this.tags.BLOCK_START)&&this.colno>0&&this.colno<=t.length){var B=t.slice(-this.colno);if(/^\s+$/.test(B)&&!(t=t.slice(0,-this.colno)).length)return this.nextToken()}break}if(this._matches(this.tags.COMMENT_END)){if(!j)throw new Error("unexpected end of comment");t+=this._extractString(this.tags.COMMENT_END);break}t+=this.current(),this.forward()}if(null===F&&j)throw new Error("expected end of comment, got end of file");return O(j?h:c,t,e,n)},e._parseString=function(t){this.forward();for(var e="";!this.isFinished()&&this.current()!==t;){var n=this.current();if("\\"===n){switch(this.forward(),this.current()){case"n":e+="\n";break;case"t":e+="\t";break;case"r":e+="\r";break;default:e+=this.current()}this.forward()}else e+=n,this.forward()}return this.forward(),e},e._matches=function(t){return this.index+t.length>this.len?null:this.str.slice(this.index,this.index+t.length)===t},e._extractString=function(t){return this._matches(t)?(this.forwardN(t.length),t):null},e._extractUntil=function(t){return this._extractMatching(!0,t||"")},e._extract=function(t){return this._extractMatching(!1,t)},e._extractMatching=function(t,e){if(this.isFinished())return null;var n=e.indexOf(this.current());if(t&&-1===n||!t&&-1!==n){var i=this.current();this.forward();for(var o=e.indexOf(this.current());(t&&-1===o||!t&&-1!==o)&&!this.isFinished();)i+=this.current(),this.forward(),o=e.indexOf(this.current());return i}return""},e._extractRegex=function(t){var e=this.currentStr().match(t);return e?(this.forwardN(e[0].length),e):null},e.isFinished=function(){return this.index>=this.len},e.forwardN=function(t){for(var e=0;e1024){for(var e=0,n=o.length-a;e0&&r.length>o&&!r.warned){r.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+r.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=r.length,s=c,console&&console.warn&&console.warn(s)}return t}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(t,e,n){var i={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},o=d.bind(i);return o.listener=n,i.wrapFn=o,o}function m(t,e,n){var i=t._events;if(void 0===i)return[];var o=i[e];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(t){for(var e=new Array(t.length),n=0;n0&&(r=e[0]),r instanceof Error)throw r;var s=new Error("Unhandled error."+(r?" ("+r.message+")":""));throw s.context=r,s}var c=o[t];if(void 0===c)return!1;if("function"==typeof c)a(c,this,e);else{var l=c.length,u=y(c,l);for(n=0;n=0;a--)if(n[a]===e||n[a].listener===e){r=n[a].listener,o=a;break}if(o<0)return this;0===o?n.shift():function(t,e){for(;e+1=0;i--)this.removeListener(t,e[i]);return this},s.prototype.listeners=function(t){return m(this,t,!0)},s.prototype.rawListeners=function(t){return m(this,t,!1)},s.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):f.call(t,e)},s.prototype.listenerCount=f,s.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},function(t,e,n){"use strict";var i=n(3),o=n(0),a=0;function r(){return"hole_"+a++}function s(t,e){for(var n=null,i=0;i=e)return t;var n=e-t.length,r=i.repeat(" ",n/2-n%2),s=i.repeat(" ",n/2);return o.copySafeness(t,r+t+s)},e.default=function(t,e,n){return n?t||e:void 0!==t?t:e},e.dictsort=function(t,e,n){if(!i.isObject(t))throw new i.TemplateError("dictsort filter: val must be an object");var o,a=[];for(var r in t)a.push([r,t[r]]);if(void 0===n||"key"===n)o=0;else{if("value"!==n)throw new i.TemplateError("dictsort filter: You can only sort by either key or value");o=1}return a.sort((function(t,n){var a=t[o],r=n[o];return e||(i.isString(a)&&(a=a.toUpperCase()),i.isString(r)&&(r=r.toUpperCase())),a>r?1:a===r?0:-1})),a},e.dump=function(t,e){return JSON.stringify(t,null,e)},e.escape=function(t){return t instanceof o.SafeString?t:(t=null==t?"":t,o.markSafe(i.escape(t.toString())))},e.safe=function(t){return t instanceof o.SafeString?t:(t=null==t?"":t,o.markSafe(t.toString()))},e.first=function(t){return t[0]},e.forceescape=function(t){return t=null==t?"":t,o.markSafe(i.escape(t.toString()))},e.groupby=function(t,e){return i.groupBy(t,e,this.env.opts.throwOnUndefined)},e.indent=function(t,e,n){if(""===(t=a(t,"")))return"";e=e||4;var r=t.split("\n"),s=i.repeat(" ",e),c=r.map((function(t,e){return 0!==e||n?""+s+t:t})).join("\n");return o.copySafeness(t,c)},e.join=function(t,e,n){return e=e||"",n&&(t=i.map(t,(function(t){return t[n]}))),t.join(e)},e.last=function(t){return t[t.length-1]},e.length=function(t){var e=a(t,"");return void 0!==e?"function"==typeof Map&&e instanceof Map||"function"==typeof Set&&e instanceof Set?e.size:!i.isObject(e)||e instanceof o.SafeString?e.length:i.keys(e).length:0},e.list=c,e.lower=function(t){return(t=a(t,"")).toLowerCase()},e.nl2br=function(t){return null==t?"":o.copySafeness(t,t.replace(/\r\n|\n/g,"
\n"))},e.random=function(t){return t[Math.floor(Math.random()*t.length)]},e.reject=l(!1),e.rejectattr=function(t,e){return t.filter((function(t){return!t[e]}))},e.select=l(!0),e.selectattr=function(t,e){return t.filter((function(t){return!!t[e]}))},e.replace=function(t,e,n,i){var a=t;if(e instanceof RegExp)return t.replace(e,n);void 0===i&&(i=-1);var r="";if("number"==typeof e)e=""+e;else if("string"!=typeof e)return t;if("number"==typeof t&&(t=""+t),"string"!=typeof t&&!(t instanceof o.SafeString))return t;if(""===e)return r=n+t.split("").join(n)+n,o.copySafeness(t,r);var s=t.indexOf(e);if(0===i||-1===s)return t;for(var c=0,l=0;s>-1&&(-1===i||l=o&&u.push(n),a.push(u)}return a},e.sum=function(t,e,n){return void 0===n&&(n=0),e&&(t=i.map(t,(function(t){return t[e]}))),n+t.reduce((function(t,e){return t+e}),0)},e.sort=o.makeMacro(["value","reverse","case_sensitive","attribute"],[],(function(t,e,n,o){var a=this,r=i.map(t,(function(t){return t})),s=i.getAttrGetter(o);return r.sort((function(t,r){var c=o?s(t):t,l=o?s(r):r;if(a.env.opts.throwOnUndefined&&o&&(void 0===c||void 0===l))throw new TypeError('sort: attribute "'+o+'" resolved to undefined');return!n&&i.isString(c)&&i.isString(l)&&(c=c.toLowerCase(),l=l.toLowerCase()),cl?e?-1:1:0})),r})),e.string=function(t){return o.copySafeness(t,t)},e.striptags=function(t,e){var n,i=u((t=a(t,"")).replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>|/gi,""));return n=e?i.replace(/^ +| +$/gm,"").replace(/ +/g," ").replace(/(\r\n)/g,"\n").replace(/\n\n\n+/g,"\n\n"):i.replace(/\s+/gi," "),o.copySafeness(t,n)},e.title=function(t){var e=(t=a(t,"")).split(" ").map((function(t){return s(t)}));return o.copySafeness(t,e.join(" "))},e.trim=u,e.truncate=function(t,e,n,i){var r=t;if(e=e||255,(t=a(t,"")).length<=e)return t;if(n)t=t.substring(0,e);else{var s=t.lastIndexOf(" ",e);-1===s&&(s=e),t=t.substring(0,s)}return t+=null!=i?i:"...",o.copySafeness(r,t)},e.upper=function(t){return(t=a(t,"")).toUpperCase()},e.urlencode=function(t){var e=encodeURIComponent;return i.isString(t)?e(t):(i.isArray(t)?t:i._entries(t)).map((function(t){var n=t[0],i=t[1];return e(n)+"="+e(i)})).join("&")};var p=/^(?:\(|<|<)?(.*?)(?:\.|,|\)|\n|>)?$/,d=/^[\w.!#$%&'*+\-\/=?\^`{|}~]+@[a-z\d\-]+(\.[a-z\d\-]+)+$/i,h=/^https?:\/\/.*$/,m=/^www\./,f=/\.(?:org|net|com)(?:\:|\/|$)/;e.urlize=function(t,e,n){r(e)&&(e=1/0);var i=!0===n?' rel="nofollow"':"";return t.split(/(\s+)/).filter((function(t){return t&&t.length})).map((function(t){var n=t.match(p),o=n?n[1]:t,a=o.substr(0,e);return h.test(o)?'"+a+"":m.test(o)?'"+a+"":d.test(o)?''+o+"":f.test(o)?'"+a+"":t})).join("")},e.wordcount=function(t){var e=(t=a(t,""))?t.match(/\w+/g):null;return e?e.length:null},e.float=function(t,e){var n=parseFloat(t);return r(n)?e:n};var y=o.makeMacro(["value","default","base"],[],(function(t,e,n){void 0===n&&(n=10);var i=parseInt(t,n);return r(i)?e:i}));e.int=y,e.d=e.default,e.e=e.escape},function(t,e,n){"use strict";function i(t,e){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},i(t,e)}var o=function(t){var e,n;function o(e){var n;return(n=t.call(this)||this).precompiled=e||{},n}return n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,i(e,n),o.prototype.getSource=function(t){return this.precompiled[t]?{src:{type:"code",obj:this.precompiled[t]},path:t}:null},o}(n(6));t.exports={PrecompiledLoader:o}},function(t,e,n){"use strict";var i=n(2).SafeString;e.callable=function(t){return"function"==typeof t},e.defined=function(t){return void 0!==t},e.divisibleby=function(t,e){return t%e==0},e.escaped=function(t){return t instanceof i},e.equalto=function(t,e){return t===e},e.eq=e.equalto,e.sameas=e.equalto,e.even=function(t){return t%2==0},e.falsy=function(t){return!t},e.ge=function(t,e){return t>=e},e.greaterthan=function(t,e){return t>e},e.gt=e.greaterthan,e.le=function(t,e){return t<=e},e.lessthan=function(t,e){return t0)for(var o=t;oe;a+=n)i.push(a);return i},cycler:function(){return t=Array.prototype.slice.call(arguments),e=-1,{current:null,reset:function(){e=-1,this.current=null},next:function(){return++e>=t.length&&(e=0),this.current=t[e],this.current}};var t,e},joiner:function(t){return function(t){t=t||",";var e=!0;return function(){var n=e?"":t;return e=!1,n}}(t)}}}},function(t,e,n){var i=n(4);t.exports=function(t,e){function n(t,e){if(this.name=t,this.path=t,this.defaultEngine=e.defaultEngine,this.ext=i.extname(t),!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");this.ext||(this.name+=this.ext=("."!==this.defaultEngine[0]?".":"")+this.defaultEngine)}return n.prototype.render=function(e,n){t.render(this.name,e,n)},e.set("view",n),e.set("nunjucksEnv",t),t}},function(t,e,n){"use strict";var i=n(4),o=n(4),a=n(0)._prettifyError,r=n(5),s=n(7).Environment,c=n(24);function l(t,e){return!!Array.isArray(e)&&e.some((function(e){return t.match(e)}))}function u(t,e){(e=e||{}).isString=!0;var n=e.env||new s([]),i=e.wrapper||c;if(!e.name)throw new Error('the "name" option is required when compiling a string');return i([p(t,e.name,n)],e)}function p(t,e,n){var i,o=(n=n||new s([])).asyncFilters,c=n.extensionsList;e=e.replace(/\\/g,"/");try{i=r.compile(t,o,c,e,n.opts)}catch(t){throw a(e,!1,t)}return{name:e,template:i}}t.exports={precompile:function(t,e){var n=(e=e||{}).env||new s([]),a=e.wrapper||c;if(e.isString)return u(t,e);var r=i.existsSync(t)&&i.statSync(t),d=[],h=[];if(r.isFile())d.push(p(i.readFileSync(t,"utf-8"),e.name||t,n));else if(r.isDirectory()){!function n(a){i.readdirSync(a).forEach((function(r){var s=o.join(a,r),c=s.substr(o.join(t,"/").length),u=i.statSync(s);u&&u.isDirectory()?l(c+="/",e.exclude)||n(s):l(c,e.include)&&h.push(s)}))}(t);for(var m=0;mt.length||o>0&&r>=i||o<0&&r<=i);r+=o)a.push(n.memberLookup(t,r));return a}function h(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var m={pop:function(t){if(void 0===t)return this.pop();if(t>=this.length||t<0)throw new Error("KeyError");return this.splice(t,1)},append:function(t){return this.push(t)},remove:function(t){for(var e=0;e{"use strict";__webpack_require__.d(__webpack_exports__,{W:()=>BaseRemoteElement});var lit__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(670),lit_decorators_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(837),ha_nunjucks__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(703),_models_constants__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(290),_models_maps__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(63),_utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(988),__decorate=function(t,e,n,i){var o,a=arguments.length,r=a<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(r=(a<3?o(r):a>3?o(e,n,r):o(e,n))||r);return a>3&&r&&Object.defineProperty(e,n,r),r};class BaseRemoteElement extends lit__WEBPACK_IMPORTED_MODULE_0__.WF{constructor(){super(...arguments),this.icons=[],this.renderRipple=!0,this.value=0,this.getValueFromHass=!0,this.unitOfMeasurement="",this.swiping=!1,this.pointers=0,this.fireMouseEvent=!0}fireHapticEvent(t){if(this.renderTemplate(this.config.haptics)??1){const e=new Event("haptic",{bubbles:!0,composed:!0});e.detail=t,window.dispatchEvent(e)}}endAction(){this.momentaryStart=void 0,this.momentaryEnd=void 0,this.swiping=!1,this.pointers=0,this.initialX=void 0,this.initialY=void 0,this.currentX=void 0,this.currentY=void 0,this.deltaX=void 0,this.deltaY=void 0}sendAction(t,e=this.config){let n;switch(t){case"drag_action":n=e.drag_action;break;case"multi_drag_action":n=e.multi_drag_action??e.drag_action;break;case"momentary_start_action":n=e.momentary_start_action;break;case"momentary_end_action":n=e.momentary_end_action;break;case"multi_hold_action":n=e.multi_hold_action??e.hold_action??e.multi_tap_action??e.tap_action;break;case"multi_double_tap_action":n=e.multi_double_tap_action??e.double_tap_action??e.multi_tap_action??e.tap_action;break;case"multi_tap_action":n=e.multi_tap_action??e.tap_action;break;case"hold_action":n=e.hold_action??e.tap_action;break;case"double_tap_action":n=e.double_tap_action??e.tap_action;break;default:n=e.tap_action}if(!n)return clearTimeout(this.getValueFromHassTimer),this.getValueFromHass=!0,void this.requestUpdate();if(n=this.deepRenderTemplate(n),n&&this.handleConfirmation(n))try{switch(n.action){case"navigate":this.navigate(n);break;case"url":this.url(n);break;case"assist":this.assist(n);break;case"more-info":this.moreInfo(n);break;case"toggle":this.toggle(n);break;case"call-service":case"perform-action":this.callService(n);break;case"source":this.source(n);break;case"key":this.key(n,t);break;case"fire-dom-event":this.fireDomEvent(n);break;case"eval":this.eval(n);break;case"textbox":case"search":case"keyboard":this.keyboard(n)}}catch(t){throw this.endAction(),t}else this.dispatchEvent(new CustomEvent("confirmation-failed"))}key(t,e){switch(t.platform){case"Unified Remote":break;case"Kodi":this.hass.callService("kodi","call_method",{entity_id:t.media_player_id,method:t.key});break;case"LG webOS":this.hass.callService("webostv","button",{entity_id:t.media_player_id,button:t.key});break;default:{const n={entity_id:t.remote_id??"",command:t.key??""};!e.includes("hold_action")||this.config.hold_action&&"none"!=this.config.hold_action.action||(n.hold_secs=1),this.hass.callService("remote","send_command",n);break}}}source(t){switch(t.platform){case"Unified Remote":break;case"Fire TV":case"Roku":case"Kodi":case"Apple TV":case"Samsung TV":case"LG webOS":this.hass.callService("media_player","select_source",{entity_id:t.media_player_id,source:t.source});break;case"Sony BRAVIA":this.hass.callService("media_player","play_media",{entity_id:t.media_player_id,media_content_id:t.source,media_content_type:"app"});break;default:this.hass.callService("remote","turn_on",{entity_id:t.remote_id,activity:t.source})}}callService(t){const[e,n]=(t.perform_action??t.service).split(".");this.hass.callService(e,n,t.data,t.target)}navigate(t){const e=t.navigation_path??"",n=t.navigation_replace??!1;if(e.includes("//"))return void console.error('Protocol detected in navigation path. To navigate to another website use the action "url" with the key "url_path" instead.');1==n?window.history.replaceState(window.history.state?.root?{root:!0}:null,"",e):window.history.pushState(null,"",e);const i=new Event("location-changed",{bubbles:!1,cancelable:!0,composed:!1});i.detail={replace:1==n},window.dispatchEvent(i)}url(t){let e=t.url_path??"";e.includes("//")||(e=`https://${e}`),window.open(e)}assist(t){this.hass?.auth?.external?.config?.hasAssist?this.hass?.auth?.external?.fireMessage({type:"assist/show",payload:{pipeline_id:t.pipeline_id,start_listening:t.start_listening}}):window.open(`${window.location.href}?conversation=1`,"_self")}moreInfo(t){const e=new Event("hass-more-info",{bubbles:!0,cancelable:!0,composed:!0});e.detail={entityId:t.target?.entity_id??this.config.entity_id},this.dispatchEvent(e)}toggle(t){const e={...t.data,...t.target};if(Array.isArray(e.entity_id))for(const t of e.entity_id)this.toggleSingle(t);else e.entity_id?this.toggleSingle(e.entity_id):this.hass.callService("homeassistant","toggle",e)}toggleSingle(t){const e=["closed","locked","off"].includes(this.hass.states[t].state);let n,i=t.split(".")[0];switch(i){case"lock":n=e?"unlock":"lock";break;case"cover":n=e?"open_cover":"close_cover";break;case"button":case"input_button":n="press";break;case"scene":n="turn_on";break;case"valve":n=e?"open_valve":"close_valve";break;default:i="homeassistant",n=e?"turn_on":"turn_off"}this.hass.callService(i,n,{entity_id:t})}keyboard(t){const e=new Event("keyboard-dialog-open",{composed:!0,bubbles:!0});e.detail=t,this.getRootNode().querySelector("keyboard-dialog").shadowRoot?.querySelector("dialog")?.dispatchEvent(e)}fireDomEvent(t){const e=new Event(t.event_type??"ll-custom",{composed:!0,bubbles:!0});e.detail=t,this.dispatchEvent(e)}eval(action){eval(action.eval??"")}handleConfirmation(t){if(t.confirmation){let e=`Are you sure you want to run action '${t.action}'?`;return 1==t.confirmation?(this.fireHapticEvent("warning"),confirm(e)):(t.confirmation?.text&&(e=t.confirmation.text),!!t.confirmation?.exemptions?.map((t=>t.user)).includes(this.hass.user?.id)||(this.fireHapticEvent("warning"),confirm(e)))}return!0}firstUpdated(){this.addEventListener("confirmation-failed",this.confirmationFailed)}confirmationFailed(){clearTimeout(this.getValueFromHassTimer),this.getValueFromHass=!0,this.requestUpdate()}setValue(){if(this.entityId=this.renderTemplate(this.config.entity_id),this.unitOfMeasurement=this.renderTemplate(this.config.unit_of_measurement)??"",this.getValueFromHass&&this.entityId)if(clearInterval(this.valueUpdateInterval),this.valueUpdateInterval=void 0,this.valueAttribute=this.renderTemplate(this.config.value_attribute??"state").toLowerCase(),this.hass.states[this.entityId])if("state"==this.valueAttribute)this.value=this.hass.states[this.entityId].state;else{let t;const e=this.valueAttribute.match(/\[\d+\]$/);if(e){const n=parseInt(e[0].replace(/\[|\]/g,""));this.valueAttribute=this.valueAttribute.replace(e[0],""),t=this.hass.states[this.entityId]?.attributes?.[this.valueAttribute],t=t&&Array.isArray(t)&&t.length?t[n]:void 0}else t=this.hass.states[this.entityId]?.attributes?.[this.valueAttribute];if(null!=t||"elapsed"==this.valueAttribute)switch(this.valueAttribute){case"brightness":this.value=Math.round(100*parseInt(t??0)/255);break;case"media_position":try{const e=()=>{"playing"==this.hass.states[this.entityId].state?this.value=Math.min(Math.floor(Math.floor(t)+(Date.now()-Date.parse(this.hass.states[this.entityId].attributes?.media_position_updated_at))/1e3),Math.floor(this.hass.states[this.entityId].attributes?.media_duration)):this.value=t};e(),this.valueUpdateInterval=setInterval(e,500)}catch(e){console.error(e),this.value=t}break;case"elapsed":if(this.entityId.startsWith("timer.")){if("idle"==this.hass.states[this.entityId].state)this.value=0;else{const t=this.hass.states[this.entityId].attributes?.duration.split(":"),e=3600*parseInt(t[0])+60*parseInt(t[1])+parseInt(t[2]),n=Date.parse(this.hass.states[this.entityId].attributes?.finishes_at);try{const t=()=>{if("active"==this.hass.states[this.entityId].state){const t=(n-Date.now())/1e3,i=Math.floor(e-t);this.value=Math.min(i,e)}else{const t=this.hass.states[this.entityId].attributes?.remaining.split(":"),n=3600*parseInt(t[0])+60*parseInt(t[1])+parseInt(t[2]);this.value=Math.floor(e-n)}};t(),this.valueUpdateInterval=setInterval(t,500)}catch(t){console.error(t),this.value=0}}break}default:this.value=t}else this.value=t}else this.value=void 0}renderTemplate(t,e){let n=0;this.momentaryStart&&this.momentaryEnd&&(n=(this.momentaryEnd-this.momentaryStart)/1e3),e={VALUE:this.value,HOLD_SECS:n??0,UNIT:this.unitOfMeasurement,value:this.value,hold_secs:n??0,unit:this.unitOfMeasurement,initialX:this.initialX,initialY:this.initialY,currentX:this.currentX,currentY:this.currentY,deltaX:this.deltaX,deltaY:this.deltaY,config:{...this.config,entity:this.entityId,attribute:this.valueAttribute},...e};let i=(e={render:t=>this.renderTemplate(t,e),...e}).value;null!=i&&"number"==typeof i&&null!=this.precision&&(i=Number(i).toFixed(this.precision),e={...e,VALUE:i,value:i});try{const n=(0,ha_nunjucks__WEBPACK_IMPORTED_MODULE_2__.X)(this.hass,t,e);if(n!=t)return n}catch(t){return console.error(t),""}if("string"==typeof t&&/VALUE|UNIT|HOLD_SECS/g.test(t))for(const n of["VALUE","HOLD_SECS","UNIT"]){if(t==n)return e[n];t.includes(n)&&(t=t.replace(new RegExp(n,"g"),e[n]??""))}return t}deepRenderTemplate(t,e){const n=structuredClone(t),i=(0,_utils__WEBPACK_IMPORTED_MODULE_4__.b$)(n);for(const t of i)(0,_utils__WEBPACK_IMPORTED_MODULE_4__.HD)(n,t,this.renderTemplate((0,_utils__WEBPACK_IMPORTED_MODULE_4__.vz)(n,t),e));return n}resetGetValueFromHass(){const t=this.renderTemplate(this.config.value_from_hass_delay??_models_constants__WEBPACK_IMPORTED_MODULE_5__.s$);this.getValueFromHassTimer=setTimeout((()=>{this.getValueFromHass=!0,this.requestUpdate()}),t)}buildIcon(t,e){t=this.renderTemplate(t??"",e);let n=lit__WEBPACK_IMPORTED_MODULE_0__.qy``;if(t)if(t.includes(":"))n=lit__WEBPACK_IMPORTED_MODULE_0__.qy``;else{const e=(this.icons??[]).filter((e=>e.name==t))[0]??_models_maps__WEBPACK_IMPORTED_MODULE_3__.o$.filter((e=>e.name==t))[0];n=lit__WEBPACK_IMPORTED_MODULE_0__.qy``}return lit__WEBPACK_IMPORTED_MODULE_0__.qy`
${n}
`}buildLabel(t,e){if(t){const n=this.renderTemplate(t,e);if(n)return lit__WEBPACK_IMPORTED_MODULE_0__.qy`
${n}
`}return""}buildRipple(){return this.renderRipple?lit__WEBPACK_IMPORTED_MODULE_0__.qy``:""}buildStyles(t,e){return t?lit__WEBPACK_IMPORTED_MODULE_0__.qy``:""}onPointerDown(t){this.pointers++,this.initialX||this.initialY||(this.initialX=t.clientX,this.initialY=t.clientY,this.currentX=t.clientX,this.currentY=t.clientY,this.deltaX=0,this.deltaY=0)}onPointerUp(t){}onPointerMove(t){this.currentX&&this.currentY&&t.isPrimary&&(this.deltaX=t.clientX-this.currentX,this.deltaY=t.clientY-this.currentY,this.currentX=t.clientX,this.currentY=t.clientY)}onPointerCancel(t){this.endAction(),this.swiping=!0,this.toggleRipple()}onPointerLeave(t){"mouse"==t.pointerType&&this.initialX&&this.initialY&&this.onPointerCancel(t)}onContextMenu(t){"mouse"!=t.pointerType&&(t.preventDefault(),t.stopPropagation())}toggleRipple(){this.cancelRippleToggle(),this.renderRippleTransition=setTimeout((()=>this.rippleTransition=!1),400),this.renderRippleOff=setTimeout((()=>this.renderRipple=!1),800),this.renderRippleOn=setTimeout((()=>this.cancelRippleToggle()),850)}cancelRippleToggle(){clearTimeout(this.renderRippleOff),clearTimeout(this.renderRippleOn),clearTimeout(this.renderRippleTransition),this.renderRippleOff=void 0,this.renderRippleOn=void 0,this.renderRippleTransition=void 0,this.rippleTransition=!0,this.renderRipple=!0}static get styles(){return lit__WEBPACK_IMPORTED_MODULE_0__.AH`:host{display:flex;flex-flow:column;place-content:center space-evenly;align-items:center;position:relative;border:none;border-radius:10px;padding:0;box-sizing:border-box;outline:0;overflow:visible;font-size:inherit;color:inherit;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}md-ripple{height:var(--ha-ripple-height,100%);width:var(--ha-ripple-width,100%);top:var(--ha-ripple-top,0);left:var(--ha-ripple-left,0);--md-ripple-hover-opacity:var(--ha-ripple-hover-opacity, 0.08);--md-ripple-pressed-opacity:var( --ha-ripple-pressed-opacity, 0.12 );--md-ripple-hover-color:var( @@ -47,4 +47,4 @@ var(--primary-background-color) ) ) - );--mdc-icon-size:var(--size, 32px)}`]}};un([(0,e.MZ)()],pn.prototype,"config",void 0),un([(0,e.wk)()],pn.prototype,"showTooltip",void 0),un([(0,e.wk)()],pn.prototype,"thumbOffset",void 0),un([(0,e.wk)()],pn.prototype,"sliderOn",void 0),un([(0,e.wk)()],pn.prototype,"currentValue",void 0),un([(0,e.wk)()],pn.prototype,"sliderWidth",void 0),un([(0,e.wk)()],pn.prototype,"sliderHeight",void 0),pn=un([(0,e.EM)("remote-slider")],pn);var dn=function(t,e,n,i){var o,a=arguments.length,r=a<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(r=(a<3?o(r):a>3?o(e,n,r):o(e,n))||r);return a>3&&r&&Object.defineProperty(e,n,r),r};let hn=class extends tn.W{constructor(){super(...arguments),this.clickCount=0,this.hold=!1,this.holdStart=!1,this.holdMove=!1,this.fireDragAction=!0}onClick(t){t.stopImmediatePropagation(),this.clickCount++;const e=this.getMultiPrefix();if("none"!=this.renderTemplate(this.config.double_tap_action?.action??"none")||"none"!=this.renderTemplate(this.config.multi_double_tap_action?.action??"none")){const t=(this.pointers>2?"multi_":"")+"double_tap_action";if(this.clickCount>1)this.fireHapticEvent("success"),this.sendAction(t),this.endAction();else if(!this.clickTimer){const n=this.renderTemplate(this.config[t]?.double_tap_window??this.config.double_tap_action?.double_tap_window)??Fe.jc;this.clickTimer=setTimeout((()=>{this.fireHapticEvent("light"),this.sendAction(`${e}tap_action`),this.endAction()}),n)}}else this.fireHapticEvent("light"),this.sendAction(`${e}tap_action`),this.endAction()}onPointerDown(t){super.onPointerDown(t),this.cancelRippleToggle(),this.holdStart=!0,this.swiping=!1,this.direction||"none"==this.renderTemplate(this.config.momentary_start_action?.action??"none")?this.direction||"none"==this.renderTemplate(this.config.momentary_end_action?.action??"none")?this.holdTimer||this.setHoldTimer():(this.fireHapticEvent("light"),this.momentaryStart=performance.now()):(this.fireHapticEvent("light"),this.momentaryStart=performance.now(),this.sendAction("momentary_start_action"))}onPointerUp(t){if(this.direction||"none"==this.renderTemplate(this.config.momentary_end_action?.action??"none"))if(this.direction||"none"==this.renderTemplate(this.config.momentary_start_action?.action??"none"))if(this.hold||this.holdMove){t.stopImmediatePropagation(),t.cancelable&&t.preventDefault();let e=!1;this.pointers>1&&(e=!0),this.endAction(),e&&(this.holdMove=!0)}else this.holdMove||"isPrimary"in t&&!t.isPrimary||this.onClick(t);else this.endAction();else this.momentaryEnd=performance.now(),this.fireHapticEvent("selection"),this.sendAction("momentary_end_action"),this.endAction();this.toggleRipple()}onPointerMove(t){if(!this.initialX||!this.initialY||!this.holdStart)return;super.onPointerMove(t);const e=this.getMultiPrefix(),n=(this.currentX??0)-this.initialX,i=(this.currentY??0)-this.initialY;if("none"!=this.renderTemplate(this.config[`${e}drag_action`]?.action??"none")){const t=.5;if((this.holdMove||Math.abs(Math.abs(n)-Math.abs(i))>t)&&this.fireDragAction){clearTimeout(this.holdTimer),this.holdTimer=void 0,this.holdMove=!0;const t=this.renderTemplate(this.config[`${e}drag_action`]?.repeat_delay??0);t&&(this.fireDragAction=!1,setTimeout((()=>{this.fireDragAction=!0}),t)),this.sendAction(`${e}drag_action`)}}else{const t=2;Math.abs(Math.abs(n)-Math.abs(i))>t&&(Math.abs(n)>Math.abs(i)?this.direction=n<0?"left":"right":this.direction=i<0?"up":"down",this.holdMove||(this.fireHapticEvent("light"),this.sendAction(`${e}tap_action`,this.getActions()),this.holdMove=!0,this.holdTimer&&(clearTimeout(this.holdTimer),this.holdTimer=void 0,this.setHoldTimer())))}}onPointerCancel(t){"none"!=this.renderTemplate(this.config.momentary_start_action?.action??"none")&&"none"!=this.renderTemplate(this.config.momentary_end_action?.action??"none")&&(this.momentaryEnd=performance.now(),this.sendAction("momentary_end_action")),super.onPointerCancel(t)}endAction(){clearTimeout(this.clickTimer),this.clickTimer=void 0,this.clickCount=0,clearTimeout(this.holdTimer),clearInterval(this.holdInterval),this.holdTimer=void 0,this.holdInterval=void 0,this.hold=!1,this.holdStart=!1,this.holdMove=!1,this.direction=void 0,super.endAction()}getActions(){return this.direction?this.config[this.direction]:this.config}getMultiPrefix(){return this.pointers>1?"multi_":""}setHoldTimer(){const t=`${this.getMultiPrefix()}hold_action`,e=this.getActions(),n=this.renderTemplate(e[t]?.hold_time??Fe.At);this.holdTimer=setTimeout((()=>{this.hold=!0;const t=this.getActions(),e=this.getMultiPrefix();let n="repeat"==this.renderTemplate(t.hold_action?.action),i=this.renderTemplate(t.hold_action?.repeat_delay??Fe.a3);"multi_"==e&&t.multi_hold_action&&(n="repeat"==this.renderTemplate(t.multi_hold_action?.action),i=this.renderTemplate(t.multi_hold_action?.repeat_delay??Fe.a3)),n?this.holdInterval||(this.holdInterval=setInterval((()=>{this.fireHapticEvent("selection"),this.sendAction(`${this.getMultiPrefix()}tap_action`,this.getActions())}),i)):(this.fireHapticEvent("medium"),this.sendAction(`${e}hold_action`,t))}),n)}render(){return this.setValue(),t.qy`
${this.buildRipple()}
${this.buildStyles(this.config.styles)}`}static get styles(){return[super.styles,t.AH`:host{display:contents;--mdc-ripple-press-opacity:0.04}toucharea{border-radius:32px;flex-grow:1;height:250px;width:-moz-available;width:-webkit-fill-available;width:fill-available;background:var(--lovelace-background,var(--primary-background-color,#6f767d));touch-action:none;text-align:center;position:relative;overflow:hidden;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:space-between}.toucharea-row{min-height:var(--size,48px);display:flex;flex-direction:row;flex-wrap:nowrap;width:-moz-available;width:-webkit-fill-available;width:fill-available;justify-content:space-around;align-items:center}`]}};dn([(0,e.MZ)()],hn.prototype,"config",void 0),hn=dn([(0,e.EM)("remote-touchpad")],hn);let mn=class extends tn.W{render(){return this.setValue(),t.qy`${this.buildIcon(this.config.icon)}${this.buildLabel(this.config.label)}${this.buildStyles(this.config.styles)}`}};mn=dn([(0,e.EM)("remote-icon-label")],mn);var fn=function(t,e,n,i){var o,a=arguments.length,r=a<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(r=(a<3?o(r):a>3?o(e,n,r):o(e,n))||r);return a>3&&r&&Object.defineProperty(e,n,r),r};console.info("%c UNIVERSAL-REMOTE-CARD v4.3.7","color: white; font-weight: bold; background: green");class yn extends t.WF{constructor(){super(...arguments),this.DEFAULT_ACTIONS=[],this.nRows=0,this.nColumns=0,this.nPads=0,this.editMode=!1,this.rtl=!1}static get properties(){return{hass:{},config:{}}}static getConfigElement(){return document.createElement("universal-remote-card-editor")}static getStubConfig(){return{type:"custom:android-tv-card",rows:[]}}getCardSize(){let t=this.config.rows?.length??0;return this.config.title&&(t+=1),t}async setConfig(t){if(!t)throw new Error("Invalid configuration");this.config=t}updateElementConfig(t){if(!Object.keys(t).length)return t;const e=structuredClone(t),n={config:{...this.config,entity:this.renderTemplate(e.entity_id??this.config.remote_id??this.config.media_player_id??this.config.keyboard_id??""),attribute:this.renderTemplate(e.value_attribute??"state")}};for(const t of Ne)if(e[t]){const i=e[t]??{};switch(this.renderTemplate(i.action,n)){case"keyboard":case"textbox":case"search":i.keyboard_id=i.keyboard_id??this.config.keyboard_id;case"key":case"source":i.remote_id=i.remote_id??this.config.remote_id,i.media_player_id=i.media_player_id??this.config.media_player_id,i.platform=i.platform??this.config.platform;break;case"perform-action":{const[t,o]=this.renderTemplate(i.perform_action??"",n).split("."),a=i.target??{};if(!(a.entity_id||a.device_id||a.area_id||a.label_id)){const o=this.renderTemplate(e.entity_id??"",n);switch(t){case"remote":a.entity_id=o.startsWith("remote")?e.entity_id:this.config.remote_id;break;case"media_player":case"androidtv":case"kodi":case"denonavr":case"webostv":a.entity_id=o.startsWith("media_player")?e.entity_id:this.config.media_player_id;break;case"unified_remote":i.data=i.data??{},i.data.target=i.data.target??e.entity_id??this.config.remote_id??this.config.media_player_id??this.config.keyboard_id;break;default:a.entity_id=e.entity_id}}i.target=a;break}}e[t]=i}e.haptics=e.haptics??this.config.haptics??!0,this.config.double_tap_window&&(e.double_tap_action&&(e.double_tap_action.double_tap_window=e.double_tap_action?.double_tap_window??this.config.double_tap_window??Fe.jc),e.multi_double_tap_action&&(e.multi_double_tap_action.double_tap_window=e.multi_double_tap_action.double_tap_window??this.config.double_tap_window??Fe.jc)),this.config.hold_time&&(e.hold_action&&(e.hold_action.hold_time=e.hold_action?.hold_time??this.config.hold_time??Fe.At),e.multi_hold_action&&(e.multi_hold_action.hold_time=e.multi_hold_action?.hold_time??this.config.hold_time??Fe.At)),this.config.repeat_delay&&("repeat"==e.hold_action?.action&&(e.hold_action.repeat_delay=e.hold_action.repeat_delay??this.config.repeat_delay??Fe.a3),e.multi_hold_action&&"repeat"==e.multi_hold_action?.action&&(e.multi_hold_action.repeat_delay=e.multi_hold_action.repeat_delay??this.config.repeat_delay??Fe.a3));const i=this.renderTemplate(e.type,n);if("slider"==i&&"slider"==this.renderTemplate(e.name,n)?e.entity_id=e.entity_id??this.config.media_player_id:e.entity_id=e.entity_id??(Array.isArray(e.tap_action?.target?.entity_id)?e.tap_action?.target?.entity_id?.[0]:e.tap_action?.target?.entity_id)??this.config.remote_id??this.config.media_player_id??this.config.keyboard_id,"touchpad"==i)for(const t of Ve){const n=e[t]??{};n.entity_id=e.entity_id,n.value_attribute=e.value_attribute,e[t]=this.updateElementConfig(n)}return e.card=this.config,e}getElementConfig(t){const e=[...this.config.custom_actions??[],...this.customActionsFromFile??[]].filter((e=>e.name==t))[0];return e?e.autofill_entity_id??this.config.autofill_entity_id??Fe.$6?this.updateElementConfig(e):e:this.updateElementConfig(this.DEFAULT_ACTIONS.filter((e=>e.name==t))[0]??{})}renderTemplate(t,e){e={render:t=>this.renderTemplate(t,e),...e};try{const i=(0,n.X)(this.hass,t,e);if(i!=t)return i}catch(t){return console.error(t),""}return t}buildRow(e){this.nRows++;const n=`row-${this.nRows}`;return t.qy`
${e}
`}buildColumn(e){this.nColumns++;const n=`column-${this.nColumns}`;return t.qy`
${e}
`}buildPad(e){this.nPads++;const n=`pad-${this.nPads}`;return t.qy`
${e.map((t=>this.buildButton(t,this.getElementConfig(t))))}
`}buildButton(e,n){return Object.keys(n).length?t.qy``:t.qy`
`}buildSlider(e,n){return t.qy``}buildTouchpad(e,n){return t.qy``}buildVolumeButtons(){return[this.buildButton("volume_down",this.getElementConfig("volume_down")),this.buildButton("volume_mute",this.getElementConfig("volume_mute")),this.buildButton("volume_up",this.getElementConfig("volume_up"))]}buildNavButtons(){const t=[this.buildButton("left",this.getElementConfig("left")),this.buildButton("center",this.getElementConfig("center")),this.buildButton("right",this.getElementConfig("right"))];return this.rtl&&t.reverse(),this.buildColumn([this.buildRow([this.buildButton("up",this.getElementConfig("up"))]),this.buildRow(t),this.buildRow([this.buildButton("down",this.getElementConfig("down"))])])}buildElements(t,e=!1,n={}){"string"==typeof t&&(t=[t]);const i=[];for(let o of t)if(o=this.renderTemplate(o,n),"string"==typeof o&&o.includes("- ")&&(o=Me(o)),"object"==typeof o&&null!=o)i.push(this.buildElements(o,!e,n));else switch(o){case"volume_buttons":{const t=this.buildVolumeButtons();e&&t.reverse(),i.push(...t);break}case"navigation_buttons":i.push(this.buildNavButtons());break;case"dpad":i.push(this.buildPad(["","up","","left","center","right","","down",""]));break;case"numpad":i.push(this.buildPad(["n7","n8","n9","n4","n5","n6","n1","n2","n3"]));break;case"xpad":i.push(this.buildPad(["","y","","x","","b","","a",""]));break;case"npad":i.push(this.buildPad(["","x","","y","","a","","b",""]));break;default:{const t=this.getElementConfig(o);switch(t.type){case"slider":i.push(this.buildSlider(o,t));break;case"touchpad":i.push(this.buildTouchpad(o,t));break;default:i.push(this.buildButton(o,t))}break}}return e?this.buildColumn(i):this.buildRow(i)}buildDialog(){return t.qy``}fetchCustomActionsFromFile(t){if(!this.customActionsFromFile&&t){t=`${t.startsWith("/")?"":"/"}${t}`;try{const e=t.split(".").pop()?.toLowerCase();this.hass.fetchWithAuth(t).then((t=>"json"==e?t.json():t.text())).then((t=>{const n="json"==e?t:Me(t);if(!Array.isArray(n))throw TypeError(n);this.customActionsFromFile=n,this.requestUpdate()}))}catch(e){console.error(`File ${t} is not a valid JSON or YAML array\n${e}`),this.customActionsFromFile=[]}}}render(){if(!this.config||!this.hass)return t.qy``;const e={config:{...this.config,entity:this.renderTemplate(this.config.remote_id??this.config.media_player_id??this.config.keyboard_id??""),attribute:"state"}};this.fetchCustomActionsFromFile(this.renderTemplate(this.config.custom_actions_file??"")),this.editMode=Boolean(document.querySelector("home-assistant")?.shadowRoot?.querySelector("hui-dialog-edit-card")?.shadowRoot?.querySelector("ha-dialog")),this.rtl="rtl"==getComputedStyle(this).direction;const n=this.renderTemplate(this.config.platform??"Android TV",e),[i,o]=(0,je.XO)(n);this.DEFAULT_ACTIONS=[...i,...o];const a=[];this.nRows=0,this.nColumns=0,this.nPads=0;for(const t of this.config.rows??[]){const n=this.buildElements(t,!1,e);a.push(n)}const r=this.config.styles?t.qy``:"",s=window.PointerEvent?"":t.qy``;return t.qy`${a}${this.buildDialog()}${r}${s}`}static get styles(){return t.AH`ha-card{display:flex;flex-direction:column;align-items:center;padding:12px;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}.row{display:flex;flex-wrap:nowrap;flex-direction:row;width:-moz-available;width:-webkit-fill-available;width:fill-available;flex:1;padding:4px;gap:8px;justify-content:space-evenly;align-items:center}.column{display:flex;flex-wrap:nowrap;flex-direction:column;width:-moz-available;width:-webkit-fill-available;width:fill-available;flex:1;padding:4px;justify-content:space-evenly;align-items:center}.edit-mode{outline:0}@media (hover:hover){.edit-mode :hover:not(:has(div:hover)){outline:1px dashed var(--red-color)}}.empty-button{width:var(--size,48px);height:var(--size,48px);position:relative}.button-pad{display:grid;direction:ltr;grid-template-rows:repeat(3,var(--size,48px));grid-template-columns:repeat(3,var(--size,48px));grid-gap:8px 16px}`}}fn([(0,e.MZ)()],yn.prototype,"hass",void 0),fn([(0,e.MZ)()],yn.prototype,"config",void 0),customElements.define("universal-remote-card-editor",Ke),customElements.define("android-tv-card",yn),window.customCards=window.customCards||[],window.customCards.push({type:"android-tv-card",name:"Universal Remote Card",description:"Super customizable universal remote card"}),window.structuredClone||(window.structuredClone=t=>JSON.parse(JSON.stringify(t))),window.performance||(window.performance=window.Date)})()})(); \ No newline at end of file + );--mdc-icon-size:var(--size, 32px)}`]}};un([(0,e.MZ)()],pn.prototype,"config",void 0),un([(0,e.wk)()],pn.prototype,"showTooltip",void 0),un([(0,e.wk)()],pn.prototype,"thumbOffset",void 0),un([(0,e.wk)()],pn.prototype,"sliderOn",void 0),un([(0,e.wk)()],pn.prototype,"currentValue",void 0),un([(0,e.wk)()],pn.prototype,"sliderWidth",void 0),un([(0,e.wk)()],pn.prototype,"sliderHeight",void 0),pn=un([(0,e.EM)("remote-slider")],pn);var dn=function(t,e,n,i){var o,a=arguments.length,r=a<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(r=(a<3?o(r):a>3?o(e,n,r):o(e,n))||r);return a>3&&r&&Object.defineProperty(e,n,r),r};let hn=class extends tn.W{constructor(){super(...arguments),this.clickCount=0,this.hold=!1,this.holdStart=!1,this.holdMove=!1,this.fireDragAction=!0}onClick(t){t.stopImmediatePropagation(),this.clickCount++;const e=this.getMultiPrefix();if("none"!=this.renderTemplate(this.config.double_tap_action?.action??"none")||"none"!=this.renderTemplate(this.config.multi_double_tap_action?.action??"none")){const t=(this.pointers>2?"multi_":"")+"double_tap_action";if(this.clickCount>1)this.fireHapticEvent("success"),this.sendAction(t),this.endAction();else if(!this.clickTimer){const n=this.renderTemplate(this.config[t]?.double_tap_window??this.config.double_tap_action?.double_tap_window)??Fe.jc;this.clickTimer=setTimeout((()=>{this.fireHapticEvent("light"),this.sendAction(`${e}tap_action`),this.endAction()}),n)}}else this.fireHapticEvent("light"),this.sendAction(`${e}tap_action`),this.endAction()}onPointerDown(t){super.onPointerDown(t),this.cancelRippleToggle(),this.holdStart=!0,this.swiping=!1,this.direction||"none"==this.renderTemplate(this.config.momentary_start_action?.action??"none")?this.direction||"none"==this.renderTemplate(this.config.momentary_end_action?.action??"none")?this.holdTimer||this.setHoldTimer():(this.fireHapticEvent("light"),this.momentaryStart=performance.now()):(this.fireHapticEvent("light"),this.momentaryStart=performance.now(),this.sendAction("momentary_start_action"))}onPointerUp(t){if(this.direction||"none"==this.renderTemplate(this.config.momentary_end_action?.action??"none"))if(this.direction||"none"==this.renderTemplate(this.config.momentary_start_action?.action??"none"))if(this.hold||this.holdMove){t.stopImmediatePropagation(),t.cancelable&&t.preventDefault();let e=!1;this.pointers>1&&(e=!0),this.endAction(),e&&(this.holdMove=!0)}else this.holdMove||"isPrimary"in t&&!t.isPrimary||this.onClick(t);else this.endAction();else this.momentaryEnd=performance.now(),this.fireHapticEvent("selection"),this.sendAction("momentary_end_action"),this.endAction();this.toggleRipple()}onPointerMove(t){if(!this.initialX||!this.initialY||!this.holdStart)return;super.onPointerMove(t);const e=this.getMultiPrefix(),n=(this.currentX??0)-this.initialX,i=(this.currentY??0)-this.initialY;if("none"!=this.renderTemplate(this.config[`${e}drag_action`]?.action??"none")){const t=.5;if((this.holdMove||Math.abs(Math.abs(n)-Math.abs(i))>t)&&this.fireDragAction){clearTimeout(this.holdTimer),this.holdTimer=void 0,this.holdMove=!0;const t=this.renderTemplate(this.config[`${e}drag_action`]?.repeat_delay??0);t&&(this.fireDragAction=!1,setTimeout((()=>{this.fireDragAction=!0}),t)),this.sendAction(`${e}drag_action`)}}else{const t=2;Math.abs(Math.abs(n)-Math.abs(i))>t&&(Math.abs(n)>Math.abs(i)?this.direction=n<0?"left":"right":this.direction=i<0?"up":"down",this.holdMove||(this.fireHapticEvent("light"),this.sendAction(`${e}tap_action`,this.getActions()),this.holdMove=!0,this.holdTimer&&(clearTimeout(this.holdTimer),this.holdTimer=void 0,this.setHoldTimer())))}}onPointerCancel(t){"none"!=this.renderTemplate(this.config.momentary_start_action?.action??"none")&&"none"!=this.renderTemplate(this.config.momentary_end_action?.action??"none")&&(this.momentaryEnd=performance.now(),this.sendAction("momentary_end_action")),super.onPointerCancel(t)}endAction(){clearTimeout(this.clickTimer),this.clickTimer=void 0,this.clickCount=0,clearTimeout(this.holdTimer),clearInterval(this.holdInterval),this.holdTimer=void 0,this.holdInterval=void 0,this.hold=!1,this.holdStart=!1,this.holdMove=!1,this.direction=void 0,super.endAction()}getActions(){return this.direction?this.config[this.direction]:this.config}getMultiPrefix(){return this.pointers>1?"multi_":""}setHoldTimer(){const t=`${this.getMultiPrefix()}hold_action`,e=this.getActions(),n=this.renderTemplate(e[t]?.hold_time??Fe.At);this.holdTimer=setTimeout((()=>{this.hold=!0;const t=this.getActions(),e=this.getMultiPrefix();let n="repeat"==this.renderTemplate(t.hold_action?.action),i=this.renderTemplate(t.hold_action?.repeat_delay??Fe.a3);"multi_"==e&&t.multi_hold_action&&(n="repeat"==this.renderTemplate(t.multi_hold_action?.action),i=this.renderTemplate(t.multi_hold_action?.repeat_delay??Fe.a3)),n?this.holdInterval||(this.holdInterval=setInterval((()=>{this.fireHapticEvent("selection"),this.sendAction(`${this.getMultiPrefix()}tap_action`,this.getActions())}),i)):(this.fireHapticEvent("medium"),this.sendAction(`${e}hold_action`,t))}),n)}render(){return this.setValue(),t.qy`
${this.buildRipple()}
${this.buildStyles(this.config.styles)}`}static get styles(){return[super.styles,t.AH`:host{display:contents;--mdc-ripple-press-opacity:0.04}toucharea{border-radius:32px;flex-grow:1;height:250px;width:-moz-available;width:-webkit-fill-available;width:fill-available;background:var(--lovelace-background,var(--primary-background-color,#6f767d));touch-action:none;text-align:center;position:relative;overflow:hidden;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:space-between}.toucharea-row{min-height:var(--size,48px);display:flex;flex-direction:row;flex-wrap:nowrap;width:-moz-available;width:-webkit-fill-available;width:fill-available;justify-content:space-around;align-items:center}`]}};dn([(0,e.MZ)()],hn.prototype,"config",void 0),hn=dn([(0,e.EM)("remote-touchpad")],hn);let mn=class extends tn.W{render(){return this.setValue(),t.qy`${this.buildIcon(this.config.icon)}${this.buildLabel(this.config.label)}${this.buildStyles(this.config.styles)}`}};mn=dn([(0,e.EM)("remote-icon-label")],mn);var fn=function(t,e,n,i){var o,a=arguments.length,r=a<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(o=t[s])&&(r=(a<3?o(r):a>3?o(e,n,r):o(e,n))||r);return a>3&&r&&Object.defineProperty(e,n,r),r};console.info("%c UNIVERSAL-REMOTE-CARD v4.3.8","color: white; font-weight: bold; background: green");class yn extends t.WF{constructor(){super(...arguments),this.DEFAULT_ACTIONS=[],this.nRows=0,this.nColumns=0,this.nPads=0,this.editMode=!1,this.rtl=!1}static get properties(){return{hass:{},config:{}}}static getConfigElement(){return document.createElement("universal-remote-card-editor")}static getStubConfig(){return{type:"custom:android-tv-card",rows:[]}}getCardSize(){let t=this.config.rows?.length??0;return this.config.title&&(t+=1),t}async setConfig(t){if(!t)throw new Error("Invalid configuration");this.config=t}updateElementConfig(t){if(!Object.keys(t).length)return t;const e=structuredClone(t),n={config:{...this.config,entity:this.renderTemplate(e.entity_id??this.config.remote_id??this.config.media_player_id??this.config.keyboard_id??""),attribute:this.renderTemplate(e.value_attribute??"state")}};for(const t of Ne)if(e[t]){const i=e[t]??{};switch(this.renderTemplate(i.action,n)){case"keyboard":case"textbox":case"search":i.keyboard_id=i.keyboard_id??this.config.keyboard_id;case"key":case"source":i.remote_id=i.remote_id??this.config.remote_id,i.media_player_id=i.media_player_id??this.config.media_player_id,i.platform=i.platform??this.config.platform;break;case"perform-action":{const[t,o]=this.renderTemplate(i.perform_action??"",n).split("."),a=i.target??{};if(!(a.entity_id||a.device_id||a.area_id||a.label_id)){const o=this.renderTemplate(e.entity_id??"",n);switch(t){case"remote":a.entity_id=o.startsWith("remote")?e.entity_id:this.config.remote_id;break;case"media_player":case"androidtv":case"kodi":case"denonavr":case"webostv":a.entity_id=o.startsWith("media_player")?e.entity_id:this.config.media_player_id;break;case"unified_remote":i.data=i.data??{},i.data.target=i.data.target??e.entity_id??this.config.remote_id??this.config.media_player_id??this.config.keyboard_id;break;default:a.entity_id=e.entity_id}}i.target=a;break}}e[t]=i}e.haptics=e.haptics??this.config.haptics??!0,this.config.double_tap_window&&(e.double_tap_action&&(e.double_tap_action.double_tap_window=e.double_tap_action?.double_tap_window??this.config.double_tap_window??Fe.jc),e.multi_double_tap_action&&(e.multi_double_tap_action.double_tap_window=e.multi_double_tap_action.double_tap_window??this.config.double_tap_window??Fe.jc)),this.config.hold_time&&(e.hold_action&&(e.hold_action.hold_time=e.hold_action?.hold_time??this.config.hold_time??Fe.At),e.multi_hold_action&&(e.multi_hold_action.hold_time=e.multi_hold_action?.hold_time??this.config.hold_time??Fe.At)),this.config.repeat_delay&&("repeat"==e.hold_action?.action&&(e.hold_action.repeat_delay=e.hold_action.repeat_delay??this.config.repeat_delay??Fe.a3),e.multi_hold_action&&"repeat"==e.multi_hold_action?.action&&(e.multi_hold_action.repeat_delay=e.multi_hold_action.repeat_delay??this.config.repeat_delay??Fe.a3));const i=this.renderTemplate(e.type,n);if("slider"==i&&"slider"==this.renderTemplate(e.name,n)?e.entity_id=e.entity_id??this.config.media_player_id:e.entity_id=e.entity_id??(Array.isArray(e.tap_action?.target?.entity_id)?e.tap_action?.target?.entity_id?.[0]:e.tap_action?.target?.entity_id)??this.config.remote_id??this.config.media_player_id??this.config.keyboard_id,"touchpad"==i)for(const t of Ve){const n=e[t]??{};n.entity_id=e.entity_id,n.value_attribute=e.value_attribute,e[t]=this.updateElementConfig(n)}return e.card=this.config,e}getElementConfig(t){const e=[...this.config.custom_actions??[],...this.customActionsFromFile??[]].filter((e=>e.name==t))[0];return e?e.autofill_entity_id??this.config.autofill_entity_id??Fe.$6?this.updateElementConfig(e):e:this.updateElementConfig(this.DEFAULT_ACTIONS.filter((e=>e.name==t))[0]??{})}renderTemplate(t,e){e={render:t=>this.renderTemplate(t,e),...e};try{const i=(0,n.X)(this.hass,t,e);if(i!=t)return i}catch(t){return console.error(t),""}return t}buildRow(e){this.nRows++;const n=`row-${this.nRows}`;return t.qy`
${e}
`}buildColumn(e){this.nColumns++;const n=`column-${this.nColumns}`;return t.qy`
${e}
`}buildPad(e){this.nPads++;const n=`pad-${this.nPads}`;return t.qy`
${e.map((t=>this.buildButton(t,this.getElementConfig(t))))}
`}buildButton(e,n){return Object.keys(n).length?t.qy``:t.qy`
`}buildSlider(e,n){return t.qy``}buildTouchpad(e,n){return t.qy``}buildVolumeButtons(){return[this.buildButton("volume_down",this.getElementConfig("volume_down")),this.buildButton("volume_mute",this.getElementConfig("volume_mute")),this.buildButton("volume_up",this.getElementConfig("volume_up"))]}buildNavButtons(){const t=[this.buildButton("left",this.getElementConfig("left")),this.buildButton("center",this.getElementConfig("center")),this.buildButton("right",this.getElementConfig("right"))];return this.rtl&&t.reverse(),this.buildColumn([this.buildRow([this.buildButton("up",this.getElementConfig("up"))]),this.buildRow(t),this.buildRow([this.buildButton("down",this.getElementConfig("down"))])])}buildElements(t,e=!1,n={}){"string"==typeof t&&(t=[t]);const i=[];for(let o of t)if(o=this.renderTemplate(o,n),"string"==typeof o&&o.includes("- ")&&(o=Me(o)),"object"==typeof o&&null!=o)i.push(this.buildElements(o,!e,n));else switch(o){case"volume_buttons":{const t=this.buildVolumeButtons();e&&t.reverse(),i.push(...t);break}case"navigation_buttons":i.push(this.buildNavButtons());break;case"dpad":i.push(this.buildPad(["","up","","left","center","right","","down",""]));break;case"numpad":i.push(this.buildPad(["n7","n8","n9","n4","n5","n6","n1","n2","n3"]));break;case"xpad":i.push(this.buildPad(["","y","","x","","b","","a",""]));break;case"npad":i.push(this.buildPad(["","x","","y","","a","","b",""]));break;default:{const t=this.getElementConfig(o);switch(t.type){case"slider":i.push(this.buildSlider(o,t));break;case"touchpad":i.push(this.buildTouchpad(o,t));break;default:i.push(this.buildButton(o,t))}break}}return e?this.buildColumn(i):this.buildRow(i)}buildDialog(){return t.qy``}fetchCustomActionsFromFile(t){if(!this.customActionsFromFile&&t){t=`${t.startsWith("/")?"":"/"}${t}`;try{const e=t.split(".").pop()?.toLowerCase();this.hass.fetchWithAuth(t).then((t=>"json"==e?t.json():t.text())).then((t=>{const n="json"==e?t:Me(t);if(!Array.isArray(n))throw TypeError(n);this.customActionsFromFile=n,this.requestUpdate()}))}catch(e){console.error(`File ${t} is not a valid JSON or YAML array\n${e}`),this.customActionsFromFile=[]}}}render(){if(!this.config||!this.hass)return t.qy``;const e={config:{...this.config,entity:this.renderTemplate(this.config.remote_id??this.config.media_player_id??this.config.keyboard_id??""),attribute:"state"}};this.fetchCustomActionsFromFile(this.renderTemplate(this.config.custom_actions_file??"")),this.editMode=Boolean(document.querySelector("home-assistant")?.shadowRoot?.querySelector("hui-dialog-edit-card")?.shadowRoot?.querySelector("ha-dialog")),this.rtl="rtl"==getComputedStyle(this).direction;const n=this.renderTemplate(this.config.platform??"Android TV",e),[i,o]=(0,je.XO)(n);this.DEFAULT_ACTIONS=[...i,...o];const a=[];this.nRows=0,this.nColumns=0,this.nPads=0;for(const t of this.config.rows??[]){const n=this.buildElements(t,!1,e);a.push(n)}const r=this.config.styles?t.qy``:"";return t.qy`${a}${this.buildDialog()}${r}`}static get styles(){return t.AH`ha-card{display:flex;flex-direction:column;align-items:center;padding:12px;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}.row{display:flex;flex-wrap:nowrap;flex-direction:row;width:-moz-available;width:-webkit-fill-available;width:fill-available;flex:1;padding:4px;gap:8px;justify-content:space-evenly;align-items:center}.column{display:flex;flex-wrap:nowrap;flex-direction:column;width:-moz-available;width:-webkit-fill-available;width:fill-available;flex:1;padding:4px;justify-content:space-evenly;align-items:center}.edit-mode{outline:0}@media (hover:hover){.edit-mode :hover:not(:has(div:hover)){outline:1px dashed var(--red-color)}}.empty-button{width:var(--size,48px);height:var(--size,48px);position:relative}.button-pad{display:grid;direction:ltr;grid-template-rows:repeat(3,var(--size,48px));grid-template-columns:repeat(3,var(--size,48px));grid-gap:8px 16px}`}}fn([(0,e.MZ)()],yn.prototype,"hass",void 0),fn([(0,e.MZ)()],yn.prototype,"config",void 0),customElements.define("universal-remote-card-editor",Ke),customElements.define("android-tv-card",yn),window.customCards=window.customCards||[],window.customCards.push({type:"android-tv-card",name:"Universal Remote Card",description:"Super customizable universal remote card"}),window.structuredClone||(window.structuredClone=t=>JSON.parse(JSON.stringify(t))),window.performance||(window.performance=window.Date)})()})(); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d7964b0..8ed4833 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "universal-remote-card", - "version": "4.3.7", + "version": "4.3.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "universal-remote-card", - "version": "4.3.7", + "version": "4.3.8", "license": "Apache-2.0", "dependencies": { "ha-nunjucks": "latest", diff --git a/package.json b/package.json index 728c857..3e9330f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "universal-remote-card", - "version": "4.3.7", + "version": "4.3.8", "description": "Universal Remote Card", "main": "./dist/universal-remote-card.min.js", "scripts": { diff --git a/src/classes/base-remote-element.ts b/src/classes/base-remote-element.ts index 1beb52b..b3c29c0 100644 --- a/src/classes/base-remote-element.ts +++ b/src/classes/base-remote-element.ts @@ -217,7 +217,7 @@ export class BaseRemoteElement extends LitElement { (!this.config.hold_action || this.config.hold_action.action == 'none') ) { - data.hold_secs = 0.5; + data.hold_secs = 1; } this.hass.callService('remote', 'send_command', data); break; diff --git a/src/universal-remote-card.ts b/src/universal-remote-card.ts index 0391dc1..7f9bc1e 100644 --- a/src/universal-remote-card.ts +++ b/src/universal-remote-card.ts @@ -665,18 +665,14 @@ class UniversalRemoteCard extends LitElement { ` : ''; - const polyfillPointerEvents = !window.PointerEvent - ? html`` - : ''; - return html`${content}${this.buildDialog()}${styles}${polyfillPointerEvents}`; + class="${this.editMode ? ' edit-mode' : ''}" + .header="${this.renderTemplate( + this.config.title as string, + context, + )}" + >${content}${this.buildDialog()}${styles}`; } static get styles() {