!function(){"use strict";angular.module("llngViewer",["ui.tree","ui.bootstrap","llApp","ngCookies"]).controller("TreeCtrl",["$scope","$http","$location","$q","$uibModal","$translator","$cookies","$htmlParams","$timeout",function(e,t,n,r,o,a,i,l,u){var s,c,d,f,g,p;if(e.links=window.links,e.menu=l.menu,e.menulinks=window.menulinks,e.staticPrefix=window.staticPrefix,e.formPrefix=window.formPrefix,e.availableLanguages=window.availableLanguages,e.waiting=!0,e.showM=!1,e.showT=!1,e.form="homeViewer",e.currentCfg={},e.clipboardAvailable=Boolean(navigator.clipboard),e.viewPrefix=window.viewPrefix,e.allowDiff=window.allowDiff,e.message={},e.result="",e.translateTitle=function(e){return a.translateField(e,"title")},e.translateP=a.translateP,e.translate=a.translate,e.helpUrl="start.html#configuration",e.setShowHelp=function(t){var n;return null==t&&(t=!e.showH),e.showH=t,(n=new Date(Date.now())).setFullYear(n.getFullYear()+1),i.put("showhelp",t?"true":"false",{expires:n})},e.showH="false"!==i.get("showhelp"),null==e.showH&&e.setShowHelp(!0),g=function(t){var n,r;return n=t.status,r=t.statusLine,e.waiting=!1,403===n?e.message={title:"forbidden",message:"",items:[]}:401===n?(console.debug("Authentication needed"),e.message={title:"authenticationNeeded",message:"__waitOrF5__",items:[]}):e.message=400===n||n>0?{title:"badRequest",message:r,items:[]}:{title:"networkProblem",message:"",items:[]},e.showModal("message.html")},e.showModal=function(t,n){var a,i;return i=o.open({templateUrl:t,controller:"ModalInstanceCtrl",size:"lg",resolve:{elem:function(){return function(t){return e[t]}},set:function(){return function(t,n){return e[t]=n}},init:function(){return n}}}),a=r.defer(),i.result.then((function(t){return e.message={title:"",message:"",items:[]},a.resolve(t)}),(function(t){return e.message={title:"",message:"",items:[]},a.reject(t)})),a.promise},e.menuClick=function(t){if(t.popup)window.open(t.popup);else switch(t.action||(t.action=t.title),typeof t.action){case"function":t.action(e.currentNode,e);break;case"string":e[t.action]();break;default:console.warn("Unknown action type",typeof t.action)}return e.showM=!1},e.home=function(){return e.form="homeViewer",e.showM=!1},e.downloadConf=function(){return window.open(e.viewPrefix+e.currentCfg.cfgNum+"?full=1")},d=1,e._findContainer=function(){return e._findScopeContainer().$modelValue},e._findScopeContainer=function(){var t;for(t=e.currentScope;!t.$modelValue.type.match(/Container$/);)t=t.$parentNodeScope;return t},e._findScopeByKey=function(t){var n;for(n=e.currentScope;n.$modelValue.title!==t;)n=n.$parentNodeScope;return n},e.down=function(){var t,n,r,o,a,i,l;for(d=e.currentNode.id,n=(a=e.currentScope.$parentNodeScope.$modelValue).nodes.length,t=r=0,o=(i=a.nodes).length;r<o;t=++r)i[t].id===d&&(n=t);return n<a.nodes.length-1&&(l=a.nodes[n],a.nodes[n]=a.nodes[n+1],a.nodes[n+1]=l),n},e.up=function(){var t,n,r,o,a,i,l;for(d=e.currentNode.id,n=-1,t=r=0,o=(i=(a=e.currentScope.$parentNodeScope.$modelValue).nodes).length;r<o;t=++r)i[t].id===d&&(n=t);return n>0&&(l=a.nodes[n],a.nodes[n]=a.nodes[n-1],a.nodes[n-1]=l),n},e.inSelect=function(t){var n,r,o;for(n=0,r=(o=e.currentNode.select).length;n<r;n++)if(o[n].k===t)return!0;return!1},e.changeRuleTitle=function(e){return e.title=e.comment.length>0?e.comment:e.re},e.filters={},e.execFilters=function(t){var n,o,a;for(n in t=t||e,a=e.filters)if(o=a[n],e.filters.hasOwnProperty(n))return window.filterFunctions[n](t,r,o);return!1},e.stoggle=function(e){var t;return t=e.$modelValue,c(t),e.toggle()},c=function(t){var n,r,o,a,i,l,u,s,c,d,f;for(r=0,o=(c=["nodes","nodes_cond"]).length;r<o;r++)if(t[`_${u=c[r]}`]){for(t[u]=[],l=0,a=(d=t[`_${u}`]).length;l<a;l++)n=d[l],t[u].push(n);delete t[`_${u}`]}if(t._nodes_filter){if(t.nodes)for(s=0,i=(f=t.nodes).length;s<i;s++)(u=f[s]).onChange=e.execFilters;return e.filters[t._nodes_filter]=t,e.execFilters()}},e.toggle=function(e){return e.toggle()},e.download=function(e){var t;return t=e.$modelValue,s(t)},s=function(n){var o,a;return(o=r.defer()).notify("Trying to get datas"),e.waiting=!0,console.debug(`Trying to get key ${n.cnodes}`),a=encodeURI(n.cnodes),t.get(`${window.viewPrefix}${e.currentCfg.cfgNum}/${a}`).then((function(t){var r,a,i,l;if(a=t.data)if(a.error)a.error.match(/setDefault$/)?(n.default?n.nodes=n.default.slice(0):n.nodes=[],delete n.cnodes,o.resolve("Set data to default value")):o.reject(`Server return an error: ${a.error}`);else{for(delete n.cnodes,n.type||(n.type="keyTextContainer"),n.nodes=[],i=0,l=a.length;i<l;i++)(r=a[i]).template&&(r._nodes=templates(r.template,r.title)),n.nodes.push(r);o.resolve("OK")}else o.reject("Empty response from server");return e.waiting=!1}),(function(e){return g(e),o.reject("")})),o.promise},e.openCnode=function(t){return e.download(t).then((function(){return t.toggle()}))},e.copyPath=function(){var t=e.breadCrumb.join(" ยป ");navigator.clipboard.writeText(t).then((function(){e.$apply((function(){e.copySuccess=!0,u((function(){e.copySuccess=!1}),400)}))}))},p=function(t){for(;!t.$modelValue.help&&t.$parentNodeScope;)t=t.$parentNodeScope;return e.helpUrl=t.$modelValue.help||"start.html#configuration"},e.getTrPath=function(e){for(var t=[],n=[],r=e,o=0;r&&r.$modelValue&&o<100;)o+=1,r.$modelValue.title&&r.$modelValue.title!=t[0]&&(n.unshift(e.translate(r.$modelValue.title)),t.unshift(r.$modelValue.title)),r=r.$parent;return n},e.displayForm=function(t){var n,r,o,a,i,l;if((i=t.$modelValue).cnodes&&e.download(t),i._nodes&&e.stoggle(t),e.currentNode=i,e.currentScope=t,n=i.type?i.type:"text",i.nodes||i._nodes||i.cnodes?e.form="text"!==n?n:"mini":(e.form=n,e.getKey(i)),i.type&&"simpleInputContainer"===i.type)for(r=0,o=(l=i.nodes).length;r<o;r++)a=l[r],e.getKey(a);return e.showT=!1,e.breadCrumb=e.getTrPath(t),p(t)},e.keyTranslatable=function(e){var t;return!(!(t=e.$modelValue).type||!t.type.match(/^(?:(?:c(?:as(?:App|Srv)MetaDataNod|mbModul)|oidc(?:[OR]PMetaDataNod|Attribut)|authChoic|rul)e|s(?:aml(?:(?:ID|S)PMetaDataNod|Attribut)e|fExtra)|key(?:Node|Text)|menu(?:App|Cat)|virtualHost)$/))},e.getKey=function(n){var o,a,i,l,u,s,c,d;if(o=r.defer(),n.data)n.data.toString().match(/_Hidden_$/)&&(n.type="text",n.data="######"),o.resolve(n.data);else if(e.waiting=!0,n.get&&"object"==typeof n.get){for(n.data=[],c=[],a=i=0,l=(s=n.get).length;i<l;a=++i)u=s[a],n.data[a]={title:u.split("/").pop(),get:u,id:u},c.push(e.getKey(n.data[a]));r.all(c).then((function(){return o.resolve(n.data)}),(function(t){return o.reject(t.statusLine),e.waiting=!1}))}else d="",n.get?(console.debug(`Trying to get key ${n.get}`),d=encodeURI(n.get)):console.debug(`Trying to get title ${n.title}`),t.get(`${window.viewPrefix}${e.currentCfg.cfgNum}/${n.get?d:n.title}`).then((function(t){var r;return(null===(r=t.data).value||r.error&&r.error.match(/setDefault$/))&&null!==n.default?n.data=n.default:n.data=r.value,n.data&&n.data.toString().match(/_Hidden_$/)&&(n.type="text",n.data="######"),n.type&&n.type.match(/^(bool|trool|boolOrExpr)$/)&&"string"==typeof n.data&&n.data.match(/^(?:-1|0|1)$/)&&(n.data=parseInt(n.data,10)),n.type&&n.type.match(/^int$/)?n.data=parseInt(n.data,10):n.type&&n.type.match(/^(saml(Service|Assertion)|blackWhiteList)$/)&&"object"!=typeof n.data&&(n.data=n.data.split(";")),e.waiting=!1,o.resolve(n.data)}),(function(e){return g(e),o.reject(e.status)}));return o.promise},f=function(t,r,o){var a;return null===(a=r.match(new RegExp("#!?/view/(latest|[0-9]+)")))?n.path("/view/latest"):(console.debug(`Trying to get cfg number ${a[1]}`),e.getCfg(a[1]))},e.$on("$locationChangeSuccess",f),e.getCfg=function(r){return e.currentCfg.cfgNum!==r?t.get(`${window.viewPrefix}${r}`).then((function(t){var o;return e.currentCfg=t.data,o=new Date(1e3*e.currentCfg.cfgDate),e.currentCfg.date=o.toLocaleString(),console.debug(`Metadatas of cfg ${r} loaded`),n.path(`/view/${r}`),e.init()}),(function(t){return g(t).then((function(){return e.currentCfg.cfgNum=0,e.init()}))})):e.waiting=!1},e.getLanguage=function(t){return e.lang=t,e.form="white",e.init(),e.showM=!1},e.init=function(){var n;return n=null,e.waiting=!0,e.breadCrumb=null,e.data=[],e.confirmNeeded=!1,e.forceSave=!1,r.all([a.init(e.lang),t.get(`${window.staticPrefix}struct.json`).then((function(e){n=e.data,console.debug("Structure loaded")}))]).then((function(){return console.debug("Starting structure binding"),e.data=n,n=null,0!==e.currentCfg.cfgNum?setScopeVars(e):(e.message={title:"emptyConf",message:"__zeroConfExplanations__"},e.showModal("message.html")),e.form="homeViewer",e.waiting=!1}),g),e.activeModule="viewer",e.myStyle={color:"#ffb84d"}},!n.path().match(new RegExp("^/view/(latest|[0-9]+)")))return console.debug("Redirecting to /view/latest"),n.path("/view/latest")}])}();